diff --git a/dist/MANIFEST.txt b/dist/MANIFEST.txt
index fa7f542..54fa137 100644
--- a/dist/MANIFEST.txt
+++ b/dist/MANIFEST.txt
@@ -9,37 +9,37 @@ Hash: SHA512
"signedByOrgName": "Tencent",
"rootUrls": [],
"plugin": "tencentcloud-monitor-app",
- "version": "2.8.7",
- "time": 1699358015357,
+ "version": "2.9.1",
+ "time": 1701760807736,
"keyId": "7e4d0c6a708866e7",
"files": {
"datasource/config-editor/config.html": "110380b35165fcfcffa797ab6841e9621bf5135881fa5e94f5f316a0600b5796",
- "datasource/tencentcloud-monitor-app-backend_darwin_amd64": "787de8d387971d6d46f95183b1a9849dadd7411b93a6b942444ae900676f9d57",
- "datasource/module.js.LICENSE.txt": "0d8f66cd4afb566cb5b7e1540c68f43b939d3eba12ace290f18abc4f4cb53ed0",
- "datasource/tencentcloud-monitor-app-backend_linux_arm64": "034df247d63031c573c1e73857d6508127fd53e74f6b0c491d845da9997b52dc",
- "datasource/module.js.map": "cb1d0700fb3fe2bd1561b40033677eb7d25c5fa0f3d8cd576105cbc642505970",
- "datasource/plugin.json": "674e6482bf2c91afe44591bcbee6341bdf7a90d795186f7d58140b4a40a44c48",
+ "datasource/tencentcloud-monitor-app-backend_darwin_amd64": "372c8c0dff6541903c06ff7c6849ab0bc882903feacaab772dbf0f575079029e",
+ "datasource/module.js.LICENSE.txt": "0ba9498d31b16c120f53a8cea32162412a0b69ce8d2707893df316676ba7675c",
+ "datasource/tencentcloud-monitor-app-backend_linux_arm64": "6c0bc328f38ec638f65312d7fb451526e7c5653b623e848b57c4da6417a3020d",
+ "datasource/module.js.map": "524f6b6fec76e09404f849c485835737646c281ee6cf105e708603c80d9cfec1",
+ "datasource/plugin.json": "e957f9742fdfb27c9fee720dda99ad1cccee57b5b3b4e135b09ae77d0f156ebc",
"datasource/img/tencent-cloud.svg": "572e1abf6d2a4be854845b55219e8d0661f79b325f0659b5439dddb37a304a8a",
- "datasource/tencentcloud-monitor-app-backend_linux_arm": "724d9ae1e3dd5ee49d13eb90efc1a4d697051c3c918d4efc8ca2b139db7f402a",
+ "datasource/tencentcloud-monitor-app-backend_linux_arm": "1b4be8e714c5252fe65d5b11eceb9ec489926ff0e066ad6fe1068006f178a807",
"datasource/query-ctrl/partials/query.editor.html": "443d863f1d1c9295467da9a4290d16e9211699d034502b76605ebf41b61a4011",
- "datasource/module.js": "f68b2ccff4cacaa1c9420ed1c19e5f19c4ae591dc7e978ad79efc287150050f1",
- "datasource/tencentcloud-monitor-app-backend_windows_amd64.exe": "8840ea424cf47346563ccdca5d266b0399c8b7bcaa5f700e28f8f2c0c21f9175",
- "datasource/tencentcloud-monitor-app-backend_linux_amd64": "10ead9625779e071ec858dc2a3971fceb61f3aaffbb2153b527f0d8b452bac4e",
- "datasource/tencentcloud-monitor-app-backend_darwin_arm64": "8e1efbaa6d0640d2cc94b2a89f4245b4271988ba63a8f4d093dd14fdf05439ba",
+ "datasource/module.js": "9ce781c0424f853353eedcb4abf1a20076b3241c0fe05f3a1149e53ba23aeea5",
+ "datasource/tencentcloud-monitor-app-backend_windows_amd64.exe": "188fba88f14b37d966fdf8ccfd20bdead7c63d6204233ac973f5f437c7c012d2",
+ "datasource/tencentcloud-monitor-app-backend_linux_amd64": "c23e795111459db0f453d7f6c748dfdeefbc1ddeb4bfcf16d355275456c4477e",
+ "datasource/tencentcloud-monitor-app-backend_darwin_arm64": "8d05974d39861d05e19bd7da540629acc89f0e656ed1ed1ca7e26da95980784c",
"LICENSE": "7d90d87fbfbc9369eb627fd38811e01dfd955d72269d5039e7c6119372baa1e3",
"CHANGELOG.md": "0596a172e06ba90b28ef8887553a6e97320a3bd01f77d81e8b3face21c848163",
- "module.js.map": "25ec2e977659d0cd43162d13ff5f497d5209c49cabc3bc926c3c5690261cb49d",
+ "module.js.map": "645ce8e78546b398f214e2b8e71bba1ce77da3ee992f8eba1685665c53753413",
"image/datasource-config.png": "e31ceec33c6454f6335850791f9b35fc2be56a4e43dfc11a75435e16f025dc0f",
"image/variable-region-config.png": "d46215b565d2b851855fb48bf7ee73ef696e3b8cfc671a376743faa39b193f3c",
"image/variable-panel-query.png": "e17f91280df34695d7be10b3e355b6c91d4b43404243529dc7e75d1f9a8605fa",
"image/variable-cvm-dashboard.png": "f97220e1230b83b0110f7e11468538b44c48d8b70906509f5153f8895ed02653",
- "plugin.json": "66ba20384ac5437a9c4534e28163f0e80d63f02ec6d5044255e05747ef87fb7e",
+ "plugin.json": "82e354da125e0463499c6a61531d0611ce5433498892a3079a4d8e32986a7d30",
"README.md": "6510f9156c1d9198895cb8dcce1f137ac88292d0ce922c5f31bbb19af76e78c6",
"img/tencent-cloud.svg": "572e1abf6d2a4be854845b55219e8d0661f79b325f0659b5439dddb37a304a8a",
- "components/config.js": "5abcc27088ac1f06436e523e713a2b45cd3e609b15c8a90cb65ed881eaa70774",
- "components/config.js.map": "1d476876c4d02be40f0336da51eb429f17ff32c2b8810a58ea28b986bd59351d",
+ "components/config.js": "ee5816a2a21eaa0ddde461cb4d663b832e88911785cb7b9956062592670ee547",
+ "components/config.js.map": "9c9d1415b017930a19ae821743cdca306c06e2a97ec9ee02011c31cbbfdffc03",
"components/config.html": "851e7cf915df590befbe6a56bf9bf4a17083de46ef93246a0bc6214d7be13464",
- "module.js": "b096cc96ca927f0bbe7c978f36663516911cfd730747d56ee1873367a268313e",
+ "module.js": "677bba38a6613a8f2db11d9bf290dca90ac076ffa28eaf6767ebf975daa9fb45",
"dashboards/example_redis_mem_en_dashboard.json": "66bde7943e04a3a42048535206d273c303e345a6bf5d57e6a1bc818e8799d360",
"dashboards/example_logService_clb_en_dashboard.json": "c6545c6b884ed84851d0e933badcd79a55fc85c2baf8487135f63b1105083fa2",
"dashboards/example_lb_dashboard.json": "9884b63f52a1564a57edf79626dfee97f0e0e80bcaa321cffcf747054204ca43",
@@ -80,10 +80,10 @@ Hash: SHA512
Version: OpenPGP.js v4.10.10
Comment: https://openpgpjs.org
-wrcEARMKAAYFAmVKJT8AIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq
-cIhm5y96AgUZm98N2nAkUHJiYXbshVPUg1bUu2ed/jNAvJOl7jOKIotsM5B/
-SwO3J91yjVqQvqc7y7BjJzvFINiefZ/Qs9QU5AIIsZGq+REBxLuyYo+E39nv
-hRcbd2LjXUFrxO7McwuQdy+kB9YuIWJ3bCbkSLlI2fbJT187kaxtoXP2OiWS
-VXXFKw8=
-=5MF/
+wrkEARMKAAYFAmVuzygAIQkQfk0ManCIZucWIQTzOyW2kQdOhGNlcPN+TQxq
+cIhm59kGAgkBpmLoNT52slSpBGhektTn4u8dtzHpGSlYWPOPLp2WKteZZsMB
+w5TsgftoMwBqKxBRUI9TnxxB697oE7U/UxwyrrACCQGDLX2gpmrneYu9tKnX
+5QlJWULtwc/hrzQ2ywRLzGTygU9nRVSuvR7FvRLVkb9Zn3/PbKkTfdM/fn19
+ehiWJ+pkQw==
+=vU3l
-----END PGP SIGNATURE-----
diff --git a/dist/components/config.js b/dist/components/config.js
index 4e9ca04..5b6459b 100644
--- a/dist/components/config.js
+++ b/dist/components/config.js
@@ -1,37185 +1,2 @@
-define("TencentCloudMonitorGrafanaApp", ["@grafana/data","@grafana/runtime","app/core/core_module","lodash","moment"], function(__WEBPACK_EXTERNAL_MODULE__grafana_data__, __WEBPACK_EXTERNAL_MODULE__grafana_runtime__, __WEBPACK_EXTERNAL_MODULE_grafana_app_core_core_module__, __WEBPACK_EXTERNAL_MODULE_lodash__, __WEBPACK_EXTERNAL_MODULE_moment__) { return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ }
-/******/ };
-/******/
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/
-/******/ // create a fake namespace object
-/******/ // mode & 1: value is a module id, require it
-/******/ // mode & 2: merge all properties of value into the ns
-/******/ // mode & 4: return value when already ns object
-/******/ // mode & 8|1: behave like require
-/******/ __webpack_require__.t = function(value, mode) {
-/******/ if(mode & 1) value = __webpack_require__(value);
-/******/ if(mode & 8) return value;
-/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ var ns = Object.create(null);
-/******/ __webpack_require__.r(ns);
-/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ return ns;
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "/";
-/******/
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = "./components/config.ts");
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ "../node_modules/qs/lib/formats.js":
-/*!*****************************************!*\
- !*** ../node_modules/qs/lib/formats.js ***!
- \*****************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var replace = String.prototype.replace;
-var percentTwenties = /%20/g;
-
-module.exports = {
- 'default': 'RFC3986',
- formatters: {
- RFC1738: function (value) {
- return replace.call(value, percentTwenties, '+');
- },
- RFC3986: function (value) {
- return value;
- }
- },
- RFC1738: 'RFC1738',
- RFC3986: 'RFC3986'
-};
-
-
-/***/ }),
-
-/***/ "../node_modules/qs/lib/index.js":
-/*!***************************************!*\
- !*** ../node_modules/qs/lib/index.js ***!
- \***************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var stringify = __webpack_require__(/*! ./stringify */ "../node_modules/qs/lib/stringify.js");
-var parse = __webpack_require__(/*! ./parse */ "../node_modules/qs/lib/parse.js");
-var formats = __webpack_require__(/*! ./formats */ "../node_modules/qs/lib/formats.js");
-
-module.exports = {
- formats: formats,
- parse: parse,
- stringify: stringify
-};
-
-
-/***/ }),
-
-/***/ "../node_modules/qs/lib/parse.js":
-/*!***************************************!*\
- !*** ../node_modules/qs/lib/parse.js ***!
- \***************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./utils */ "../node_modules/qs/lib/utils.js");
-
-var has = Object.prototype.hasOwnProperty;
-
-var defaults = {
- allowDots: false,
- allowPrototypes: false,
- arrayLimit: 20,
- decoder: utils.decode,
- delimiter: '&',
- depth: 5,
- parameterLimit: 1000,
- plainObjects: false,
- strictNullHandling: false
-};
-
-var parseValues = function parseQueryStringValues(str, options) {
- var obj = {};
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
- var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
- var parts = cleanStr.split(options.delimiter, limit);
-
- for (var i = 0; i < parts.length; ++i) {
- var part = parts[i];
-
- var bracketEqualsPos = part.indexOf(']=');
- var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
-
- var key, val;
- if (pos === -1) {
- key = options.decoder(part, defaults.decoder);
- val = options.strictNullHandling ? null : '';
- } else {
- key = options.decoder(part.slice(0, pos), defaults.decoder);
- val = options.decoder(part.slice(pos + 1), defaults.decoder);
- }
- if (has.call(obj, key)) {
- obj[key] = [].concat(obj[key]).concat(val);
- } else {
- obj[key] = val;
- }
- }
-
- return obj;
-};
-
-var parseObject = function (chain, val, options) {
- var leaf = val;
-
- for (var i = chain.length - 1; i >= 0; --i) {
- var obj;
- var root = chain[i];
-
- if (root === '[]') {
- obj = [];
- obj = obj.concat(leaf);
- } else {
- obj = options.plainObjects ? Object.create(null) : {};
- var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
- var index = parseInt(cleanRoot, 10);
- if (
- !isNaN(index)
- && root !== cleanRoot
- && String(index) === cleanRoot
- && index >= 0
- && (options.parseArrays && index <= options.arrayLimit)
- ) {
- obj = [];
- obj[index] = leaf;
- } else {
- obj[cleanRoot] = leaf;
- }
- }
-
- leaf = obj;
- }
-
- return leaf;
-};
-
-var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
- if (!givenKey) {
- return;
- }
-
- // Transform dot notation to bracket notation
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
-
- // The regex chunks
-
- var brackets = /(\[[^[\]]*])/;
- var child = /(\[[^[\]]*])/g;
-
- // Get the parent
-
- var segment = brackets.exec(key);
- var parent = segment ? key.slice(0, segment.index) : key;
-
- // Stash the parent if it exists
-
- var keys = [];
- if (parent) {
- // If we aren't using plain objects, optionally prefix keys
- // that would overwrite object prototype properties
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
- if (!options.allowPrototypes) {
- return;
- }
- }
-
- keys.push(parent);
- }
-
- // Loop through children appending to the array until we hit depth
-
- var i = 0;
- while ((segment = child.exec(key)) !== null && i < options.depth) {
- i += 1;
- if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
- if (!options.allowPrototypes) {
- return;
- }
- }
- keys.push(segment[1]);
- }
-
- // If there's a remainder, just add whatever is left
-
- if (segment) {
- keys.push('[' + key.slice(segment.index) + ']');
- }
-
- return parseObject(keys, val, options);
-};
-
-module.exports = function (str, opts) {
- var options = opts ? utils.assign({}, opts) : {};
-
- if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
- throw new TypeError('Decoder has to be a function.');
- }
-
- options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
- options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
- options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
- options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
- options.parseArrays = options.parseArrays !== false;
- options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
- options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
- options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
- options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
- options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
- options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
-
- if (str === '' || str === null || typeof str === 'undefined') {
- return options.plainObjects ? Object.create(null) : {};
- }
-
- var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
- var obj = options.plainObjects ? Object.create(null) : {};
-
- // Iterate over the keys and setup the new object
-
- var keys = Object.keys(tempObj);
- for (var i = 0; i < keys.length; ++i) {
- var key = keys[i];
- var newObj = parseKeys(key, tempObj[key], options);
- obj = utils.merge(obj, newObj, options);
- }
-
- return utils.compact(obj);
-};
-
-
-/***/ }),
-
-/***/ "../node_modules/qs/lib/stringify.js":
-/*!*******************************************!*\
- !*** ../node_modules/qs/lib/stringify.js ***!
- \*******************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var utils = __webpack_require__(/*! ./utils */ "../node_modules/qs/lib/utils.js");
-var formats = __webpack_require__(/*! ./formats */ "../node_modules/qs/lib/formats.js");
-
-var arrayPrefixGenerators = {
- brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
- return prefix + '[]';
- },
- indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
- return prefix + '[' + key + ']';
- },
- repeat: function repeat(prefix) { // eslint-disable-line func-name-matching
- return prefix;
- }
-};
-
-var toISO = Date.prototype.toISOString;
-
-var defaults = {
- delimiter: '&',
- encode: true,
- encoder: utils.encode,
- encodeValuesOnly: false,
- serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
- return toISO.call(date);
- },
- skipNulls: false,
- strictNullHandling: false
-};
-
-var stringify = function stringify( // eslint-disable-line func-name-matching
- object,
- prefix,
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
-) {
- var obj = object;
- if (typeof filter === 'function') {
- obj = filter(prefix, obj);
- } else if (obj instanceof Date) {
- obj = serializeDate(obj);
- } else if (obj === null) {
- if (strictNullHandling) {
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
- }
-
- obj = '';
- }
-
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
- if (encoder) {
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
- return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
- }
- return [formatter(prefix) + '=' + formatter(String(obj))];
- }
-
- var values = [];
-
- if (typeof obj === 'undefined') {
- return values;
- }
-
- var objKeys;
- if (Array.isArray(filter)) {
- objKeys = filter;
- } else {
- var keys = Object.keys(obj);
- objKeys = sort ? keys.sort(sort) : keys;
- }
-
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (skipNulls && obj[key] === null) {
- continue;
- }
-
- if (Array.isArray(obj)) {
- values = values.concat(stringify(
- obj[key],
- generateArrayPrefix(prefix, key),
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- } else {
- values = values.concat(stringify(
- obj[key],
- prefix + (allowDots ? '.' + key : '[' + key + ']'),
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encoder,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- }
- }
-
- return values;
-};
-
-module.exports = function (object, opts) {
- var obj = object;
- var options = opts ? utils.assign({}, opts) : {};
-
- if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
- throw new TypeError('Encoder has to be a function.');
- }
-
- var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
- var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
- var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
- var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
- var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
- var sort = typeof options.sort === 'function' ? options.sort : null;
- var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
- var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
- var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
- if (typeof options.format === 'undefined') {
- options.format = formats['default'];
- } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
- throw new TypeError('Unknown format option provided.');
- }
- var formatter = formats.formatters[options.format];
- var objKeys;
- var filter;
-
- if (typeof options.filter === 'function') {
- filter = options.filter;
- obj = filter('', obj);
- } else if (Array.isArray(options.filter)) {
- filter = options.filter;
- objKeys = filter;
- }
-
- var keys = [];
-
- if (typeof obj !== 'object' || obj === null) {
- return '';
- }
-
- var arrayFormat;
- if (options.arrayFormat in arrayPrefixGenerators) {
- arrayFormat = options.arrayFormat;
- } else if ('indices' in options) {
- arrayFormat = options.indices ? 'indices' : 'repeat';
- } else {
- arrayFormat = 'indices';
- }
-
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
-
- if (!objKeys) {
- objKeys = Object.keys(obj);
- }
-
- if (sort) {
- objKeys.sort(sort);
- }
-
- for (var i = 0; i < objKeys.length; ++i) {
- var key = objKeys[i];
-
- if (skipNulls && obj[key] === null) {
- continue;
- }
-
- keys = keys.concat(stringify(
- obj[key],
- key,
- generateArrayPrefix,
- strictNullHandling,
- skipNulls,
- encode ? encoder : null,
- filter,
- sort,
- allowDots,
- serializeDate,
- formatter,
- encodeValuesOnly
- ));
- }
-
- var joined = keys.join(delimiter);
- var prefix = options.addQueryPrefix === true ? '?' : '';
-
- return joined.length > 0 ? prefix + joined : '';
-};
-
-
-/***/ }),
-
-/***/ "../node_modules/qs/lib/utils.js":
-/*!***************************************!*\
- !*** ../node_modules/qs/lib/utils.js ***!
- \***************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var has = Object.prototype.hasOwnProperty;
-
-var hexTable = (function () {
- var array = [];
- for (var i = 0; i < 256; ++i) {
- array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
- }
-
- return array;
-}());
-
-var compactQueue = function compactQueue(queue) {
- var obj;
-
- while (queue.length) {
- var item = queue.pop();
- obj = item.obj[item.prop];
-
- if (Array.isArray(obj)) {
- var compacted = [];
-
- for (var j = 0; j < obj.length; ++j) {
- if (typeof obj[j] !== 'undefined') {
- compacted.push(obj[j]);
- }
- }
-
- item.obj[item.prop] = compacted;
- }
- }
-
- return obj;
-};
-
-var arrayToObject = function arrayToObject(source, options) {
- var obj = options && options.plainObjects ? Object.create(null) : {};
- for (var i = 0; i < source.length; ++i) {
- if (typeof source[i] !== 'undefined') {
- obj[i] = source[i];
- }
- }
-
- return obj;
-};
-
-var merge = function merge(target, source, options) {
- if (!source) {
- return target;
- }
-
- if (typeof source !== 'object') {
- if (Array.isArray(target)) {
- target.push(source);
- } else if (typeof target === 'object') {
- if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
- target[source] = true;
- }
- } else {
- return [target, source];
- }
-
- return target;
- }
-
- if (typeof target !== 'object') {
- return [target].concat(source);
- }
-
- var mergeTarget = target;
- if (Array.isArray(target) && !Array.isArray(source)) {
- mergeTarget = arrayToObject(target, options);
- }
-
- if (Array.isArray(target) && Array.isArray(source)) {
- source.forEach(function (item, i) {
- if (has.call(target, i)) {
- if (target[i] && typeof target[i] === 'object') {
- target[i] = merge(target[i], item, options);
- } else {
- target.push(item);
- }
- } else {
- target[i] = item;
- }
- });
- return target;
- }
-
- return Object.keys(source).reduce(function (acc, key) {
- var value = source[key];
-
- if (has.call(acc, key)) {
- acc[key] = merge(acc[key], value, options);
- } else {
- acc[key] = value;
- }
- return acc;
- }, mergeTarget);
-};
-
-var assign = function assignSingleSource(target, source) {
- return Object.keys(source).reduce(function (acc, key) {
- acc[key] = source[key];
- return acc;
- }, target);
-};
-
-var decode = function (str) {
- try {
- return decodeURIComponent(str.replace(/\+/g, ' '));
- } catch (e) {
- return str;
- }
-};
-
-var encode = function encode(str) {
- // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
- // It has been adapted here for stricter adherence to RFC 3986
- if (str.length === 0) {
- return str;
- }
-
- var string = typeof str === 'string' ? str : String(str);
-
- var out = '';
- for (var i = 0; i < string.length; ++i) {
- var c = string.charCodeAt(i);
-
- if (
- c === 0x2D // -
- || c === 0x2E // .
- || c === 0x5F // _
- || c === 0x7E // ~
- || (c >= 0x30 && c <= 0x39) // 0-9
- || (c >= 0x41 && c <= 0x5A) // a-z
- || (c >= 0x61 && c <= 0x7A) // A-Z
- ) {
- out += string.charAt(i);
- continue;
- }
-
- if (c < 0x80) {
- out = out + hexTable[c];
- continue;
- }
-
- if (c < 0x800) {
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- if (c < 0xD800 || c >= 0xE000) {
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- i += 1;
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- out += hexTable[0xF0 | (c >> 18)]
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
- + hexTable[0x80 | (c & 0x3F)];
- }
-
- return out;
-};
-
-var compact = function compact(value) {
- var queue = [{ obj: { o: value }, prop: 'o' }];
- var refs = [];
-
- for (var i = 0; i < queue.length; ++i) {
- var item = queue[i];
- var obj = item.obj[item.prop];
-
- var keys = Object.keys(obj);
- for (var j = 0; j < keys.length; ++j) {
- var key = keys[j];
- var val = obj[key];
- if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
- queue.push({ obj: obj, prop: key });
- refs.push(val);
- }
- }
- }
-
- return compactQueue(queue);
-};
-
-var isRegExp = function isRegExp(obj) {
- return Object.prototype.toString.call(obj) === '[object RegExp]';
-};
-
-var isBuffer = function isBuffer(obj) {
- if (obj === null || typeof obj === 'undefined') {
- return false;
- }
-
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
-};
-
-module.exports = {
- arrayToObject: arrayToObject,
- assign: assign,
- compact: compact,
- decode: decode,
- encode: encode,
- isBuffer: isBuffer,
- isRegExp: isRegExp,
- merge: merge
-};
-
-
-/***/ }),
-
-/***/ "./components/config.ts":
-/*!******************************!*\
- !*** ./components/config.ts ***!
- \******************************/
-/*! exports provided: MonitorAppConfigCtrl */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MonitorAppConfigCtrl", function() { return MonitorAppConfigCtrl; });
-/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @grafana/runtime */ "@grafana/runtime");
-/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _datasource_common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../datasource/common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-var backendSrv = Object(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__["getBackendSrv"])();
-var tcFolder = {
- uid: 'tencent-cloud-monitor',
- title: '腾讯云监控',
- folderId: null
-};
-var tcFolder_EN = {
- uid: 'tencent-cloud-monitor-english',
- title: 'Tencent Cloud Monitor',
- folderId: null
-};
-/**
- * 生成腾讯云专用目录
- * @returns
- */
-
-function getFolderId() {
- var _a, _b;
-
- return __awaiter(this, void 0, void 0, function () {
- var folders, folderId, folderEnId, folder, folderEn;
- return __generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- if (tcFolder.folderId && tcFolder_EN.folderId) {
- return [2
- /*return*/
- , [tcFolder.folderId, tcFolder_EN.folderId]];
- }
-
- return [4
- /*yield*/
- , backendSrv.get('/api/folders')];
-
- case 1:
- folders = _c.sent();
- folderId = (_a = folders.find(function (item) {
- return item.uid === tcFolder.uid;
- })) === null || _a === void 0 ? void 0 : _a.id;
- folderEnId = (_b = folders.find(function (item) {
- return item.uid === tcFolder_EN.uid;
- })) === null || _b === void 0 ? void 0 : _b.id;
- if (!!folderId) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , backendSrv.post('/api/folders', tcFolder)];
-
- case 2:
- folder = _c.sent();
- folderId = (folder === null || folder === void 0 ? void 0 : folder.id) || 0;
- _c.label = 3;
-
- case 3:
- if (!!folderEnId) return [3
- /*break*/
- , 5];
- return [4
- /*yield*/
- , backendSrv.post('/api/folders', tcFolder_EN)];
-
- case 4:
- folderEn = _c.sent();
- folderEnId = (folderEn === null || folderEn === void 0 ? void 0 : folderEn.id) || 0;
- _c.label = 5;
-
- case 5:
- tcFolder.folderId = folderId;
- tcFolder_EN.folderId = folderEnId;
- return [2
- /*return*/
- , [folderId, folderEnId]];
- }
- });
- });
-}
-/**
- * 请求拦截器,拦截导入按钮的接口请求
- */
-
-
-function backendInterceptor() {
- var _this = this;
-
- var oldPost = backendSrv.post.bind(Object(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__["getBackendSrv"])());
- var pluginId = window.location.pathname.split('/').filter(function (item) {
- return item;
- })[1];
-
- backendSrv.post = function (url, data) {
- return __awaiter(_this, void 0, void 0, function () {
- var _a, folderId, folderEnId;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- if (!(url === '/api/dashboards/import' && data.pluginId === pluginId)) return [3
- /*break*/
- , 2];
- return [4
- /*yield*/
- , getFolderId()];
-
- case 1:
- _a = _b.sent(), folderId = _a[0], folderEnId = _a[1];
- data.folderId = data.path.endsWith('_en_dashboard.json') ? folderEnId : folderId;
- _b.label = 2;
-
- case 2:
- return [2
- /*return*/
- , oldPost(url, data)];
- }
- });
- });
- };
-}
-
-backendInterceptor();
-
-var MonitorAppConfigCtrl =
-/** @class */
-function () {
- MonitorAppConfigCtrl.$inject = ["$scope", "$injector", "$q"];
-
- /** @ngInject */
- function MonitorAppConfigCtrl($scope, $injector, $q) {
- var _a;
-
- this.appEditCtrl.setPostUpdateHook(this.postUpdate.bind(this));
- this.$q = $q; // Make sure it has a JSON Data spot
-
- if (!this.appModel) {
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
- this.appModel = {};
- } // Required until we get the types sorted on appModel :(
-
-
- var appModel = this.appModel;
-
- if (!appModel.jsonData) {
- appModel.jsonData = {};
- }
-
- this.configured = false;
-
- if ((_a = this.appModel) === null || _a === void 0 ? void 0 : _a.enabled) {
- var datasources = Object.values(_grafana_runtime__WEBPACK_IMPORTED_MODULE_0__["config"].datasources).filter(function (ds) {
- return ds.type === _datasource_common_constants__WEBPACK_IMPORTED_MODULE_1__["TcDataSourceId"];
- });
-
- if (datasources.length > 0) {
- this.configured = true;
- }
- }
- }
-
- MonitorAppConfigCtrl.prototype.moveToFolder = function (dashbaordUid, folderId) {
- return __awaiter(this, void 0, void 0, function () {
- var dashboard;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , backendSrv.get("/api/dashboards/uid/".concat(dashbaordUid))];
-
- case 1:
- dashboard = _a.sent().dashboard; // 移动目录
-
- return [4
- /*yield*/
- , backendSrv.post('/api/dashboards/db/', {
- dashboard: dashboard,
- folderId: folderId,
- message: '',
- overwrite: true
- })];
-
- case 2:
- // 移动目录
- _a.sent();
-
- return [2
- /*return*/
- ];
- }
- });
- });
- };
-
- MonitorAppConfigCtrl.prototype.reviseDashboard = function () {
- var _a;
-
- return __awaiter(this, void 0, void 0, function () {
- var _b, folderId, folderEnId, rs, pmlist;
-
- var _this = this;
-
- return __generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- return [4
- /*yield*/
- , getFolderId()];
-
- case 1:
- _b = _c.sent(), folderId = _b[0], folderEnId = _b[1];
- return [4
- /*yield*/
- , backendSrv.get("/api/plugins/".concat((_a = this.appModel) === null || _a === void 0 ? void 0 : _a.id, "/dashboards"))];
-
- case 2:
- rs = _c.sent();
- pmlist = rs.map(function (item) {
- var importedUrl = item.importedUrl,
- path = item.path;
- var uid = importedUrl.split('/')[2];
-
- if (uid) {
- return _this.moveToFolder(uid, path.endsWith('_en_dashboard.json') ? folderEnId : folderId);
- } else {
- return Promise.resolve();
- }
- });
- return [2
- /*return*/
- , Promise.all(pmlist)];
- }
- });
- });
- };
-
- MonitorAppConfigCtrl.prototype.postUpdate = function () {
- var _a;
-
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- if (!((_a = this.appModel) === null || _a === void 0 ? void 0 : _a.enabled)) {
- return [2
- /*return*/
- ];
- } // enable或者update时,对预设dashboard进行修改
-
-
- return [4
- /*yield*/
- , this.reviseDashboard()];
-
- case 1:
- // enable或者update时,对预设dashboard进行修改
- _b.sent();
-
- return [2
- /*return*/
- , this.$q.resolve(true)];
- }
- });
- });
- };
-
- MonitorAppConfigCtrl.templateUrl = 'components/config.html';
- return MonitorAppConfigCtrl;
-}();
-
-
-
-/***/ }),
-
-/***/ "./datasource/common/constants.ts":
-/*!****************************************!*\
- !*** ./datasource/common/constants.ts ***!
- \****************************************/
-/*! exports provided: TcDataSourceId, GetServiceAPIInfo, VARIABLE_ALIAS, GetServiceFromNamespace, GetLabelFromNamespace, ParseMetricQuery, ParseMetricRegex, ReplaceVariable, GetDimensions, ParseQueryResult, isVariable, GetRequestParams, GetRequestParamsV2, SliceLength, FilterKeys, parseDataFromBackendPlugin, IS_DEVELOPMENT_ENVIRONMENT, CoreApp */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TcDataSourceId", function() { return TcDataSourceId; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetServiceAPIInfo", function() { return GetServiceAPIInfo; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VARIABLE_ALIAS", function() { return VARIABLE_ALIAS; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetServiceFromNamespace", function() { return GetServiceFromNamespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetLabelFromNamespace", function() { return GetLabelFromNamespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParseMetricQuery", function() { return ParseMetricQuery; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParseMetricRegex", function() { return ParseMetricRegex; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReplaceVariable", function() { return ReplaceVariable; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetDimensions", function() { return GetDimensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParseQueryResult", function() { return ParseQueryResult; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVariable", function() { return isVariable; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetRequestParams", function() { return GetRequestParams; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetRequestParamsV2", function() { return GetRequestParamsV2; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SliceLength", function() { return SliceLength; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterKeys", function() { return FilterKeys; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDataFromBackendPlugin", function() { return parseDataFromBackendPlugin; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IS_DEVELOPMENT_ENVIRONMENT", function() { return IS_DEVELOPMENT_ENVIRONMENT; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CoreApp", function() { return CoreApp; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! qs */ "../node_modules/qs/lib/index.js");
-/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _tc_monitor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tc_monitor */ "./datasource/tc_monitor/index.ts");
-/* harmony import */ var _sign__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sign */ "./datasource/common/sign.ts");
-/* harmony import */ var _signV2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./signV2 */ "./datasource/common/signV2.ts");
-/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @grafana/runtime */ "@grafana/runtime");
-/* harmony import */ var _grafana_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_grafana_runtime__WEBPACK_IMPORTED_MODULE_5__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../locale */ "./locale/index.ts");
-/* harmony import */ var _plugin_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../plugin.json */ "./datasource/plugin.json");
-var _plugin_json__WEBPACK_IMPORTED_MODULE_7___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../plugin.json */ "./datasource/plugin.json", 1);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-var __rest = undefined && undefined.__rest || function (s, e) {
- var t = {};
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
- }
-
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
- }
- return t;
-};
-
-
-
-
-
-
-
-
-
-var TcDataSourceId = _plugin_json__WEBPACK_IMPORTED_MODULE_7__.id; // the services of tencentcloud monitor api
-
-var FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi'];
-var SERVICES_API_INFO = {
- api: {
- service: 'api',
- version: '2020-11-06',
- path: '/api',
- host: 'api.tencentcloudapi.com'
- },
- // monitor api info
- monitor: {
- service: 'monitor',
- version: '2018-07-24',
- path: '/monitor',
- host: 'monitor.tencentcloudapi.com'
- },
- // cls api info
- cls: {
- service: 'cls',
- version: '2020-10-16',
- path: '/cls',
- host: 'cls.tencentcloudapi.com'
- },
- // cvm api info
- cvm: {
- service: 'cvm',
- version: '2017-03-12',
- path: '/cvm',
- host: 'cvm.tencentcloudapi.com'
- },
- // cdb api info
- cdb: {
- service: 'cdb',
- version: '2017-03-20',
- path: '/cdb',
- host: 'cdb.tencentcloudapi.com'
- },
- // pcx api info
- pcx: {
- service: 'pcx',
- version: '',
- path: '/pcx',
- host: 'vpc.api.qcloud.com'
- },
- // vpc api info
- vpc: {
- service: 'vpc',
- version: '2017-03-12',
- path: '/vpc',
- host: 'vpc.tencentcloudapi.com'
- },
- // mongodb api info
- mongodb: {
- service: 'mongodb',
- version: '2019-07-25',
- path: '/mongodb',
- host: 'mongodb.tencentcloudapi.com'
- },
- // 负载均衡 clb
- clb: {
- service: 'clb',
- version: '2018-03-17',
- path: '/clb',
- host: 'clb.tencentcloudapi.com'
- },
- // postgresql api info
- postgres: {
- service: 'postgres',
- version: '2017-03-12',
- path: '/postgres',
- host: 'postgres.tencentcloudapi.com'
- },
- // cdn info
- cdn: {
- service: 'cdn',
- version: '2018-06-06',
- path: '/cdn',
- host: 'cdn.tencentcloudapi.com'
- },
- // redis info
- redis: {
- service: 'redis',
- version: '2018-04-12',
- path: '/redis',
- host: 'redis.tencentcloudapi.com'
- },
- scf: {
- service: 'scf',
- version: '2018-04-16',
- path: '/scf',
- host: 'scf.tencentcloudapi.com'
- },
- cfs: {
- service: 'cfs',
- version: '2019-07-19',
- path: '/cfs',
- host: 'cfs.tencentcloudapi.com'
- },
- ckafka: {
- service: 'ckafka',
- version: '2019-08-19',
- path: '/ckafka',
- host: 'ckafka.tencentcloudapi.com'
- },
- // 专线接入实例列表
- dc: {
- service: 'dc',
- version: '2018-04-10',
- path: '/dc',
- host: 'dc.tencentcloudapi.com'
- },
- // cynosdb实例列表
- cynosdb: {
- service: 'cynosdb',
- version: '2019-01-07',
- path: '/cynosdb',
- host: 'cynosdb.tencentcloudapi.com'
- },
- // sqlserver实例列表
- sqlserver: {
- service: 'sqlserver',
- version: '2018-03-28',
- path: '/sqlserver',
- host: 'sqlserver.tencentcloudapi.com'
- },
- // bm实例列表
- bm: {
- service: 'bm',
- version: '2018-04-23',
- path: '/bm',
- host: 'bm.tencentcloudapi.com'
- },
- bmeip: {
- service: 'bmeip',
- version: '2018-06-25',
- path: '/bmeip',
- host: 'bmeip.tencentcloudapi.com'
- },
- bmvpc: {
- service: 'bmvpc',
- version: '2018-06-25',
- path: '/bmvpc',
- host: 'bmvpc.tencentcloudapi.com'
- },
- bmlb: {
- service: 'bmlb',
- version: '2018-06-25',
- path: '/bmlb',
- host: 'bmlb.tencentcloudapi.com'
- },
- // ES集群实例
- es: {
- service: 'es',
- version: '2018-04-16',
- path: '/es',
- host: 'es.tencentcloudapi.com'
- },
- // MapReduce
- emr: {
- service: 'emr',
- version: '2019-01-03',
- path: '/emr',
- host: 'emr.tencentcloudapi.com'
- },
- // CMQ消息队列
- cmq: {
- service: 'cmq',
- version: '2019-03-04',
- path: '/cmq',
- host: 'cmq.tencentcloudapi.com'
- },
- cbs: {
- service: 'cbs',
- version: '2017-03-12',
- path: '/cbs',
- host: 'cbs.tencentcloudapi.com'
- },
- // tcaplus实例
- tcaplusdb: {
- service: 'tcaplusdb',
- version: '2019-08-23',
- path: '/tcaplusdb',
- host: 'tcaplusdb.tencentcloudapi.com'
- },
- // tcaplus实例
- dcdb: {
- service: 'dcdb',
- version: '2018-04-11',
- path: '/dcdb',
- host: 'dcdb.tencentcloudapi.com'
- },
- // apigateway实例
- apigateway: {
- service: 'apigateway',
- version: '2018-08-08',
- path: '/apigateway',
- host: 'apigateway.tencentcloudapi.com'
- },
- tdmq: {
- service: 'tdmq',
- version: '2020-02-17',
- path: '/tdmq',
- host: 'tdmq.tencentcloudapi.com'
- },
- tdmq_rabbitmq: {
- service: 'tdmq',
- version: '2020-02-17',
- path: '/tdmq',
- host: 'tdmq.tencentcloudapi.com'
- },
- tdmq_rocketmq: {
- service: 'tdmq',
- version: '2020-02-17',
- path: '/tdmq',
- host: 'tdmq.tencentcloudapi.com'
- },
- gaap: {
- service: 'gaap',
- version: '2018-05-29',
- path: '/gaap',
- host: 'gaap.tencentcloudapi.com'
- },
- ecm: {
- service: 'ecm',
- version: '2019-07-19',
- path: '/ecm',
- host: 'ecm.tencentcloudapi.com'
- },
- gse: {
- service: 'gse',
- version: '2019-11-12',
- path: '/gse',
- host: 'gse.tencentcloudapi.com'
- },
- lighthouse: {
- service: 'lighthouse',
- version: '2020-03-24',
- path: '/lighthouse',
- host: 'lighthouse.tencentcloudapi.com'
- },
- tsf: {
- service: 'tsf',
- version: '2018-03-26',
- path: '/tsf',
- host: 'tsf.tencentcloudapi.com'
- },
- rum: {
- service: 'rum',
- version: '2021-06-22',
- path: '/rum',
- host: 'rum.tencentcloudapi.com'
- },
- tke: {
- service: 'tke',
- version: '2018-05-25',
- path: '/tke',
- host: 'tke.tencentcloudapi.com'
- },
- ecdn: {
- service: 'ecdn',
- version: '2019-10-12',
- path: '/ecdn',
- host: 'ecdn.tencentcloudapi.com'
- },
- waf: {
- service: 'waf',
- version: '2018-01-25',
- path: '/waf',
- host: 'waf.tencentcloudapi.com'
- },
- region: {
- service: 'region',
- version: '2022-06-27',
- path: '/region',
- host: 'region.tencentcloudapi.com'
- },
- apm: {
- service: 'apm',
- version: '2021-06-22',
- path: '/apm',
- host: 'apm.tencentcloudapi.com'
- } // 不单独定义lb,因为lb同样用的是vpc的配置,同上
- // lb: {
- // service: 'lb',
- // version: '2017-03-12',
- // path: '/lb',
- // host: 'vpc.tencentcloudapi.com'
- // }
- // 负载均衡四层协议 lbPrivate
- // lbPrivate: {
- // service: 'lbPrivate',
- // version: '2018-03-17',
- // path: '/clb',
- // host: 'clb.tencentcloudapi.com',
- // },
-
-};
-var FINACE_HOST = {
- scf: {
- 'ap-shanghai-fsi': {
- path: '/fsi/scf/shanghai',
- host: 'scf.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/scf/shenzhen',
- host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- cfs: {
- 'ap-shanghai-fsi': {
- path: '/fsi/cfs/shanghai',
- host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/cfs/shenzhen',
- host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- ckafka: {
- 'ap-shanghai-fsi': {
- path: '/fsi/ckafka/shanghai',
- host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/ckafka/shenzhen',
- host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- clb: {
- 'ap-shanghai-fsi': {
- path: '/fsi/clb/shanghai',
- host: 'clb.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/clb/shenzhen',
- host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- mongodb: {
- 'ap-shanghai-fsi': {
- path: '/fsi/mongodb/shanghai',
- host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/mongodb/shenzhen',
- host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- vpc: {
- 'ap-shanghai-fsi': {
- path: '/fsi/vpc/shanghai',
- host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/vpc/shenzhen',
- host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- cvm: {
- 'ap-shanghai-fsi': {
- path: '/fsi/cvm/shanghai',
- host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/cvm/shenzhen',
- host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- cdb: {
- 'ap-shanghai-fsi': {
- path: '/fsi/cdb/shanghai',
- host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/cdb/shenzhen',
- host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- monitor: {
- 'ap-shanghai-fsi': {
- path: '/fsi/monitor/shanghai',
- host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/monitor/shenzhen',
- host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- postgres: {
- 'ap-shanghai-fsi': {
- path: '/fsi/postgres/shanghai',
- host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/postgres/shenzhen',
- host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- emr: {
- 'ap-shanghai-fsi': {
- path: '/fsi/emr/shanghai',
- host: 'emr.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/emr/shenzhen',
- host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- cmq: {
- 'ap-shanghai-fsi': {
- path: '/fsi/cmq/shanghai',
- host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/cmq/shenzhen',
- host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- },
- cls: {
- 'ap-shanghai-fsi': {
- path: '/fsi/cls/shanghai',
- host: 'cls.ap-shanghai-fsi.tencentcloudapi.com'
- },
- 'ap-shenzhen-fsi': {
- path: '/fsi/cls/shenzhen',
- host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com'
- }
- }
-}; // 获取对应业务的 API 接口信息
-
-function GetServiceAPIInfo(region, service) {
- return __assign(__assign({}, SERVICES_API_INFO[service] || {}), getHostAndPath(region, service));
-} // get host and path for finance regions
-
-function getHostAndPath(region, service) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(FINACE_REGIONS, region) === -1) {
- return {};
- }
-
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(FINACE_HOST, function (__, key) {
- return key === service;
- }), function (__, key) {
- return key === region;
- }) || {};
-} // 变量替换指定实例按照那个字段展示
-
-
-var VARIABLE_ALIAS = 'instancealias';
-function GetServiceFromNamespace(namespace) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(_tc_monitor__WEBPACK_IMPORTED_MODULE_2__["SERVICES"], function (service) {
- return service.namespace === namespace;
- }), 'service');
-} // 处理存量target中保存的qce/cvm
-
-function GetLabelFromNamespace(namespace) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(_tc_monitor__WEBPACK_IMPORTED_MODULE_2__["SERVICES"], function (service) {
- return service.namespace === namespace || service.label === namespace;
- }), 'label');
-} // parse template variable query params
-
-function ParseMetricQuery(query) {
- if (query === void 0) {
- query = '';
- }
-
- if (!query) {
- return {};
- }
-
- var result = {};
-
- var queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(query, '&');
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item) {
- var str = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(item, '=');
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.trim(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(str, '0', ''))) {
- var val = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.trim(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(str, '1', ''));
-
- try {
- val = JSON.parse(val);
- } catch (e) {// console.log({ val });
- }
-
- result[lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toLower(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.trim(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(str, '0', '')))] = val;
- }
- });
-
- return result;
-} // parse template variable regex params
-
-function ParseMetricRegex(regex) {
- if (regex === void 0) {
- regex = '';
- }
-
- if (!regex) {
- return [];
- }
-
- regex = regex.replace(/:/g, ':');
- regex = regex.replace(/,/g, ',');
- var regexParams = ParseMetricQuery(regex);
- var result = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(regexParams, function (value, key) {
- if (key === 'tag:tag-key') {
- var valuesArr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(value, ',');
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(valuesArr, function (item) {
- var temp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(item, ':');
-
- if (temp.length === 2) {
- result.push({
- Name: "tag:".concat(temp[0]),
- Values: temp.slice(1)
- });
- }
- });
- } else {
- result.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.split(value, ',')
- });
- }
- });
-
- return result;
-} // get the actual value of template variable
-
-function parseVariableFormat(varname) {
- varname = String(varname || ''); // $varname
-
- var varFlag = false;
- var regResult1 = varname.match(/^\${?(\w+)}?/);
-
- if (regResult1) {
- varFlag = true;
- varname = "${".concat(regResult1[1], ":json}");
- } // [[varname]]
-
-
- var regResult2 = varname.match(/^\[\[(\w+)(\:\w+)?\]\]/);
-
- if (regResult2) {
- varFlag = true;
- varname = "${".concat(regResult2[1], ":json}");
- }
-
- return {
- varname: varname,
- varFlag: varFlag
- };
-}
-
-function ReplaceVariable(templateSrv, scopedVars, field, multiple) {
- if (multiple === void 0) {
- multiple = false;
- }
-
- var _a = parseVariableFormat(field),
- varname = _a.varname,
- varFlag = _a.varFlag;
-
- var replaceVar = templateSrv.replace(varname, scopedVars);
-
- if (varFlag) {
- try {
- replaceVar = JSON.parse(replaceVar);
- } catch (error) {}
- }
-
- if (!multiple && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(replaceVar)) {
- replaceVar = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(replaceVar, '0', '');
- }
-
- return replaceVar;
-} // get dimensions for instance query param
-
-function GetDimensions(obj) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(obj)) {
- return [];
- }
-
- var dimensions = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(obj, function (item) {
- if (item.Value !== null && item.Value !== undefined && item.Value !== '') {
- dimensions.push({
- Name: item.Name,
- Value: typeof item.Value === 'string' ? item.Value : "".concat(item.Value)
- });
- }
- });
-
- return dimensions;
-} // parse query data result for panel
-
-function ParseQueryResult(response, instances, timeshift) {
- if (instances === void 0) {
- instances = [];
- }
-
- if (timeshift === void 0) {
- timeshift = 0;
- }
-
- var instanceList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(instances);
-
- var dataPoints = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, 'DataPoints', []);
-
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(dataPoints, function (dataPoint) {
- var instanceAliasValue = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Dimensions[0].Value');
-
- for (var i = 0; i < instanceList.length; i++) {
- if (isInstanceMatch(instanceList[i], lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Dimensions', []))) {
- instanceAliasValue = instanceList[i]._InstanceAliasValue;
- instanceList.splice(i, 1);
- break;
- }
- }
-
- return {
- target: "".concat(response.MetricName, " - ").concat(instanceAliasValue),
- datapoints: parseDataPoint(dataPoint, timeshift)
- };
- });
-} // parse tencent cloud monitor response data to grafana panel data
-
-function parseDataPoint(dataPoint, timeshift) {
- if (timeshift === void 0) {
- timeshift = 0;
- }
-
- var timestamps = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Timestamps', []);
-
- var values = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(dataPoint, 'Values', []);
-
- var result = timestamps.map(function (timestamp, index) {
- return [values[index], timestamp * 1000 + timeshift];
- });
- return result;
-} // check whether instance is match or not
-
-
-function isInstanceMatch(instance, dimensions) {
- var match = true; // eslint-disable-next-line @typescript-eslint/prefer-for-of
-
- for (var i = 0; i < dimensions.length; i++) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) {
- match = false;
- break;
- }
- }
-
- return match;
-}
-/**
- * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]]
- *
- * @param field 变量字段名
- */
-
-
-function isVariable(value) {
- if (value && (value.match(/^\${?(\w+)}?/) || value.match(/^\[\[(\w+)(\:\w+)?\]\]/))) {
- return true;
- }
-
- return false;
-}
-/**
- * 腾讯云 API 3.0 接口协议
- * @param options 接口请求对象 { url: string, data?: object }
- * @param service 产品名字 'cvm'
- * @param signObj 接口请求相关信息 { region?: string, action: string }
- * @param secretId
- * @param secretKey
- */
-
-function GetRequestParams(options, service, signObj, secretId, datasourceId, backendSrv) {
- if (signObj === void 0) {
- signObj = {};
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var signParams, sign, _a, intranet, headerSigned;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- signParams = __assign(__assign(__assign({
- secretId: secretId,
- payload: options.data || ''
- }, signObj), lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}), {
- backendSrv: backendSrv,
- datasourceId: datasourceId,
- region: 'ap-guangzhou'
- });
- sign = new _sign__WEBPACK_IMPORTED_MODULE_3__["default"](signParams);
- return [4
- /*yield*/
- , sign.getHeader()];
-
- case 1:
- _a = _b.sent(), intranet = _a.intranet, headerSigned = __rest(_a, ["intranet"]); // 传入x-tc-language实现国际化
- // zh-CN en-US ko-KR ja-JP
-
- options.headers = Object.assign(options.headers || {}, __assign({}, headerSigned), {
- 'x-tc-language': Object(_locale__WEBPACK_IMPORTED_MODULE_6__["getLanguage"])()
- });
- options.method = 'POST';
-
- if (intranet) {
- options.url += '-internal';
- }
-
- return [2
- /*return*/
- , options];
- }
- });
- });
-}
-/**
- * 腾讯云 API 2.0 接口协议
- * @param options 接口请求对象 { url: string, data?: object }
- * @param service 产品名字 'cvm'
- * @param signObj 接口请求相关信息 { region?: string, action: string }
- * @param secretId
- * @param secretKey
- */
-
-function GetRequestParamsV2(options, service, signObj, secretId, datasourceId, backendSrv) {
- if (options === void 0) {
- options = {};
- }
-
- if (signObj === void 0) {
- signObj = {};
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var data, signParams, sign, _a, queryString, path, host, intranet;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- data = options.data || {};
- signParams = __assign(__assign(__assign({
- secretId: secretId,
- data: data
- }, signObj), lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}), {
- backendSrv: backendSrv,
- datasourceId: datasourceId
- });
- options.method = 'POST';
- sign = new _signV2__WEBPACK_IMPORTED_MODULE_4__["default"](signParams);
- options.headers = Object.assign(options.headers || {}, {
- 'Content-Type': 'application/x-www-form-urlencoded'
- });
- return [4
- /*yield*/
- , sign.generateQueryString()];
-
- case 1:
- _a = _b.sent(), queryString = _a.queryString, path = _a.path, host = _a.host, intranet = _a.intranet;
- options.data = qs__WEBPACK_IMPORTED_MODULE_1___default.a.stringify(__assign(__assign(__assign({}, options.data), queryString), host && {
- host: host
- }));
-
- if (intranet) {
- // TODO: qcloud.com intranet host
- console.log('got intranet for sign v2');
- }
-
- options.url += path;
- return [2
- /*return*/
- , options];
- }
- });
- });
-}
-function SliceLength(total, len) {
- if (total === void 0) {
- total = 0;
- }
-
- if (len === void 0) {
- len = 1;
- }
-
- var result = [];
- var num = Math.ceil(total / len);
-
- for (var i = 1; i < num; i++) {
- result.push({
- Offset: len * i
- });
- }
-
- return result;
-}
-var FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order'];
-function parseDataFromBackendPlugin(res) {
- var data = Object(_grafana_runtime__WEBPACK_IMPORTED_MODULE_5__["toDataQueryResponse"])(res).data;
- return {
- authorization: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(data, '[0].meta.custom', '')
- };
-}
-/** 当前环境是否为非生产环境 */
-
-var IS_DEVELOPMENT_ENVIRONMENT = !("development" === 'production');
-/**
- * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12
- */
-
-var CoreApp;
-
-(function (CoreApp) {
- CoreApp["CloudAlerting"] = "cloud-alerting";
- CoreApp["UnifiedAlerting"] = "unified-alerting";
- CoreApp["Dashboard"] = "dashboard";
- CoreApp["Explore"] = "explore";
- CoreApp["Unknown"] = "unknown";
- CoreApp["PanelEditor"] = "panel-editor";
- CoreApp["PanelViewer"] = "panel-viewer";
-})(CoreApp || (CoreApp = {}));
-
-/***/ }),
-
-/***/ "./datasource/common/datasourceStorage.ts":
-/*!************************************************!*\
- !*** ./datasource/common/datasourceStorage.ts ***!
- \************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _indexedDB__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./indexedDB */ "./datasource/common/indexedDB.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-var InstanceStorage =
-/** @class */
-function () {
- function InstanceStorage() {
- // prefix = 'Datasource';
- // storageKey = 'grafanaInstanceCache';
- this.insKey = 'Instances';
- this.cacheWay = '';
- }
-
- InstanceStorage.prototype.setInstance = function (service, value) {
- return this.setStorage(service, this.insKey, value, true);
- };
-
- InstanceStorage.prototype.getInstance = function (service) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , this.getStorage(service, this.insKey)];
- });
- });
- };
-
- InstanceStorage.prototype.setExtraStorage = function (service, Ekey, EValue) {
- return this.setStorage(service, Ekey, EValue, false);
- };
-
- InstanceStorage.prototype.getExtraStorage = function (service, Ekey) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , this.getStorage(service, Ekey)];
- });
- });
- };
-
- InstanceStorage.prototype.setStorage = function (serviceKey, key, value, isCover) {
- var _a;
-
- if (isCover === void 0) {
- isCover = false;
- } // console.log('set', serviceKey, key, value);
-
-
- return _indexedDB__WEBPACK_IMPORTED_MODULE_0__["default"].addData((_a = {
- service: serviceKey
- }, _a[key] = value, _a), isCover);
- }; // 获取到模版变量信息
-
-
- InstanceStorage.prototype.getStorage = function (service, key) {
- return __awaiter(this, void 0, void 0, function () {
- var storage;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _indexedDB__WEBPACK_IMPORTED_MODULE_0__["default"].getData(service)];
-
- case 1:
- storage = _a.sent(); // console.log('get', key, storage);
-
- return [2
- /*return*/
- , key ? storage === null || storage === void 0 ? void 0 : storage[key] : storage];
- }
- });
- });
- };
-
- return InstanceStorage;
-}();
-
-/* harmony default export */ __webpack_exports__["default"] = (new InstanceStorage());
-
-/***/ }),
-
-/***/ "./datasource/common/indexedDB.ts":
-/*!****************************************!*\
- !*** ./datasource/common/indexedDB.ts ***!
- \****************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-}; // interface UpdateProps {
-// storeName: string;
-// cursorKey: string;
-// cursorValue?: any;
-// data: any;
-// }
-
-
-var store = {
- name: 'grafanaInstanceList',
- key: 'service'
-};
-
-var promisify = function promisify(request, type) {
- return new Promise(function (resolve, reject) {
- request.onsuccess = function (event) {
- var returnMap = {
- event: event.target.result,
- request: request.result,
- msg: '操作成功'
- };
- resolve(returnMap[type || 'msg']);
- };
-
- request.onerror = function (event) {
- return reject(event.target.error || '操作失败');
- };
- });
-}; // 固定表名和数据库名
-
-
-var IndexedDB =
-/** @class */
-function () {
- function IndexedDB(props) {
- this.name = 'grafanaDatabase';
- this.version = 1;
- var _a = props.name,
- name = _a === void 0 ? 'database' : _a,
- _b = props.version,
- version = _b === void 0 ? 1 : _b,
- store = props.store;
- this.name = name;
- this.version = version;
- this.initDB(store);
- }
- /**
- * 初始化数据库
- * @param store 库表的结构
- */
-
-
- IndexedDB.prototype.initDB = function (store) {
- var indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
- var request = indexeddb.open(this.name, this.version);
-
- request.onupgradeneeded = function (event) {
- var db = event.target.result;
-
- if (db.objectStoreNames.contains(store.name)) {// 存在表store
- } // 遍历store,设置数据表结构
-
-
- db.createObjectStore(store.name, {
- keyPath: store.key
- });
- };
-
- request.onerror = function () {
- return Promise.reject(new Error('初始化数据库失败'));
- };
-
- request.onsuccess = function () {
- return Promise.resolve('初始化数据库成功');
- };
- };
-
- IndexedDB.prototype.openDB = function () {
- var indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
- var request = indexeddb.open(this.name, this.version);
- return promisify(request, 'event');
- };
- /**
- * 新增数据
- * @param storeName 表名
- * @param data 添加的数据
- */
-
-
- IndexedDB.prototype.insertData = function (storeName, data) {
- return __awaiter(this, void 0, void 0, function () {
- var db, transaction_1, objectStore, error_1;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 2,, 3]);
-
- return [4
- /*yield*/
- , this.openDB()];
-
- case 1:
- db = _a.sent();
- transaction_1 = db.transaction(storeName, 'readwrite');
- objectStore = transaction_1.objectStore(storeName);
- objectStore.add(data); // console.timeEnd('insertData');
-
- return [2
- /*return*/
- , new Promise(function (resolve, reject) {
- transaction_1.oncomplete = function () {
- // console.timeEnd('insertData');
- resolve('所有数据插入成功');
- };
-
- transaction_1.onerror = function (event) {
- reject(event);
- };
- })];
-
- case 2:
- error_1 = _a.sent();
- return [2
- /*return*/
- , Promise.reject(error_1)];
-
- case 3:
- return [2
- /*return*/
- ];
- }
- });
- });
- };
- /**
- * 更新数据
- * @param props 查询数据的参数以及要修改的值的参数
- */
-
-
- IndexedDB.prototype.addData = function (data, isCover) {
- return __awaiter(this, void 0, void 0, function () {
- var storeName, oldData, objectStore, newData, requestUpdate, error_2;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 3,, 4]);
-
- storeName = store.name;
- return [4
- /*yield*/
- , this.getData(data.service)];
-
- case 1:
- oldData = _a.sent();
- return [4
- /*yield*/
- , this.getObjectStore(storeName, 'readwrite')];
-
- case 2:
- objectStore = _a.sent();
-
- if (!oldData) {
- // 不存在则新建
- this.insertData(storeName, data);
- }
-
- newData = __assign(__assign({}, oldData), data);
- if (isCover) newData = data; // 需要覆盖之前内容
-
- requestUpdate = objectStore.put(newData); // console.timeEnd('updateData');
-
- return [2
- /*return*/
- , promisify(requestUpdate)];
-
- case 3:
- error_2 = _a.sent();
- return [2
- /*return*/
- , Promise.reject(error_2)];
-
- case 4:
- return [2
- /*return*/
- ];
- }
- });
- });
- };
- /**
- * 获取数据库的值,返回查询到的第一项
- * @param storeName 表名/存储对象的键
- * @param cursorKey key
- * @param cursorValue 要查询索引的值
- */
-
-
- IndexedDB.prototype.getData = function (seviceName) {
- return __awaiter(this, void 0, void 0, function () {
- var storeName, objectStore, request, error_3;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 2,, 3]);
-
- storeName = store.name;
- return [4
- /*yield*/
- , this.getObjectStore(storeName)];
-
- case 1:
- objectStore = _a.sent();
- request = objectStore.get(seviceName); // console.timeEnd('getData');
-
- return [2
- /*return*/
- , promisify(request, 'request')];
-
- case 2:
- error_3 = _a.sent();
- return [2
- /*return*/
- , Promise.reject(error_3)];
-
- case 3:
- return [2
- /*return*/
- ];
- }
- });
- });
- };
-
- IndexedDB.prototype.getAllData = function (storeName) {
- return __awaiter(this, void 0, void 0, function () {
- var objectStore, request, result, error_4;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 3,, 4]);
-
- return [4
- /*yield*/
- , this.getObjectStore(storeName)];
-
- case 1:
- objectStore = _a.sent();
- request = objectStore.getAll();
- return [4
- /*yield*/
- , promisify(request, 'request')];
-
- case 2:
- result = _a.sent(); // console.timeEnd('getAllData');
-
- return [2
- /*return*/
- , result ? result : []];
-
- case 3:
- error_4 = _a.sent();
- return [2
- /*return*/
- , Promise.reject(error_4)];
-
- case 4:
- return [2
- /*return*/
- ];
- }
- });
- });
- };
- /**
- * 获取对象仓库
- * @param storeName 表名
- * @param type readonly 或者 readwrite等
- */
-
-
- IndexedDB.prototype.getObjectStore = function (storeName, type) {
- return __awaiter(this, void 0, Promise, function () {
- var db, error_5;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 2,, 3]);
-
- return [4
- /*yield*/
- , this.openDB()];
-
- case 1:
- db = _a.sent();
- return [2
- /*return*/
- , db.transaction(storeName, type).objectStore(storeName)];
-
- case 2:
- error_5 = _a.sent();
- return [2
- /*return*/
- , Promise.reject(error_5)];
-
- case 3:
- return [2
- /*return*/
- ];
- }
- });
- });
- };
-
- return IndexedDB;
-}(); // console.log('testDDB')
-// const indexDB = new IndexedDB({store});
-// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{
-// indexDB.getData('cvm').then(dd=>{console.log({dd})})
-// })
-
-
-/* harmony default export */ __webpack_exports__["default"] = (new IndexedDB({
- store: store
-}));
-
-/***/ }),
-
-/***/ "./datasource/common/sign.ts":
-/*!***********************************!*\
- !*** ./datasource/common/sign.ts ***!
- \***********************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ "moment");
-/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-var HttpRequestMethod = 'POST';
-var CanonicalUri = '/';
-var CanonicalQueryString = '';
-var ContentType = 'application/json';
-
-var Sign =
-/** @class */
-function () {
- function Sign(options) {
- var secretId = options.secretId,
- service = options.service,
- action = options.action,
- host = options.host,
- version = options.version,
- _a = options.payload,
- payload = _a === void 0 ? '' : _a,
- region = options.region,
- backendSrv = options.backendSrv,
- datasourceId = options.datasourceId;
- this.secretId = secretId; // this.secretKey = secretKey;
-
- this.service = service;
- this.action = action;
- this.host = host;
- this.version = version;
- this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload);
- this.region = region;
- var nowDate = moment__WEBPACK_IMPORTED_MODULE_0___default()().utc();
- this.timestamp = nowDate.unix();
- this.date = nowDate.format('YYYY-MM-DD');
- this.backendSrv = backendSrv;
- this.datasourceId = datasourceId;
- }
-
- Sign.prototype.getHeader = function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , this.getResourceHeader()];
- });
- });
- };
-
- Sign.prototype.getResourceHeader = function () {
- var _a, _b, _c;
-
- return __awaiter(this, void 0, void 0, function () {
- var res, resp, err_1, authorization, token, intranet, grafanaVersion, headers;
- return __generator(this, function (_d) {
- switch (_d.label) {
- case 0:
- res = {};
- _d.label = 1;
-
- case 1:
- _d.trys.push([1, 3,, 4]);
-
- return [4
- /*yield*/
- , this.backendSrv.datasourceRequest({
- url: "/api/datasources/".concat(this.datasourceId, "/resources/sign_v3"),
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- data: {
- Host: this.host,
- Service: this.service,
- Version: this.version,
- Action: this.action,
- Region: this.region,
- Timestamp: this.timestamp,
- Method: HttpRequestMethod,
- Uri: CanonicalUri,
- Query: CanonicalQueryString,
- Body: this.payload,
- Headers: {
- 'content-type': ContentType,
- host: this.host
- }
- }
- })];
-
- case 2:
- resp = _d.sent();
- res = resp.data;
- return [3
- /*break*/
- , 4];
-
- case 3:
- err_1 = _d.sent();
- return [3
- /*break*/
- , 4];
-
- case 4:
- authorization = res.authorization, token = res.token, intranet = res.intranet;
- grafanaVersion = ((_c = (_b = (_a = window.grafanaBootData) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.buildInfo) === null || _c === void 0 ? void 0 : _c.version) || '0.0.0';
- headers = __assign(__assign(__assign({
- Authorization: authorization,
- 'Content-Type': ContentType,
- 'X-TC-Action': this.action,
- 'X-TC-Timestamp': this.timestamp.toString(),
- 'X-TC-Version': this.version,
- 'X-TC-RequestClient': "GF_".concat(grafanaVersion, "_PL_CM_").concat("2.8.7")
- }, this.region && {
- 'X-TC-Region': this.region
- }), token && {
- 'X-TC-Token': token
- }), {
- intranet: intranet
- });
- return [2
- /*return*/
- , headers];
- }
- });
- });
- };
-
- return Sign;
-}();
-
-/* harmony default export */ __webpack_exports__["default"] = (Sign);
-
-/***/ }),
-
-/***/ "./datasource/common/signV2.ts":
-/*!*************************************!*\
- !*** ./datasource/common/signV2.ts ***!
- \*************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/**
- *
- * @param defaults 为对象
- * secretId
- * secretKey
- * action
- * region
- * host
- */
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-var SignV2 =
-/** @class */
-function () {
- function SignV2(defaults) {
- var _this = this;
-
- if (defaults === void 0) {
- defaults = {};
- }
-
- this.defaults = {
- path: '/v2/index.php',
- method: 'POST'
- };
-
- this.generateQueryString = function () {
- return __awaiter(_this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , this.getResourceQueryString()];
- });
- });
- };
-
- this.defaults = Object.assign(this.defaults, defaults);
- this.defaults.secretKey = '';
- this.backendSrv = defaults.backendSrv;
- this.datasourceId = defaults.datasourceId;
- }
-
- SignV2.prototype.getResourceQueryString = function () {
- return __awaiter(this, void 0, void 0, function () {
- var res, data, payload, resp, err_1, path, querystring, host, intranet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- res = {};
- _a.label = 1;
-
- case 1:
- _a.trys.push([1, 3,, 4]);
-
- data = this.defaults.data;
- payload = typeof data === 'string' ? data : JSON.stringify(data);
- return [4
- /*yield*/
- , this.backendSrv.datasourceRequest({
- url: "/api/datasources/".concat(this.datasourceId, "/resources/sign_v2"),
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- data: {
- Host: this.defaults.host,
- Action: this.defaults.action,
- Version: this.defaults.version,
- Region: this.defaults.region,
- Method: this.defaults.method,
- Uri: this.defaults.path,
- Query: '',
- Body: payload
- }
- })];
-
- case 2:
- resp = _a.sent();
- res = resp.data;
- return [3
- /*break*/
- , 4];
-
- case 3:
- err_1 = _a.sent();
- return [3
- /*break*/
- , 4];
-
- case 4:
- path = res.path, querystring = res.querystring, host = res.host, intranet = res.intranet;
- return [2
- /*return*/
- , {
- queryString: querystring,
- path: path,
- host: host,
- intranet: intranet
- }];
- }
- });
- });
- };
-
- return SignV2;
-}();
-
-/* harmony default export */ __webpack_exports__["default"] = (SignV2);
-
-/***/ }),
-
-/***/ "./datasource/common/utils.ts":
-/*!************************************!*\
- !*** ./datasource/common/utils.ts ***!
- \************************************/
-/*! exports provided: fetchAllFactory, instanceQueryParamsBaseParse, getNamesapceFromService, serviceGroupBy, isTargetEqual, getTimeShiftInMs */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchAllFactory", function() { return fetchAllFactory; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "instanceQueryParamsBaseParse", function() { return instanceQueryParamsBaseParse; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNamesapceFromService", function() { return getNamesapceFromService; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serviceGroupBy", function() { return serviceGroupBy; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTargetEqual", function() { return isTargetEqual; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTimeShiftInMs", function() { return getTimeShiftInMs; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _tc_monitor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../tc_monitor */ "./datasource/tc_monitor/index.ts");
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-/* 从分页数据获取全量数据 */
-
-var PageSize = 50;
-
-function getFieldsValue(value, fields) {
- return fields.map(function (item) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(value, item, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(value, "Result.".concat(item), []));
- });
-}
-
-function fetchAllFactory(fetcher, _params, field) {
- var _a, _b, _c, _d, _e, _f, _g, _h;
-
- return __awaiter(this, void 0, void 0, function () {
- var params, rs, fields, TotalCount, firstLists, delta, batchCount, pmList, resultList;
- return __generator(this, function (_j) {
- switch (_j.label) {
- case 0:
- params = __assign({}, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(_params, ['isOffsetPage']));
- params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50
-
- params.Offset = (_a = params.Offset) !== null && _a !== void 0 ? _a : 0; // 默认给个Offset为0
-
- return [4
- /*yield*/
- , fetcher(params)];
-
- case 1:
- rs = (_b = _j.sent()) !== null && _b !== void 0 ? _b : {};
- fields = Array.isArray(field) ? field : [field];
- TotalCount = (_h = (_f = (_e = (_c = rs.TotalCount) !== null && _c !== void 0 ? _c : (_d = rs.Result) === null || _d === void 0 ? void 0 : _d.TotalCount) !== null && _e !== void 0 ? _e : rs.TotalCnt) !== null && _f !== void 0 ? _f : (_g = rs.Result) === null || _g === void 0 ? void 0 : _g.TotalCnt) !== null && _h !== void 0 ? _h : 0;
- firstLists = getFieldsValue(rs, fields);
-
- if (TotalCount === 0 || firstLists[0].length === TotalCount) {
- // 只有一页,结束
- return [2
- /*return*/
- , firstLists];
- }
-
- delta = TotalCount - firstLists[0].length;
- batchCount = Math.ceil(delta / PageSize);
- pmList = new Array(batchCount).fill(0).map(function (_, index) {
- params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit;
- return fetcher(params);
- });
- return [4
- /*yield*/
- , Promise.all(pmList)];
-
- case 2:
- resultList = _j.sent();
- return [2
- /*return*/
- , resultList.reduce(function (acc, cur) {
- var lists = getFieldsValue(cur, fields); // [[], [], []] + [[], [], []]
-
- acc.forEach(function (list, index) {
- return list.push.apply(list, lists[index]);
- });
- return acc;
- }, firstLists)];
- }
- });
- });
-}
-/**
- * 实例列表接口入参处理
- *
- * @param queries 表单键入内容
- * @param isFilter 是否需要设置为Filters格式
- */
-
-function instanceQueryParamsBaseParse(queries, isFilter) {
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- if (isFilter) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- } else {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- if (isFilter) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- } else {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- }
- } else if (item !== null && item !== undefined && item !== '') {
- if (isFilter) {
- Filters_1.push({
- Name: key,
- Values: item
- });
- } else {
- params[key] = item;
- }
- }
- });
-
- if (isFilter && Filters_1.length > 0) {
- params.Filters = Filters_1;
- return params;
- }
- }
-
- return params;
-}
-function getNamesapceFromService(serviceName) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(_tc_monitor__WEBPACK_IMPORTED_MODULE_1__["SERVICES"], function (service) {
- return service.service === serviceName;
- }), 'namespace');
-}
-function serviceGroupBy(services) {
- var result = services.reduce(function (acc, cur) {
- var namespace = cur.namespace,
- label = cur.label,
- _a = cur.groupName,
- groupName = _a === void 0 ? label : _a;
- var existedGroup = acc.find(function (item) {
- return item.label === groupName;
- });
-
- if (!existedGroup) {
- acc.push({
- label: groupName,
- value: groupName,
- items: [{
- label: label,
- value: namespace
- }]
- });
- return acc;
- }
-
- existedGroup.items.push({
- label: label,
- value: namespace
- });
- return acc;
- }, []); // 将只有一个子元素的项目进行特殊处理
-
- var rs = result.map(function (item) {
- return item.items.length === 1 ? {
- label: item.items[0].label,
- value: item.items[0].value
- } : item;
- });
- return rs;
-}
-var isTargetEqual = function isTargetEqual(newTargetString, oldTargetString, key) {
- try {
- var newTarget = JSON.parse(newTargetString);
- var oldTarget = JSON.parse(oldTargetString);
- return newTarget[key] === oldTarget[key];
- } catch (e) {
- return newTargetString === oldTargetString;
- }
-};
-var getTimeShiftInMs = function getTimeShiftInMs(timeShift) {
- var parts = /^(\d+)([d|h|m|s])$/.exec(timeShift);
-
- if (!parts) {
- return 0;
- }
-
- var amount = parseInt(parts[1], 10);
- var unit = parts[2];
-
- switch (unit) {
- case 'd':
- return amount * 86400 * 1000;
-
- case 'h':
- return amount * 3600 * 1000;
-
- case 'm':
- return amount * 60 * 1000;
-
- case 's':
- return amount * 1000;
- }
-
- return 0;
-};
-
-/***/ }),
-
-/***/ "./datasource/plugin.json":
-/*!********************************!*\
- !*** ./datasource/plugin.json ***!
- \********************************/
-/*! exports provided: type, name, id, backend, alerting, logs, metrics, annotations, executable, queryOptions, routes, info, default */
-/***/ (function(module) {
-
-module.exports = JSON.parse("{\"type\":\"datasource\",\"name\":\"Tencent Cloud Monitoring\",\"id\":\"tencentcloud-monitor-datasource\",\"backend\":true,\"alerting\":true,\"logs\":true,\"metrics\":true,\"annotations\":false,\"executable\":\"tencentcloud-monitor-app-backend\",\"queryOptions\":{\"maxDataPoints\":true},\"routes\":[{\"path\":\"cls-internal\",\"url\":\"https://cls.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"region-internal\",\"url\":\"https://region.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"api-internal\",\"url\":\"https://api.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cmq-internal\",\"url\":\"https://cmq.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shanghai-internal\",\"url\":\"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shenzhen-internal\",\"url\":\"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"emr-internal\",\"url\":\"https://emr.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shanghai-internal\",\"url\":\"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shenzhen-internal\",\"url\":\"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"scf-internal\",\"url\":\"https://scf.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shanghai-internal\",\"url\":\"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shenzhen-internal\",\"url\":\"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cfs-internal\",\"url\":\"https://cfs.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shanghai-internal\",\"url\":\"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shenzhen-internal\",\"url\":\"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ckafka-internal\",\"url\":\"https://ckafka.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shanghai-internal\",\"url\":\"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shenzhen-internal\",\"url\":\"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"clb-internal\",\"url\":\"https://clb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shanghai-internal\",\"url\":\"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shenzhen-internal\",\"url\":\"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"mongodb-internal\",\"url\":\"https://mongodb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shanghai-internal\",\"url\":\"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shenzhen-internal\",\"url\":\"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"vpc-internal\",\"url\":\"https://vpc.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shanghai-internal\",\"url\":\"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shenzhen-internal\",\"url\":\"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"pcx-internal\",\"url\":\"https://vpc.api.qcloud.com.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/x-www-form-urlencoded\"}]},{\"path\":\"cvm-internal\",\"url\":\"https://cvm.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shanghai-internal\",\"url\":\"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shenzhen-internal\",\"url\":\"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"monitor-internal\",\"url\":\"https://monitor.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shanghai-internal\",\"url\":\"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shenzhen-internal\",\"url\":\"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdb-internal\",\"url\":\"https://cdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shanghai-internal\",\"url\":\"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shenzhen-internal\",\"url\":\"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"postgres-internal\",\"url\":\"https://postgres.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shanghai-internal\",\"url\":\"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shenzhen-internal\",\"url\":\"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdn-internal\",\"url\":\"https://cdn.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"redis-internal\",\"url\":\"https://redis.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dcdb-internal\",\"url\":\"https://dcdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dc-internal\",\"url\":\"https://dc.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cynosdb-internal\",\"url\":\"https://cynosdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"sqlserver-internal\",\"url\":\"https://sqlserver.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmeip-internal\",\"url\":\"https://bmeip.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmvpc-internal\",\"url\":\"https://bmvpc.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmlb-internal\",\"url\":\"https://bmlb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bm-internal\",\"url\":\"https://bm.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"es-internal\",\"url\":\"https://es.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cbs-internal\",\"url\":\"https://cbs.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tcaplusdb-internal\",\"url\":\"https://tcaplusdb.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"apigateway-internal\",\"url\":\"https://apigateway.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tdmq-internal\",\"url\":\"https://tdmq.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gaap-internal\",\"url\":\"https://gaap.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecm-internal\",\"url\":\"https://ecm.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gse-internal\",\"url\":\"https://gse.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"lighthouse-internal\",\"url\":\"https://lighthouse.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tsf-internal\",\"url\":\"https://tsf.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"rum-internal\",\"url\":\"https://rum.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tke-internal\",\"url\":\"https://tke.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecdn-internal\",\"url\":\"https://ecdn.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"waf-internal\",\"url\":\"https://waf.internal.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"apigateway\",\"url\":\"https://apigateway.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"api\",\"url\":\"https://api.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cmq\",\"url\":\"https://cmq.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shanghai\",\"url\":\"https://cmq.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cmq/shenzhen\",\"url\":\"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"emr\",\"url\":\"https://emr.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shanghai\",\"url\":\"https://emr.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/emr/shenzhen\",\"url\":\"https://emr.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"scf\",\"url\":\"https://scf.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shanghai\",\"url\":\"https://scf.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/scf/shenzhen\",\"url\":\"https://scf.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cfs\",\"url\":\"https://cfs.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shanghai\",\"url\":\"https://cfs.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cfs/shenzhen\",\"url\":\"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ckafka\",\"url\":\"https://ckafka.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shanghai\",\"url\":\"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/ckafka/shenzhen\",\"url\":\"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"clb\",\"url\":\"https://clb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shanghai\",\"url\":\"https://clb.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/clb/shenzhen\",\"url\":\"https://clb.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"mongodb\",\"url\":\"https://mongodb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shanghai\",\"url\":\"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/mongodb/shenzhen\",\"url\":\"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"vpc\",\"url\":\"https://vpc.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shanghai\",\"url\":\"https://vpc.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/vpc/shenzhen\",\"url\":\"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"pcx\",\"url\":\"https://vpc.api.qcloud.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/x-www-form-urlencoded\"}]},{\"path\":\"cvm\",\"url\":\"https://cvm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shanghai\",\"url\":\"https://cvm.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cvm/shenzhen\",\"url\":\"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"monitor\",\"url\":\"https://monitor.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shanghai\",\"url\":\"https://monitor.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/monitor/shenzhen\",\"url\":\"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdb\",\"url\":\"https://cdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shanghai\",\"url\":\"https://cdb.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cdb/shenzhen\",\"url\":\"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"postgres\",\"url\":\"https://postgres.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shanghai\",\"url\":\"https://postgres.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/postgres/shenzhen\",\"url\":\"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cdn\",\"url\":\"https://cdn.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"redis\",\"url\":\"https://redis.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dcdb\",\"url\":\"https://dcdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"dc\",\"url\":\"https://dc.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cynosdb\",\"url\":\"https://cynosdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"sqlserver\",\"url\":\"https://sqlserver.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmeip\",\"url\":\"https://bmeip.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmvpc\",\"url\":\"https://bmvpc.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bmlb\",\"url\":\"https://bmlb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"bm\",\"url\":\"https://bm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"es\",\"url\":\"https://es.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cbs\",\"url\":\"https://cbs.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tcaplusdb\",\"url\":\"https://tcaplusdb.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tdmq\",\"url\":\"https://tdmq.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gaap\",\"url\":\"https://gaap.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecm\",\"url\":\"https://ecm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"gse\",\"url\":\"https://gse.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"cls\",\"url\":\"https://cls.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cls/shanghai\",\"url\":\"https://cls.ap-shanghai-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"fsi/cls/shenzhen\",\"url\":\"https://cls.ap-shenzhen-fsi.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"region\",\"url\":\"https://region.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"lighthouse\",\"url\":\"https://lighthouse.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tsf\",\"url\":\"https://tsf.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"rum\",\"url\":\"https://rum.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"apm\",\"url\":\"https://apm.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"tke\",\"url\":\"https://tke.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"ecdn\",\"url\":\"https://ecdn.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]},{\"path\":\"waf\",\"url\":\"https://waf.tencentcloudapi.com\",\"headers\":[{\"name\":\"Content-Type\",\"content\":\"application/json\"}]}],\"info\":{\"author\":{\"name\":\"Tencent Cloud\"},\"logos\":{\"small\":\"img/tencent-cloud.svg\",\"large\":\"img/tencent-cloud.svg\"},\"description\":\"Data source for Tencent Cloud monitoring service\"}}");
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor sync recursive ^.*$":
-/*!*****************************************!*\
- !*** ./datasource/tc_monitor sync ^.*$ ***!
- \*****************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-var map = {
- ".": "./datasource/tc_monitor/index.ts",
- "./": "./datasource/tc_monitor/index.ts",
- "./MonitorDatasource": "./datasource/tc_monitor/MonitorDatasource.ts",
- "./MonitorDatasource.ts": "./datasource/tc_monitor/MonitorDatasource.ts",
- "./_base/datasource": "./datasource/tc_monitor/_base/datasource.ts",
- "./_base/datasource.ts": "./datasource/tc_monitor/_base/datasource.ts",
- "./_base/query": "./datasource/tc_monitor/_base/query.ts",
- "./_base/query.ts": "./datasource/tc_monitor/_base/query.ts",
- "./_base/query_filter": "./datasource/tc_monitor/_base/query_filter.ts",
- "./_base/query_filter.ts": "./datasource/tc_monitor/_base/query_filter.ts",
- "./_base/types": "./datasource/tc_monitor/_base/types.ts",
- "./_base/types.ts": "./datasource/tc_monitor/_base/types.ts",
- "./apigateway/datasource": "./datasource/tc_monitor/apigateway/datasource.ts",
- "./apigateway/datasource.ts": "./datasource/tc_monitor/apigateway/datasource.ts",
- "./apigateway/query": "./datasource/tc_monitor/apigateway/query.ts",
- "./apigateway/query.ts": "./datasource/tc_monitor/apigateway/query.ts",
- "./apigateway/query_def": "./datasource/tc_monitor/apigateway/query_def.ts",
- "./apigateway/query_def.ts": "./datasource/tc_monitor/apigateway/query_def.ts",
- "./bmIntraLb/datasource": "./datasource/tc_monitor/bmIntraLb/datasource.ts",
- "./bmIntraLb/datasource.ts": "./datasource/tc_monitor/bmIntraLb/datasource.ts",
- "./bmIntraLb/query": "./datasource/tc_monitor/bmIntraLb/query.ts",
- "./bmIntraLb/query.ts": "./datasource/tc_monitor/bmIntraLb/query.ts",
- "./bmIntraLb/query_def": "./datasource/tc_monitor/bmIntraLb/query_def.ts",
- "./bmIntraLb/query_def.ts": "./datasource/tc_monitor/bmIntraLb/query_def.ts",
- "./bm_lb/datasource": "./datasource/tc_monitor/bm_lb/datasource.ts",
- "./bm_lb/datasource.ts": "./datasource/tc_monitor/bm_lb/datasource.ts",
- "./bm_lb/query": "./datasource/tc_monitor/bm_lb/query.ts",
- "./bm_lb/query.ts": "./datasource/tc_monitor/bm_lb/query.ts",
- "./bm_lb/query_def": "./datasource/tc_monitor/bm_lb/query_def.ts",
- "./bm_lb/query_def.ts": "./datasource/tc_monitor/bm_lb/query_def.ts",
- "./bm_pcx/datasource": "./datasource/tc_monitor/bm_pcx/datasource.ts",
- "./bm_pcx/datasource.ts": "./datasource/tc_monitor/bm_pcx/datasource.ts",
- "./bm_pcx/query": "./datasource/tc_monitor/bm_pcx/query.ts",
- "./bm_pcx/query.ts": "./datasource/tc_monitor/bm_pcx/query.ts",
- "./bm_pcx/query_def": "./datasource/tc_monitor/bm_pcx/query_def.ts",
- "./bm_pcx/query_def.ts": "./datasource/tc_monitor/bm_pcx/query_def.ts",
- "./bwp/datasource": "./datasource/tc_monitor/bwp/datasource.ts",
- "./bwp/datasource.ts": "./datasource/tc_monitor/bwp/datasource.ts",
- "./bwp/query": "./datasource/tc_monitor/bwp/query.ts",
- "./bwp/query.ts": "./datasource/tc_monitor/bwp/query.ts",
- "./bwp/query_def": "./datasource/tc_monitor/bwp/query_def.ts",
- "./bwp/query_def.ts": "./datasource/tc_monitor/bwp/query_def.ts",
- "./cbs/datasource": "./datasource/tc_monitor/cbs/datasource.ts",
- "./cbs/datasource.ts": "./datasource/tc_monitor/cbs/datasource.ts",
- "./cbs/query": "./datasource/tc_monitor/cbs/query.ts",
- "./cbs/query.ts": "./datasource/tc_monitor/cbs/query.ts",
- "./cbs/query_def": "./datasource/tc_monitor/cbs/query_def.ts",
- "./cbs/query_def.ts": "./datasource/tc_monitor/cbs/query_def.ts",
- "./cdb/datasource": "./datasource/tc_monitor/cdb/datasource.ts",
- "./cdb/datasource.ts": "./datasource/tc_monitor/cdb/datasource.ts",
- "./cdb/query": "./datasource/tc_monitor/cdb/query.ts",
- "./cdb/query.ts": "./datasource/tc_monitor/cdb/query.ts",
- "./cdb/query_def": "./datasource/tc_monitor/cdb/query_def.ts",
- "./cdb/query_def.ts": "./datasource/tc_monitor/cdb/query_def.ts",
- "./cdn/datasource": "./datasource/tc_monitor/cdn/datasource.ts",
- "./cdn/datasource.ts": "./datasource/tc_monitor/cdn/datasource.ts",
- "./cdn/query": "./datasource/tc_monitor/cdn/query.ts",
- "./cdn/query.ts": "./datasource/tc_monitor/cdn/query.ts",
- "./cdn/query_def": "./datasource/tc_monitor/cdn/query_def.ts",
- "./cdn/query_def.ts": "./datasource/tc_monitor/cdn/query_def.ts",
- "./cdn_province/datasource": "./datasource/tc_monitor/cdn_province/datasource.ts",
- "./cdn_province/datasource.ts": "./datasource/tc_monitor/cdn_province/datasource.ts",
- "./cdn_province/query": "./datasource/tc_monitor/cdn_province/query.ts",
- "./cdn_province/query.ts": "./datasource/tc_monitor/cdn_province/query.ts",
- "./cdn_province/query_def": "./datasource/tc_monitor/cdn_province/query_def.ts",
- "./cdn_province/query_def.ts": "./datasource/tc_monitor/cdn_province/query_def.ts",
- "./ceip_summary/datasource": "./datasource/tc_monitor/ceip_summary/datasource.ts",
- "./ceip_summary/datasource.ts": "./datasource/tc_monitor/ceip_summary/datasource.ts",
- "./ceip_summary/query": "./datasource/tc_monitor/ceip_summary/query.ts",
- "./ceip_summary/query.ts": "./datasource/tc_monitor/ceip_summary/query.ts",
- "./ceip_summary/query_def": "./datasource/tc_monitor/ceip_summary/query_def.ts",
- "./ceip_summary/query_def.ts": "./datasource/tc_monitor/ceip_summary/query_def.ts",
- "./ces/datasource": "./datasource/tc_monitor/ces/datasource.ts",
- "./ces/datasource.ts": "./datasource/tc_monitor/ces/datasource.ts",
- "./ces/query": "./datasource/tc_monitor/ces/query.ts",
- "./ces/query.ts": "./datasource/tc_monitor/ces/query.ts",
- "./ces/query_def": "./datasource/tc_monitor/ces/query_def.ts",
- "./ces/query_def.ts": "./datasource/tc_monitor/ces/query_def.ts",
- "./cfs/datasource": "./datasource/tc_monitor/cfs/datasource.ts",
- "./cfs/datasource.ts": "./datasource/tc_monitor/cfs/datasource.ts",
- "./cfs/query": "./datasource/tc_monitor/cfs/query.ts",
- "./cfs/query.ts": "./datasource/tc_monitor/cfs/query.ts",
- "./cfs/query_def": "./datasource/tc_monitor/cfs/query_def.ts",
- "./cfs/query_def.ts": "./datasource/tc_monitor/cfs/query_def.ts",
- "./ckafka/datasource": "./datasource/tc_monitor/ckafka/datasource.ts",
- "./ckafka/datasource.ts": "./datasource/tc_monitor/ckafka/datasource.ts",
- "./ckafka/query": "./datasource/tc_monitor/ckafka/query.ts",
- "./ckafka/query.ts": "./datasource/tc_monitor/ckafka/query.ts",
- "./ckafka/query_def": "./datasource/tc_monitor/ckafka/query_def.ts",
- "./ckafka/query_def.ts": "./datasource/tc_monitor/ckafka/query_def.ts",
- "./clb/datasource": "./datasource/tc_monitor/clb/datasource.ts",
- "./clb/datasource.ts": "./datasource/tc_monitor/clb/datasource.ts",
- "./clb/query": "./datasource/tc_monitor/clb/query.ts",
- "./clb/query.ts": "./datasource/tc_monitor/clb/query.ts",
- "./clb/query_def": "./datasource/tc_monitor/clb/query_def.ts",
- "./clb/query_def.ts": "./datasource/tc_monitor/clb/query_def.ts",
- "./cls/datasource": "./datasource/tc_monitor/cls/datasource.ts",
- "./cls/datasource.ts": "./datasource/tc_monitor/cls/datasource.ts",
- "./cls/query": "./datasource/tc_monitor/cls/query.ts",
- "./cls/query.ts": "./datasource/tc_monitor/cls/query.ts",
- "./cls/query_def": "./datasource/tc_monitor/cls/query_def.ts",
- "./cls/query_def.ts": "./datasource/tc_monitor/cls/query_def.ts",
- "./cmq/datasource": "./datasource/tc_monitor/cmq/datasource.ts",
- "./cmq/datasource.ts": "./datasource/tc_monitor/cmq/datasource.ts",
- "./cmq/query": "./datasource/tc_monitor/cmq/query.ts",
- "./cmq/query.ts": "./datasource/tc_monitor/cmq/query.ts",
- "./cmq/query_def": "./datasource/tc_monitor/cmq/query_def.ts",
- "./cmq/query_def.ts": "./datasource/tc_monitor/cmq/query_def.ts",
- "./cmq_topic/datasource": "./datasource/tc_monitor/cmq_topic/datasource.ts",
- "./cmq_topic/datasource.ts": "./datasource/tc_monitor/cmq_topic/datasource.ts",
- "./cmq_topic/query": "./datasource/tc_monitor/cmq_topic/query.ts",
- "./cmq_topic/query.ts": "./datasource/tc_monitor/cmq_topic/query.ts",
- "./cmq_topic/query_def": "./datasource/tc_monitor/cmq_topic/query_def.ts",
- "./cmq_topic/query_def.ts": "./datasource/tc_monitor/cmq_topic/query_def.ts",
- "./cos/datasource": "./datasource/tc_monitor/cos/datasource.ts",
- "./cos/datasource.ts": "./datasource/tc_monitor/cos/datasource.ts",
- "./cos/query_def": "./datasource/tc_monitor/cos/query_def.ts",
- "./cos/query_def.ts": "./datasource/tc_monitor/cos/query_def.ts",
- "./cpm/datasource": "./datasource/tc_monitor/cpm/datasource.ts",
- "./cpm/datasource.ts": "./datasource/tc_monitor/cpm/datasource.ts",
- "./cpm/query": "./datasource/tc_monitor/cpm/query.ts",
- "./cpm/query.ts": "./datasource/tc_monitor/cpm/query.ts",
- "./cpm/query_def": "./datasource/tc_monitor/cpm/query_def.ts",
- "./cpm/query_def.ts": "./datasource/tc_monitor/cpm/query_def.ts",
- "./cvm/datasource": "./datasource/tc_monitor/cvm/datasource.ts",
- "./cvm/datasource.ts": "./datasource/tc_monitor/cvm/datasource.ts",
- "./cvm/query": "./datasource/tc_monitor/cvm/query.ts",
- "./cvm/query.ts": "./datasource/tc_monitor/cvm/query.ts",
- "./cvm/query_def": "./datasource/tc_monitor/cvm/query_def.ts",
- "./cvm/query_def.ts": "./datasource/tc_monitor/cvm/query_def.ts",
- "./cynosdb_mysql/datasource": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts",
- "./cynosdb_mysql/datasource.ts": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts",
- "./cynosdb_mysql/query": "./datasource/tc_monitor/cynosdb_mysql/query.ts",
- "./cynosdb_mysql/query.ts": "./datasource/tc_monitor/cynosdb_mysql/query.ts",
- "./cynosdb_mysql/query_def": "./datasource/tc_monitor/cynosdb_mysql/query_def.ts",
- "./cynosdb_mysql/query_def.ts": "./datasource/tc_monitor/cynosdb_mysql/query_def.ts",
- "./dc/datasource": "./datasource/tc_monitor/dc/datasource.ts",
- "./dc/datasource.ts": "./datasource/tc_monitor/dc/datasource.ts",
- "./dc/query": "./datasource/tc_monitor/dc/query.ts",
- "./dc/query.ts": "./datasource/tc_monitor/dc/query.ts",
- "./dc/query_def": "./datasource/tc_monitor/dc/query_def.ts",
- "./dc/query_def.ts": "./datasource/tc_monitor/dc/query_def.ts",
- "./dcdb/datasource": "./datasource/tc_monitor/dcdb/datasource.ts",
- "./dcdb/datasource.ts": "./datasource/tc_monitor/dcdb/datasource.ts",
- "./dcdb/query": "./datasource/tc_monitor/dcdb/query.ts",
- "./dcdb/query.ts": "./datasource/tc_monitor/dcdb/query.ts",
- "./dcdb/query_def": "./datasource/tc_monitor/dcdb/query_def.ts",
- "./dcdb/query_def.ts": "./datasource/tc_monitor/dcdb/query_def.ts",
- "./dcg/datasource": "./datasource/tc_monitor/dcg/datasource.ts",
- "./dcg/datasource.ts": "./datasource/tc_monitor/dcg/datasource.ts",
- "./dcg/query": "./datasource/tc_monitor/dcg/query.ts",
- "./dcg/query.ts": "./datasource/tc_monitor/dcg/query.ts",
- "./dcg/query_def": "./datasource/tc_monitor/dcg/query_def.ts",
- "./dcg/query_def.ts": "./datasource/tc_monitor/dcg/query_def.ts",
- "./dcx/datasource": "./datasource/tc_monitor/dcx/datasource.ts",
- "./dcx/datasource.ts": "./datasource/tc_monitor/dcx/datasource.ts",
- "./dcx/query": "./datasource/tc_monitor/dcx/query.ts",
- "./dcx/query.ts": "./datasource/tc_monitor/dcx/query.ts",
- "./dcx/query_def": "./datasource/tc_monitor/dcx/query_def.ts",
- "./dcx/query_def.ts": "./datasource/tc_monitor/dcx/query_def.ts",
- "./ecdn/datasource": "./datasource/tc_monitor/ecdn/datasource.ts",
- "./ecdn/datasource.ts": "./datasource/tc_monitor/ecdn/datasource.ts",
- "./ecdn/query": "./datasource/tc_monitor/ecdn/query.ts",
- "./ecdn/query.ts": "./datasource/tc_monitor/ecdn/query.ts",
- "./ecdn/query_def": "./datasource/tc_monitor/ecdn/query_def.ts",
- "./ecdn/query_def.ts": "./datasource/tc_monitor/ecdn/query_def.ts",
- "./ecm/datasource": "./datasource/tc_monitor/ecm/datasource.ts",
- "./ecm/datasource.ts": "./datasource/tc_monitor/ecm/datasource.ts",
- "./ecm/query": "./datasource/tc_monitor/ecm/query.ts",
- "./ecm/query.ts": "./datasource/tc_monitor/ecm/query.ts",
- "./ecm/query_def": "./datasource/tc_monitor/ecm/query_def.ts",
- "./ecm/query_def.ts": "./datasource/tc_monitor/ecm/query_def.ts",
- "./ecm_block_storage/datasource": "./datasource/tc_monitor/ecm_block_storage/datasource.ts",
- "./ecm_block_storage/datasource.ts": "./datasource/tc_monitor/ecm_block_storage/datasource.ts",
- "./ecm_block_storage/query": "./datasource/tc_monitor/ecm_block_storage/query.ts",
- "./ecm_block_storage/query.ts": "./datasource/tc_monitor/ecm_block_storage/query.ts",
- "./ecm_block_storage/query_def": "./datasource/tc_monitor/ecm_block_storage/query_def.ts",
- "./ecm_block_storage/query_def.ts": "./datasource/tc_monitor/ecm_block_storage/query_def.ts",
- "./ecm_lb/datasource": "./datasource/tc_monitor/ecm_lb/datasource.ts",
- "./ecm_lb/datasource.ts": "./datasource/tc_monitor/ecm_lb/datasource.ts",
- "./ecm_lb/query": "./datasource/tc_monitor/ecm_lb/query.ts",
- "./ecm_lb/query.ts": "./datasource/tc_monitor/ecm_lb/query.ts",
- "./ecm_lb/query_def": "./datasource/tc_monitor/ecm_lb/query_def.ts",
- "./ecm_lb/query_def.ts": "./datasource/tc_monitor/ecm_lb/query_def.ts",
- "./gse/datasource": "./datasource/tc_monitor/gse/datasource.ts",
- "./gse/datasource.ts": "./datasource/tc_monitor/gse/datasource.ts",
- "./gse/query": "./datasource/tc_monitor/gse/query.ts",
- "./gse/query.ts": "./datasource/tc_monitor/gse/query.ts",
- "./gse/query_def": "./datasource/tc_monitor/gse/query_def.ts",
- "./gse/query_def.ts": "./datasource/tc_monitor/gse/query_def.ts",
- "./index": "./datasource/tc_monitor/index.ts",
- "./index.ts": "./datasource/tc_monitor/index.ts",
- "./lb/datasource": "./datasource/tc_monitor/lb/datasource.ts",
- "./lb/datasource.ts": "./datasource/tc_monitor/lb/datasource.ts",
- "./lb/query": "./datasource/tc_monitor/lb/query.ts",
- "./lb/query.ts": "./datasource/tc_monitor/lb/query.ts",
- "./lb/query_def": "./datasource/tc_monitor/lb/query_def.ts",
- "./lb/query_def.ts": "./datasource/tc_monitor/lb/query_def.ts",
- "./lighthouse/datasource": "./datasource/tc_monitor/lighthouse/datasource.ts",
- "./lighthouse/datasource.ts": "./datasource/tc_monitor/lighthouse/datasource.ts",
- "./lighthouse/query": "./datasource/tc_monitor/lighthouse/query.ts",
- "./lighthouse/query.ts": "./datasource/tc_monitor/lighthouse/query.ts",
- "./lighthouse/query_def": "./datasource/tc_monitor/lighthouse/query_def.ts",
- "./lighthouse/query_def.ts": "./datasource/tc_monitor/lighthouse/query_def.ts",
- "./mongodb/datasource": "./datasource/tc_monitor/mongodb/datasource.ts",
- "./mongodb/datasource.ts": "./datasource/tc_monitor/mongodb/datasource.ts",
- "./mongodb/query": "./datasource/tc_monitor/mongodb/query.ts",
- "./mongodb/query.ts": "./datasource/tc_monitor/mongodb/query.ts",
- "./mongodb/query_def": "./datasource/tc_monitor/mongodb/query_def.ts",
- "./mongodb/query_def.ts": "./datasource/tc_monitor/mongodb/query_def.ts",
- "./mr/datasource": "./datasource/tc_monitor/mr/datasource.ts",
- "./mr/datasource.ts": "./datasource/tc_monitor/mr/datasource.ts",
- "./mr/query": "./datasource/tc_monitor/mr/query.ts",
- "./mr/query.ts": "./datasource/tc_monitor/mr/query.ts",
- "./mr/query_def": "./datasource/tc_monitor/mr/query_def.ts",
- "./mr/query_def.ts": "./datasource/tc_monitor/mr/query_def.ts",
- "./nat_gateway/datasource": "./datasource/tc_monitor/nat_gateway/datasource.ts",
- "./nat_gateway/datasource.ts": "./datasource/tc_monitor/nat_gateway/datasource.ts",
- "./nat_gateway/query": "./datasource/tc_monitor/nat_gateway/query.ts",
- "./nat_gateway/query.ts": "./datasource/tc_monitor/nat_gateway/query.ts",
- "./nat_gateway/query_def": "./datasource/tc_monitor/nat_gateway/query_def.ts",
- "./nat_gateway/query_def.ts": "./datasource/tc_monitor/nat_gateway/query_def.ts",
- "./ov_cdn/datasource": "./datasource/tc_monitor/ov_cdn/datasource.ts",
- "./ov_cdn/datasource.ts": "./datasource/tc_monitor/ov_cdn/datasource.ts",
- "./ov_cdn/query": "./datasource/tc_monitor/ov_cdn/query.ts",
- "./ov_cdn/query.ts": "./datasource/tc_monitor/ov_cdn/query.ts",
- "./ov_cdn/query_def": "./datasource/tc_monitor/ov_cdn/query_def.ts",
- "./ov_cdn/query_def.ts": "./datasource/tc_monitor/ov_cdn/query_def.ts",
- "./pcx/datasource": "./datasource/tc_monitor/pcx/datasource.ts",
- "./pcx/datasource.ts": "./datasource/tc_monitor/pcx/datasource.ts",
- "./pcx/query": "./datasource/tc_monitor/pcx/query.ts",
- "./pcx/query.ts": "./datasource/tc_monitor/pcx/query.ts",
- "./pcx/query_def": "./datasource/tc_monitor/pcx/query_def.ts",
- "./pcx/query_def.ts": "./datasource/tc_monitor/pcx/query_def.ts",
- "./postgresql/datasource": "./datasource/tc_monitor/postgresql/datasource.ts",
- "./postgresql/datasource.ts": "./datasource/tc_monitor/postgresql/datasource.ts",
- "./postgresql/query": "./datasource/tc_monitor/postgresql/query.ts",
- "./postgresql/query.ts": "./datasource/tc_monitor/postgresql/query.ts",
- "./postgresql/query_def": "./datasource/tc_monitor/postgresql/query_def.ts",
- "./postgresql/query_def.ts": "./datasource/tc_monitor/postgresql/query_def.ts",
- "./qaap/datasource": "./datasource/tc_monitor/qaap/datasource.ts",
- "./qaap/datasource.ts": "./datasource/tc_monitor/qaap/datasource.ts",
- "./qaap/query": "./datasource/tc_monitor/qaap/query.ts",
- "./qaap/query.ts": "./datasource/tc_monitor/qaap/query.ts",
- "./qaap/query_def": "./datasource/tc_monitor/qaap/query_def.ts",
- "./qaap/query_def.ts": "./datasource/tc_monitor/qaap/query_def.ts",
- "./redis/datasource": "./datasource/tc_monitor/redis/datasource.ts",
- "./redis/datasource.ts": "./datasource/tc_monitor/redis/datasource.ts",
- "./redis/query": "./datasource/tc_monitor/redis/query.ts",
- "./redis/query.ts": "./datasource/tc_monitor/redis/query.ts",
- "./redis/query_def": "./datasource/tc_monitor/redis/query_def.ts",
- "./redis/query_def.ts": "./datasource/tc_monitor/redis/query_def.ts",
- "./redis_mem/datasource": "./datasource/tc_monitor/redis_mem/datasource.ts",
- "./redis_mem/datasource.ts": "./datasource/tc_monitor/redis_mem/datasource.ts",
- "./redis_mem/query": "./datasource/tc_monitor/redis_mem/query.ts",
- "./redis_mem/query.ts": "./datasource/tc_monitor/redis_mem/query.ts",
- "./redis_mem/query_def": "./datasource/tc_monitor/redis_mem/query_def.ts",
- "./redis_mem/query_def.ts": "./datasource/tc_monitor/redis_mem/query_def.ts",
- "./scf/datasource": "./datasource/tc_monitor/scf/datasource.ts",
- "./scf/datasource.ts": "./datasource/tc_monitor/scf/datasource.ts",
- "./scf/query": "./datasource/tc_monitor/scf/query.ts",
- "./scf/query.ts": "./datasource/tc_monitor/scf/query.ts",
- "./scf/query_def": "./datasource/tc_monitor/scf/query_def.ts",
- "./scf/query_def.ts": "./datasource/tc_monitor/scf/query_def.ts",
- "./sqlserver/datasource": "./datasource/tc_monitor/sqlserver/datasource.ts",
- "./sqlserver/datasource.ts": "./datasource/tc_monitor/sqlserver/datasource.ts",
- "./sqlserver/query": "./datasource/tc_monitor/sqlserver/query.ts",
- "./sqlserver/query.ts": "./datasource/tc_monitor/sqlserver/query.ts",
- "./sqlserver/query_def": "./datasource/tc_monitor/sqlserver/query_def.ts",
- "./sqlserver/query_def.ts": "./datasource/tc_monitor/sqlserver/query_def.ts",
- "./tcaplus/datasource": "./datasource/tc_monitor/tcaplus/datasource.ts",
- "./tcaplus/datasource.ts": "./datasource/tc_monitor/tcaplus/datasource.ts",
- "./tcaplus/query": "./datasource/tc_monitor/tcaplus/query.ts",
- "./tcaplus/query.ts": "./datasource/tc_monitor/tcaplus/query.ts",
- "./tcaplus/query_def": "./datasource/tc_monitor/tcaplus/query_def.ts",
- "./tcaplus/query_def.ts": "./datasource/tc_monitor/tcaplus/query_def.ts",
- "./tdmq/datasource": "./datasource/tc_monitor/tdmq/datasource.ts",
- "./tdmq/datasource.ts": "./datasource/tc_monitor/tdmq/datasource.ts",
- "./tdmq/query": "./datasource/tc_monitor/tdmq/query.ts",
- "./tdmq/query.ts": "./datasource/tc_monitor/tdmq/query.ts",
- "./tdmq/query_def": "./datasource/tc_monitor/tdmq/query_def.ts",
- "./tdmq/query_def.ts": "./datasource/tc_monitor/tdmq/query_def.ts",
- "./tdmq_rabbitmq/datasource": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts",
- "./tdmq_rabbitmq/datasource.ts": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts",
- "./tdmq_rabbitmq/query": "./datasource/tc_monitor/tdmq_rabbitmq/query.ts",
- "./tdmq_rabbitmq/query.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query.ts",
- "./tdmq_rabbitmq/query_def": "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts",
- "./tdmq_rabbitmq/query_def.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts",
- "./tdmq_rocketmq/datasource": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts",
- "./tdmq_rocketmq/datasource.ts": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts",
- "./tdmq_rocketmq/query": "./datasource/tc_monitor/tdmq_rocketmq/query.ts",
- "./tdmq_rocketmq/query.ts": "./datasource/tc_monitor/tdmq_rocketmq/query.ts",
- "./tdmq_rocketmq/query_def": "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts",
- "./tdmq_rocketmq/query_def.ts": "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts",
- "./tke/datasource": "./datasource/tc_monitor/tke/datasource.ts",
- "./tke/datasource.ts": "./datasource/tc_monitor/tke/datasource.ts",
- "./tke/query": "./datasource/tc_monitor/tke/query.ts",
- "./tke/query.ts": "./datasource/tc_monitor/tke/query.ts",
- "./tke/query_def": "./datasource/tc_monitor/tke/query_def.ts",
- "./tke/query_def.ts": "./datasource/tc_monitor/tke/query_def.ts",
- "./tsf/datasource": "./datasource/tc_monitor/tsf/datasource.ts",
- "./tsf/datasource.ts": "./datasource/tc_monitor/tsf/datasource.ts",
- "./tsf/query": "./datasource/tc_monitor/tsf/query.ts",
- "./tsf/query.ts": "./datasource/tc_monitor/tsf/query.ts",
- "./tsf/query_def": "./datasource/tc_monitor/tsf/query_def.ts",
- "./tsf/query_def.ts": "./datasource/tc_monitor/tsf/query_def.ts",
- "./v_clb/datasource": "./datasource/tc_monitor/v_clb/datasource.ts",
- "./v_clb/datasource.ts": "./datasource/tc_monitor/v_clb/datasource.ts",
- "./v_clb/query": "./datasource/tc_monitor/v_clb/query.ts",
- "./v_clb/query.ts": "./datasource/tc_monitor/v_clb/query.ts",
- "./v_clb/query_def": "./datasource/tc_monitor/v_clb/query_def.ts",
- "./v_clb/query_def.ts": "./datasource/tc_monitor/v_clb/query_def.ts",
- "./vbc/datasource": "./datasource/tc_monitor/vbc/datasource.ts",
- "./vbc/datasource.ts": "./datasource/tc_monitor/vbc/datasource.ts",
- "./vbc/query": "./datasource/tc_monitor/vbc/query.ts",
- "./vbc/query.ts": "./datasource/tc_monitor/vbc/query.ts",
- "./vbc/query_def": "./datasource/tc_monitor/vbc/query_def.ts",
- "./vbc/query_def.ts": "./datasource/tc_monitor/vbc/query_def.ts",
- "./vpc_net_detect/datasource": "./datasource/tc_monitor/vpc_net_detect/datasource.ts",
- "./vpc_net_detect/datasource.ts": "./datasource/tc_monitor/vpc_net_detect/datasource.ts",
- "./vpc_net_detect/query": "./datasource/tc_monitor/vpc_net_detect/query.ts",
- "./vpc_net_detect/query.ts": "./datasource/tc_monitor/vpc_net_detect/query.ts",
- "./vpc_net_detect/query_def": "./datasource/tc_monitor/vpc_net_detect/query_def.ts",
- "./vpc_net_detect/query_def.ts": "./datasource/tc_monitor/vpc_net_detect/query_def.ts",
- "./vpngw/datasource": "./datasource/tc_monitor/vpngw/datasource.ts",
- "./vpngw/datasource.ts": "./datasource/tc_monitor/vpngw/datasource.ts",
- "./vpngw/query": "./datasource/tc_monitor/vpngw/query.ts",
- "./vpngw/query.ts": "./datasource/tc_monitor/vpngw/query.ts",
- "./vpngw/query_def": "./datasource/tc_monitor/vpngw/query_def.ts",
- "./vpngw/query_def.ts": "./datasource/tc_monitor/vpngw/query_def.ts",
- "./vpnx/datasource": "./datasource/tc_monitor/vpnx/datasource.ts",
- "./vpnx/datasource.ts": "./datasource/tc_monitor/vpnx/datasource.ts",
- "./vpnx/query": "./datasource/tc_monitor/vpnx/query.ts",
- "./vpnx/query.ts": "./datasource/tc_monitor/vpnx/query.ts",
- "./vpnx/query_def": "./datasource/tc_monitor/vpnx/query_def.ts",
- "./vpnx/query_def.ts": "./datasource/tc_monitor/vpnx/query_def.ts",
- "./waf/datasource": "./datasource/tc_monitor/waf/datasource.ts",
- "./waf/datasource.ts": "./datasource/tc_monitor/waf/datasource.ts",
- "./waf/query": "./datasource/tc_monitor/waf/query.ts",
- "./waf/query.ts": "./datasource/tc_monitor/waf/query.ts",
- "./waf/query_def": "./datasource/tc_monitor/waf/query_def.ts",
- "./waf/query_def.ts": "./datasource/tc_monitor/waf/query_def.ts"
-};
-
-
-function webpackContext(req) {
- var id = webpackContextResolve(req);
- return __webpack_require__(id);
-}
-function webpackContextResolve(req) {
- if(!__webpack_require__.o(map, req)) {
- var e = new Error("Cannot find module '" + req + "'");
- e.code = 'MODULE_NOT_FOUND';
- throw e;
- }
- return map[req];
-}
-webpackContext.keys = function webpackContextKeys() {
- return Object.keys(map);
-};
-webpackContext.resolve = webpackContextResolve;
-module.exports = webpackContext;
-webpackContext.id = "./datasource/tc_monitor sync recursive ^.*$";
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor sync recursive ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$":
-/*!***************************************************************************************!*\
- !*** ./datasource/tc_monitor sync ^\.\/[a-zA-Z]\w+\/(datasource)|(query(_def)?)\.ts$ ***!
- \***************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-var map = {
- "./_base/query.ts": "./datasource/tc_monitor/_base/query.ts",
- "./apigateway/datasource": "./datasource/tc_monitor/apigateway/datasource.ts",
- "./apigateway/datasource.ts": "./datasource/tc_monitor/apigateway/datasource.ts",
- "./apigateway/query.ts": "./datasource/tc_monitor/apigateway/query.ts",
- "./apigateway/query_def.ts": "./datasource/tc_monitor/apigateway/query_def.ts",
- "./bmIntraLb/datasource": "./datasource/tc_monitor/bmIntraLb/datasource.ts",
- "./bmIntraLb/datasource.ts": "./datasource/tc_monitor/bmIntraLb/datasource.ts",
- "./bmIntraLb/query.ts": "./datasource/tc_monitor/bmIntraLb/query.ts",
- "./bmIntraLb/query_def.ts": "./datasource/tc_monitor/bmIntraLb/query_def.ts",
- "./bm_lb/datasource": "./datasource/tc_monitor/bm_lb/datasource.ts",
- "./bm_lb/datasource.ts": "./datasource/tc_monitor/bm_lb/datasource.ts",
- "./bm_lb/query.ts": "./datasource/tc_monitor/bm_lb/query.ts",
- "./bm_lb/query_def.ts": "./datasource/tc_monitor/bm_lb/query_def.ts",
- "./bm_pcx/datasource": "./datasource/tc_monitor/bm_pcx/datasource.ts",
- "./bm_pcx/datasource.ts": "./datasource/tc_monitor/bm_pcx/datasource.ts",
- "./bm_pcx/query.ts": "./datasource/tc_monitor/bm_pcx/query.ts",
- "./bm_pcx/query_def.ts": "./datasource/tc_monitor/bm_pcx/query_def.ts",
- "./bwp/datasource": "./datasource/tc_monitor/bwp/datasource.ts",
- "./bwp/datasource.ts": "./datasource/tc_monitor/bwp/datasource.ts",
- "./bwp/query.ts": "./datasource/tc_monitor/bwp/query.ts",
- "./bwp/query_def.ts": "./datasource/tc_monitor/bwp/query_def.ts",
- "./cbs/datasource": "./datasource/tc_monitor/cbs/datasource.ts",
- "./cbs/datasource.ts": "./datasource/tc_monitor/cbs/datasource.ts",
- "./cbs/query.ts": "./datasource/tc_monitor/cbs/query.ts",
- "./cbs/query_def.ts": "./datasource/tc_monitor/cbs/query_def.ts",
- "./cdb/datasource": "./datasource/tc_monitor/cdb/datasource.ts",
- "./cdb/datasource.ts": "./datasource/tc_monitor/cdb/datasource.ts",
- "./cdb/query.ts": "./datasource/tc_monitor/cdb/query.ts",
- "./cdb/query_def.ts": "./datasource/tc_monitor/cdb/query_def.ts",
- "./cdn/datasource": "./datasource/tc_monitor/cdn/datasource.ts",
- "./cdn/datasource.ts": "./datasource/tc_monitor/cdn/datasource.ts",
- "./cdn/query.ts": "./datasource/tc_monitor/cdn/query.ts",
- "./cdn/query_def.ts": "./datasource/tc_monitor/cdn/query_def.ts",
- "./cdn_province/datasource": "./datasource/tc_monitor/cdn_province/datasource.ts",
- "./cdn_province/datasource.ts": "./datasource/tc_monitor/cdn_province/datasource.ts",
- "./cdn_province/query.ts": "./datasource/tc_monitor/cdn_province/query.ts",
- "./cdn_province/query_def.ts": "./datasource/tc_monitor/cdn_province/query_def.ts",
- "./ceip_summary/datasource": "./datasource/tc_monitor/ceip_summary/datasource.ts",
- "./ceip_summary/datasource.ts": "./datasource/tc_monitor/ceip_summary/datasource.ts",
- "./ceip_summary/query.ts": "./datasource/tc_monitor/ceip_summary/query.ts",
- "./ceip_summary/query_def.ts": "./datasource/tc_monitor/ceip_summary/query_def.ts",
- "./ces/datasource": "./datasource/tc_monitor/ces/datasource.ts",
- "./ces/datasource.ts": "./datasource/tc_monitor/ces/datasource.ts",
- "./ces/query.ts": "./datasource/tc_monitor/ces/query.ts",
- "./ces/query_def.ts": "./datasource/tc_monitor/ces/query_def.ts",
- "./cfs/datasource": "./datasource/tc_monitor/cfs/datasource.ts",
- "./cfs/datasource.ts": "./datasource/tc_monitor/cfs/datasource.ts",
- "./cfs/query.ts": "./datasource/tc_monitor/cfs/query.ts",
- "./cfs/query_def.ts": "./datasource/tc_monitor/cfs/query_def.ts",
- "./ckafka/datasource": "./datasource/tc_monitor/ckafka/datasource.ts",
- "./ckafka/datasource.ts": "./datasource/tc_monitor/ckafka/datasource.ts",
- "./ckafka/query.ts": "./datasource/tc_monitor/ckafka/query.ts",
- "./ckafka/query_def.ts": "./datasource/tc_monitor/ckafka/query_def.ts",
- "./clb/datasource": "./datasource/tc_monitor/clb/datasource.ts",
- "./clb/datasource.ts": "./datasource/tc_monitor/clb/datasource.ts",
- "./clb/query.ts": "./datasource/tc_monitor/clb/query.ts",
- "./clb/query_def.ts": "./datasource/tc_monitor/clb/query_def.ts",
- "./cls/datasource": "./datasource/tc_monitor/cls/datasource.ts",
- "./cls/datasource.ts": "./datasource/tc_monitor/cls/datasource.ts",
- "./cls/query.ts": "./datasource/tc_monitor/cls/query.ts",
- "./cls/query_def.ts": "./datasource/tc_monitor/cls/query_def.ts",
- "./cmq/datasource": "./datasource/tc_monitor/cmq/datasource.ts",
- "./cmq/datasource.ts": "./datasource/tc_monitor/cmq/datasource.ts",
- "./cmq/query.ts": "./datasource/tc_monitor/cmq/query.ts",
- "./cmq/query_def.ts": "./datasource/tc_monitor/cmq/query_def.ts",
- "./cmq_topic/datasource": "./datasource/tc_monitor/cmq_topic/datasource.ts",
- "./cmq_topic/datasource.ts": "./datasource/tc_monitor/cmq_topic/datasource.ts",
- "./cmq_topic/query.ts": "./datasource/tc_monitor/cmq_topic/query.ts",
- "./cmq_topic/query_def.ts": "./datasource/tc_monitor/cmq_topic/query_def.ts",
- "./cos/datasource": "./datasource/tc_monitor/cos/datasource.ts",
- "./cos/datasource.ts": "./datasource/tc_monitor/cos/datasource.ts",
- "./cos/query_def.ts": "./datasource/tc_monitor/cos/query_def.ts",
- "./cpm/datasource": "./datasource/tc_monitor/cpm/datasource.ts",
- "./cpm/datasource.ts": "./datasource/tc_monitor/cpm/datasource.ts",
- "./cpm/query.ts": "./datasource/tc_monitor/cpm/query.ts",
- "./cpm/query_def.ts": "./datasource/tc_monitor/cpm/query_def.ts",
- "./cvm/datasource": "./datasource/tc_monitor/cvm/datasource.ts",
- "./cvm/datasource.ts": "./datasource/tc_monitor/cvm/datasource.ts",
- "./cvm/query.ts": "./datasource/tc_monitor/cvm/query.ts",
- "./cvm/query_def.ts": "./datasource/tc_monitor/cvm/query_def.ts",
- "./cynosdb_mysql/datasource": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts",
- "./cynosdb_mysql/datasource.ts": "./datasource/tc_monitor/cynosdb_mysql/datasource.ts",
- "./cynosdb_mysql/query.ts": "./datasource/tc_monitor/cynosdb_mysql/query.ts",
- "./cynosdb_mysql/query_def.ts": "./datasource/tc_monitor/cynosdb_mysql/query_def.ts",
- "./dc/datasource": "./datasource/tc_monitor/dc/datasource.ts",
- "./dc/datasource.ts": "./datasource/tc_monitor/dc/datasource.ts",
- "./dc/query.ts": "./datasource/tc_monitor/dc/query.ts",
- "./dc/query_def.ts": "./datasource/tc_monitor/dc/query_def.ts",
- "./dcdb/datasource": "./datasource/tc_monitor/dcdb/datasource.ts",
- "./dcdb/datasource.ts": "./datasource/tc_monitor/dcdb/datasource.ts",
- "./dcdb/query.ts": "./datasource/tc_monitor/dcdb/query.ts",
- "./dcdb/query_def.ts": "./datasource/tc_monitor/dcdb/query_def.ts",
- "./dcg/datasource": "./datasource/tc_monitor/dcg/datasource.ts",
- "./dcg/datasource.ts": "./datasource/tc_monitor/dcg/datasource.ts",
- "./dcg/query.ts": "./datasource/tc_monitor/dcg/query.ts",
- "./dcg/query_def.ts": "./datasource/tc_monitor/dcg/query_def.ts",
- "./dcx/datasource": "./datasource/tc_monitor/dcx/datasource.ts",
- "./dcx/datasource.ts": "./datasource/tc_monitor/dcx/datasource.ts",
- "./dcx/query.ts": "./datasource/tc_monitor/dcx/query.ts",
- "./dcx/query_def.ts": "./datasource/tc_monitor/dcx/query_def.ts",
- "./ecdn/datasource": "./datasource/tc_monitor/ecdn/datasource.ts",
- "./ecdn/datasource.ts": "./datasource/tc_monitor/ecdn/datasource.ts",
- "./ecdn/query.ts": "./datasource/tc_monitor/ecdn/query.ts",
- "./ecdn/query_def.ts": "./datasource/tc_monitor/ecdn/query_def.ts",
- "./ecm/datasource": "./datasource/tc_monitor/ecm/datasource.ts",
- "./ecm/datasource.ts": "./datasource/tc_monitor/ecm/datasource.ts",
- "./ecm/query.ts": "./datasource/tc_monitor/ecm/query.ts",
- "./ecm/query_def.ts": "./datasource/tc_monitor/ecm/query_def.ts",
- "./ecm_block_storage/datasource": "./datasource/tc_monitor/ecm_block_storage/datasource.ts",
- "./ecm_block_storage/datasource.ts": "./datasource/tc_monitor/ecm_block_storage/datasource.ts",
- "./ecm_block_storage/query.ts": "./datasource/tc_monitor/ecm_block_storage/query.ts",
- "./ecm_block_storage/query_def.ts": "./datasource/tc_monitor/ecm_block_storage/query_def.ts",
- "./ecm_lb/datasource": "./datasource/tc_monitor/ecm_lb/datasource.ts",
- "./ecm_lb/datasource.ts": "./datasource/tc_monitor/ecm_lb/datasource.ts",
- "./ecm_lb/query.ts": "./datasource/tc_monitor/ecm_lb/query.ts",
- "./ecm_lb/query_def.ts": "./datasource/tc_monitor/ecm_lb/query_def.ts",
- "./gse/datasource": "./datasource/tc_monitor/gse/datasource.ts",
- "./gse/datasource.ts": "./datasource/tc_monitor/gse/datasource.ts",
- "./gse/query.ts": "./datasource/tc_monitor/gse/query.ts",
- "./gse/query_def.ts": "./datasource/tc_monitor/gse/query_def.ts",
- "./lb/datasource": "./datasource/tc_monitor/lb/datasource.ts",
- "./lb/datasource.ts": "./datasource/tc_monitor/lb/datasource.ts",
- "./lb/query.ts": "./datasource/tc_monitor/lb/query.ts",
- "./lb/query_def.ts": "./datasource/tc_monitor/lb/query_def.ts",
- "./lighthouse/datasource": "./datasource/tc_monitor/lighthouse/datasource.ts",
- "./lighthouse/datasource.ts": "./datasource/tc_monitor/lighthouse/datasource.ts",
- "./lighthouse/query.ts": "./datasource/tc_monitor/lighthouse/query.ts",
- "./lighthouse/query_def.ts": "./datasource/tc_monitor/lighthouse/query_def.ts",
- "./mongodb/datasource": "./datasource/tc_monitor/mongodb/datasource.ts",
- "./mongodb/datasource.ts": "./datasource/tc_monitor/mongodb/datasource.ts",
- "./mongodb/query.ts": "./datasource/tc_monitor/mongodb/query.ts",
- "./mongodb/query_def.ts": "./datasource/tc_monitor/mongodb/query_def.ts",
- "./mr/datasource": "./datasource/tc_monitor/mr/datasource.ts",
- "./mr/datasource.ts": "./datasource/tc_monitor/mr/datasource.ts",
- "./mr/query.ts": "./datasource/tc_monitor/mr/query.ts",
- "./mr/query_def.ts": "./datasource/tc_monitor/mr/query_def.ts",
- "./nat_gateway/datasource": "./datasource/tc_monitor/nat_gateway/datasource.ts",
- "./nat_gateway/datasource.ts": "./datasource/tc_monitor/nat_gateway/datasource.ts",
- "./nat_gateway/query.ts": "./datasource/tc_monitor/nat_gateway/query.ts",
- "./nat_gateway/query_def.ts": "./datasource/tc_monitor/nat_gateway/query_def.ts",
- "./ov_cdn/datasource": "./datasource/tc_monitor/ov_cdn/datasource.ts",
- "./ov_cdn/datasource.ts": "./datasource/tc_monitor/ov_cdn/datasource.ts",
- "./ov_cdn/query.ts": "./datasource/tc_monitor/ov_cdn/query.ts",
- "./ov_cdn/query_def.ts": "./datasource/tc_monitor/ov_cdn/query_def.ts",
- "./pcx/datasource": "./datasource/tc_monitor/pcx/datasource.ts",
- "./pcx/datasource.ts": "./datasource/tc_monitor/pcx/datasource.ts",
- "./pcx/query.ts": "./datasource/tc_monitor/pcx/query.ts",
- "./pcx/query_def.ts": "./datasource/tc_monitor/pcx/query_def.ts",
- "./postgresql/datasource": "./datasource/tc_monitor/postgresql/datasource.ts",
- "./postgresql/datasource.ts": "./datasource/tc_monitor/postgresql/datasource.ts",
- "./postgresql/query.ts": "./datasource/tc_monitor/postgresql/query.ts",
- "./postgresql/query_def.ts": "./datasource/tc_monitor/postgresql/query_def.ts",
- "./qaap/datasource": "./datasource/tc_monitor/qaap/datasource.ts",
- "./qaap/datasource.ts": "./datasource/tc_monitor/qaap/datasource.ts",
- "./qaap/query.ts": "./datasource/tc_monitor/qaap/query.ts",
- "./qaap/query_def.ts": "./datasource/tc_monitor/qaap/query_def.ts",
- "./redis/datasource": "./datasource/tc_monitor/redis/datasource.ts",
- "./redis/datasource.ts": "./datasource/tc_monitor/redis/datasource.ts",
- "./redis/query.ts": "./datasource/tc_monitor/redis/query.ts",
- "./redis/query_def.ts": "./datasource/tc_monitor/redis/query_def.ts",
- "./redis_mem/datasource": "./datasource/tc_monitor/redis_mem/datasource.ts",
- "./redis_mem/datasource.ts": "./datasource/tc_monitor/redis_mem/datasource.ts",
- "./redis_mem/query.ts": "./datasource/tc_monitor/redis_mem/query.ts",
- "./redis_mem/query_def.ts": "./datasource/tc_monitor/redis_mem/query_def.ts",
- "./scf/datasource": "./datasource/tc_monitor/scf/datasource.ts",
- "./scf/datasource.ts": "./datasource/tc_monitor/scf/datasource.ts",
- "./scf/query.ts": "./datasource/tc_monitor/scf/query.ts",
- "./scf/query_def.ts": "./datasource/tc_monitor/scf/query_def.ts",
- "./sqlserver/datasource": "./datasource/tc_monitor/sqlserver/datasource.ts",
- "./sqlserver/datasource.ts": "./datasource/tc_monitor/sqlserver/datasource.ts",
- "./sqlserver/query.ts": "./datasource/tc_monitor/sqlserver/query.ts",
- "./sqlserver/query_def.ts": "./datasource/tc_monitor/sqlserver/query_def.ts",
- "./tcaplus/datasource": "./datasource/tc_monitor/tcaplus/datasource.ts",
- "./tcaplus/datasource.ts": "./datasource/tc_monitor/tcaplus/datasource.ts",
- "./tcaplus/query.ts": "./datasource/tc_monitor/tcaplus/query.ts",
- "./tcaplus/query_def.ts": "./datasource/tc_monitor/tcaplus/query_def.ts",
- "./tdmq/datasource": "./datasource/tc_monitor/tdmq/datasource.ts",
- "./tdmq/datasource.ts": "./datasource/tc_monitor/tdmq/datasource.ts",
- "./tdmq/query.ts": "./datasource/tc_monitor/tdmq/query.ts",
- "./tdmq/query_def.ts": "./datasource/tc_monitor/tdmq/query_def.ts",
- "./tdmq_rabbitmq/datasource": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts",
- "./tdmq_rabbitmq/datasource.ts": "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts",
- "./tdmq_rabbitmq/query.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query.ts",
- "./tdmq_rabbitmq/query_def.ts": "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts",
- "./tdmq_rocketmq/datasource": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts",
- "./tdmq_rocketmq/datasource.ts": "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts",
- "./tdmq_rocketmq/query.ts": "./datasource/tc_monitor/tdmq_rocketmq/query.ts",
- "./tdmq_rocketmq/query_def.ts": "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts",
- "./tke/datasource": "./datasource/tc_monitor/tke/datasource.ts",
- "./tke/datasource.ts": "./datasource/tc_monitor/tke/datasource.ts",
- "./tke/query.ts": "./datasource/tc_monitor/tke/query.ts",
- "./tke/query_def.ts": "./datasource/tc_monitor/tke/query_def.ts",
- "./tsf/datasource": "./datasource/tc_monitor/tsf/datasource.ts",
- "./tsf/datasource.ts": "./datasource/tc_monitor/tsf/datasource.ts",
- "./tsf/query.ts": "./datasource/tc_monitor/tsf/query.ts",
- "./tsf/query_def.ts": "./datasource/tc_monitor/tsf/query_def.ts",
- "./v_clb/datasource": "./datasource/tc_monitor/v_clb/datasource.ts",
- "./v_clb/datasource.ts": "./datasource/tc_monitor/v_clb/datasource.ts",
- "./v_clb/query.ts": "./datasource/tc_monitor/v_clb/query.ts",
- "./v_clb/query_def.ts": "./datasource/tc_monitor/v_clb/query_def.ts",
- "./vbc/datasource": "./datasource/tc_monitor/vbc/datasource.ts",
- "./vbc/datasource.ts": "./datasource/tc_monitor/vbc/datasource.ts",
- "./vbc/query.ts": "./datasource/tc_monitor/vbc/query.ts",
- "./vbc/query_def.ts": "./datasource/tc_monitor/vbc/query_def.ts",
- "./vpc_net_detect/datasource": "./datasource/tc_monitor/vpc_net_detect/datasource.ts",
- "./vpc_net_detect/datasource.ts": "./datasource/tc_monitor/vpc_net_detect/datasource.ts",
- "./vpc_net_detect/query.ts": "./datasource/tc_monitor/vpc_net_detect/query.ts",
- "./vpc_net_detect/query_def.ts": "./datasource/tc_monitor/vpc_net_detect/query_def.ts",
- "./vpngw/datasource": "./datasource/tc_monitor/vpngw/datasource.ts",
- "./vpngw/datasource.ts": "./datasource/tc_monitor/vpngw/datasource.ts",
- "./vpngw/query.ts": "./datasource/tc_monitor/vpngw/query.ts",
- "./vpngw/query_def.ts": "./datasource/tc_monitor/vpngw/query_def.ts",
- "./vpnx/datasource": "./datasource/tc_monitor/vpnx/datasource.ts",
- "./vpnx/datasource.ts": "./datasource/tc_monitor/vpnx/datasource.ts",
- "./vpnx/query.ts": "./datasource/tc_monitor/vpnx/query.ts",
- "./vpnx/query_def.ts": "./datasource/tc_monitor/vpnx/query_def.ts",
- "./waf/datasource": "./datasource/tc_monitor/waf/datasource.ts",
- "./waf/datasource.ts": "./datasource/tc_monitor/waf/datasource.ts",
- "./waf/query.ts": "./datasource/tc_monitor/waf/query.ts",
- "./waf/query_def.ts": "./datasource/tc_monitor/waf/query_def.ts"
-};
-
-
-function webpackContext(req) {
- var id = webpackContextResolve(req);
- return __webpack_require__(id);
-}
-function webpackContextResolve(req) {
- if(!__webpack_require__.o(map, req)) {
- var e = new Error("Cannot find module '" + req + "'");
- e.code = 'MODULE_NOT_FOUND';
- throw e;
- }
- return map[req];
-}
-webpackContext.keys = function webpackContextKeys() {
- return Object.keys(map);
-};
-webpackContext.resolve = webpackContextResolve;
-module.exports = webpackContext;
-webpackContext.id = "./datasource/tc_monitor sync recursive ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$";
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/MonitorDatasource.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/MonitorDatasource.ts ***!
- \****************************************************/
-/*! exports provided: TCMonitorDatasource */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCMonitorDatasource", function() { return TCMonitorDatasource; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./datasource/tc_monitor/index.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @grafana/data */ "@grafana/data");
-/* harmony import */ var _grafana_data__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_grafana_data__WEBPACK_IMPORTED_MODULE_4__);
-
-
-
-
-
-
-var TCMonitorDatasource =
-/** @class */
-function () {
- TCMonitorDatasource.$inject = ["instanceSettings", "backendSrv", "templateSrv"];
-
- /** @ngInject */
- function TCMonitorDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = this;
-
- this.instanceSettings = instanceSettings;
- this.backendSrv = backendSrv;
- this.templateSrv = templateSrv;
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(_index__WEBPACK_IMPORTED_MODULE_1__["Datasources"], function (_class, key) {
- _this[key] = new _class(_this.instanceSettings, _this.backendSrv, _this.templateSrv);
- });
- } // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间
-
-
- TCMonitorDatasource.prototype.getNamespaces = function () {
- var _this = this;
-
- var namespaces = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(_index__WEBPACK_IMPORTED_MODULE_1__["SERVICES"], function (service) {
- if (_this.instanceSettings.jsonData[service.service] === true) {
- // namespaces.push(service.namespace);
- namespaces.push(service);
- }
- });
-
- return namespaces;
- };
-
- TCMonitorDatasource.prototype.getCascaderNamespaces = function () {
- var _this = this;
-
- var validServices = _index__WEBPACK_IMPORTED_MODULE_1__["SERVICES"].filter(function (service) {
- return _this.instanceSettings.jsonData[service.service];
- });
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__["serviceGroupBy"])(validServices);
- };
-
- TCMonitorDatasource.prototype.getSelectedServices = function () {
- var namespaces = this.getNamespaces();
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(namespaces, function (_a) {
- var namespace = _a.namespace;
- return Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])(namespace);
- });
- };
- /**
- * 根据 Panel 的配置项,获取相应的监控数据
- *
- * @param options Panel 的配置参数,示例如下
- * {
- * cacheTimeout: undefined,
- * dashboardId: 41,
- * interval: "30s",
- * intervalMs: 30000,
- * maxDataPoints: 554,
- * panelId: 2,
- * range: {
- * from: Moment,
- * to: Moment,
- * raw: {from: "now-6h", to: "now"}
- * },
- * rangeRaw: {from: "now-6h", to: "now"},
- * scopedVars: {__interval: {…}, __interval_ms: {…}}
- * targets: [
- * {
- * namespace: "QCE/CVM",
- * refId: "A",
- * service: "cvm",
- * showInstanceDetails: false,
- * cvm: {
- * dimensionObject: {InstanceId: {…}}
- * instance: "",
- * instanceAlias: "InstanceId",
- * metricName: "AccOuttraffic",
- * metricUnit: "MB",
- * period: 10,
- * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …},
- * region: "ap-beijing"
- * },
- * cdb: {},
- * },
- * ],
- * timezone: "browser"
- * }
- * @return 返回数据对象,示例如下
- * {
- * data: [
- * {
- * "target": "AccOuttraffic - ins-123",
- * "datapoints": [
- * [861, 1450754160000],
- * [767, 1450754220000]
- * ]
- * }
- * ]
- * }
- */
-
-
- TCMonitorDatasource.prototype.query = function (options) {
- var _this = this;
-
- var promises = [];
- var services = this.getSelectedServices();
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(services, function (service) {
- var optionsTemp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(options);
-
- var targets = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(optionsTemp.targets, function (item) {
- return item.service === service;
- });
-
- optionsTemp.targets = targets;
-
- if (optionsTemp.targets.length > 0) {
- var promiseTemp = _this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].query(optionsTemp);
-
- if (promiseTemp) {
- promises.push(promiseTemp);
- }
- }
- });
-
- if (promises.length === 0) {
- return Promise.resolve({
- data: [],
- state: _grafana_data__WEBPACK_IMPORTED_MODULE_4__["LoadingState"].Done
- });
- }
-
- return Promise.all(promises).then(function (results) {
- return {
- data: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.flatten(results),
- state: _grafana_data__WEBPACK_IMPORTED_MODULE_4__["LoadingState"].Done
- };
- });
- };
- /**
- * 获取模板变量的选择项列表
- *
- * @param query 模板变量配置填写的 Query 参数字符串
- */
-
-
- TCMonitorDatasource.prototype.metricFindQuery = function (query, options) {
- var queries = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ParseMetricQuery"])(query);
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])(queries['namespace'] || '');
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) {
- return Promise.resolve([]);
- }
-
- if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].metricFindQuery) {
- var result = this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].metricFindQuery(queries, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(options, 'variable.regex', undefined));
-
- if (result) {
- return result;
- }
- }
-
- return Promise.resolve([]);
- };
- /**
- * 获取地域列表
- * @param service
- */
-
-
- TCMonitorDatasource.prototype.getRegions = function (service) {
- if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getRegions) {
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getRegions();
- }
-
- return [];
- };
- /**
- * 获取监控指标列表
- * @param service
- * @param region
- */
-
-
- TCMonitorDatasource.prototype.getMetrics = function (service, region) {
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getMetrics(region);
- };
- /**
- * 获取可用区列表
- * @param service
- * @param region
- */
-
-
- TCMonitorDatasource.prototype.getZones = function (service, region) {
- if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getZones) {
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getZones(region);
- }
-
- return [];
- };
- /**
- * 获取filter中dropdown列表
- * @param service
- * @param param
- */
-
-
- TCMonitorDatasource.prototype.getFilterDropdown = function (service, param) {
- if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getFilterDropdown) {
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getFilterDropdown(param);
- }
-
- return [];
- };
- /**
- * 获取实例列表
- * @param service
- * @param region
- * @param params
- */
-
-
- TCMonitorDatasource.prototype.getInstances = function (service, region, params) {
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getInstances(region, params);
- };
- /**
- * 获取监听器列表
- * @param service
- * @param region
- * @param params
- */
-
-
- TCMonitorDatasource.prototype.getListeners = function (service, region, instance) {
- if (!this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getListeners) {
- return [];
- }
-
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getListeners(region, instance);
- };
- /**
- * 获取 私有网络列表
- * @param service
- */
-
-
- TCMonitorDatasource.prototype.getVpcIds = function (service, region) {
- if (this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getVpcIds) {
- return this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].getVpcIds(region);
- }
- }; // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性
-
-
- TCMonitorDatasource.prototype.testDatasource = function () {
- var _this = this;
-
- var promises = [];
- var services = this.getSelectedServices();
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(services, function (service) {
- promises.push(_this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")].testDatasource());
- });
-
- if (promises.length === 0) {
- return Promise.resolve(null);
- }
-
- return Promise.all(promises).then(function (results) {
- var status = 'success';
- var message = 'DataSource Connection OK';
-
- var errorMsg = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.reduce(results, function (acc, cur) {
- if (cur.status === 'error') {
- if (acc === '') acc += 'Oops! Found an error in: ';
- acc += "".concat(cur.service, ": ").concat(cur.message, "; \n");
- }
-
- return acc;
- }, '');
-
- if (errorMsg) {
- status = 'error';
- message = errorMsg;
- }
-
- return {
- status: status,
- message: message,
- title: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.upperFirst(status)
- };
- });
- };
-
- TCMonitorDatasource.prototype.getServiceFn = function (service, fnName) {
- var _this = this;
-
- return function () {
- var _a;
-
- var argu = [];
-
- for (var _i = 0; _i < arguments.length; _i++) {
- argu[_i] = arguments[_i];
- }
-
- if (!_this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")][fnName]) {
- return [];
- }
-
- return (_a = _this["".concat(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(service), "Datasource")])[fnName].apply(_a, argu);
- };
- };
-
- return TCMonitorDatasource;
-}();
-
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/_base/datasource.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/_base/datasource.ts ***!
- \***************************************************/
-/*! exports provided: BaseDatasource */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseDatasource", function() { return BaseDatasource; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ "moment");
-/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-
-
-
-
-
-
-
-
-var BaseDatasource =
-/** @class */
-function () {
- BaseDatasource.$inject = ["instanceSettings", "backendSrv", "templateSrv"];
-
- /** @ngInject */
- function BaseDatasource(instanceSettings, backendSrv, templateSrv) {
- this.instanceListCache = [];
- this.extraMetricDims = [];
- this.checkKeys = [];
- this.MetricReqConfig = {};
- this.extrasAlias = [];
- /*
- 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后)
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap
- 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim]
- */
-
- this.queryMonitorExtraConfg = {};
- this.CandiateDimensions = {};
- this.instanceSettings = instanceSettings;
- this.backendSrv = backendSrv;
- this.templateSrv = templateSrv;
- this.url = instanceSettings.url;
- this.secretId = (instanceSettings.jsonData || {}).secretId || '';
- Object(_locale__WEBPACK_IMPORTED_MODULE_5__["setLanguage"])(instanceSettings.jsonData.language || _locale__WEBPACK_IMPORTED_MODULE_5__["Language"].Chinese);
- }
-
- Object.defineProperty(BaseDatasource.prototype, "namespace", {
- get: function get() {
- // 需要注意的是this.service来自于原型上,在实例中导入时注入
- return this.Namespace || Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getNamesapceFromService"])(this.service);
- },
- enumerable: false,
- configurable: true
- }); // 获取额外要显示到图例里的内容
-
- BaseDatasource.prototype.getOtherAlias = function (instance, target) {
- var _this = this;
-
- var _a;
-
- var result = '';
- var alias = instance._InstanceAliasValue;
- (_a = this.extrasAlias) === null || _a === void 0 ? void 0 : _a.forEach(function (extra) {
- var extraAlia = _this.getVariable(target[extra]);
-
- if (extraAlia && alias.indexOf(extraAlia) === -1) {
- result += " - ".concat(extraAlia);
- }
- });
- return result;
- };
- /* 格式化模板变量上的显示 */
-
-
- BaseDatasource.prototype.getAliasValue = function (instance, alias) {
- var result = instance[alias];
- return Array.isArray(result) ? result.join() : result;
- };
-
- BaseDatasource.prototype.formatVarDisplay = function (instance, displayTpl, instanceAlias) {
- var _this = this; // 获取display=aaa${InstanceName}bbb${InstanceId}ccc
-
-
- if (displayTpl) {
- return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) {
- if (!b || !_this.InstanceAliasList.includes(b)) {
- return '';
- }
-
- return _this.getAliasValue(instance, b);
- });
- }
-
- return this.getAliasValue(instance, instanceAlias);
- };
- /**
- * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象
- */
-
-
- BaseDatasource.prototype.metricFindQuery = function (query, regex) {
- var _a;
-
- return __awaiter(this, void 0, void 0, function () {
- var action, namespace, display, _b, payload, region, _c, instancealias, regionQuery, result, res, instance, instanceCache, error_1;
-
- var _this = this;
-
- return __generator(this, function (_d) {
- switch (_d.label) {
- case 0:
- action = query.action, namespace = query.namespace, display = query.display, _b = query.payload, payload = _b === void 0 ? {} : _b;
- region = query.region, _c = query.instancealias, instancealias = _c === void 0 ? this.templateQueryIdMap.instance : _c;
-
- if (!action || !namespace) {
- return [2
- /*return*/
- , []];
- } // 支持payload里传入模板变量
-
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(payload)) {
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(payload, function (value, key) {
- payload[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isString(value) ? _this.getVariable(value) : value;
- });
- }
-
- regionQuery = action.match(/^DescribeRegions$/i);
-
- if (regionQuery) {
- return [2
- /*return*/
- , this.getRegions()];
- }
-
- region = this.getVariable(region); // 将模板region转换为真实值
-
- if (!(region && action.match(/^DescribeInstances/i))) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getVariableInstances(region, payload)];
-
- case 1:
- result = _d.sent();
- instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance;
- res = result.flatMap(function (item) {
- var insAlias = _this.formatVarDisplay(item, display, instancealias);
-
- item._InstanceAliasValue = insAlias; // FIXME:
-
- if (!item[instancealias]) return [];
- return [{
- text: insAlias,
- value: item[_this.templateQueryIdMap.instance]
- }];
- }); // 缓存全量实例列表
-
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setInstance(this.service, result)];
-
- case 2:
- // 缓存全量实例列表
- _d.sent();
-
- return [2
- /*return*/
- , res];
-
- case 3:
- instance = this.getVariable(query['instance']);
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况
-
- if (!(region && action && instance)) return [3
- /*break*/
- , 8];
- _d.label = 4;
-
- case 4:
- _d.trys.push([4, 6,, 7]);
-
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getInstance(this.service)];
-
- case 5:
- instanceCache = _d.sent();
- instance = (_a = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(instanceCache.find(function (item) {
- return item[_this.templateQueryIdMap.instance] === instance;
- }))) !== null && _a !== void 0 ? _a : {};
- return [3
- /*break*/
- , 7];
-
- case 6:
- error_1 = _d.sent();
- return [3
- /*break*/
- , 7];
-
- case 7:
- return [2
- /*return*/
- , this.fetchMetricData(action, region, instance, query)];
-
- case 8:
- return [2
- /*return*/
- , Promise.resolve([])];
- }
- });
- });
- }; // 获取指标数据
-
-
- BaseDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , []];
- });
- });
- };
- /**
- * 根据 Panel 的配置项,获取相应的监控数据
- *
- * @param options Panel 的配置参数
- * @return 返回数据数组,示例如下
- * [
- * {
- * "target": "AccOuttraffic - ins-123",
- * "datapoints": [
- * [861, 1450754160000],
- * [767, 1450754220000]
- * ]
- * }
- * ]
- */
-
-
- BaseDatasource.prototype.dimensionsFormat = function (dimKeys, ins, dimensionObject, target, service, options) {
- var _a;
-
- return __awaiter(this, void 0, void 0, function () {
- var _loop_1, this_1, _i, dimKeys_1, key;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _loop_1 = function _loop_1(key) {
- var keyTmp, invalidDim, extraDimValue, _c, dim_KeyInStorage, _d, dim_KeyInTarget, dim_KeyInMap_1, dim_KeyInIns, extraIns_1, extraSourceMap, error_2, extraStorage, isStringOrNumber, insAlias, otherAlias;
-
- return __generator(this, function (_e) {
- switch (_e.label) {
- case 0:
- keyTmp = key;
- invalidDim = this_1.InvalidDimensions || this_1.getInvalidDimensions(this_1, target[service]);
-
- if (invalidDim[key]) {
- // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName }
- keyTmp = invalidDim[key];
- ins[key] = ins[keyTmp];
- }
-
- extraDimValue = this_1.getVariable(target[service][keyTmp]);
- if (!this_1.queryMonitorExtraConfg[keyTmp]) return [3
- /*break*/
- , 5];
- _c = this_1.queryMonitorExtraConfg[keyTmp], dim_KeyInStorage = _c.dim_KeyInStorage, _d = _c.dim_KeyInTarget, dim_KeyInTarget = _d === void 0 ? keyTmp : _d, dim_KeyInMap_1 = _c.dim_KeyInMap, dim_KeyInIns = _c.dim_KeyInIns;
- extraIns_1 = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(this_1.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true);
- extraSourceMap = {};
- _e.label = 1;
-
- case 1:
- _e.trys.push([1, 2,, 4]);
-
- extraSourceMap = JSON.parse(extraIns_1); // 兼容json字符串的 形式
-
- return [3
- /*break*/
- , 4];
-
- case 2:
- error_2 = _e.sent();
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(extraIns_1)) extraIns_1 = extraIns_1[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选
-
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getExtraStorage(this_1.service, dim_KeyInStorage)];
-
- case 3:
- extraStorage = _e.sent();
- extraSourceMap = (_a = extraStorage === null || extraStorage === void 0 ? void 0 : extraStorage.find(function (item) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item[dim_KeyInMap_1])) {
- return item[dim_KeyInMap_1][0] === extraIns_1;
- }
-
- return item[dim_KeyInMap_1] === extraIns_1;
- })) !== null && _a !== void 0 ? _a : {};
- return [3
- /*break*/
- , 4];
-
- case 4:
- isStringOrNumber = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isString(extraSourceMap) || lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(extraSourceMap);
- insAlias = ins._InstanceAliasValue;
- otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue;
-
- if (otherAlias && insAlias.indexOf(otherAlias) === -1) {
- ins._InstanceAliasValue += " - ".concat(otherAlias);
- }
-
- extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap === null || extraSourceMap === void 0 ? void 0 : extraSourceMap[dim_KeyInIns || keyTmp];
- return [3
- /*break*/
- , 6];
-
- case 5:
- ins._InstanceAliasValue += this_1.getOtherAlias(ins, target[service]);
- _e.label = 6;
-
- case 6:
- if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target[service].timeshift) > 0 && ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1) {
- ins._InstanceAliasValue += "_".concat(target[service].timeshift);
- } // 设置instance,针对额外的维度,需要注意模板变量的值
- // ins[key] = ins[keyTmp] ?? extraDimValue;
-
-
- ins[key] = this_1.getDimensionsVal(ins, keyTmp, extraDimValue); // cynosdb产品接口返回维度和入参不一致
-
- if (this_1.checkKeys.length > 0) {
- this_1.checkKeys.forEach(function (Ekey) {
- ins[Ekey] = ins[key];
- });
- }
-
- dimensionObject[key] = {
- Name: key,
- Value: ins[key]
- };
- return [2
- /*return*/
- ];
- }
- });
- };
-
- this_1 = this;
- _i = 0, dimKeys_1 = dimKeys;
- _b.label = 1;
-
- case 1:
- if (!(_i < dimKeys_1.length)) return [3
- /*break*/
- , 4];
- key = dimKeys_1[_i];
- return [5
- /*yield**/
- , _loop_1(key)];
-
- case 2:
- _b.sent();
-
- _b.label = 3;
-
- case 3:
- _i++;
- return [3
- /*break*/
- , 1];
-
- case 4:
- return [2
- /*return*/
- , dimensionObject];
- }
- });
- });
- };
-
- BaseDatasource.prototype.getDimensionsVal = function (ins, key, extraDimValue) {
- var dimVal = ins[key];
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(dimVal) && this.CandiateDimensions[key]) {
- dimVal = ins[this.CandiateDimensions[key]];
- }
-
- return dimVal !== null && dimVal !== void 0 ? dimVal : extraDimValue;
- };
-
- BaseDatasource.prototype.query = function (options) {
- var _this = this;
-
- var service = this.service; // 强制声明非空
-
- var queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(options.targets, function (item) {
- // 过滤无效的查询 target
- return item.hide !== true && !!item.namespace && !!item[service].metricName && !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item[service].region, false)) && !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item[service].instance, true));
- }).reduce(function (prev, target) {
- if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target[service].timeshift) > 0) {
- var cloneTarget = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(target);
-
- cloneTarget[service].timeshift = '';
- return __spreadArray(__spreadArray([], prev, true), [cloneTarget, target], false);
- }
-
- return __spreadArray(__spreadArray([], prev, true), [target], false);
- }, []).map(function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var instances, instanceCache, timeshift, region, insInReq, _i, instances_1, ins, dimensionObject, dimKeys, dimResult, data;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- instances = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(this.templateSrv, options.scopedVars, target[service].instance, true);
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getInstance(this.service)];
-
- case 1:
- instanceCache = _a.sent();
- timeshift = Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target[service].timeshift);
- instances = [].concat(instances).map(function (inst) {
- var _a, _b;
-
- try {
- return JSON.parse(inst); // 兼容json字符串的 形式
- } catch (error) {
- // 如果没拿到缓存,取默认实例组
- if (!instanceCache) return (_a = _this.getDefaultInsObj) === null || _a === void 0 ? void 0 : _a.call(_this, inst);
- return (_b = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(instanceCache.find(function (item) {
- return item[_this.templateQueryIdMap.instance] === inst;
- }))) !== null && _b !== void 0 ? _b : {};
- }
- });
- region = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ReplaceVariable"])(this.templateSrv, options.scopedVars, target[service].region, false);
- insInReq = [];
- _i = 0, instances_1 = instances;
- _a.label = 2;
-
- case 2:
- if (!(_i < instances_1.length)) return [3
- /*break*/
- , 5];
- ins = instances_1[_i];
- dimensionObject = target[service].dimensionObject;
- dimKeys = Object.keys(dimensionObject);
- return [4
- /*yield*/
- , this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options)];
-
- case 3:
- dimResult = _a.sent();
- insInReq.push([{
- Dimensions: Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetDimensions"])(dimResult)
- }]);
- _a.label = 4;
-
- case 4:
- _i++;
- return [3
- /*break*/
- , 2];
-
- case 5:
- data = {
- StartTime: moment__WEBPACK_IMPORTED_MODULE_1___default()(options.range.from).subtract(timeshift).format(),
- EndTime: moment__WEBPACK_IMPORTED_MODULE_1___default()(options.range.to).subtract(timeshift).format(),
- Period: target[service].period || 300,
- Instances: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.flatMap(insInReq),
- Namespace: target.namespace,
- MetricName: target[service].metricName
- };
- return [2
- /*return*/
- , this.getMonitorData(data, region, instances, target[service], options)];
- }
- });
- });
- });
-
- if (queries.length === 0) {
- return [];
- }
-
- return Promise.all(queries).then(function (responses) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.flatten(responses);
- })["catch"](function (error) {
- return [];
- });
- };
-
- BaseDatasource.prototype.getDefaultInsObj = function (ins) {
- return {};
- };
-
- BaseDatasource.prototype.getInstanceReqConfig = function (selfIns) {
- return {};
- };
-
- BaseDatasource.prototype.getInvalidDimensions = function (selfIns, target) {
- return {};
- }; // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串
-
-
- BaseDatasource.prototype.getVariable = function (metric) {
- var rs = this.templateSrv.replace((metric || '').trim());
- var valStr = rs.match(/\{([\w-,]+)\}/); // 判断是否为多选
-
- if (valStr) {
- return valStr[1].split(',');
- }
-
- return rs;
- };
- /**
- * 获取 监控数据
- * @param params 获取监控数据的请求参数
- * @param region 地域信息
- * @param instances 实例列表,用于对返回结果的匹配解析
- */
-
-
- BaseDatasource.prototype.getMonitorData = function (params, region, instances, target, options) {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'monitor');
- var timeshift = Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["getTimeShiftInMs"])(target.timeshift);
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: params
- }, serviceInfo.service, {
- action: 'GetMonitorData',
- region: region
- }).then(function (response) {
- return Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["ParseQueryResult"])(response, instances, timeshift);
- });
- };
-
- BaseDatasource.prototype.getRegions = function () {
- return this.doRequest({
- url: this.url + '/cvm'
- }, 'cvm', {
- action: 'DescribeRegions'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.RegionSet || [], function (item) {
- return {
- text: item.RegionName,
- value: item.Region,
- RegionState: item.RegionState
- };
- }), function (item) {
- return item.RegionState === 'AVAILABLE';
- });
- });
- };
-
- BaseDatasource.prototype.getMetrics = function (region) {
- var _this = this;
-
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'monitor');
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Namespace: this.namespace
- }
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeBaseMetrics'
- }).then(function (response) {
- var res = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(response.MetricSet || [], function (item) {
- return !(item.Namespace !== _this.namespace || !item.MetricName);
- }));
-
- var resFilterFn = _this.MetricReqConfig.resultFilter;
-
- if (resFilterFn) {
- return res.map(function (item) {
- return resFilterFn(item);
- });
- }
-
- return res;
- });
- };
-
- BaseDatasource.prototype.getInstances = function (region, params) {
- if (params === void 0) {
- params = {};
- }
-
- var _a = this.InstanceReqConfig || this.getInstanceReqConfig(this),
- _b = _a.service,
- service = _b === void 0 ? this.service : _b,
- action = _a.action,
- field = _a.responseField,
- interceptor = _a.interceptor;
-
- params = __assign({
- Offset: 0,
- Limit: 100
- }, params);
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, service);
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: (interceptor === null || interceptor === void 0 ? void 0 : interceptor.request) ? interceptor.request(params) : params
- }, serviceInfo.service, {
- region: region,
- action: action
- }).then(function (response) {
- var _a, _b; // 处理异常,则不按正常的情况处理,直接抛出错误
-
-
- if (response === null || response === void 0 ? void 0 : response.Error) {
- console.error(response.Error);
- return response;
- }
-
- var result; // 先,field处理
-
- if (field) {
- result = (_b = (_a = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, field)) !== null && _a !== void 0 ? _a : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, "Result.".concat(field))) !== null && _b !== void 0 ? _b : [];
- } // 后,拦截器处理
-
-
- if (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) {
- result = interceptor.response(result);
- }
-
- return result;
- });
- };
-
- BaseDatasource.prototype.getVariableInstances = function (region, query) {
- var _this = this;
-
- if (query === void 0) {
- query = {};
- }
-
- var result = [];
-
- var params = __assign({
- Offset: 0,
- Limit: 100
- }, query);
-
- var _a = this.InstanceReqConfig || this.getInstanceReqConfig(this),
- _b = _a.service,
- service = _b === void 0 ? this.service : _b,
- action = _a.action,
- field = _a.responseField,
- interceptor = _a.interceptor;
-
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, service);
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: (interceptor === null || interceptor === void 0 ? void 0 : interceptor.request) ? interceptor.request(params) : params
- }, serviceInfo.service, {
- region: region,
- action: action
- }).then(function (response) {
- var _a, _b, _c, _d, _e, _f;
-
- result = (_b = (_a = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, field)) !== null && _a !== void 0 ? _a : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, "Result.".concat(field))) !== null && _b !== void 0 ? _b : [];
- var total = (_f = (_e = (_d = (_c = response.TotalCount) !== null && _c !== void 0 ? _c : response.TotalCnt) !== null && _d !== void 0 ? _d : response.TotalNumber) !== null && _e !== void 0 ? _e : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, "Result.TotalCount")) !== null && _f !== void 0 ? _f : 0;
-
- if (result.length >= total) {
- return (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) ? interceptor.response(result) : result;
- } else {
- var param = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["SliceLength"])(total, (params === null || params === void 0 ? void 0 : params.Limit) || 100);
- var promises_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(param, function (item) {
- promises_1.push(_this.getInstances(region, __assign(__assign({}, item), query)));
- });
-
- return Promise.all(promises_1).then(function (responses) {
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(responses, function (item) {
- result = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.concat(result, item);
- });
-
- return (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) ? interceptor.response(result) : result;
- })["catch"](function (error) {
- return (interceptor === null || interceptor === void 0 ? void 0 : interceptor.response) ? interceptor.response(result) : result;
- });
- }
- });
- }; // 检查某变量字段是否有值
-
-
- BaseDatasource.prototype.isValidConfigField = function (field) {
- return field && field.length > 0;
- };
-
- BaseDatasource.prototype.testDatasource = function () {
- // const { service = this.service, action } = this.InstanceReqConfig;
- // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service);
- var _this = this;
-
- if (!this.isValidConfigField(this.secretId)) {
- return {
- service: this.service,
- status: 'error',
- message: 'The SecretId/SecretKey field is required.'
- };
- }
-
- return Promise.all([this.getRegions(), this.getMetrics(), // this.doRequest(
- // {
- // url: this.url + serviceInfo.path,
- // data: {
- // Offset: 0,
- // Limit: 1,
- // },
- // },
- // service,
- // { region: 'ap-guangzhou', action },
- // ),
- this.getInstances('ap-guangzhou', {
- Offset: 0,
- Limit: 1
- })]).then(function (responses) {
- var cvmErr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(responses, '[0].Error', {});
-
- var monitorErr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(responses, '[1].Error', {});
-
- var serviceErr = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(responses, '[2].Error', {}); // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1;
- // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1;
- // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1;
-
-
- var cvmAuthFail = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(cvmErr, 'Code', '');
-
- var monitorAuthFail = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(monitorErr, 'Code', '');
-
- var serviceAuthFail = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(serviceErr, 'Code', '');
-
- if (cvmAuthFail || monitorAuthFail || serviceAuthFail) {
- var messages = [];
-
- if (cvmAuthFail) {
- messages.push(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(cvmErr, 'Code'));
- }
-
- if (monitorAuthFail) {
- messages.push(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(monitorErr, 'Code'));
- }
-
- if (serviceAuthFail) {
- messages.push(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(serviceErr, 'Code'));
- }
-
- var message = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.join(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(messages)), '; ');
-
- return {
- service: _this.service,
- status: 'error',
- message: message
- };
- } else {
- return {
- namespace: _this.namespace,
- service: _this.service,
- status: 'success',
- message: "Successfully queried the ".concat(_this.service, " service."),
- title: 'Success'
- };
- }
- })["catch"](function (error) {
- var message = "".concat(_this.service, " service:");
- message += error.statusText ? error.statusText + '; ' : '';
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(error, 'data.error.code', '')) {
- message += error.data.error.code + '. ' + error.data.error.message;
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(error, 'data.error', '')) {
- message += error.data.error;
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(error, 'data', '')) {
- message += error.data;
- } else {
- message += "Cannot connect to ".concat(_this.service, " service.");
- }
-
- return {
- service: _this.service,
- status: 'error',
- message: message
- };
- });
- };
-
- BaseDatasource.prototype.doRequest = function (options, service, signObj) {
- if (signObj === void 0) {
- signObj = {};
- }
-
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetRequestParams"])(options, service, signObj, this.secretId, this.instanceSettings.id, this.backendSrv)];
-
- case 1:
- options = _a.sent();
- return [2
- /*return*/
- , this.backendSrv.datasourceRequest(options).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(response, 'data.Response', {});
- })["catch"](function (error) {
- throw error;
- })];
- }
- });
- });
- };
-
- return BaseDatasource;
-}();
-
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/_base/query.ts":
-/*!**********************************************!*\
- !*** ./datasource/tc_monitor/_base/query.ts ***!
- \**********************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-
-
-
-function classFactory(detailConfig) {
- return (
- /** @class */
- function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- Object.assign($scope, detailConfig);
-
- $scope.getDropdown = function (field) {
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GetServiceFromNamespace"])($scope.namespace);
- return $scope.datasource.getFilterDropdown(service, {
- field: field,
- region: $scope.region
- });
- };
- }
-
- return QueryCtrl;
- }()
- );
-}
-
-var template = "\n
\n";
-
-function queryDDOFactory(QueryCtrl) {
- return function queryDDO() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
- };
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (function (name, config) {
- // QueryCtrl._config = config;
- var newQueryIns = classFactory(config);
- grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(name, queryDDOFactory(newQueryIns));
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/_base/query_filter.ts":
-/*!*****************************************************!*\
- !*** ./datasource/tc_monitor/_base/query_filter.ts ***!
- \*****************************************************/
-/*! exports provided: queryDDO, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryDDO", function() { return queryDDO; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-
-
-var SPQueryCtrl =
-/** @class */
-function () {
- SPQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function SPQueryCtrl($scope, $rootScope) {
- Object.assign($scope, SPQueryCtrl._config);
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.init();
- }
-
- return SPQueryCtrl;
-}();
-
-var template = "\n\n";
-function queryDDO() {
- return {
- template: template,
- controller: SPQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-/* harmony default export */ __webpack_exports__["default"] = (function (name, config) {
- SPQueryCtrl._config = config;
- grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(name, queryDDO);
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/_base/types.ts":
-/*!**********************************************!*\
- !*** ./datasource/tc_monitor/_base/types.ts ***!
- \**********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/apigateway/datasource.ts":
-/*!********************************************************!*\
- !*** ./datasource/tc_monitor/apigateway/datasource.ts ***!
- \********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/apigateway/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["APIGATEWAYInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["APIGATEWAYInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'apigateway',
- action: 'DescribeServicesStatus',
- responseField: 'ServiceSet'
- };
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- return _this;
- } // getFilterDropdown({ field }) {
- // return super.getRegions();
- // }
-
-
- DCDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_5__["t"])(value)
- };
- }));
- };
-
- DCDatasource.prototype.getEnvironmentNameList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, instanceId, serviceInfo, res, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region, instanceId = params.instanceId;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, this.service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeServiceEnvironmentList'
- });
- }, {
- ServiceId: instanceId
- }, 'EnvironmentList')];
-
- case 1:
- res = _a.sent();
- rs = res[0];
- return [2
- /*return*/
- , rs];
- }
- });
- });
- };
-
- DCDatasource.prototype.fetchMetricData = function (action, region, instance) {
- return __awaiter(this, void 0, void 0, function () {
- var rs, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(action === 'DescribeServiceEnvironmentList')) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getEnvironmentNameList({
- region: region,
- instanceId: instance[this.templateQueryIdMap.instance]
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap.environmentName];
- return {
- text: o[_this.templateQueryIdMap.environmentName],
- value: o[_this.templateQueryIdMap.environmentName]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage.environmentList, rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/apigateway/query.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/apigateway/query.ts ***!
- \***************************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/apigateway/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.APIGATEWAYFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["APIGATEWAYFilterFieldsDescriptor"];
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); // console.log({namespace, service});
-
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance];
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraDropdown = function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, instanceId, region, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instanceId = $scope.getInstanceId();
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({
- region: region,
- instanceId: instanceId
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- return {
- text: o.EnvironmentName,
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/apigateway/query_def.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/apigateway/query_def.ts ***!
- \*******************************************************/
-/*! exports provided: default, APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, APIGATEWAYInstanceAliasList, APIGATEWAYInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, queryMonitorExtraConfg, keyInStorage, APIGATEWAYGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYFilterFieldsDescriptor", function() { return APIGATEWAYFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYInstanceAliasList", function() { return APIGATEWAYInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYInvalidDemensions", function() { return APIGATEWAYInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APIGATEWAYGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/APIGATEWAY'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'apigatewayQuery';
-var APIGATEWAYInvalidDemensions = {
- serviceId: 'ServiceId',
- environmentName: 'EnvironmentName',
- apiid: 'Apiid',
- apiId: 'Apiid'
-}; // 需和文件名对应
-
-var APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName'];
-var templateQueryIdMap = {
- instance: 'ServiceId',
- environmentName: 'EnvironmentName'
-}; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- environmentList: 'EnvironmentList'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- EnvironmentName: {
- dim_KeyInStorage: keyInStorage.environmentList,
- dim_KeyInTarget: 'EnvironmentName',
- dim_KeyInMap: templateQueryIdMap.environmentName
- }
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var APIGATEWAYFilterFields = {
- Limit: 20,
- Offset: 0,
- ServiceId: [],
- ServiceName: [],
- NotUsagePlanId: [],
- Environment: [],
- IpVersion: []
-};
-var APIGATEWAYFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'ServiceId',
- enDescriptor: 'ServiceId',
- cnDescriptor: '服务id',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ServiceName',
- enDescriptor: 'ServiceName',
- cnDescriptor: '服务名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'NotUsagePlanId',
- enDescriptor: 'NotUsagePlanId',
- cnDescriptor: 'NotUsagePlanId',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'Environment',
- enDescriptor: 'Environment',
- cnDescriptor: '环境名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'IpVersion',
- enDescriptor: 'IpVersion',
- cnDescriptor: 'IP版本',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198',
- namespace: namespace,
- fieldDescriptor: APIGATEWAYFilterFieldsDescriptor
-};
-var APIGATEWAY_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'ServiceId',
- EnvironmentName: '',
- queries: APIGATEWAYFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-} // regions for dropdown
-
-
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}];
-/* harmony default export */ __webpack_exports__["default"] = (APIGATEWAY_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bmIntraLb/datasource.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/bmIntraLb/datasource.ts ***!
- \*******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bmIntraLb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMINTRALBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMINTRALBInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'bmlb',
- action: 'DescribeLoadBalancers',
- responseField: 'LoadBalancerSet',
- interceptor: {
- request: function request(params) {
- return __assign(__assign({}, params), {
- LoadBalancerType: 'internal'
- });
- } // 设置一些请求参数的 默认值
-
- }
- };
- _this.RegionMap = {};
- return _this;
- } // 重写getRegion
-
-
- DCDatasource.prototype.getRegions = function () {
- var _this = this;
-
- return this.doRequest({
- url: this.url + '/bm'
- }, 'bm', {
- action: 'DescribeRegions',
- region: 'ap-guangzhou'
- }).then(function (response) {
- // 缓存,后面获取可用区zone
- _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(response.RegionInfoSet, 'Region');
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfoSet || [], function (item) {
- return {
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.Region),
- value: item.Region
- };
- });
- });
- };
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) {
- if (Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])(item)) {
- return item;
- }
-
- return null;
- }))];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bmIntraLb/query.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/bmIntraLb/query.ts ***!
- \**************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bmIntraLb/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bmIntraLb/query_def.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/bmIntraLb/query_def.ts ***!
- \******************************************************/
-/*! exports provided: default, BMINTRALBFilterFieldsDescriptor, templateQueryIdMap, BMINTRALBInstanceAliasList, BMINTRALBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, isValidMetric, BMINTRALBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBFilterFieldsDescriptor", function() { return BMINTRALBFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBInstanceAliasList", function() { return BMINTRALBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBInvalidDemensions", function() { return BMINTRALBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMINTRALBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/BM_INTRA_LB'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'bmIntraLbQuery';
-var BMINTRALBInvalidDemensions = {
- vip: 'LoadBalancerVips',
- vpcId: 'VpcId'
-}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY
-
-var BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];
-var templateQueryIdMap = {
- instance: 'LoadBalancerId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是类型
-
-var BMINTRALBFilterFields = {
- Limit: 20,
- Offset: 0,
- LoadBalancerIds: [],
- LoadBalancerName: [],
- LoadBalancerVips: []
-};
-var BMINTRALBFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'LoadBalancerIds',
- enDescriptor: 'LoadBalancerIds',
- cnDescriptor: '负载均衡器ID数组',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerName',
- enDescriptor: 'LoadBalancerName',
- cnDescriptor: '负载均衡器名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerVips',
- enDescriptor: 'LoadBalancerVips',
- cnDescriptor: '负载均衡获得的公网IP地址',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',
- namespace: namespace,
- fieldDescriptor: BMINTRALBFilterFieldsDescriptor
-};
-var BMINTRALB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'LoadBalancerId',
- queries: BMINTRALBFilterFields
-};
-var BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];
-
-function isValidMetric(metric) {
- var validMetrics = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.map(BMLBValidMetricsT, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper);
-
- return lodash__WEBPACK_IMPORTED_MODULE_1___default.a.indexOf(validMetrics, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper(metric.MetricName)) !== -1;
-}
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (BMINTRALB_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bm_lb/datasource.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/bm_lb/datasource.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_lb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMLBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CPMInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'bmlb',
- action: 'DescribeLoadBalancers',
- responseField: 'LoadBalancerSet',
- interceptor: {
- request: function request(params) {
- return __assign(__assign({}, params), {
- LoadBalancerType: 'open'
- });
- } // 设置一些请求参数的 默认值
-
- }
- };
- _this.RegionMap = {};
- return _this;
- }
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) {
- if (Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])(item)) {
- return item;
- }
-
- return null;
- }))];
- }
- });
- });
- }; // 重写getRegion
-
-
- DCDatasource.prototype.getRegions = function () {
- var _this = this;
-
- return this.doRequest({
- url: this.url + '/bm'
- }, 'bm', {
- action: 'DescribeRegions',
- region: 'ap-guangzhou'
- }).then(function (response) {
- // 缓存,后面获取可用区zone
- _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(response.RegionInfoSet, 'Region');
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfoSet || [], function (item) {
- return {
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.Region),
- value: item.Region
- };
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bm_lb/query.ts":
-/*!**********************************************!*\
- !*** ./datasource/tc_monitor/bm_lb/query.ts ***!
- \**********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_lb/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bm_lb/query_def.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/bm_lb/query_def.ts ***!
- \**************************************************/
-/*! exports provided: default, CPMFilterFieldsDescriptor, templateQueryIdMap, BMLBInstanceAliasList, CPMInvalidDemensions, namespace, queryEditorName, queryEditorConfig, isValidMetric, BMLBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMFilterFieldsDescriptor", function() { return CPMFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMLBInstanceAliasList", function() { return BMLBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMInvalidDemensions", function() { return CPMInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMLBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/BM_LB'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'bmLbQuery';
-var CPMInvalidDemensions = {
- vip: 'LoadBalancerVips'
-}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY
-
-var BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];
-var templateQueryIdMap = {
- instance: 'LoadBalancerId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是类型
-
-var CPMFilterFields = {
- Limit: 20,
- Offset: 0,
- LoadBalancerIds: [],
- LoadBalancerName: [],
- LoadBalancerVips: []
-};
-var CPMFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'LoadBalancerIds',
- enDescriptor: 'LoadBalancerIds',
- cnDescriptor: '负载均衡器ID数组',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerName',
- enDescriptor: 'LoadBalancerName',
- cnDescriptor: '负载均衡器名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerVips',
- enDescriptor: 'LoadBalancerVips',
- cnDescriptor: '负载均衡获得的公网IP地址',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',
- namespace: namespace,
- fieldDescriptor: CPMFilterFieldsDescriptor
-};
-var CPM_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'LoadBalancerId',
- queries: CPMFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-var BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];
-
-function isValidMetric(metric) {
- var validMetrics = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.map(BMLBValidMetricsT, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper);
-
- return lodash__WEBPACK_IMPORTED_MODULE_1___default.a.indexOf(validMetrics, lodash__WEBPACK_IMPORTED_MODULE_1___default.a.toUpper(metric.MetricName)) !== -1;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CPM_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bm_pcx/datasource.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/bm_pcx/datasource.ts ***!
- \****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_pcx/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMPCXInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["BMPCXInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'bmvpc',
- action: 'DescribeVpcPeerConnections',
- responseField: 'VpcPeerConnectionSet'
- };
- _this.MetricReqConfig = {
- resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"]
- };
- _this.RegionMap = {};
- return _this;
- } // 重写getRegion
-
-
- DCDatasource.prototype.getRegions = function () {
- var _this = this;
-
- return this.doRequest({
- url: this.url + '/bm'
- }, 'bm', {
- action: 'DescribeRegions',
- region: 'ap-guangzhou'
- }).then(function (response) {
- // 缓存,后面获取可用区zone
- _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(response.RegionInfoSet, 'Region');
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfoSet || [], function (item) {
- return {
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.Region),
- value: item.Region
- };
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bm_pcx/query.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/bm_pcx/query.ts ***!
- \***********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bm_pcx/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bm_pcx/query_def.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/bm_pcx/query_def.ts ***!
- \***************************************************/
-/*! exports provided: default, BMPCXFilterFieldsDescriptor, templateQueryIdMap, BMPCXInstanceAliasList, BMPCXInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, BMPCXGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXFilterFieldsDescriptor", function() { return BMPCXFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXInstanceAliasList", function() { return BMPCXInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXInvalidDemensions", function() { return BMPCXInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMPCXGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/BM_PCX'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'bmPcxQuery';
-var BMPCXInvalidDemensions = {
- peeringConnectionId: 'VpcPeerConnectionId'
-}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY
-
-var BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName'];
-var templateQueryIdMap = {
- instance: 'VpcPeerConnectionId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是类型
-
-var BMPCXFilterFields = {
- Limit: 20,
- Offset: 0,
- VpcPeerConnectionIds: []
-};
-var BMPCXFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'VpcPeerConnectionIds',
- enDescriptor: 'VpcPeerConnectionIds',
- cnDescriptor: '对等连接实例ID',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903',
- namespace: namespace,
- fieldDescriptor: BMPCXFilterFieldsDescriptor
-};
-var BMPCX_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'VpcPeerConnectionId',
- queries: BMPCXFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['peeringConnectionId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (BMPCX_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bwp/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/bwp/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bwp/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var BWPDatasource =
-/** @class */
-function (_super) {
- __extends(BWPDatasource, _super);
-
- function BWPDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/BWP';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["BWPInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["BWPInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'BandwidthPackageId'
- };
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeBandwidthPackages',
- responseField: 'BandwidthPackageSet'
- };
- return _this;
- }
-
- return BWPDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (BWPDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bwp/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/bwp/query.ts ***!
- \********************************************/
-/*! exports provided: BWPQueryCtrl, bwpQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPQueryCtrl", function() { return BWPQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bwpQuery", function() { return bwpQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/bwp/query_def.ts");
-
-
-
-var BWPQueryCtrl =
-/** @class */
-function () {
- BWPQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function BWPQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.BWPFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["BWPFilterFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- case 'zone':
- return $scope.getZones();
-
- default:
- return [];
- }
- };
-
- $scope.getZones = function () {
- if (!$scope.region) {
- return [];
- }
-
- return $scope.datasource.getZones('cvm', $scope.region);
- };
-
- $scope.init();
- }
-
- return BWPQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function bwpQuery() {
- return {
- template: template,
- controller: BWPQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('bwpQuery', bwpQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/bwp/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/bwp/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, BWPFilterFieldsDescriptor, templateQueryIdMap, BWPInstanceAliasList, BWPInvalidDemensions, BWPGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPFilterFieldsDescriptor", function() { return BWPFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPInstanceAliasList", function() { return BWPInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPInvalidDemensions", function() { return BWPInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BWPGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var networkTypes = [{
- text: 'BGP',
- value: 'BGP'
-}, {
- text: 'SINGLEISP',
- value: 'SINGLEISP'
-}, {
- text: 'ANYCAST',
- value: 'ANYCAST'
-}];
-var chargeTypes = [{
- text: 'top5计费',
- value: 'TOP5_POSTPAID_BY_MONTH'
-}, {
- text: '月95计费',
- value: 'PERCENT95_POSTPAID_BY_MONTH'
-}];
-var BWPFilterFields = {
- 'bandwidth-package_id': [],
- 'bandwidth-package-name': [],
- 'network-type': [],
- 'charge-type': []
-};
-var BWPFilterFieldsDescriptor = [{
- key: 'bandwidth-package_id',
- enDescriptor: 'BandwidthPackage Id',
- cnDescriptor: '带宽包ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'bandwidth-package-name',
- enDescriptor: 'BandwidthPackage Name',
- cnDescriptor: '带宽包名称',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'network-type',
- enDescriptor: 'network type',
- cnDescriptor: '带宽包类型',
- link: '',
- type: 'select',
- list: networkTypes
-}, {
- key: 'charge-type',
- enDescriptor: 'charge type',
- cnDescriptor: '带宽包计费类型',
- link: '',
- type: 'select',
- list: chargeTypes
-}];
-var BWP_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'BandwidthPackageId',
- queries: {
- Limit: 20,
- Offset: 0,
- instanceIdsChecked: false,
- filtersChecked: false,
- BandwidthPackageIds: [''],
- Filters: __assign({}, BWPFilterFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.BandwidthPackageIds)) {
- var BandwidthPackageIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.BandwidthPackageIds);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(BandwidthPackageIds).length > 0) {
- params.BandwidthPackageIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(BandwidthPackageIds).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-var BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName'];
-var templateQueryIdMap = {
- instance: 'BandwidthPackageId'
-};
-var BWPInvalidDemensions = {
- bandwidthPackageId: 'BandwidthPackageId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (BWP_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cbs/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cbs/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cbs/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CBSInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CBSInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'cbs',
- action: 'DescribeDisks',
- responseField: 'DiskSet'
- };
- return _this;
- }
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.filter(rawSet, _query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cbs/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cbs/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cbs/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cbs/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cbs/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CBSFilterFieldsDescriptor, templateQueryIdMap, CBSInstanceAliasList, CBSInvalidDemensions, namespace, queryEditorName, queryEditorConfig, isValidMetric, CBSGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSFilterFieldsDescriptor", function() { return CBSFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSInstanceAliasList", function() { return CBSInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSInvalidDemensions", function() { return CBSInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CBSGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/BLOCK_STORAGE';
-var queryEditorName = 'cbsQuery';
-var CBSInvalidDemensions = {
- diskId: 'DiskId',
- InstanceId: 'InstanceId',
- diskname: 'DiskName',
- unInstanceId: 'InstanceId'
-};
-var CBSInstanceAliasList = ['DiskId', 'DiskName'];
-var templateQueryIdMap = {
- instance: 'DiskId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var CBSFilterFields = {
- Limit: 20,
- Offset: 0,
- DiskIds: [],
- OrderField: [],
- Order: [],
- ReturnBindAutoSnapshotPolicy: false
-};
-var CBSFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'DiskIds',
- enDescriptor: 'DiskIds',
- cnDescriptor: '云硬盘ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'Order',
- enDescriptor: 'Order',
- cnDescriptor: '排列顺序',
- link: '',
- type: 'select',
- list: [{
- text: '升序排列',
- value: 'ASC'
- }, {
- text: '降序排列',
- value: 'DESC'
- }]
-}, {
- key: 'OrderField',
- enDescriptor: 'OrderField',
- cnDescriptor: '排序的依据字段',
- link: '',
- type: 'select',
- list: [{
- text: '云盘的创建时间排序',
- value: 'CREATE_TIME'
- }, {
- text: '云盘的到期时间排序',
- value: 'DEADLINE'
- }]
-}, {
- key: 'ReturnBindAutoSnapshotPolicy',
- enDescriptor: 'ReturnBindAutoSnapshotPolicy',
- cnDescriptor: '否需要返回云盘绑定的定期快照策略ID',
- link: '',
- type: 'switch'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315',
- namespace: namespace,
- fieldDescriptor: CBSFilterFieldsDescriptor
-};
-var CBS_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'DiskId',
- queries: CBSFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-function isValidMetric(metricObj) {
- if (metricObj === void 0) {
- metricObj = {};
- }
-
- var dimension = lodash__WEBPACK_IMPORTED_MODULE_0__["get"](metricObj, 'Dimensions[0].Dimensions'); // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);
-
-
- return dimension.length === 1 && lodash__WEBPACK_IMPORTED_MODULE_0__["indexOf"](dimension, 'diskId') !== -1;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CBS_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdb/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cdb/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdb/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var CDBDatasource =
-/** @class */
-function (_super) {
- __extends(CDBDatasource, _super);
-
- function CDBDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/CDB';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDBInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'InstanceId'
- };
- _this.InstanceReqConfig = {
- service: 'cdb',
- action: 'DescribeDBInstances',
- responseField: 'Items'
- };
- return _this;
- }
-
- CDBDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(rawSet.map(function (item) {
- if (Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["isValidMetric"])(item)) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item);
- }
-
- return null;
- }))];
- }
- });
- });
- };
- /**
- * 获取 可用区
- * @param region 地域信息
- */
-
-
- CDBDatasource.prototype.getZones = function (region) {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cvm');
- return this.doRequest({
- url: this.url + serviceInfo.path
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeZones'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.ZoneSet || [], function (item) {
- return {
- text: item.ZoneName,
- value: item.ZoneId,
- ZoneState: item.ZoneState,
- Zone: item.Zone
- };
- }), function (item) {
- return item.ZoneState === 'AVAILABLE';
- });
- });
- }; // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持
-
-
- CDBDatasource.prototype.getDefaultInsObj = function (ins) {
- var _a;
-
- return _a = {}, _a[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance] = ins, _a.InstanceType = 1, _a;
- };
-
- return CDBDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CDBDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdb/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cdb/query.ts ***!
- \********************************************/
-/*! exports provided: CDBQueryCtrl, cdbQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBQueryCtrl", function() { return CDBQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cdbQuery", function() { return cdbQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdb/query_def.ts");
-
-
-
-var CDBQueryCtrl =
-/** @class */
-function () {
- CDBQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function CDBQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.CDBFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDBFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- case 'ZoneIds':
- return $scope.getZones();
-
- default:
- return [];
- }
- };
-
- $scope.getZones = function () {
- if (!$scope.region) {
- return [];
- }
-
- return $scope.datasource.getZones('cdb', $scope.region);
- };
-
- $scope.init();
- }
-
- return CDBQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function cdbQuery() {
- return {
- template: template,
- controller: CDBQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cdbQuery', cdbQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdb/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cdb/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CDBFieldsDescriptor, CDBInstanceAliasList, templateQueryIdMap, CDBInvalidDemensions, isValidMetric, modifyDimensons, CDBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBFieldsDescriptor", function() { return CDBFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBInstanceAliasList", function() { return CDBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBInvalidDemensions", function() { return CDBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var InstanceTypes = [{
- text: '主实例',
- value: 1
-}, {
- text: '备灾实例',
- value: 2
-}, {
- text: '只读实例',
- value: 3
-}];
-var Status = [{
- text: '创建中',
- value: 0
-}, {
- text: '运行中',
- value: 1
-}, {
- text: '隔离中',
- value: 4
-}, {
- text: '已隔离',
- value: 5
-}];
-var PayTypes = [{
- text: '包年包月',
- value: 0
-}, {
- text: '小时计费',
- value: 1
-}];
-var TaskStatus = [{
- text: '没有任务',
- value: 0
-}, {
- text: '升级中',
- value: 1
-}, {
- text: '数据导入中',
- value: 2
-}, {
- text: '开放Slave中',
- value: 3
-}, {
- text: '外网访问开通中',
- value: 4
-}, {
- text: '批量操作执行中',
- value: 5
-}, {
- text: '回档中',
- value: 6
-}, {
- text: '外网访问关闭中',
- value: 7
-}, {
- text: '密码修改中',
- value: 8
-}, {
- text: '实例名修改中',
- value: 9
-}, {
- text: '重启中',
- value: 10
-}, {
- text: '自建迁移中',
- value: 12
-}, {
- text: '删除库表中',
- value: 13
-}, {
- text: '灾备实例创建同步中',
- value: 14
-}, {
- text: '升级待切换',
- value: 15
-}, {
- text: '升级切换中',
- value: 16
-}, {
- text: '升级切换完成',
- value: 17
-}];
-var EngineVersions = [{
- text: '5.1',
- value: '5.1'
-}, {
- text: '5.5',
- value: '5.5'
-}, {
- text: '5.6',
- value: '5.6'
-}, {
- text: '5.7',
- value: '5.7'
-}];
-var OrderBy = [{
- text: 'InstanceId',
- value: 'InstanceId'
-}, {
- text: 'InstanceName',
- value: 'InstanceName'
-}, {
- text: 'CreateTime',
- value: 'CreateTime'
-}, {
- text: 'DeadlineTime',
- value: 'DeadlineTime'
-}];
-var OrderDirection = [{
- text: 'ASC',
- value: 'ASC'
-}, {
- text: 'DESC',
- value: 'DESC'
-}];
-var InitFlag = [{
- text: '未初始化',
- value: 0
-}, {
- text: '初始化',
- value: 1
-}];
-var CdbErrors = [{
- text: '未锁定',
- value: 0
-}, {
- text: '锁定',
- value: 1
-}];
-var CDBFields = {
- ProjectId: '',
- InstanceTypes: {},
- Vips: [],
- Status: {},
- Offset: 0,
- Limit: 20,
- SecurityGroupId: '',
- PayTypes: {},
- InstanceNames: [],
- TaskStatus: {},
- EngineVersions: {},
- VpcIds: [],
- ZoneIds: [],
- SubnetIds: [],
- CdbErrors: {},
- OrderBy: {},
- OrderDirection: {},
- InstanceIds: [],
- InitFlag: {}
-};
-var CDBFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceNames',
- enDescriptor: 'Instance Name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'InstanceIds',
- enDescriptor: 'Instance ID',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'ZoneIds',
- enDescriptor: 'Zone ID',
- cnDescriptor: '可用区的ID',
- link: '',
- type: 'dropdownmulti'
-}, {
- key: 'InstanceTypes',
- enDescriptor: 'Instance Type',
- cnDescriptor: '实例类型',
- link: '',
- multiple: true,
- type: 'select',
- list: InstanceTypes
-}, {
- key: 'EngineVersions',
- enDescriptor: 'Engine Version',
- cnDescriptor: '实例数据库引擎版本',
- link: '',
- multiple: true,
- type: 'select',
- list: EngineVersions
-}, {
- key: 'TaskStatus',
- enDescriptor: 'Task Status',
- cnDescriptor: '实例任务',
- link: '',
- multiple: true,
- type: 'select',
- list: TaskStatus
-}, {
- key: 'InitFlag',
- enDescriptor: 'Init Flag',
- cnDescriptor: '实例初始化状态',
- link: '',
- multiple: true,
- type: 'select',
- list: InitFlag
-}, {
- key: 'PayTypes',
- enDescriptor: 'Pay Type',
- cnDescriptor: '付费类型',
- link: '',
- multiple: true,
- type: 'select',
- list: PayTypes
-}, {
- key: 'CdbErrors',
- enDescriptor: 'CDB Errors',
- cnDescriptor: '实例锁定标记',
- link: '',
- multiple: true,
- type: 'select',
- list: CdbErrors
-}, {
- key: 'Status',
- enDescriptor: 'Status',
- cnDescriptor: '实例状态',
- link: '',
- multiple: true,
- type: 'select',
- list: Status
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderBy
-}, {
- key: 'OrderDirection',
- enDescriptor: 'Order Direction',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: OrderDirection
-}, {
- key: 'Vips',
- enDescriptor: 'Vip',
- cnDescriptor: '实例内网IP地址',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'VpcIds',
- enDescriptor: 'Vpc ID',
- cnDescriptor: '私有网络ID',
- link: 'https://cloud.tencent.com/document/api/215/15778',
- type: 'inputmulti'
-}, {
- key: 'SubnetIds',
- enDescriptor: 'Subnet ID',
- cnDescriptor: '子网ID',
- link: 'https://cloud.tencent.com/document/api/215/15784',
- type: 'inputmulti'
-}, {
- key: 'ProjectId',
- enDescriptor: 'Project ID',
- cnDescriptor: '项目ID',
- link: 'https://cloud.tencent.com/document/product/378/4400',
- type: 'input'
-}, {
- key: 'SecurityGroupId',
- enDescriptor: 'Security Group ID',
- cnDescriptor: '安全组ID',
- link: 'https://cloud.tencent.com/document/api/236/15854',
- type: 'input'
-}];
-var CDB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: __assign({}, CDBFields)
-};
-var CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip'];
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-function isValidMetric(metricObj) {
- if (metricObj === void 0) {
- metricObj = {};
- }
-
- var dimension = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(metricObj, 'Dimensions[0].Dimensions');
-
- return dimension.length === 2 && (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'instanceid') !== -1 && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'insttype') !== -1 || lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'InstanceId') !== -1 && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'InstanceType') !== -1);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = item.Dimensions.map(function (i) {
- return CDBInvalidDemensions[i] || i;
- });
- });
- return metricTmp;
-}
-
-var CDBInvalidDemensions = {
- instanceid: 'InstanceId',
- insttype: 'InstanceType',
- region: 'Region'
-};
-var templateQueryIdMap = {
- instance: 'InstanceId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (CDB_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdn/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cdn/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var CDNDatasource =
-/** @class */
-function (_super) {
- __extends(CDNDatasource, _super);
-
- function CDNDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/CDN';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'Domain'
- };
- _this.InstanceReqConfig = {
- service: 'cdn',
- action: 'DescribeDomains',
- responseField: 'Domains'
- };
- return _this;
- }
-
- CDNDatasource.prototype.metricFindQuery = function (query, regex) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), {
- region: 'ap-guangzhou'
- }), regex)];
- });
- });
- };
-
- return CDNDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CDNDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdn/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cdn/query.ts ***!
- \********************************************/
-/*! exports provided: CDNQueryCtrl, cdnQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNQueryCtrl", function() { return CDNQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cdnQuery", function() { return cdnQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn/query_def.ts");
-
-
-
-var CDNQueryCtrl =
-/** @class */
-function () {
- CDNQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function CDNQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.CDNFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDNFilterFieldsDescriptor"];
- }; // $scope.onChecked = (srcField, dstField) => {
- // if ($scope.target.queries[srcField] === true) {
- // $scope.target.queries[dstField] = false;
- // }
- // $scope.onChange();
- // };
- // $scope.getDropdown = (field) => {
- // switch (field) {
- // case 'zone':
- // return $scope.getZones();
- // default:
- // return [];
- // }
- // };
- // $scope.getZones = () => {
- // if (!$scope.region) {
- // return [];
- // }
- // return $scope.datasource.getZones('cvm', $scope.region);
- // };
-
-
- $scope.init();
- }
-
- return CDNQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function cdnQuery() {
- return {
- template: template,
- controller: CDNQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cdnQuery', cdnQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdn/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cdn/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CDNFilterFieldsDescriptor, templateQueryIdMap, CDNInstanceAliasList, CDNInvalidDemensions, CDNGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNFilterFieldsDescriptor", function() { return CDNFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNInstanceAliasList", function() { return CDNInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNInvalidDemensions", function() { return CDNInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var CDNFilterFields = {
- origin: [],
- domain: [],
- resourceId: [],
- status: {},
- serviceType: {},
- projectId: [],
- domainType: {},
- fullUrlCache: {},
- https: {},
- originPullProtocol: {},
- tagKey: []
-};
-var CDNFilterFieldsDescriptor = [{
- key: 'origin',
- enDescriptor: 'origin',
- cnDescriptor: '主源站',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'domain',
- enDescriptor: 'domain',
- cnDescriptor: '域名',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'resourceId',
- enDescriptor: 'resourceId',
- cnDescriptor: '域名id',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'status',
- enDescriptor: 'status',
- cnDescriptor: '域名状态',
- link: '',
- type: 'select',
- list: [{
- text: 'online',
- value: 'online'
- }, {
- text: 'offline',
- value: 'offline'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'serviceType',
- enDescriptor: 'serviceType',
- cnDescriptor: '业务类型',
- link: '',
- type: 'select',
- list: [{
- text: 'web',
- value: 'web'
- }, {
- text: 'download',
- value: 'download'
- }, {
- text: 'media',
- value: 'media'
- }]
-}, {
- key: 'projectId',
- enDescriptor: 'projectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputNumbermulti'
-}, {
- key: 'domainType',
- enDescriptor: 'domainType',
- cnDescriptor: '主源站类型',
- link: '',
- type: 'select',
- list: [{
- text: '自有源',
- value: 'cname'
- }, {
- text: 'cos接入',
- value: 'cos'
- }]
-}, {
- key: 'fullUrlCache',
- enDescriptor: 'fullUrlCache',
- cnDescriptor: '全路径缓存',
- link: '',
- type: 'select',
- list: [{
- text: '打开',
- value: 'on'
- }, {
- text: '关闭',
- value: 'off'
- }]
-}, {
- key: 'https',
- enDescriptor: 'https',
- cnDescriptor: '是否配置https',
- link: '',
- type: 'select',
- list: [{
- text: 'on',
- value: 'on'
- }, {
- text: 'off',
- value: 'off'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'originPullProtocol',
- enDescriptor: 'originPullProtocol',
- cnDescriptor: '回源协议类型',
- link: '',
- type: 'select',
- list: [{
- text: 'http',
- value: 'http'
- }, {
- text: 'follow',
- value: 'follow'
- }, {
- text: 'https',
- value: 'https'
- }]
-}, {
- key: 'tagKey',
- enDescriptor: 'tagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputmulti'
-}];
-var CDN_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'Domain',
- queries: {
- Limit: 20,
- Offset: 0,
- Filters: __assign({}, CDNFilterFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- // console.log('item', item, queries);
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
-
- return params;
-}
-
-var CDNInstanceAliasList = ['Domain', 'ProjectId'];
-var CDNInvalidDemensions = {
- projectId: 'ProjectId',
- domain: 'Domain'
-};
-var templateQueryIdMap = {
- instance: 'Domain'
-};
-/* harmony default export */ __webpack_exports__["default"] = (CDN_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdn_province/datasource.ts":
-/*!**********************************************************!*\
- !*** ./datasource/tc_monitor/cdn_province/datasource.ts ***!
- \**********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn_province/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNPROVINCEInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CDNPROVINCEInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'cdn',
- action: 'DescribeDomains',
- responseField: 'Domains'
- };
- _this.extrasAlias = ['isp', 'district'];
- return _this;
- } // getFilterDropdown({ field }) {
- // return super.getRegions();
- // }
-
-
- DCDatasource.prototype.metricFindQuery = function (query, regex) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), {
- region: 'ap-guangzhou'
- }), regex)];
- });
- });
- };
-
- DCDatasource.prototype.getConsumerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, field, serviceInfo, rs;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region, field = params.field;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cdn');
- return [4
- /*yield*/
- , this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Name: field
- }
- }, serviceInfo.service, {
- action: 'DescribeMapInfo'
- })];
-
- case 1:
- rs = _a.sent();
- return [2
- /*return*/
- , (rs.MapInfoList || []).map(function (o) {
- return {
- text: o.Name,
- value: o.Name
- };
- })];
- }
- });
- });
- };
-
- DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var field, rs;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(action === 'DescribeMapInfo')) return [3
- /*break*/
- , 2];
- field = query.name;
- return [4
- /*yield*/
- , this.getConsumerList({
- region: region,
- field: field
- })];
-
- case 1:
- rs = _a.sent();
- return [2
- /*return*/
- , rs];
-
- case 2:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdn_province/query.ts":
-/*!*****************************************************!*\
- !*** ./datasource/tc_monitor/cdn_province/query.ts ***!
- \*****************************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cdn_province/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'Isp',
- field: 'isp'
-}, {
- label: 'Province',
- field: 'district'
-}];
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.CDNPROVINCEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CDNPROVINCEFilterFieldsDescriptor"];
- $scope.ExtraFields = ExtraFields;
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.getExtraDropdown = function (target, field) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, region, rs;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getConsumerList')({
- region: region,
- field: field
- })];
-
- case 1:
- rs = _a.sent();
- return [2
- /*return*/
- , rs];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cdn_province/query_def.ts":
-/*!*********************************************************!*\
- !*** ./datasource/tc_monitor/cdn_province/query_def.ts ***!
- \*********************************************************/
-/*! exports provided: default, CDNPROVINCEFilterFieldsDescriptor, templateQueryIdMap, CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, queryEditorName, CDNPROVINCEGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEFilterFieldsDescriptor", function() { return CDNPROVINCEFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEInstanceAliasList", function() { return CDNPROVINCEInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEInvalidDemensions", function() { return CDNPROVINCEInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CDNPROVINCEGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/CDN_LOG_DATA'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'cdnProvinceQuery';
-var CDNPROVINCEInvalidDemensions = {
- domain: 'Domain',
- // isp: 'Isp',
- projectid: 'ProjectId',
- province: 'district',
- appid: 'AppId'
-}; // 需和文件名对应
-
-var CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId'];
-var templateQueryIdMap = {
- instance: 'Domain'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var CDNPROVINCEFilterFields = {
- Limit: 20,
- Offset: 0,
- origin: [],
- domain: [],
- resourceId: [],
- status: {},
- serviceType: {},
- projectId: [],
- domainType: {},
- fullUrlCache: {},
- https: {},
- originPullProtocol: {},
- tagKey: []
-};
-var CDNPROVINCEFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'origin',
- enDescriptor: 'origin',
- cnDescriptor: '主源站',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'domain',
- enDescriptor: 'domain',
- cnDescriptor: '域名',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'resourceId',
- enDescriptor: 'resourceId',
- cnDescriptor: '域名id',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'status',
- enDescriptor: 'status',
- cnDescriptor: '域名状态',
- link: '',
- type: 'select',
- list: [{
- text: 'online',
- value: 'online'
- }, {
- text: 'offline',
- value: 'offline'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'serviceType',
- enDescriptor: 'serviceType',
- cnDescriptor: '业务类型',
- link: '',
- type: 'select',
- list: [{
- text: 'web',
- value: 'web'
- }, {
- text: 'download',
- value: 'download'
- }, {
- text: 'media',
- value: 'media'
- }]
-}, {
- key: 'projectId',
- enDescriptor: 'projectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputNumberMulti'
-}, {
- key: 'domainType',
- enDescriptor: 'domainType',
- cnDescriptor: '主源站类型',
- link: '',
- type: 'select',
- list: [{
- text: '自有源',
- value: 'cname'
- }, {
- text: 'cos接入',
- value: 'cos'
- }]
-}, {
- key: 'fullUrlCache',
- enDescriptor: 'fullUrlCache',
- cnDescriptor: '全路径缓存',
- link: '',
- type: 'select',
- list: [{
- text: '打开',
- value: 'on'
- }, {
- text: '关闭',
- value: 'off'
- }]
-}, {
- key: 'https',
- enDescriptor: 'https',
- cnDescriptor: '是否配置https',
- link: '',
- type: 'select',
- list: [{
- text: 'on',
- value: 'on'
- }, {
- text: 'off',
- value: 'off'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'originPullProtocol',
- enDescriptor: 'originPullProtocol',
- cnDescriptor: '回源协议类型',
- link: '',
- type: 'select',
- list: [{
- text: 'http',
- value: 'http'
- }, {
- text: 'follow',
- value: 'follow'
- }, {
- text: 'https',
- value: 'https'
- }]
-}, {
- key: 'tagKey',
- enDescriptor: 'tagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputMulti'
-}];
-var CDNPROVINCE_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'Domain',
- // Isp Province分别在两个接口,单独保存在state
- isp: '',
- district: '',
- queries: CDNPROVINCEFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-} // const regionSupported = [
-// { text: '华北地区(北京)', value: 'ap-beijing' },
-// { text: '西南地区(成都)', value: 'ap-chengdu' },
-// { text: '西南地区(重庆)', value: 'ap-chongqing' },
-// { text: '华南地区(广州)', value: 'ap-guangzhou' },
-// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },
-// { text: '亚太南部(孟买)', value: 'ap-mumbai' },
-// { text: '华东地区(南京)', value: 'ap-nanjing' },
-// { text: '华东地区(上海)', value: 'ap-shanghai' },
-// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },
-// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },
-// { text: '亚太东南(新加坡)', value: 'ap-singapore' },
-// { text: '亚太东北(东京)', value: 'ap-tokyo' },
-// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },
-// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },
-// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },
-// { text: '北美地区(多伦多)', value: 'na-toronto' },
-// ];
-
-
-/* harmony default export */ __webpack_exports__["default"] = (CDNPROVINCE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ceip_summary/datasource.ts":
-/*!**********************************************************!*\
- !*** ./datasource/tc_monitor/ceip_summary/datasource.ts ***!
- \**********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ceip_summary/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CEIPSUMMARYInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CEIPInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeAddresses',
- responseField: 'AddressSet',
- interceptor: {
- request: function request(params) {
- var Filters = params.Filters;
-
- if (!Filters) {
- params.Filters = [];
- }
-
- params.Filters.push({
- Name: 'address-type',
- Values: ['AnycastEIP']
- });
- return params;
- } // 设置一些请求参数的 默认值
- // response: (data: unknown[]) =>[
- // {
- // AddressId: 'AddressId',
- // AddressIp: '111.22.3.4'
- // },
- // ],
-
- }
- };
- _this.MetricReqConfig = {
- resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"]
- };
- return _this;
- }
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ceip_summary/query.ts":
-/*!*****************************************************!*\
- !*** ./datasource/tc_monitor/ceip_summary/query.ts ***!
- \*****************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ceip_summary/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ceip_summary/query_def.ts":
-/*!*********************************************************!*\
- !*** ./datasource/tc_monitor/ceip_summary/query_def.ts ***!
- \*********************************************************/
-/*! exports provided: default, CEIPFilterFieldsDescriptor, templateQueryIdMap, CEIPSUMMARYInstanceAliasList, CEIPInvalidDemensions, namespace, queryEditorName, modifyDimensons, queryEditorConfig, CEIPSUMMARYGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPFilterFieldsDescriptor", function() { return CEIPFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPSUMMARYInstanceAliasList", function() { return CEIPSUMMARYInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPInvalidDemensions", function() { return CEIPInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CEIPSUMMARYGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/CEIP_SUMMARY'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'ceipSummaryQuery';
-var CEIPInvalidDemensions = {
- vip: 'AddressIp',
- eip: 'AddressIp'
-}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY
-
-var CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];
-var templateQueryIdMap = {
- instance: 'AddressId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var CEIPFilterFields = {
- Limit: 20,
- Offset: 0,
- 'address-id': [],
- 'address-name': [],
- 'address-ip': [],
- 'address-status': {},
- 'is-arrears': {},
- 'address-isp': {},
- 'instance-id': [],
- 'private-ip-address': [],
- 'network-interface-id': []
-};
-var CEIPFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'address-id',
- enDescriptor: 'address-id',
- cnDescriptor: ' EIP 的唯一 ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'address-name',
- enDescriptor: 'address-name',
- cnDescriptor: 'EIP 名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'address-ip',
- enDescriptor: 'address-ip',
- cnDescriptor: 'EIP 的 IP 地址',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'address-status',
- enDescriptor: 'address-status',
- cnDescriptor: 'EIP 的状态',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: 'CREATING',
- value: 'CREATING'
- }, {
- text: 'BINDING',
- value: 'BINDING'
- }, {
- text: 'BIND',
- value: 'BIND'
- }, {
- text: 'UNBINDING',
- value: 'UNBINDING'
- }, {
- text: 'UNBIND',
- value: 'UNBIND'
- }, {
- text: 'OFFLINING',
- value: 'OFFLINING'
- }, {
- text: 'BIND_ENI',
- value: 'BIND_ENI'
- }]
-}, {
- key: 'instance-id',
- enDescriptor: 'instance-id',
- cnDescriptor: 'EIP 绑定的实例 ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'private-ip-address',
- enDescriptor: 'private-ip-address',
- cnDescriptor: 'EIP 绑定的内网 IP ',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'network-interface-id',
- enDescriptor: 'network-interface-id',
- cnDescriptor: ' EIP 绑定的弹性网卡 ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'is-arrears',
- enDescriptor: 'is-arrears',
- cnDescriptor: 'EIP 是否欠费',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '欠费状态',
- value: 'TRUE'
- }, {
- text: '费用状态正常',
- value: 'FALSE'
- }]
-}, {
- key: 'address-isp',
- enDescriptor: 'address-isp',
- cnDescriptor: '运营商类型',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: 'BGP',
- value: 'BGP'
- }, {
- text: 'CMCC',
- value: 'CMCC'
- }, {
- text: 'CUCC',
- value: 'CUCC'
- }, {
- text: 'CTCC',
- value: 'CTCC'
- }]
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702',
- namespace: namespace,
- fieldDescriptor: CEIPFilterFieldsDescriptor
-};
-var CEIP_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'AddressId',
- queries: CEIPFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['eip'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CEIP_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ces/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/ces/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ces/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CESInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CESInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'es',
- action: 'DescribeInstances',
- responseField: 'InstanceList'
- };
- return _this;
- }
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ces/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/ces/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ces/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ces/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/ces/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CESFilterFieldsDescriptor, templateQueryIdMap, CESInstanceAliasList, CESInvalidDemensions, namespace, queryEditorName, queryEditorConfig, CESGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESFilterFieldsDescriptor", function() { return CESFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESInstanceAliasList", function() { return CESInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESInvalidDemensions", function() { return CESInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CESGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/CES'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'cesQuery';
-var CESInvalidDemensions = {
- uInstanceId: 'InstanceId'
-};
-var CESInstanceAliasList = ['InstanceId', 'InstanceName'];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是类型
-
-var CESFilterFields = {
- Limit: 20,
- Offset: 0,
- InstanceIds: [],
- InstanceNames: [],
- OrderByKey: {},
- OrderByType: {},
- IpList: []
-};
-var CESFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceIds',
- enDescriptor: 'InstanceIds',
- cnDescriptor: '集群实例ID列表',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'InstanceNames',
- enDescriptor: 'InstanceNames',
- cnDescriptor: '集群实例名称列表',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'OrderByKey',
- enDescriptor: 'OrderByKey',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: [{
- text: '实例ID',
- value: 1
- }, {
- text: '实例名称',
- value: 2
- }, {
- text: '可用区',
- value: 3
- }, {
- text: '创建时间',
- value: 4
- }]
-}, {
- key: 'OrderByType',
- enDescriptor: 'OrderByType',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: [{
- text: '升序',
- value: 0
- }, {
- text: '降序',
- value: 1
- }]
-}, {
- key: 'IpList',
- enDescriptor: 'IpList',
- cnDescriptor: '私有网络vip列表',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631',
- namespace: namespace,
- fieldDescriptor: CESFilterFieldsDescriptor
-};
-var CES_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: CESFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CES_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cfs/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cfs/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cfs/query_def.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-
-var CFSDatasource =
-/** @class */
-function (_super) {
- __extends(CFSDatasource, _super);
-
- function CFSDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.templateQueryIdMap = {
- instance: 'FileSystemId'
- };
- _this.extrasAlias = ['version'];
- _this.Namespace = 'QCE/CFS';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["CFSInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["CFSInvalidDemensions"];
- _this.InstanceReqConfig = {
- service: 'cfs',
- action: 'DescribeCfsFileSystems',
- responseField: 'FileSystems'
- };
- return _this;
- }
-
- CFSDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_1__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_2__["t"])(value)
- };
- }));
- };
-
- return CFSDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CFSDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cfs/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cfs/query.ts ***!
- \********************************************/
-/*! exports provided: SCFQueryCtrl, scfQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFQueryCtrl", function() { return SCFQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cfs/query_def.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var SCFQueryCtrl =
-/** @class */
-function () {
- SCFQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function SCFQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.CFSQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CFSQueryDescriptor"];
- };
-
- $scope.getVersions = function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var instance, region, fetcher;
- return __generator(this, function (_a) {
- instance = target.instance, region = target.region;
- fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');
- if (!instance || !region) return [2
- /*return*/
- , []];
- return [2
- /*return*/
- , fetcher(region, {
- FunctionName: JSON.parse(instance).FunctionName
- }).then(function (res) {
- // console.log(res, 'res');
- return res;
- })];
- });
- });
- }; // $scope.onChecked = (srcField, dstField) => {
- // if ($scope.target.queries[srcField] === true) {
- // $scope.target.queries[dstField] = false;
- // }
- // $scope.onChange();
- // };
- // $scope.getDropdown = (field) => {
- // switch (field) {
- // case 'zone':
- // return $scope.getZones();
- // default:
- // return [];
- // }
- // };
- // $scope.getZones = () => {
- // if (!$scope.region) {
- // return [];
- // }
- // return $scope.datasource.getZones('cvm', $scope.region);
- // };
-
-
- $scope.init();
- }
-
- return SCFQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function scfQuery() {
- return {
- template: template,
- controller: SCFQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cfsQuery', scfQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cfs/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cfs/query_def.ts ***!
- \************************************************/
-/*! exports provided: CFSQueryDescriptor, default, CFSInstanceAliasList, CFSInvalidDemensions, templateQueryIdMap, regionSupported, CFSGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSQueryDescriptor", function() { return CFSQueryDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSInstanceAliasList", function() { return CFSInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSInvalidDemensions", function() { return CFSInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CFSGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var CFSQueryDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'FileSystemId',
- enDescriptor: 'File System Id',
- cnDescriptor: '文件系统 ID',
- link: '',
- type: 'input'
-}, {
- key: 'VpcId',
- enDescriptor: 'VpcId',
- cnDescriptor: '私有网络(VPC) ID',
- link: '',
- type: 'input'
-}, {
- key: 'SubnetId',
- enDescriptor: 'SubnetId',
- cnDescriptor: '子网 ID',
- link: '',
- type: 'input'
-}];
-var CFS_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'FileSystemId',
- version: '',
- queries: {
- Offset: 0,
- Limit: 20,
- FileSystemId: '',
- VpcId: '',
- SubnetId: ''
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-var CFSInstanceAliasList = ['FileSystemId', 'FsName']; // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key
-
-var CFSInvalidDemensions = {// functionName: 'FunctionName',
- // namespace: 'Namespace'
-};
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (CFS_STATE);
- // monitor监控数据默认支持的维度
-// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ckafka/datasource.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/ckafka/datasource.ts ***!
- \****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ckafka/query_def.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-var CKFKADatasource =
-/** @class */
-function (_super) {
- __extends(CKFKADatasource, _super);
-
- function CKFKADatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/CKAFKA';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_4__["CKAFKAInstanceAliasList"];
- _this.TopicAliasList = _query_def__WEBPACK_IMPORTED_MODULE_4__["CKAFKATopicAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_4__["CKAFKAInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'ckafka',
- action: 'DescribeInstances',
- responseField: 'InstanceList'
- };
- _this.extraMetricDims = ['topicId']; // extrasAlias = ['topicId', 'consumerGroup', 'partition'];
-
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_4__["keyInStorage"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_4__["queryMonitorExtraConfg"];
- _this.consumerGroupCache = {};
- return _this;
- }
-
- CKFKADatasource.prototype.getConsumerGroups = function (region, params) {
- var _a, _b, _c;
-
- return __awaiter(this, void 0, void 0, function () {
- var serviceInfo, InstanceId, _d, groupname, _e, topicid, consumerGoup, topicList, GroupList, TopicList, PartitionList, GroupDetailList, SubscribedInfos, partitions;
-
- var _this = this;
-
- return __generator(this, function (_f) {
- switch (_f.label) {
- case 0:
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GetServiceAPIInfo"])(region, 'ckafka');
- InstanceId = params.InstanceId, _d = params.groupname, groupname = _d === void 0 ? '' : _d, _e = params.topicid, topicid = _e === void 0 ? '' : _e;
- groupname = this.getVariable(groupname); // 将模板转换为真实值
-
- topicid = this.getVariable(topicid); // 将模板转换为真实值
-
- try {
- groupname = JSON.parse(groupname)[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].groupName];
- topicid = JSON.parse(topicid)[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId];
- } catch (e) {}
-
- consumerGoup = this.consumerGroupCache[InstanceId];
- if (!!consumerGoup) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeConsumerGroup'
- });
- }, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(params, 'InstanceId'), ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList'])];
-
- case 1:
- // 从分页数据,获取全量数据
- consumerGoup = _f.sent();
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeTopic'
- });
- }, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.pick(params, 'InstanceId'), ['TopicList'])];
-
- case 2:
- topicList = _f.sent();
- consumerGoup[1] = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["flattenDeep"])(topicList);
- console.log({
- consumerGoup: consumerGoup,
- topicList: topicList
- });
- this.consumerGroupCache[InstanceId] = consumerGoup;
- _f.label = 3;
-
- case 3:
- GroupList = consumerGoup[0], TopicList = consumerGoup[1], PartitionList = consumerGoup[2], GroupDetailList = consumerGoup[3]; // 无重复数组
-
- TopicList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(TopicList, function (item) {
- return item.TopicId;
- });
- GroupList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(GroupList, function (item) {
- return item.GroupName;
- });
- PartitionList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(PartitionList, function (item) {
- return item.PartitionId;
- });
- GroupDetailList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniqBy(GroupDetailList, function (item) {
- return item.ConsumerGroupName;
- });
- SubscribedInfos = ((_a = GroupDetailList.find(function (d) {
- return d.ConsumerGroupName === groupname;
- })) === null || _a === void 0 ? void 0 : _a.SubscribedInfo) || [];
- partitions = ((_c = (_b = SubscribedInfos.find(function (sub) {
- return sub.TopicId === topicid;
- })) === null || _b === void 0 ? void 0 : _b.Partition) === null || _c === void 0 ? void 0 : _c.map(function (p) {
- var _a;
-
- return _a = {}, _a[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition] = p, _a;
- })) || [];
- return [2
- /*return*/
- , {
- GroupList: GroupList,
- TopicList: SubscribedInfos.length > 0 ? SubscribedInfos.map(function (_a) {
- var TopicId = _a.TopicId,
- TopicName = _a.TopicName;
- return {
- TopicId: TopicId,
- TopicName: TopicName
- };
- }) : TopicList,
- PartitionList: partitions.length > 0 ? partitions : PartitionList
- }];
- }
- });
- });
- };
-
- CKFKADatasource.prototype.formatTopicVarDisplay = function (topic, displayTpl, topicAlias) {
- var _this = this;
-
- if (displayTpl) {
- return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) {
- if (!b || !_this.TopicAliasList.includes(b)) {
- return '';
- }
-
- return _this.getAliasValue(topic, b);
- });
- }
-
- return this.getAliasValue(topic, topicAlias);
- }; // 查询指标下的数据
-
-
- CKFKADatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var topicalias, groupname, topicid, result, display, TopicList, GroupList, PartitionList, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- topicalias = query.topicalias, groupname = query.groupname, topicid = query.topicid;
- return [4
- /*yield*/
- , this.getConsumerGroups(region, {
- InstanceId: instance.InstanceId,
- groupname: groupname,
- topicid: topicid
- })];
-
- case 1:
- result = _a.sent();
- display = query.display;
- TopicList = result.TopicList, GroupList = result.GroupList, PartitionList = result.PartitionList;
- topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId;
- rs = {
- GroupList: GroupList.map(function (group) {
- group._InstanceAliasValue = group.GroupName;
- return {
- text: group.GroupName,
- value: group[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].groupName]
- };
- }),
- TopicList: TopicList.map(function (topic) {
- var topicAlias = _this.formatTopicVarDisplay(topic, display, topicalias);
-
- topic._InstanceAliasValue = topicAlias || topic[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId];
- return {
- text: topicAlias || topic[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId],
- value: topic[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].topicId],
- TopicName: topic.TopicName
- };
- }),
- PartitionList: PartitionList.map(function (par) {
- par._InstanceAliasValue = par[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition];
- return {
- text: par[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition],
- value: par[_query_def__WEBPACK_IMPORTED_MODULE_4__["templateQueryIdMap"].partition]
- };
- })
- };
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList)];
-
- case 2:
- _a.sent();
-
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList)];
-
- case 3:
- _a.sent();
-
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList)];
-
- case 4:
- _a.sent(); // console.log({ res1, res2, res3 });
- // console.log({rs});
- // 根据action返回指定的维度数据列表
-
-
- switch (action) {
- case 'DescribeTopicList':
- return [2
- /*return*/
- , rs.TopicList];
-
- case 'DescribeGroup':
- return [2
- /*return*/
- , rs.GroupList];
-
- case 'DescribePartion':
- return [2
- /*return*/
- , rs.PartitionList];
-
- default:
- return [2
- /*return*/
- , []];
- }
-
- return [2
- /*return*/
- ];
- }
- });
- });
- };
-
- return CKFKADatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CKFKADatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ckafka/query.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/ckafka/query.ts ***!
- \***********************************************/
-/*! exports provided: CKAFKAQueryCtrl, scfQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAQueryCtrl", function() { return CKAFKAQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ckafka/query_def.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'ConsumerGroup',
- field: 'consumerGroup'
-}, {
- label: 'TopicId',
- field: 'topicId'
-}, {
- label: 'Partition',
- field: 'partition'
-}];
-
-var CKAFKAQueryCtrl =
-/** @class */
-function () {
- CKAFKAQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function CKAFKAQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.CKAFKAQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CKAFKAQueryDescriptor"];
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- };
-
- $scope.onInstanceChange = function (n, o) {
- if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["isTargetEqual"])(n, o, 'LoadBalancerId')) return;
- $scope.target.consumerGroup = '';
- $scope.target.topicId = '';
- $scope.target.topicName = '';
- $scope.target.partition = '';
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {});
- });
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance);
- if (Array.isArray(instance)) instance = instance[0];
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance).InstanceId;
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraDropdown = function (target, field) {
- return __awaiter(_this, void 0, void 0, function () {
- var InstanceId, fetcher, region, res, TopicList, GroupList, PartitionList, data;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- InstanceId = $scope.getInstanceId();
- fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups');
- region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region);
- return [4
- /*yield*/
- , fetcher(region, {
- InstanceId: InstanceId,
- groupname: target.consumerGroup,
- topicid: target.topicId
- })];
-
- case 1:
- res = _a.sent();
- TopicList = res.TopicList, GroupList = res.GroupList, PartitionList = res.PartitionList;
- data = {
- GroupList: GroupList.map(function (group) {
- group._InstanceAliasValue = group.GroupName;
- return {
- text: group.GroupName,
- value: JSON.stringify(group)
- };
- }),
- TopicList: TopicList.map(function (topic) {
- topic._InstanceAliasValue = topic[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].topicId];
- return {
- text: topic[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].topicId],
- value: JSON.stringify(topic) // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去
-
- };
- }),
- PartitionList: PartitionList.map(function (par) {
- par._InstanceAliasValue = par[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].partition];
- return {
- text: String(par[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].partition]),
- value: JSON.stringify(par)
- };
- })
- };
-
- switch (field) {
- case 'consumerGroup':
- return [2
- /*return*/
- , data.GroupList];
-
- case 'topicId':
- return [2
- /*return*/
- , data.TopicList];
-
- case 'partition':
- return [2
- /*return*/
- , data.PartitionList];
- }
-
- return [2
- /*return*/
- ];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return CKAFKAQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function scfQuery() {
- return {
- template: template,
- controller: CKAFKAQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '=',
- instance: '='
- },
- link: function link(scope, element, attrs) {
- scope.$watch('target.instance', function (newValue, oldValue) {
- var _a;
-
- (_a = scope.onInstanceChange) === null || _a === void 0 ? void 0 : _a.call(scope, newValue, oldValue);
- });
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('ckafkaQuery', scfQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ckafka/query_def.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/ckafka/query_def.ts ***!
- \***************************************************/
-/*! exports provided: CKAFKAQueryDescriptor, default, CKAFKAInstanceAliasList, CKAFKATopicAliasList, CKAFKAInvalidDemensions, templateQueryIdMap, keyInStorage, queryMonitorExtraConfg, CKAFKAGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAQueryDescriptor", function() { return CKAFKAQueryDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAInstanceAliasList", function() { return CKAFKAInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKATopicAliasList", function() { return CKAFKATopicAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAInvalidDemensions", function() { return CKAFKAInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CKAFKAGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var CKAFKAQueryDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceId',
- enDescriptor: 'InstanceId',
- cnDescriptor: '按照实例ID过滤',
- link: '',
- type: 'input'
-}, {
- key: 'SearchWord',
- enDescriptor: 'SearchWord',
- cnDescriptor: '按照实例名称过滤,支持模糊查询',
- link: '',
- type: 'input'
-}, {
- key: 'TagKey',
- enDescriptor: 'TagKey',
- cnDescriptor: '匹配标签key值',
- link: '',
- type: 'input'
-}, {
- key: 'Status',
- enDescriptor: 'Status',
- cnDescriptor: '实例的状态,不填默认返回全部',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '创建中',
- value: 0
- }, {
- text: '运行中',
- value: 1
- }, {
- text: '删除中',
- value: 2
- }]
-}];
-var CKAFKA_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- topicId: '',
- topicName: '',
- consumerGroup: '',
- partition: '',
- queries: {
- Offset: 0,
- Limit: 10,
- Status: [],
- InstanceId: '',
- SearchWord: '',
- TagKey: ''
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-var CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName'];
-var CKAFKATopicAliasList = ['TopicId', 'TopicName']; // 保存在模板变量value中的key
-
-var templateQueryIdMap = {
- instance: 'InstanceId',
- topicId: 'TopicId',
- groupName: 'GroupName',
- partition: 'PartitionId'
-}; // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key
-
-var CKAFKAInvalidDemensions = new Proxy({
- topicId: 'TopicId',
- topicName: 'TopicName',
- consumerGroup: 'GroupName',
- partition: 'PartitionId'
-}, {
- get: function get(obj, prop) {
- if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId';
- return obj[prop];
- }
-}); // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- TopicList: 'TopicList',
- GroupList: 'GroupList',
- PartitionList: 'PartitionList'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- TopicId: {
- dim_KeyInStorage: keyInStorage.TopicList,
- dim_KeyInTarget: 'topicId',
- dim_KeyInMap: templateQueryIdMap.topicId
- },
- // topicName和topicId是同一个storage中的source,所以根据topicId帅选
- TopicName: {
- dim_KeyInStorage: keyInStorage.TopicList,
- dim_KeyInTarget: 'topicId',
- dim_KeyInMap: templateQueryIdMap.topicId
- },
- GroupName: {
- dim_KeyInStorage: keyInStorage.GroupList,
- dim_KeyInTarget: 'consumerGroup',
- dim_KeyInMap: templateQueryIdMap.groupName
- },
- PartitionId: {
- dim_KeyInStorage: keyInStorage.PartitionList,
- dim_KeyInTarget: 'partition',
- dim_KeyInMap: templateQueryIdMap.partition
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (CKAFKA_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/clb/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/clb/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/clb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this; // Namespace = namespace;
-
-
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["InstanceAliasList"];
- _this.ListenerAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEListenerAliasList"];
- _this.ServerAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEServerAliasList"];
- _this.CandiateDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CANDIATEDIMENSIONS"]; // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS;
-
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
- // InstanceReqConfig = {
- // service: 'clb',
- // action: 'DescribeLoadBalancers',
- // responseField: 'LoadBalancerSet',
- // };
-
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- return _this;
- } // getFilterDropdown({ field }) {
- // return super.getRegions();
- // }
-
-
- DCDatasource.prototype.getInvalidDimensions = function (selfIns, tagret) {
- if (selfIns.service === 'lbPrivate' || selfIns.service === 'lbPublic' && tagret.servers) return __assign(__assign({}, _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEVALIDDIMENSIONS"]), {
- vpcId: 'NumericalVpcId'
- });
- return _query_def__WEBPACK_IMPORTED_MODULE_0__["LOADBALANCEVALIDDIMENSIONS"];
- };
-
- DCDatasource.prototype.getInstanceReqConfig = function (selfIns) {
- var res = {
- service: 'clb',
- action: 'DescribeLoadBalancers',
- responseField: 'LoadBalancerSet'
- };
-
- if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') {
- res.interceptor = {
- request: function request(param) {
- return __assign(__assign({}, param), {
- LoadBalancerType: 'INTERNAL'
- });
- }
- };
- }
-
- if (selfIns.service === 'lbPublic') {
- res.interceptor = {
- request: function request(param) {
- return __assign(__assign({}, param), {
- LoadBalancerType: 'OPEN'
- });
- }
- };
- }
-
- return res;
- };
-
- DCDatasource.prototype.getListenerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, instanceId, serviceInfo, res, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region, instanceId = params.instanceId;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'clb');
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeListeners'
- });
- }, {
- LoadBalancerId: instanceId
- }, 'Listeners')];
-
- case 1:
- res = _a.sent();
- rs = res[0];
- return [2
- /*return*/
- , rs];
- }
- });
- });
- };
-
- DCDatasource.prototype.formatVariableDisplay = function (data, displayTpl, alias, aliasList) {
- var _this = this;
-
- if (displayTpl) {
- return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) {
- if (!b || !aliasList.includes(b)) {
- return '';
- }
-
- return _this.getAliasValue(data, b);
- });
- }
-
- return this.getAliasValue(data, alias);
- };
-
- DCDatasource.prototype.getServerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, instanceId, listenerId, serviceInfo, res, Listeners, serversList;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region, instanceId = params.instanceId, listenerId = params.listenerId;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'clb');
- return [4
- /*yield*/
- , this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- LoadBalancerId: instanceId,
- ListenerIds: [listenerId]
- }
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeTargets'
- })];
-
- case 1:
- res = _a.sent();
- Listeners = res.Listeners;
- serversList = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.reduce(Listeners, function (prev, item) {
- var Rules = item.Rules,
- Targets = item.Targets;
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_2___default.a.isEmpty(Rules)) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(prev, lodash__WEBPACK_IMPORTED_MODULE_2___default.a.flatten(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(Rules, function (elem) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.isEmpty(elem.Targets) ? [] : elem.Targets;
- })));
- }
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_2___default.a.isEmpty(Targets)) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(prev, Targets);
- }
-
- return prev;
- }, []);
- return [2
- /*return*/
- , serversList];
- }
- });
- });
- };
-
- DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var display, rs, listeneralias_1, result, listenerid, serverprivateip, serveralias, serverPrivateIp_1, serversList, serverAlias_1, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- display = query.display;
- if (!(action === 'DescribeListeners')) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getListenerList({
- region: region,
- instanceId: instance[this.templateQueryIdMap.instance]
- })];
-
- case 1:
- rs = _a.sent();
- listeneralias_1 = query.listeneralias;
- listeneralias_1 = this.ListenerAliasList.includes(listeneralias_1) ? listeneralias_1 : this.templateQueryIdMap.listener;
- result = rs.flatMap(function (o) {
- var listenAlias = _this.formatVariableDisplay(o, display, listeneralias_1, _this.ListenerAliasList);
-
- var lisId = o[_this.templateQueryIdMap.listener];
- o._InstanceAliasValue = listenAlias || lisId; // if (!o[listeneralias]) return [];
-
- return {
- text: listenAlias || lisId,
- value: lisId
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.listener, rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- if (!(action === 'DescribeServer' || action === 'DescribeServerPort')) return [3
- /*break*/
- , 6];
- listenerid = query.listenerid, serverprivateip = query.serverprivateip, serveralias = query.serveralias;
- serverPrivateIp_1 = this.getVariable(serverprivateip);
- return [4
- /*yield*/
- , this.getServerList({
- region: region,
- instanceId: instance[this.templateQueryIdMap.instance],
- listenerId: this.getVariable(listenerid)
- })];
-
- case 4:
- serversList = _a.sent();
- serverAlias_1 = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers;
- result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.chain(serversList).filter(function (item) {
- if (action === 'DescribeServer') {
- return true;
- }
-
- return serverPrivateIp_1 === lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'PrivateIpAddresses.0');
- }).map(function (item) {
- var alias = _this.formatVariableDisplay(item, display, serverAlias_1, _this.ServerAliasList);
-
- var id = item[_this.templateQueryIdMap.servers][0];
- item._InstanceAliasValue = alias || id;
- return action === 'DescribeServer' ? {
- text: alias || id,
- value: id
- } : {
- text: "".concat(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Port')),
- value: lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Port')
- };
- }).value();
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.servers, serversList)];
-
- case 5:
- _a.sent();
-
- return [2
- /*return*/
- , action === 'DescribeServer' ? result : lodash__WEBPACK_IMPORTED_MODULE_2___default.a.uniqBy(result, 'text')];
-
- case 6:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/clb/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/clb/query.ts ***!
- \********************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/clb/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.LOADBALANCEFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["LOADBALANCEFieldsDescriptor"];
- $scope.serversList = [];
- };
-
- $scope.onFieldChange = function (field) {
- $scope.onRefresh();
- };
-
- $scope.onInstanceChange = function (n, o) {
- if (Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["isTargetEqual"])(n, o, 'InstanceId')) return;
- $scope.target.listener = '';
- $scope.target.servers = '';
- $scope.target.serverPort = '';
- };
-
- $scope.getVariableId = function (data, type) {
- var variableData = data;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]);
- variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);
-
- if (!variableData) {
- return '';
- }
-
- try {
- variableData = JSON.parse(variableData)[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"][type]];
- } catch (error) {// console.log();
- }
-
- return variableData;
- };
-
- $scope.getExtraDropdown = function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var instance, service, instanceId, region, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- instance = $scope.target.instance;
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]);
- instanceId = $scope.getVariableId(instance, 'instance');
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getListenerList')({
- region: region,
- instanceId: instanceId
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"].listener];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"].listener],
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.getServersDropdown = function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var _a, instance, listener, service, instanceId, listenerId, region, serversList, res;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = $scope.target, instance = _a.instance, listener = _a.listener;
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]);
- instanceId = $scope.getVariableId(instance, 'instance');
- listenerId = $scope.getVariableId(listener, 'listener');
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getServerList')({
- region: region,
- instanceId: instanceId,
- listenerId: listenerId
- })];
-
- case 1:
- serversList = _b.sent();
- $scope.serversList = serversList;
- res = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["chain"])(serversList).map(function (item) {
- item._InstanceAliasValue = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'PrivateIpAddresses.0');
- return {
- text: Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'PrivateIpAddresses.0'),
- value: JSON.stringify(item)
- };
- }).uniqBy('text').value();
- return [2
- /*return*/
- , res];
- }
- });
- });
- };
-
- $scope.getServerPortDropdown = function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var servers, serverPortList, serversSource_1;
- return __generator(this, function (_a) {
- servers = $scope.target.servers;
- serverPortList = [];
-
- try {
- serversSource_1 = JSON.parse(servers);
- serverPortList = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["chain"])($scope.serversList).filter(function (item) {
- return Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(serversSource_1, 'PrivateIpAddresses.0') === Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'PrivateIpAddresses.0');
- }).map(function (item) {
- item._InstanceAliasValue = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'Port');
- return {
- text: "".concat(Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(item, 'Port')),
- value: JSON.stringify(item)
- };
- }).value();
- } catch (error) {}
-
- return [2
- /*return*/
- , serverPortList];
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n\n\n\n\n\n");
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- namespace: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- },
- link: function link(scope, element, attrs) {
- scope.$watch('target.instance', function (newValue, oldValue) {
- var _a;
-
- (_a = scope.onInstanceChange) === null || _a === void 0 ? void 0 : _a.call(scope, newValue, oldValue);
- });
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('clbQuery', sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/clb/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/clb/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, LOADBALANCEFieldsDescriptor, InstanceAliasList, LOADBALANCEListenerAliasList, LOADBALANCEServerAliasList, LOADBALANCEVALIDDIMENSIONS, templateQueryIdMap, CANDIATEDIMENSIONS, queryMonitorExtraConfg, keyInStorage, queryEditorConfig, namespace, queryEditorName, GetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEFieldsDescriptor", function() { return LOADBALANCEFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEListenerAliasList", function() { return LOADBALANCEListenerAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEServerAliasList", function() { return LOADBALANCEServerAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOADBALANCEVALIDDIMENSIONS", function() { return LOADBALANCEVALIDDIMENSIONS; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CANDIATEDIMENSIONS", function() { return CANDIATEDIMENSIONS; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/LOADBALANCE'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'loadBalanceQuery';
-var ForwardTypes = [{
- text: '通用的负载均衡',
- value: 1
-}, {
- text: '传统的负载均衡',
- value: 0
-}];
-var OrderBy = [{
- text: 'LoadBalancerName',
- value: 'LoadBalancerName'
-}, {
- text: 'CreateTime',
- value: 'CreateTime'
-}, {
- text: 'Domain',
- value: 'Domain'
-}, {
- text: 'LoadBalancerType',
- value: 'LoadBalancerType'
-}];
-var OrderType = [{
- text: '升序',
- value: 0
-}, {
- text: '降序',
- value: 1
-}];
-var WithRs = [{
- text: '没有绑定后端服务',
- value: 0
-}, {
- text: '绑定后端服务',
- value: 1
-}, {
- text: '查询全部',
- value: -1
-}];
-var LOADBALANCEFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',
- link: '',
- type: 'inputNumber',
- min: 1
-}, {
- key: 'LoadBalancerIds',
- enDescriptor: 'LoadBalancer ID',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerName',
- enDescriptor: 'LoadBalancer Name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'input'
-}, {
- key: 'Forward',
- enDescriptor: 'Forward',
- cnDescriptor: '负载均衡实例类型',
- link: '',
- type: 'select',
- list: ForwardTypes
-}, {
- key: 'Domain',
- enDescriptor: 'Domain',
- cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',
- link: '',
- type: 'input'
-}, {
- key: 'LoadBalancerVips',
- enDescriptor: 'LoadBalancer Vips',
- cnDescriptor: '负载均衡实例的 VIP 地址',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'BackendPrivateIps',
- enDescriptor: 'BackendPrivate Ips',
- cnDescriptor: '负载均衡绑定的后端服务的内网 IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'BackendPublicIps',
- enDescriptor: 'BackendPublic Ips',
- cnDescriptor: '负载均衡绑定的后端服务的外网 IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ProjectId',
- enDescriptor: 'Project ID',
- cnDescriptor: '负载均衡实例所属的项目 ID',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'VpcId',
- enDescriptor: 'Vpc ID',
- cnDescriptor: '负载均衡实例所属私有网络',
- link: '',
- type: 'input'
-}, {
- key: 'SecurityGroup',
- enDescriptor: 'Security Group',
- cnDescriptor: '安全组ID',
- link: '',
- type: 'input'
-}, {
- key: 'MasterZone',
- enDescriptor: 'Master Zone',
- cnDescriptor: '主可用区ID',
- link: '',
- type: 'input'
-}, {
- key: 'WithRs',
- enDescriptor: 'WithRs',
- cnDescriptor: '负载均衡是否绑定后端服务',
- link: '',
- type: 'select',
- list: WithRs
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderBy
-}, {
- key: 'OrderType',
- enDescriptor: 'OrderByType',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: OrderType
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',
- namespace: namespace,
- fieldDescriptor: LOADBALANCEFieldsDescriptor
-};
-var LBFields = {
- LoadBalancerIds: [],
- Forward: undefined,
- LoadBalancerName: '',
- Domain: '',
- LoadBalancerVips: [],
- BackendPublicIps: [],
- BackendPrivateIps: [],
- Limit: 20,
- Offset: 0,
- ProjectId: undefined,
- WithRs: {},
- VpcId: '',
- SecurityGroup: '',
- MasterZone: '',
- OrderBy: {},
- OrderType: {}
-};
-var LOADBALANCE_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'LoadBalancerId',
- Port: '',
- Protocol: '',
- listener: '',
- servers: '',
- serverPort: '',
- // listenerAlias: 'ListenerId',
- queries: LBFields
-}; // function GetInstanceQueryParams(queries: any = {}) {
-// const params: any = {};
-// if (!_.isEmpty(queries)) {
-// params.Limit = _.get(queries, 'Limit', 20) || 20;
-// params.Offset = _.get(queries, 'Offset', 0) || 0;
-// queries = _.omit(queries, ['Offset', 'Limit']);
-// _.forEach(queries, (item: any, key) => {
-// if (_.isArray(item)) {
-// item = _.compact(item);
-// if (item.length > 0) {
-// params[key] = _.uniq(item);
-// }
-// } else if (_.isObject(item)) {
-// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {
-// params[key] = _.get(item, 'value');
-// }
-// } else if (_.isNumber(item) || !_.isEmpty(item)) {
-// params[key] = item;
-// }
-// });
-// }
-// return params;
-// }
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-var InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips'];
-var LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port'];
-var LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId'];
-var LOADBALANCEVALIDDIMENSIONS = {
- vip: 'LoadBalancerVips',
- // vpcId: 'NumericalVpcId',
- loadBalancerPort: 'Port',
- protocol: 'Protocol',
- lanIp: 'PrivateIpAddresses',
- port: 'ServerPort'
-}; // 对于ipv6类型,vip应该取AddressIPv6。
-
-var CANDIATEDIMENSIONS = {
- LoadBalancerVips: 'AddressIPv6'
-}; // dimensionObject[item] = { Name: item, Value: '' };
-// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = {
-// vip: { Name: 'vip', Value: '' },
-// };
-// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = {
-// vip: { Name: 'vip', Value: '' },
-// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' },
-// protocol: { Name: 'protocol', Value: '' },
-// };
-
-var templateQueryIdMap = {
- instance: 'LoadBalancerId',
- listener: 'ListenerId',
- servers: 'PrivateIpAddresses',
- port: 'Port'
-}; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- listener: 'ListenerList',
- servers: 'ServersList'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- Port: {
- dim_KeyInStorage: keyInStorage.listener,
- dim_KeyInTarget: 'listener',
- dim_KeyInMap: templateQueryIdMap.listener
- },
- Protocol: {
- dim_KeyInStorage: keyInStorage.listener,
- dim_KeyInTarget: 'listener',
- dim_KeyInMap: templateQueryIdMap.listener
- },
- PrivateIpAddresses: {
- dim_KeyInStorage: keyInStorage.servers,
- dim_KeyInTarget: 'servers',
- dim_KeyInMap: templateQueryIdMap.servers
- },
- ServerPort: {
- dim_KeyInStorage: keyInStorage.servers,
- dim_KeyInTarget: 'serverPort',
- dim_KeyInIns: 'Port',
- dim_KeyInMap: templateQueryIdMap.port
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (LOADBALANCE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cls/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cls/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cls/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CLSInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CLSInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'cls',
- action: 'DescribeTopics',
- responseField: 'Topics'
- };
- return _this;
- } // getFilterDropdown({ field }) {
- // return super.getRegions();
- // }
-
-
- DCDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(value)
- };
- }));
- }; // async getInstances(region, params = {}) {
- // const superRes = await super.getInstances(region, params);
- // console.log({ superRes });
- // }
-
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- }))];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cls/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cls/query.ts ***!
- \********************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cls/query_def.ts");
-
-
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.GSEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CLSFilterFieldsDescriptor"];
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cls/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cls/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CLSFilterFieldsDescriptor, templateQueryIdMap, CLSInstanceAliasList, CLSInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, CLSGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSFilterFieldsDescriptor", function() { return CLSFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSInstanceAliasList", function() { return CLSInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSInvalidDemensions", function() { return CLSInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLSGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/CLS';
-var queryEditorName = 'clsQuery';
-var CLSInvalidDemensions = {// instanceid: 'TopicId',
-}; // 需和文件名对应
-
-var CLSInstanceAliasList = ['TopicId', 'TopicName'];
-var templateQueryIdMap = {
- instance: 'TopicId'
-}; // 需要缓存到storage的内容的key列表
-// const keyInStorage = {
-// fleet: 'fleet', // 实例队列
-// queue: 'queueName', // 会话队列
-// };
-
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-// const queryMonitorExtraConfg = {
-// FleetId: {
-// dim_KeyInStorage: keyInStorage.fleet,
-// dim_KeyInTarget: 'FleetId',
-// dim_KeyInMap: templateQueryIdMap.FleetId,
-// },
-// Name: {
-// dim_KeyInStorage: keyInStorage.queue,
-// dim_KeyInTarget: 'Name',
-// dim_KeyInMap: templateQueryIdMap.Name,
-// },
-// };
-// select类型需要注意是{},multi后缀是[],dropdown是''
-
-var CLSFilterFields = {
- Limit: 20,
- Offset: 0,
- topicName: [],
- topicId: [],
- logsetName: [],
- logsetId: [],
- tagKey: [],
- 'tag:tagKey': [],
- storageType: {}
-};
-var CLSFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'topicName',
- enDescriptor: 'topicName',
- cnDescriptor: '日志主题名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'topicId',
- enDescriptor: 'topicId',
- cnDescriptor: '日志主题ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'logsetName',
- enDescriptor: 'logsetName',
- cnDescriptor: '日志集名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'logsetId',
- enDescriptor: 'logsetId',
- cnDescriptor: '日志集ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'tagKey',
- enDescriptor: 'tagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'tag:tagKey',
- enDescriptor: 'tag - tagKey',
- cnDescriptor: '标签键值对',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'storageType',
- enDescriptor: 'storageType',
- cnDescriptor: '日志主题的存储类型',
- link: '',
- type: 'select',
- list: [{
- text: '实时存储',
- value: 'hot'
- }, {
- text: '离线存储',
- value: 'cold'
- }]
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454',
- namespace: namespace,
- fieldDescriptor: CLSFilterFieldsDescriptor
-};
-var CLS_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'TopicId',
- uin: '',
- queries: CLSFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-} // regions for dropdown
-
-
-var regionSupported = [{
- value: 'ap-bangkok'
-}, {
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-jakarta'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'eu-moscow'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}];
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v);
- item.Dimensions = ['uin', 'TopicId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CLS_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cmq/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cmq/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq/query_def.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-
-
-
-
-var CmqDatasource =
-/** @class */
-function (_super) {
- __extends(CmqDatasource, _super);
-
- function CmqDatasource() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
-
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["InvalidDemensions"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["InstanceAliasList"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'cmq',
- action: 'DescribeQueueDetail',
- responseField: 'QueueSet'
- };
- return _this;
- }
-
- CmqDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawMetric;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawMetric = _a.sent();
- return [2
- /*return*/
- , rawMetric.map(function (metric) {
- var dims = metric.Dimensions[0].Dimensions;
- dims = Array.from(new Set(__spreadArray(__spreadArray([], dims, true), ['queueId', 'queueName'], false)));
- metric.Dimensions[0].Dimensions = dims;
- return metric;
- })];
- }
- });
- });
- };
-
- return CmqDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CmqDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cmq/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cmq/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])('cmqQuery', {
- fieldDescriptor: _query_def__WEBPACK_IMPORTED_MODULE_1__["InstanceQueryDescriptor"],
- instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624',
- namespace: 'QCE/CMQ'
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cmq/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cmq/query_def.ts ***!
- \************************************************/
-/*! exports provided: InstanceQueryDescriptor, InvalidDemensions, templateQueryIdMap, InstanceAliasList, GetInstanceQueryParams, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceQueryDescriptor", function() { return InstanceQueryDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidDemensions", function() { return InvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var InstanceQueryDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 50
-}, {
- key: 'QueueName',
- enDescriptor: 'QueueName',
- cnDescriptor: '精确匹配QueueName',
- link: '',
- type: 'input'
-}, {
- key: 'TagKey',
- enDescriptor: 'TagKey',
- cnDescriptor: '标签搜索',
- link: '',
- type: 'input'
-}];
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-} // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key
-
-
-var InvalidDemensions = {
- queueId: 'QueueId',
- queueName: 'QueueName'
-};
-var templateQueryIdMap = {
- instance: 'QueueName'
-}; // 与名称挂钩的变量
-
-var InstanceAliasList = ['QueueName', 'QueueId'];
- // 界面状态模型,default
-
-/* harmony default export */ __webpack_exports__["default"] = ({
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'QueueName',
- queries: {
- Offset: 0,
- Limit: 20,
- QueueName: '',
- TagKey: ''
- }
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cmq_topic/datasource.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/cmq_topic/datasource.ts ***!
- \*******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq_topic/query_def.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var CmqTopicDatasource =
-/** @class */
-function (_super) {
- __extends(CmqTopicDatasource, _super);
-
- function CmqTopicDatasource() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
-
- _this.Namespace = 'QCE/CMQTOPIC';
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_3__["InvalidDemensions"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_3__["InstanceAliasList"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'cmq',
- action: 'DescribeTopicDetail',
- responseField: 'TopicSet'
- };
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_3__["keyInStorage"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_3__["queryMonitorExtraConfg"];
- _this.extraMetricDims = ['subscriptionId']; // 多选
-
- return _this;
- }
-
- CmqTopicDatasource.prototype.fetchAllSubscription = function (region, params) {
- return __awaiter(this, void 0, void 0, function () {
- var serviceInfo, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GetServiceAPIInfo"])(region, 'cmq');
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeSubscriptionDetail'
- });
- }, params, 'SubscriptionSet')];
-
- case 1:
- rs = _a.sent();
- return [2
- /*return*/
- , rs[0]];
- }
- });
- });
- };
-
- CmqTopicDatasource.prototype.fetchMetricData = function (action, region, instance) {
- return __awaiter(this, void 0, void 0, function () {
- var result, _a, rs;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = action;
-
- switch (_a) {
- case 'DescribeSubscriptionDetail':
- return [3
- /*break*/
- , 1];
- }
-
- return [3
- /*break*/
- , 4];
-
- case 1:
- return [4
- /*yield*/
- , this.fetchAllSubscription(region, {
- TopicName: instance.TopicName
- })];
-
- case 2:
- result = _b.sent();
- rs = result.map(function (item) {
- item._InstanceAliasValue = item.SubscriptionId;
- return {
- text: item.SubscriptionId,
- value: item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].subscription]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage.subscriptionId, result)];
-
- case 3:
- _b.sent();
-
- return [2
- /*return*/
- , rs];
-
- case 4:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- CmqTopicDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawMetric;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawMetric = _a.sent();
- return [2
- /*return*/
- , rawMetric.map(function (metric) {
- var dims = metric.Dimensions[0].Dimensions;
- dims.push('topicId');
-
- if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) {
- dims.push('subscriptionId');
- }
-
- dims = Array.from(new Set(dims));
- metric.Dimensions[0].Dimensions = dims;
- return metric;
- })];
- }
- });
- });
- };
-
- return CmqTopicDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CmqTopicDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cmq_topic/query.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/cmq_topic/query.ts ***!
- \**************************************************/
-/*! exports provided: CmqTopicQueryCtrl, scfQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CmqTopicQueryCtrl", function() { return CmqTopicQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cmq_topic/query_def.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-var ExtraFields = [{
- label: 'Subscription(订阅)',
- field: 'subscriptionId'
-}];
-
-var CmqTopicQueryCtrl =
-/** @class */
-function () {
- CmqTopicQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function CmqTopicQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.InstanceQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["InstanceQueryDescriptor"];
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- }; // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }
-
-
- $scope.cacheMap = {};
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {});
- });
- };
-
- $scope.getTopicName = function () {
- var instance = $scope.target.instance;
- instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance).TopicName;
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.onExtraFieldChange = function (field) {
- $scope.onRefresh();
- };
-
- $scope.getExtraDropdown = function (target, field) {
- return __awaiter(_this, void 0, void 0, function () {
- var TopicName, data, region, fetcher, datas;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(field === 'subscriptionId')) return [3
- /*break*/
- , 3];
- TopicName = $scope.getTopicName();
- data = $scope.cacheMap[TopicName];
- if (!!data) return [3
- /*break*/
- , 2];
- region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region);
- fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription');
- return [4
- /*yield*/
- , fetcher(region, {
- TopicName: TopicName
- })];
-
- case 1:
- datas = _a.sent();
- data = datas.map(function (item) {
- item._InstanceAliasValue = item.SubscriptionId;
- return {
- text: item.SubscriptionId,
- value: JSON.stringify(item)
- };
- });
- _a.label = 2;
-
- case 2:
- // 缓存
- $scope.cacheMap[TopicName] = data;
- return [2
- /*return*/
- , data];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return CmqTopicQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function scfQuery() {
- return {
- template: template,
- controller: CmqTopicQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cmqTopicQuery', scfQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cmq_topic/query_def.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/cmq_topic/query_def.ts ***!
- \******************************************************/
-/*! exports provided: InstanceQueryDescriptor, InvalidDemensions, templateQueryIdMap, InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceQueryDescriptor", function() { return InstanceQueryDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidDemensions", function() { return InvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var InstanceQueryDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 50
-}, {
- key: 'TopicName',
- enDescriptor: 'TopicName',
- cnDescriptor: '精确匹配TopicName',
- link: '',
- type: 'input'
-}, {
- key: 'TagKey',
- enDescriptor: 'TagKey',
- cnDescriptor: '标签搜索',
- link: '',
- type: 'input'
-}];
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-} // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key
-
-
-var InvalidDemensions = {
- topicId: 'TopicId'
-}; // 因为cmq那边,以TopciName为主键
-
-var templateQueryIdMap = {
- instance: 'TopicName',
- subscription: 'SubscriptionId'
-}; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- subscriptionId: 'subscriptionId'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- subscriptionId: {
- dim_KeyInStorage: keyInStorage.subscriptionId,
- dim_KeyInTarget: 'subscriptionId',
- dim_KeyInMap: templateQueryIdMap.subscription
- }
-}; // 与名称挂钩的变量
-
-var InstanceAliasList = ['TopicName', 'TopicId'];
- // 界面状态模型,default
-
-/* harmony default export */ __webpack_exports__["default"] = ({
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'TopicName',
- subscriptionId: '',
- queries: {
- Offset: 0,
- Limit: 20,
- TopicName: '',
- TagKey: ''
- }
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cos/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cos/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-var CosDatasource =
-/** @class */
-function (_super) {
- __extends(CosDatasource, _super);
-
- function CosDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.InvalidDimensions = {};
- _this.InstanceAliasList = ['BucketName'];
- _this.templateQueryIdMap = {
- instance: 'BucketName'
- };
- _this.InstanceReqConfig = {}; // 不必要的配置
-
- _this.cosURL = "/api/datasources/".concat(_this.instanceSettings.id, "/resources/tc_cos_list");
- return _this;
- }
-
- CosDatasource.prototype.getInstances = function (region) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , this.backendSrv.datasourceRequest({
- url: this.cosURL,
- method: 'GET',
- params: {
- region: region
- },
- headers: {
- 'Content-Type': 'application/json'
- }
- }).then(function (res) {
- var data = res.data;
- data = data || {};
- var Buckets = data.Buckets;
- Buckets = Buckets || []; // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291
-
- return Buckets.map(function (item) {
- return __assign(__assign({}, item), {
- BucketName: item.Name,
- bucket: item.Name,
- appid: item.Name.split('-').slice(-1)[0]
- });
- });
- })];
- });
- });
- };
-
- CosDatasource.prototype.getVariableInstances = function (region) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , this.getInstances(region)];
- });
- });
- };
-
- return CosDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CosDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cos/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cos/query_def.ts ***!
- \************************************************/
-/*! exports provided: InstanceAliasList, GetInstanceQueryParams, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-} // 与名称挂钩的变量
-
-
-var InstanceAliasList = ['BucketName'];
- // 界面状态模型,default
-
-/* harmony default export */ __webpack_exports__["default"] = ({
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'BucketName',
- queries: {}
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cpm/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cpm/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cpm/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CPMInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CPMInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'bm',
- action: 'DescribeDevices',
- responseField: 'DeviceInfoSet'
- };
- _this.RegionMap = {};
- return _this;
- } // 重写getRegion
-
-
- DCDatasource.prototype.getRegions = function () {
- var _this = this;
-
- return this.doRequest({
- url: this.url + '/bm'
- }, 'bm', {
- action: 'DescribeRegions',
- region: 'ap-guangzhou'
- }).then(function (response) {
- // 缓存,后面获取可用区zone
- _this.RegionMap = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.keyBy(response.RegionInfoSet, 'Region');
- return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.RegionInfoSet || [], function (item) {
- return {
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(item.Region),
- value: item.Region
- };
- });
- });
- };
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- })];
- }
- });
- });
- };
-
- DCDatasource.prototype.getFilterDropdown = function (_a) {
- var field = _a.field,
- region = _a.region;
-
- if (field === 'DeviceClassCode') {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'bm');
- return this.doRequest({
- url: this.url + serviceInfo.path
- }, 'bm', {
- region: region,
- action: 'DescribeDeviceClass'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.DeviceClassSet || [], function (item) {
- return {
- text: item.DeviceClassCode,
- value: item.DeviceClassCode
- };
- });
- });
- }
-
- return [];
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cpm/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cpm/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cpm/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cpm/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cpm/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CPMFilterFieldsDescriptor, templateQueryIdMap, CPMInstanceAliasList, CPMInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, CPMGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMFilterFieldsDescriptor", function() { return CPMFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMInstanceAliasList", function() { return CPMInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMInvalidDemensions", function() { return CPMInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CPMGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/CPM'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'cpmQuery';
-var CPMInvalidDemensions = {
- instanceId: 'InstanceId' // uniqid: 'InstanceId',
-
-};
-var CPMInstanceAliasList = ['InstanceId', 'Name'];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var CPMFilterFields = {
- Limit: 20,
- Offset: 0,
- DeviceClassCode: '',
- InstanceIds: [],
- WanIps: [],
- LanIps: [],
- Alias: '',
- VagueIp: '',
- AutoRenewFlag: {},
- VpcId: '',
- SubnetId: '',
- DeviceType: {},
- IsLuckyDevice: {}
-};
-var CPMFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'DeviceClassCode',
- enDescriptor: 'DeviceClassCode',
- cnDescriptor: '机型ID',
- link: '',
- type: 'dropdown'
-}, {
- key: 'InstanceIds',
- enDescriptor: 'InstanceIds',
- cnDescriptor: '设备ID数组',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'WanIps',
- enDescriptor: 'WanIps',
- cnDescriptor: '外网IP数组',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LanIps',
- enDescriptor: 'LanIps',
- cnDescriptor: '内网IP数组',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'Alias',
- enDescriptor: 'Alias',
- cnDescriptor: '设备名称',
- link: '',
- type: 'input'
-}, {
- key: 'VagueIp',
- enDescriptor: 'VagueIp',
- cnDescriptor: '模糊IP查询',
- link: '',
- type: 'input'
-}, {
- key: 'AutoRenewFlag',
- enDescriptor: 'AutoRenewFlag',
- cnDescriptor: '自动续费标志',
- link: '',
- type: 'select',
- list: [{
- text: '不自动续费',
- value: 0
- }, {
- text: '自动续费',
- value: 1
- }]
-}, {
- key: 'VpcId',
- enDescriptor: 'VpcId',
- cnDescriptor: '私有网络唯一ID',
- link: '',
- type: 'input'
-}, {
- key: 'SubnetId',
- enDescriptor: 'SubnetId',
- cnDescriptor: '子网唯一ID',
- link: '',
- type: 'input'
-}, {
- key: 'DeviceType',
- enDescriptor: 'DeviceType',
- cnDescriptor: '子网实例ID',
- link: '',
- type: 'select',
- list: [{
- text: '计算型',
- value: 'compute'
- }, {
- text: '标准型',
- value: 'standard'
- }, {
- text: '存储型',
- value: 'storage'
- }]
-}, {
- key: 'IsLuckyDevice',
- enDescriptor: 'IsLuckyDevice',
- cnDescriptor: '竞价实例机器过滤',
- link: '',
- type: 'select',
- list: [{
- text: '非竞价实例机器',
- value: 0
- }, {
- text: '竞价实例的机器',
- value: 1
- }]
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904',
- namespace: namespace,
- fieldDescriptor: CPMFilterFieldsDescriptor
-};
-var CPM_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: CPMFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['instanceId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CPM_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cvm/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/cvm/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cvm/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var CVMDatasource =
-/** @class */
-function (_super) {
- __extends(CVMDatasource, _super);
-
- function CVMDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/CVM';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["CVMInstanceAliasList"];
- _this.InvalidDimensions = {};
- _this.templateQueryIdMap = {
- instance: 'InstanceId'
- };
- _this.InstanceReqConfig = {
- service: 'cvm',
- action: 'DescribeInstances',
- responseField: 'InstanceSet'
- };
- return _this;
- }
-
- CVMDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(rawSet.map(function (item) {
- if (Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["isValidMetric"])(item)) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item);
- }
-
- return null;
- }))];
- }
- });
- });
- };
-
- CVMDatasource.prototype.getRegions = function () {
- return this.doRequest({
- url: this.url + '/api',
- data: {
- Product: 'cvm'
- }
- }, 'api', {
- action: 'DescribeRegions'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.RegionSet || [], function (item) {
- return {
- text: item.RegionName,
- value: item.Region,
- RegionState: item.RegionState
- };
- }), function (item) {
- return item.RegionState === 'AVAILABLE';
- });
- });
- };
-
- CVMDatasource.prototype.getZones = function (region) {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'api');
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Product: 'cvm'
- }
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeZones'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.ZoneSet || [], function (item) {
- return {
- text: item.ZoneName,
- value: item.Zone,
- ZoneState: item.ZoneState,
- Zone: item.Zone
- };
- }), function (item) {
- return item.ZoneState === 'AVAILABLE';
- });
- });
- };
-
- return CVMDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CVMDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cvm/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/cvm/query.ts ***!
- \********************************************/
-/*! exports provided: CVMQueryCtrl, cvmQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMQueryCtrl", function() { return CVMQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cvmQuery", function() { return cvmQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cvm/query_def.ts");
-
-
-
-var CVMQueryCtrl =
-/** @class */
-function () {
- CVMQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function CVMQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.CVMFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["CVMFilterFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- case 'zone':
- return $scope.getZones();
-
- default:
- return [];
- }
- };
-
- $scope.getZones = function () {
- if (!$scope.region) {
- return [];
- }
-
- return $scope.datasource.getZones('cvm', $scope.region);
- };
-
- $scope.init();
- }
-
- return CVMQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function cvmQuery() {
- return {
- template: template,
- controller: CVMQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('cvmQuery', cvmQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cvm/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/cvm/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, CVMFilterFieldsDescriptor, CVMInstanceAliasList, isValidMetric, modifyDimensons, templateQueryIdMap, CVMGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMFilterFieldsDescriptor", function() { return CVMFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMInstanceAliasList", function() { return CVMInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CVMGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var instanceChargeTypes = [{
- text: '预付费',
- value: 'PREPAID'
-}, {
- text: '后付费',
- value: 'POSTPAID_BY_HOUR'
-}, {
- text: 'CDH付费',
- value: 'CDHPAID'
-}];
-var CVMFilterFields = {
- zone: [],
- 'project-id': [],
- 'host-id': [],
- 'vpc-id': [],
- 'subnet-id': [],
- 'instance-id': [],
- 'security-group-id': [],
- 'instance-name': [],
- 'instance-charge-type': {},
- 'private-ip-address': [],
- 'public-ip-address': [],
- 'tag-key': []
-};
-var CVMFilterFieldsDescriptor = [{
- key: 'zone',
- enDescriptor: 'Zone',
- cnDescriptor: '可用区',
- link: '',
- type: 'dropdownmulti'
-}, {
- key: 'project-id',
- enDescriptor: 'Project ID',
- cnDescriptor: '项目ID',
- link: 'https://cloud.tencent.com/document/api/378/4400',
- type: 'inputNumbermulti'
-}, {
- key: 'host-id',
- enDescriptor: 'CDH ID',
- cnDescriptor: 'CDH ID',
- link: 'https://cloud.tencent.com/document/product/416/19730',
- type: 'inputmulti'
-}, {
- key: 'vpc-id',
- enDescriptor: 'VPC ID',
- cnDescriptor: 'VPC ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'subnet-id',
- enDescriptor: 'Subnet ID',
- cnDescriptor: '子网ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'instance-id',
- enDescriptor: 'Instance ID',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'security-group-id',
- enDescriptor: 'Security Group ID',
- cnDescriptor: '安全组ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'instance-name',
- enDescriptor: 'Instance Name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'tag-key',
- enDescriptor: '标签简',
- cnDescriptor: '标签简',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'instance-charge-type',
- enDescriptor: 'Instance Charge Type',
- cnDescriptor: '实例计费模式',
- link: '',
- type: 'select',
- list: instanceChargeTypes
-}, {
- key: 'private-ip-address',
- enDescriptor: 'Private IP Address',
- cnDescriptor: '实例主网卡的内网IP',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'public-ip-address',
- enDescriptor: 'Public IP Address',
- cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP',
- link: '',
- type: 'inputmulti'
-}];
-var CVM_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: {
- Limit: 20,
- Offset: 0,
- instanceIdsChecked: false,
- filtersChecked: false,
- InstanceIds: [''],
- Filters: __assign({}, CVMFilterFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.InstanceIds)) {
- var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.InstanceIds);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) {
- params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-var CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];
-var CVMValidMetricsT = ['CPUUsage', 'CpuLoadavg', 'Cpuloadavg5m', 'Cpuloadavg15m', 'BaseCpuUsage', 'GpuMemTotal', 'GpuMemUsage', 'GpuMemUsed', 'GpuPowDraw', 'GpuPowLimit', 'GpuPowUsage', 'GpuTemp', 'GpuUtil', 'LanOuttraffic', 'LanIntraffic', 'LanOutpkg', 'LanInpkg', 'WanOuttraffic', 'WanIntraffic', 'WanOutpkg', 'WanInpkg', 'AccOuttraffic', 'TcpCurrEstab', 'TimeOffset', 'MemUsed', 'MemUsage', 'CvmDiskUsage', 'BaseCpuUsage', 'VmDiskReadIops']; // const CVMInvalidDemensions = {
-// 'vm_uuid': 'InstanceId',
-// 'vmUuid': 'InstanceId',
-// };
-
-var templateQueryIdMap = {
- instance: 'InstanceId'
-};
-
-function isValidMetric(metric) {
- var CVMValidMetrics = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(CVMValidMetricsT, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper);
-
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(CVMValidMetrics, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.toUpper(metric.MetricName)) !== -1;
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['InstanceId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CVM_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cynosdb_mysql/datasource.ts":
-/*!***********************************************************!*\
- !*** ./datasource/tc_monitor/cynosdb_mysql/datasource.ts ***!
- \***********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cynosdb_mysql/query_def.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
- // import { t } from '../../../locale';
-
-var CYNOSDBMYSQLDatasource =
-/** @class */
-function (_super) {
- __extends(CYNOSDBMYSQLDatasource, _super);
-
- function CYNOSDBMYSQLDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["CYNOSDBMYSQLInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["CYNOSDBInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.checkKeys = _query_def__WEBPACK_IMPORTED_MODULE_0__["checkKeys"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'cynosdb',
- action: 'DescribeInstances',
- responseField: 'InstanceSet'
- };
- return _this;
- }
-
- CYNOSDBMYSQLDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- })];
- }
- });
- });
- }; // getRegions() {
- // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));
- // }
-
-
- CYNOSDBMYSQLDatasource.prototype.getRegions = function () {
- return this.doRequest({
- url: this.url + '/api',
- data: {
- Product: 'cynosdbmysql'
- }
- }, 'api', {
- action: 'DescribeRegions'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_1___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_1___default.a.map(response.RegionSet || [], function (item) {
- return {
- text: item.RegionName,
- value: item.Region,
- RegionState: item.RegionState
- };
- }), function (item) {
- return item.RegionState === 'AVAILABLE';
- });
- });
- }; // 仅对维度组合是InstanceId的指标,其他指标不支持
-
-
- CYNOSDBMYSQLDatasource.prototype.getDefaultInsObj = function (ins) {
- var _a;
-
- return _a = {}, _a[_query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"].instance] = ins, _a;
- };
-
- return CYNOSDBMYSQLDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CYNOSDBMYSQLDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cynosdb_mysql/query.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/cynosdb_mysql/query.ts ***!
- \******************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/cynosdb_mysql/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/cynosdb_mysql/query_def.ts":
-/*!**********************************************************!*\
- !*** ./datasource/tc_monitor/cynosdb_mysql/query_def.ts ***!
- \**********************************************************/
-/*! exports provided: default, cynosdbMysqlFilterFieldsDescriptor, templateQueryIdMap, CYNOSDBMYSQLInstanceAliasList, CYNOSDBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, checkKeys, CYNOSDBMYSQLGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cynosdbMysqlFilterFieldsDescriptor", function() { return cynosdbMysqlFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CYNOSDBMYSQLInstanceAliasList", function() { return CYNOSDBMYSQLInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CYNOSDBInvalidDemensions", function() { return CYNOSDBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkKeys", function() { return checkKeys; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CYNOSDBMYSQLGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/CYNOSDB_MYSQL'; // 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字
-
-var queryEditorName = 'cynosdbMysqlQuery';
-var cynosdbMysqlFilterFields = {
- Limit: 20,
- Offset: 0,
- OrderBy: {},
- OrderByType: {},
- InstanceIds: [],
- DbType: {} // Status: '',
-
-};
-var cynosdbMysqlFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 1000
-}, {
- key: 'InstanceIds',
- enDescriptor: 'InstanceIds',
- cnDescriptor: '实例id列表',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: [{
- text: '创建时间',
- value: 'CREATETIME'
- }, {
- text: '过期时间',
- value: 'PERIODENDTIME'
- }]
-}, {
- key: 'OrderByType',
- enDescriptor: 'OrderByType',
- cnDescriptor: '排序类型',
- link: '',
- type: 'select',
- list: [{
- text: '升序',
- value: 'ASC'
- }, {
- text: '降序',
- value: 'DESC'
- }]
-}, {
- key: 'DbType',
- enDescriptor: 'DbType',
- cnDescriptor: '引擎类型',
- link: '',
- type: 'select',
- list: [{
- text: 'MYSQL',
- value: 'MYSQL'
- }, {
- text: 'POSTGRESQL',
- value: 'POSTGRESQL'
- }]
-} // {
-// key: 'Status',
-// enDescriptor: 'Status',
-// cnDescriptor: '实例状态',
-// link: '',
-// type: 'input',
-// },
-]; // regions for dropdown
-
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-shanghai'
-}];
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334',
- namespace: namespace,
- fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor
-};
-var CYNOSDB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: cynosdbMysqlFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false);
-} // 和文件名字一样CYNOSDBMYSQL
-
-
-var CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName'];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-};
-var CYNOSDBInvalidDemensions = {
- instanceid: 'InstanceId',
- instanceId: 'InstanceId'
-};
-var checkKeys = ['instanceId'];
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['InstanceId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (CYNOSDB_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dc/datasource.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/dc/datasource.ts ***!
- \************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dc/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'DirectConnectId'
- };
- _this.InstanceReqConfig = {
- service: 'dc',
- action: 'DescribeDirectConnects',
- responseField: 'DirectConnectSet'
- };
- return _this;
- }
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- })];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dc/query.ts":
-/*!*******************************************!*\
- !*** ./datasource/tc_monitor/dc/query.ts ***!
- \*******************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dc/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dc/query_def.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/dc/query_def.ts ***!
- \***********************************************/
-/*! exports provided: default, DCFilterFieldsDescriptor, templateQueryIdMap, DCInstanceAliasList, DCInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, DCGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCFilterFieldsDescriptor", function() { return DCFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCInstanceAliasList", function() { return DCInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCInvalidDemensions", function() { return DCInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/DC';
-var queryEditorName = 'dcQuery';
-var DCFilterFields = {
- Limit: 20,
- Offset: 0,
- DirectConnectIds: []
-};
-var DCFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'DirectConnectIds',
- enDescriptor: 'DirectConnectIds',
- cnDescriptor: '物理专线 ID',
- link: '',
- type: 'inputMulti'
-}];
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826',
- namespace: namespace,
- fieldDescriptor: DCFilterFieldsDescriptor
-};
-var DC_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'DirectConnectId',
- queries: DCFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-var DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName'];
-var templateQueryIdMap = {
- instance: 'DirectConnectId'
-};
-var DCInvalidDemensions = {
- directConnectId: 'DirectConnectId',
- directconnectid: 'DirectConnectId'
-};
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['directConnectId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (DC_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcdb/datasource.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/dcdb/datasource.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcdb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCDBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCDBInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'dcdb',
- action: 'DescribeDCDBInstances',
- responseField: 'Instances'
- };
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- _this.extraActionMap = {
- DescribeDCDBShards: {
- service: 'dcdb',
- action: 'DescribeDCDBShards',
- responseField: 'Shards',
- pickKey: 'ShardInstanceId'
- },
- DescribeDCDBInstanceNodeInfo: {
- service: 'dcdb',
- action: 'DescribeDCDBInstanceNodeInfo',
- responseField: 'NodesInfo',
- pickKey: 'NodeId'
- }
- };
- return _this;
- } // 重写getRegion, 入参的region用广州
-
-
- DCDatasource.prototype.getRegions = function () {
- return this.doRequest({
- url: this.url + '/dcdb'
- }, 'dcdb', {
- action: 'DescribeDCDBSaleInfo',
- region: 'ap-guangzhou'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionList || [], function (item) {
- return {
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(item.Region),
- value: item.Region,
- RegionState: item.RegionState
- };
- });
- });
- };
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- }))];
- }
- });
- });
- };
-
- DCDatasource.prototype.getConsumerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, act, payload, _a, service, action, responseField, serviceInfo, rs;
-
- var _this = this;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- region = params.region, act = params.action, payload = params.payload;
- _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: action
- });
- }, payload, responseField)];
-
- case 1:
- rs = _b.sent();
- return [2
- /*return*/
- , rs[0]];
- }
- });
- });
- };
-
- DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var payload, rs, pickKey_1, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- payload = {
- InstanceId: instance[this.templateQueryIdMap.instance],
- Limit: 100
- };
- if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getConsumerList({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- pickKey_1 = this.extraActionMap[action].pickKey;
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]];
- return {
- text: o[_this.templateQueryIdMap[pickKey_1]],
- value: o[_this.templateQueryIdMap[pickKey_1]]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcdb/query.ts":
-/*!*********************************************!*\
- !*** ./datasource/tc_monitor/dcdb/query.ts ***!
- \*********************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcdb/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'nodeid',
- field: 'NodeId',
- action: 'DescribeDCDBInstanceNodeInfo'
-}, {
- label: 'shardid',
- field: 'ShardId',
- action: 'DescribeDCDBShards'
-}];
-var dropdownTextConfig = {
- DescribeDCDBInstanceNodeInfo: 'NodeId',
- DescribeDCDBShards: 'ShardInstanceId'
-};
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.DCDBFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["DCDBFilterFieldsDescriptor"];
- $scope.ExtraFields = ExtraFields;
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance];
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a, _b;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {});
- });
- };
-
- $scope.getExtraDropdown = function (target, action) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, region, instanceId, payload, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- instanceId = $scope.getInstanceId();
- payload = {
- InstanceId: instanceId,
- Limit: 100
- };
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getConsumerList')({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]],
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcdb/query_def.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/dcdb/query_def.ts ***!
- \*************************************************/
-/*! exports provided: default, DCDBFilterFieldsDescriptor, templateQueryIdMap, DCDBInstanceAliasList, DCDBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, keyInStorage, modifyDimensons, queryMonitorExtraConfg, DCDBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBFilterFieldsDescriptor", function() { return DCDBFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBInstanceAliasList", function() { return DCDBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBInvalidDemensions", function() { return DCDBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCDBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/TDMYSQL'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'dcdbQuery';
-var DCDBInvalidDemensions = {
- nodeid: 'NodeId',
- instanceid: 'InstanceId',
- shardid: 'ShardInstanceId',
- ShardId: 'ShardInstanceId'
-}; // 需和文件名对应
-
-var DCDBInstanceAliasList = ['InstanceId', 'InstanceName'];
-var templateQueryIdMap = {
- instance: 'InstanceId',
- NodeId: 'NodeId',
- ShardInstanceId: 'ShardInstanceId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var DCDBFilterFields = {
- Limit: 20,
- Offset: 0,
- InstanceIds: [],
- SearchName: '',
- SearchKey: '',
- ProjectIds: [],
- // IsFilterVpc
- VpcId: '',
- SubnetId: '',
- OrderBy: {},
- OrderByType: {},
- // IsFilterExcluster: {},
- ExclusterType: {},
- ExclusterIds: [],
- FilterInstanceType: {}
-};
-var DCDBFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceIds',
- enDescriptor: 'InstanceIds',
- cnDescriptor: '实例 ID 查询',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'SearchName',
- enDescriptor: 'SearchName',
- cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all',
- link: '',
- type: 'input'
-}, {
- key: 'SearchKey',
- enDescriptor: 'SearchKey',
- cnDescriptor: '搜索的关键字',
- link: '',
- type: 'input'
-}, {
- key: 'ProjectIds',
- enDescriptor: 'ProjectIds',
- cnDescriptor: '按项目 ID 查询',
- link: '',
- type: 'inputNumberMulti'
-}, {
- key: 'VpcId',
- enDescriptor: 'VpcId',
- cnDescriptor: '私有网络 ID',
- link: '',
- type: 'input'
-}, {
- key: 'SubnetId',
- enDescriptor: 'SubnetId',
- cnDescriptor: '私有网络的子网 ID',
- link: '',
- type: 'input'
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: [{
- text: 'projectId',
- value: 'projectId'
- }, {
- text: 'createtime',
- value: 'createtime'
- }, {
- text: 'instancename',
- value: 'instancename'
- }]
-}, {
- key: 'OrderByType',
- enDescriptor: 'OrderByType',
- cnDescriptor: '私有网络 ID',
- link: '',
- type: 'select',
- list: [{
- text: 'desc',
- value: 'desc'
- }, {
- text: 'asc',
- value: 'asc'
- }]
-}, {
- key: 'ExclusterType',
- enDescriptor: 'ExclusterType',
- cnDescriptor: '集群类型',
- link: '',
- type: 'select',
- list: [{
- text: '非独享集群',
- value: 1
- }, {
- text: '独享集群',
- value: 2
- }, {
- text: '全部',
- value: 0
- }, {
- text: 'asc',
- value: 'asc'
- }]
-}, {
- key: 'ExclusterIds',
- enDescriptor: 'ExclusterIds',
- cnDescriptor: '独享集群ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'FilterInstanceType',
- enDescriptor: 'FilterInstanceType',
- cnDescriptor: '实例类型过滤',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '独享实例',
- value: 1
- }, {
- text: '主实例',
- value: 2
- }, {
- text: '灾备实例',
- value: 3
- }]
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140',
- namespace: namespace,
- fieldDescriptor: DCDBFilterFieldsDescriptor
-};
-var DCDB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- ShardId: '',
- NodeId: '',
- queries: DCDBFilterFields
-};
-var modifyMetricConf = {
- shardid: 'ShardId',
- instanceid: 'InstanceId',
- nodeid: 'NodeId'
-};
-
-function modifyDimensons(metricItem) {
- var metricTmp = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(metricItem);
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = item.Dimensions.map(function (v) {
- return modifyMetricConf[v] || v;
- });
- });
- return metricTmp;
-}
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false); // 特殊处理
-
- params.IsFilterVpc = false;
- params.IsFilterExcluster = false;
- if (params.VpcId || params.SubnetId) params.IsFilterVpc = true;
- if (params.ExclusterType) params.IsFilterExcluster = true;
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(',');
- return params;
-} // 需要缓存到storage的内容的key列表
-
-
-var keyInStorage = {
- NodeId: 'NodeId',
- ShardInstanceId: 'ShardId'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- NodeId: {
- dim_KeyInStorage: keyInStorage.NodeId,
- dim_KeyInTarget: 'NodeId',
- dim_KeyInMap: templateQueryIdMap.NodeId
- },
- ShardInstanceId: {
- dim_KeyInStorage: keyInStorage.ShardInstanceId,
- dim_KeyInTarget: 'ShardId',
- dim_KeyInMap: templateQueryIdMap.ShardInstanceId
- }
-}; // 和其他产品的展示保持一致
-
-var regionSupported = [{
- text: '华北地区(北京)',
- value: 'ap-beijing'
-}, {
- text: '西南地区(成都)',
- value: 'ap-chengdu'
-}, {
- text: '西南地区(重庆)',
- value: 'ap-chongqing'
-}, {
- text: '华南地区(广州)',
- value: 'ap-guangzhou'
-}, {
- text: '港澳台地区(中国香港)',
- value: 'ap-hongkong'
-}, {
- text: '亚太南部(孟买)',
- value: 'ap-mumbai'
-}, {
- text: '华东地区(南京)',
- value: 'ap-nanjing'
-}, {
- text: '华东地区(上海)',
- value: 'ap-shanghai'
-}, {
- text: '华东地区(上海金融)',
- value: 'ap-shanghai-fsi'
-}, {
- text: '华南地区(深圳金融)',
- value: 'ap-shenzhen-fsi'
-}, {
- text: '亚太东南(新加坡)',
- value: 'ap-singapore'
-}, {
- text: '亚太东北(东京)',
- value: 'ap-tokyo'
-}, {
- text: '欧洲地区(法兰克福)',
- value: 'eu-frankfurt'
-}, {
- text: '美国东部(弗吉尼亚)',
- value: 'na-ashburn'
-}, {
- text: '美国西部(硅谷)',
- value: 'na-siliconvalley'
-}, {
- text: '北美地区(多伦多)',
- value: 'na-toronto'
-}];
-/* harmony default export */ __webpack_exports__["default"] = (DCDB_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcg/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/dcg/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcg/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCGInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCGInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeDirectConnectGateways',
- responseField: 'DirectConnectGatewaySet'
- };
- return _this;
- }
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcg/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/dcg/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcg/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcg/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/dcg/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, DCGFilterFieldsDescriptor, templateQueryIdMap, DCGInstanceAliasList, DCGInvalidDemensions, namespace, queryEditorName, queryEditorConfig, DCGGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGFilterFieldsDescriptor", function() { return DCGFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGInstanceAliasList", function() { return DCGInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGInvalidDemensions", function() { return DCGInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCGGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/DCG';
-var queryEditorName = 'dcgQuery';
-var DCGInvalidDemensions = {
- directConnectGatewayId: 'DirectConnectGatewayId'
-};
-var DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName'];
-var templateQueryIdMap = {
- instance: 'DirectConnectGatewayId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var DCGFilterFields = {
- Limit: 20,
- Offset: 0,
- 'direct-connect-gateway-id': [],
- 'direct-connect-gateway-name': [],
- 'direct-connect-gateway-ip': [],
- 'gateway-type': {},
- 'network-type': {},
- 'ccn-id': [],
- 'vpc-id': []
-};
-var DCGFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'direct-connect-gateway-id',
- enDescriptor: 'direct-connect-gateway-id',
- cnDescriptor: '专线网关唯一ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'direct-connect-gateway-name',
- enDescriptor: 'direct-connect-gateway-name',
- cnDescriptor: '专线网关名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'direct-connect-gateway-ip',
- enDescriptor: 'direct-connect-gateway-ip',
- cnDescriptor: '专线网关IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'gateway-type',
- enDescriptor: 'gateway-type',
- cnDescriptor: '网关类型',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '普通型',
- value: 'NORMAL'
- }, {
- text: 'NAT型',
- value: 'NAT'
- }]
-}, {
- key: 'network-type',
- enDescriptor: 'network-type',
- cnDescriptor: '网络类型',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '私有网络类型',
- value: 'VPC'
- }, {
- text: '云联网类型',
- value: 'CCN'
- }]
-}, {
- key: 'ccn-id',
- enDescriptor: 'ccn-id',
- cnDescriptor: '专线网关所在云联网ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpc-id',
- enDescriptor: 'vpc-id',
- cnDescriptor: '专线网关所在私有网络ID',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644',
- namespace: namespace,
- fieldDescriptor: DCGFilterFieldsDescriptor
-};
-var DCG_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'DirectConnectGatewayId',
- queries: DCGFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (DCG_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcx/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/dcx/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcx/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var DCXDatasource =
-/** @class */
-function (_super) {
- __extends(DCXDatasource, _super);
-
- function DCXDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCXInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["DCXInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'DirectConnectTunnelId'
- };
- _this.InstanceReqConfig = {
- service: 'dc',
- action: 'DescribeDirectConnectTunnels',
- responseField: 'DirectConnectTunnelSet'
- };
- return _this;
- }
-
- DCXDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- })];
- }
- });
- });
- };
-
- return DCXDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCXDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcx/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/dcx/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/dcx/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/dcx/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/dcx/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, DCXFilterFieldsDescriptor, templateQueryIdMap, DCXInstanceAliasList, DCXInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, DCXGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXFilterFieldsDescriptor", function() { return DCXFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXInstanceAliasList", function() { return DCXInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXInvalidDemensions", function() { return DCXInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DCXGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-
-var namespace = 'QCE/DCX';
-var queryEditorName = 'dcxQuery';
-var DCXFilterFields = {
- 'direct-connect-tunnel-name': [],
- 'direct-connect-tunnel-id': [],
- 'direct-connect-id': []
-};
-var DCXFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'direct-connect-tunnel-name',
- enDescriptor: 'direct-connect-tunnel-name',
- cnDescriptor: '专用通道名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'direct-connect-tunnel-id',
- enDescriptor: 'direct-connect-tunnel-id',
- cnDescriptor: '专用通道实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'direct-connect-id',
- enDescriptor: 'direct-connect-id',
- cnDescriptor: '物理专线实例ID',
- link: '',
- type: 'inputMulti'
-}];
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819',
- namespace: namespace,
- fieldDescriptor: DCXFilterFieldsDescriptor
-};
-var DCX_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'DirectConnectTunnelId',
- queries: __assign({
- Limit: 20,
- Offset: 0
- }, DCXFilterFields)
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-var DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName'];
-var templateQueryIdMap = {
- instance: 'DirectConnectTunnelId'
-};
-var DCXInvalidDemensions = {
- directconnectconnid: 'DirectConnectTunnelId',
- directConnectConnId: 'DirectConnectTunnelId'
-};
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['directConnectConnId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (DCX_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecdn/datasource.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/ecdn/datasource.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecdn/query_def.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ECDNDatasource =
-/** @class */
-function (_super) {
- __extends(ECDNDatasource, _super);
-
- function ECDNDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["ECDNInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["ECDNInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'ecdn',
- action: 'DescribeDomains',
- responseField: 'Domains'
- };
- return _this;
- }
-
- ECDNDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item);
- })];
- }
- });
- });
- };
-
- return ECDNDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (ECDNDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecdn/query.ts":
-/*!*********************************************!*\
- !*** ./datasource/tc_monitor/ecdn/query.ts ***!
- \*********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecdn/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecdn/query_def.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/ecdn/query_def.ts ***!
- \*************************************************/
-/*! exports provided: default, ECDNFilterFieldsDescriptor, templateQueryIdMap, ECDNInstanceAliasList, ECDNInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, ECDNGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNFilterFieldsDescriptor", function() { return ECDNFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNInstanceAliasList", function() { return ECDNInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNInvalidDemensions", function() { return ECDNInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECDNGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var namespace = 'QCE/DSA';
-var queryEditorName = 'ecdnQuery';
-var ECDNInstanceAliasList = ['Domain'];
-var templateQueryIdMap = {
- instance: 'Domain'
-};
-var ECDNInvalidDemensions = {
- domain: 'Domain',
- projectid: 'ProjectId'
-};
-var ECDN_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'Domain',
- queries: {
- Limit: 100,
- Offset: 0,
- origin: [],
- domain: [],
- resourceId: [],
- status: [],
- disable: [],
- projectId: [],
- fullUrlCache: [],
- https: [],
- originPullProtocol: [],
- area: [],
- tagKey: []
- }
-};
-var ECDNFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'origin',
- enDescriptor: 'Origin',
- cnDescriptor: '主源站',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'domain',
- enDescriptor: 'Domain',
- cnDescriptor: '域名',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'resourceId',
- enDescriptor: 'ResourceId',
- cnDescriptor: '域名id',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'status',
- enDescriptor: 'Status',
- cnDescriptor: '域名状态',
- link: '',
- type: 'select',
- list: [{
- text: 'online',
- value: 'online'
- }, {
- text: 'offline',
- value: 'offline'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'disable',
- enDescriptor: 'Disable',
- cnDescriptor: '域名封禁状态',
- link: '',
- type: 'select',
- list: [{
- text: 'normal',
- value: 'normal'
- }, {
- text: 'unlicensed',
- value: 'unlicensed'
- }]
-}, {
- key: 'projectId',
- enDescriptor: 'ProjectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'fullUrlCache',
- enDescriptor: 'FullUrlCache',
- cnDescriptor: '全路径缓存',
- link: '',
- type: 'select',
- list: [{
- text: 'on',
- value: 'on'
- }, {
- text: 'off',
- value: 'off'
- }]
-}, {
- key: 'https',
- enDescriptor: 'Https',
- cnDescriptor: '是否配置https',
- link: '',
- type: 'select',
- list: [{
- text: 'on',
- value: 'on'
- }, {
- text: 'off',
- value: 'off'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'originPullProtocol',
- enDescriptor: 'OriginPullProtocol',
- cnDescriptor: '回源协议类型',
- link: '',
- type: 'select',
- list: [{
- text: 'http',
- value: 'http'
- }, {
- text: 'https',
- value: 'https'
- }, {
- text: 'follow',
- value: 'follow'
- }]
-}, {
- key: 'area',
- enDescriptor: 'Area',
- cnDescriptor: '加速区域',
- link: '',
- type: 'select',
- list: [{
- text: 'mainland',
- value: 'mainland'
- }, {
- text: 'overseas',
- value: 'overseas'
- }, {
- text: 'global',
- value: 'global'
- }]
-}, {
- key: 'tagKey',
- enDescriptor: 'TagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputMulti'
-}];
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462',
- namespace: namespace,
- fieldDescriptor: ECDNFilterFieldsDescriptor
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(queries)) {
- params.Limit = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(queries, 'Limit', 20) || 20;
- params.Offset = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(queries, 'Offset', 0) || 0;
-
- var _queries = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["omit"])(queries, ['Offset', 'Limit']);
-
- var Filters_1 = [];
- Object(lodash__WEBPACK_IMPORTED_MODULE_0__["forEach"])(_queries, function (item, key) {
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(item)) {
- item = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["compact"])(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Value: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["uniq"])(item).slice(0, 5)
- });
- }
- } else if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isObject"])(item)) {
- if (!Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Value: [Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'value', [])].slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1.map(function (item) {
- if (item.Name === 'domain') {
- return __assign(__assign({}, item), {
- Fuzzy: true
- });
- }
-
- return item;
- });
- return params;
- }
- }
-
- return params;
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(metricItem);
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['domain', 'projectid'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (ECDN_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/ecm/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'ecm',
- action: 'DescribeInstances',
- responseField: 'InstanceSet'
- };
- _this.MetricReqConfig = {
- resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"]
- };
- return _this;
- }
-
- DCDatasource.prototype.metricFindQuery = function (query, regex) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), {
- region: 'ap-guangzhou'
- }), regex)];
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/ecm/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/ecm/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, ECMFilterFieldsDescriptor, templateQueryIdMap, ECMInstanceAliasList, ECMInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, ECMGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMFilterFieldsDescriptor", function() { return ECMFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMInstanceAliasList", function() { return ECMInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMInvalidDemensions", function() { return ECMInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/ECM';
-var queryEditorName = 'ecmQuery';
-var ECMInvalidDemensions = {
- // diskId: 'InstanceId',
- uuid: 'UUID' // unInstanceId: 'InstanceId',
-
-};
-var ECMInstanceAliasList = ['InstanceId', 'InstanceName'];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var ECMFilterFields = {
- Limit: 20,
- Offset: 0,
- zone: [],
- 'zone-name': [],
- 'module-id': [],
- 'module-name': [],
- 'instance-id': [],
- 'instance-name': [],
- 'ip-address': [],
- 'instance-uuid': [],
- 'instance-state': {},
- 'internet-service-provider': [],
- 'instance-family': [],
- 'image-id': [],
- 'vpc-id': [],
- 'subnet-id': []
-};
-var ECMFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'zone',
- enDescriptor: 'zone',
- cnDescriptor: '可用区英文标识',
- link: '',
- type: 'dropdownMulti'
-}, {
- key: 'zone-name',
- enDescriptor: 'zone-name',
- cnDescriptor: '排列顺序',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'module-id',
- enDescriptor: 'module-id',
- cnDescriptor: '模块ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'module-name',
- enDescriptor: 'module-name',
- cnDescriptor: '模块名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-id',
- enDescriptor: 'instance-id',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-name',
- enDescriptor: 'instance-name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ip-address',
- enDescriptor: 'ip-address',
- cnDescriptor: '内网/公网IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-uuid',
- enDescriptor: 'instance-uuid',
- cnDescriptor: '实例uuid',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-state',
- enDescriptor: 'instance-state',
- cnDescriptor: '实例状态',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '创建中',
- value: 'PENDING'
- }, {
- text: '创建失败',
- value: 'LAUNCH_FAILED'
- }, {
- text: '运行中',
- value: 'RUNNING'
- }, {
- text: '关机',
- value: 'STOPPED'
- }, {
- text: '开机中',
- value: 'STARTING'
- }, {
- text: '关机中',
- value: 'STOPPING'
- }, {
- text: '重启中',
- value: 'REBOOTING'
- }, {
- text: '停止待销毁',
- value: 'SHUTDOWN'
- }, {
- text: '销毁中',
- value: 'TERMINATING'
- }]
-}, {
- key: 'internet-service-provider',
- enDescriptor: 'internet-service-provider',
- cnDescriptor: '公网IP所属的运营商',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-family',
- enDescriptor: 'instance-family',
- cnDescriptor: '机型family',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'image-id',
- enDescriptor: 'image-id',
- cnDescriptor: '镜像ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpc-id',
- enDescriptor: 'vpc-id',
- cnDescriptor: '实例的vpc id',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'subnet-id',
- enDescriptor: 'subnet-id',
- cnDescriptor: '实例的subnet id',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',
- namespace: namespace,
- fieldDescriptor: ECMFilterFieldsDescriptor
-};
-var ECM_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: ECMFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true);
-} // function isValidMetric(metricObj: any = {}) {
-// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');
-// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);
-// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);
-// }
-
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"](metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['UUID'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (ECM_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm_block_storage/datasource.ts":
-/*!***************************************************************!*\
- !*** ./datasource/tc_monitor/ecm_block_storage/datasource.ts ***!
- \***************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_block_storage/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMBLOCKSTORAGEInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMBLOCKSTORAGEInvalidDemensions"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'ecm',
- action: 'DescribeInstances',
- responseField: 'InstanceSet'
- };
- return _this;
- }
-
- DCDatasource.prototype.getDiskList = function (params) {
- var _a;
-
- return __awaiter(this, void 0, void 0, function () {
- var payload, InstanceId, instanceCache, instanceObj, dataDisks;
-
- var _this = this;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- payload = params.payload;
- InstanceId = payload.InstanceId;
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].getInstance(this.service)];
-
- case 1:
- instanceCache = _b.sent();
- instanceObj = (_a = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.cloneDeep(instanceCache.find(function (item) {
- return item[_this.templateQueryIdMap.instance] === InstanceId;
- }))) !== null && _a !== void 0 ? _a : {};
- dataDisks = instanceObj.DataDisks;
- return [2
- /*return*/
- , dataDisks];
- }
- });
- });
- };
-
- DCDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var payload, rs, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- payload = {
- InstanceId: instance,
- Limit: 100
- };
- return [4
- /*yield*/
- , this.getDiskList({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap.diskId];
- return {
- text: o[_this.templateQueryIdMap.diskId],
- value: o[_this.templateQueryIdMap.diskId]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.keyInStorage.diskId, rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm_block_storage/query.ts":
-/*!**********************************************************!*\
- !*** ./datasource/tc_monitor/ecm_block_storage/query.ts ***!
- \**********************************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_block_storage/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-
-
-
-var ExtraFields = [// {
-// label: 'nodeid',
-// field: 'NodeId',
-// action: 'DescribeInstanceNodeInfo',
-// },
-{
- label: 'diskId',
- field: 'diskId'
-}];
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["ECMBLOCKSTORAGEFilterFieldsDescriptor"];
- $scope.ExtraFields = ExtraFields;
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- }; // $scope.getInstanceId = () => {
- // let { instance } = $scope.target;
- // const service = GetServiceFromNamespace($scope.namespace);
- // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
- // if (!instance) {
- // return '';
- // }
- // try {
- // instance = JSON.parse(instance)[templateQueryIdMap.instance];
- // } catch (error) {
- // console.log();
- // }
- // return instance;
- // };
-
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a, _b;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {});
- });
- };
-
- $scope.getExtraDropdown = function (target, action) {
- var instance = target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- try {
- instance = JSON.parse(instance);
- var dataDisks = instance.DataDisks;
- return dataDisks.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].diskId];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].diskId],
- value: JSON.stringify(o)
- };
- });
- } catch (error) {
- // console.log('instance error', instance);
- var payload = {
- InstanceId: instance
- };
- var rs = $scope.datasource.getServiceFn(service, 'getDiskList')({
- payload: payload
- });
- var result = rs.map(function (o) {
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].diskId],
- value: JSON.stringify(o)
- };
- });
- return result;
- }
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm_block_storage/query_def.ts":
-/*!**************************************************************!*\
- !*** ./datasource/tc_monitor/ecm_block_storage/query_def.ts ***!
- \**************************************************************/
-/*! exports provided: default, ECMBLOCKSTORAGEFilterFieldsDescriptor, templateQueryIdMap, ECMBLOCKSTORAGEInstanceAliasList, ECMBLOCKSTORAGEInvalidDemensions, namespace, queryEditorName, queryEditorConfig, keyInStorage, queryMonitorExtraConfg, ECMBLOCKSTORAGEGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEFilterFieldsDescriptor", function() { return ECMBLOCKSTORAGEFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEInstanceAliasList", function() { return ECMBLOCKSTORAGEInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEInvalidDemensions", function() { return ECMBLOCKSTORAGEInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMBLOCKSTORAGEGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/ECM_BLOCK_STORAGE'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'ecmBlockStorageQuery';
-var ECMBLOCKSTORAGEInvalidDemensions = {
- uuid: 'UUID',
- diskId: 'DiskId'
-}; // 需和文件名对应
-
-var ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName'];
-var templateQueryIdMap = {
- instance: 'InstanceId',
- diskId: 'DiskId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var ECMBLOCKSTORAGEFilterFields = {
- Limit: 20,
- Offset: 0,
- 'zone-name': [],
- 'module-id': [],
- 'module-name': [],
- 'instance-id': [],
- 'instance-name': [],
- 'ip-address': [],
- 'instance-uuid': [],
- 'instance-state': {},
- 'internet-service-provider': [],
- 'instance-family': [],
- 'image-id': [],
- 'vpc-id': [],
- 'subnet-id': []
-};
-var ECMBLOCKSTORAGEFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'zone-name',
- enDescriptor: 'zone-name',
- cnDescriptor: '排列顺序',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'module-id',
- enDescriptor: 'module-id',
- cnDescriptor: '模块ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'module-name',
- enDescriptor: 'module-name',
- cnDescriptor: '模块名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-id',
- enDescriptor: 'instance-id',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-name',
- enDescriptor: 'instance-name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ip-address',
- enDescriptor: 'ip-address',
- cnDescriptor: '内网/公网IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-uuid',
- enDescriptor: 'instance-uuid',
- cnDescriptor: '实例uuid',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-state',
- enDescriptor: 'instance-state',
- cnDescriptor: '实例状态',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '创建中',
- value: 'PENDING'
- }, {
- text: '创建失败',
- value: 'LAUNCH_FAILED'
- }, {
- text: '运行中',
- value: 'RUNNING'
- }, {
- text: '关机',
- value: 'STOPPED'
- }, {
- text: '开机中',
- value: 'STARTING'
- }, {
- text: '关机中',
- value: 'STOPPING'
- }, {
- text: '重启中',
- value: 'REBOOTING'
- }, {
- text: '停止待销毁',
- value: 'SHUTDOWN'
- }, {
- text: '销毁中',
- value: 'TERMINATING'
- }]
-}, {
- key: 'internet-service-provider',
- enDescriptor: 'internet-service-provider',
- cnDescriptor: '公网IP所属的运营商',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'instance-family',
- enDescriptor: 'instance-family',
- cnDescriptor: '机型family',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'image-id',
- enDescriptor: 'image-id',
- cnDescriptor: '镜像ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpc-id',
- enDescriptor: 'vpc-id',
- cnDescriptor: '实例的vpc id',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'subnet-id',
- enDescriptor: 'subnet-id',
- cnDescriptor: '实例的subnet id',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',
- namespace: namespace,
- fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor
-};
-var ECMBLOCKSTORAGE_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- diskId: '',
- queries: ECMBLOCKSTORAGEFilterFields
-}; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- diskId: 'diskId'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- DiskId: {
- dim_KeyInStorage: keyInStorage.diskId,
- dim_KeyInTarget: 'diskId',
- dim_KeyInMap: templateQueryIdMap.diskId
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (ECMBLOCKSTORAGE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm_lb/datasource.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/ecm_lb/datasource.ts ***!
- \****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_lb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMLBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["ECMLBInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'ecm',
- action: 'DescribeLoadBalancers',
- responseField: 'LoadBalancerSet'
- };
- return _this;
- }
-
- DCDatasource.prototype.metricFindQuery = function (query, regex) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), {
- region: 'ap-guangzhou'
- }), regex)];
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm_lb/query.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/ecm_lb/query.ts ***!
- \***********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ecm_lb/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ecm_lb/query_def.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/ecm_lb/query_def.ts ***!
- \***************************************************/
-/*! exports provided: default, ECMLBFilterFieldsDescriptor, templateQueryIdMap, ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, ECMLBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBFilterFieldsDescriptor", function() { return ECMLBFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBInstanceAliasList", function() { return ECMLBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBInvalidDemensions", function() { return ECMLBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ECMLBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/ECM_LB';
-var queryEditorName = 'ecmLbQuery';
-var ECMLBInvalidDemensions = {
- vip: 'LoadBalancerVips'
-};
-var ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName'];
-var templateQueryIdMap = {
- instance: 'LoadBalancerId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var ECMLBFilterFields = {
- Limit: 20,
- Offset: 0,
- LoadBalancerIds: [],
- LoadBalancerName: [],
- LoadBalancerVips: [],
- BackendPrivateIps: [],
- VpcId: ''
-};
-var ECMLBFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'LoadBalancerIds',
- enDescriptor: 'LoadBalancerIds',
- cnDescriptor: '负载均衡器ID数组',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerName',
- enDescriptor: 'LoadBalancerName',
- cnDescriptor: '负载均衡器名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerVips',
- enDescriptor: 'LoadBalancerVips',
- cnDescriptor: '负载均衡获得的公网IP地址',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'BackendPrivateIps',
- enDescriptor: 'BackendPrivateIps',
- cnDescriptor: '绑定的后端服务的内网 IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'VpcId',
- enDescriptor: 'VpcId',
- cnDescriptor: '实例所属私有网络唯一ID',
- link: '',
- type: 'input'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459',
- namespace: namespace,
- fieldDescriptor: ECMLBFilterFieldsDescriptor
-};
-var ECM_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'LoadBalancerId',
- queries: ECMLBFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, false);
-} // function isValidMetric(metricObj: any = {}) {
-// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');
-// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);
-// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);
-// }
-
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"](metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {// item.Dimensions = ['UUID'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (ECM_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/gse/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/gse/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/gse/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["GSEInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["GSEInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'gse',
- action: 'DescribeInstances',
- responseField: 'Instances'
- };
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"];
- return _this;
- } // getFilterDropdown({ field }) {
- // return super.getRegions();
- // }
-
-
- DCDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(value)
- };
- }));
- };
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- }))];
- }
- });
- });
- };
-
- DCDatasource.prototype.getQueueNameList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, serviceInfo, res, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, this.service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeGameServerSessionQueues'
- });
- }, {}, 'GameServerSessionQueues')];
-
- case 1:
- res = _a.sent();
- rs = res[0];
- return [2
- /*return*/
- , rs];
- }
- });
- });
- };
-
- DCDatasource.prototype.getFleetList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, serviceInfo, res, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, this.service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'ListFleets'
- });
- }, {}, 'FleetIds')];
-
- case 1:
- res = _a.sent();
- rs = res[0];
- return [2
- /*return*/
- , rs.map(function (r) {
- var _a;
-
- return _a = {}, _a[_this.templateQueryIdMap.FleetId] = r, _a;
- })];
- }
- });
- });
- };
-
- DCDatasource.prototype.fetchMetricData = function (action, region, instance) {
- return __awaiter(this, void 0, void 0, function () {
- var rs, result, rs, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(action === 'DescribeGameServerSessionQueues')) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getQueueNameList({
- region: region,
- instanceId: instance[this.templateQueryIdMap.instance]
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap.Name];
- return {
- text: o[_this.templateQueryIdMap.Name],
- value: o[_this.templateQueryIdMap.Name]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.queue, rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- if (!(action === 'ListFleets')) return [3
- /*break*/
- , 6];
- return [4
- /*yield*/
- , this.getFleetList({
- region: region,
- instanceId: instance[this.templateQueryIdMap.instance]
- })];
-
- case 4:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap.FleetId];
- return {
- text: o[_this.templateQueryIdMap.FleetId],
- value: o[_this.templateQueryIdMap.FleetId]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage.fleet, rs)];
-
- case 5:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 6:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/gse/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/gse/query.ts ***!
- \********************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/gse/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'fleetId',
- field: 'FleetId'
-}, {
- label: 'queueName',
- field: 'Name'
-}];
-var actionMaps = {
- FleetId: 'getFleetList',
- Name: 'getQueueNameList'
-};
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.GSEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["GSEFilterFieldsDescriptor"];
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {});
- });
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); // console.log({namespace, service});
-
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance];
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraDropdown = function (target, field) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, instanceId, region, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instanceId = $scope.getInstanceId();
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, actionMaps[field])({
- region: region,
- instanceId: instanceId
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][field]];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][field]],
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/gse/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/gse/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, GSEFilterFieldsDescriptor, templateQueryIdMap, GSEInstanceAliasList, GSEInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, queryMonitorExtraConfg, fleetId, keyInStorage, GSEGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEFilterFieldsDescriptor", function() { return GSEFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEInstanceAliasList", function() { return GSEInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEInvalidDemensions", function() { return GSEInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fleetId", function() { return fleetId; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GSEGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/GSE';
-var fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key
-// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'gseQuery';
-var GSEInvalidDemensions = {
- instanceid: 'InstanceId',
- fleetid: 'FleetId',
- queuename: 'Name'
-}; // 需和文件名对应
-
-var GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress'];
-var templateQueryIdMap = {
- instance: 'InstanceId',
- Name: 'Name',
- FleetId: fleetId
-}; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- fleet: 'fleet',
- queue: 'queueName' // 会话队列
-
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- FleetId: {
- dim_KeyInStorage: keyInStorage.fleet,
- dim_KeyInTarget: 'FleetId',
- dim_KeyInMap: templateQueryIdMap.FleetId
- },
- Name: {
- dim_KeyInStorage: keyInStorage.queue,
- dim_KeyInTarget: 'Name',
- dim_KeyInMap: templateQueryIdMap.Name
- }
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var GSEFilterFields = {
- Limit: 20,
- Offset: 0,
- InstanceId: '',
- FleetId: ''
-};
-var GSEFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceId',
- enDescriptor: 'resourceName',
- cnDescriptor: '资源名称',
- link: '',
- type: 'input'
-}, {
- key: 'FleetId',
- enDescriptor: 'tagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'input'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604',
- namespace: namespace,
- fieldDescriptor: GSEFilterFieldsDescriptor
-};
-var GSE_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- FleetId: '',
- Name: '',
- queries: GSEFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-} // regions for dropdown
-
-
-var regionSupported = [{
- value: 'ap-bangkok'
-}, {
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, // { value: 'ap-chongqing' },
-{
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-shanghai'
-}, // { value: 'ap-shanghai-fsi' },
-// { value: 'ap-shenzhen-fsi' },
-{
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-} // { value: 'na-toronto' },
-];
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = item.Dimensions.map(function (v) {
- return GSEInvalidDemensions[v] || v;
- });
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (GSE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/index.ts":
-/*!****************************************!*\
- !*** ./datasource/tc_monitor/index.ts ***!
- \****************************************/
-/*! exports provided: InitServiceState, SERVICES, Datasources, InstanceAliasList, GetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InitServiceState", function() { return InitStates; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SERVICES", function() { return SERVICES; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Datasources", function() { return Datasources; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../locale */ "./locale/index.ts");
-var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-
-
-var SERVICES = [{
- service: 'cvm',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CVM');
- },
-
- namespace: 'QCE/CVM',
- href: 'https://cloud.tencent.com/document/api/213/15688'
-}, {
- service: 'cdb',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CDB');
- },
-
- namespace: 'QCE/CDB',
- href: 'https://cloud.tencent.com/document/api/236/15829',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'mongoDB',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CMONGO');
- },
-
- namespace: 'QCE/CMONGO',
- href: 'https://cloud.tencent.com/document/api/240/38568',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'postgres',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('POSTGRES');
- },
-
- namespace: 'QCE/POSTGRES',
- href: 'https://cloud.tencent.com/document/product/248/45105',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'redis',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('REDIS');
- },
-
- namespace: 'QCE/REDIS',
- href: 'https://cloud.tencent.com/document/product/248/45110',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'redisMem',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('REDIS_MEM');
- },
-
- namespace: 'QCE/REDIS_MEM',
- href: 'https://cloud.tencent.com/document/product/248/49729',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'sqlserver',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('SQLSERVER');
- },
-
- namespace: 'QCE/SQLSERVER',
- href: 'https://cloud.tencent.com/document/product/248/45146',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'cynosdbMysql',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CYNOSDB_MYSQL');
- },
-
- namespace: 'QCE/CYNOSDB_MYSQL',
- href: 'https://cloud.tencent.com/document/product/248/45106',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'tcaplus',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TCAPLUS');
- },
-
- namespace: 'QCE/TCAPLUS',
- href: 'https://cloud.tencent.com/document/product/248/45107',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_database');
- }
-
-}, {
- service: 'dcdb',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMYSQL');
- },
-
- namespace: 'QCE/TDMYSQL',
- href: 'https://cloud.tencent.com/document/product/248/45108'
-}, {
- service: 'pcx',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('PCX');
- },
-
- namespace: 'QCE/PCX',
- href: 'https://cloud.tencent.com/document/product/215/5181',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'bwp',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BWP');
- },
-
- namespace: 'QCE/BWP',
- href: 'https://cloud.tencent.com/document/api/215/19209',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'natGateway',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('NAT_GATEWAY');
- },
-
- namespace: 'QCE/NAT_GATEWAY',
- href: 'https://cloud.tencent.com/document/api/215/36034',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'vpngw',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VPNGW');
- },
-
- namespace: 'QCE/VPNGW',
- href: 'https://cloud.tencent.com/document/product/248/45070',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'vpnx',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VPNX');
- },
-
- namespace: 'QCE/VPNX',
- href: 'https://cloud.tencent.com/document/product/248/45071',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'dcg',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('DCG');
- },
-
- namespace: 'QCE/DCG',
- href: 'https://cloud.tencent.com/document/product/248/45072',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'ceipSummary',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CEIP_SUMMARY');
- },
-
- namespace: 'QCE/CEIP_SUMMARY',
- href: 'https://cloud.tencent.com/document/product/248/50381',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'vpcNetDetect',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VPC_NET_DETECT');
- },
-
- namespace: 'QCE/VPC_NET_DETECT',
- href: 'https://cloud.tencent.com/document/product/248/50384',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'vbc',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('VBC');
- },
-
- namespace: 'QCE/VBC',
- href: 'https://cloud.tencent.com/document/product/248/45073',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'lb',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LB');
- },
-
- namespace: 'QCE/LB',
- href: 'https://cloud.tencent.com/document/product/248/45099',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('virtual_private_cloud');
- }
-
-}, {
- service: 'lbPublic',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LB_PUBLIC');
- },
-
- namespace: 'QCE/LB_PUBLIC',
- href: 'https://cloud.tencent.com/document/product/248/51898',
-
- get groupName() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('multi_scene'), ")");
- }
-
-}, {
- service: 'lbPrivate',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LB_PRIVATE');
- },
-
- namespace: 'QCE/LB_PRIVATE',
- href: 'https://cloud.tencent.com/document/product/248/51899',
-
- get groupName() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('multi_scene'), ")");
- }
-
-}, {
- service: 'loadBalance',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('LOADBALANCE');
- },
-
- namespace: 'QCE/LOADBALANCE',
- href: 'https://cloud.tencent.com/document/product/248/51901',
-
- get groupName() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('multi_scene'), ")");
- }
-
-}, {
- service: 'vClb',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('lite'), ")");
- },
-
- namespace: 'QCE/V_CLB',
- href: 'https://cloud.tencent.com/document/product/248/51901',
-
- get groupName() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_load_balancer'), "(").concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('lite'), ")");
- }
-
-}, {
- service: 'cdn',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CDN');
- },
-
- namespace: 'QCE/CDN',
- hideRegion: true,
- href: 'https://cloud.tencent.com/document/product/248/50386',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('content_delivery_network');
- }
-
-}, {
- service: 'cdnProvince',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CDN_LOG_DATA');
- },
-
- namespace: 'QCE/CDN_LOG_DATA',
- hideRegion: true,
- href: 'https://cloud.tencent.com/document/product/248/50388',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('content_delivery_network');
- }
-
-}, {
- service: 'ovCdn',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('OV_CDN');
- },
-
- namespace: 'QCE/OV_CDN',
- hideRegion: true,
- href: 'https://cloud.tencent.com/document/product/248/50387',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('content_delivery_network');
- }
-
-}, {
- service: 'scf',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('SCF_V2');
- },
-
- namespace: 'QCE/SCF_V2',
- href: 'https://cloud.tencent.com/document/product/248/45130'
-}, {
- service: 'cfs',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CFS');
- },
-
- namespace: 'QCE/CFS',
- href: 'https://cloud.tencent.com/document/product/248/45143'
-}, {
- service: 'cos',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('COS');
- },
-
- namespace: 'QCE/COS',
- href: 'https://cloud.tencent.com/document/product/248/45140'
-}, {
- service: 'ckafka',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CKAFKA');
- },
-
- namespace: 'QCE/CKAFKA',
- href: 'https://cloud.tencent.com/document/product/248/45121',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue');
- }
-
-}, {
- service: 'cmq',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CMQ');
- },
-
- namespace: 'QCE/CMQ',
- href: 'https://cloud.tencent.com/document/product/248/45114',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue');
- }
-
-}, {
- service: 'cmqTopic',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CMQTOPIC');
- },
-
- namespace: 'QCE/CMQTOPIC',
- href: 'https://cloud.tencent.com/document/product/248/45113',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue');
- }
-
-}, {
- service: 'tdmq',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMQ');
- },
-
- namespace: 'QCE/TDMQ',
- href: 'https://cloud.tencent.com/document/product/248/51450',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue');
- }
-
-}, {
- service: 'tdmqRocketmq',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMQ_ROCKETMQ');
- },
-
- namespace: 'QCE/ROCKETMQ',
- href: 'https://cloud.tencent.com/document/product/248/51450',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue');
- }
-
-}, {
- service: 'tdmqRabbitmq',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TDMQ_RABBITMQ');
- },
-
- namespace: 'QCE/RABBITMQ',
- href: 'https://cloud.tencent.com/document/product/248/51450',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('message_queue');
- }
-
-}, {
- service: 'dcx',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('DCX');
- },
-
- namespace: 'QCE/DCX',
- href: 'https://cloud.tencent.com/document/product/248/45101',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('direct_connect');
- }
-
-}, {
- service: 'dc',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('DC');
- },
-
- namespace: 'QCE/DC',
- href: 'https://cloud.tencent.com/document/product/248/45102',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('direct_connect');
- }
-
-}, {
- service: 'cpm',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CPM');
- },
-
- namespace: 'QCE/CPM',
- href: 'https://cloud.tencent.com/document/product/248/45881',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine');
- }
-
-}, {
- service: 'bmPcx',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BM_PCX');
- },
-
- namespace: 'QCE/BM_PCX',
- href: 'https://cloud.tencent.com/document/product/248/45884',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine');
- }
-
-}, {
- service: 'bmLb',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BM_LB');
- },
-
- namespace: 'QCE/BM_LB',
- href: 'https://cloud.tencent.com/document/product/248/45886',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine');
- }
-
-}, {
- service: 'bmIntraLb',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BM_INTRA_LB');
- },
-
- namespace: 'QCE/BM_INTRA_LB',
- href: 'https://cloud.tencent.com/document/product/248/45885',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('cloud_physical_machine');
- }
-
-}, {
- service: 'ces',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CES');
- },
-
- namespace: 'QCE/CES',
- href: 'https://cloud.tencent.com/document/product/248/45129'
-}, {
- service: 'mrHDFS',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(HDFS)");
- },
-
- namespace: 'QCE/TXMR_HDFS',
- href: 'https://cloud.tencent.com/document/product/248/44797',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrHBASE',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(HBASE)");
- },
-
- namespace: 'QCE/TXMR_HBASE',
- href: 'https://cloud.tencent.com/document/product/248/45567',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrHIVE',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(HIVE)");
- },
-
- namespace: 'QCE/TXMR_HIVE',
- href: 'https://cloud.tencent.com/document/product/248/45569',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrNODE',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(NODE)");
- },
-
- namespace: 'QCE/TXMR_NODE',
- href: 'https://cloud.tencent.com/document/product/248/45570',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrPRESTO',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(PRESTO)");
- },
-
- namespace: 'QCE/TXMR_PRESTO',
- href: 'https://cloud.tencent.com/document/product/248/45571',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrSPARK',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(SPARK)");
- },
-
- namespace: 'QCE/TXMR_SPARK',
- href: 'https://cloud.tencent.com/document/product/248/45572',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrYARN',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(YARN)");
- },
-
- namespace: 'QCE/TXMR_YARN',
- href: 'https://cloud.tencent.com/document/product/248/45573',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'mrZOOKEEPER',
-
- get label() {
- return "".concat(Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce'), "(ZOOKEEPER)");
- },
-
- namespace: 'QCE/TXMR_ZOOKEEPER',
- href: 'https://cloud.tencent.com/document/product/248/45574',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('elastic_mapReduce');
- }
-
-}, {
- service: 'cbs',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('BLOCK_STORAGE');
- },
-
- namespace: 'QCE/BLOCK_STORAGE',
- href: 'https://cloud.tencent.com/document/product/362/2345'
-}, {
- service: 'apigateway',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('APIGATEWAY');
- },
-
- namespace: 'QCE/APIGATEWAY',
- href: 'https://cloud.tencent.com/document/product/248/45127'
-}, {
- service: 'qaap',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('QAAP');
- },
-
- namespace: 'QCE/QAAP',
- href: 'https://cloud.tencent.com/document/product/608'
-}, {
- service: 'ecm',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECM');
- },
-
- hideRegion: true,
- namespace: 'QCE/ECM',
- href: 'https://cloud.tencent.com/document/product/1108',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('edge_computing_machine');
- }
-
-}, {
- service: 'ecmBlockStorage',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECM_BLOCK_STORAGE');
- },
-
- hideRegion: true,
- namespace: 'QCE/ECM_BLOCK_STORAGE',
- href: 'https://cloud.tencent.com/document/product/1108',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('edge_computing_machine');
- }
-
-}, {
- service: 'ecmLb',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECM_LB');
- },
-
- hideRegion: true,
- namespace: 'QCE/ECM_LB',
- href: 'https://cloud.tencent.com/document/product/1108',
-
- get groupName() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('edge_computing_machine');
- }
-
-}, {
- service: 'gse',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('GSE');
- },
-
- namespace: 'QCE/GSE',
- href: 'https://cloud.tencent.com/document/product/1165'
-}, {
- service: 'cls',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('CLS');
- },
-
- namespace: 'QCE/CLS',
- href: 'https://cloud.tencent.com/document/product/614'
-}, {
- service: 'tke',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('TKE');
- },
-
- namespace: 'QCE/TKE2',
- href: 'https://cloud.tencent.com/document/product/457'
-}, {
- service: 'ecdn',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('ECDN');
- },
-
- namespace: 'QCE/DSA',
- href: 'https://cloud.tencent.com/document/product/570'
-}, // {
-// service: 'lighthouse',
-// label: '轻量应用服务器(LIGHTHOUSE)',
-// namespace: 'QCE/LIGHTHOUSE',
-// href: 'https://cloud.tencent.com/document/product/1207',
-// },
-// {
-// service: 'tsf',
-// label: ' 微服务平台(TSF)',
-// namespace: 'QCE/TSF',
-// href: 'https://cloud.tencent.com/document/product/649',
-// },
-{
- service: 'waf',
-
- get label() {
- return Object(_locale__WEBPACK_IMPORTED_MODULE_0__["t"])('WAF');
- },
-
- // hideRegion: true,
- namespace: 'QCE/WAF',
- href: 'https://cloud.tencent.com/document/product/627'
-}];
-var Datasources = {};
-var InitStates = {};
-var InstanceAliasList = {};
-var GetInstanceQueryParams = {};
-/**
- * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射
- */
-
-var hackModuleName = {
- // lb_loadBalance: 'loadBalance',
- postgresql: 'postgres',
- mongodb: 'mongoDB',
- clb: ['lbPrivate', 'lbPublic', 'loadBalance'],
- mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER']
-};
-
-var requireModule = __webpack_require__("./datasource/tc_monitor sync recursive ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$");
-
-requireModule.keys().forEach(function (filePath) {
- var _a;
-
- var _b = filePath.split('/'),
- moduleName = _b[1],
- fileName = _b[2]; // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码
-
-
- moduleName = (_a = hackModuleName[moduleName]) !== null && _a !== void 0 ? _a : moduleName; // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理
-
- [].concat(moduleName).forEach(function (module) {
- var _a, _b; // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应
-
-
- var service = module.replace(/_([a-zA-Z])/g, function (_, b) {
- return b.toUpperCase();
- });
- var prefix = service.toUpperCase(); // 命名规则
- // datasource
-
- if (fileName === 'datasource.ts') {
- var Cls_1 = __webpack_require__("./datasource/tc_monitor sync recursive ^.*$")("".concat(filePath))["default"]; // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource
-
-
- Datasources["".concat(prefix, "Datasource")] =
- /** @class */
- function () {
- function class_1() {
- var params = [];
-
- for (var _i = 0; _i < arguments.length; _i++) {
- params[_i] = arguments[_i];
- }
-
- var target = new (Cls_1.bind.apply(Cls_1, __spreadArray(__spreadArray([void 0], params, false), [service], false)))();
- target.service = service; // eslint-disable-next-line no-constructor-return
-
- return target;
- }
-
- return class_1;
- }();
- } // query
-
-
- if (fileName === 'query.ts') {
- __webpack_require__("./datasource/tc_monitor sync recursive ^.*$")("".concat(filePath));
- } // query_def
-
-
- if (fileName === 'query_def.ts') {
- var alias = "".concat(prefix, "InstanceAliasList");
- var getParams = "".concat(prefix, "GetInstanceQueryParams");
-
- var target = __webpack_require__("./datasource/tc_monitor sync recursive ^.*$")("".concat(filePath));
-
- InitStates[service] = target["default"]; // FIXME: 这里需不需要深拷贝?
-
- InstanceAliasList[alias] = (_a = target[alias]) !== null && _a !== void 0 ? _a : target['InstanceAliasList'];
- GetInstanceQueryParams[getParams] = (_b = target[getParams]) !== null && _b !== void 0 ? _b : target['GetInstanceQueryParams'];
- }
- });
-});
- // console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/lb/datasource.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/lb/datasource.ts ***!
- \************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lb/query_def.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var SCFDatasource =
-/** @class */
-function (_super) {
- __extends(SCFDatasource, _super);
-
- function SCFDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/LB';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["LBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["LBInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'AddressId'
- };
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeAddresses',
- responseField: 'AddressSet',
- interceptor: {
- request: function request(params) {
- var Filters = params.Filters;
-
- if (!Filters) {
- params.Filters = [];
- }
-
- params.Filters.push({
- Name: 'address-type',
- Values: ['EIP']
- });
- return params;
- } // 设置一些请求参数的 默认值
-
- }
- };
- return _this;
- }
-
- SCFDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.filter(function (item) {
- var _a, _b, _c;
- /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */
-
-
- return (_c = (_b = (_a = item.Dimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Dimensions) === null || _c === void 0 ? void 0 : _c.includes('eip');
- })];
- }
- });
- });
- };
-
- return SCFDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_0__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (SCFDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/lb/query.ts":
-/*!*******************************************!*\
- !*** ./datasource/tc_monitor/lb/query.ts ***!
- \*******************************************/
-/*! exports provided: LBQueryCtrl, lbQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBQueryCtrl", function() { return LBQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lbQuery", function() { return lbQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lb/query_def.ts");
-
-
-
-var LBQueryCtrl =
-/** @class */
-function () {
- LBQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function LBQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- // $scope.LBQueryDescriptor = LBQueryDescriptor;
- $scope.LBFilterDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["LBFilterDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- case 'zone':
- return $scope.getZones();
-
- default:
- return [];
- }
- };
-
- $scope.getZones = function () {
- if (!$scope.region) {
- return [];
- }
-
- return $scope.datasource.getZones('cvm', $scope.region);
- };
-
- $scope.init();
- }
-
- return LBQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function lbQuery() {
- return {
- template: template,
- controller: LBQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('lbQuery', lbQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/lb/query_def.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/lb/query_def.ts ***!
- \***********************************************/
-/*! exports provided: LBFilterDescriptor, default, LBInstanceAliasList, LBInvalidDemensions, templateQueryIdMap, LBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBFilterDescriptor", function() { return LBFilterDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBInstanceAliasList", function() { return LBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBInvalidDemensions", function() { return LBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var _a;
-
- // export const LBQueryDescriptor = [{
-// key: 'Offset',
-// enDescriptor: 'Offset',
-// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
-// link: '',
-// type: 'inputnumber',
-// min: 0,
-// },
-// {
-// key: 'Limit',
-// enDescriptor: 'Limit',
-// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000',
-// link: '',
-// type: 'inputnumber',
-// min: 1,
-// max: 2000,
-// },
-// {
-// key: 'AddressId',
-// enDescriptor: 'Address Id',
-// cnDescriptor: '标识 EIP 的唯一 ID ',
-// link: '',
-// type: 'inputmulti',
-// }
-// ];
-
-var LBFilterDescriptor = [{
- key: 'address-id',
- enDescriptor: 'Address ID',
- cnDescriptor: 'EIP 的唯一 ID ',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'address-name',
- enDescriptor: 'Address Name',
- cnDescriptor: 'EIP 名称 ',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'address-ip',
- enDescriptor: 'Address IP',
- cnDescriptor: 'EIP 的 IP 地址 ',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'address-status',
- enDescriptor: 'Address Status',
- cnDescriptor: 'EIP 的状态',
- link: '',
- type: 'select',
- list: [{
- value: 'CREATING',
- text: 'CREATING'
- }, {
- value: 'BINDING',
- text: 'BINDING'
- }, {
- value: 'BIND',
- text: 'BIND'
- }, {
- value: 'UNBINDING',
- text: 'UNBINDING'
- }, {
- value: 'UNBIND',
- text: 'UNBIND'
- }, {
- value: 'OFFLINING',
- text: 'OFFLINING'
- }, {
- value: 'BIND_ENI',
- text: 'BIND_ENI'
- }]
-}, {
- key: 'instance-id',
- enDescriptor: 'Instance ID',
- cnDescriptor: '实例ID ',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'private-ip-address',
- enDescriptor: 'Private IP Address',
- cnDescriptor: 'EIP 绑定的内网 IP',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'network-interface-id',
- enDescriptor: 'Network Interface ID',
- cnDescriptor: 'EIP 绑定的弹性网卡 ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'is-arrears',
- enDescriptor: 'Arrears',
- cnDescriptor: 'EIP 是否欠费 ',
- link: '',
- type: 'select',
- list: [{
- text: '正常',
- value: 'FALSE'
- }, {
- text: '欠费',
- value: 'TRUE'
- }]
-}]; // const LBFilterFields = {
-// "address-id": [],
-// "address-name": [],
-// "address-ip": [],
-// "address-status ": [],
-// "instance-id ": [],
-// "private-ip-address": [],
-// "network-interface-id ": [],
-// "is-arrears ": [],
-// };
-
-var InstanceKey = 'AddressIds';
-var LB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'AddressId',
- version: '',
- queries: (_a = {
- Offset: 0,
- Limit: 20
- }, _a[InstanceKey] = [''], _a.Filters = {
- 'address-id': [],
- 'address-name': [],
- 'address-ip': [],
- 'address-status ': [],
- 'instance-id ': [],
- 'private-ip-address': [],
- 'network-interface-id ': [],
- 'is-arrears ': []
- }, _a)
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries[InstanceKey])) {
- var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries[InstanceKey]);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) {
- params[InstanceKey] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-var LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp']; // 维度eip对应于实例中的哪个字段?映射
-
-var LBInvalidDemensions = {
- eip: 'AddressIp'
-};
-var templateQueryIdMap = {
- instance: 'AddressId'
-}; // 从monitor维度到LB实例对应字段的映射
-// export const metric2Instance = {
-// functionName: 'FunctionName',
-// namespace: 'Namespace'
-// };
-
-/* harmony default export */ __webpack_exports__["default"] = (LB_STATE);
- // monitor监控数据默认支持的维度
-// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version'];
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/lighthouse/datasource.ts":
-/*!********************************************************!*\
- !*** ./datasource/tc_monitor/lighthouse/datasource.ts ***!
- \********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lighthouse/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var LighthouseDatasource =
-/** @class */
-function (_super) {
- __extends(LighthouseDatasource, _super);
-
- function LighthouseDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/LIGHTHOUSE';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["LIGHTHOUSEInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["LighthouseInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'lighthouse',
- action: 'DescribeInstances',
- responseField: 'InstanceSet'
- };
- return _this;
- }
-
- LighthouseDatasource.prototype.getRegions = function () {
- return this.doRequest({
- url: this.url + '/api',
- data: {
- Product: 'lighthouse'
- }
- }, 'api', {
- action: 'DescribeRegions'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.RegionSet || [], function (item) {
- return {
- text: item.RegionName,
- value: item.Region,
- RegionState: item.RegionState
- };
- }), function (item) {
- return item.RegionState === 'AVAILABLE';
- });
- });
- };
-
- LighthouseDatasource.prototype.getZones = function (region) {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'api');
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Product: 'lighthouse'
- }
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeZones'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(response.ZoneSet || [], function (item) {
- return {
- text: item.ZoneName,
- value: item.Zone,
- ZoneState: item.ZoneState,
- Zone: item.Zone
- };
- }), function (item) {
- return item.ZoneState === 'AVAILABLE';
- });
- });
- };
-
- LighthouseDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_1__["modifyDimensons"])(item);
- }))];
- }
- });
- });
- };
-
- return LighthouseDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (LighthouseDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/lighthouse/query.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/lighthouse/query.ts ***!
- \***************************************************/
-/*! exports provided: LighthouseQueryCtrl, lighthouseQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LighthouseQueryCtrl", function() { return LighthouseQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lighthouseQuery", function() { return lighthouseQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/lighthouse/query_def.ts");
-
-
-
-var LighthouseQueryCtrl =
-/** @class */
-function () {
- LighthouseQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function LighthouseQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.LighthouseFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["LighthouseFilterFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- case 'zone':
- return $scope.getZones();
-
- default:
- return [];
- }
- };
-
- $scope.getZones = function () {
- if (!$scope.region) {
- return [];
- }
-
- return $scope.datasource.getZones('lighthouse', $scope.region);
- };
-
- $scope.init();
- }
-
- return LighthouseQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function lighthouseQuery() {
- return {
- template: template,
- controller: LighthouseQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('lighthouseQuery', lighthouseQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/lighthouse/query_def.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/lighthouse/query_def.ts ***!
- \*******************************************************/
-/*! exports provided: default, LighthouseFilterFieldsDescriptor, LIGHTHOUSEInstanceAliasList, LighthouseInvalidDemensions, templateQueryIdMap, modifyDimensons, LIGHTHOUSEGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LighthouseFilterFieldsDescriptor", function() { return LighthouseFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIGHTHOUSEInstanceAliasList", function() { return LIGHTHOUSEInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LighthouseInvalidDemensions", function() { return LighthouseInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LIGHTHOUSEGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var LighthouseStateType = [{
- text: '创建中',
- value: 'PENDING'
-}, {
- text: '创建失败',
- value: 'LAUNCH_FAILED'
-}, {
- text: '运行中',
- value: 'RUNNING'
-}, {
- text: '关机',
- value: 'STOPPED'
-}, {
- text: '开机中',
- value: 'STARTING'
-}, {
- text: '关机中',
- value: 'STOPPING'
-}, {
- text: '重启中',
- value: 'REBOOTING'
-}, {
- text: '停止待销毁',
- value: 'SHUTDOWN'
-}, {
- text: '销毁中',
- value: 'TERMINATING'
-}];
-var LighthouseFilterFields = {
- zone: [],
- 'instance-name': [],
- 'instance-state': {},
- 'private-ip-address': [],
- 'public-ip-address': []
-};
-var LighthouseFilterFieldsDescriptor = [{
- key: 'instance-name',
- enDescriptor: 'Instance Name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'private-ip-address',
- enDescriptor: 'Private IP Address',
- cnDescriptor: '实例主网卡的内网IP',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'public-ip-address',
- enDescriptor: 'Public IP Address',
- cnDescriptor: '实例主网卡的公网IP',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'zone',
- enDescriptor: 'Zone',
- cnDescriptor: '可用区',
- link: '',
- type: 'dropdownmulti'
-}, {
- key: 'instance-state',
- enDescriptor: 'Instance State',
- cnDescriptor: '实例状态',
- link: '',
- type: 'select',
- list: LighthouseStateType
-}];
-var LIGHTHOUSE_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: {
- Limit: 20,
- Offset: 0,
- instanceIdsChecked: false,
- filtersChecked: false,
- InstanceIds: [''],
- Filters: __assign({}, LighthouseFilterFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.InstanceIds)) {
- var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.InstanceIds);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) {
- params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-var LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];
-var LighthouseInvalidDemensions = {
- instanceid: 'InstanceId'
-};
-var templateQueryIdMap = {
- instance: 'InstanceId'
-};
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['InstanceId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (LIGHTHOUSE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/mongodb/datasource.ts":
-/*!*****************************************************!*\
- !*** ./datasource/tc_monitor/mongodb/datasource.ts ***!
- \*****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mongodb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-
-
-
-
-
-
-var MONGODBDatasource =
-/** @class */
-function (_super) {
- __extends(MONGODBDatasource, _super);
-
- function MONGODBDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/CMONGO';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["MONGODBInstanceAliasList"];
- _this.ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName'];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_1__["queryMonitorExtraConfg"];
- _this.InstanceReqConfig = {
- service: 'mongodb',
- action: 'DescribeDBInstances',
- responseField: 'InstanceDetails'
- };
- return _this;
- }
-
- MONGODBDatasource.prototype.getInvalidDimensions = function (selfIns, target) {
- if (target.node && target.node !== '') {
- return {
- target: 'Node'
- };
- }
-
- if (target.replica && target.replica !== '') {
- return {
- target: 'Replica'
- };
- }
-
- return _query_def__WEBPACK_IMPORTED_MODULE_1__["MONGODBInvalidDemensions"];
- };
-
- MONGODBDatasource.prototype.formatVariableDisplay = function (data, displayTpl, alias, aliasList) {
- var _this = this;
-
- if (displayTpl) {
- return displayTpl.replace(/\$\{(\w+)\}/g, function (a, b) {
- if (!b || !aliasList.includes(b)) {
- return '';
- }
-
- return _this.getAliasValue(data, b);
- });
- }
-
- return this.getAliasValue(data, alias);
- };
-
- MONGODBDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var display, res, replicaalias_1, result, res, replicasetid, targetReplica_1, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- display = query.display;
- if (!(action === 'DescribeReplicas')) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getInstances(region, {
- InstanceIds: [instance[this.templateQueryIdMap.instance]]
- })];
-
- case 1:
- res = _a.sent()[0];
- replicaalias_1 = query.replicaalias;
- replicaalias_1 = this.ReplicaAliasList.includes(replicaalias_1) ? replicaalias_1 : this.templateQueryIdMap.replica;
- result = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(res, 'ReplicaSets', []), function (item) {
- var replicaAlias = _this.formatVariableDisplay(item, display, replicaalias_1, _this.ReplicaAliasList);
-
- item._InstanceAliasValue = replicaAlias || item[_this.templateQueryIdMap.replica];
- return {
- text: item.ReplicaSetId,
- value: item.ReplicaSetId
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.queryMonitorExtraConfg.Replica.dim_KeyInStorage, lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(res, 'ReplicaSets', []))];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- if (!(action === 'DescribeReplicaNodes')) return [3
- /*break*/
- , 6];
- return [4
- /*yield*/
- , this.getInstances(region, {
- InstanceIds: [instance[this.templateQueryIdMap.instance]]
- })];
-
- case 4:
- res = _a.sent()[0];
- replicasetid = query.replicasetid;
- targetReplica_1 = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.find(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(res, 'ReplicaSets', []), {
- ReplicaSetId: this.getVariable(replicasetid)
- });
- result = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.times(targetReplica_1.SecondaryNum, function (index) {
- var nodeId = "".concat(targetReplica_1.ReplicaSetId, "-node-slave").concat(index);
- return {
- text: nodeId,
- value: nodeId
- };
- });
-
- if (targetReplica_1) {
- result = __spreadArray([{
- text: "".concat(targetReplica_1.ReplicaSetId, "-node-primary"),
- value: "".concat(targetReplica_1.ReplicaSetId, "-node-primary")
- }], result, true);
- }
-
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.queryMonitorExtraConfg.Node.dim_KeyInStorage, result.map(function (item) {
- return {
- NodeId: item.value,
- _InstanceAliasValue: item.value
- };
- }))];
-
- case 5:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 6:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return MONGODBDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (MONGODBDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/mongodb/query.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/mongodb/query.ts ***!
- \************************************************/
-/*! exports provided: MongoDBQueryCtrl, mongodbQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MongoDBQueryCtrl", function() { return MongoDBQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mongodbQuery", function() { return mongodbQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mongodb/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-
-
-
-
-
-
-var MongoDBQueryCtrl =
-/** @class */
-function () {
- MongoDBQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function MongoDBQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.MONGODBFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["MONGODBFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- };
-
- $scope.onInstanceChange = function (n, o) {
- if (n === o) {
- return;
- }
-
- $scope.target.replica = '';
- $scope.target.node = '';
- };
-
- $scope.getVariableId = function (data, type) {
- var variableData = data;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])('QCE/CMONGO');
- variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);
-
- if (!variableData) {
- return '';
- }
-
- try {
- variableData = JSON.parse(variableData)[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"][type]];
- } catch (error) {// console.log();
- }
-
- return variableData;
- };
-
- $scope.getExtraDropdown = function (target, type) {
- return __awaiter(_this, void 0, void 0, function () {
- var _a, instance, replica, service, instanceId, region, res, replicaId, targetReplica_1, options;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = $scope.target, instance = _a.instance, replica = _a.replica;
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])('QCE/CMONGO');
- instanceId = $scope.getVariableId(instance, 'instance');
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getInstances')(region, {
- InstanceIds: [instanceId]
- })];
-
- case 1:
- res = _b.sent()[0];
-
- if (type === 'replica') {
- return [2
- /*return*/
- , Object(lodash__WEBPACK_IMPORTED_MODULE_1__["map"])(Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(res, 'ReplicaSets', []), function (item) {
- item._InstanceAliasValue = item.ReplicaSetId;
- return {
- text: item.ReplicaSetId,
- value: JSON.stringify(item)
- };
- })];
- }
-
- if (type === 'node' && replica !== '') {
- replicaId = $scope.getVariableId(replica, 'replica');
- targetReplica_1 = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["find"])(Object(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(res, 'ReplicaSets', []), {
- ReplicaSetId: replicaId
- });
- options = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["times"])(targetReplica_1.SecondaryNum, function (index) {
- var nodeId = "".concat(targetReplica_1.ReplicaSetId, "-node-slave").concat(index);
- return {
- text: nodeId,
- value: JSON.stringify({
- NodeId: nodeId,
- _InstanceAliasValue: "".concat(targetReplica_1.ReplicaSetId, " - ").concat(nodeId)
- })
- };
- });
- return [2
- /*return*/
- , __spreadArray([{
- text: "".concat(targetReplica_1.ReplicaSetId, "-node-primary"),
- value: JSON.stringify({
- NodeId: "".concat(targetReplica_1.ReplicaSetId, "-node-primary"),
- _InstanceAliasValue: "".concat(targetReplica_1.ReplicaSetId, " - ").concat("".concat(targetReplica_1.ReplicaSetId, "-node-primary"))
- })
- }], options, true)];
- }
-
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return MongoDBQueryCtrl;
-}();
-
-
-var template = "\n\n\n\n\n\n";
-function mongodbQuery() {
- return {
- template: template,
- controller: MongoDBQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- onRefresh: '&',
- onChange: '&'
- },
- link: function link(scope, element, attrs) {
- scope.$watch('target.instance', function (newValue, oldValue) {
- var _a;
-
- (_a = scope.onInstanceChange) === null || _a === void 0 ? void 0 : _a.call(scope, newValue, oldValue);
- });
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('mongodbQuery', mongodbQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/mongodb/query_def.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/mongodb/query_def.ts ***!
- \****************************************************/
-/*! exports provided: default, MONGODBFieldsDescriptor, MONGODBInvalidDemensions, MONGODBInstanceAliasList, templateQueryIdMap, queryMonitorExtraConfg, MONGODBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBFieldsDescriptor", function() { return MONGODBFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBInvalidDemensions", function() { return MONGODBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBInstanceAliasList", function() { return MONGODBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MONGODBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var InstanceTypes = [{
- text: '所有实例',
- value: 0
-}, {
- text: '正式实例',
- value: 1
-}, {
- text: '临时实例',
- value: 2
-}, {
- text: '只读实例',
- value: 3
-}, {
- text: '正式,只读,灾备实例',
- value: -1
-}];
-var ClusterTypes = [{
- text: '副本集实例',
- value: 0
-}, {
- text: '分片实例',
- value: 1
-}, {
- text: '所有实例',
- value: -1
-}];
-var Status = [{
- text: '待初始化',
- value: 0
-}, {
- text: '流程执行中',
- value: 1
-}, {
- text: '实例有效',
- value: 2
-}, {
- text: '实例已过期',
- value: -2
-}];
-var PayMode = [{
- text: '按量计费',
- value: 0
-}, {
- text: '包年包月',
- value: 1
-}, {
- text: '按量包年包月计费',
- value: -1
-}];
-var OrderBy = [{
- text: 'ProjectId',
- value: 'ProjectId'
-}, {
- text: 'InstanceName',
- value: 'InstanceName'
-}, {
- text: 'CreateTime',
- value: 'CreateTime'
-}];
-var OrderByType = [{
- text: '升序',
- value: 'ASC'
-}, {
- text: '降序',
- value: 'DESC'
-}];
-var MongoDBFields = {
- InstanceIds: [],
- InstanceType: {},
- ClusterType: {},
- Status: [],
- VpcId: '',
- SubnetId: '',
- PayMode: {},
- Limit: 20,
- Offset: 0,
- OrderBy: '',
- OrderByType: ''
-};
-var MONGODBFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceIds',
- enDescriptor: 'InstancesIds',
- cnDescriptor: '实例名称',
- type: 'inputmulti'
-}, {
- key: 'InstanceType',
- enDescriptor: 'InstanceType',
- cnDescriptor: '实例类型',
- link: '',
- type: 'select',
- list: InstanceTypes
-}, {
- key: 'ClusterType',
- enDescriptor: 'ClusterType',
- cnDescriptor: '集群类型',
- link: '',
- type: 'select',
- list: ClusterTypes
-}, {
- key: 'Status',
- enDescriptor: 'Status',
- cnDescriptor: '实例状态',
- link: '',
- multiple: true,
- type: 'select',
- list: Status
-}, {
- key: 'VpcId',
- enDescriptor: 'VpcId',
- cnDescriptor: '私有网络的ID',
- link: '',
- type: 'input'
-}, {
- key: 'SubnetId',
- enDescriptor: 'SubnetId',
- cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId',
- link: '',
- type: 'input'
-}, {
- key: 'PayMode',
- enDescriptor: 'PayMode',
- cnDescriptor: '付费类型',
- link: '',
- type: 'select',
- list: PayMode
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderBy
-}, {
- key: 'OrderByType',
- enDescriptor: 'OrderByType',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: OrderByType
-}];
-var MONGODB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: __assign({}, MongoDBFields)
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- // select 单选
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-var MONGODBInstanceAliasList = ['InstanceId', 'InstanceName'];
-var MONGODBInvalidDemensions = {
- target: 'InstanceId'
-};
-var templateQueryIdMap = {
- instance: 'InstanceId',
- replica: 'ReplicaSetId'
-};
-var queryMonitorExtraConfg = {
- Replica: {
- dim_KeyInStorage: 'ReplicaSets',
- dim_KeyInTarget: 'replica',
- dim_KeyInMap: 'ReplicaSetId',
- dim_KeyInIns: 'ReplicaSetId'
- },
- Node: {
- dim_KeyInStorage: 'ReplicaNodeSets',
- dim_KeyInTarget: 'node',
- dim_KeyInMap: 'NodeId',
- dim_KeyInIns: 'NodeId'
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (MONGODB_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/mr/datasource.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/mr/datasource.ts ***!
- \************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mr/query_def.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var MrHdfsDatasource =
-/** @class */
-function (_super) {
- __extends(MrHdfsDatasource, _super);
-
- function MrHdfsDatasource() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
-
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_3__["InvalidDemensions"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_3__["InstanceAliasList"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"];
- _this.extrasAlias = [];
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_3__["keyInStorage"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_3__["queryMonitorExtraConfg"];
- _this.InstanceReqConfig = {
- service: 'emr',
- action: 'DescribeInstances',
- responseField: 'ClusterList',
- interceptor: {
- request: function request(params) {
- return __assign(__assign({}, params), {
- DisplayStrategy: params.DisplayStrategy || 'monitorManage',
- ProjectId: params.ProjectId || -1
- });
- },
- response: function response(data) {
- return data.map(function (_a) {
- var ClusterId = _a.ClusterId,
- ClusterName = _a.ClusterName;
- return {
- ClusterId: ClusterId,
- ClusterName: ClusterName
- };
- });
- }
- }
- };
- return _this;
- }
-
- MrHdfsDatasource.prototype.fetchAllNodes = function (region, params) {
- return __awaiter(this, void 0, void 0, function () {
- var serviceInfo, rs;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GetServiceAPIInfo"])(region, 'emr');
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeClusterNodes'
- });
- }, __assign(__assign({}, params), {
- isOffsetPage: true
- }), 'NodeList')];
-
- case 1:
- rs = _a.sent(); // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip }));
-
- return [2
- /*return*/
- , rs[0]];
- }
- });
- });
- };
-
- MrHdfsDatasource.prototype.fetchMetricData = function (action, region, instance) {
- return __awaiter(this, void 0, void 0, function () {
- var result, _a, resultT;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = action;
-
- switch (_a) {
- case 'DescribeClusterNodes':
- return [3
- /*break*/
- , 1];
- }
-
- return [3
- /*break*/
- , 4];
-
- case 1:
- return [4
- /*yield*/
- , this.fetchAllNodes(region, {
- InstanceId: instance.ClusterId,
- NodeFlag: 'all'
- })];
-
- case 2:
- resultT = _b.sent();
- result = resultT.map(function (item) {
- item._InstanceAliasValue = item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].node];
- return {
- text: item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].node],
- value: item[_query_def__WEBPACK_IMPORTED_MODULE_3__["templateQueryIdMap"].node]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage.node, resultT)];
-
- case 3:
- _b.sent();
-
- return [2
- /*return*/
- , result];
-
- case 4:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return MrHdfsDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (MrHdfsDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/mr/query.ts":
-/*!*******************************************!*\
- !*** ./datasource/tc_monitor/mr/query.ts ***!
- \*******************************************/
-/*! exports provided: MrQueryCtrl, mrQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MrQueryCtrl", function() { return MrQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mrQuery", function() { return mrQuery; });
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/mr/query_def.ts");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1__);
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-var ExtraFields = [{
- label: 'NodeIP',
- field: 'nodeIP'
-}];
-
-var MrQueryCtrl =
-/** @class */
-function () {
- MrQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function MrQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.InstanceQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_0__["InstanceQueryDescriptor"];
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- }; // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }
-
-
- $scope.cacheMap = {};
-
- $scope.getExtraFields = function () {
- var _a;
-
- return Object.keys((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}).some(function (item) {
- return item.startsWith('host4');
- }) ? ExtraFields : []; // return ExtraFields;
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance).ClusterId;
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.onExtraFieldChange = function (field) {
- $scope.onRefresh();
- };
-
- $scope.getExtraDropdown = function (target, field) {
- return __awaiter(_this, void 0, void 0, function () {
- var InstanceId, data, region, fetcher, dataT;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(field === 'nodeIP')) return [3
- /*break*/
- , 3];
- InstanceId = $scope.getInstanceId();
- data = $scope.cacheMap[InstanceId];
- if (!!data) return [3
- /*break*/
- , 2];
- region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region);
- fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes');
- return [4
- /*yield*/
- , fetcher(region, {
- InstanceId: InstanceId,
- NodeFlag: 'all'
- })];
-
- case 1:
- dataT = _a.sent();
- data = dataT.map(function (item) {
- item._InstanceAliasValue = item[_query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"].node];
- return {
- text: item[_query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"].node],
- value: JSON.stringify(item)
- };
- });
- _a.label = 2;
-
- case 2:
- // 缓存
- $scope.cacheMap[InstanceId] = data;
- return [2
- /*return*/
- , data];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return MrQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function mrQuery() {
- return {
- template: template,
- controller: MrQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_1___default.a.directive('mrQuery', mrQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/mr/query_def.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/mr/query_def.ts ***!
- \***********************************************/
-/*! exports provided: InstanceQueryDescriptor, InvalidDemensions, templateQueryIdMap, InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceQueryDescriptor", function() { return InstanceQueryDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidDemensions", function() { return InvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InstanceAliasList", function() { return InstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var InstanceQueryDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceIds',
- enDescriptor: 'InstanceIds',
- cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'OrderField',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: [{
- text: '实例ID',
- value: 'clusterId'
- }, {
- text: '创建时间',
- value: 'addTime'
- }, {
- text: '状态',
- value: 'status'
- }]
-}, {
- key: 'Asc',
- enDescriptor: 'Order Direction',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: [{
- text: '降序',
- value: 0
- }, {
- text: '升序',
- value: 1
- }]
-}, {
- key: 'ProjectId',
- enDescriptor: 'ProjectId',
- cnDescriptor: '实例所属项目ID',
- link: '',
- type: 'inputnumber'
-}, {
- key: 'DisplayStrategy',
- enDescriptor: 'DisplayStrategy',
- cnDescriptor: '集群筛选策略',
- link: '',
- type: 'select',
- list: [{
- text: '未销毁的实例',
- value: 'clusterList'
- }, {
- text: '正常运行的实例',
- value: 'monitorManage'
- }]
-}];
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-} // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key
-
-
-var InvalidDemensions = new Proxy({}, {
- get: function get(target, k, receiver) {
- if (typeof k === 'string') {
- if (k.startsWith('id4')) return 'ClusterId'; // id4****
-
- if (k.startsWith('host4')) return 'Ip'; // host4***
- }
-
- return Reflect.get(target, k, receiver);
- },
- has: function has(target, propKey) {
- return true;
- }
-});
-var templateQueryIdMap = {
- instance: 'ClusterId',
- node: 'Ip'
-}; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- node: 'nodeIP'
-};
-/**
- * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置
- *
- * `key` 的含义:
- * 经过InvalidDemensions处理后的string。topicId => TopicId。
- * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
- *
- * `value` 的含义:
- * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- * 默认取通过InvalidDemsion处理后的key
- * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- * 即:templateQueryIdMap中内容。
- * 联合上面 2 的内容筛选出原始sourceMap
- */
-
-var queryMonitorExtraConfg = {
- Ip: {
- dim_KeyInStorage: keyInStorage.node,
- dim_KeyInTarget: 'nodeIP',
- dim_KeyInMap: templateQueryIdMap.node
- }
-}; // 与名称挂钩的变量
-
-var InstanceAliasList = ['ClusterId', 'ClusterName'];
- // 界面状态模型,default
-
-/* harmony default export */ __webpack_exports__["default"] = ({
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'ClusterId',
- nodeIP: '',
- queries: {
- Offset: 0,
- Limit: 10,
- DisplayStrategy: '',
- OrderBy: {},
- Order: {},
- InstanceIds: [],
- ProjectId: -1,
- OrderField: '',
- Asc: ''
- }
-});
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/nat_gateway/datasource.ts":
-/*!*********************************************************!*\
- !*** ./datasource/tc_monitor/nat_gateway/datasource.ts ***!
- \*********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/nat_gateway/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var NATGATEWAYDatasource =
-/** @class */
-function (_super) {
- __extends(NATGATEWAYDatasource, _super);
-
- function NATGATEWAYDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/NAT_GATEWAY';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["NATGATEWAYInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["NATInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'NatGatewayId'
- };
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeNatGateways',
- responseField: 'NatGatewaySet'
- };
- return _this;
- }
-
- return NATGATEWAYDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (NATGATEWAYDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/nat_gateway/query.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/nat_gateway/query.ts ***!
- \****************************************************/
-/*! exports provided: NatGatewayQueryCtrl, natGatewayQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NatGatewayQueryCtrl", function() { return NatGatewayQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "natGatewayQuery", function() { return natGatewayQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/nat_gateway/query_def.ts");
-
-
-
-var NatGatewayQueryCtrl =
-/** @class */
-function () {
- NatGatewayQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function NatGatewayQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.NATGatewayFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["NATGatewayFilterFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- };
-
- $scope.init();
- }
-
- return NatGatewayQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function natGatewayQuery() {
- return {
- template: template,
- controller: NatGatewayQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('natGatewayQuery', natGatewayQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/nat_gateway/query_def.ts":
-/*!********************************************************!*\
- !*** ./datasource/tc_monitor/nat_gateway/query_def.ts ***!
- \********************************************************/
-/*! exports provided: default, NATGatewayFilterFieldsDescriptor, NATGATEWAYInstanceAliasList, templateQueryIdMap, NATInvalidDemensions, NATGATEWAYGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATGatewayFilterFieldsDescriptor", function() { return NATGatewayFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATGATEWAYInstanceAliasList", function() { return NATGATEWAYInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATInvalidDemensions", function() { return NATInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NATGATEWAYGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName'];
-var NATGatewayFilterFields = {
- 'nat-gateway-id': [],
- 'nat-gateway-name': [],
- 'vpc-id': []
-};
-var NATGatewayFilterFieldsDescriptor = [{
- key: 'nat-gateway-id',
- enDescriptor: 'NatGateway ID',
- cnDescriptor: 'NAT网关统一 ID',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'nat-gateway-name',
- enDescriptor: 'NatGateway Name',
- cnDescriptor: 'NatGateway Name',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'vpc-id',
- enDescriptor: 'VPC ID',
- cnDescriptor: '私有网络 ID',
- link: '',
- type: 'inputmulti'
-}];
-var NATGATEWAY_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'NatGatewayId',
- queries: {
- Limit: 20,
- Offset: 0,
- instanceIdsChecked: false,
- filtersChecked: false,
- NatGatewayIds: [''],
- Filters: __assign({}, NATGatewayFilterFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.NatGatewayIds)) {
- var NatGatewayIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.NatGatewayIds);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(NatGatewayIds).length > 0) {
- params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(NatGatewayIds).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-var templateQueryIdMap = {
- instance: 'NatGatewayId'
-};
-var NATInvalidDemensions = {
- natId: 'NatGatewayId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (NATGATEWAY_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ov_cdn/datasource.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/ov_cdn/datasource.ts ***!
- \****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ov_cdn/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var OVCDNDatasource =
-/** @class */
-function (_super) {
- __extends(OVCDNDatasource, _super);
-
- function OVCDNDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/OV_CDN';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["OVCDNInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["OVCDNInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'Domain'
- };
- _this.InstanceReqConfig = {
- service: 'cdn',
- action: 'DescribeDomains',
- responseField: 'Domains'
- };
- return _this;
- }
-
- OVCDNDatasource.prototype.metricFindQuery = function (query, regex) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), {
- region: 'ap-guangzhou'
- }), regex)];
- });
- });
- };
-
- return OVCDNDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (OVCDNDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ov_cdn/query.ts":
-/*!***********************************************!*\
- !*** ./datasource/tc_monitor/ov_cdn/query.ts ***!
- \***********************************************/
-/*! exports provided: OVCDNQueryCtrl, ovCdnQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNQueryCtrl", function() { return OVCDNQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ovCdnQuery", function() { return ovCdnQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/ov_cdn/query_def.ts");
-
-
-
-var OVCDNQueryCtrl =
-/** @class */
-function () {
- OVCDNQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function OVCDNQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.OVCDNFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["OVCDNFilterFieldsDescriptor"];
- }; // $scope.onChecked = (srcField, dstField) => {
- // if ($scope.target.queries[srcField] === true) {
- // $scope.target.queries[dstField] = false;
- // }
- // $scope.onChange();
- // };
- // $scope.getDropdown = (field) => {
- // switch (field) {
- // case 'zone':
- // return $scope.getZones();
- // default:
- // return [];
- // }
- // };
- // $scope.getZones = () => {
- // if (!$scope.region) {
- // return [];
- // }
- // return $scope.datasource.getZones('cvm', $scope.region);
- // };
-
-
- $scope.init();
- }
-
- return OVCDNQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function ovCdnQuery() {
- return {
- template: template,
- controller: OVCDNQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('ovCdnQuery', ovCdnQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/ov_cdn/query_def.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/ov_cdn/query_def.ts ***!
- \***************************************************/
-/*! exports provided: default, OVCDNFilterFieldsDescriptor, OVCDNInstanceAliasList, templateQueryIdMap, OVCDNInvalidDemensions, OVCDNGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNFilterFieldsDescriptor", function() { return OVCDNFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNInstanceAliasList", function() { return OVCDNInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNInvalidDemensions", function() { return OVCDNInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OVCDNGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var CDNFilterFields = {
- origin: [],
- domain: [],
- resourceId: [],
- status: [],
- serviceType: [],
- projectId: [],
- domainType: [],
- fullUrlCache: [],
- https: [],
- originPullProtocol: [],
- tagKey: []
-};
-var OVCDNFilterFieldsDescriptor = [{
- key: 'origin',
- enDescriptor: 'origin',
- cnDescriptor: '主源站',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'domain',
- enDescriptor: 'domain',
- cnDescriptor: '域名',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'resourceId',
- enDescriptor: 'resourceId',
- cnDescriptor: '域名id',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'status',
- enDescriptor: 'status',
- cnDescriptor: '域名状态',
- link: '',
- type: 'select',
- list: [{
- text: 'online',
- value: 'online'
- }, {
- text: 'offline',
- value: 'offline'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'serviceType',
- enDescriptor: 'serviceType',
- cnDescriptor: '业务类型',
- link: '',
- type: 'select',
- list: [{
- text: 'web',
- value: 'web'
- }, {
- text: 'download',
- value: 'download'
- }, {
- text: 'media',
- value: 'media'
- }]
-}, {
- key: 'projectId',
- enDescriptor: 'projectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputNumbermulti'
-}, {
- key: 'domainType',
- enDescriptor: 'domainType',
- cnDescriptor: '主源站类型',
- link: '',
- type: 'select',
- list: [{
- text: '自有源',
- value: 'cname'
- }, {
- text: 'cos接入',
- value: 'cos'
- }]
-}, {
- key: 'fullUrlCache',
- enDescriptor: 'fullUrlCache',
- cnDescriptor: '全路径缓存',
- link: '',
- type: 'select',
- list: [{
- text: '打开',
- value: 'on'
- }, {
- text: '关闭',
- value: 'off'
- }]
-}, {
- key: 'https',
- enDescriptor: 'https',
- cnDescriptor: '是否配置https',
- link: '',
- type: 'select',
- list: [{
- text: 'on',
- value: 'on'
- }, {
- text: 'off',
- value: 'off'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'originPullProtocol',
- enDescriptor: 'originPullProtocol',
- cnDescriptor: '回源协议类型',
- link: '',
- type: 'select',
- list: [{
- text: 'http',
- value: 'http'
- }, {
- text: 'follow',
- value: 'follow'
- }, {
- text: 'https',
- value: 'https'
- }]
-}, {
- key: 'tagKey',
- enDescriptor: 'tagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputmulti'
-}];
-var OVCDN_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'Domain',
- queries: {
- Limit: 20,
- Offset: 0,
- Filters: __assign({}, CDNFilterFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Value: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
-
- return params;
-}
-
-var OVCDNInstanceAliasList = ['Domain', 'ResourceId'];
-var OVCDNInvalidDemensions = {
- projectId: 'ProjectId',
- domain: 'Domain'
-};
-var templateQueryIdMap = {
- instance: 'Domain'
-};
-/* harmony default export */ __webpack_exports__["default"] = (OVCDN_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/pcx/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/pcx/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/pcx/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["PCXInstanceAliasList"];
- _this.InvalidDimensions = {};
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'xx',
- action: 'xx',
- responseField: 'xx'
- };
- return _this;
- }
-
- DCDatasource.prototype.getInstances = function (region, params) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- if (params === void 0) {
- params = {};
- }
-
- params = __assign({
- offset: 0,
- limit: 50
- }, params);
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'pcx');
- return this.doRequestV2({
- url: this.url + serviceInfo.path,
- data: params
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeVpcPeeringConnections'
- }).then(function (response) {
- return response.data || [];
- });
- };
- /**
- * 模板变量中获取全量的 PCX 实例列表
- * @param region 地域信息
- */
-
-
- DCDatasource.prototype.getVariableInstances = function (region, query) {
- var _this = this;
-
- var result = [];
-
- var params = __assign({
- Offset: 0,
- Limit: 50
- }, query);
-
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'pcx');
- return this.doRequestV2({
- url: this.url + serviceInfo.path,
- data: params
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeVpcPeeringConnections'
- }).then(function (response) {
- result = response.data || [];
- var total = response.totalCount || 0;
-
- if (result.length >= total) {
- return result;
- } else {
- var param = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["SliceLength"])(total, 50);
- var promises_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(param, function (item) {
- promises_1.push(_this.getInstances(region, item));
- });
-
- return Promise.all(promises_1).then(function (responses) {
- lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(responses, function (item) {
- result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(result, item);
- });
-
- return result;
- })["catch"](function (error) {
- return result;
- });
- }
- });
- };
-
- DCDatasource.prototype.getVpcId = function (region, params) {
- if (params === void 0) {
- params = {};
- }
-
- params = __assign({
- Offset: 0,
- Limit: 20
- }, params); // TODO 等待腾讯云接口查问题
-
- params.Offset = String(params.Offset);
- params.Limit = String(params.Limit);
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'vpc');
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: params
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeVpcs'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.VpcSet || [], function (item) {
- return {
- text: item.VpcId,
- value: item.VpcId
- };
- });
- });
- };
-
- DCDatasource.prototype.getVpcIds = function (region) {
- var _this = this;
-
- var result = [];
- var params = {
- Offset: 0,
- Limit: 100
- }; // TODO 等待腾讯云接口查问题
-
- params.Offset = String(params.Offset);
- params.Limit = String(params.Limit);
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'vpc');
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: params
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeVpcs'
- }).then(function (response) {
- result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.VpcSet || [], function (item) {
- return {
- text: item.VpcId,
- value: item.VpcId
- };
- });
- var total = response.TotalCount || 0;
-
- if (result.length >= total) {
- return result;
- } else {
- var param = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["SliceLength"])(total, 100);
- var promises_2 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(param, function (item) {
- promises_2.push(_this.getVpcId(region, item));
- });
-
- return Promise.all(promises_2).then(function (responses) {
- lodash__WEBPACK_IMPORTED_MODULE_2___default.a.forEach(responses, function (item) {
- result = lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(result, item);
- });
-
- return result;
- })["catch"](function (error) {
- return result;
- });
- }
- });
- };
- /**
- * 腾讯云 API 2.0 请求接口
- * @param options
- * @param service
- * @param signObj
- */
-
-
- DCDatasource.prototype.doRequestV2 = function (options, service, signObj) {
- if (signObj === void 0) {
- signObj = {};
- }
-
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetRequestParamsV2"])(options, service, signObj, this.secretId, this.instanceSettings.id, this.backendSrv)];
-
- case 1:
- options = _a.sent();
- return [2
- /*return*/
- , this.backendSrv.datasourceRequest(options).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(response, 'data', {});
- })["catch"](function (error) {
- throw error;
- })];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/pcx/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/pcx/query.ts ***!
- \********************************************/
-/*! exports provided: PCXQueryCtrl, pcxQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXQueryCtrl", function() { return PCXQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pcxQuery", function() { return pcxQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/pcx/query_def.ts");
-
-
-
-var PCXQueryCtrl =
-/** @class */
-function () {
- PCXQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function PCXQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.PCXFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["PCXFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- case 'vpcId':
- return $scope.getVpcIds();
-
- default:
- return [];
- }
- };
-
- $scope.getVpcIds = function () {
- if (!$scope.region) {
- return [];
- }
-
- return $scope.datasource.getVpcIds('pcx', $scope.region);
- };
-
- $scope.init();
- }
-
- return PCXQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function pcxQuery() {
- return {
- template: template,
- controller: PCXQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('pcxQuery', pcxQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/pcx/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/pcx/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, PCXInstanceAliasList, PCXFieldsDescriptor, templateQueryIdMap, namespace, PCXGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXInstanceAliasList", function() { return PCXInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXFieldsDescriptor", function() { return PCXFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PCXGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var namespace = 'QCE/PCX';
-var PCXFields = {
- limit: 20,
- offset: 0,
- peeringConnectionId: '',
- peeringConnectionName: '',
- vpcId: '',
- state: undefined
-};
-var PCX_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'peeringConnectionId',
- queries: __assign({}, PCXFields)
-};
-var StateTypes = [{
- text: '申请中',
- value: 0
-}, {
- text: '连接成功',
- value: 1
-}, {
- text: '已过期',
- value: 2
-}, {
- text: '对端已拒绝',
- value: 3
-}, {
- text: '对端已删除',
- value: 4
-}];
-var PCXFieldsDescriptor = [{
- key: 'offset',
- enDescriptor: 'offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'limit',
- enDescriptor: 'limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 50
-}, {
- key: 'peeringConnectionId',
- enDescriptor: 'PeeringConnection Id',
- cnDescriptor: '私有网络对等连接 ID',
- link: '',
- type: 'input'
-}, {
- key: 'peeringConnectionName',
- enDescriptor: 'PeeringConnection Name',
- cnDescriptor: '对等连接名称',
- link: '',
- type: 'input'
-}, {
- key: 'vpcId',
- enDescriptor: 'vpcId',
- cnDescriptor: '发起方私有网络 ID 值',
- link: 'https://cloud.tencent.com/document/api/215/1372',
- type: 'dropdown'
-}, {
- key: 'state',
- enDescriptor: 'state',
- cnDescriptor: '连接状态',
- link: '',
- type: 'select',
- list: StateTypes
-}];
-var PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName'];
-var templateQueryIdMap = {
- instance: 'peeringConnectionId'
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'limit', 20) || 20;
- params.offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['offset', 'limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (PCX_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/postgresql/datasource.ts":
-/*!********************************************************!*\
- !*** ./datasource/tc_monitor/postgresql/datasource.ts ***!
- \********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/postgresql/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var CDBDatasource =
-/** @class */
-function (_super) {
- __extends(CDBDatasource, _super);
-
- function CDBDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["POSTGRESInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["PostgreInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'postgres',
- action: 'DescribeDBInstances',
- responseField: 'DBInstanceSet'
- };
- _this.MetricReqConfig = {
- resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"]
- };
- return _this;
- }
-
- return CDBDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CDBDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/postgresql/query.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/postgresql/query.ts ***!
- \***************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/postgresql/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/postgresql/query_def.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/postgresql/query_def.ts ***!
- \*******************************************************/
-/*! exports provided: default, PostgresFieldsDescriptor, POSTGRESInstanceAliasList, templateQueryIdMap, modifyDimensons, namespace, queryEditorName, queryEditorConfig, PostgreInvalidDemensions, POSTGRESGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostgresFieldsDescriptor", function() { return PostgresFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "POSTGRESInstanceAliasList", function() { return POSTGRESInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostgreInvalidDemensions", function() { return PostgreInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "POSTGRESGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-
-var namespace = 'QCE/POSTGRES'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'postgresQuery';
-var PostgresFields = {
- 'db-instance-id': [],
- 'db-instance-name': []
-};
-var PostgresFieldsDescriptor = [{
- key: 'db-instance-id',
- enDescriptor: 'DB Instance ID',
- cnDescriptor: 'DB 实例ID',
- link: '',
- type: 'inputMulti',
- min: 0
-}, {
- key: 'db-instance-name',
- enDescriptor: 'DB Instance Name',
- cnDescriptor: 'DB 实例名称',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773',
- namespace: namespace,
- fieldDescriptor: PostgresFieldsDescriptor
-};
-var POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName'];
-var POSTGRES_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'DBInstanceId',
- queries: {
- Limit: 20,
- Offset: 0,
- Filters: __assign({}, PostgresFields)
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['resourceId'];
- });
- return metricTmp;
-}
-
-var PostgreInvalidDemensions = {
- uid: 'DBInstanceId',
- resourceId: 'DBInstanceId'
-};
-var templateQueryIdMap = {
- instance: 'DBInstanceId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (POSTGRES_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/qaap/datasource.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/qaap/datasource.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/qaap/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-var QAAPDatasource =
-/** @class */
-function (_super) {
- __extends(QAAPDatasource, _super); // MetricReqConfig = {
- // resultFilter: modifyDimensons,
- // };
-
-
- function QAAPDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["QAAPInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["QAAPInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'gaap',
- action: 'DescribeProxies',
- responseField: 'ProxySet',
- interceptor: {// response: (data: unknown[]) =>[
- // {
- // "NetDetectId": "netd-12345678",
- // },
- // ],
- }
- };
- return _this;
- }
-
- QAAPDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.filter(function (item) {
- return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'Dimensions.length') === 1 && Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'Dimensions[0].Dimensions.length') === 1 && Object(lodash__WEBPACK_IMPORTED_MODULE_0__["get"])(item, 'Dimensions[0].Dimensions[0]') === 'channelId';
- })];
- }
- });
- });
- };
-
- return QAAPDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (QAAPDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/qaap/query.ts":
-/*!*********************************************!*\
- !*** ./datasource/tc_monitor/qaap/query.ts ***!
- \*********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/qaap/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/qaap/query_def.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/qaap/query_def.ts ***!
- \*************************************************/
-/*! exports provided: default, QAAPFilterFieldsDescriptor, templateQueryIdMap, QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, QAAPGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPFilterFieldsDescriptor", function() { return QAAPFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPInstanceAliasList", function() { return QAAPInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPInvalidDemensions", function() { return QAAPInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QAAPGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/QAAP'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'qaapQuery';
-var QAAPInvalidDemensions = {
- channelId: 'InstanceId'
-};
-var QAAPInstanceAliasList = ['InstanceId'];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var QAAPFilterFields = {
- Limit: 20,
- Offset: 0,
- ProjectId: [],
- AccessRegion: [],
- RealServerRegion: [],
- GroupId: []
-};
-var QAAPFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'ProjectId',
- enDescriptor: 'ProjectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'AccessRegion',
- enDescriptor: 'AccessRegion',
- cnDescriptor: '接入地域',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'RealServerRegion',
- enDescriptor: 'RealServerRegion',
- cnDescriptor: '源站地域',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'GroupId',
- enDescriptor: 'GroupId',
- cnDescriptor: '通道组ID',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963',
- namespace: namespace,
- fieldDescriptor: QAAPFilterFieldsDescriptor
-};
-var QAAP_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: QAAPFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem); // metricTmp.Dimensions.forEach((item) => {
- // item.Dimensions = ['netDetectId'];
- // });
-
-
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (QAAP_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/redis/datasource.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/redis/datasource.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var REDISDatasource =
-/** @class */
-function (_super) {
- __extends(REDISDatasource, _super);
-
- function REDISDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/REDIS';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["REDISInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["RedisInvalidDemensions"];
- _this.templateQueryIdMap = {
- instance: 'InstanceId'
- };
- _this.InstanceReqConfig = {
- service: 'redis',
- action: 'DescribeInstances',
- responseField: 'InstanceSet',
- interceptor: {
- request: function request(params) {
- return __assign(__assign({}, params), {
- MonitorVersion: '1m'
- });
- }
- }
- };
- return _this;
- }
-
- REDISDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.filter(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["isValidMetric"])(item);
- })];
- }
- });
- });
- };
-
- return REDISDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (REDISDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/redis/query.ts":
-/*!**********************************************!*\
- !*** ./datasource/tc_monitor/redis/query.ts ***!
- \**********************************************/
-/*! exports provided: RedisQueryCtrl, redisQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisQueryCtrl", function() { return RedisQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redisQuery", function() { return redisQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis/query_def.ts");
-
-
-
-var RedisQueryCtrl =
-/** @class */
-function () {
- RedisQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function RedisQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.RedisFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["RedisFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- };
-
- $scope.init();
- }
-
- return RedisQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function redisQuery() {
- return {
- template: template,
- controller: RedisQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('redisQuery', redisQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/redis/query_def.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/redis/query_def.ts ***!
- \**************************************************/
-/*! exports provided: default, RedisFieldsDescriptor, RedisInvalidDemensions, templateQueryIdMap, REDISInstanceAliasList, isValidMetric, REDISGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisFieldsDescriptor", function() { return RedisFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisInvalidDemensions", function() { return RedisInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISInstanceAliasList", function() { return REDISInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidMetric", function() { return isValidMetric; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var BillingMode = [{
- text: '按量计费',
- value: 'postpaid'
-}, {
- text: '包年包月',
- value: 'prepaid'
-}];
-var AutoRenew = [{
- text: '手动续费',
- value: 0
-}, {
- text: '自动续费',
- value: 1
-}, {
- text: '明确不自动续费',
- value: 2
-}];
-var Status = [{
- text: '待初始化',
- value: 0
-}, {
- text: '流程执行中',
- value: 1
-}, {
- text: '运行中',
- value: 2
-}, {
- text: '已隔离',
- value: -2
-}, {
- text: '待删除',
- value: -3
-}];
-var TypeVersion = [{
- text: '单机版',
- value: 1
-}, {
- text: '主从版',
- value: 2
-}, {
- text: '集群版',
- value: 3
-}];
-var OrderBy = [{
- text: 'projectId',
- value: 'projectId'
-}, {
- text: 'instancename',
- value: 'instancename'
-}, {
- text: 'createtime',
- value: 'createtime'
-}, {
- text: 'type',
- value: 'type'
-}, {
- text: 'curDeadline',
- value: 'curDeadline'
-}];
-var OrderType = [{
- text: '升序',
- value: 0
-}, {
- text: '降序',
- value: 1
-}];
-var Type = [{
- text: 'Redis老集群版',
- value: 1
-}, {
- text: 'Redis 2.8主从版',
- value: 2
-}, {
- text: 'CKV主从版',
- value: 3
-}, {
- text: 'CKV集群版',
- value: 4
-}, {
- text: 'Redis 2.8单机版',
- value: 5
-}, {
- text: 'Redis 4.0主从版',
- value: 6
-}, {
- text: 'Redis 4.0集群版',
- value: 7
-}, {
- text: 'Redis5.0主从版',
- value: 8
-}, {
- text: 'Redis5.0集群版',
- value: 9
-}];
-var RedisFields = {
- InstanceId: '',
- OrderBy: '',
- OrderType: null,
- VpcIds: [],
- SubnetIds: [],
- ProjectIds: [],
- SearchKey: '',
- InstanceName: '',
- UniqVpcIds: [],
- UniqSubnetIds: [],
- Status: [],
- TypeVersion: null,
- EngineName: '',
- AutoRenew: null,
- BillingMode: '',
- Type: null
-};
-var RedisFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceId',
- enDescriptor: 'InstancesId',
- cnDescriptor: '实例id',
- type: 'input'
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderBy
-}, {
- key: 'OrderType',
- enDescriptor: 'OrderType',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderType
-}, {
- key: 'VpcIds',
- enDescriptor: 'VpcIds',
- cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'SubnetIds',
- enDescriptor: 'SubnetIds',
- cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'ProjectIds',
- enDescriptor: 'ProjectIds',
- cnDescriptor: '项目ID 组成的数组',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'SearchKey',
- enDescriptor: 'SearchKey',
- cnDescriptor: '查找实例的ID',
- link: '',
- type: 'input'
-}, {
- key: 'InstanceName',
- enDescriptor: 'InstanceName',
- cnDescriptor: '实例名称',
- link: '',
- type: 'input'
-}, {
- key: 'UniqVpcIds',
- enDescriptor: 'UniqVpcIds',
- cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'UniqSubnetIds',
- enDescriptor: 'UniqSubnetIds',
- cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'Status',
- enDescriptor: 'Status',
- cnDescriptor: '实例状态',
- multiple: true,
- type: 'select',
- list: Status
-}, {
- key: 'TypeVersion',
- enDescriptor: 'TypeVersion',
- cnDescriptor: '类型版本',
- link: '',
- type: 'select',
- list: TypeVersion
-}, {
- key: 'EngineName',
- enDescriptor: 'EngineName',
- cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',
- link: '',
- type: 'input'
-}, {
- key: 'AutoRenew',
- enDescriptor: 'AutoRenew',
- cnDescriptor: '续费模式',
- multiple: true,
- type: 'select',
- list: AutoRenew
-}, {
- key: 'BillingMode',
- enDescriptor: 'BillingMode',
- cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',
- link: '',
- type: 'select',
- list: BillingMode
-}, {
- key: 'Type',
- enDescriptor: 'Type',
- cnDescriptor: '实例类型',
- link: '',
- type: 'select',
- list: Type
-}];
-var REDIS_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: __assign({}, RedisFields)
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- // select 单选
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-function isValidMetric(metricObj) {
- if (metricObj === void 0) {
- metricObj = {};
- }
-
- var dimension = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(metricObj, 'Dimensions[0].Dimensions');
-
- return dimension.length === 1 && lodash__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(dimension, 'instanceid') !== -1;
-}
-
-var REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];
-var RedisInvalidDemensions = {
- redis_uuid: 'InstanceId',
- instanceid: 'InstanceId'
-};
-var templateQueryIdMap = {
- instance: 'InstanceId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (REDIS_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/redis_mem/datasource.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/redis_mem/datasource.ts ***!
- \*******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis_mem/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var REDISDatasource =
-/** @class */
-function (_super) {
- __extends(REDISDatasource, _super);
-
- function REDISDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_1__["REDISMEMInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_1__["RedisMemInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"];
- _this.extrasAlias = [_query_def__WEBPACK_IMPORTED_MODULE_1__["RedisMemInvalidDemensions"].pnodeid, _query_def__WEBPACK_IMPORTED_MODULE_1__["RedisMemInvalidDemensions"].rnodeid];
- _this.InstanceReqConfig = {
- service: 'redis',
- action: 'DescribeInstances',
- responseField: 'InstanceSet',
- interceptor: {
- request: function request(params) {
- return __assign(__assign({}, params), {
- MonitorVersion: '5s'
- });
- }
- }
- };
- return _this;
- }
-
- REDISDatasource.prototype.getInstanceNodeInfo = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, instanceId, serviceInfo, res;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- region = params.region, instanceId = params.instanceId;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'redis');
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeInstanceNodeInfo'
- });
- }, {
- InstanceId: instanceId
- }, _query_def__WEBPACK_IMPORTED_MODULE_1__["NodeType"])];
-
- case 1:
- res = _a.sent();
- return [2
- /*return*/
- , res];
- }
- });
- });
- };
-
- REDISDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var rs, nodetype, ndoeTypeIndex;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(action === 'DescribeInstanceNodeInfo')) return [3
- /*break*/
- , 2];
- return [4
- /*yield*/
- , this.getInstanceNodeInfo({
- region: region,
- instanceId: instance[this.templateQueryIdMap.instance]
- })];
-
- case 1:
- rs = _a.sent();
- nodetype = query.nodetype;
- ndoeTypeIndex = _query_def__WEBPACK_IMPORTED_MODULE_1__["NodeType"].indexOf(nodetype);
- return [2
- /*return*/
- , ndoeTypeIndex === -1 ? [] : lodash__WEBPACK_IMPORTED_MODULE_0___default.a.map(rs[ndoeTypeIndex], function (item) {
- return {
- text: item.NodeId,
- value: item.NodeId
- };
- })];
-
- case 2:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return REDISDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_2__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (REDISDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/redis_mem/query.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/redis_mem/query.ts ***!
- \**************************************************/
-/*! exports provided: RedisMemQueryCtrl, redisMemQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisMemQueryCtrl", function() { return RedisMemQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redisMemQuery", function() { return redisMemQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/redis_mem/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-var RedisMemQueryCtrl =
-/** @class */
-function () {
- RedisMemQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function RedisMemQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.RedisMemFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["RedisMemFieldsDescriptor"];
- };
-
- $scope.clearExtrasAlias = function () {
- $scope.target.rnodeid = '';
- $scope.target.pnodeid = '';
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getDropdown = function (field) {
- switch (field) {
- default:
- return [];
- }
- };
-
- $scope.getVariableId = function (data, type) {
- var variableData = data;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]);
- variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);
-
- if (!variableData) {
- return '';
- }
-
- try {
- variableData = JSON.parse(variableData)[_query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"][type]];
- } catch (error) {}
-
- return variableData;
- };
-
- $scope.getExtraDropdown = function (target, nodetype) {
- return __awaiter(_this, void 0, void 0, function () {
- var instance, service, instanceId, region, rs, ndoeTypeIndex;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- instance = $scope.target.instance;
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceFromNamespace"])(_query_def__WEBPACK_IMPORTED_MODULE_2__["namespace"]);
- instanceId = $scope.getVariableId(instance, 'instance');
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({
- region: region,
- instanceId: instanceId
- })];
-
- case 1:
- rs = _a.sent();
- ndoeTypeIndex = _query_def__WEBPACK_IMPORTED_MODULE_2__["NodeType"].indexOf(nodetype);
- return [2
- /*return*/
- , ndoeTypeIndex === -1 ? [] : Object(lodash__WEBPACK_IMPORTED_MODULE_1__["map"])(rs[ndoeTypeIndex], function (item) {
- return {
- text: item.NodeId,
- value: item.NodeId
- };
- })];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return RedisMemQueryCtrl;
-}();
-
-
-var template = "\n\n\n\n\n";
-function redisMemQuery() {
- return {
- template: template,
- controller: RedisMemQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- },
- link: function link(scope, element, attrs) {
- scope.$watch('target.instance', function () {
- var _a;
-
- (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope);
- });
- scope.$watch('target.metricName', function () {
- var _a;
-
- (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope);
- });
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('redisMemQuery', redisMemQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/redis_mem/query_def.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/redis_mem/query_def.ts ***!
- \******************************************************/
-/*! exports provided: default, RedisMemFieldsDescriptor, RedisMemInvalidDemensions, REDISMEMInstanceAliasList, templateQueryIdMap, namespace, NodeType, REDISMEMGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisMemFieldsDescriptor", function() { return RedisMemFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RedisMemInvalidDemensions", function() { return RedisMemInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISMEMInstanceAliasList", function() { return REDISMEMInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeType", function() { return NodeType; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDISMEMGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-
-var namespace = 'QCE/REDIS_MEM';
-var BillingMode = [{
- text: '按量计费',
- value: 'postpaid'
-}, {
- text: '包年包月',
- value: 'prepaid'
-}];
-var AutoRenew = [{
- text: '手动续费',
- value: 0
-}, {
- text: '自动续费',
- value: 1
-}, {
- text: '明确不自动续费',
- value: 2
-}];
-var Status = [{
- text: '待初始化',
- value: 0
-}, {
- text: '流程执行中',
- value: 1
-}, {
- text: '运行中',
- value: 2
-}, {
- text: '已隔离',
- value: -2
-}, {
- text: '待删除',
- value: -3
-}];
-var TypeVersion = [{
- text: '单机版',
- value: 1
-}, {
- text: '主从版',
- value: 2
-}, {
- text: '集群版',
- value: 3
-}];
-var OrderBy = [{
- text: 'projectId',
- value: 'projectId'
-}, {
- text: 'instancename',
- value: 'instancename'
-}, {
- text: 'createtime',
- value: 'createtime'
-}, {
- text: 'type',
- value: 'type'
-}, {
- text: 'curDeadline',
- value: 'curDeadline'
-}];
-var OrderType = [{
- text: '升序',
- value: 0
-}, {
- text: '降序',
- value: 1
-}];
-var Type = [{
- text: 'Redis老集群版',
- value: 1
-}, {
- text: 'Redis 2.8主从版',
- value: 2
-}, {
- text: 'CKV主从版',
- value: 3
-}, {
- text: 'CKV集群版',
- value: 4
-}, {
- text: 'Redis 2.8单机版',
- value: 5
-}, {
- text: 'Redis 4.0主从版',
- value: 6
-}, {
- text: 'Redis 4.0集群版',
- value: 7
-}, {
- text: 'Redis5.0主从版',
- value: 8
-}, {
- text: 'Redis5.0集群版',
- value: 9
-}];
-var RedisFields = {
- InstanceId: '',
- OrderBy: '',
- OrderType: null,
- VpcIds: [],
- SubnetIds: [],
- ProjectIds: [],
- SearchKey: '',
- InstanceName: '',
- UniqVpcIds: [],
- UniqSubnetIds: [],
- Status: [],
- TypeVersion: null,
- EngineName: '',
- AutoRenew: null,
- BillingMode: '',
- Type: null
-};
-var RedisMemFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'InstanceId',
- enDescriptor: 'InstancesId',
- cnDescriptor: '实例id',
- type: 'input'
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderBy
-}, {
- key: 'OrderType',
- enDescriptor: 'OrderType',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderType
-}, {
- key: 'VpcIds',
- enDescriptor: 'VpcIds',
- cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'SubnetIds',
- enDescriptor: 'SubnetIds',
- cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'ProjectIds',
- enDescriptor: 'ProjectIds',
- cnDescriptor: '项目ID 组成的数组',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'SearchKey',
- enDescriptor: 'SearchKey',
- cnDescriptor: '查找实例的ID',
- link: '',
- type: 'input'
-}, {
- key: 'InstanceName',
- enDescriptor: 'InstanceName',
- cnDescriptor: '实例名称',
- link: '',
- type: 'input'
-}, {
- key: 'UniqVpcIds',
- enDescriptor: 'UniqVpcIds',
- cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'UniqSubnetIds',
- enDescriptor: 'UniqSubnetIds',
- cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'Status',
- enDescriptor: 'Status',
- cnDescriptor: '实例状态',
- multiple: true,
- type: 'select',
- list: Status
-}, {
- key: 'TypeVersion',
- enDescriptor: 'TypeVersion',
- cnDescriptor: '类型版本',
- link: '',
- type: 'select',
- list: TypeVersion
-}, {
- key: 'EngineName',
- enDescriptor: 'EngineName',
- cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',
- link: '',
- type: 'input'
-}, {
- key: 'AutoRenew',
- enDescriptor: 'AutoRenew',
- cnDescriptor: '续费模式',
- multiple: true,
- type: 'select',
- list: AutoRenew
-}, {
- key: 'BillingMode',
- enDescriptor: 'BillingMode',
- cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',
- link: '',
- type: 'select',
- list: BillingMode
-}, {
- key: 'Type',
- enDescriptor: 'Type',
- cnDescriptor: '实例类型',
- link: '',
- type: 'select',
- list: Type
-}];
-var REDISMEM_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: __assign({}, RedisFields),
- rnodeid: '',
- pnodeid: ''
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- // select 单选
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-var REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];
-var RedisMemInvalidDemensions = {
- instanceid: 'InstanceId',
- rnodeid: 'rnodeid',
- pnodeid: 'pnodeid'
-};
-var templateQueryIdMap = {
- instance: 'InstanceId',
- rnodeid: 'rnodeid',
- pnodeid: 'pnodeid'
-};
-var NodeType = ['Redis', 'Proxy'];
-/* harmony default export */ __webpack_exports__["default"] = (REDISMEM_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/scf/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/scf/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/scf/query_def.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var SCFDatasource =
-/** @class */
-function (_super) {
- __extends(SCFDatasource, _super);
-
- function SCFDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_2__["templateQueryIdMap"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_2__["queryMonitorExtraConfg"];
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_2__["keyInStorage"];
- _this.Namespace = 'QCE/SCF_V2';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_2__["SCFInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_2__["SCFInvalidDemensions"];
- _this.InstanceReqConfig = {
- service: 'scf',
- action: 'ListFunctions',
- responseField: 'Functions'
- };
- return _this;
- }
-
- SCFDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_2__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(value)
- };
- }));
- };
-
- SCFDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.filter(function (item) {
- var _a, _b, _c, _d, _e, _f;
- /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */
-
-
- return ((_c = (_b = (_a = item.Dimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Dimensions) === null || _c === void 0 ? void 0 : _c.includes('functionName')) && ((_f = (_e = (_d = item.Dimensions) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.Dimensions) === null || _f === void 0 ? void 0 : _f.includes('namespace')) && !item.MetricName.startsWith('Name');
- })];
- }
- });
- });
- };
-
- SCFDatasource.prototype.getVersions = function (region, params) {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_0__["GetServiceAPIInfo"])(region, 'scf');
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: params
- }, serviceInfo.service, {
- region: region,
- action: 'ListVersionByFunction'
- }).then(function (response) {
- return response.Versions;
- });
- };
-
- SCFDatasource.prototype.fetchMetricData = function (action, region, instance) {
- return __awaiter(this, void 0, void 0, function () {
- var rs, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(action === 'ListVersionByFunction')) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getVersions(region, {
- FunctionName: instance[this.templateQueryIdMap.instance]
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap.version];
- return {
- text: o[_this.templateQueryIdMap.version],
- value: o[_this.templateQueryIdMap.version]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_3__["default"].setExtraStorage(this.service, this.keyInStorage.version, rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return SCFDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (SCFDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/scf/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/scf/query.ts ***!
- \********************************************/
-/*! exports provided: SCFQueryCtrl, scfQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFQueryCtrl", function() { return SCFQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/scf/query_def.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var SCFQueryCtrl =
-/** @class */
-function () {
- SCFQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function SCFQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.SCFQueryDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["SCFQueryDescriptor"];
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance).FunctionName;
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getVersions = function (target) {
- return __awaiter(_this, void 0, void 0, function () {
- var FunctionName, region, fetcher;
- return __generator(this, function (_a) {
- FunctionName = $scope.getInstanceId();
- region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region);
- if (!FunctionName || !region) return [2
- /*return*/
- , []];
- fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');
- return [2
- /*return*/
- , fetcher(region, {
- FunctionName: FunctionName
- }).then(function (res) {
- // console.log(res, 'res');
- var result = res.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].version];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].version],
- value: JSON.stringify(o)
- };
- });
- return result;
- })];
- });
- });
- }; // $scope.onChecked = (srcField, dstField) => {
- // if ($scope.target.queries[srcField] === true) {
- // $scope.target.queries[dstField] = false;
- // }
- // $scope.onChange();
- // };
- // $scope.getDropdown = (field) => {
- // switch (field) {
- // case 'zone':
- // return $scope.getZones();
- // default:
- // return [];
- // }
- // };
- // $scope.getZones = () => {
- // if (!$scope.region) {
- // return [];
- // }
- // return $scope.datasource.getZones('cvm', $scope.region);
- // };
-
-
- $scope.init();
- }
-
- return SCFQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function scfQuery() {
- return {
- template: template,
- controller: SCFQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('scfQuery', scfQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/scf/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/scf/query_def.ts ***!
- \************************************************/
-/*! exports provided: SCFQueryDescriptor, default, SCFInstanceAliasList, SCFInvalidDemensions, queryMonitorExtraConfg, regionSupported, templateQueryIdMap, keyInStorage, SCFGetInstanceQueryParams, SCFDefaultDimensionList */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFQueryDescriptor", function() { return SCFQueryDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFInstanceAliasList", function() { return SCFInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFInvalidDemensions", function() { return SCFInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SCFDefaultDimensionList", function() { return SCFDefaultDimensionList; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var SCFQueryDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'SearchKey',
- enDescriptor: 'SearchKey',
- cnDescriptor: '支持FunctionName模糊匹配',
- link: '',
- type: 'input'
-}, {
- key: 'Namespace',
- enDescriptor: 'Namespace',
- cnDescriptor: '云函数命名空间',
- link: '',
- type: 'input'
-}, {
- key: 'Description',
- enDescriptor: 'Description',
- cnDescriptor: '函数描述,支持模糊搜索',
- link: '',
- type: 'input'
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: [{
- text: 'AddTime',
- value: 'AddTime'
- }, {
- text: 'ModTime',
- value: 'ModTime'
- }, {
- text: 'FunctionName',
- value: 'FunctionName'
- }]
-}, {
- key: 'Order',
- enDescriptor: 'Order Direction',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: [{
- text: 'ASC',
- value: 'ASC'
- }, {
- text: 'DESC',
- value: 'DESC'
- }]
-} // {
-// key: 'Filters',
-// enDescriptor: 'Filters',
-// cnDescriptor: '按照标签键值对进行过滤',
-// link: '',
-// type: 'dropdownmulti',
-// },
-];
-var SCF_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'FunctionName',
- version: '',
- queries: {
- Offset: 0,
- Limit: 20,
- OrderBy: {},
- Order: {},
- SearchKey: '',
- Namespace: '',
- Description: '' // Filters: {},
-
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit']);
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- params[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- params[key] = item;
- }
- });
- }
-
- return params;
-}
-
-var SCFInstanceAliasList = ['FunctionId', 'FunctionName']; // 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key
-
-var SCFInvalidDemensions = {
- functionName: 'FunctionName',
- namespace: 'Namespace',
- version: 'Version'
-};
-var templateQueryIdMap = {
- instance: 'FunctionName',
- version: 'Version'
-};
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}]; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- version: 'version'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- Version: {
- dim_KeyInStorage: keyInStorage.version,
- dim_KeyInTarget: 'version',
- dim_KeyInMap: templateQueryIdMap.version
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (SCF_STATE);
- // monitor监控数据默认支持的维度
-
-var SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/sqlserver/datasource.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/sqlserver/datasource.ts ***!
- \*******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/sqlserver/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["SQLSERVERInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["SQLSERVERInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'sqlserver',
- action: 'DescribeDBInstances',
- responseField: 'DBInstances'
- };
- return _this;
- }
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_3___default.a.compact(rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- }))];
- }
- });
- });
- };
-
- DCDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(value)
- };
- }));
- };
-
- DCDatasource.prototype.getFilterDropdown = function (_a) {
- var field = _a.field,
- region = _a.region;
-
- if (field === 'Zone') {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cvm');
- return this.doRequest({
- url: this.url + serviceInfo.path
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeZones'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.ZoneSet || [], function (item) {
- return {
- text: item.ZoneName,
- value: item.Zone,
- ZoneState: item.ZoneState,
- Zone: item.Zone
- };
- }), function (item) {
- return item.ZoneState === 'AVAILABLE';
- });
- });
- }
-
- return [];
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/sqlserver/query.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/sqlserver/query.ts ***!
- \**************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/sqlserver/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/sqlserver/query_def.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/sqlserver/query_def.ts ***!
- \******************************************************/
-/*! exports provided: default, SQLSERVERNETFilterFieldsDescriptor, templateQueryIdMap, SQLSERVERInstanceAliasList, SQLSERVERInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regionSupported, modifyDimensons, SQLSERVERGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERNETFilterFieldsDescriptor", function() { return SQLSERVERNETFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERInstanceAliasList", function() { return SQLSERVERInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERInvalidDemensions", function() { return SQLSERVERInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SQLSERVERGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/SQLSERVER'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'sqlserverQuery';
-var SQLSERVERInvalidDemensions = {
- resourceId: 'InstanceId'
-};
-var SQLSERVERInstanceAliasList = ['InstanceId', 'Name'];
-var templateQueryIdMap = {
- instance: 'InstanceId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var SQLSERVERNETFilterFields = {
- Limit: 20,
- Offset: 0,
- ProjectId: null,
- Status: {},
- InstanceIdSet: [],
- PayMode: {},
- VpcId: '',
- SubnetId: '',
- VipSet: [],
- InstanceNameSet: [],
- VersionSet: [],
- Zone: ''
-};
-var SQLSERVERNETFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'ProjectId',
- enDescriptor: 'ProjectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'Status',
- enDescriptor: 'Status',
- cnDescriptor: '实例状态',
- link: '',
- type: 'select',
- list: [{
- text: '申请中',
- value: 1
- }, {
- text: '运行中',
- value: 2
- }, {
- text: '受限运行中 (主备切换中)',
- value: 3
- }, {
- text: '已隔离',
- value: 4
- }, {
- text: '回收中',
- value: 5
- }, {
- text: '已回收',
- value: 6
- }, {
- text: '任务执行中',
- value: 7
- }, {
- text: '已下线',
- value: 8
- }, {
- text: '实例扩容中',
- value: 9
- }, {
- text: '实例迁移中',
- value: 10
- }, {
- text: '只读',
- value: 11
- }, {
- text: '重启中',
- value: 12
- }]
-}, {
- key: 'InstanceIdSet',
- enDescriptor: 'InstanceIdSet',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'PayMode',
- enDescriptor: 'PayMode',
- cnDescriptor: '子网实例ID',
- link: '',
- type: 'select',
- list: [{
- text: '包年包月',
- value: 1
- }, {
- text: '按量计费',
- value: 0
- }]
-}, {
- key: 'VpcId',
- enDescriptor: 'VpcId',
- cnDescriptor: '实例所属VPC的唯一字符串ID',
- link: '',
- type: 'input'
-}, {
- key: 'SubnetId',
- enDescriptor: 'SubnetId',
- cnDescriptor: '实例所属子网的唯一字符串ID',
- link: '',
- type: 'input'
-}, {
- key: 'VipSet',
- enDescriptor: 'VipSet',
- cnDescriptor: '实例内网地址列表',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'InstanceNameSet',
- enDescriptor: 'InstanceNameSet',
- cnDescriptor: '实例名称列表, 模糊查询',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'VersionSet',
- enDescriptor: 'VersionSet',
- cnDescriptor: '实例版本代号列表',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'Zone',
- enDescriptor: 'Zone',
- cnDescriptor: '实例可用区',
- link: '',
- type: 'dropdown'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969',
- namespace: namespace,
- fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor
-}; // regions for dropdown
-
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-moscow'
-}, {
- value: 'na-siliconvalley'
-}];
-var SQLSERVER_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- queries: SQLSERVERNETFilterFields
-};
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['resourceId'];
- });
- return metricTmp;
-}
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (SQLSERVER_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tcaplus/datasource.ts":
-/*!*****************************************************!*\
- !*** ./datasource/tc_monitor/tcaplus/datasource.ts ***!
- \*****************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tcaplus/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TCAPLUSInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TCAPLUSInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'tcaplusdb',
- action: 'DescribeTables',
- responseField: 'TableInfos'
- };
- return _this;
- } // 重写getRegion
-
-
- DCDatasource.prototype.getRegions = function () {
- return this.doRequest({
- url: this.url + '/tcaplusdb'
- }, 'tcaplusdb', {
- action: 'DescribeRegions',
- region: 'ap-guangzhou'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(response.RegionInfos || [], function (item) {
- return {
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_3__["t"])(item.RegionName),
- value: item.RegionName
- };
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tcaplus/query.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/tcaplus/query.ts ***!
- \************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tcaplus/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tcaplus/query_def.ts":
-/*!****************************************************!*\
- !*** ./datasource/tc_monitor/tcaplus/query_def.ts ***!
- \****************************************************/
-/*! exports provided: default, TCAPLUSFilterFieldsDescriptor, templateQueryIdMap, TCAPLUSInstanceAliasList, TCAPLUSInvalidDemensions, namespace, queryEditorName, queryEditorConfig, regonsMap, TCAPLUSGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSFilterFieldsDescriptor", function() { return TCAPLUSFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSInstanceAliasList", function() { return TCAPLUSInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSInvalidDemensions", function() { return TCAPLUSInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regonsMap", function() { return regonsMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TCAPLUSGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var namespace = 'QCE/TCAPLUS'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'tcaplusQuery';
-var TCAPLUSInvalidDemensions = {// TableInstanceId: 'TableInstanceId',
- // ClusterId: 'ClusterId',
-}; // 需和文件名对应
-
-var TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName'];
-var templateQueryIdMap = {
- instance: 'TableInstanceId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是类型
-
-var TCAPLUSFilterFields = {
- Limit: 20,
- Offset: 0,
- ClusterId: '',
- TableGroupIds: [],
- TableName: '',
- TableInstanceId: '',
- TableIdlType: {},
- TableType: {},
- ListElementNum: null,
- ReservedVolume: null,
- ReservedReadQps: null,
- ReservedWriteQps: null,
- Memo: '',
- FileName: '',
- FileExtType: '',
- FileSize: null,
- FileContent: ''
-};
-var TCAPLUSFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'ClusterId',
- enDescriptor: 'ClusterId',
- cnDescriptor: '表格所属集群ID',
- link: '',
- type: 'input'
-}, {
- key: 'TableGroupIds',
- enDescriptor: 'TableGroupIds',
- cnDescriptor: '表格组ID列表',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'TableName',
- enDescriptor: 'TableName',
- cnDescriptor: '表格名称',
- link: '',
- type: 'input'
-}, {
- key: 'TableInstanceId',
- enDescriptor: 'TableInstanceId',
- cnDescriptor: '表实例ID',
- link: '',
- type: 'input'
-}, {
- key: 'TableIdlType',
- enDescriptor: 'TableIdlType',
- cnDescriptor: '表格描述语言类型',
- link: '',
- type: 'select',
- list: [{
- text: 'PROTO',
- value: 'PROTO'
- }, {
- text: 'TDR',
- value: 'TDR'
- }]
-}, {
- key: 'TableType',
- enDescriptor: 'TableType',
- cnDescriptor: '表格数据结构类型',
- link: '',
- type: 'select',
- list: [{
- text: 'GENERIC',
- value: 'GENERIC'
- }, {
- text: 'LIST',
- value: 'LIST'
- }]
-}, {
- key: 'ListElementNum',
- enDescriptor: 'ListElementNum',
- cnDescriptor: 'LIST表元素个数',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'ReservedVolume',
- enDescriptor: 'ReservedVolume',
- cnDescriptor: '表格预留容量(GB)',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'ReservedReadQps',
- enDescriptor: 'ReservedReadQps',
- cnDescriptor: '表格预留读CU',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'ReservedWriteQps',
- enDescriptor: 'ReservedWriteQps',
- cnDescriptor: '表格预留写CU',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'Memo',
- enDescriptor: 'Memo',
- cnDescriptor: '表格备注信息',
- link: '',
- type: 'input'
-}, {
- key: 'FileName',
- enDescriptor: 'FileName',
- cnDescriptor: 'Key回档文件名,回档专用',
- link: '',
- type: 'input'
-}, {
- key: 'FileExtType',
- enDescriptor: 'FileExtType',
- cnDescriptor: 'Key回档文件扩展名,回档专用',
- link: '',
- type: 'input'
-}, {
- key: 'FileSize',
- enDescriptor: 'FileSize',
- cnDescriptor: 'Key回档文件大小,回档专用',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'FileContent',
- enDescriptor: 'FileContent',
- cnDescriptor: 'Key回档文件内容,回档专用',
- link: '',
- type: 'input'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664',
- namespace: namespace,
- fieldDescriptor: TCAPLUSFilterFieldsDescriptor
-};
-var TCAPLUS_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'TableInstanceId',
- queries: TCAPLUSFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
- params.ClusterId = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'ClusterId', '') || '';
- params.TableGroupIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'TableGroupIds', []) || [];
- queries = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']);
- var SelectedTables = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries, function (item, key) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- SelectedTables[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item);
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined)) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', undefined))) {
- SelectedTables[key] = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value');
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isNumber(item) || !lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(item)) {
- SelectedTables[key] = item;
- }
- });
-
- params.SelectedTables = SelectedTables;
- return params;
-} // 和其他产品的展示保持一致
-
-
-var regonsMap = {
- 'ap-beijing': '华北地区(北京)',
- 'ap-guangzhou': '华南地区(广州)',
- 'ap-hongkong': '港澳台地区(中国香港)',
- 'ap-seoul': '亚太东北(首尔)',
- 'ap-shanghai': '华东地区(上海)',
- 'ap-singapore': '亚太东南(新加坡)',
- 'ap-tokyo': '亚太东北(东京)',
- 'eu-frankfurt': '欧洲地区(法兰克福)',
- 'na-ashburn': '美国东部(弗吉尼亚)',
- 'na-siliconvalley': '美国西部(硅谷)'
-};
-/* harmony default export */ __webpack_exports__["default"] = (TCAPLUS_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq/datasource.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/tdmq/datasource.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-
-var TDMQDatasource =
-/** @class */
-function (_super) {
- __extends(TDMQDatasource, _super);
-
- function TDMQDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'tdmq',
- action: 'DescribeClusters',
- responseField: 'ClusterSet'
- };
- _this.extraActionMap = {
- DescribeTopics: {
- service: 'tdmq',
- action: 'DescribeTopics',
- responseField: 'TopicSets',
- pickKey: 'TopicName'
- },
- DescribeEnvironments: {
- service: 'tdmq',
- action: 'DescribeEnvironments',
- responseField: 'EnvironmentSet',
- pickKey: 'EnvironmentId'
- }
- };
- return _this;
- } // getFilterDropdown({ field }) {
- // return super.getRegions();
- // }
-
-
- TDMQDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(value)
- };
- }));
- };
-
- TDMQDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet.map(function (item) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(item);
- }))];
- }
- });
- });
- };
-
- TDMQDatasource.prototype.getConsumerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, act, payload, _a, service, action, responseField, serviceInfo, rs;
-
- var _this = this;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- region = params.region, act = params.action, payload = params.payload;
- _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: action
- });
- }, payload, responseField)];
-
- case 1:
- rs = _b.sent(); // console.log({ rs });
-
- return [2
- /*return*/
- , rs[0]];
- }
- });
- });
- };
-
- TDMQDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var payload, rs, pickKey_1, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- payload = {
- Limit: 100,
- ClusterId: instance[this.templateQueryIdMap.instance]
- };
- if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3
- /*break*/
- , 3];
-
- if (action === 'DescribeTopics') {
- payload.EnvironmentId = this.getVariable(query['environmentid']);
- }
-
- return [4
- /*yield*/
- , this.getConsumerList({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- pickKey_1 = this.extraActionMap[action].pickKey;
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]];
- return {
- text: o[_this.templateQueryIdMap[pickKey_1]],
- value: o[_this.templateQueryIdMap[pickKey_1]]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return TDMQDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (TDMQDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq/query.ts":
-/*!*********************************************!*\
- !*** ./datasource/tc_monitor/tdmq/query.ts ***!
- \*********************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'environmentId',
- field: 'environmentId',
- action: 'DescribeEnvironments'
-}, {
- label: 'topicName',
- field: 'topicName',
- action: 'DescribeTopics'
-}];
-var dropdownTextConfig = {
- DescribeTopics: 'topicName',
- DescribeEnvironments: 'environmentId'
-};
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.TDMQFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TDMQFilterFieldsDescriptor"];
- $scope.ExtraFields = ExtraFields;
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance];
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a, _b;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {});
- });
- };
-
- $scope.getExtraDropdown = function (target, action) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, region, payload, evId, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- payload = {
- Limit: 100,
- ClusterId: $scope.getInstanceId()
- };
-
- if (action === 'DescribeTopics') {
- evId = $scope.target.environmentId;
-
- try {
- evId = JSON.parse(evId);
- evId = evId[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].environmentId];
- } catch (e) {}
-
- payload.EnvironmentId = evId;
- }
-
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getConsumerList')({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]],
- label: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]],
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq/query_def.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/tdmq/query_def.ts ***!
- \*************************************************/
-/*! exports provided: default, TDMQFilterFieldsDescriptor, templateQueryIdMap, TDMQInstanceAliasList, TDMQInvalidDemensions, namespace, queryEditorName, queryMonitorExtraConfg, keyInStorage, modifyDimensons, regionSupported, TDMQGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQFilterFieldsDescriptor", function() { return TDMQFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInstanceAliasList", function() { return TDMQInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInvalidDemensions", function() { return TDMQInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/TDMQ'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'tdmqQuery';
-var TDMQInvalidDemensions = {
- tenantId: 'ClusterId',
- tenant: 'ClusterId',
- topicName: 'TopicName',
- environmentId: 'EnvironmentId'
-}; // 需和文件名对应
-
-var TDMQInstanceAliasList = ['ClusterId', 'ClusterName'];
-var templateQueryIdMap = {
- instance: 'ClusterId',
- topicName: 'TopicName',
- environmentId: 'EnvironmentId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var TDMQFilterFields = {
- Limit: 20,
- Offset: 0
-};
-var TDMQFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}];
-var CDNPROVINCE_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'ClusterId',
- // 此处key应该是经过TDMQInvalidDemensions处理后的
- topicName: '',
- environmentId: '',
- queries: TDMQFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-bangkok'
-}, {
- value: 'ap-jakarta'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'eu-moscow'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}];
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) {
- item.Dimensions.push('environmentId');
- }
- });
- return metricTmp;
-} // 需要缓存到storage的内容的key列表
-
-
-var keyInStorage = {
- topicName: 'topicName',
- environmentId: 'environmentId'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- TopicName: {
- dim_KeyInStorage: keyInStorage.topicName,
- dim_KeyInTarget: 'topicName',
- dim_KeyInMap: templateQueryIdMap.topicName
- },
- EnvironmentId: {
- dim_KeyInStorage: keyInStorage.environmentId,
- dim_KeyInTarget: 'environmentId',
- dim_KeyInMap: templateQueryIdMap.environmentId
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (CDNPROVINCE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts":
-/*!***********************************************************!*\
- !*** ./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts ***!
- \***********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-var TDMQDatasource =
-/** @class */
-function (_super) {
- __extends(TDMQDatasource, _super);
-
- function TDMQDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQRABBITMQInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'tdmq',
- action: 'DescribeRabbitMQVipInstances',
- responseField: 'Instances'
- };
- _this.extraActionMap = {
- DescribeRabbitMQNodeList: {
- service: 'tdmq',
- action: 'DescribeRabbitMQNodeList',
- responseField: 'NodeList',
- pickKey: 'node'
- }
- };
- return _this;
- }
-
- TDMQDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_5__["t"])(value)
- };
- }));
- };
-
- TDMQDatasource.prototype.getConsumerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, act, payload, _a, service, action, responseField, serviceInfo, rs;
-
- var _this = this;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- region = params.region, act = params.action, payload = params.payload;
- _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_3__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: action
- });
- }, payload, responseField)];
-
- case 1:
- rs = _b.sent();
- return [2
- /*return*/
- , rs[0]];
- }
- });
- });
- };
-
- TDMQDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var payload, rs, pickKey_1, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- payload = {
- Limit: 100,
- InstanceId: instance[this.templateQueryIdMap.instance]
- };
- if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3
- /*break*/
- , 3];
- return [4
- /*yield*/
- , this.getConsumerList({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- pickKey_1 = this.extraActionMap[action].pickKey;
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]];
- return {
- text: o[_this.templateQueryIdMap[pickKey_1]],
- value: o[_this.templateQueryIdMap[pickKey_1]]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_4__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return TDMQDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (TDMQDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq_rabbitmq/query.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/tdmq_rabbitmq/query.ts ***!
- \******************************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'Node',
- field: 'node',
- action: 'DescribeRabbitMQNodeList'
-}];
-var dropdownTextConfig = {
- DescribeRabbitMQNodeList: 'node'
-};
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.TDMQFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TDMQFilterFieldsDescriptor"];
- $scope.ExtraFields = ExtraFields;
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.clearExtrasAlias = function () {
- $scope.target.node = '';
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance];
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a, _b;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {});
- });
- };
-
- $scope.getExtraDropdown = function (target, action) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, region, payload, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- payload = {
- Limit: 100,
- InstanceId: $scope.getInstanceId()
- };
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getConsumerList')({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]],
- label: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]],
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- },
- link: function link(scope, element, attrs) {
- scope.$watch('target.instance', function () {
- var _a;
-
- (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope);
- });
- scope.$watch('target.metricName', function () {
- var _a;
-
- (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope);
- });
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tdmqRabbitmqQuery', sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts":
-/*!**********************************************************!*\
- !*** ./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts ***!
- \**********************************************************/
-/*! exports provided: default, TDMQFilterFieldsDescriptor, templateQueryIdMap, TDMQRABBITMQInstanceAliasList, TDMQInvalidDemensions, namespace, queryEditorName, queryMonitorExtraConfg, keyInStorage, regionSupported, TDMQGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQFilterFieldsDescriptor", function() { return TDMQFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQRABBITMQInstanceAliasList", function() { return TDMQRABBITMQInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInvalidDemensions", function() { return TDMQInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/RABBITMQ'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'tdmqQuery';
-var TDMQInvalidDemensions = {
- instanceid: 'InstanceId',
- node: 'NodeName'
-}; // 需和文件名对应
-
-var TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName'];
-var templateQueryIdMap = {
- instance: 'InstanceId',
- node: 'NodeName'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var TDMQFilterFields = {
- Limit: 20,
- Offset: 0
-};
-var TDMQFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}];
-var TDMQ_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'InstanceId',
- // 此处key应该是经过TDMQInvalidDemensions处理后的
- node: '',
- queries: TDMQFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-bangkok'
-}, {
- value: 'ap-jakarta'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'eu-moscow'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}]; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- node: 'NodeName'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- NodeName: {
- dim_KeyInStorage: keyInStorage.node,
- dim_KeyInTarget: 'node',
- dim_KeyInMap: templateQueryIdMap.node
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (TDMQ_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq_rocketmq/datasource.ts":
-/*!***********************************************************!*\
- !*** ./datasource/tc_monitor/tdmq_rocketmq/datasource.ts ***!
- \***********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/datasourceStorage */ "./datasource/common/datasourceStorage.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-
-
-var TDMQDatasource =
-/** @class */
-function (_super) {
- __extends(TDMQDatasource, _super);
-
- function TDMQDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQROCKETMQInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TDMQInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.queryMonitorExtraConfg = _query_def__WEBPACK_IMPORTED_MODULE_0__["queryMonitorExtraConfg"];
- _this.keyInStorage = _query_def__WEBPACK_IMPORTED_MODULE_0__["keyInStorage"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'tdmq',
- action: 'DescribeRocketMQClusters',
- responseField: 'ClusterList',
- interceptor: {
- response: function response(result) {
- return lodash__WEBPACK_IMPORTED_MODULE_2___default.a.map(result, function (item) {
- return __assign(__assign({}, item), {
- ClusterId: lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Info.ClusterId', ''),
- ClusterName: lodash__WEBPACK_IMPORTED_MODULE_2___default.a.get(item, 'Info.ClusterName', '')
- });
- });
- }
- }
- };
- _this.extraActionMap = {
- DescribeRocketMQNamespaces: {
- service: 'tdmq',
- action: 'DescribeRocketMQNamespaces',
- responseField: 'Namespaces',
- pickKey: 'namespace'
- },
- DescribeRocketMQGroups: {
- service: 'tdmq',
- action: 'DescribeRocketMQGroups',
- responseField: 'Groups',
- pickKey: 'group'
- }
- };
- return _this;
- }
-
- TDMQDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , _super.prototype.getMetrics.call(this, region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , rawSet.filter(function (item) {
- var _a, _b, _c;
-
- return !((_c = (_b = (_a = item.Dimensions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Dimensions) === null || _c === void 0 ? void 0 : _c.includes('rmqcluster'));
- })];
- }
- });
- });
- };
-
- TDMQDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_6__["t"])(value)
- };
- }));
- };
-
- TDMQDatasource.prototype.getConsumerList = function (params) {
- return __awaiter(this, void 0, void 0, function () {
- var region, act, payload, _a, service, action, responseField, serviceInfo, rs;
-
- var _this = this;
-
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- region = params.region, act = params.action, payload = params.payload;
- _a = this.extraActionMap[act], service = _a.service, action = _a.action, responseField = _a.responseField;
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, service);
- return [4
- /*yield*/
- , Object(_common_utils__WEBPACK_IMPORTED_MODULE_4__["fetchAllFactory"])(function (data) {
- return _this.doRequest({
- url: _this.url + serviceInfo.path,
- data: data
- }, serviceInfo.service, {
- region: region,
- action: action
- });
- }, payload, responseField)];
-
- case 1:
- rs = _b.sent();
- return [2
- /*return*/
- , rs[0]];
- }
- });
- });
- };
-
- TDMQDatasource.prototype.fetchMetricData = function (action, region, instance, query) {
- return __awaiter(this, void 0, void 0, function () {
- var payload, rs, pickKey_1, result;
-
- var _this = this;
-
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- payload = {
- Limit: 100,
- ClusterId: instance[this.templateQueryIdMap.instance]
- };
- if (!(Object.keys(this.extraActionMap).indexOf(action) !== -1)) return [3
- /*break*/
- , 3];
-
- if (action === 'DescribeRocketMQGroups') {
- payload.NamespaceId = this.getVariable(query['clusternamespace']);
- }
-
- return [4
- /*yield*/
- , this.getConsumerList({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- pickKey_1 = this.extraActionMap[action].pickKey;
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_this.templateQueryIdMap[pickKey_1]];
- return {
- text: o[_this.templateQueryIdMap[pickKey_1]],
- value: o[_this.templateQueryIdMap[pickKey_1]]
- };
- });
- return [4
- /*yield*/
- , _common_datasourceStorage__WEBPACK_IMPORTED_MODULE_5__["default"].setExtraStorage(this.service, this.keyInStorage[pickKey_1], rs)];
-
- case 2:
- _a.sent();
-
- return [2
- /*return*/
- , result];
-
- case 3:
- return [2
- /*return*/
- , []];
- }
- });
- });
- };
-
- return TDMQDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (TDMQDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq_rocketmq/query.ts":
-/*!******************************************************!*\
- !*** ./datasource/tc_monitor/tdmq_rocketmq/query.ts ***!
- \******************************************************/
-/*! exports provided: TdmqRocketmqQueryCtrl, tdmqRocketmqQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TdmqRocketmqQueryCtrl", function() { return TdmqRocketmqQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tdmqRocketmqQuery", function() { return tdmqRocketmqQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-var ExtraFields = [{
- label: 'Namespace',
- field: 'namespace',
- action: 'DescribeRocketMQNamespaces'
-}, {
- label: 'Group',
- field: 'group',
- action: 'DescribeRocketMQGroups'
-}];
-var dropdownTextConfig = {
- DescribeRocketMQNamespaces: 'namespace',
- DescribeRocketMQGroups: 'group'
-};
-
-var TdmqRocketmqQueryCtrl =
-/** @class */
-function () {
- TdmqRocketmqQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function TdmqRocketmqQueryCtrl($scope, $rootScope) {
- var _this = this;
-
- $scope.init = function () {
- $scope.TDMQFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TDMQFilterFieldsDescriptor"];
- $scope.ExtraFields = ExtraFields;
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.clearExtrasAlias = function () {
- $scope.target.namespace = '';
- $scope.target.group = '';
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.getInstanceId = function () {
- var instance = $scope.target.instance;
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);
-
- if (!instance) {
- return '';
- }
-
- try {
- instance = JSON.parse(instance)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].instance];
- } catch (error) {// console.log();
- }
-
- return instance;
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a, _b;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {}) || item.label in ((_b = $scope.dims) !== null && _b !== void 0 ? _b : {});
- });
- };
-
- $scope.getExtraDropdown = function (target, action) {
- return __awaiter(_this, void 0, void 0, function () {
- var service, region, payload, namespace_1, rs, result;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace);
- region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);
- payload = {
- Limit: 100,
- ClusterId: $scope.getInstanceId()
- };
-
- if (action === 'DescribeRocketMQGroups') {
- namespace_1 = $scope.target.namespace;
-
- try {
- namespace_1 = JSON.parse(namespace_1)[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"].namespace];
- } catch (e) {}
-
- payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace_1);
- }
-
- return [4
- /*yield*/
- , $scope.datasource.getServiceFn(service, 'getConsumerList')({
- region: region,
- action: action,
- payload: payload
- })];
-
- case 1:
- rs = _a.sent();
- result = rs.map(function (o) {
- o._InstanceAliasValue = o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]];
- return {
- text: o[_query_def__WEBPACK_IMPORTED_MODULE_1__["templateQueryIdMap"][dropdownTextConfig[action]]],
- value: JSON.stringify(o)
- };
- });
- return [2
- /*return*/
- , result];
- }
- });
- });
- };
-
- $scope.init();
- }
-
- return TdmqRocketmqQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function tdmqRocketmqQuery() {
- return {
- template: template,
- controller: TdmqRocketmqQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- },
- link: function link(scope, element, attrs) {
- scope.$watch('target.instance', function () {
- var _a;
-
- (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope);
- });
- scope.$watch('target.metricName', function () {
- var _a;
-
- (_a = scope.clearExtrasAlias) === null || _a === void 0 ? void 0 : _a.call(scope);
- });
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tdmqRocketmqQuery', tdmqRocketmqQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tdmq_rocketmq/query_def.ts":
-/*!**********************************************************!*\
- !*** ./datasource/tc_monitor/tdmq_rocketmq/query_def.ts ***!
- \**********************************************************/
-/*! exports provided: default, TDMQFilterFieldsDescriptor, templateQueryIdMap, TDMQROCKETMQInstanceAliasList, TDMQInvalidDemensions, namespace, queryMonitorExtraConfg, keyInStorage, regionSupported, TDMQROCKETMQGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQFilterFieldsDescriptor", function() { return TDMQFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQROCKETMQInstanceAliasList", function() { return TDMQROCKETMQInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQInvalidDemensions", function() { return TDMQInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryMonitorExtraConfg", function() { return queryMonitorExtraConfg; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyInStorage", function() { return keyInStorage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TDMQROCKETMQGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var namespace = 'QCE/ROCKETMQ';
-var TDMQInvalidDemensions = {
- tenant: 'ClusterId',
- namespace: 'NamespaceId',
- group: 'Name'
-}; // 需和文件名对应
-
-var TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName'];
-var templateQueryIdMap = {
- instance: 'ClusterId',
- namespace: 'NamespaceId',
- group: 'Name'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var TDMQFilterFields = {
- Limit: 20,
- Offset: 0,
- instanceIdsChecked: false,
- filtersChecked: true,
- ClusterIdList: [''],
- Filters: {
- includeVip: {
- text: '是',
- value: 'true'
- }
- }
-};
-var TDMQFilterFieldsDescriptor = [{
- key: 'includeVip',
- enDescriptor: 'includeVip',
- cnDescriptor: '包含专享集群',
- link: '',
- type: 'select',
- list: [{
- text: '是',
- value: 'true'
- }, {
- text: '否',
- value: 'false'
- }]
-}];
-var TDMQ_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'ClusterId',
- // 此处key应该是经过TDMQInvalidDemensions处理后的
- namespace: '',
- group: '',
- queries: TDMQFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.ClusterIdList)) {
- var ClusterIdList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.ClusterIdList);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(ClusterIdList).length > 0) {
- params.ClusterIdList = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(ClusterIdList).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: [lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', [])].slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-bangkok'
-}, {
- value: 'ap-jakarta'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'eu-moscow'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}]; // 需要缓存到storage的内容的key列表
-
-var keyInStorage = {
- namespace: 'NamespaceId',
- group: 'Name'
-};
-/*
-如果有InstanceId额外的维度,原则上都需要传入此map结构配置
-key的含义:
- 经过InvalidDemensions处理后的string。topicId =》TopicId。
- 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId
-value的含义:
- 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、
- 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。
- 默认取通过InvalidDemsion处理后的key
- 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。
- 即:templateQueryIdMap中内容。
- 联合上面2的内容筛选出原始sourceMap
-*/
-
-var queryMonitorExtraConfg = {
- NamespaceId: {
- dim_KeyInStorage: keyInStorage.namespace,
- dim_KeyInTarget: 'namespace',
- dim_KeyInMap: templateQueryIdMap.namespace
- },
- Name: {
- dim_KeyInStorage: keyInStorage.group,
- dim_KeyInTarget: 'group',
- dim_KeyInMap: templateQueryIdMap.group
- }
-};
-/* harmony default export */ __webpack_exports__["default"] = (TDMQ_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tke/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/tke/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-
-
-
-
-
-
-var variableToArray = function variableToArray(variable) {
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(variable)) {
- return [];
- }
-
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isArray"])(variable)) {
- return variable;
- }
-
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isString"])(variable)) {
- return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["split"])(variable, ',').map(function (item) {
- return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["trim"])(item);
- });
- }
-
- return [];
-};
-
-var TKEDatasource =
-/** @class */
-function (_super) {
- __extends(TKEDatasource, _super);
-
- function TKEDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.InstanceAliasList = ['ClusterId', 'ClusterName'];
- _this.templateQueryIdMap = {
- instance: 'ClusterId'
- };
- _this.InvalidDimensions = {
- tke_cluster_instance_id: 'ClusterId'
- };
- _this.InstanceReqConfig = {
- service: 'tke',
- action: 'DescribeClusters',
- responseField: 'Clusters'
- };
- return _this;
- }
-
- TKEDatasource.prototype.getMonitorData = function (params, region, instances, target, options) {
- var _this = this;
-
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["GetServiceAPIInfo"])(region, 'monitor');
- var timeshift = Object(_common_utils__WEBPACK_IMPORTED_MODULE_2__["getTimeShiftInMs"])(target.timeshift);
- var conditions = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["reduce"])(target.conditions, function (prev, item) {
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(item.Key) || Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(item.Operator) || Object(lodash__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(item.Value)) {
- return prev;
- }
-
- return __spreadArray(__spreadArray([], Object(lodash__WEBPACK_IMPORTED_MODULE_0__["filter"])(prev, function (e) {
- return e.Key !== item.Key;
- }), true), [{
- Key: Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item.Key, false),
- Operator: Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item.Operator, false),
- Value: variableToArray(Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(_this.templateSrv, options.scopedVars, item.Value, true))
- }], false);
- }, [{
- Key: 'tke_cluster_instance_id',
- Operator: '=',
- Value: instances.map(function (item) {
- return item['ClusterId'];
- })
- }]);
- return this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Period: params.Period,
- MetricNames: [params.MetricName],
- Module: 'monitor',
- Namespace: 'QCE/TKE',
- EndTime: params.EndTime,
- StartTime: params.StartTime,
- Conditions: conditions,
- GroupBys: variableToArray(Object(_common_constants__WEBPACK_IMPORTED_MODULE_1__["ReplaceVariable"])(this.templateSrv, options.scopedVars, target.groupBys, true))
- }
- }, serviceInfo.service, {
- action: 'DescribeStatisticData',
- region: region
- }).then(function (response) {
- return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["flatten"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(response.Data, function (data) {
- return Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(data.Points, function (point) {
- var dimensionSort = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["sortBy"])(point.Dimensions, ['Name']);
-
- var dimensionString = __spreadArray(__spreadArray([], dimensionSort.splice(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["findIndex"])(dimensionSort, {
- Name: 'tke_cluster_instance_id'
- }), 1), true), dimensionSort, true).map(function (dimension) {
- return dimension.Value;
- }).join(' - ');
-
- var timeshiftString = timeshift > 0 ? "_".concat(target.timeshift) : '';
- return {
- target: "".concat(data.MetricName, " - ").concat(dimensionString).concat(timeshiftString),
- datapoints: Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(point.Values, function (value) {
- return [value.Value, value.Timestamp * 1000 + timeshift];
- })
- };
- });
- }));
- });
- };
-
- return TKEDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_3__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (TKEDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tke/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/tke/query.ts ***!
- \********************************************/
-/*! exports provided: QueryCtrl, sQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryCtrl", function() { return QueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sQuery", function() { return sQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tke/query_def.ts");
-
-
-
-
-var QueryCtrl =
-/** @class */
-function () {
- QueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function QueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.TKEFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_2__["TKEFilterFieldsDescriptor"];
- };
-
- $scope.onChecked = function (srcField, dstField) {
- if ($scope.target.queries[srcField] === true) {
- $scope.target.queries[dstField] = false;
- }
-
- $scope.onChange();
- };
-
- $scope.addCondition = function () {
- $scope.target.conditions.push({
- Key: '',
- Operator: '=',
- Value: ''
- });
- };
-
- $scope.deleteCondition = function (index) {
- var targetCondition = $scope.target.conditions[index];
-
- if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(targetCondition.Key) || Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(targetCondition.Operator) || Object(lodash__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(targetCondition.Value)) {
- $scope.target.conditions.splice(index, 1);
- } else {
- $scope.target.conditions.splice(index, 1);
- $scope.onRefresh();
- }
- };
-
- $scope.getOperator = function () {
- return Promise.resolve([{
- text: '=',
- value: '='
- }, {
- text: 'in',
- value: 'in'
- }]);
- };
-
- $scope.init();
- }
-
- return QueryCtrl;
-}();
-
-
-var template = "\n\n";
-function sQuery() {
- return {
- template: template,
- controller: QueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tkeQuery', sQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tke/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/tke/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, TKEFilterFieldsDescriptor, TKEInstanceAliasList, TKEGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TKEFilterFieldsDescriptor", function() { return TKEFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TKEInstanceAliasList", function() { return TKEInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TKEGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-
-var TKE_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'ClusterId',
- conditions: [],
- groupBys: '',
- queries: {
- Limit: 20,
- Offset: 0,
- instanceIdsChecked: false,
- filtersChecked: true,
- ClusterIds: [''],
- Filters: {
- ClusterName: [],
- ClusterType: [],
- ClusterStatus: [],
- 'tag-key': []
- }
- }
-};
-var TKEFilterFieldsDescriptor = [{
- key: 'ClusterName',
- enDescriptor: 'Cluster Name',
- cnDescriptor: '集群名',
- link: '',
- type: 'input'
-}, {
- key: 'ClusterType',
- enDescriptor: 'Cluster Type',
- cnDescriptor: '集群类型',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'ClusterStatus',
- enDescriptor: 'Cluster Status',
- cnDescriptor: '集群状态',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'Tags',
- enDescriptor: 'Tags',
- cnDescriptor: '标签键值对',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'vpc-id',
- enDescriptor: 'VPC',
- cnDescriptor: 'VPC',
- link: '',
- type: 'input'
-}, {
- key: 'tag-key',
- enDescriptor: 'Tag Key',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'tag-value',
- enDescriptor: 'Tag Value',
- cnDescriptor: '标签值',
- link: '',
- type: 'inputmulti'
-}];
-var TKEInstanceAliasList = ['ClusterId', 'ClusterName'];
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- var params = {};
-
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(queries)) {
- params.Limit = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Limit', 20) || 20;
- params.Offset = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(queries, 'Offset', 0) || 0;
-
- if (queries.instanceIdsChecked) {
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(queries.InstanceIds)) {
- var InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(queries.InstanceIds);
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).length > 0) {
- params.InstanceIds = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(InstanceIds).slice(0, 100);
- }
- }
- } else if (queries.filtersChecked) {
- var Filters_1 = [];
-
- lodash__WEBPACK_IMPORTED_MODULE_0___default.a.forEach(queries.Filters, function (item, key) {
- if (Filters_1.length > 9) {
- return;
- }
-
- if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isArray(item)) {
- item = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.compact(item);
-
- if (item.length > 0) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.uniq(item).slice(0, 5)
- });
- }
- } else if (lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isObject(item)) {
- if (!lodash__WEBPACK_IMPORTED_MODULE_0___default.a.isEmpty(lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []))) {
- Filters_1.push({
- Name: key,
- Values: lodash__WEBPACK_IMPORTED_MODULE_0___default.a.get(item, 'value', []).slice(0, 5)
- });
- }
- }
- });
-
- if (Filters_1.length > 0) {
- params.Filters = Filters_1;
- }
- }
- }
-
- return params;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (TKE_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tsf/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/tsf/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tsf/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var TSFDatasource =
-/** @class */
-function (_super) {
- __extends(TSFDatasource, _super);
-
- function TSFDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = 'QCE/TSF';
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["TSFInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["TSFInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- service: 'tsf',
- action: 'DescribeApplications',
- responseField: 'Content'
- };
- return _this;
- }
-
- return TSFDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (TSFDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tsf/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/tsf/query.ts ***!
- \********************************************/
-/*! exports provided: TSFQueryCtrl, tsfQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFQueryCtrl", function() { return TSFQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tsfQuery", function() { return tsfQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/tsf/query_def.ts");
-
-
-
-var TSFQueryCtrl =
-/** @class */
-function () {
- TSFQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function TSFQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.TSFFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["TSFFieldsDescriptor"];
- };
-
- $scope.init();
- }
-
- return TSFQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function tsfQuery() {
- return {
- template: template,
- controller: TSFQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- onChange: '&'
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('tsfQuery', tsfQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/tsf/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/tsf/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, TSFInvalidDemensions, templateQueryIdMap, TSFInstanceAliasList, TSFFieldsDescriptor, TSFGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFInvalidDemensions", function() { return TSFInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFInstanceAliasList", function() { return TSFInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFFieldsDescriptor", function() { return TSFFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TSFGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var ApplicationType = [{
- text: '所有',
- value: ''
-}, {
- text: '容器应用',
- value: 'C'
-}, {
- text: '普通应用/虚拟机应用',
- value: 'V'
-}];
-var MicroserviceType = [{
- text: '所有',
- value: ''
-}, {
- text: '普通应用',
- value: 'N'
-}, {
- text: 'Mesh应用',
- value: 'M'
-}, {
- text: '微服务网关应用',
- value: 'G'
-}, {
- text: '原生应用',
- value: 'NATIVE'
-}];
-var ApplicationResourceType = [{
- text: '默认资源类型',
- value: 'DEF'
-}, {
- text: '微服务网关资源',
- value: 'GW'
-}];
-var TSFFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputnumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputnumber',
- min: 1,
- max: 100
-}, {
- key: 'SearchWord',
- enDescriptor: 'SearchWord',
- cnDescriptor: '搜索关键字',
- link: '',
- type: 'input'
-}, {
- key: 'ApplicationIdList',
- enDescriptor: 'ApplicationIdList',
- cnDescriptor: '应用ID 组成的数组',
- link: '',
- type: 'inputmulti'
-}, {
- key: 'ApplicationType',
- enDescriptor: 'ApplicationType',
- cnDescriptor: '应用类型',
- link: '',
- type: 'select',
- list: ApplicationType
-}, {
- key: 'MicroserviceType',
- enDescriptor: 'MicroserviceType',
- cnDescriptor: '应用的微服务类型',
- link: '',
- type: 'select',
- list: MicroserviceType
-}, {
- key: 'ApplicationResourceTypeList',
- enDescriptor: 'ApplicationResourceTypeList',
- cnDescriptor: '应用资源类型数组',
- link: '',
- type: 'select',
- multiple: true,
- list: ApplicationResourceType
-}];
-var TSF_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'ApplicationId',
- queries: {
- Limit: 20,
- Offset: 0,
- SearchWord: '',
- OrderBy: '',
- OrderType: null,
- ApplicationType: '',
- MicroserviceType: '',
- ApplicationResourceTypeList: [],
- ApplicationIdList: []
- }
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-}
-
-var TSFInstanceAliasList = ['ApplicationId', 'ApplicationName'];
-var TSFInvalidDemensions = {
- applicationid: 'ApplicationId'
-};
-var templateQueryIdMap = {
- instance: 'ApplicationId'
-};
-/* harmony default export */ __webpack_exports__["default"] = (TSF_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/v_clb/datasource.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/v_clb/datasource.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/v_clb/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VCLBInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VCLBInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'clb',
- action: 'DescribeLoadBalancers',
- responseField: 'LoadBalancerSet'
- };
- return _this;
- }
-
- DCDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_4__["t"])(value)
- };
- }));
- };
-
- DCDatasource.prototype.getAllMetrics = function (region) {
- return __awaiter(this, void 0, void 0, function () {
- var serviceInfo, public_metrics, private_metrics, res;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_3__["GetServiceAPIInfo"])(region, 'monitor');
- return [4
- /*yield*/
- , this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Namespace: _query_def__WEBPACK_IMPORTED_MODULE_0__["clbNamespaceMap"]["public"]
- }
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeBaseMetrics'
- })];
-
- case 1:
- public_metrics = _a.sent().MetricSet;
- return [4
- /*yield*/
- , this.doRequest({
- url: this.url + serviceInfo.path,
- data: {
- Namespace: _query_def__WEBPACK_IMPORTED_MODULE_0__["clbNamespaceMap"]["private"]
- }
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeBaseMetrics'
- })];
-
- case 2:
- private_metrics = _a.sent().MetricSet;
- res = Object.values(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.keyBy(lodash__WEBPACK_IMPORTED_MODULE_2___default.a.concat(private_metrics, public_metrics), 'MetricName'));
- return [2
- /*return*/
- , res.map(function (t) {
- return Object(_query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"])(t);
- })];
- }
- });
- });
- };
-
- DCDatasource.prototype.getMetrics = function (region) {
- if (region === void 0) {
- region = 'ap-guangzhou';
- }
-
- return __awaiter(this, void 0, void 0, function () {
- var rawSet;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- return [4
- /*yield*/
- , this.getAllMetrics(region)];
-
- case 1:
- rawSet = _a.sent();
- return [2
- /*return*/
- , lodash__WEBPACK_IMPORTED_MODULE_2___default.a.compact(rawSet)];
- }
- });
- });
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/v_clb/query.ts":
-/*!**********************************************!*\
- !*** ./datasource/tc_monitor/v_clb/query.ts ***!
- \**********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/v_clb/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/v_clb/query_def.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/v_clb/query_def.ts ***!
- \**************************************************/
-/*! exports provided: default, VCLBFilterFieldsDescriptor, templateQueryIdMap, VCLBInstanceAliasList, VCLBInvalidDemensions, namespace, queryEditorName, queryEditorConfig, clbNamespaceMap, modifyDimensons, regionSupported, BMLBGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCLBFilterFieldsDescriptor", function() { return VCLBFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCLBInstanceAliasList", function() { return VCLBInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VCLBInvalidDemensions", function() { return VCLBInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clbNamespaceMap", function() { return clbNamespaceMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BMLBGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
-
-
-var namespace = 'QCE/V_CLB'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'vClbQuery';
-var VCLBInvalidDemensions = {
- InstanceId: 'LoadBalancerId' // vip: 'LoadBalancerVips',
- // loadBalancerPort: 'Port',
- // protocol: 'Protocol',
-
-}; // 要和文件名方式一致,ceip_summary=>CEIPSUMMARY
-
-var VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];
-var templateQueryIdMap = {
- instance: 'LoadBalancerId'
-};
-var ForwardTypes = [{
- text: '通用的负载均衡',
- value: 1
-}, {
- text: '传统的负载均衡',
- value: 0
-}];
-var OrderBy = [{
- text: 'LoadBalancerName',
- value: 'LoadBalancerName'
-}, {
- text: 'CreateTime',
- value: 'CreateTime'
-}, {
- text: 'Domain',
- value: 'Domain'
-}, {
- text: 'LoadBalancerType',
- value: 'LoadBalancerType'
-}];
-var OrderType = [{
- text: '升序',
- value: 0
-}, {
- text: '降序',
- value: 1
-}];
-var WithRs = [{
- text: '没有绑定后端服务',
- value: 0
-}, {
- text: '绑定后端服务',
- value: 1
-}, {
- text: '查询全部',
- value: -1
-}];
-var VCLBFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',
- link: '',
- type: 'inputNumber',
- min: 1
-}, {
- key: 'LoadBalancerIds',
- enDescriptor: 'LoadBalancer ID',
- cnDescriptor: '实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'LoadBalancerName',
- enDescriptor: 'LoadBalancer Name',
- cnDescriptor: '实例名称',
- link: '',
- type: 'input'
-}, {
- key: 'Forward',
- enDescriptor: 'Forward',
- cnDescriptor: '负载均衡实例类型',
- link: '',
- type: 'select',
- list: ForwardTypes
-}, {
- key: 'Domain',
- enDescriptor: 'Domain',
- cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',
- link: '',
- type: 'input'
-}, {
- key: 'LoadBalancerVips',
- enDescriptor: 'LoadBalancer Vips',
- cnDescriptor: '负载均衡实例的 VIP 地址',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'BackendPrivateIps',
- enDescriptor: 'BackendPrivate Ips',
- cnDescriptor: '负载均衡绑定的后端服务的内网 IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'BackendPublicIps',
- enDescriptor: 'BackendPublic Ips',
- cnDescriptor: '负载均衡绑定的后端服务的外网 IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ProjectId',
- enDescriptor: 'Project ID',
- cnDescriptor: '负载均衡实例所属的项目 ID',
- link: '',
- type: 'inputNumber'
-}, {
- key: 'VpcId',
- enDescriptor: 'Vpc ID',
- cnDescriptor: '负载均衡实例所属私有网络',
- link: '',
- type: 'input'
-}, {
- key: 'SecurityGroup',
- enDescriptor: 'Security Group',
- cnDescriptor: '安全组ID',
- link: '',
- type: 'input'
-}, {
- key: 'MasterZone',
- enDescriptor: 'Master Zone',
- cnDescriptor: '主可用区ID',
- link: '',
- type: 'input'
-}, {
- key: 'WithRs',
- enDescriptor: 'WithRs',
- cnDescriptor: '负载均衡是否绑定后端服务',
- link: '',
- type: 'select',
- list: WithRs
-}, {
- key: 'OrderBy',
- enDescriptor: 'OrderBy',
- cnDescriptor: '排序字段',
- link: '',
- type: 'select',
- list: OrderBy
-}, {
- key: 'OrderType',
- enDescriptor: 'OrderByType',
- cnDescriptor: '排序方式',
- link: '',
- type: 'select',
- list: OrderType
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',
- namespace: namespace,
- fieldDescriptor: VCLBFilterFieldsDescriptor
-};
-var LBFields = {
- LoadBalancerIds: [],
- Forward: undefined,
- LoadBalancerName: '',
- Domain: '',
- LoadBalancerVips: [],
- BackendPublicIps: [],
- BackendPrivateIps: [],
- Limit: 20,
- Offset: 0,
- ProjectId: undefined,
- WithRs: {},
- VpcId: '',
- SecurityGroup: '',
- MasterZone: '',
- OrderBy: {},
- OrderType: {}
-};
-var VCLB_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'LoadBalancerId',
- Port: '',
- Protocol: '',
- listener: '',
- // listenerAlias: 'ListenerId',
- queries: LBFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-} // regions for dropdown
-
-
-var regionSupported = [{
- value: 'ap-bangkok'
-}, {
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-jakarta'
-}, {
- value: 'ap-mumbai'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-shenzhen-fsi'
-}, {
- value: 'ap-singapore'
-}, {
- value: 'ap-tokyo'
-}, {
- value: 'eu-frankfurt'
-}, {
- value: 'eu-moscow'
-}, {
- value: 'na-ashburn'
-}, {
- value: 'na-siliconvalley'
-}, {
- value: 'na-toronto'
-}];
-var clbNamespaceMap = {
- "public": 'QCE/LB_PUBLIC',
- "private": 'QCE/LB_PRIVATE'
-};
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_1___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['InstanceId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (VCLB_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vbc/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/vbc/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vbc/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VBCInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VBCInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeCcns',
- responseField: 'CcnSet'
- };
- return _this;
- }
-
- DCDatasource.prototype.getFilterDropdown = function (_a) {
- var field = _a.field;
- return _super.prototype.getRegions.call(this);
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vbc/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/vbc/query.ts ***!
- \********************************************/
-/*! exports provided: VBCQueryCtrl, scfQuery */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCQueryCtrl", function() { return VBCQueryCtrl; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scfQuery", function() { return scfQuery; });
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grafana/app/core/core_module */ "grafana/app/core/core_module");
-/* harmony import */ var grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vbc/query_def.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-
-
-
-var ExtraFields = [// {
- // label: 'SRegion',
- // field: 'SRegion',
- // },
- // {
- // label: 'DRegion',
- // field: 'DRegion',
- // },
-];
-
-var VBCQueryCtrl =
-/** @class */
-function () {
- VBCQueryCtrl.$inject = ["$scope", "$rootScope"];
-
- /** @ngInject */
- function VBCQueryCtrl($scope, $rootScope) {
- $scope.init = function () {
- $scope.VBCFilterFieldsDescriptor = _query_def__WEBPACK_IMPORTED_MODULE_1__["VBCFilterFieldsDescriptor"];
- $scope.namespace = _query_def__WEBPACK_IMPORTED_MODULE_1__["namespace"];
- };
-
- $scope.getExtraFields = function () {
- return ExtraFields.filter(function (item) {
- var _a;
-
- return item.field in ((_a = $scope.dims) !== null && _a !== void 0 ? _a : {});
- });
- };
-
- $scope.getExtraDropdown = function (field) {
- var service = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceFromNamespace"])($scope.namespace); // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field })
-
- return $scope.datasource.getFilterDropdown(service, {
- field: field
- });
- };
-
- $scope.init();
- }
-
- return VBCQueryCtrl;
-}();
-
-
-var template = "\n\n";
-function scfQuery() {
- return {
- template: template,
- controller: VBCQueryCtrl,
- restrict: 'E',
- scope: {
- target: '=',
- showDetail: '=',
- region: '=',
- datasource: '=',
- getDropdownOptions: '&',
- onChange: '&',
- onRefresh: '&',
- dims: '='
- }
- };
-}
-grafana_app_core_core_module__WEBPACK_IMPORTED_MODULE_0___default.a.directive('vbcQuery', scfQuery);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vbc/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/vbc/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, VBCFilterFieldsDescriptor, templateQueryIdMap, VBCInstanceAliasList, VBCInvalidDemensions, namespace, queryEditorName, queryEditorConfig, VBCGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCFilterFieldsDescriptor", function() { return VBCFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCInstanceAliasList", function() { return VBCInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCInvalidDemensions", function() { return VBCInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VBCGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/VBC'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'vbcQuery';
-var VBCInvalidDemensions = {// CcnId: 'CcnId',
-}; // 需和文件名对应
-
-var VBCInstanceAliasList = ['CcnId', 'CcnName'];
-var templateQueryIdMap = {
- instance: 'CcnId'
-}; // select类型需要注意是{},multi后缀是[],dropdown是''
-
-var VBCFilterFields = {
- Limit: 20,
- Offset: 0,
- 'ccn-id': [],
- 'ccn-name': [],
- 'ccn-description': [],
- state: {}
-};
-var VBCFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'ccn-id',
- enDescriptor: 'ccn-id',
- cnDescriptor: 'CCN实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ccn-name',
- enDescriptor: 'ccn-name',
- cnDescriptor: 'CCN名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'ccn-description',
- enDescriptor: 'ccn-description',
- cnDescriptor: 'CCN描述',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'state',
- enDescriptor: 'state',
- cnDescriptor: '实例状态',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '隔离中',
- value: 'ISOLATED'
- }, {
- text: '运行中',
- value: 'AVAILABLE'
- }]
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199',
- namespace: namespace,
- fieldDescriptor: VBCFilterFieldsDescriptor
-};
-var VBC_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'CcnId',
- DRegion: '',
- SRegion: '',
- queries: VBCFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, false);
-} // const regionSupported = [
-// { text: '华北地区(北京)', value: 'ap-beijing' },
-// { text: '西南地区(成都)', value: 'ap-chengdu' },
-// { text: '西南地区(重庆)', value: 'ap-chongqing' },
-// { text: '华南地区(广州)', value: 'ap-guangzhou' },
-// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },
-// { text: '亚太南部(孟买)', value: 'ap-mumbai' },
-// { text: '华东地区(南京)', value: 'ap-nanjing' },
-// { text: '华东地区(上海)', value: 'ap-shanghai' },
-// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },
-// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },
-// { text: '亚太东南(新加坡)', value: 'ap-singapore' },
-// { text: '亚太东北(东京)', value: 'ap-tokyo' },
-// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },
-// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },
-// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },
-// { text: '北美地区(多伦多)', value: 'na-toronto' },
-// ];
-
-
-/* harmony default export */ __webpack_exports__["default"] = (VBC_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpc_net_detect/datasource.ts":
-/*!************************************************************!*\
- !*** ./datasource/tc_monitor/vpc_net_detect/datasource.ts ***!
- \************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpc_net_detect/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPCNETDETECTInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPCNETInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeNetDetects',
- responseField: 'NetDetectSet',
- interceptor: {// response: (data: unknown[]) =>[
- // {
- // "NetDetectId": "netd-12345678",
- // },
- // ],
- }
- };
- _this.MetricReqConfig = {
- resultFilter: _query_def__WEBPACK_IMPORTED_MODULE_0__["modifyDimensons"]
- };
- return _this;
- }
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpc_net_detect/query.ts":
-/*!*******************************************************!*\
- !*** ./datasource/tc_monitor/vpc_net_detect/query.ts ***!
- \*******************************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpc_net_detect/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpc_net_detect/query_def.ts":
-/*!***********************************************************!*\
- !*** ./datasource/tc_monitor/vpc_net_detect/query_def.ts ***!
- \***********************************************************/
-/*! exports provided: default, VPCNETFilterFieldsDescriptor, templateQueryIdMap, VPCNETDETECTInstanceAliasList, VPCNETInvalidDemensions, namespace, queryEditorName, queryEditorConfig, modifyDimensons, VPCNETDETECTGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETFilterFieldsDescriptor", function() { return VPCNETFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETDETECTInstanceAliasList", function() { return VPCNETDETECTInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETInvalidDemensions", function() { return VPCNETInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modifyDimensons", function() { return modifyDimensons; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPCNETDETECTGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-
-var namespace = 'QCE/VPC_NET_DETECT'; // 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称
-
-var queryEditorName = 'vpcNetDetectQuery';
-var VPCNETInvalidDemensions = {
- netdetectid: 'NetDetectId',
- netDetectId: 'NetDetectId'
-};
-var VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName'];
-var templateQueryIdMap = {
- instance: 'NetDetectId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var VPCNETFilterFields = {
- Limit: 20,
- Offset: 0,
- 'vpc-id': [],
- 'net-detect-id': [],
- 'subnet-id': [],
- 'net-detect-name': []
-};
-var VPCNETFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'vpc-id',
- enDescriptor: 'vpc-id',
- cnDescriptor: 'VPC实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'net-detect-id',
- enDescriptor: 'net-detect-id',
- cnDescriptor: '网络探测实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'subnet-id',
- enDescriptor: 'subnet-id',
- cnDescriptor: '子网实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'net-detect-name',
- enDescriptor: 'net-detect-name',
- cnDescriptor: '网络探测名称',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696',
- namespace: namespace,
- fieldDescriptor: VPCNETFilterFieldsDescriptor
-};
-var VPCNET_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'NetDetectId',
- queries: VPCNETFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_1__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-function modifyDimensons(metricItem) {
- var metricTmp = lodash__WEBPACK_IMPORTED_MODULE_0___default.a.cloneDeep(metricItem);
-
- metricTmp.Dimensions.forEach(function (item) {
- item.Dimensions = ['netDetectId'];
- });
- return metricTmp;
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (VPCNET_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpngw/datasource.ts":
-/*!***************************************************!*\
- !*** ./datasource/tc_monitor/vpngw/datasource.ts ***!
- \***************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpngw/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/constants */ "./datasource/common/constants.ts");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "lodash");
-/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNGWInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNGWInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeVpnGateways',
- responseField: 'VpnGatewaySet'
- };
- return _this;
- }
-
- DCDatasource.prototype.getFilterDropdown = function (_a) {
- var field = _a.field,
- region = _a.region;
-
- if (field === 'zone') {
- var serviceInfo = Object(_common_constants__WEBPACK_IMPORTED_MODULE_2__["GetServiceAPIInfo"])(region, 'cvm');
- return this.doRequest({
- url: this.url + serviceInfo.path
- }, serviceInfo.service, {
- region: region,
- action: 'DescribeZones'
- }).then(function (response) {
- return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.filter(lodash__WEBPACK_IMPORTED_MODULE_3___default.a.map(response.ZoneSet || [], function (item) {
- return {
- text: item.ZoneName,
- value: item.Zone,
- ZoneState: item.ZoneState,
- Zone: item.Zone
- };
- }), function (item) {
- return item.ZoneState === 'AVAILABLE';
- });
- });
- }
-
- return [];
- };
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpngw/query.ts":
-/*!**********************************************!*\
- !*** ./datasource/tc_monitor/vpngw/query.ts ***!
- \**********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpngw/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpngw/query_def.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/vpngw/query_def.ts ***!
- \**************************************************/
-/*! exports provided: default, VPNGWFilterFieldsDescriptor, templateQueryIdMap, VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, queryEditorName, queryEditorConfig, VPNGWGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWFilterFieldsDescriptor", function() { return VPNGWFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWInstanceAliasList", function() { return VPNGWInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWInvalidDemensions", function() { return VPNGWInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNGWGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/VPNGW';
-var queryEditorName = 'vpngwQuery';
-var VPNGWInvalidDemensions = {
- vpnGwId: 'VpnGatewayId'
-};
-var VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName'];
-var templateQueryIdMap = {
- instance: 'VpnGatewayId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var VPNGWFilterFields = {
- Limit: 20,
- Offset: 0,
- 'vpc-id': [],
- 'vpn-gateway-id': [],
- 'vpn-gateway-name': [],
- type: {},
- 'public-ip-address': [],
- 'renew-flag': {},
- zone: []
-};
-var VPNGWFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'vpc-id',
- enDescriptor: 'vpc-id',
- cnDescriptor: 'VPC实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpn-gateway-id',
- enDescriptor: 'vpn-gateway-id',
- cnDescriptor: 'VPN实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpn-gateway-name',
- enDescriptor: 'vpn-gateway-name',
- cnDescriptor: 'VPN实例名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'type',
- enDescriptor: 'type',
- cnDescriptor: 'VPN网关类型',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: 'IPSEC',
- value: 'IPSEC'
- }, {
- text: 'SSL',
- value: 'SSL'
- }]
-}, {
- key: 'public-ip-address',
- enDescriptor: 'public-ip-address',
- cnDescriptor: '公网IP',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'renew-flag',
- enDescriptor: 'renew-flag',
- cnDescriptor: '网关续费类型',
- link: '',
- type: 'select',
- multiple: true,
- list: [{
- text: '手动续费',
- value: 'NOTIFY_AND_MANUAL_RENEW'
- }, {
- text: '自动续费',
- value: 'NOTIFY_AND_AUTO_RENEW'
- }]
-}, {
- key: 'zone',
- enDescriptor: 'zone',
- cnDescriptor: 'VPN所在可用区',
- link: '',
- type: 'dropdownMulti'
-}];
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514',
- namespace: namespace,
- fieldDescriptor: VPNGWFilterFieldsDescriptor
-};
-var VPNGW_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'VpnGatewayId',
- queries: VPNGWFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (VPNGW_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpnx/datasource.ts":
-/*!**************************************************!*\
- !*** ./datasource/tc_monitor/vpnx/datasource.ts ***!
- \**************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpnx/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-
-
-
-var DCDatasource =
-/** @class */
-function (_super) {
- __extends(DCDatasource, _super);
-
- function DCDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNXInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["VPNXInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"]; // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致
-
- _this.InstanceReqConfig = {
- service: 'vpc',
- action: 'DescribeVpnConnections',
- responseField: 'VpnConnectionSet'
- };
- return _this;
- }
-
- return DCDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (DCDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpnx/query.ts":
-/*!*********************************************!*\
- !*** ./datasource/tc_monitor/vpnx/query.ts ***!
- \*********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/vpnx/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/vpnx/query_def.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/vpnx/query_def.ts ***!
- \*************************************************/
-/*! exports provided: default, VPNXFilterFieldsDescriptor, templateQueryIdMap, VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, queryEditorName, queryEditorConfig, VPNXGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXFilterFieldsDescriptor", function() { return VPNXFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXInstanceAliasList", function() { return VPNXInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXInvalidDemensions", function() { return VPNXInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VPNXGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/VPNX';
-var queryEditorName = 'vpnxQuery';
-var VPNXInvalidDemensions = {
- vpnConnId: 'VpnConnectionId'
-};
-var VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName'];
-var templateQueryIdMap = {
- instance: 'VpnConnectionId'
-}; // select类型需要注意是{},multi后缀是[]
-
-var VPNXFilterFields = {
- Limit: 20,
- Offset: 0,
- 'vpc-id': [],
- 'vpn-gateway-id': [],
- 'customer-gateway-id': [],
- 'vpn-connection-name': [],
- 'vpn-connection-id': []
-};
-var VPNXFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'vpc-id',
- enDescriptor: 'vpc-id',
- cnDescriptor: 'VPC实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpn-gateway-id',
- enDescriptor: 'vpn-gateway-id',
- cnDescriptor: 'VPN实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'customer-gateway-id ',
- enDescriptor: 'customer-gateway-id ',
- cnDescriptor: '对端网关实例ID',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpn-connection-name',
- enDescriptor: 'vpn-connection-name',
- cnDescriptor: '通道名称',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'vpn-connection-id',
- enDescriptor: 'vpn-connection-id',
- cnDescriptor: '通道实例ID',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515',
- namespace: namespace,
- fieldDescriptor: VPNXFilterFieldsDescriptor
-};
-var VPNX_STATE = {
- region: '',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'VpnConnectionId',
- queries: VPNXFilterFields
-};
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-/* harmony default export */ __webpack_exports__["default"] = (VPNX_STATE);
-
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/waf/datasource.ts":
-/*!*************************************************!*\
- !*** ./datasource/tc_monitor/waf/datasource.ts ***!
- \*************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/waf/query_def.ts");
-/* harmony import */ var _base_datasource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../_base/datasource */ "./datasource/tc_monitor/_base/datasource.ts");
-/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../locale */ "./locale/index.ts");
-var __extends = undefined && undefined.__extends || function () {
- var _extendStatics = function extendStatics(d, b) {
- _extendStatics = Object.setPrototypeOf || {
- __proto__: []
- } instanceof Array && function (d, b) {
- d.__proto__ = b;
- } || function (d, b) {
- for (var p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
- }
- };
-
- return _extendStatics(d, b);
- };
-
- return function (d, b) {
- if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-
- _extendStatics(d, b);
-
- function __() {
- this.constructor = d;
- }
-
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-}();
-
-var __assign = undefined && undefined.__assign || function () {
- __assign = Object.assign || function (t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
-
- for (var p in s) {
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- }
-
- return t;
- };
-
- return __assign.apply(this, arguments);
-};
-
-var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
-
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
-
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
-
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
-
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-
-var __generator = undefined && undefined.__generator || function (thisArg, body) {
- var _ = {
- label: 0,
- sent: function sent() {
- if (t[0] & 1) throw t[1];
- return t[1];
- },
- trys: [],
- ops: []
- },
- f,
- y,
- t,
- g;
- return g = {
- next: verb(0),
- "throw": verb(1),
- "return": verb(2)
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
- return this;
- }), g;
-
- function verb(n) {
- return function (v) {
- return step([n, v]);
- };
- }
-
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
-
- while (_) {
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
-
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
-
- case 4:
- _.label++;
- return {
- value: op[1],
- done: false
- };
-
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
-
- case 7:
- op = _.ops.pop();
-
- _.trys.pop();
-
- continue;
-
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
-
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
-
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
-
- if (t && _.label < t[2]) {
- _.label = t[2];
-
- _.ops.push(op);
-
- break;
- }
-
- if (t[2]) _.ops.pop();
-
- _.trys.pop();
-
- continue;
- }
-
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- }
-
- if (op[0] & 5) throw op[1];
- return {
- value: op[0] ? op[1] : void 0,
- done: true
- };
- }
-};
-
-
-
-
-
-var CDNDatasource =
-/** @class */
-function (_super) {
- __extends(CDNDatasource, _super);
-
- function CDNDatasource(instanceSettings, backendSrv, templateSrv) {
- var _this = _super.call(this, instanceSettings, backendSrv, templateSrv) || this;
-
- _this.Namespace = _query_def__WEBPACK_IMPORTED_MODULE_0__["namespace"];
- _this.InstanceAliasList = _query_def__WEBPACK_IMPORTED_MODULE_0__["WAFInstanceAliasList"];
- _this.InvalidDimensions = _query_def__WEBPACK_IMPORTED_MODULE_0__["WAFInvalidDemensions"];
- _this.templateQueryIdMap = _query_def__WEBPACK_IMPORTED_MODULE_0__["templateQueryIdMap"];
- _this.InstanceReqConfig = {
- // service: 'waf',
- action: 'DescribeDomains',
- responseField: 'Domains'
- };
- return _this;
- }
-
- CDNDatasource.prototype.getRegions = function () {
- return Promise.resolve(_query_def__WEBPACK_IMPORTED_MODULE_0__["regionSupported"].map(function (_a) {
- var value = _a.value;
- return {
- value: value,
- text: Object(_locale__WEBPACK_IMPORTED_MODULE_2__["t"])(value)
- };
- }));
- };
-
- CDNDatasource.prototype.metricFindQuery = function (query, regex) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2
- /*return*/
- , _super.prototype.metricFindQuery.call(this, __assign(__assign({}, query), {
- region: 'ap-guangzhou'
- }), regex)];
- });
- });
- };
-
- return CDNDatasource;
-}(_base_datasource__WEBPACK_IMPORTED_MODULE_1__["BaseDatasource"]);
-
-/* harmony default export */ __webpack_exports__["default"] = (CDNDatasource);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/waf/query.ts":
-/*!********************************************!*\
- !*** ./datasource/tc_monitor/waf/query.ts ***!
- \********************************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _base_query__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../_base/query */ "./datasource/tc_monitor/_base/query.ts");
-/* harmony import */ var _query_def__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query_def */ "./datasource/tc_monitor/waf/query_def.ts");
-
-
-Object(_base_query__WEBPACK_IMPORTED_MODULE_0__["default"])(_query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorName"], _query_def__WEBPACK_IMPORTED_MODULE_1__["queryEditorConfig"]);
-
-/***/ }),
-
-/***/ "./datasource/tc_monitor/waf/query_def.ts":
-/*!************************************************!*\
- !*** ./datasource/tc_monitor/waf/query_def.ts ***!
- \************************************************/
-/*! exports provided: default, WAFFilterFieldsDescriptor, templateQueryIdMap, WAFInstanceAliasList, WAFInvalidDemensions, namespace, regionSupported, queryEditorName, queryEditorConfig, WAFGetInstanceQueryParams */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFFilterFieldsDescriptor", function() { return WAFFilterFieldsDescriptor; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateQueryIdMap", function() { return templateQueryIdMap; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFInstanceAliasList", function() { return WAFInstanceAliasList; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFInvalidDemensions", function() { return WAFInvalidDemensions; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namespace", function() { return namespace; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regionSupported", function() { return regionSupported; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorName", function() { return queryEditorName; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryEditorConfig", function() { return queryEditorConfig; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WAFGetInstanceQueryParams", function() { return GetInstanceQueryParams; });
-/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ "./datasource/common/utils.ts");
-
-var namespace = 'QCE/WAF';
-var queryEditorName = 'wafQuery';
-var WAFFilterFields = {
- Limit: 20,
- Offset: 0,
- origin: [],
- domain: [],
- resourceId: [],
- status: {},
- serviceType: {},
- projectId: [],
- domainType: {},
- fullUrlCache: {},
- https: {},
- originPullProtocol: {},
- tagKey: []
-};
-var WAFFilterFieldsDescriptor = [{
- key: 'Offset',
- enDescriptor: 'Offset',
- cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',
- link: '',
- type: 'inputNumber',
- min: 0
-}, {
- key: 'Limit',
- enDescriptor: 'Limit',
- cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',
- link: '',
- type: 'inputNumber',
- min: 1,
- max: 100
-}, {
- key: 'origin',
- enDescriptor: 'origin',
- cnDescriptor: '主源站',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'domain',
- enDescriptor: 'domain',
- cnDescriptor: '域名',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'resourceId',
- enDescriptor: 'resourceId',
- cnDescriptor: '域名id',
- link: '',
- type: 'inputMulti'
-}, {
- key: 'status',
- enDescriptor: 'status',
- cnDescriptor: '域名状态',
- link: '',
- type: 'select',
- list: [{
- text: 'online',
- value: 'online'
- }, {
- text: 'offline',
- value: 'offline'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'serviceType',
- enDescriptor: 'serviceType',
- cnDescriptor: '业务类型',
- link: '',
- type: 'select',
- list: [{
- text: 'web',
- value: 'web'
- }, {
- text: 'download',
- value: 'download'
- }, {
- text: 'media',
- value: 'media'
- }]
-}, {
- key: 'projectId',
- enDescriptor: 'projectId',
- cnDescriptor: '项目ID',
- link: '',
- type: 'inputNumberMulti'
-}, {
- key: 'domainType',
- enDescriptor: 'domainType',
- cnDescriptor: '主源站类型',
- link: '',
- type: 'select',
- list: [{
- text: '自有源',
- value: 'cname'
- }, {
- text: 'cos接入',
- value: 'cos'
- }]
-}, {
- key: 'fullUrlCache',
- enDescriptor: 'fullUrlCache',
- cnDescriptor: '全路径缓存',
- link: '',
- type: 'select',
- list: [{
- text: '打开',
- value: 'on'
- }, {
- text: '关闭',
- value: 'off'
- }]
-}, {
- key: 'https',
- enDescriptor: 'https',
- cnDescriptor: '是否配置https',
- link: '',
- type: 'select',
- list: [{
- text: 'on',
- value: 'on'
- }, {
- text: 'off',
- value: 'off'
- }, {
- text: 'processing',
- value: 'processing'
- }]
-}, {
- key: 'originPullProtocol',
- enDescriptor: 'originPullProtocol',
- cnDescriptor: '回源协议类型',
- link: '',
- type: 'select',
- list: [{
- text: 'http',
- value: 'http'
- }, {
- text: 'follow',
- value: 'follow'
- }, {
- text: 'https',
- value: 'https'
- }]
-}, {
- key: 'tagKey',
- enDescriptor: 'tagKey',
- cnDescriptor: '标签键',
- link: '',
- type: 'inputMulti'
-}]; // 各产品实例列表detail配置
-
-var queryEditorConfig = {
- instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118',
- namespace: namespace,
- fieldDescriptor: WAFFilterFieldsDescriptor
-};
-var WAF_STATE = {
- region: 'ap-guangzhou',
- metricName: '',
- metricUnit: '',
- period: undefined,
- dimensionObject: null,
- instance: '',
- instanceAlias: 'Domain',
- queries: WAFFilterFields
-};
-var regionSupported = [{
- value: 'ap-beijing'
-}, {
- value: 'ap-chengdu'
-}, {
- value: 'ap-chongqing'
-}, {
- value: 'ap-guangzhou'
-}, {
- value: 'ap-hongkong'
-}, {
- value: 'ap-nanjing'
-}, {
- value: 'ap-shanghai'
-}, {
- value: 'ap-shanghai-fsi'
-}, {
- value: 'ap-seoul'
-}, {
- value: 'ap-singapore'
-}];
-
-function GetInstanceQueryParams(queries) {
- if (queries === void 0) {
- queries = {};
- }
-
- return Object(_common_utils__WEBPACK_IMPORTED_MODULE_0__["instanceQueryParamsBaseParse"])(queries, true);
-}
-
-var WAFInstanceAliasList = ['Domain', 'ProjectId'];
-var WAFInvalidDemensions = {
- projectId: 'ProjectId',
- domain: 'Domain'
-};
-var templateQueryIdMap = {
- instance: 'Domain'
-};
-/* harmony default export */ __webpack_exports__["default"] = (WAF_STATE);
-
-
-/***/ }),
-
-/***/ "./locale/en_US.ts":
-/*!*************************!*\
- !*** ./locale/en_US.ts ***!
- \*************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-var en_US = {
- language: 'Language',
- enable_intranet_API_mode: 'Enable Intranet API Mode',
- cloud_database: 'Cloud Database',
- cloud_load_balancer: 'Cloud Load Balancer',
- virtual_private_cloud: 'Virtual Private Cloud',
- content_delivery_network: 'Content Delivery Network',
- message_queue: 'Message Queue',
- direct_connect: 'Direct Connect',
- cloud_physical_machine: 'Cloud Physical Machine',
- elastic_mapReduce: 'Elastic MapReduce',
- edge_computing_machine: 'Edge Computing Machine',
- // namespace
- RUM: 'Real User Monitoring(RUM)',
- CLS: 'Cloud Log Service(CLS)',
- CVM: 'Cloud Virtual Machine(CVM)',
- CDB: 'TencentDB for MySQL(CDB)',
- CMONGO: 'TencentDB for MongoDB(CMONGO)',
- POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)',
- REDIS: 'TencentDB for Redis(REDIS)',
- REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)',
- SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)',
- CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)',
- TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)',
- TDMYSQL: 'TDSQL for MySQL(TDMYSQL)',
- PCX: 'Peering Connection(PCX)',
- BWP: 'Bandwidth Packet(BWP)',
- NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)',
- VPNGW: 'VPN Gateway(VPNGW)',
- VPNX: 'VPN Tunnel(VPNX)',
- DCG: 'Direct Connect Gateway(DCG)',
- CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)',
- VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)',
- VBC: 'Cloud Connect Network(VBC)',
- LB: 'Elastic IP(LB)',
- LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)',
- LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)',
- LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)',
- CDN: 'Chinese Mainland Domain(CDN)',
- CDN_LOG_DATA: 'Province(CDN_LOG_DATA)',
- OV_CDN: 'Overseas Domain(OV_CDN)',
- SCF_V2: 'Serverless Cloud Function(SCF)',
- CFS: 'Cloud File Storage(CFS)',
- COS: 'Cloud Object Storage(COS)',
- CKAFKA: 'Message Queue CKafka(CKAFKA)',
- CMQ: 'Message Queue for Queue Service(CMQ)',
- CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)',
- TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)',
- TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)',
- TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)',
- DCX: 'Direct Connect for Dedicated Tunnel(DCX)',
- DC: 'Direct Connect for Connection(DC)',
- CPM: 'Cloud Physical Machine(CPM)',
- BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)',
- BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)',
- BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)',
- CES: 'Elasticsearch Service(CES)',
- BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)',
- APIGATEWAY: 'API Gateway(APIGATEWAY)',
- QAAP: 'Global Application Acceleration Platform(GAAP)',
- ECM: 'Edge Computing Machine for Computation and Networking(ECM)',
- ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)',
- ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)',
- GSE: 'Game Server Elastic-scaling(GSE)',
- TKE: 'Tencent Kubernetes Engine(TKE)',
- ECDN: 'Enterprise Content Delivery Network(ECDN)',
- WAF: 'Web Application Firewall(WAF)',
- // others
- multi_scene: 'Multi-Scene',
- lite: 'Lite',
- cloud_monitor: 'Cloud Monitor',
- cloud_log_service: 'Cloud Log Service',
- real_user_monitoring: 'Real User Monitoring',
- apm_monitoring: 'Application Monitoring',
- region: 'Region',
- log_topic: 'Log Topic',
- syntax_rule: 'Syntax Rule',
- max_result_num: 'Maximum result number',
- search_statement: 'Search Statement',
- time_unit: 'Time unit',
- seconds: 'seconds',
- search_description: 'Search for instances according to specific query conditions, and pull the first 20 instances by default',
- // region
- 'ap-guangzhou': 'South China(Guangzhou)',
- 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)',
- 'ap-guangzhou-open': 'South China(Guangzhou OPEN)',
- 'ap-shenzhen': 'South China(Shenzhen)',
- 'ap-qingyuan': 'South China(Qingyuan)',
- 'ap-shanghai': 'East China(Shanghai)',
- 'ap-shanghai-fsi': 'East China(Shanghai Finance)',
- 'ap-jinan-ec': 'East China(Jinan)',
- 'ap-hangzhou-ec': 'East China(Hangzhou)',
- 'ap-nanjing': 'East China(Nanjing)',
- 'ap-fuzhou-ec': 'East China(Fuzhou)',
- 'ap-hefei-ec': 'East China(Hefei)',
- 'ap-beijing': 'North China region(Beijing)',
- 'ap-tianjin': 'North China region(Tianjin)',
- 'ap-beijing-fsi': 'North China region(Beijing Finance)',
- 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)',
- 'ap-wuhan-ec': 'Central China(Wuhan)',
- 'ap-changsha-ec': 'Central China(Changsha)',
- 'ap-zhengzhou-ec': 'Central China(Zhengzhou)',
- 'ap-chengdu': 'Southwest China(Chengdu)',
- 'ap-chongqing': 'Southwest China(Chongqing)',
- 'ap-xian-ec': "Northwest region(Xi'an)",
- 'ap-shenyang-ec': 'Northeast China(Shenyang)',
- 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)',
- 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)',
- 'ap-seoul': 'Northeast Asia(Seoul)',
- 'ap-tokyo': 'Northeast Asia(Tokyo)',
- 'ap-singapore': 'Southeast Asia(Singapore)',
- 'ap-bangkok': 'Southeast Asia(Bangkok)',
- 'ap-jakarta': 'Southeast Asia(Jakarta)',
- 'na-siliconvalley': 'US West(Silicon Valley)',
- 'eu-frankfurt': 'Europe(Frankfurt)',
- 'eu-moscow': 'Europe(Northeastern Europe)',
- 'ap-mumbai': 'South Asia(Mumbai)',
- 'na-ashburn': 'US East(Virginia)',
- 'sa-saopaulo': 'South America(São Paulo)',
- 'na-toronto': 'North America(Toronto)'
-};
-/* harmony default export */ __webpack_exports__["default"] = (en_US);
-
-/***/ }),
-
-/***/ "./locale/index.ts":
-/*!*************************!*\
- !*** ./locale/index.ts ***!
- \*************************/
-/*! exports provided: Language, t, setLanguage, getLanguage */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Language", function() { return Language; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return t; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLanguage", function() { return setLanguage; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLanguage", function() { return getLanguage; });
-/* harmony import */ var _zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zh_CN */ "./locale/zh_CN.ts");
-/* harmony import */ var _en_US__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en_US */ "./locale/en_US.ts");
-
-
-var locale_language = 'zh-CN';
-var Language;
-
-(function (Language) {
- Language["Chinese"] = "zh-CN";
- Language["English"] = "en-US";
-})(Language || (Language = {}));
-
-var t = function t(key) {
- if (locale_language === Language.Chinese) {
- return _zh_CN__WEBPACK_IMPORTED_MODULE_0__["default"][key];
- }
-
- return _en_US__WEBPACK_IMPORTED_MODULE_1__["default"][key];
-};
-var setLanguage = function setLanguage(language) {
- locale_language = language;
-};
-var getLanguage = function getLanguage() {
- return locale_language;
-};
-
-/***/ }),
-
-/***/ "./locale/zh_CN.ts":
-/*!*************************!*\
- !*** ./locale/zh_CN.ts ***!
- \*************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-var zh_CN = {
- language: '语言',
- enable_intranet_API_mode: '开启内网API模式',
- cloud_database: '云数据库',
- cloud_load_balancer: '负载均衡',
- virtual_private_cloud: '私有网络',
- content_delivery_network: '内容分发网络',
- message_queue: '消息队列',
- direct_connect: '专线接入',
- cloud_physical_machine: '黑石物理服务器',
- elastic_mapReduce: '弹性 MapReduce',
- edge_computing_machine: '边缘计算机器',
- // namespace
- RUM: '前端性能监控(RUM)',
- APM: '应用性能监控(APM)',
- CLS: '日志服务(CLS)',
- CVM: '云服务器(CVM)',
- CDB: '云数据库 MySQL(CDB)',
- CMONGO: '云数据库 MongoDB(CMONGO)',
- POSTGRES: '云数据库 PostgreSQL(POSTGRES)',
- REDIS: '云数据库 Redis(REDIS)',
- REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)',
- SQLSERVER: '云数据库 SQL Server(SQLSERVER)',
- CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)',
- TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)',
- TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)',
- PCX: '私有网络-对等连接(PCX)',
- BWP: '私有网络-带宽包(BWP)',
- NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)',
- VPNGW: '私有网络-VPN 网关(VPNGW)',
- VPNX: '私有网络-VPN 通道(VPNX)',
- DCG: '私有网络-专线网关(DCG)',
- CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)',
- VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)',
- VBC: '私有网络-云联网(VBC)',
- LB: '私有网络-弹性公网IP(LB)',
- LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)',
- LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)',
- LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)',
- CDN: '国内域名(CDN)',
- CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)',
- OV_CDN: '国外域名(OV_CDN)',
- SCF_V2: '云函数(SCF)',
- CFS: '文件存储(CFS)',
- COS: '对象存储(COS)',
- CKAFKA: '消息队列 CKafka(CKAFKA)',
- CMQ: '消息队列-队列服务监控(CMQ)',
- CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)',
- TDMQ: '消息队列 Pulsar 版(TDMQ)',
- TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)',
- TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)',
- DCX: '专线接入-专用通道(DCX)',
- DC: '专线接入-物理专线(DC)',
- CPM: '黑石物理服务器(CPM)',
- BM_PCX: '黑石对等连接(BM_PCX)',
- BM_LB: '黑石外网负载均衡(BM_LB)',
- BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)',
- CES: 'Elasticsearch指标(CES)',
- BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)',
- APIGATEWAY: 'API 网关(APIGATEWAY)',
- QAAP: '全球应用加速(GAAP)',
- ECM: '边缘计算和网络监控(ECM)',
- ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)',
- ECM_LB: '边缘计算负载均衡(ECM_LB)',
- GSE: '游戏服务器伸缩(GSE)',
- TKE: '容器服务(TKE)',
- ECDN: '全站加速网络(ECDN)',
- WAF: 'Web 应用防火墙(WAF)',
- // others
- multi_scene: '多场景版',
- lite: '精简版',
- cloud_monitor: '云监控',
- cloud_log_service: '日志服务',
- real_user_monitoring: '前端性能监控',
- apm_monitoring: '应用性能监控',
- region: '地域',
- log_topic: '日志主题',
- syntax_rule: '语法规则',
- max_result_num: '最大结果条数',
- search_statement: '检索语句',
- time_unit: 'Time unit',
- seconds: 'seconds',
- search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例',
- // region
- 'ap-guangzhou': '华南地区(广州)',
- 'ap-shenzhen-fsi': '华南地区(深圳金融)',
- 'ap-guangzhou-open': '华南地区(广州OPEN)',
- 'ap-shenzhen': '华南地区(深圳)',
- 'ap-qingyuan': '华南地区(清远)',
- 'ap-shanghai': '华东地区(上海)',
- 'ap-shanghai-fsi': '华东地区(上海金融)',
- 'ap-jinan-ec': '华东地区(济南)',
- 'ap-hangzhou-ec': '华东地区(杭州)',
- 'ap-nanjing': '华东地区(南京)',
- 'ap-fuzhou-ec': '华东地区(福州)',
- 'ap-hefei-ec': '华东地区(合肥)',
- 'ap-beijing': '华北地区(北京)',
- 'ap-tianjin': '华北地区(天津)',
- 'ap-beijing-fsi': '华北地区(北京金融)',
- 'ap-shijiazhuang-ec': '华北地区(石家庄)',
- 'ap-wuhan-ec': '华中地区(武汉)',
- 'ap-changsha-ec': '华中地区(长沙)',
- 'ap-zhengzhou-ec': '华中地区(郑州)',
- 'ap-chengdu': '西南地区(成都)',
- 'ap-chongqing': '西南地区(重庆)',
- 'ap-xian-ec': '西北地区(西安)',
- 'ap-shenyang-ec': '东北地区(沈阳)',
- 'ap-taipei': '港澳台地区(中国台北)',
- 'ap-hongkong': '港澳台地区(中国香港)',
- 'ap-seoul': '亚太东北(首尔)',
- 'ap-tokyo': '亚太东北(东京)',
- 'ap-singapore': '亚太东南(新加坡)',
- 'ap-bangkok': '亚太东南(曼谷)',
- 'ap-jakarta': '亚太东南(雅加达)',
- 'na-siliconvalley': '美国西部(硅谷)',
- 'eu-frankfurt': '欧洲地区(法兰克福)',
- 'eu-moscow': '欧洲地区(莫斯科)',
- 'ap-mumbai': '亚太南部(孟买)',
- 'na-ashburn': '美国东部(弗吉尼亚)',
- 'sa-saopaulo': '南美地区(圣保罗)',
- 'na-toronto': '北美地区(多伦多)'
-};
-/* harmony default export */ __webpack_exports__["default"] = (zh_CN);
-
-/***/ }),
-
-/***/ "@grafana/data":
-/*!********************************!*\
- !*** external "@grafana/data" ***!
- \********************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_data__;
-
-/***/ }),
-
-/***/ "@grafana/runtime":
-/*!***********************************!*\
- !*** external "@grafana/runtime" ***!
- \***********************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_runtime__;
-
-/***/ }),
-
-/***/ "grafana/app/core/core_module":
-/*!***************************************!*\
- !*** external "app/core/core_module" ***!
- \***************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = __WEBPACK_EXTERNAL_MODULE_grafana_app_core_core_module__;
-
-/***/ }),
-
-/***/ "lodash":
-/*!*************************!*\
- !*** external "lodash" ***!
- \*************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__;
-
-/***/ }),
-
-/***/ "moment":
-/*!*************************!*\
- !*** external "moment" ***!
- \*************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = __WEBPACK_EXTERNAL_MODULE_moment__;
-
-/***/ })
-
-/******/ })});;
+define("TencentCloudMonitorGrafanaApp",["lodash","app/core/core_module","@grafana/data","@grafana/runtime","moment"],(function(e,t,n,r,i){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=212)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r={language:"语言",enable_intranet_API_mode:"开启内网API模式",cloud_database:"云数据库",cloud_load_balancer:"负载均衡",virtual_private_cloud:"私有网络",content_delivery_network:"内容分发网络",message_queue:"消息队列",direct_connect:"专线接入",cloud_physical_machine:"黑石物理服务器",elastic_mapReduce:"弹性 MapReduce",edge_computing_machine:"边缘计算机器",RUM:"前端性能监控(RUM)",APM:"应用性能监控(APM)",CLS:"日志服务(CLS)",CVM:"云服务器(CVM)",CDB:"云数据库 MySQL(CDB)",CMONGO:"云数据库 MongoDB(CMONGO)",POSTGRES:"云数据库 PostgreSQL(POSTGRES)",REDIS:"云数据库 Redis(REDIS)",REDIS_MEM:"云数据库 Redis内存版(5s)(REDIS_MEM)",SQLSERVER:"云数据库 SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"云数据库 TcaplusDB(TCAPLUS)",TDMYSQL:"分布式数据库 TDSQL MySQL(TDMYSQL)",PCX:"私有网络-对等连接(PCX)",BWP:"私有网络-带宽包(BWP)",NAT_GATEWAY:"私有网络-NAT 网关(NAT_GATEWAY)",VPNGW:"私有网络-VPN 网关(VPNGW)",VPNX:"私有网络-VPN 通道(VPNX)",DCG:"私有网络-专线网关(DCG)",CEIP_SUMMARY:"私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)",VPC_NET_DETECT:"私有网络-网络探测(VPC_NET_DETECT)",VBC:"私有网络-云联网(VBC)",LB:"私有网络-弹性公网IP(LB)",LB_PUBLIC:"公网负载均衡监控指标(LB_PUBLIC)",LB_PRIVATE:"内网负载均衡四层协议监控指标(LB_PRIVATE)",LOADBALANCE:"内网负载均衡七层协议监控指标(LOADBALANCE)",CDN:"国内域名(CDN)",CDN_LOG_DATA:"省份域名(CDN_LOG_DATA)",OV_CDN:"国外域名(OV_CDN)",SCF_V2:"云函数(SCF)",CFS:"文件存储(CFS)",COS:"对象存储(COS)",CKAFKA:"消息队列 CKafka(CKAFKA)",CMQ:"消息队列-队列服务监控(CMQ)",CMQTOPIC:"消息队列-主题订阅监控(CMQTOPIC)",TDMQ:"消息队列 Pulsar 版(TDMQ)",TDMQ_ROCKETMQ:"消息队列 RocketMQ 版(ROCKETMQ)",TDMQ_RABBITMQ:"消息队列 RabbitMQ 版(RABBITMQ)",DCX:"专线接入-专用通道(DCX)",DC:"专线接入-物理专线(DC)",CPM:"黑石物理服务器(CPM)",BM_PCX:"黑石对等连接(BM_PCX)",BM_LB:"黑石外网负载均衡(BM_LB)",BM_INTRA_LB:"黑石内网负载均衡(BM_INTRA_LB)",CES:"Elasticsearch指标(CES)",BLOCK_STORAGE:"云硬盘(BLOCK_STORAGE)",APIGATEWAY:"API 网关(APIGATEWAY)",QAAP:"全球应用加速(GAAP)",ECM:"边缘计算和网络监控(ECM)",ECM_BLOCK_STORAGE:"边缘计算存储监控(ECM_BLOCK_STORAGE)",ECM_LB:"边缘计算负载均衡(ECM_LB)",GSE:"游戏服务器伸缩(GSE)",TKE:"容器服务(TKE)",ECDN:"全站加速网络(ECDN)",WAF:"Web 应用防火墙(WAF)",multi_scene:"多场景版",lite:"精简版",cloud_monitor:"云监控",cloud_log_service:"日志服务",real_user_monitoring:"前端性能监控",apm_monitoring:"应用性能监控",region:"地域",log_topic:"日志主题",syntax_rule:"语法规则",max_result_num:"最大结果条数",search_statement:"检索语句",time_unit:"Time unit",seconds:"seconds",search_description:"按照具体的查询条件搜索实例,默认拉取前 20 条实例","ap-guangzhou":"华南地区(广州)","ap-shenzhen-fsi":"华南地区(深圳金融)","ap-guangzhou-open":"华南地区(广州OPEN)","ap-shenzhen":"华南地区(深圳)","ap-qingyuan":"华南地区(清远)","ap-shanghai":"华东地区(上海)","ap-shanghai-fsi":"华东地区(上海金融)","ap-jinan-ec":"华东地区(济南)","ap-hangzhou-ec":"华东地区(杭州)","ap-nanjing":"华东地区(南京)","ap-fuzhou-ec":"华东地区(福州)","ap-hefei-ec":"华东地区(合肥)","ap-beijing":"华北地区(北京)","ap-tianjin":"华北地区(天津)","ap-beijing-fsi":"华北地区(北京金融)","ap-shijiazhuang-ec":"华北地区(石家庄)","ap-wuhan-ec":"华中地区(武汉)","ap-changsha-ec":"华中地区(长沙)","ap-zhengzhou-ec":"华中地区(郑州)","ap-chengdu":"西南地区(成都)","ap-chongqing":"西南地区(重庆)","ap-xian-ec":"西北地区(西安)","ap-shenyang-ec":"东北地区(沈阳)","ap-taipei":"港澳台地区(中国台北)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-tokyo":"亚太东北(东京)","ap-singapore":"亚太东南(新加坡)","ap-bangkok":"亚太东南(曼谷)","ap-jakarta":"亚太东南(雅加达)","na-siliconvalley":"美国西部(硅谷)","eu-frankfurt":"欧洲地区(法兰克福)","eu-moscow":"欧洲地区(莫斯科)","ap-mumbai":"亚太南部(孟买)","na-ashburn":"美国东部(弗吉尼亚)","sa-saopaulo":"南美地区(圣保罗)","na-toronto":"北美地区(多伦多)"},i={language:"Language",enable_intranet_API_mode:"Enable Intranet API Mode",cloud_database:"Cloud Database",cloud_load_balancer:"Cloud Load Balancer",virtual_private_cloud:"Virtual Private Cloud",content_delivery_network:"Content Delivery Network",message_queue:"Message Queue",direct_connect:"Direct Connect",cloud_physical_machine:"Cloud Physical Machine",elastic_mapReduce:"Elastic MapReduce",edge_computing_machine:"Edge Computing Machine",RUM:"Real User Monitoring(RUM)",CLS:"Cloud Log Service(CLS)",CVM:"Cloud Virtual Machine(CVM)",CDB:"TencentDB for MySQL(CDB)",CMONGO:"TencentDB for MongoDB(CMONGO)",POSTGRES:"TencentDB for PostgreSQL(POSTGRES)",REDIS:"TencentDB for Redis(REDIS)",REDIS_MEM:"TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)",SQLSERVER:"TencentDB for SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"TencentDB for TcaplusDB(TCAPLUS)",TDMYSQL:"TDSQL for MySQL(TDMYSQL)",PCX:"Peering Connection(PCX)",BWP:"Bandwidth Packet(BWP)",NAT_GATEWAY:"NAT Gateway(NAT_GATEWAY)",VPNGW:"VPN Gateway(VPNGW)",VPNX:"VPN Tunnel(VPNX)",DCG:"Direct Connect Gateway(DCG)",CEIP_SUMMARY:"Anycast EIP(CEIP_SUMMARY)",VPC_NET_DETECT:"Network Detection(VPC_NET_DETECT)",VBC:"Cloud Connect Network(VBC)",LB:"Elastic IP(LB)",LB_PUBLIC:"Public Network CLB(LB_PUBLIC)",LB_PRIVATE:"Private Network CLB Layer-4 Protocol(LB_PRIVATE)",LOADBALANCE:"Private Network CLB Layer-7 Protocol(LOADBALANCE)",CDN:"Chinese Mainland Domain(CDN)",CDN_LOG_DATA:"Province(CDN_LOG_DATA)",OV_CDN:"Overseas Domain(OV_CDN)",SCF_V2:"Serverless Cloud Function(SCF)",CFS:"Cloud File Storage(CFS)",COS:"Cloud Object Storage(COS)",CKAFKA:"Message Queue CKafka(CKAFKA)",CMQ:"Message Queue for Queue Service(CMQ)",CMQTOPIC:"Message Queue for Topic Subscription(CMQTOPIC)",TDMQ:"Tencent Distributed Message Queue for Pulsar(TDMQ)",TDMQ_ROCKETMQ:"Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)",TDMQ_RABBITMQ:"Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)",DCX:"Direct Connect for Dedicated Tunnel(DCX)",DC:"Direct Connect for Connection(DC)",CPM:"Cloud Physical Machine(CPM)",BM_PCX:"Cloud Physical Machine for Peering Connection(BM_PCX)",BM_LB:"Cloud Physical Machine for Public Network CLB(BM_LB)",BM_INTRA_LB:"Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)",CES:"Elasticsearch Service(CES)",BLOCK_STORAGE:"Cloud Block Storage(BLOCK_STORAGE)",APIGATEWAY:"API Gateway(APIGATEWAY)",QAAP:"Global Application Acceleration Platform(GAAP)",ECM:"Edge Computing Machine for Computation and Networking(ECM)",ECM_BLOCK_STORAGE:"Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)",ECM_LB:"Edge Computing Machine for Layer-4 CLB(ECM_LB)",GSE:"Game Server Elastic-scaling(GSE)",TKE:"Tencent Kubernetes Engine(TKE)",ECDN:"Enterprise Content Delivery Network(ECDN)",WAF:"Web Application Firewall(WAF)",multi_scene:"Multi-Scene",lite:"Lite",cloud_monitor:"Cloud Monitor",cloud_log_service:"Cloud Log Service",real_user_monitoring:"Real User Monitoring",apm_monitoring:"Application Monitoring",region:"Region",log_topic:"Log Topic",syntax_rule:"Syntax Rule",max_result_num:"Maximum result number",search_statement:"Search Statement",time_unit:"Time unit",seconds:"seconds",search_description:"Search for instances according to specific query conditions, and pull the first 20 instances by default","ap-guangzhou":"South China(Guangzhou)","ap-shenzhen-fsi":"South China(Shenzhen Finance)","ap-guangzhou-open":"South China(Guangzhou OPEN)","ap-shenzhen":"South China(Shenzhen)","ap-qingyuan":"South China(Qingyuan)","ap-shanghai":"East China(Shanghai)","ap-shanghai-fsi":"East China(Shanghai Finance)","ap-jinan-ec":"East China(Jinan)","ap-hangzhou-ec":"East China(Hangzhou)","ap-nanjing":"East China(Nanjing)","ap-fuzhou-ec":"East China(Fuzhou)","ap-hefei-ec":"East China(Hefei)","ap-beijing":"North China region(Beijing)","ap-tianjin":"North China region(Tianjin)","ap-beijing-fsi":"North China region(Beijing Finance)","ap-shijiazhuang-ec":"North China region(Shijiazhuang)","ap-wuhan-ec":"Central China(Wuhan)","ap-changsha-ec":"Central China(Changsha)","ap-zhengzhou-ec":"Central China(Zhengzhou)","ap-chengdu":"Southwest China(Chengdu)","ap-chongqing":"Southwest China(Chongqing)","ap-xian-ec":"Northwest region(Xi'an)","ap-shenyang-ec":"Northeast China(Shenyang)","ap-taipei":"Hong Kong, Macau and Taiwan (China)(Taipei, China)","ap-hongkong":"Hong Kong, Macau and Taiwan (China)(Hong Kong, China)","ap-seoul":"Northeast Asia(Seoul)","ap-tokyo":"Northeast Asia(Tokyo)","ap-singapore":"Southeast Asia(Singapore)","ap-bangkok":"Southeast Asia(Bangkok)","ap-jakarta":"Southeast Asia(Jakarta)","na-siliconvalley":"US West(Silicon Valley)","eu-frankfurt":"Europe(Frankfurt)","eu-moscow":"Europe(Northeastern Europe)","ap-mumbai":"South Asia(Mumbai)","na-ashburn":"US East(Virginia)","sa-saopaulo":"South America(São Paulo)","na-toronto":"North America(Toronto)"};n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return c})),n.d(t,"c",(function(){return s})),n.d(t,"b",(function(){return u}));var o,a="zh-CN";!function(e){e.Chinese="zh-CN",e.English="en-US"}(o||(o={}));var c=function(e){return a===o.Chinese?r[e]:i[e]},s=function(e){a=e},u=function(){return a}},function(e,t,n){"use strict";var r=n(0),i=n.n(r),o=n(197),a=n.n(o),c=n(20),s=n(69),u=n.n(s),l=function(){return(l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&-1===t._InstanceAliasValue.indexOf(r[o].timeshift)&&(t._InstanceAliasValue+="_".concat(r[o].timeshift)),t[e]=d.getDimensionsVal(t,p,y),d.checkKeys.length>0&&d.checkKeys.forEach((function(n){t[n]=t[e]})),n[e]={Name:e,Value:t[e]},[2]}}))},d=this,m=0,y=e,g.label=1;case 1:return m0){var r=i.a.cloneDeep(t);return r[n].timeshift="",m(m([],e,!0),[r,t],!1)}return m(m([],e,!0),[t],!1)}),[]).map((function(r){return d(t,void 0,void 0,(function(){var t,o,l,p,d,m,y,h,g,v,b,I,D=this;return f(this,(function(f){switch(f.label){case 0:return t=Object(c.j)(this.templateSrv,e.scopedVars,r[n].instance,!0),[4,s.a.getInstance(this.service)];case 1:o=f.sent(),l=Object(u.c)(r[n].timeshift),t=[].concat(t).map((function(e){var t,n;try{return JSON.parse(e)}catch(r){return o?null!==(n=i.a.cloneDeep(o.find((function(t){return t[D.templateQueryIdMap.instance]===e}))))&&void 0!==n?n:{}:null===(t=D.getDefaultInsObj)||void 0===t?void 0:t.call(D,e)}})),p=Object(c.j)(this.templateSrv,e.scopedVars,r[n].region,!1),d=[],m=0,y=t,f.label=2;case 2:return m=g)return(null==f?void 0:f.response)?f.response(r):r;var v=Object(c.k)(g,(null==o?void 0:o.Limit)||100),b=[];return i.a.forEach(v,(function(r){b.push(n.getInstances(e,p(p({},r),t)))})),Promise.all(b).then((function(e){return i.a.forEach(e,(function(e){r=i.a.concat(r,e)})),(null==f?void 0:f.response)?f.response(r):r})).catch((function(e){return(null==f?void 0:f.response)?f.response(r):r}))}))},e.prototype.isValidConfigField=function(e){return e&&e.length>0},e.prototype.testDatasource=function(){var e=this;return this.isValidConfigField(this.secretId)?Promise.all([this.getRegions(),this.getMetrics(),this.getInstances("ap-guangzhou",{Offset:0,Limit:1})]).then((function(t){var n=i.a.get(t,"[0].Error",{}),r=i.a.get(t,"[1].Error",{}),o=i.a.get(t,"[2].Error",{}),a=i.a.get(n,"Code",""),c=i.a.get(r,"Code",""),s=i.a.get(o,"Code","");if(a||c||s){var u=[];a&&u.push(i.a.get(n,"Code")),c&&u.push(i.a.get(r,"Code")),s&&u.push(i.a.get(o,"Code"));var l=i.a.join(i.a.compact(i.a.uniq(u)),"; ");return{service:e.service,status:"error",message:l}}return{namespace:e.namespace,service:e.service,status:"success",message:"Successfully queried the ".concat(e.service," service."),title:"Success"}})).catch((function(t){var n="".concat(e.service," service:");return n+=t.statusText?t.statusText+"; ":"",i.a.get(t,"data.error.code","")?n+=t.data.error.code+". "+t.data.error.message:i.a.get(t,"data.error","")?n+=t.data.error:i.a.get(t,"data","")?n+=t.data:n+="Cannot connect to ".concat(e.service," service."),{service:e.service,status:"error",message:n}})):{service:this.service,status:"error",message:"The SecretId/SecretKey field is required."}},e.prototype.doRequest=function(e,t,n){return void 0===n&&(n={}),d(this,void 0,void 0,(function(){return f(this,(function(r){switch(r.label){case 0:return[4,Object(c.c)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return i.a.get(e,"data.Response",{})})).catch((function(e){throw e}))]}}))}))},e}()},,function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return d})),n.d(t,"f",(function(){return f})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return y}));var r=n(0),i=n.n(r),o=n(20),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t?r.push({Name:o,Values:i.a.uniq(e).slice(0,5)}):n[o]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t?r.push({Name:o,Values:i.a.get(e,"value",[]).slice(0,5)}):n[o]=i.a.get(e,"value")):null!=e&&""!==e&&(t?r.push({Name:o,Values:e}):n[o]=e)})),t&&r.length>0)return n.Filters=r,n}return n}function d(e){return i.a.get(i.a.find(o.SERVICES,(function(t){return t.service===e})),"namespace")}function f(e){return e.reduce((function(e,t){var n=t.namespace,r=t.label,i=t.groupName,o=void 0===i?r:i,a=e.find((function(e){return e.label===o}));return a?(a.items.push({label:r,value:n}),e):(e.push({label:o,value:o,items:[{label:r,value:n}]}),e)}),[]).map((function(e){return 1===e.items.length?{label:e.items[0].label,value:e.items[0].value}:e}))}var m=function(e,t,n){try{var r=JSON.parse(e),i=JSON.parse(t);return r[n]===i[n]}catch(n){return e===t}},y=function(e){var t=/^(\d+)([d|h|m|s])$/.exec(e);if(!t)return 0;var n=parseInt(t[1],10);switch(t[2]){case"d":return 86400*n*1e3;case"h":return 3600*n*1e3;case"m":return 60*n*1e3;case"s":return 1e3*n}return 0}},function(e,n){e.exports=t},function(e,t,n){"use strict";n.r(t);var r=n(6),i=n.n(r),o=n(2);t.default=function(e,t){var n,r,a=(n=t,function(){function e(e,t){Object.assign(e,n),e.getDropdown=function(t){var n=Object(o.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t,region:e.region})}}return e.$inject=["$scope","$rootScope"],e}());i.a.directive(e,(r=a,function(){return{template:'\n\n',controller:r,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}))}},function(e,t){e.exports=n},function(e,t,n){"use strict";var r=function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["InstanceId","InstanceName"],u=["TopicId","TopicName"],l={instance:"InstanceId",topicId:"TopicId",groupName:"GroupName",partition:"PartitionId"},p=new Proxy({topicId:"TopicId",topicName:"TopicName",consumerGroup:"GroupName",partition:"PartitionId"},{get:function(e,t){return"instanceid"===String(t).toLocaleLowerCase()?"InstanceId":e[t]}}),d={TopicList:"TopicList",GroupList:"GroupList",PartitionList:"PartitionList"},f={TopicId:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},TopicName:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},GroupName:{dim_KeyInStorage:d.GroupList,dim_KeyInTarget:"consumerGroup",dim_KeyInMap:l.groupName},PartitionId:{dim_KeyInStorage:d.PartitionList,dim_KeyInTarget:"partition",dim_KeyInMap:l.partition}};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"LOADBALANCEFieldsDescriptor",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return l})),n.d(t,"LOADBALANCEListenerAliasList",(function(){return p})),n.d(t,"LOADBALANCEServerAliasList",(function(){return d})),n.d(t,"LOADBALANCEVALIDDIMENSIONS",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return y})),n.d(t,"CANDIATEDIMENSIONS",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return h})),n.d(t,"queryEditorConfig",(function(){return c})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(5),i="QCE/LOADBALANCE",o="loadBalanceQuery",a=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],c={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:i,fieldDescriptor:a},s={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",servers:"",serverPort:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function u(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var l=["LoadBalancerId","LoadBalancerName","LoadBalancerVips"],p=["ListenerId","ListenerName","Port"],d=["PrivateIpAddresses","InstanceId"],f={vip:"LoadBalancerVips",loadBalancerPort:"Port",protocol:"Protocol",lanIp:"PrivateIpAddresses",port:"ServerPort"},m={LoadBalancerVips:"AddressIPv6"},y={instance:"LoadBalancerId",listener:"ListenerId",servers:"PrivateIpAddresses",port:"Port"},h={listener:"ListenerList",servers:"ServersList"},g={Port:{dim_KeyInStorage:h.listener,dim_KeyInTarget:"listener",dim_KeyInMap:y.listener},Protocol:{dim_KeyInStorage:h.listener,dim_KeyInTarget:"listener",dim_KeyInMap:y.listener},PrivateIpAddresses:{dim_KeyInStorage:h.servers,dim_KeyInTarget:"servers",dim_KeyInMap:y.servers},ServerPort:{dim_KeyInStorage:h.servers,dim_KeyInTarget:"serverPort",dim_KeyInIns:"Port",dim_KeyInMap:y.port}};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"TDMQInstanceAliasList",(function(){return u})),n.d(t,"TDMQInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return h})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"regionSupported",(function(){return m})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return f}));var r=n(5),i=n(0),o=n.n(i),a="QCE/TDMQ",c="tdmqQuery",s={tenantId:"ClusterId",tenant:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},u=["ClusterId","ClusterName"],l={instance:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",topicName:"",environmentId:"",queries:{Limit:20,Offset:0}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var m=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){-1!==e.Dimensions.indexOf("topicName")&&-1===e.Dimensions.indexOf("environmentId")&&e.Dimensions.push("environmentId")})),t}var h={topicName:"topicName",environmentId:"environmentId"},g={TopicName:{dim_KeyInStorage:h.topicName,dim_KeyInTarget:"topicName",dim_KeyInMap:l.topicName},EnvironmentId:{dim_KeyInStorage:h.environmentId,dim_KeyInTarget:"environmentId",dim_KeyInMap:l.environmentId}};t.default=d},,function(e,t,n){"use strict";n.r(t),n.d(t,"GSEFilterFieldsDescriptor",(function(){return m})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"GSEInstanceAliasList",(function(){return l})),n.d(t,"GSEInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return y})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"modifyDimensons",(function(){return b})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"fleetId",(function(){return c})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"GSEGetInstanceQueryParams",(function(){return g}));var r=n(5),i=n(0),o=n.n(i),a="QCE/GSE",c="FleetId",s="gseQuery",u={instanceid:"InstanceId",fleetid:"FleetId",queuename:"Name"},l=["InstanceId","PrivateIpAddress","IpAddress"],p={instance:"InstanceId",Name:"Name",FleetId:c},d={fleet:"fleet",queue:"queueName"},f={FleetId:{dim_KeyInStorage:d.fleet,dim_KeyInTarget:"FleetId",dim_KeyInMap:p.FleetId},Name:{dim_KeyInStorage:d.queue,dim_KeyInTarget:"Name",dim_KeyInMap:p.Name}},m=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceId",enDescriptor:"resourceName",cnDescriptor:"资源名称",link:"",type:"input"},{key:"FleetId",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"input"}],y={instanceDocUrl:"https://cloud.tencent.com/document/api/1165/42604",namespace:a,fieldDescriptor:m},h={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",FleetId:"",Name:"",queries:{Limit:20,Offset:0,InstanceId:"",FleetId:""}};function g(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var v=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-ashburn"},{value:"na-siliconvalley"}];function b(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return u[e]||e}))})),t}t.default=h},function(e,t,n){"use strict";n.r(t),n.d(t,"DCDBFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"DCDBInstanceAliasList",(function(){return s})),n.d(t,"DCDBInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"keyInStorage",(function(){return h})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"DCDBGetInstanceQueryParams",(function(){return y}));var r=n(0),i=n(5),o="QCE/TDMYSQL",a="dcdbQuery",c={nodeid:"NodeId",instanceid:"InstanceId",shardid:"ShardInstanceId",ShardId:"ShardInstanceId"},s=["InstanceId","InstanceName"],u={instance:"InstanceId",NodeId:"NodeId",ShardInstanceId:"ShardInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例 ID 查询",link:"",type:"inputMulti"},{key:"SearchName",enDescriptor:"SearchName",cnDescriptor:"搜索的字段名,当前支持的值有:instancename、vip、all",link:"",type:"input"},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"搜索的关键字",link:"",type:"input"},{key:"ProjectIds",enDescriptor:"ProjectIds",cnDescriptor:"按项目 ID 查询",link:"",type:"inputNumberMulti"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络 ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"私有网络的子网 ID",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"projectId",value:"projectId"},{text:"createtime",value:"createtime"},{text:"instancename",value:"instancename"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"私有网络 ID",link:"",type:"select",list:[{text:"desc",value:"desc"},{text:"asc",value:"asc"}]},{key:"ExclusterType",enDescriptor:"ExclusterType",cnDescriptor:"集群类型",link:"",type:"select",list:[{text:"非独享集群",value:1},{text:"独享集群",value:2},{text:"全部",value:0},{text:"asc",value:"asc"}]},{key:"ExclusterIds",enDescriptor:"ExclusterIds",cnDescriptor:"独享集群ID",link:"",type:"inputMulti"},{key:"FilterInstanceType",enDescriptor:"FilterInstanceType",cnDescriptor:"实例类型过滤",link:"",type:"select",multiple:!0,list:[{text:"独享实例",value:1},{text:"主实例",value:2},{text:"灾备实例",value:3}]}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/557/16140",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",ShardId:"",NodeId:"",queries:{Limit:20,Offset:0,InstanceIds:[],SearchName:"",SearchKey:"",ProjectIds:[],VpcId:"",SubnetId:"",OrderBy:{},OrderByType:{},ExclusterType:{},ExclusterIds:[],FilterInstanceType:{}}},f={shardid:"ShardId",instanceid:"InstanceId",nodeid:"NodeId"};function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return f[e]||e}))})),t}function y(e){void 0===e&&(e={});var t=Object(i.d)(e,!1);return t.IsFilterVpc=!1,t.IsFilterExcluster=!1,(t.VpcId||t.SubnetId)&&(t.IsFilterVpc=!0),t.ExclusterType&&(t.IsFilterExcluster=!0),Object(r.isArray)(t.FilterInstanceType)&&(t.FilterInstanceType=t.FilterInstanceType.join(",")),t}var h={NodeId:"NodeId",ShardInstanceId:"ShardId"},g={NodeId:{dim_KeyInStorage:h.NodeId,dim_KeyInTarget:"NodeId",dim_KeyInMap:u.NodeId},ShardInstanceId:{dim_KeyInStorage:h.ShardInstanceId,dim_KeyInTarget:"ShardId",dim_KeyInMap:u.ShardInstanceId}},v=[{text:"华北地区(北京)",value:"ap-beijing"},{text:"西南地区(成都)",value:"ap-chengdu"},{text:"西南地区(重庆)",value:"ap-chongqing"},{text:"华南地区(广州)",value:"ap-guangzhou"},{text:"港澳台地区(中国香港)",value:"ap-hongkong"},{text:"亚太南部(孟买)",value:"ap-mumbai"},{text:"华东地区(南京)",value:"ap-nanjing"},{text:"华东地区(上海)",value:"ap-shanghai"},{text:"华东地区(上海金融)",value:"ap-shanghai-fsi"},{text:"华南地区(深圳金融)",value:"ap-shenzhen-fsi"},{text:"亚太东南(新加坡)",value:"ap-singapore"},{text:"亚太东北(东京)",value:"ap-tokyo"},{text:"欧洲地区(法兰克福)",value:"eu-frankfurt"},{text:"美国东部(弗吉尼亚)",value:"na-ashburn"},{text:"美国西部(硅谷)",value:"na-siliconvalley"},{text:"北美地区(多伦多)",value:"na-toronto"}];t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemFieldsDescriptor",(function(){return c})),n.d(t,"RedisMemInvalidDemensions",(function(){return p})),n.d(t,"REDISMEMInstanceAliasList",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"namespace",(function(){return a})),n.d(t,"NodeType",(function(){return f})),n.d(t,"REDISMEMGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var l=["InstanceId","InstanceName","WanIp"],p={instanceid:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},d={instance:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},f=["Redis","Proxy"];t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQRABBITMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return p}));var r=n(5),i="QCE/RABBITMQ",o="tdmqQuery",a={instanceid:"InstanceId",node:"NodeName"},c=["InstanceId","InstanceName"],s={instance:"InstanceId",node:"NodeName"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",node:"",queries:{Limit:20,Offset:0}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={node:"NodeName"},m={NodeName:{dim_KeyInStorage:f.node,dim_KeyInTarget:"node",dim_KeyInMap:s.node}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQROCKETMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQROCKETMQGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o="QCE/ROCKETMQ",a={tenant:"ClusterId",namespace:"NamespaceId",group:"Name"},c=["ClusterId","ClusterName"],s={instance:"ClusterId",namespace:"NamespaceId",group:"Name"},u=[{key:"includeVip",enDescriptor:"includeVip",cnDescriptor:"包含专享集群",link:"",type:"select",list:[{text:"是",value:"true"},{text:"否",value:"false"}]}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",namespace:"",group:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIdList:[""],Filters:{includeVip:{text:"是",value:"true"}}}};function p(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.ClusterIdList)){var n=i.a.compact(e.ClusterIdList);i.a.uniq(n).length>0&&(t.ClusterIdList=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:[i.a.get(e,"value",[])].slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={namespace:"NamespaceId",group:"Name"},m={NamespaceId:{dim_KeyInStorage:f.namespace,dim_KeyInTarget:"namespace",dim_KeyInMap:s.namespace},Name:{dim_KeyInStorage:f.group,dim_KeyInTarget:"group",dim_KeyInMap:s.group}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"InitServiceState",(function(){return c})),n.d(t,"SERVICES",(function(){return o})),n.d(t,"Datasources",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return s})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(1),i=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c=new Proxy({},{get:function(e,t,n){if("string"==typeof t){if(t.startsWith("id4"))return"ClusterId";if(t.startsWith("host4"))return"Ip"}return Reflect.get(e,t,n)},has:function(e,t){return!0}}),s={instance:"ClusterId",node:"Ip"},u={node:"nodeIP"},l={Ip:{dim_KeyInStorage:u.node,dim_KeyInTarget:"nodeIP",dim_KeyInMap:s.node}},p=["ClusterId","ClusterName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",nodeIP:"",queries:{Offset:0,Limit:10,DisplayStrategy:"",OrderBy:{},Order:{},InstanceIds:[],ProjectId:-1,OrderField:"",Asc:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"VCLBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"VCLBInstanceAliasList",(function(){return u})),n.d(t,"VCLBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"clbNamespaceMap",(function(){return h})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"regionSupported",(function(){return y})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/V_CLB",c="vClbQuery",s={InstanceId:"LoadBalancerId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var y=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],h={public:"QCE/LB_PUBLIC",private:"QCE/LB_PRIVATE"};function g(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=f},,function(e,t,n){"use strict";n.r(t),n.d(t,"cynosdbMysqlFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"CYNOSDBMYSQLInstanceAliasList",(function(){return f})),n.d(t,"CYNOSDBInvalidDemensions",(function(){return y})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"regionSupported",(function(){return u})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"checkKeys",(function(){return h})),n.d(t,"CYNOSDBMYSQLGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(5),a="QCE/CYNOSDB_MYSQL",c="cynosdbMysqlQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:1e3},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例id列表",link:"",type:"inputMulti"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"创建时间",value:"CREATETIME"},{text:"过期时间",value:"PERIODENDTIME"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序类型",link:"",type:"select",list:[{text:"升序",value:"ASC"},{text:"降序",value:"DESC"}]},{key:"DbType",enDescriptor:"DbType",cnDescriptor:"引擎类型",link:"",type:"select",list:[{text:"MYSQL",value:"MYSQL"},{text:"POSTGRESQL",value:"POSTGRESQL"}]}],u=[{value:"ap-beijing"},{value:"ap-guangzhou"},{value:"ap-nanjing"},{value:"ap-shanghai"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/1003/48334",namespace:a,fieldDescriptor:s},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,OrderBy:{},OrderByType:{},InstanceIds:[],DbType:{}}};function d(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var f=["InstanceId","InstanceName"],m={instance:"InstanceId"},y={instanceid:"InstanceId",instanceId:"InstanceId"},h=["instanceId"];function g(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryDescriptor",(function(){return o})),n.d(t,"SCFInstanceAliasList",(function(){return s})),n.d(t,"SCFInvalidDemensions",(function(){return u})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"regionSupported",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"SCFGetInstanceQueryParams",(function(){return c})),n.d(t,"SCFDefaultDimensionList",(function(){return m}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"支持FunctionName模糊匹配",link:"",type:"input"},{key:"Namespace",enDescriptor:"Namespace",cnDescriptor:"云函数命名空间",link:"",type:"input"},{key:"Description",enDescriptor:"Description",cnDescriptor:"函数描述,支持模糊搜索",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"AddTime",value:"AddTime"},{text:"ModTime",value:"ModTime"},{text:"FunctionName",value:"FunctionName"}]},{key:"Order",enDescriptor:"Order Direction",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"ASC",value:"ASC"},{text:"DESC",value:"DESC"}]}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FunctionName",version:"",queries:{Offset:0,Limit:20,OrderBy:{},Order:{},SearchKey:"",Namespace:"",Description:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FunctionId","FunctionName"],u={functionName:"FunctionName",namespace:"Namespace",version:"Version"},l={instance:"FunctionName",version:"Version"},p=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],d={version:"version"},f={Version:{dim_KeyInStorage:d.version,dim_KeyInTarget:"version",dim_KeyInMap:l.version}};t.default=a;var m=["functionName","namespace","version"]},function(e,t,n){"use strict";n.r(t),n.d(t,"CLSFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CLSInstanceAliasList",(function(){return u})),n.d(t,"CLSInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return y})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"CLSGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/CLS",c="clsQuery",s={},u=["TopicId","TopicName"],l={instance:"TopicId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"topicName",enDescriptor:"topicName",cnDescriptor:"日志主题名称",link:"",type:"inputMulti"},{key:"topicId",enDescriptor:"topicId",cnDescriptor:"日志主题ID",link:"",type:"inputMulti"},{key:"logsetName",enDescriptor:"logsetName",cnDescriptor:"日志集名称",link:"",type:"inputMulti"},{key:"logsetId",enDescriptor:"logsetId",cnDescriptor:"日志集ID",link:"",type:"inputMulti"},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"},{key:"tag:tagKey",enDescriptor:"tag - tagKey",cnDescriptor:"标签键值对",link:"",type:"inputMulti"},{key:"storageType",enDescriptor:"storageType",cnDescriptor:"日志主题的存储类型",link:"",type:"select",list:[{text:"实时存储",value:"hot"},{text:"离线存储",value:"cold"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/614/56454",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicId",uin:"",queries:{Limit:20,Offset:0,topicName:[],topicId:[],logsetName:[],logsetId:[],tagKey:[],"tag:tagKey":[],storageType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var y=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["uin","TopicId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"SQLSERVERNETFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"SQLSERVERInstanceAliasList",(function(){return u})),n.d(t,"SQLSERVERInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return f})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"SQLSERVERGetInstanceQueryParams",(function(){return h}));var r=n(5),i=n(0),o=n.n(i),a="QCE/SQLSERVER",c="sqlserverQuery",s={resourceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputNumber"},{key:"Status",enDescriptor:"Status",cnDescriptor:"实例状态",link:"",type:"select",list:[{text:"申请中",value:1},{text:"运行中",value:2},{text:"受限运行中 (主备切换中)",value:3},{text:"已隔离",value:4},{text:"回收中",value:5},{text:"已回收",value:6},{text:"任务执行中",value:7},{text:"已下线",value:8},{text:"实例扩容中",value:9},{text:"实例迁移中",value:10},{text:"只读",value:11},{text:"重启中",value:12}]},{key:"InstanceIdSet",enDescriptor:"InstanceIdSet",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"PayMode",enDescriptor:"PayMode",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"包年包月",value:1},{text:"按量计费",value:0}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"实例所属VPC的唯一字符串ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"实例所属子网的唯一字符串ID",link:"",type:"input"},{key:"VipSet",enDescriptor:"VipSet",cnDescriptor:"实例内网地址列表",link:"",type:"inputMulti"},{key:"InstanceNameSet",enDescriptor:"InstanceNameSet",cnDescriptor:"实例名称列表, 模糊查询",link:"",type:"inputMulti"},{key:"VersionSet",enDescriptor:"VersionSet",cnDescriptor:"实例版本代号列表",link:"",type:"inputMulti"},{key:"Zone",enDescriptor:"Zone",cnDescriptor:"实例可用区",link:"",type:"dropdown"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/238/19969",namespace:a,fieldDescriptor:p},f=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-moscow"},{value:"na-siliconvalley"}],m={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:null,Status:{},InstanceIdSet:[],PayMode:{},VpcId:"",SubnetId:"",VipSet:[],InstanceNameSet:[],VersionSet:[],Zone:""}};function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["resourceId"]})),t}function h(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=m},function(e,t,n){"use strict";n.r(t),n.d(t,"BMINTRALBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMINTRALBInstanceAliasList",(function(){return u})),n.d(t,"BMINTRALBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return y})),n.d(t,"BMINTRALBGetInstanceQueryParams",(function(){return h}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_INTRA_LB",c="bmIntraLbQuery",s={vip:"LoadBalancerVips",vpcId:"VpcId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}},m=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function y(e){var t=o.a.map(m,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}function h(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMLBInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return h})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_LB",c="bmLbQuery",s={vip:"LoadBalancerVips"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var y=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function h(e){var t=o.a.map(y,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"BMPCXFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMPCXInstanceAliasList",(function(){return u})),n.d(t,"BMPCXInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"BMPCXGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/BM_PCX",c="bmPcxQuery",s={peeringConnectionId:"VpcPeerConnectionId"},u=["VpcPeerConnectionId","VpcPeerConnectionName"],l={instance:"VpcPeerConnectionId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"VpcPeerConnectionIds",enDescriptor:"VpcPeerConnectionIds",cnDescriptor:"对等连接实例ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/product/1024/36903",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpcPeerConnectionId",queries:{Limit:20,Offset:0,VpcPeerConnectionIds:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["peeringConnectionId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CBSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"CBSInstanceAliasList",(function(){return s})),n.d(t,"CBSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"isValidMetric",(function(){return m})),n.d(t,"CBSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(5),o="QCE/BLOCK_STORAGE",a="cbsQuery",c={diskId:"DiskId",InstanceId:"InstanceId",diskname:"DiskName",unInstanceId:"InstanceId"},s=["DiskId","DiskName"],u={instance:"DiskId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DiskIds",enDescriptor:"DiskIds",cnDescriptor:"云硬盘ID",link:"",type:"inputMulti"},{key:"Order",enDescriptor:"Order",cnDescriptor:"排列顺序",link:"",type:"select",list:[{text:"升序排列",value:"ASC"},{text:"降序排列",value:"DESC"}]},{key:"OrderField",enDescriptor:"OrderField",cnDescriptor:"排序的依据字段",link:"",type:"select",list:[{text:"云盘的创建时间排序",value:"CREATE_TIME"},{text:"云盘的到期时间排序",value:"DEADLINE"}]},{key:"ReturnBindAutoSnapshotPolicy",enDescriptor:"ReturnBindAutoSnapshotPolicy",cnDescriptor:"否需要返回云盘绑定的定期快照策略ID",link:"",type:"switch"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/362/16315",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DiskId",queries:{Limit:20,Offset:0,DiskIds:[],OrderField:[],Order:[],ReturnBindAutoSnapshotPolicy:!1}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!1)}function m(e){void 0===e&&(e={});var t=r.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==r.indexOf(t,"diskId")}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNPROVINCEFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CDNPROVINCEInstanceAliasList",(function(){return c})),n.d(t,"CDNPROVINCEInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"CDNPROVINCEGetInstanceQueryParams",(function(){return p}));var r=n(5),i="QCE/CDN_LOG_DATA",o="cdnProvinceQuery",a={domain:"Domain",projectid:"ProjectId",province:"district",appid:"AppId"},c=["Domain","ProjectId"],s={instance:"Domain"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"origin",enDescriptor:"origin",cnDescriptor:"主源站",link:"",type:"inputMulti"},{key:"domain",enDescriptor:"domain",cnDescriptor:"域名",link:"",type:"inputMulti"},{key:"resourceId",enDescriptor:"resourceId",cnDescriptor:"域名id",link:"",type:"inputMulti"},{key:"status",enDescriptor:"status",cnDescriptor:"域名状态",link:"",type:"select",list:[{text:"online",value:"online"},{text:"offline",value:"offline"},{text:"processing",value:"processing"}]},{key:"serviceType",enDescriptor:"serviceType",cnDescriptor:"业务类型",link:"",type:"select",list:[{text:"web",value:"web"},{text:"download",value:"download"},{text:"media",value:"media"}]},{key:"projectId",enDescriptor:"projectId",cnDescriptor:"项目ID",link:"",type:"inputNumberMulti"},{key:"domainType",enDescriptor:"domainType",cnDescriptor:"主源站类型",link:"",type:"select",list:[{text:"自有源",value:"cname"},{text:"cos接入",value:"cos"}]},{key:"fullUrlCache",enDescriptor:"fullUrlCache",cnDescriptor:"全路径缓存",link:"",type:"select",list:[{text:"打开",value:"on"},{text:"关闭",value:"off"}]},{key:"https",enDescriptor:"https",cnDescriptor:"是否配置https",link:"",type:"select",list:[{text:"on",value:"on"},{text:"off",value:"off"},{text:"processing",value:"processing"}]},{key:"originPullProtocol",enDescriptor:"originPullProtocol",cnDescriptor:"回源协议类型",link:"",type:"select",list:[{text:"http",value:"http"},{text:"follow",value:"follow"},{text:"https",value:"https"}]},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"}],l={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"Domain",isp:"",district:"",queries:{Limit:20,Offset:0,origin:[],domain:[],resourceId:[],status:{},serviceType:{},projectId:[],domainType:{},fullUrlCache:{},https:{},originPullProtocol:{},tagKey:[]}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"CEIPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CEIPSUMMARYInstanceAliasList",(function(){return u})),n.d(t,"CEIPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"CEIPSUMMARYGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(5),a="QCE/CEIP_SUMMARY",c="ceipSummaryQuery",s={vip:"AddressIp",eip:"AddressIp"},u=["AddressId","AddressName","AddressIp"],l={instance:"AddressId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"address-id",enDescriptor:"address-id",cnDescriptor:" EIP 的唯一 ID",link:"",type:"inputMulti"},{key:"address-name",enDescriptor:"address-name",cnDescriptor:"EIP 名称",link:"",type:"inputMulti"},{key:"address-ip",enDescriptor:"address-ip",cnDescriptor:"EIP 的 IP 地址",link:"",type:"inputMulti"},{key:"address-status",enDescriptor:"address-status",cnDescriptor:"EIP 的状态",link:"",type:"select",multiple:!0,list:[{text:"CREATING",value:"CREATING"},{text:"BINDING",value:"BINDING"},{text:"BIND",value:"BIND"},{text:"UNBINDING",value:"UNBINDING"},{text:"UNBIND",value:"UNBIND"},{text:"OFFLINING",value:"OFFLINING"},{text:"BIND_ENI",value:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"EIP 绑定的实例 ID",link:"",type:"inputMulti"},{key:"private-ip-address",enDescriptor:"private-ip-address",cnDescriptor:"EIP 绑定的内网 IP ",link:"",type:"inputMulti"},{key:"network-interface-id",enDescriptor:"network-interface-id",cnDescriptor:" EIP 绑定的弹性网卡 ID",link:"",type:"inputMulti"},{key:"is-arrears",enDescriptor:"is-arrears",cnDescriptor:"EIP 是否欠费",link:"",type:"select",multiple:!0,list:[{text:"欠费状态",value:"TRUE"},{text:"费用状态正常",value:"FALSE"}]},{key:"address-isp",enDescriptor:"address-isp",cnDescriptor:"运营商类型",link:"",type:"select",multiple:!0,list:[{text:"BGP",value:"BGP"},{text:"CMCC",value:"CMCC"},{text:"CUCC",value:"CUCC"},{text:"CTCC",value:"CTCC"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/215/16702",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",queries:{Limit:20,Offset:0,"address-id":[],"address-name":[],"address-ip":[],"address-status":{},"is-arrears":{},"address-isp":{},"instance-id":[],"private-ip-address":[],"network-interface-id":[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function y(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["eip"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return p})),n.d(t,"GetInstanceQueryParams",(function(){return a})),n.d(t,"queryMonitorExtraConfg",(function(){return l})),n.d(t,"keyInStorage",(function(){return u}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"TopicName",enDescriptor:"TopicName",cnDescriptor:"精确匹配TopicName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={topicId:"TopicId"},s={instance:"TopicName",subscription:"SubscriptionId"},u={subscriptionId:"subscriptionId"},l={subscriptionId:{dim_KeyInStorage:u.subscriptionId,dim_KeyInTarget:"subscriptionId",dim_KeyInMap:s.subscription}},p=["TopicName","TopicId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicName",subscriptionId:"",queries:{Offset:0,Limit:20,TopicName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CPMInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"CPMGetInstanceQueryParams",(function(){return m}));var r=n(5),i=n(0),o=n.n(i),a="QCE/CPM",c="cpmQuery",s={instanceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DeviceClassCode",enDescriptor:"DeviceClassCode",cnDescriptor:"机型ID",link:"",type:"dropdown"},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"设备ID数组",link:"",type:"inputMulti"},{key:"WanIps",enDescriptor:"WanIps",cnDescriptor:"外网IP数组",link:"",type:"inputMulti"},{key:"LanIps",enDescriptor:"LanIps",cnDescriptor:"内网IP数组",link:"",type:"inputMulti"},{key:"Alias",enDescriptor:"Alias",cnDescriptor:"设备名称",link:"",type:"input"},{key:"VagueIp",enDescriptor:"VagueIp",cnDescriptor:"模糊IP查询",link:"",type:"input"},{key:"AutoRenewFlag",enDescriptor:"AutoRenewFlag",cnDescriptor:"自动续费标志",link:"",type:"select",list:[{text:"不自动续费",value:0},{text:"自动续费",value:1}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络唯一ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网唯一ID",link:"",type:"input"},{key:"DeviceType",enDescriptor:"DeviceType",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"计算型",value:"compute"},{text:"标准型",value:"standard"},{text:"存储型",value:"storage"}]},{key:"IsLuckyDevice",enDescriptor:"IsLuckyDevice",cnDescriptor:"竞价实例机器过滤",link:"",type:"select",list:[{text:"非竞价实例机器",value:0},{text:"竞价实例的机器",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/386/32904",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,DeviceClassCode:"",InstanceIds:[],WanIps:[],LanIps:[],Alias:"",VagueIp:"",AutoRenewFlag:{},VpcId:"",SubnetId:"",DeviceType:{},IsLuckyDevice:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["instanceId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"ECDNFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"ECDNInstanceAliasList",(function(){return c})),n.d(t,"ECDNInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECDNGetInstanceQueryParams",(function(){return f}));var r=n(0),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o.push({Name:t,Value:Object(r.uniq)(e).slice(0,5)}):Object(r.isObject)(e)&&(Object(r.isEmpty)(Object(r.get)(e,"value",[]))||o.push({Name:t,Value:[Object(r.get)(e,"value",[])].slice(0,5)}))})),o.length>0)return t.Filters=o.map((function(e){return"domain"===e.Name?i(i({},e),{Fuzzy:!0}):e})),t}return t}function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=["domain","projectid"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"ECMFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"ECMInstanceAliasList",(function(){return s})),n.d(t,"ECMInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECMGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(5),o="QCE/ECM",a="ecmQuery",c={uuid:"UUID"},s=["InstanceId","InstanceName"],u={instance:"InstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"zone",enDescriptor:"zone",cnDescriptor:"可用区英文标识",link:"",type:"dropdownMulti"},{key:"zone-name",enDescriptor:"zone-name",cnDescriptor:"排列顺序",link:"",type:"inputMulti"},{key:"module-id",enDescriptor:"module-id",cnDescriptor:"模块ID",link:"",type:"inputMulti"},{key:"module-name",enDescriptor:"module-name",cnDescriptor:"模块名称",link:"",type:"inputMulti"},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"instance-name",enDescriptor:"instance-name",cnDescriptor:"实例名称",link:"",type:"inputMulti"},{key:"ip-address",enDescriptor:"ip-address",cnDescriptor:"内网/公网IP",link:"",type:"inputMulti"},{key:"instance-uuid",enDescriptor:"instance-uuid",cnDescriptor:"实例uuid",link:"",type:"inputMulti"},{key:"instance-state",enDescriptor:"instance-state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"创建中",value:"PENDING"},{text:"创建失败",value:"LAUNCH_FAILED"},{text:"运行中",value:"RUNNING"},{text:"关机",value:"STOPPED"},{text:"开机中",value:"STARTING"},{text:"关机中",value:"STOPPING"},{text:"重启中",value:"REBOOTING"},{text:"停止待销毁",value:"SHUTDOWN"},{text:"销毁中",value:"TERMINATING"}]},{key:"internet-service-provider",enDescriptor:"internet-service-provider",cnDescriptor:"公网IP所属的运营商",link:"",type:"inputMulti"},{key:"instance-family",enDescriptor:"instance-family",cnDescriptor:"机型family",link:"",type:"inputMulti"},{key:"image-id",enDescriptor:"image-id",cnDescriptor:"镜像ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"实例的vpc id",link:"",type:"inputMulti"},{key:"subnet-id",enDescriptor:"subnet-id",cnDescriptor:"实例的subnet id",link:"",type:"inputMulti"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/1108/42565",namespace:o,fieldDescriptor:l},d={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,zone:[],"zone-name":[],"module-id":[],"module-name":[],"instance-id":[],"instance-name":[],"ip-address":[],"instance-uuid":[],"instance-state":{},"internet-service-provider":[],"instance-family":[],"image-id":[],"vpc-id":[],"subnet-id":[]}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!0)}function m(e){var t=r.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["UUID"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"PostgresFieldsDescriptor",(function(){return u})),n.d(t,"POSTGRESInstanceAliasList",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return h})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"PostgreInvalidDemensions",(function(){return y})),n.d(t,"POSTGRESGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o=n(5),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function l(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 2===t.length&&(-1!==i.a.indexOf(t,"instanceid")&&-1!==i.a.indexOf(t,"insttype")||-1!==i.a.indexOf(t,"InstanceId")&&-1!==i.a.indexOf(t,"InstanceType"))}function p(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return d[e]||e}))})),t}var d={instanceid:"InstanceId",insttype:"InstanceType",region:"Region"},f={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CESFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CESInstanceAliasList",(function(){return c})),n.d(t,"CESInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"CESGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/CES",o="cesQuery",a={uInstanceId:"InstanceId"},c=["InstanceId","InstanceName"],s={instance:"InstanceId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"集群实例ID列表",link:"",type:"inputMulti"},{key:"InstanceNames",enDescriptor:"InstanceNames",cnDescriptor:"集群实例名称列表",link:"",type:"inputMulti"},{key:"OrderByKey",enDescriptor:"OrderByKey",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"实例ID",value:1},{text:"实例名称",value:2},{text:"可用区",value:3},{text:"创建时间",value:4}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]},{key:"IpList",enDescriptor:"IpList",cnDescriptor:"私有网络vip列表",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/845/30631",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,InstanceIds:[],InstanceNames:[],OrderByKey:{},OrderByType:{},IpList:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return f})),n.d(t,"DCInstanceAliasList",(function(){return d})),n.d(t,"DCInvalidDemensions",(function(){return m})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return u})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"DCGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=n(5),a="QCE/DC",c="dcQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DirectConnectIds",enDescriptor:"DirectConnectIds",cnDescriptor:"物理专线 ID",link:"",type:"inputMulti"}],u={instanceDocUrl:"https://cloud.tencent.com/document/api/216/34826",namespace:a,fieldDescriptor:s},l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectId",queries:{Limit:20,Offset:0,DirectConnectIds:[]}};function p(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var d=["DirectConnectId","DirectConnectName"],f={instance:"DirectConnectId"},m={directConnectId:"DirectConnectId",directconnectid:"DirectConnectId"};function y(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["directConnectId"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"DCGFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"DCGInstanceAliasList",(function(){return c})),n.d(t,"DCGInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"DCGGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/DCG",o="dcgQuery",a={directConnectGatewayId:"DirectConnectGatewayId"},c=["DirectConnectGatewayId","DirectConnectGatewayName"],s={instance:"DirectConnectGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"direct-connect-gateway-id",enDescriptor:"direct-connect-gateway-id",cnDescriptor:"专线网关唯一ID",link:"",type:"inputMulti"},{key:"direct-connect-gateway-name",enDescriptor:"direct-connect-gateway-name",cnDescriptor:"专线网关名称",link:"",type:"inputMulti"},{key:"direct-connect-gateway-ip",enDescriptor:"direct-connect-gateway-ip",cnDescriptor:"专线网关IP",link:"",type:"inputMulti"},{key:"gateway-type",enDescriptor:"gateway-type",cnDescriptor:"网关类型",link:"",type:"select",multiple:!0,list:[{text:"普通型",value:"NORMAL"},{text:"NAT型",value:"NAT"}]},{key:"network-type",enDescriptor:"network-type",cnDescriptor:"网络类型",link:"",type:"select",multiple:!0,list:[{text:"私有网络类型",value:"VPC"},{text:"云联网类型",value:"CCN"}]},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"专线网关所在云联网ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"专线网关所在私有网络ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/30644",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectGatewayId",queries:{Limit:20,Offset:0,"direct-connect-gateway-id":[],"direct-connect-gateway-name":[],"direct-connect-gateway-ip":[],"gateway-type":{},"network-type":{},"ccn-id":[],"vpc-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"DCXInstanceAliasList",(function(){return f})),n.d(t,"DCXInvalidDemensions",(function(){return y})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"DCXGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(5),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var u=["InstanceId","InstanceName"],l={target:"InstanceId"},p={instance:"InstanceId",replica:"ReplicaSetId"},d={Replica:{dim_KeyInStorage:"ReplicaSets",dim_KeyInTarget:"replica",dim_KeyInMap:"ReplicaSetId",dim_KeyInIns:"ReplicaSetId"},Node:{dim_KeyInStorage:"ReplicaNodeSets",dim_KeyInTarget:"node",dim_KeyInMap:"NodeId",dim_KeyInIns:"NodeId"}};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"QAAPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"QAAPInstanceAliasList",(function(){return u})),n.d(t,"QAAPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"QAAPGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(5),a="QCE/QAAP",c="qaapQuery",s={channelId:"InstanceId"},u=["InstanceId"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputMulti"},{key:"AccessRegion",enDescriptor:"AccessRegion",cnDescriptor:"接入地域",link:"",type:"inputMulti"},{key:"RealServerRegion",enDescriptor:"RealServerRegion",cnDescriptor:"源站地域",link:"",type:"inputMulti"},{key:"GroupId",enDescriptor:"GroupId",cnDescriptor:"通道组ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/608/36963",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:[],AccessRegion:[],RealServerRegion:[],GroupId:[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function y(e){return i.a.cloneDeep(e)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"TCAPLUSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TCAPLUSInstanceAliasList",(function(){return s})),n.d(t,"TCAPLUSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regonsMap",(function(){return m})),n.d(t,"TCAPLUSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o="QCE/TCAPLUS",a="tcaplusQuery",c={},s=["TableInstanceId","TableName"],u={instance:"TableInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ClusterId",enDescriptor:"ClusterId",cnDescriptor:"表格所属集群ID",link:"",type:"input"},{key:"TableGroupIds",enDescriptor:"TableGroupIds",cnDescriptor:"表格组ID列表",link:"",type:"inputMulti"},{key:"TableName",enDescriptor:"TableName",cnDescriptor:"表格名称",link:"",type:"input"},{key:"TableInstanceId",enDescriptor:"TableInstanceId",cnDescriptor:"表实例ID",link:"",type:"input"},{key:"TableIdlType",enDescriptor:"TableIdlType",cnDescriptor:"表格描述语言类型",link:"",type:"select",list:[{text:"PROTO",value:"PROTO"},{text:"TDR",value:"TDR"}]},{key:"TableType",enDescriptor:"TableType",cnDescriptor:"表格数据结构类型",link:"",type:"select",list:[{text:"GENERIC",value:"GENERIC"},{text:"LIST",value:"LIST"}]},{key:"ListElementNum",enDescriptor:"ListElementNum",cnDescriptor:"LIST表元素个数",link:"",type:"inputNumber"},{key:"ReservedVolume",enDescriptor:"ReservedVolume",cnDescriptor:"表格预留容量(GB)",link:"",type:"inputNumber"},{key:"ReservedReadQps",enDescriptor:"ReservedReadQps",cnDescriptor:"表格预留读CU",link:"",type:"inputNumber"},{key:"ReservedWriteQps",enDescriptor:"ReservedWriteQps",cnDescriptor:"表格预留写CU",link:"",type:"inputNumber"},{key:"Memo",enDescriptor:"Memo",cnDescriptor:"表格备注信息",link:"",type:"input"},{key:"FileName",enDescriptor:"FileName",cnDescriptor:"Key回档文件名,回档专用",link:"",type:"input"},{key:"FileExtType",enDescriptor:"FileExtType",cnDescriptor:"Key回档文件扩展名,回档专用",link:"",type:"input"},{key:"FileSize",enDescriptor:"FileSize",cnDescriptor:"Key回档文件大小,回档专用",link:"",type:"inputNumber"},{key:"FileContent",enDescriptor:"FileContent",cnDescriptor:"Key回档文件内容,回档专用",link:"",type:"input"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/596/39664",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TableInstanceId",queries:{Limit:20,Offset:0,ClusterId:"",TableGroupIds:[],TableName:"",TableInstanceId:"",TableIdlType:{},TableType:{},ListElementNum:null,ReservedVolume:null,ReservedReadQps:null,ReservedWriteQps:null,Memo:"",FileName:"",FileExtType:"",FileSize:null,FileContent:""}};function f(e){void 0===e&&(e={});var t={};t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,t.ClusterId=i.a.get(e,"ClusterId","")||"",t.TableGroupIds=i.a.get(e,"TableGroupIds",[])||[],e=i.a.omit(e,["Offset","Limit","TableGroupIds","ClusterId"]);var n=[];return i.a.forEach(e,(function(e,t){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(n[t]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(n[t]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(n[t]=e)})),t.SelectedTables=n,t}var m={"ap-beijing":"华北地区(北京)","ap-guangzhou":"华南地区(广州)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-shanghai":"华东地区(上海)","ap-singapore":"亚太东南(新加坡)","ap-tokyo":"亚太东北(东京)","eu-frankfurt":"欧洲地区(法兰克福)","na-ashburn":"美国东部(弗吉尼亚)","na-siliconvalley":"美国西部(硅谷)"};t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VBCInstanceAliasList",(function(){return c})),n.d(t,"VBCInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VBCGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/VBC",o="vbcQuery",a={},c=["CcnId","CcnName"],s={instance:"CcnId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"CCN实例ID",link:"",type:"inputMulti"},{key:"ccn-name",enDescriptor:"ccn-name",cnDescriptor:"CCN名称",link:"",type:"inputMulti"},{key:"ccn-description",enDescriptor:"ccn-description",cnDescriptor:"CCN描述",link:"",type:"inputMulti"},{key:"state",enDescriptor:"state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"隔离中",value:"ISOLATED"},{text:"运行中",value:"AVAILABLE"}]}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/19199",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"CcnId",DRegion:"",SRegion:"",queries:{Limit:20,Offset:0,"ccn-id":[],"ccn-name":[],"ccn-description":[],state:{}}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNGWFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNGWInstanceAliasList",(function(){return c})),n.d(t,"VPNGWInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNGWGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/VPNGW",o="vpngwQuery",a={vpnGwId:"VpnGatewayId"},c=["VpnGatewayId","VpnGatewayName"],s={instance:"VpnGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-name",enDescriptor:"vpn-gateway-name",cnDescriptor:"VPN实例名称",link:"",type:"inputMulti"},{key:"type",enDescriptor:"type",cnDescriptor:"VPN网关类型",link:"",type:"select",multiple:!0,list:[{text:"IPSEC",value:"IPSEC"},{text:"SSL",value:"SSL"}]},{key:"public-ip-address",enDescriptor:"public-ip-address",cnDescriptor:"公网IP",link:"",type:"inputMulti"},{key:"renew-flag",enDescriptor:"renew-flag",cnDescriptor:"网关续费类型",link:"",type:"select",multiple:!0,list:[{text:"手动续费",value:"NOTIFY_AND_MANUAL_RENEW"},{text:"自动续费",value:"NOTIFY_AND_AUTO_RENEW"}]},{key:"zone",enDescriptor:"zone",cnDescriptor:"VPN所在可用区",link:"",type:"dropdownMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17514",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnGatewayId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"vpn-gateway-name":[],type:{},"public-ip-address":[],"renew-flag":{},zone:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNXInstanceAliasList",(function(){return c})),n.d(t,"VPNXInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNXGetInstanceQueryParams",(function(){return d}));var r=n(5),i="QCE/VPNX",o="vpnxQuery",a={vpnConnId:"VpnConnectionId"},c=["VpnConnectionId","VpnConnectionName"],s={instance:"VpnConnectionId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"customer-gateway-id ",enDescriptor:"customer-gateway-id ",cnDescriptor:"对端网关实例ID",link:"",type:"inputMulti"},{key:"vpn-connection-name",enDescriptor:"vpn-connection-name",cnDescriptor:"通道名称",link:"",type:"inputMulti"},{key:"vpn-connection-id",enDescriptor:"vpn-connection-id",cnDescriptor:"通道实例ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17515",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnConnectionId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"customer-gateway-id":[],"vpn-connection-name":[],"vpn-connection-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseFilterFieldsDescriptor",(function(){return a})),n.d(t,"LIGHTHOUSEInstanceAliasList",(function(){return u})),n.d(t,"LighthouseInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"modifyDimensons",(function(){return d})),n.d(t,"LIGHTHOUSEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l={instanceid:"InstanceId"},p={instance:"InstanceId"};function d(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CFSQueryDescriptor",(function(){return o})),n.d(t,"CFSInstanceAliasList",(function(){return s})),n.d(t,"CFSInvalidDemensions",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"regionSupported",(function(){return l})),n.d(t,"CFSGetInstanceQueryParams",(function(){return c}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"FileSystemId",enDescriptor:"File System Id",cnDescriptor:"文件系统 ID",link:"",type:"input"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络(VPC) ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网 ID",link:"",type:"input"}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FileSystemId",version:"",queries:{Offset:0,Limit:20,FileSystemId:"",VpcId:"",SubnetId:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FileSystemId","FsName"],u={},l=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],p={instance:"InstanceId"};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return u})),n.d(t,"GetInstanceQueryParams",(function(){return a}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"QueueName",enDescriptor:"QueueName",cnDescriptor:"精确匹配QueueName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={queueId:"QueueId",queueName:"QueueName"},s={instance:"QueueName"},u=["QueueName","QueueId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"QueueName",queries:{Offset:0,Limit:20,QueueName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMFilterFieldsDescriptor",(function(){return a})),n.d(t,"CVMInstanceAliasList",(function(){return u})),n.d(t,"isValidMetric",(function(){return d})),n.d(t,"modifyDimensons",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CVMGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l=["CPUUsage","CpuLoadavg","Cpuloadavg5m","Cpuloadavg15m","BaseCpuUsage","GpuMemTotal","GpuMemUsage","GpuMemUsed","GpuPowDraw","GpuPowLimit","GpuPowUsage","GpuTemp","GpuUtil","LanOuttraffic","LanIntraffic","LanOutpkg","LanInpkg","WanOuttraffic","WanIntraffic","WanOutpkg","WanInpkg","AccOuttraffic","TcpCurrEstab","TimeOffset","MemUsed","MemUsage","CvmDiskUsage","BaseCpuUsage","VmDiskReadIops"],p={instance:"InstanceId"};function d(e){var t=i.a.map(l,i.a.toUpper);return-1!==i.a.indexOf(t,i.a.toUpper(e.MetricName))}function f(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXInstanceAliasList",(function(){return u})),n.d(t,"PCXFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"namespace",(function(){return a})),n.d(t,"PCXGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisFieldsDescriptor",(function(){return a})),n.d(t,"RedisInvalidDemensions",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"REDISInstanceAliasList",(function(){return l})),n.d(t,"isValidMetric",(function(){return u})),n.d(t,"REDISGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function u(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==i.a.indexOf(t,"instanceid")}var l=["InstanceId","InstanceName","WanIp"],p={redis_uuid:"InstanceId",instanceid:"InstanceId"},d={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFInvalidDemensions",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TSFInstanceAliasList",(function(){return c})),n.d(t,"TSFFieldsDescriptor",(function(){return i})),n.d(t,"TSFGetInstanceQueryParams",(function(){return a}));var r=n(5),i=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchWord",enDescriptor:"SearchWord",cnDescriptor:"搜索关键字",link:"",type:"input"},{key:"ApplicationIdList",enDescriptor:"ApplicationIdList",cnDescriptor:"应用ID 组成的数组",link:"",type:"inputmulti"},{key:"ApplicationType",enDescriptor:"ApplicationType",cnDescriptor:"应用类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"容器应用",value:"C"},{text:"普通应用/虚拟机应用",value:"V"}]},{key:"MicroserviceType",enDescriptor:"MicroserviceType",cnDescriptor:"应用的微服务类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"普通应用",value:"N"},{text:"Mesh应用",value:"M"},{text:"微服务网关应用",value:"G"},{text:"原生应用",value:"NATIVE"}]},{key:"ApplicationResourceTypeList",enDescriptor:"ApplicationResourceTypeList",cnDescriptor:"应用资源类型数组",link:"",type:"select",multiple:!0,list:[{text:"默认资源类型",value:"DEF"},{text:"微服务网关资源",value:"GW"}]}],o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ApplicationId",queries:{Limit:20,Offset:0,SearchWord:"",OrderBy:"",OrderType:null,ApplicationType:"",MicroserviceType:"",ApplicationResourceTypeList:[],ApplicationIdList:[]}};function a(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var c=["ApplicationId","ApplicationName"],s={applicationid:"ApplicationId"},u={instance:"ApplicationId"};t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BWPInstanceAliasList",(function(){return u})),n.d(t,"BWPInvalidDemensions",(function(){return p})),n.d(t,"BWPGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.BandwidthPackageIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["BandwidthPackageId","BandwidthPackageName"],l={instance:"BandwidthPackageId"},p={bandwidthPackageId:"BandwidthPackageId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CDNInstanceAliasList",(function(){return u})),n.d(t,"CDNInvalidDemensions",(function(){return l})),n.d(t,"CDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ProjectId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"LBFilterDescriptor",(function(){return a})),n.d(t,"LBInstanceAliasList",(function(){return u})),n.d(t,"LBInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"LBGetInstanceQueryParams",(function(){return s}));var r,i=n(0),o=n.n(i),a=[{key:"address-id",enDescriptor:"Address ID",cnDescriptor:"EIP 的唯一 ID ",link:"",type:"inputmulti"},{key:"address-name",enDescriptor:"Address Name",cnDescriptor:"EIP 名称 ",link:"",type:"inputmulti"},{key:"address-ip",enDescriptor:"Address IP",cnDescriptor:"EIP 的 IP 地址 ",link:"",type:"inputmulti"},{key:"address-status",enDescriptor:"Address Status",cnDescriptor:"EIP 的状态",link:"",type:"select",list:[{value:"CREATING",text:"CREATING"},{value:"BINDING",text:"BINDING"},{value:"BIND",text:"BIND"},{value:"UNBINDING",text:"UNBINDING"},{value:"UNBIND",text:"UNBIND"},{value:"OFFLINING",text:"OFFLINING"},{value:"BIND_ENI",text:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"Instance ID",cnDescriptor:"实例ID ",link:"",type:"inputmulti"},{key:"private-ip-address",enDescriptor:"Private IP Address",cnDescriptor:"EIP 绑定的内网 IP",link:"",type:"inputmulti"},{key:"network-interface-id",enDescriptor:"Network Interface ID",cnDescriptor:"EIP 绑定的弹性网卡 ID",link:"",type:"inputmulti"},{key:"is-arrears",enDescriptor:"Arrears",cnDescriptor:"EIP 是否欠费 ",link:"",type:"select",list:[{text:"正常",value:"FALSE"},{text:"欠费",value:"TRUE"}]}],c={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",version:"",queries:(r={Offset:0,Limit:20},r.AddressIds=[""],r.Filters={"address-id":[],"address-name":[],"address-ip":[],"address-status ":[],"instance-id ":[],"private-ip-address":[],"network-interface-id ":[],"is-arrears ":[]},r)};function s(e){void 0===e&&(e={});var t={};if(!o.a.isEmpty(e))if(t.Limit=o.a.get(e,"Limit",20)||20,t.Offset=o.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(o.a.isArray(e.AddressIds)){var n=o.a.compact(e.AddressIds);o.a.uniq(n).length>0&&(t.AddressIds=o.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];o.a.forEach(e.Filters,(function(e,t){r.length>9||(o.a.isArray(e)?(e=o.a.compact(e)).length>0&&r.push({Name:t,Values:o.a.uniq(e).slice(0,5)}):o.a.isObject(e)&&(o.a.isEmpty(o.a.get(e,"value",[]))||r.push({Name:t,Values:o.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["AddressId","AddressName","AddressIp"],l={eip:"AddressIp"},p={instance:"AddressId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"NATGatewayFilterFieldsDescriptor",(function(){return c})),n.d(t,"NATGATEWAYInstanceAliasList",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"NATInvalidDemensions",(function(){return p})),n.d(t,"NATGATEWAYGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var l={instance:"NatGatewayId"},p={natId:"NatGatewayId"};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"OVCDNInstanceAliasList",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"OVCDNInvalidDemensions",(function(){return l})),n.d(t,"OVCDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ResourceId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},,function(e,t){e.exports=i},,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"TKEFilterFieldsDescriptor",(function(){return a})),n.d(t,"TKEInstanceAliasList",(function(){return c})),n.d(t,"TKEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",conditions:[],groupBys:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIds:[""],Filters:{ClusterName:[],ClusterType:[],ClusterStatus:[],"tag-key":[]}}},a=[{key:"ClusterName",enDescriptor:"Cluster Name",cnDescriptor:"集群名",link:"",type:"input"},{key:"ClusterType",enDescriptor:"Cluster Type",cnDescriptor:"集群类型",link:"",type:"inputmulti"},{key:"ClusterStatus",enDescriptor:"Cluster Status",cnDescriptor:"集群状态",link:"",type:"inputmulti"},{key:"Tags",enDescriptor:"Tags",cnDescriptor:"标签键值对",link:"",type:"inputmulti"},{key:"vpc-id",enDescriptor:"VPC",cnDescriptor:"VPC",link:"",type:"input"},{key:"tag-key",enDescriptor:"Tag Key",cnDescriptor:"标签键",link:"",type:"inputmulti"},{key:"tag-value",enDescriptor:"Tag Value",cnDescriptor:"标签值",link:"",type:"inputmulti"}],c=["ClusterId","ClusterName"];function s(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.InstanceIds)){var n=i.a.compact(e.InstanceIds);i.a.uniq(n).length>0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}t.default=o},function(e,t,n){"use strict";n.r(t);var r,i=n(23),o=n(3),a=n(2),c=n(5),s=n(9),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?w.map((function(e){return{TopicId:e.TopicId,TopicName:e.TopicName}})):I,PartitionList:C.length>0?C:D}]}}))}))},t.prototype.formatTopicVarDisplay=function(e,t,n){var r=this;return t?t.replace(/\$\{(\w+)\}/g,(function(t,n){return n&&r.TopicAliasList.includes(n)?r.getAliasValue(e,n):""})):this.getAliasValue(e,n)},t.prototype.fetchMetricData=function(e,t,n,r){return d(this,void 0,void 0,(function(){var i,o,a,c,s,p,d,m,y,h=this;return f(this,(function(f){switch(f.label){case 0:return i=r.topicalias,o=r.groupname,a=r.topicid,[4,this.getConsumerGroups(t,{InstanceId:n.InstanceId,groupname:o,topicid:a})];case 1:return c=f.sent(),s=r.display,p=c.TopicList,d=c.GroupList,m=c.PartitionList,i=this.TopicAliasList.includes(i)?i:this.templateQueryIdMap.topicId,y={GroupList:d.map((function(e){return e._InstanceAliasValue=e.GroupName,{text:e.GroupName,value:e[u.templateQueryIdMap.groupName]}})),TopicList:p.map((function(e){var t=h.formatTopicVarDisplay(e,s,i);return e._InstanceAliasValue=t||e[u.templateQueryIdMap.topicId],{text:t||e[u.templateQueryIdMap.topicId],value:e[u.templateQueryIdMap.topicId],TopicName:e.TopicName}})),PartitionList:m.map((function(e){return e._InstanceAliasValue=e[u.templateQueryIdMap.partition],{text:e[u.templateQueryIdMap.partition],value:e[u.templateQueryIdMap.partition]}}))},[4,l.a.setExtraStorage(this.service,this.keyInStorage.TopicList,p)];case 2:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.GroupList,d)];case 3:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.PartitionList,m)];case 4:switch(f.sent(),e){case"DescribeTopicList":return[2,y.TopicList];case"DescribeGroup":return[2,y.GroupList];case"DescribePartion":return[2,y.PartitionList];default:return[2,[]]}return[2]}}))}))},t}(s.BaseDatasource);t.default=m},function(e,t,n){"use strict";n.r(t);var r,i=n(12),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(5),l=n(9),p=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=i)return r;var o=Object(s.k)(i,50),a=[];return c.a.forEach(o,(function(t){a.push(n.getInstances(e,t))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){r=c.a.concat(r,e)})),r})).catch((function(e){return r}))}))},t.prototype.getVpcId=function(e,t){void 0===t&&(t={}),(t=l({Offset:0,Limit:20},t)).Offset=String(t.Offset),t.Limit=String(t.Limit);var n=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+n.path,data:t},n.service,{region:e,action:"DescribeVpcs"}).then((function(e){return c.a.map(e.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}))}))},t.prototype.getVpcIds=function(e){var t=this,n=[],r={Offset:0,Limit:100};r.Offset=String(r.Offset),r.Limit=String(r.Limit);var i=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+i.path,data:r},i.service,{region:e,action:"DescribeVpcs"}).then((function(r){n=c.a.map(r.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}));var i=r.TotalCount||0;if(n.length>=i)return n;var o=Object(s.k)(i,100),a=[];return c.a.forEach(o,(function(n){a.push(t.getVpcId(e,n))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){n=c.a.concat(n,e)})),n})).catch((function(e){return n}))}))},t.prototype.doRequestV2=function(e,t,n){return void 0===n&&(n={}),p(this,void 0,void 0,(function(){return d(this,(function(r){switch(r.label){case 0:return[4,Object(s.d)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return c.a.get(e,"data",{})})).catch((function(e){throw e}))]}}))}))},t}(o.BaseDatasource);t.default=f},function(e,t,n){"use strict";n.r(t);var r,i=n(41),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace=i.namespace,o.InstanceAliasList=i.POSTGRESInstanceAliasList,o.InvalidDimensions=i.PostgreInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"postgres",action:"DescribeDBInstances",responseField:"DBInstanceSet"},o.MetricReqConfig={resultFilter:i.modifyDimensons},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(0),o=n(51),a=n(3),c=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?"_".concat(r.timeshift):"";return{target:"".concat(e.MetricName," - ").concat(o).concat(a),datapoints:Object(i.map)(t.Values,(function(e){return[e.Value,1e3*e.Timestamp+d]}))}}))})))}))},t}(c.BaseDatasource);t.default=p},function(e,t,n){"use strict";n.r(t);var r,i=n(62),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace="QCE/TSF",o.InstanceAliasList=i.TSFInstanceAliasList,o.InvalidDimensions=i.TSFInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"tsf",action:"DescribeApplications",responseField:"Content"},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(25),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,l)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(31);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(32);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(33);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPQueryCtrl",(function(){return a})),n.d(t,"bwpQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(63),a=function(){function e(e,t){e.init=function(){e.BWPFilterFieldsDescriptor=o.BWPFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("bwpQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(34);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDBQueryCtrl",(function(){return a})),n.d(t,"cdbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(44),a=function(){function e(e,t){e.init=function(){e.CDBFieldsDescriptor=o.CDBFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"ZoneIds":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cdb",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNQueryCtrl",(function(){return a})),n.d(t,"cdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(64),a=function(){function e(e,t){e.init=function(){e.CDNFilterFieldsDescriptor=o.CDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return l})),n.d(t,"sQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(35),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,p)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(36);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(45);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(57),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cfsQuery",u)},function(e,t,n){"use strict";n.r(t),n.d(t,"CKAFKAQueryCtrl",(function(){return l})),n.d(t,"scfQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(11),a=n(5),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 主题,消费分组,分区 --\x3e\n \n\n \n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"=",instance:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("ckafkaQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(0),a=n(12),c=n(2),s=n(5),u=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},l=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\n\x3c!--Listener维度部分--\x3e\n\n\n\n');function f(){return{template:d,controller:p,restrict:"E",scope:{target:"=",namespace:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("clbQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return a})),n.d(t,"sQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(29),a=function(){function e(e,t){e.init=function(){e.GSEFilterFieldsDescriptor=o.CLSFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(58);Object(r.default)("cmqQuery",{fieldDescriptor:i.InstanceQueryDescriptor,instanceDocUrl:"https://cloud.tencent.com/document/api/406/42624",namespace:"QCE/CMQ"})},function(e,t,n){"use strict";n.r(t),n.d(t,"CmqTopicQueryCtrl",(function(){return u})),n.d(t,"scfQuery",(function(){return l}));var r=n(6),i=n.n(r),o=n(37),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 主题的ui --\x3e\n \n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("cmqTopicQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceAliasList",(function(){return a})),n.d(t,"GetInstanceQueryParams",(function(){return o}));var r=n(0),i=n.n(r);function o(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var a=["BucketName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"BucketName",queries:{}}},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(38);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMQueryCtrl",(function(){return a})),n.d(t,"cvmQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(59),a=function(){function e(e,t){e.init=function(){e.CVMFilterFieldsDescriptor=o.CVMFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cvmQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(27);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(46);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(16),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(47);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(48);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(39);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(40);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return s})),n.d(t,"sQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(21),a=n(2),c=[{label:"diskId",field:"diskId"}],s=function(){function e(e,t){e.init=function(){e.ECMBLOCKSTORAGEFilterFieldsDescriptor=o.ECMBLOCKSTORAGEFilterFieldsDescriptor,e.ExtraFields=c,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n,r;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})||t.label in(null!==(r=e.dims)&&void 0!==r?r:{})}))},e.getExtraDropdown=function(t,n){var r=t.instance,i=Object(a.f)(e.namespace);r=e.datasource.getServiceFn(i,"getVariable")(r);try{return(r=JSON.parse(r)).DataDisks.map((function(e){return e._InstanceAliasValue=e[o.templateQueryIdMap.diskId],{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}catch(t){var c={InstanceId:r};return e.datasource.getServiceFn(i,"getDiskList")({payload:c}).map((function(e){return{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(49);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(15),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"LBQueryCtrl",(function(){return a})),n.d(t,"lbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(65),a=function(){function e(e,t){e.init=function(){e.LBFilterDescriptor=o.LBFilterDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n
\n\n
\n
\n
\n
\n \n \n
\n
\n\n\x3c!--Filters部分--\x3e\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseQueryCtrl",(function(){return a})),n.d(t,"lighthouseQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(56),a=function(){function e(e,t){e.init=function(){e.LighthouseFilterFieldsDescriptor=o.LighthouseFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("lighthouse",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lighthouseQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"MongoDBQueryCtrl",(function(){return p})),n.d(t,"mongodbQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(0),a=n(50),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n \n\n\n\n\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onRefresh:"&",onChange:"&"},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("mongodbQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"MrQueryCtrl",(function(){return u})),n.d(t,"mrQuery",(function(){return l}));var r=n(24),i=n(6),o=n.n(i),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\x3c!-- 主题的ui --\x3e\n \n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}o.a.directive("mrQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"NatGatewayQueryCtrl",(function(){return a})),n.d(t,"natGatewayQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(66),a=function(){function e(e,t){e.init=function(){e.NATGatewayFilterFieldsDescriptor=o.NATGatewayFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("natGatewayQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNQueryCtrl",(function(){return a})),n.d(t,"ovCdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(67),a=function(){function e(e,t){e.init=function(){e.OVCDNFilterFieldsDescriptor=o.OVCDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("ovCdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXQueryCtrl",(function(){return a})),n.d(t,"pcxQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(60),a=function(){function e(e,t){e.init=function(){e.PCXFieldsDescriptor=o.PCXFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"vpcId":return e.getVpcIds();default:return[]}},e.getVpcIds=function(){return e.region?e.datasource.getVpcIds("pcx",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("pcxQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(41);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(51);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisQueryCtrl",(function(){return a})),n.d(t,"redisQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(61),a=function(){function e(e,t){e.init=function(){e.RedisFieldsDescriptor=o.RedisFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("redisQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemQueryCtrl",(function(){return l})),n.d(t,"redisMemQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(0),a=n(17),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n \n\n\n\n\n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("redisMemQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(28),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\n\x3c!-- version部分 --\x3e\n\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&"}}}i.a.directive("scfQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(30);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(52);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(13),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(18),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRabbitmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"TdmqRocketmqQueryCtrl",(function(){return p})),n.d(t,"tdmqRocketmqQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(19),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRocketmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return c})),n.d(t,"sQuery",(function(){return s}));var r=n(6),i=n.n(r),o=n(0),a=n(74),c=function(){function e(e,t){e.init=function(){e.TKEFilterFieldsDescriptor=a.TKEFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.addCondition=function(){e.target.conditions.push({Key:"",Operator:"=",Value:""})},e.deleteCondition=function(t){var n=e.target.conditions[t];Object(o.isEmpty)(n.Key)||Object(o.isEmpty)(n.Operator)||Object(o.isEmpty)(n.Value)?e.target.conditions.splice(t,1):(e.target.conditions.splice(t,1),e.onRefresh())},e.getOperator=function(){return Promise.resolve([{text:"=",value:"="},{text:"in",value:"in"}])},e.init()}return e.$inject=["$scope","$rootScope"],e}();function s(){return{template:'\n\n',controller:c,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("tkeQuery",s)},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFQueryCtrl",(function(){return a})),n.d(t,"tsfQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(62),a=function(){function e(e,t){e.init=function(){e.TSFFieldsDescriptor=o.TSFFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("tsfQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(25);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(53),a=n(2),c=[],s=function(){function e(e,t){e.init=function(){e.VBCFilterFieldsDescriptor=o.VBCFilterFieldsDescriptor,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})}))},e.getExtraDropdown=function(t){var n=Object(a.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t})},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("vbcQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(42);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(54);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(55);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(43);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){var r={".":20,"./":20,"./MonitorDatasource":188,"./MonitorDatasource.ts":188,"./_base/datasource":3,"./_base/datasource.ts":3,"./_base/query":7,"./_base/query.ts":7,"./_base/query_filter":195,"./_base/query_filter.ts":195,"./_base/types":196,"./_base/types.ts":196,"./apigateway/datasource":75,"./apigateway/datasource.ts":75,"./apigateway/query":131,"./apigateway/query.ts":131,"./apigateway/query_def":23,"./apigateway/query_def.ts":23,"./bmIntraLb/datasource":76,"./bmIntraLb/datasource.ts":76,"./bmIntraLb/query":132,"./bmIntraLb/query.ts":132,"./bmIntraLb/query_def":31,"./bmIntraLb/query_def.ts":31,"./bm_lb/datasource":77,"./bm_lb/datasource.ts":77,"./bm_lb/query":133,"./bm_lb/query.ts":133,"./bm_lb/query_def":32,"./bm_lb/query_def.ts":32,"./bm_pcx/datasource":78,"./bm_pcx/datasource.ts":78,"./bm_pcx/query":134,"./bm_pcx/query.ts":134,"./bm_pcx/query_def":33,"./bm_pcx/query_def.ts":33,"./bwp/datasource":79,"./bwp/datasource.ts":79,"./bwp/query":135,"./bwp/query.ts":135,"./bwp/query_def":63,"./bwp/query_def.ts":63,"./cbs/datasource":80,"./cbs/datasource.ts":80,"./cbs/query":136,"./cbs/query.ts":136,"./cbs/query_def":34,"./cbs/query_def.ts":34,"./cdb/datasource":81,"./cdb/datasource.ts":81,"./cdb/query":137,"./cdb/query.ts":137,"./cdb/query_def":44,"./cdb/query_def.ts":44,"./cdn/datasource":82,"./cdn/datasource.ts":82,"./cdn/query":138,"./cdn/query.ts":138,"./cdn/query_def":64,"./cdn/query_def.ts":64,"./cdn_province/datasource":83,"./cdn_province/datasource.ts":83,"./cdn_province/query":139,"./cdn_province/query.ts":139,"./cdn_province/query_def":35,"./cdn_province/query_def.ts":35,"./ceip_summary/datasource":84,"./ceip_summary/datasource.ts":84,"./ceip_summary/query":140,"./ceip_summary/query.ts":140,"./ceip_summary/query_def":36,"./ceip_summary/query_def.ts":36,"./ces/datasource":85,"./ces/datasource.ts":85,"./ces/query":141,"./ces/query.ts":141,"./ces/query_def":45,"./ces/query_def.ts":45,"./cfs/datasource":86,"./cfs/datasource.ts":86,"./cfs/query":142,"./cfs/query.ts":142,"./cfs/query_def":57,"./cfs/query_def.ts":57,"./ckafka/datasource":87,"./ckafka/datasource.ts":87,"./ckafka/query":143,"./ckafka/query.ts":143,"./ckafka/query_def":11,"./ckafka/query_def.ts":11,"./clb/datasource":88,"./clb/datasource.ts":88,"./clb/query":144,"./clb/query.ts":144,"./clb/query_def":12,"./clb/query_def.ts":12,"./cls/datasource":89,"./cls/datasource.ts":89,"./cls/query":145,"./cls/query.ts":145,"./cls/query_def":29,"./cls/query_def.ts":29,"./cmq/datasource":90,"./cmq/datasource.ts":90,"./cmq/query":146,"./cmq/query.ts":146,"./cmq/query_def":58,"./cmq/query_def.ts":58,"./cmq_topic/datasource":91,"./cmq_topic/datasource.ts":91,"./cmq_topic/query":147,"./cmq_topic/query.ts":147,"./cmq_topic/query_def":37,"./cmq_topic/query_def.ts":37,"./cos/datasource":92,"./cos/datasource.ts":92,"./cos/query_def":148,"./cos/query_def.ts":148,"./cpm/datasource":93,"./cpm/datasource.ts":93,"./cpm/query":149,"./cpm/query.ts":149,"./cpm/query_def":38,"./cpm/query_def.ts":38,"./cvm/datasource":94,"./cvm/datasource.ts":94,"./cvm/query":150,"./cvm/query.ts":150,"./cvm/query_def":59,"./cvm/query_def.ts":59,"./cynosdb_mysql/datasource":95,"./cynosdb_mysql/datasource.ts":95,"./cynosdb_mysql/query":151,"./cynosdb_mysql/query.ts":151,"./cynosdb_mysql/query_def":27,"./cynosdb_mysql/query_def.ts":27,"./dc/datasource":96,"./dc/datasource.ts":96,"./dc/query":152,"./dc/query.ts":152,"./dc/query_def":46,"./dc/query_def.ts":46,"./dcdb/datasource":97,"./dcdb/datasource.ts":97,"./dcdb/query":153,"./dcdb/query.ts":153,"./dcdb/query_def":16,"./dcdb/query_def.ts":16,"./dcg/datasource":98,"./dcg/datasource.ts":98,"./dcg/query":154,"./dcg/query.ts":154,"./dcg/query_def":47,"./dcg/query_def.ts":47,"./dcx/datasource":99,"./dcx/datasource.ts":99,"./dcx/query":155,"./dcx/query.ts":155,"./dcx/query_def":48,"./dcx/query_def.ts":48,"./ecdn/datasource":100,"./ecdn/datasource.ts":100,"./ecdn/query":156,"./ecdn/query.ts":156,"./ecdn/query_def":39,"./ecdn/query_def.ts":39,"./ecm/datasource":101,"./ecm/datasource.ts":101,"./ecm/query":157,"./ecm/query.ts":157,"./ecm/query_def":40,"./ecm/query_def.ts":40,"./ecm_block_storage/datasource":102,"./ecm_block_storage/datasource.ts":102,"./ecm_block_storage/query":158,"./ecm_block_storage/query.ts":158,"./ecm_block_storage/query_def":21,"./ecm_block_storage/query_def.ts":21,"./ecm_lb/datasource":103,"./ecm_lb/datasource.ts":103,"./ecm_lb/query":159,"./ecm_lb/query.ts":159,"./ecm_lb/query_def":49,"./ecm_lb/query_def.ts":49,"./gse/datasource":104,"./gse/datasource.ts":104,"./gse/query":160,"./gse/query.ts":160,"./gse/query_def":15,"./gse/query_def.ts":15,"./index":20,"./index.ts":20,"./lb/datasource":105,"./lb/datasource.ts":105,"./lb/query":161,"./lb/query.ts":161,"./lb/query_def":65,"./lb/query_def.ts":65,"./lighthouse/datasource":106,"./lighthouse/datasource.ts":106,"./lighthouse/query":162,"./lighthouse/query.ts":162,"./lighthouse/query_def":56,"./lighthouse/query_def.ts":56,"./mongodb/datasource":107,"./mongodb/datasource.ts":107,"./mongodb/query":163,"./mongodb/query.ts":163,"./mongodb/query_def":50,"./mongodb/query_def.ts":50,"./mr/datasource":108,"./mr/datasource.ts":108,"./mr/query":164,"./mr/query.ts":164,"./mr/query_def":24,"./mr/query_def.ts":24,"./nat_gateway/datasource":109,"./nat_gateway/datasource.ts":109,"./nat_gateway/query":165,"./nat_gateway/query.ts":165,"./nat_gateway/query_def":66,"./nat_gateway/query_def.ts":66,"./ov_cdn/datasource":110,"./ov_cdn/datasource.ts":110,"./ov_cdn/query":166,"./ov_cdn/query.ts":166,"./ov_cdn/query_def":67,"./ov_cdn/query_def.ts":67,"./pcx/datasource":111,"./pcx/datasource.ts":111,"./pcx/query":167,"./pcx/query.ts":167,"./pcx/query_def":60,"./pcx/query_def.ts":60,"./postgresql/datasource":112,"./postgresql/datasource.ts":112,"./postgresql/query":168,"./postgresql/query.ts":168,"./postgresql/query_def":41,"./postgresql/query_def.ts":41,"./qaap/datasource":113,"./qaap/datasource.ts":113,"./qaap/query":169,"./qaap/query.ts":169,"./qaap/query_def":51,"./qaap/query_def.ts":51,"./redis/datasource":114,"./redis/datasource.ts":114,"./redis/query":170,"./redis/query.ts":170,"./redis/query_def":61,"./redis/query_def.ts":61,"./redis_mem/datasource":115,"./redis_mem/datasource.ts":115,"./redis_mem/query":171,"./redis_mem/query.ts":171,"./redis_mem/query_def":17,"./redis_mem/query_def.ts":17,"./scf/datasource":116,"./scf/datasource.ts":116,"./scf/query":172,"./scf/query.ts":172,"./scf/query_def":28,"./scf/query_def.ts":28,"./sqlserver/datasource":117,"./sqlserver/datasource.ts":117,"./sqlserver/query":173,"./sqlserver/query.ts":173,"./sqlserver/query_def":30,"./sqlserver/query_def.ts":30,"./tcaplus/datasource":118,"./tcaplus/datasource.ts":118,"./tcaplus/query":174,"./tcaplus/query.ts":174,"./tcaplus/query_def":52,"./tcaplus/query_def.ts":52,"./tdmq/datasource":119,"./tdmq/datasource.ts":119,"./tdmq/query":175,"./tdmq/query.ts":175,"./tdmq/query_def":13,"./tdmq/query_def.ts":13,"./tdmq_rabbitmq/datasource":120,"./tdmq_rabbitmq/datasource.ts":120,"./tdmq_rabbitmq/query":176,"./tdmq_rabbitmq/query.ts":176,"./tdmq_rabbitmq/query_def":18,"./tdmq_rabbitmq/query_def.ts":18,"./tdmq_rocketmq/datasource":121,"./tdmq_rocketmq/datasource.ts":121,"./tdmq_rocketmq/query":177,"./tdmq_rocketmq/query.ts":177,"./tdmq_rocketmq/query_def":19,"./tdmq_rocketmq/query_def.ts":19,"./tke/datasource":122,"./tke/datasource.ts":122,"./tke/query":178,"./tke/query.ts":178,"./tke/query_def":74,"./tke/query_def.ts":74,"./tsf/datasource":123,"./tsf/datasource.ts":123,"./tsf/query":179,"./tsf/query.ts":179,"./tsf/query_def":62,"./tsf/query_def.ts":62,"./v_clb/datasource":124,"./v_clb/datasource.ts":124,"./v_clb/query":180,"./v_clb/query.ts":180,"./v_clb/query_def":25,"./v_clb/query_def.ts":25,"./vbc/datasource":125,"./vbc/datasource.ts":125,"./vbc/query":181,"./vbc/query.ts":181,"./vbc/query_def":53,"./vbc/query_def.ts":53,"./vpc_net_detect/datasource":126,"./vpc_net_detect/datasource.ts":126,"./vpc_net_detect/query":182,"./vpc_net_detect/query.ts":182,"./vpc_net_detect/query_def":42,"./vpc_net_detect/query_def.ts":42,"./vpngw/datasource":127,"./vpngw/datasource.ts":127,"./vpngw/query":183,"./vpngw/query.ts":183,"./vpngw/query_def":54,"./vpngw/query_def.ts":54,"./vpnx/datasource":128,"./vpnx/datasource.ts":128,"./vpnx/query":184,"./vpnx/query.ts":184,"./vpnx/query_def":55,"./vpnx/query_def.ts":55,"./waf/datasource":129,"./waf/datasource.ts":129,"./waf/query":185,"./waf/query.ts":185,"./waf/query_def":43,"./waf/query_def.ts":43};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=186},,function(e,t,n){"use strict";n.r(t),n.d(t,"TCMonitorDatasource",(function(){return u}));var r=n(0),i=n.n(r),o=n(20),a=n(2),c=n(5),s=n(8),u=function(){function e(e,t,n){var r=this;this.instanceSettings=e,this.backendSrv=t,this.templateSrv=n,i.a.forEach(o.Datasources,(function(e,t){r[t]=new e(r.instanceSettings,r.backendSrv,r.templateSrv)}))}return e.$inject=["instanceSettings","backendSrv","templateSrv"],e.prototype.getNamespaces=function(){var e=this,t=[];return i.a.forEach(o.SERVICES,(function(n){!0===e.instanceSettings.jsonData[n.service]&&t.push(n)})),t},e.prototype.getCascaderNamespaces=function(){var e=this,t=o.SERVICES.filter((function(t){return e.instanceSettings.jsonData[t.service]}));return Object(c.f)(t)},e.prototype.getSelectedServices=function(){var e=this.getNamespaces();return i.a.map(e,(function(e){var t=e.namespace;return Object(a.f)(t)}))},e.prototype.query=function(e){var t=this,n=[],r=this.getSelectedServices();return i.a.forEach(r,(function(r){var o=i.a.cloneDeep(e),a=i.a.filter(o.targets,(function(e){return e.service===r}));if(o.targets=a,o.targets.length>0){var c=t["".concat(i.a.toUpper(r),"Datasource")].query(o);c&&n.push(c)}})),0===n.length?Promise.resolve({data:[],state:s.LoadingState.Done}):Promise.all(n).then((function(e){return{data:i.a.flatten(e),state:s.LoadingState.Done}}))},e.prototype.metricFindQuery=function(e,t){var n=Object(a.h)(e),r=Object(a.f)(n.namespace||"");if(i.a.isEmpty(n)||!n.namespace||!n.action||!r)return Promise.resolve([]);if(this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery){var o=this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery(n,i.a.get(t,"variable.regex",void 0));if(o)return o}return Promise.resolve([])},e.prototype.getRegions=function(e){return this["".concat(i.a.toUpper(e),"Datasource")].getRegions?this["".concat(i.a.toUpper(e),"Datasource")].getRegions():[]},e.prototype.getMetrics=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getMetrics(t)},e.prototype.getZones=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getZones?this["".concat(i.a.toUpper(e),"Datasource")].getZones(t):[]},e.prototype.getFilterDropdown=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown?this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown(t):[]},e.prototype.getInstances=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getInstances(t,n)},e.prototype.getListeners=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getListeners?this["".concat(i.a.toUpper(e),"Datasource")].getListeners(t,n):[]},e.prototype.getVpcIds=function(e,t){if(this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds)return this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds(t)},e.prototype.testDatasource=function(){var e=this,t=[],n=this.getSelectedServices();return i.a.forEach(n,(function(n){t.push(e["".concat(i.a.toUpper(n),"Datasource")].testDatasource())})),0===t.length?Promise.resolve(null):Promise.all(t).then((function(e){var t="success",n="DataSource Connection OK",r=i.a.reduce(e,(function(e,t){return"error"===t.status&&(""===e&&(e+="Oops! Found an error in: "),e+="".concat(t.service,": ").concat(t.message,"; \n")),e}),"");return r&&(t="error",n=r),{status:t,message:n,title:i.a.upperFirst(t)}}))},e.prototype.getServiceFn=function(e,t){var n=this;return function(){for(var r,o=[],a=0;a=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(Array.isArray(t))t.push(n);else{if("object"!=typeof t)return[t,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if("object"!=typeof t)return[t].concat(n);var a=t;return Array.isArray(t)&&!Array.isArray(n)&&(a=o(t,i)),Array.isArray(t)&&Array.isArray(n)?(n.forEach((function(n,o){r.call(t,o)?t[o]&&"object"==typeof t[o]?t[o]=e(t[o],n,i):t.push(n):t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},function(e,t,n){"use strict";var r=String.prototype.replace,i=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,i,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";n.r(t),n.d(t,"queryDDO",(function(){return a}));var r=n(6),i=n.n(r),o=function(){function e(t,n){Object.assign(t,e._config),t.onChecked=function(e,n){!0===t.target.queries[e]&&(t.target.queries[n]=!1),t.onChange()},t.init()}return e.$inject=["$scope","$rootScope"],e}();function a(){return{template:'\n\n',controller:o,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}t.default=function(e,t){o._config=t,i.a.directive(e,a)}},function(e,t,n){"use strict";n.r(t)},function(e,t,n){"use strict";var r=n(207),i=n(208),o=n(194);e.exports={formats:o,parse:i,stringify:r}},function(e){e.exports=JSON.parse('{"type":"datasource","name":"Tencent Cloud Monitoring","id":"tencentcloud-monitor-datasource","backend":true,"alerting":true,"logs":true,"metrics":true,"annotations":false,"executable":"tencentcloud-monitor-app-backend","queryOptions":{"maxDataPoints":true},"routes":[{"path":"cls-internal","url":"https://cls.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region-internal","url":"https://region.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api-internal","url":"https://api.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq-internal","url":"https://cmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai-internal","url":"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen-internal","url":"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr-internal","url":"https://emr.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai-internal","url":"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen-internal","url":"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf-internal","url":"https://scf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai-internal","url":"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen-internal","url":"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs-internal","url":"https://cfs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai-internal","url":"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen-internal","url":"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka-internal","url":"https://ckafka.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai-internal","url":"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen-internal","url":"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb-internal","url":"https://clb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai-internal","url":"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen-internal","url":"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb-internal","url":"https://mongodb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai-internal","url":"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen-internal","url":"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc-internal","url":"https://vpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai-internal","url":"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen-internal","url":"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx-internal","url":"https://vpc.api.qcloud.com.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm-internal","url":"https://cvm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai-internal","url":"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen-internal","url":"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor-internal","url":"https://monitor.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai-internal","url":"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen-internal","url":"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb-internal","url":"https://cdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai-internal","url":"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen-internal","url":"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres-internal","url":"https://postgres.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai-internal","url":"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen-internal","url":"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn-internal","url":"https://cdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis-internal","url":"https://redis.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb-internal","url":"https://dcdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc-internal","url":"https://dc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb-internal","url":"https://cynosdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver-internal","url":"https://sqlserver.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip-internal","url":"https://bmeip.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc-internal","url":"https://bmvpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb-internal","url":"https://bmlb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm-internal","url":"https://bm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es-internal","url":"https://es.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs-internal","url":"https://cbs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb-internal","url":"https://tcaplusdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway-internal","url":"https://apigateway.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq-internal","url":"https://tdmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap-internal","url":"https://gaap.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm-internal","url":"https://ecm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse-internal","url":"https://gse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse-internal","url":"https://lighthouse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf-internal","url":"https://tsf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum-internal","url":"https://rum.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke-internal","url":"https://tke.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn-internal","url":"https://ecdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf-internal","url":"https://waf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway","url":"https://apigateway.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api","url":"https://api.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq","url":"https://cmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai","url":"https://cmq.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen","url":"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr","url":"https://emr.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai","url":"https://emr.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen","url":"https://emr.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf","url":"https://scf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai","url":"https://scf.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen","url":"https://scf.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs","url":"https://cfs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai","url":"https://cfs.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen","url":"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka","url":"https://ckafka.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai","url":"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen","url":"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb","url":"https://clb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai","url":"https://clb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen","url":"https://clb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb","url":"https://mongodb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai","url":"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen","url":"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc","url":"https://vpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai","url":"https://vpc.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen","url":"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx","url":"https://vpc.api.qcloud.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm","url":"https://cvm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai","url":"https://cvm.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen","url":"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor","url":"https://monitor.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai","url":"https://monitor.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen","url":"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb","url":"https://cdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai","url":"https://cdb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen","url":"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres","url":"https://postgres.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai","url":"https://postgres.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen","url":"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn","url":"https://cdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis","url":"https://redis.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb","url":"https://dcdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc","url":"https://dc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb","url":"https://cynosdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver","url":"https://sqlserver.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip","url":"https://bmeip.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc","url":"https://bmvpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb","url":"https://bmlb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm","url":"https://bm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es","url":"https://es.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs","url":"https://cbs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb","url":"https://tcaplusdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq","url":"https://tdmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap","url":"https://gaap.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm","url":"https://ecm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse","url":"https://gse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cls","url":"https://cls.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shanghai","url":"https://cls.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shenzhen","url":"https://cls.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region","url":"https://region.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse","url":"https://lighthouse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf","url":"https://tsf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum","url":"https://rum.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apm","url":"https://apm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke","url":"https://tke.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn","url":"https://ecdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf","url":"https://waf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]}],"info":{"author":{"name":"Tencent Cloud"},"logos":{"small":"img/tencent-cloud.svg","large":"img/tencent-cloud.svg"},"description":"Data source for Tencent Cloud monitoring service"}}')},,,,,,,,,function(e,t,n){"use strict";var r=n(193),i=n(194),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(e){return a.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,n,i,o,a,s,u,l,p,d,f,m){var y=t;if("function"==typeof u)y=u(n,y);else if(y instanceof Date)y=d(y);else if(null===y){if(o)return s&&!m?s(n,c.encoder):n;y=""}if("string"==typeof y||"number"==typeof y||"boolean"==typeof y||r.isBuffer(y))return s?[f(m?n:s(n,c.encoder))+"="+f(s(y,c.encoder))]:[f(n)+"="+f(String(y))];var h,g=[];if(void 0===y)return g;if(Array.isArray(u))h=u;else{var v=Object.keys(y);h=l?v.sort(l):v}for(var b=0;b0?_+x:""}},function(e,t,n){"use strict";var r=n(193),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),c=a?r.slice(0,a.index):r,s=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;s.push(c)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=e[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,s=parseInt(c,10);!isNaN(s)&&a!==c&&String(s)===c&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(o=[])[s]=r:o[c]=r}r=o}return r}(s,t,n)}};e.exports=function(e,t){var n=t?r.assign({},t):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===e||null==e)return n.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var n={},r=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=t.parameterLimit===1/0?void 0:t.parameterLimit,c=r.split(t.delimiter,a),s=0;s0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(this.configured=!0))}return e.$inject=["$scope","$injector","$q"],e.prototype.moveToFolder=function(e,t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return[4,c.get("/api/dashboards/uid/".concat(e))];case 1:return n=r.sent().dashboard,[4,c.post("/api/dashboards/db/",{dashboard:n,folderId:t,message:"",overwrite:!0})];case 2:return r.sent(),[2]}}))}))},e.prototype.reviseDashboard=function(){var e;return o(this,void 0,void 0,(function(){var t,n,r,i,o,s=this;return a(this,(function(a){switch(a.label){case 0:return[4,l()];case 1:return t=a.sent(),n=t[0],r=t[1],[4,c.get("/api/plugins/".concat(null===(e=this.appModel)||void 0===e?void 0:e.id,"/dashboards"))];case 2:return i=a.sent(),o=i.map((function(e){var t=e.importedUrl,i=e.path,o=t.split("/")[2];return o?s.moveToFolder(o,i.endsWith("_en_dashboard.json")?r:n):Promise.resolve()})),[2,Promise.all(o)]}}))}))},e.prototype.postUpdate=function(){var e;return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return(null===(e=this.appModel)||void 0===e?void 0:e.enabled)?[4,this.reviseDashboard()]:[2];case 1:return t.sent(),[2,this.$q.resolve(!0)]}}))}))},e.templateUrl="components/config.html",e}()}])}));
//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/dist/components/config.js.map b/dist/components/config.js.map
index f49cc12..8254fb3 100644
--- a/dist/components/config.js.map
+++ b/dist/components/config.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://TencentCloudMonitorGrafanaApp/webpack/bootstrap","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/formats.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/index.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/parse.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/stringify.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/utils.js","webpack://TencentCloudMonitorGrafanaApp/./components/config.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/constants.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/datasourceStorage.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/indexedDB.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/sign.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/signV2.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/utils.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^.*$","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/MonitorDatasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query_filter.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/en_US.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/index.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/zh_CN.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/data\"","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/runtime\"","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/core_module\"","webpack://TencentCloudMonitorGrafanaApp/external \"lodash\"","webpack://TencentCloudMonitorGrafanaApp/external \"moment\""],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,gBAAgB,mBAAO,CAAC,wDAAa;AACrC,YAAY,mBAAO,CAAC,gDAAS;AAC7B,cAAc,mBAAO,CAAC,oDAAW;;AAEjC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb,YAAY,mBAAO,CAAC,gDAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC7Ka;;AAEb,YAAY,mBAAO,CAAC,gDAAS;AAC7B,cAAc,mBAAO,CAAC,oDAAW;;AAEjC;AACA,yCAAyC;AACzC;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA,KAAK;AACL,qCAAqC;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjNa;;AAEb;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO,WAAW,aAAa;AACjD;;AAEA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnNA;AACA;AAEA,IAAM,UAAU,GAAG,sEAAa,EAAhC;AAEA,IAAM,QAAQ,GAAG;AACf,KAAG,EAAE,uBADU;AAEf,OAAK,EAAE,OAFQ;AAGf,UAAQ,EAAE;AAHK,CAAjB;AAMA,IAAM,WAAW,GAAG;AAClB,KAAG,EAAE,+BADa;AAElB,OAAK,EAAE,uBAFW;AAGlB,UAAQ,EAAE;AAHQ,CAApB;AAMA;;;AAGG;;AACH,SAAe,WAAf,GAA0B;;;;;;;;AACxB,cAAI,QAAQ,CAAC,QAAT,IAAqB,WAAW,CAAC,QAArC,EAA+C;AAC7C;AAAA;AAAA,cAAO,CAAC,QAAQ,CAAC,QAAV,EAAoB,WAAW,CAAC,QAAhC,CAAP;AACD;;AACsB;AAAA;AAAA,YAAM,UAAU,CAAC,GAAX,CAAe,cAAf,CAAN;;;AAAjB,iBAAO,GAAU,SAAjB;AACF,kBAAQ,GAAG,aAAO,CAAC,IAAR,CAAa,UAAC,IAAD,EAAK;AAAK,uBAAI,CAAC,GAAL,KAAa,QAAQ,CAArB;AAAyB,WAAhD,OAAiD,IAAjD,IAAiD,aAAjD,GAAiD,MAAjD,GAAiD,GAAE,EAA9D;AACA,oBAAU,GAAG,aAAO,CAAC,IAAR,CAAa,UAAC,IAAD,EAAK;AAAK,uBAAI,CAAC,GAAL,KAAa,WAAW,CAAxB;AAA4B,WAAnD,OAAoD,IAApD,IAAoD,aAApD,GAAoD,MAApD,GAAoD,GAAE,EAAnE;eACA,CAAC,Q,EAAD;AAAA;AAAA;AACa;AAAA;AAAA,YAAM,UAAU,CAAC,IAAX,CAAgB,cAAhB,EAAgC,QAAhC,CAAN;;;AAAT,gBAAM,GAAG,SAAT;AACN,kBAAQ,GAAG,OAAM,SAAN,UAAM,WAAN,GAAM,MAAN,SAAM,CAAE,EAAR,KAAc,CAAzB;;;;eAEE,CAAC,U,EAAD;AAAA;AAAA;AACe;AAAA;AAAA,YAAM,UAAU,CAAC,IAAX,CAAgB,cAAhB,EAAgC,WAAhC,CAAN;;;AAAX,kBAAQ,GAAG,SAAX;AACN,oBAAU,GAAG,SAAQ,SAAR,YAAQ,WAAR,GAAQ,MAAR,WAAQ,CAAE,EAAV,KAAgB,CAA7B;;;;AAEF,kBAAQ,CAAC,QAAT,GAAoB,QAApB;AACA,qBAAW,CAAC,QAAZ,GAAuB,UAAvB;AACA;AAAA;AAAA,YAAO,CAAC,QAAD,EAAW,UAAX,CAAP;;;;AACD;AAED;;AAEG;;;AACH,SAAS,kBAAT,GAA2B;AAA3B;;AACE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAX,CAAgB,IAAhB,CAAqB,sEAAa,EAAlC,CAAhB;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAP,CAAgB,QAAhB,CAAyB,KAAzB,CAA+B,GAA/B,EAAoC,MAApC,CAA2C,UAAC,IAAD,EAAK;AAAK;AAAI,GAAzD,EAA2D,CAA3D,CAAjB;;AACA,YAAU,CAAC,IAAX,GAAkB,UAAO,GAAP,EAAY,IAAZ,EAAgB;AAAA;;;;;;gBAE5B,KAAG,KAAK,wBAAR,IAAoC,IAAI,CAAC,QAAL,KAAkB,QAAtD,C,EAAA;AAAA;AAAA;AAC6B;AAAA;AAAA,cAAM,WAAW,EAAjB;;;AAAzB,iBAAyB,SAAzB,EAAC,QAAQ,QAAT,EAAW,UAAU,QAArB;AACN,gBAAI,CAAC,QAAL,GAAgB,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,oBAAnB,IAA2C,UAA3C,GAAwD,QAAxE;;;;AAEF;AAAA;AAAA,cAAO,OAAO,CAAC,GAAD,EAAM,IAAN,CAAd;;;KANgC;AAOjC,GAPD;AAQD;;AAED,kBAAkB;;AAElB;AAAA;AAAA;AAAA;;AAOE;AACA,gCAAY,MAAZ,EAAyB,SAAzB,EAAyC,EAAzC,EAAgD;;;AAC9C,SAAK,WAAL,CAAiB,iBAAjB,CAAmC,KAAK,UAAL,CAAgB,IAAhB,CAAqB,IAArB,CAAnC;AACA,SAAK,EAAL,GAAU,EAAV,CAF8C,CAG9C;;AACA,QAAI,CAAC,KAAK,QAAV,EAAoB;AAClB;AACA,WAAK,QAAL,GAAgB,EAAhB;AACD,KAP6C,CAS9C;;;AACA,QAAM,QAAQ,GAAG,KAAK,QAAtB;;AACA,QAAI,CAAC,QAAQ,CAAC,QAAd,EAAwB;AACtB,cAAQ,CAAC,QAAT,GAAoB,EAApB;AACD;;AACD,SAAK,UAAL,GAAkB,KAAlB;;AACA,QAAI,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,OAAnB,EAA4B;AAC1B,UAAM,WAAW,GAAG,MAAM,CAAC,MAAP,CAAc,uDAAM,CAAC,WAArB,EAAkC,MAAlC,CAAyC,UAAC,EAAD,EAAG;AAC9D,eAAO,EAAE,CAAC,IAAH,KAAY,2EAAnB;AACD,OAFmB,CAApB;;AAGA,UAAI,WAAW,CAAC,MAAZ,GAAqB,CAAzB,EAA4B;AAC1B,aAAK,UAAL,GAAkB,IAAlB;AACD;AACF;AACF;;AAEK,gDAAN,UAAmB,YAAnB,EAAyC,QAAzC,EAAyD;;;;;;AAEjC;AAAA;AAAA,cAAM,UAAU,CAAC,GAAX,CAAe,8BAAuB,YAAvB,CAAf,CAAN;;;AAAd,qBAAS,GAAK,UAAL,SAAT,C,CACR;;AACA;AAAA;AAAA,cAAM,UAAU,CAAC,IAAX,CAAgB,qBAAhB,EAAuC;AAC3C,uBAAS,WADkC;AAE3C,sBAAQ,UAFmC;AAG3C,qBAAO,EAAE,EAHkC;AAI3C,uBAAS,EAAE;AAJgC,aAAvC,CAAN;;;AADA;AACA;;;;;;;;AAMD,GAVK;;AAYA,mDAAN;;;;;;;;;;;AAEiC;AAAA;AAAA,cAAM,WAAW,EAAjB;;;AAAzB,iBAAyB,SAAzB,EAAC,QAAQ,QAAT,EAAW,UAAU,QAArB;AAEK;AAAA;AAAA,cAAM,UAAU,CAAC,GAAX,CAAe,uBAAgB,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,EAA/B,EAAiC,aAAjC,CAAf,CAAN;;;AAAL,cAAE,GAAG,SAAL;AAGA,kBAAM,GAAG,EAAE,CAAC,GAAH,CAAO,UAAC,IAAD,EAAK;AACjB,6BAAW,GAAW,IAAI,CAAf,WAAX;AAAA,kBAAa,IAAI,GAAK,IAAI,CAAT,IAAjB;AACR,kBAAM,GAAG,GAAG,WAAW,CAAC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAZ;;AACA,kBAAI,GAAJ,EAAS;AACP,uBAAO,KAAI,CAAC,YAAL,CAAkB,GAAlB,EAAuB,IAAI,CAAC,QAAL,CAAc,oBAAd,IAAsC,UAAtC,GAAmD,QAA1E,CAAP;AACD,eAFD,MAEO;AACL,uBAAO,OAAO,CAAC,OAAR,EAAP;AACD;AACF,aARc,CAAT;AAUN;AAAA;AAAA,cAAO,OAAO,CAAC,GAAR,CAAY,MAAZ,CAAP;;;;AACD,GAlBK;;AAoBA,8CAAN;;;;;;;AACE,gBAAI,EAAC,WAAK,QAAL,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,OAAhB,CAAJ,EAA6B;AAC3B;AAAA;AAAA;AACD,a,CACD;;;AACA;AAAA;AAAA,cAAM,KAAK,eAAL,EAAN;;;AADA;AACA;;AACA;AAAA;AAAA,cAAO,KAAK,EAAL,CAAQ,OAAR,CAAgB,IAAhB,CAAP;;;;AACD,GAPK;;AAhEC,qCAAc,wBAAd;AAwET;AAAC,CAzED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,IAAM,cAAc,GAAG,yCAAW,CAAC,EAAnC,C,CAEP;;AACA,IAAM,cAAc,GAAG,CAAC,iBAAD,EAAoB,iBAApB,CAAvB;AACA,IAAM,iBAAiB,GAAG;AACxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GADmB;AAOxB;AACA,SAAO,EAAE;AACP,WAAO,EAAE,SADF;AAEP,WAAO,EAAE,YAFF;AAGP,QAAI,EAAE,UAHC;AAIP,QAAI,EAAE;AAJC,GARe;AAcxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAfmB;AAqBxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAtBmB;AA4BxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA7BmB;AAmCxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,EAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GApCmB;AA0CxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA3CmB;AAiDxB;AACA,SAAO,EAAE;AACP,WAAO,EAAE,SADF;AAEP,WAAO,EAAE,YAFF;AAGP,QAAI,EAAE,UAHC;AAIP,QAAI,EAAE;AAJC,GAlDe;AAwDxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAzDmB;AA+DxB;AACA,UAAQ,EAAE;AACR,WAAO,EAAE,UADD;AAER,WAAO,EAAE,YAFD;AAGR,QAAI,EAAE,WAHE;AAIR,QAAI,EAAE;AAJE,GAhEc;AAsExB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAvEmB;AA6ExB;AACA,OAAK,EAAE;AACL,WAAO,EAAE,OADJ;AAEL,WAAO,EAAE,YAFJ;AAGL,QAAI,EAAE,QAHD;AAIL,QAAI,EAAE;AAJD,GA9EiB;AAoFxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GApFmB;AA0FxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA1FmB;AAgGxB,QAAM,EAAE;AACN,WAAO,EAAE,QADH;AAEN,WAAO,EAAE,YAFH;AAGN,QAAI,EAAE,SAHA;AAIN,QAAI,EAAE;AAJA,GAhGgB;AAsGxB;AACA,IAAE,EAAE;AACF,WAAO,EAAE,IADP;AAEF,WAAO,EAAE,YAFP;AAGF,QAAI,EAAE,KAHJ;AAIF,QAAI,EAAE;AAJJ,GAvGoB;AA6GxB;AACA,SAAO,EAAE;AACP,WAAO,EAAE,SADF;AAEP,WAAO,EAAE,YAFF;AAGP,QAAI,EAAE,UAHC;AAIP,QAAI,EAAE;AAJC,GA9Ge;AAoHxB;AACA,WAAS,EAAE;AACT,WAAO,EAAE,WADA;AAET,WAAO,EAAE,YAFA;AAGT,QAAI,EAAE,YAHG;AAIT,QAAI,EAAE;AAJG,GArHa;AA2HxB;AACA,IAAE,EAAE;AACF,WAAO,EAAE,IADP;AAEF,WAAO,EAAE,YAFP;AAGF,QAAI,EAAE,KAHJ;AAIF,QAAI,EAAE;AAJJ,GA5HoB;AAkIxB,OAAK,EAAE;AACL,WAAO,EAAE,OADJ;AAEL,WAAO,EAAE,YAFJ;AAGL,QAAI,EAAE,QAHD;AAIL,QAAI,EAAE;AAJD,GAlIiB;AAwIxB,OAAK,EAAE;AACL,WAAO,EAAE,OADJ;AAEL,WAAO,EAAE,YAFJ;AAGL,QAAI,EAAE,QAHD;AAIL,QAAI,EAAE;AAJD,GAxIiB;AA8IxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GA9IkB;AAoJxB;AACA,IAAE,EAAE;AACF,WAAO,EAAE,IADP;AAEF,WAAO,EAAE,YAFP;AAGF,QAAI,EAAE,KAHJ;AAIF,QAAI,EAAE;AAJJ,GArJoB;AA2JxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA5JmB;AAkKxB;AACA,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAnKmB;AAyKxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAzKmB;AA+KxB;AACA,WAAS,EAAE;AACT,WAAO,EAAE,WADA;AAET,WAAO,EAAE,YAFA;AAGT,QAAI,EAAE,YAHG;AAIT,QAAI,EAAE;AAJG,GAhLa;AAsLxB;AACA,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GAvLkB;AA6LxB;AACA,YAAU,EAAE;AACV,WAAO,EAAE,YADC;AAEV,WAAO,EAAE,YAFC;AAGV,QAAI,EAAE,aAHI;AAIV,QAAI,EAAE;AAJI,GA9LY;AAoMxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GApMkB;AA0MxB,eAAa,EAAE;AACb,WAAO,EAAE,MADI;AAEb,WAAO,EAAE,YAFI;AAGb,QAAI,EAAE,OAHO;AAIb,QAAI,EAAE;AAJO,GA1MS;AAgNxB,eAAa,EAAE;AACb,WAAO,EAAE,MADI;AAEb,WAAO,EAAE,YAFI;AAGb,QAAI,EAAE,OAHO;AAIb,QAAI,EAAE;AAJO,GAhNS;AAsNxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GAtNkB;AA4NxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA5NmB;AAkOxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAlOmB;AAwOxB,YAAU,EAAE;AACV,WAAO,EAAE,YADC;AAEV,WAAO,EAAE,YAFC;AAGV,QAAI,EAAE,aAHI;AAIV,QAAI,EAAE;AAJI,GAxOY;AA8OxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA9OmB;AAoPxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GApPmB;AA0PxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GA1PmB;AAgQxB,MAAI,EAAE;AACJ,WAAO,EAAE,MADL;AAEJ,WAAO,EAAE,YAFL;AAGJ,QAAI,EAAE,OAHF;AAIJ,QAAI,EAAE;AAJF,GAhQkB;AAsQxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAtQmB;AA4QxB,QAAM,EAAE;AACN,WAAO,EAAE,QADH;AAEN,WAAO,EAAE,YAFH;AAGN,QAAI,EAAE,SAHA;AAIN,QAAI,EAAE;AAJA,GA5QgB;AAkRxB,KAAG,EAAE;AACH,WAAO,EAAE,KADN;AAEH,WAAO,EAAE,YAFN;AAGH,QAAI,EAAE,MAHH;AAIH,QAAI,EAAE;AAJH,GAlRmB,CAwRxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AArSwB,CAA1B;AAwSA,IAAM,WAAW,GAAG;AAClB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GADa;AAWlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GAXa;AAqBlB,QAAM,EAAE;AACN,uBAAmB;AACjB,UAAI,EAAE,sBADW;AAEjB,UAAI,EAAE;AAFW,KADb;AAKN,uBAAmB;AACjB,UAAI,EAAE,sBADW;AAEjB,UAAI,EAAE;AAFW;AALb,GArBU;AA+BlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GA/Ba;AAyClB,SAAO,EAAE;AACP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW,KADZ;AAKP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW;AALZ,GAzCS;AAmDlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GAnDa;AA6DlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GA7Da;AAuElB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GAvEa;AAiFlB,SAAO,EAAE;AACP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW,KADZ;AAKP,uBAAmB;AACjB,UAAI,EAAE,uBADW;AAEjB,UAAI,EAAE;AAFW;AALZ,GAjFS;AA2FlB,UAAQ,EAAE;AACR,uBAAmB;AACjB,UAAI,EAAE,wBADW;AAEjB,UAAI,EAAE;AAFW,KADX;AAKR,uBAAmB;AACjB,UAAI,EAAE,wBADW;AAEjB,UAAI,EAAE;AAFW;AALX,GA3FQ;AAqGlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GArGa;AA+GlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB,GA/Ga;AAyHlB,KAAG,EAAE;AACH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW,KADhB;AAKH,uBAAmB;AACjB,UAAI,EAAE,mBADW;AAEjB,UAAI,EAAE;AAFW;AALhB;AAzHa,CAApB,C,CAqIA;;AACM,SAAU,iBAAV,CAA4B,MAA5B,EAAoC,OAApC,EAA2C;AAC/C,+BAAa,iBAAiB,CAAC,OAAD,CAAjB,IAA8B,EAA3C,GAAmD,cAAc,CAAC,MAAD,EAAS,OAAT,CAAjE;AACD,C,CAED;;AACA,SAAS,cAAT,CAAwB,MAAxB,EAAgC,OAAhC,EAAuC;AACrC,MAAI,6CAAC,CAAC,OAAF,CAAU,cAAV,EAA0B,MAA1B,MAAsC,CAAC,CAA3C,EAA8C;AAC5C,WAAO,EAAP;AACD;;AACD,SACE,6CAAC,CAAC,IAAF,CACE,6CAAC,CAAC,IAAF,CAAO,WAAP,EAAoB,UAAC,EAAD,EAAK,GAAL,EAAQ;AAAK,cAAG,KAAH;AAAe,GAAhD,CADF,EAEE,UAAC,EAAD,EAAK,GAAL,EAAQ;AAAK,cAAG,KAAH;AAAc,GAF7B,KAGK,EAJP;AAMD,C,CAED;;;AACO,IAAM,cAAc,GAAG,eAAvB;AAED,SAAU,uBAAV,CAAkC,SAAlC,EAA2C;AAC/C,SAAO,6CAAC,CAAC,GAAF,CACL,6CAAC,CAAC,IAAF,CAAO,oDAAP,EAAiB,UAAC,OAAD,EAAQ;AAAK,kBAAO,CAAC,SAAR;AAA+B,GAA7D,CADK,EAEL,SAFK,CAAP;AAID,C,CACD;;AACM,SAAU,qBAAV,CAAgC,SAAhC,EAAyC;AAC7C,SAAO,6CAAC,CAAC,GAAF,CACL,6CAAC,CAAC,IAAF,CAAO,oDAAP,EAAiB,UAAC,OAAD,EAAQ;AAAK,kBAAO,CAAC,SAAR,KAAsB,SAAtB,IAAmC,OAAO,CAAC,KAAR,KAAnC;AAA8D,GAA5F,CADK,EAEL,OAFK,CAAP;AAID,C,CACD;;AACM,SAAU,gBAAV,CAA2B,KAA3B,EAAqC;AAAV;AAAA;AAAU;;AACzC,MAAI,CAAC,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AACD,MAAM,MAAM,GAAG,EAAf;;AACA,MAAM,OAAO,GAAG,6CAAC,CAAC,KAAF,CAAQ,KAAR,EAAe,GAAf,CAAhB;;AACA,+CAAC,CAAC,OAAF,CAAU,OAAV,EAAmB,UAAC,IAAD,EAAK;AACtB,QAAM,GAAG,GAAG,6CAAC,CAAC,KAAF,CAAQ,IAAR,EAAc,GAAd,CAAZ;;AACA,QAAI,6CAAC,CAAC,IAAF,CAAO,6CAAC,CAAC,GAAF,CAAM,GAAN,EAAW,GAAX,EAAgB,EAAhB,CAAP,CAAJ,EAAiC;AAC/B,UAAI,GAAG,GAAG,6CAAC,CAAC,IAAF,CAAO,6CAAC,CAAC,GAAF,CAAM,GAAN,EAAW,GAAX,EAAgB,EAAhB,CAAP,CAAV;;AACA,UAAI;AACF,WAAG,GAAG,IAAI,CAAC,KAAL,CAAW,GAAX,CAAN;AACD,OAFD,CAEE,OAAO,CAAP,EAAU,CACV;AACD;;AACD,YAAM,CAAC,6CAAC,CAAC,OAAF,CAAU,6CAAC,CAAC,IAAF,CAAO,6CAAC,CAAC,GAAF,CAAM,GAAN,EAAW,GAAX,EAAgB,EAAhB,CAAP,CAAV,CAAD,CAAN,GAAiD,GAAjD;AACD;AACF,GAXD;;AAYA,SAAO,MAAP;AACD,C,CAED;;AACM,SAAU,gBAAV,CAA2B,KAA3B,EAAqC;AAAV;AAAA;AAAU;;AACzC,MAAI,CAAC,KAAL,EAAY;AACV,WAAO,EAAP;AACD;;AACD,OAAK,GAAG,KAAK,CAAC,OAAN,CAAc,IAAd,EAAoB,GAApB,CAAR;AACA,OAAK,GAAG,KAAK,CAAC,OAAN,CAAc,IAAd,EAAoB,GAApB,CAAR;AACA,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAD,CAApC;AACA,MAAM,MAAM,GAAU,EAAtB;;AACA,+CAAC,CAAC,OAAF,CAAU,WAAV,EAAuB,UAAC,KAAD,EAAQ,GAAR,EAAW;AAChC,QAAI,GAAG,KAAK,aAAZ,EAA2B;AACzB,UAAM,SAAS,GAAG,6CAAC,CAAC,KAAF,CAAQ,KAAR,EAAe,GAAf,CAAlB;;AACA,mDAAC,CAAC,OAAF,CAAU,SAAV,EAAqB,UAAC,IAAD,EAAK;AACxB,YAAM,IAAI,GAAG,6CAAC,CAAC,KAAF,CAAQ,IAAR,EAAc,GAAd,CAAb;;AACA,YAAI,IAAI,CAAC,MAAL,KAAgB,CAApB,EAAuB;AACrB,gBAAM,CAAC,IAAP,CAAY;AAAE,gBAAI,EAAE,cAAO,IAAI,CAAC,CAAD,CAAX,CAAR;AAA0B,kBAAM,EAAE,IAAI,CAAC,KAAL,CAAW,CAAX;AAAlC,WAAZ;AACD;AACF,OALD;AAMD,KARD,MAQO;AACL,YAAM,CAAC,IAAP,CAAY;AAAE,YAAI,EAAE,GAAR;AAAa,cAAM,EAAE,6CAAC,CAAC,KAAF,CAAQ,KAAR,EAAe,GAAf;AAArB,OAAZ;AACD;AACF,GAZD;;AAaA,SAAO,MAAP;AACD,C,CAED;;AACA,SAAS,mBAAT,CAA6B,OAA7B,EAA4C;AAC1C,SAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAZ,CAAhB,CAD0C,CAE1C;;AACA,MAAI,OAAO,GAAG,KAAd;AACA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAR,CAAc,cAAd,CAAnB;;AACA,MAAI,UAAJ,EAAgB;AACd,WAAO,GAAG,IAAV;AACA,WAAO,GAAG,YAAO,UAAU,CAAC,CAAD,CAAjB,EAAoB,QAApB,CAAV;AACD,GARyC,CAS1C;;;AACA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAR,CAAc,wBAAd,CAAnB;;AACA,MAAI,UAAJ,EAAgB;AACd,WAAO,GAAG,IAAV;AACA,WAAO,GAAG,YAAO,UAAU,CAAC,CAAD,CAAjB,EAAoB,QAApB,CAAV;AACD;;AACD,SAAO;AAAE,WAAO,SAAT;AAAW,WAAO;AAAlB,GAAP;AACD;;AAEK,SAAU,eAAV,CAA0B,WAA1B,EAAuC,UAAvC,EAAmD,KAAnD,EAA0D,QAA1D,EAA0E;AAAhB;AAAA;AAAgB;;AACxE,WAAuB,mBAAmB,CAAC,KAAD,CAA1C;AAAA,MAAE,OAAO,aAAT;AAAA,MAAW,OAAO,aAAlB;;AACN,MAAI,UAAU,GAAG,WAAW,CAAC,OAAZ,CAAoB,OAApB,EAA6B,UAA7B,CAAjB;;AACA,MAAI,OAAJ,EAAa;AACX,QAAI;AACF,gBAAU,GAAG,IAAI,CAAC,KAAL,CAAW,UAAX,CAAb;AACD,KAFD,CAEE,OAAO,KAAP,EAAc,CAAE;AACnB;;AACD,MAAI,CAAC,QAAD,IAAa,6CAAC,CAAC,OAAF,CAAU,UAAV,CAAjB,EAAwC;AACtC,cAAU,GAAG,6CAAC,CAAC,GAAF,CAAM,UAAN,EAAkB,GAAlB,EAAuB,EAAvB,CAAb;AACD;;AACD,SAAO,UAAP;AACD,C,CAED;;AACM,SAAU,aAAV,CAAwB,GAAxB,EAA2B;AAC/B,MAAI,6CAAC,CAAC,OAAF,CAAU,GAAV,CAAJ,EAAoB;AAClB,WAAO,EAAP;AACD;;AACD,MAAM,UAAU,GAAU,EAA1B;;AACA,+CAAC,CAAC,OAAF,CAAU,GAAV,EAAe,UAAC,IAAD,EAAK;AAClB,QAAI,IAAI,CAAC,KAAL,KAAe,IAAf,IAAuB,IAAI,CAAC,KAAL,KAAe,SAAtC,IAAmD,IAAI,CAAC,KAAL,KAAe,EAAtE,EAA0E;AACxE,gBAAU,CAAC,IAAX,CAAgB;AAAE,YAAI,EAAE,IAAI,CAAC,IAAb;AAAmB,aAAK,EAAE,OAAO,IAAI,CAAC,KAAZ,KAAsB,QAAtB,GAAiC,IAAI,CAAC,KAAtC,GAA8C,UAAG,IAAI,CAAC,KAAR;AAAxE,OAAhB;AACD;AACF,GAJD;;AAKA,SAAO,UAAP;AACD,C,CAED;;AACM,SAAU,gBAAV,CAA2B,QAA3B,EAAqC,SAArC,EAA4D,SAA5D,EAAyE;AAApC;AAAA;AAAqB;;AAAE;AAAA;AAAa;;AAC7E,MAAM,YAAY,GAAG,6CAAC,CAAC,SAAF,CAAY,SAAZ,CAArB;;AAEA,MAAM,UAAU,GAAG,6CAAC,CAAC,GAAF,CAAM,QAAN,EAAgB,YAAhB,EAA8B,EAA9B,CAAnB;;AACA,SAAO,6CAAC,CAAC,GAAF,CAAM,UAAN,EAAkB,UAAC,SAAD,EAAU;AACjC,QAAI,kBAAkB,GAAG,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,qBAAjB,CAAzB;;AACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,YAAY,CAAC,MAAjC,EAAyC,CAAC,EAA1C,EAA8C;AAC5C,UAAI,eAAe,CAAC,YAAY,CAAC,CAAD,CAAb,EAAkB,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,YAAjB,EAA+B,EAA/B,CAAlB,CAAnB,EAA0E;AACxE,0BAAkB,GAAG,YAAY,CAAC,CAAD,CAAZ,CAAgB,mBAArC;AACA,oBAAY,CAAC,MAAb,CAAoB,CAApB,EAAuB,CAAvB;AACA;AACD;AACF;;AACD,WAAO;AACL,YAAM,EAAE,UAAG,QAAQ,CAAC,UAAZ,EAAsB,KAAtB,EAAsB,MAAtB,CAA4B,kBAA5B,CADH;AAEL,gBAAU,EAAE,cAAc,CAAC,SAAD,EAAY,SAAZ;AAFrB,KAAP;AAID,GAbM,CAAP;AAcD,C,CAED;;AACA,SAAS,cAAT,CAAwB,SAAxB,EAAmC,SAAnC,EAAgD;AAAb;AAAA;AAAa;;AAC9C,MAAM,UAAU,GAAG,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,YAAjB,EAA+B,EAA/B,CAAnB;;AACA,MAAM,MAAM,GAAG,6CAAC,CAAC,GAAF,CAAM,SAAN,EAAiB,QAAjB,EAA2B,EAA3B,CAAf;;AACA,MAAM,MAAM,GAAG,UAAU,CAAC,GAAX,CAAe,UAAC,SAAD,EAAY,KAAZ,EAAiB;AAC7C,WAAO,CAAC,MAAM,CAAC,KAAD,CAAP,EAAgB,SAAS,GAAG,IAAZ,GAAmB,SAAnC,CAAP;AACD,GAFc,CAAf;AAIA,SAAO,MAAP;AACD,C,CAED;;;AACA,SAAS,eAAT,CAAyB,QAAzB,EAAmC,UAAnC,EAA6C;AAC3C,MAAI,KAAK,GAAG,IAAZ,CAD2C,CAE3C;;AACA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,UAAU,CAAC,MAA/B,EAAuC,CAAC,EAAxC,EAA4C;AAC1C,QAAI,6CAAC,CAAC,GAAF,CAAM,QAAN,EAAgB,UAAU,CAAC,CAAD,CAAV,CAAc,IAA9B,EAAoC,EAApC,EAAwC,QAAxC,OAAuD,UAAU,CAAC,CAAD,CAAV,CAAc,KAAd,CAAoB,QAApB,EAA3D,EAA2F;AACzF,WAAK,GAAG,KAAR;AACA;AACD;AACF;;AACD,SAAO,KAAP;AACD;AAED;;;;AAIG;;;AACG,SAAU,UAAV,CAAqB,KAArB,EAA0B;AAC9B,MAAI,KAAK,KAAK,KAAK,CAAC,KAAN,CAAY,cAAZ,KAA+B,KAAK,CAAC,KAAN,CAAY,wBAAZ,CAApC,CAAT,EAAqF;AACnF,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD;AAED;;;;;;;AAOG;;AACG,SAAgB,gBAAhB,CAAiC,OAAjC,EAA0C,OAA1C,EAAmD,OAAnD,EAAsE,QAAtE,EAAgF,YAAhF,EAA8F,UAA9F,EAAwG;AAArD;AAAA;AAAiB;;;;;;;;AAClE,oBAAU;AACd,oBAAQ,UADM;AAEd,mBAAO,EAAE,OAAO,CAAC,IAAR,IAAgB;AAFX,aAGX,OAHW,GAIV,6CAAC,CAAC,IAAF,CAAO,iBAAiB,CAAC,OAAO,CAAC,MAAR,IAAkB,EAAnB,EAAuB,OAAvB,CAAxB,EAAyD,CAAC,SAAD,EAAY,MAAZ,EAAoB,SAApB,CAAzD,KAA4F,EAJlF,GAIqF;AACnG,sBAAU,YADyF;AAEnG,wBAAY,cAFuF;AAGnG,kBAAM,EAAE;AAH2F,WAJrF,CAAV;AASA,cAAI,GAAG,IAAI,6CAAJ,CAAS,UAAT,CAAP;AACgC;AAAA;AAAA,YAAM,IAAI,CAAC,SAAL,EAAN;;;AAAhC,eAAgC,SAAhC,EAAE,QAAQ,cAAV,EAAe,YAAY,cAA3B,YAA2B,CAA3B,C,CACN;AACA;;AACA,iBAAO,CAAC,OAAR,GAAkB,MAAM,CAAC,MAAP,CAAc,OAAO,CAAC,OAAR,IAAmB,EAAjC,EAAmC,aAAO,YAAP,CAAnC,EAA0D;AAAE,6BAAiB,2DAAW;AAA9B,WAA1D,CAAlB;AACA,iBAAO,CAAC,MAAR,GAAiB,MAAjB;;AACA,cAAI,QAAJ,EAAc;AACZ,mBAAO,CAAC,GAAR,IAAe,WAAf;AACD;;AACD;AAAA;AAAA,YAAO,OAAP;;;;AACD;AAED;;;;;;;AAOG;;AACG,SAAgB,kBAAhB,CACJ,OADI,EAEJ,OAFI,EAGJ,OAHI,EAIJ,QAJI,EAKJ,YALI,EAMJ,UANI,EAMM;AALV;AAAA;AAAiB;;AAEjB;AAAA;AAAiB;;;;;;;;AAKX,cAAI,GAAG,OAAO,CAAC,IAAR,IAAgB,EAAvB;AACA,oBAAU;AACd,oBAAQ,UADM;AAEd,gBAAI;AAFU,aAGX,OAHW,GAIV,6CAAC,CAAC,IAAF,CAAO,iBAAiB,CAAC,OAAO,CAAC,MAAR,IAAkB,EAAnB,EAAuB,OAAvB,CAAxB,EAAyD,CAAC,MAAD,EAAS,SAAT,CAAzD,KAAiF,EAJvE,GAI0E;AACxF,sBAAU,YAD8E;AAExF,wBAAY;AAF4E,WAJ1E,CAAV;AAQN,iBAAO,CAAC,MAAR,GAAiB,MAAjB;AACM,cAAI,GAAG,IAAI,+CAAJ,CAAW,UAAX,CAAP;AACN,iBAAO,CAAC,OAAR,GAAkB,MAAM,CAAC,MAAP,CAAc,OAAO,CAAC,OAAR,IAAmB,EAAjC,EAAqC;AAAE,4BAAgB;AAAlB,WAArC,CAAlB;AAC8C;AAAA;AAAA,YAAM,IAAI,CAAC,mBAAL,EAAN;;;AAAxC,eAAwC,SAAxC,EAAE,WAAW,iBAAb,EAAe,IAAI,UAAnB,EAAqB,IAAI,UAAzB,EAA2B,QAAQ,cAAnC;AACN,iBAAO,CAAC,IAAR,GAAe,yCAAE,CAAC,SAAH,CAAY,+BACtB,OAAO,CAAC,IADc,GAEtB,WAFsB,GAGrB,IAAI,IAAI;AAAE,gBAAI,EAAE;AAAR,WAHa,CAAZ,CAAf;;AAKA,cAAI,QAAJ,EAAc;AACZ;AACA,mBAAO,CAAC,GAAR,CAAY,0BAAZ;AACD;;AACD,iBAAO,CAAC,GAAR,IAAe,IAAf;AACA;AAAA;AAAA,YAAO,OAAP;;;;AACD;AAEK,SAAU,WAAV,CAAsB,KAAtB,EAAiC,GAAjC,EAAwC;AAAlB;AAAA;AAAS;;AAAE;AAAA;AAAO;;AAC5C,MAAM,MAAM,GAAU,EAAtB;AACA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,GAAG,GAAlB,CAAZ;;AACA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,GAApB,EAAyB,CAAC,EAA1B,EAA8B;AAC5B,UAAM,CAAC,IAAP,CAAY;AAAE,YAAM,EAAE,GAAG,GAAG;AAAhB,KAAZ;AACD;;AACD,SAAO,MAAP;AACD;AAEM,IAAM,UAAU,GAAG,CAAC,WAAD,EAAc,QAAd,EAAwB,OAAxB,EAAiC,WAAjC,EAA8C,aAA9C,EAA6D,SAA7D,EAAwE,OAAxE,CAAnB;AAED,SAAU,0BAAV,CAAqC,GAArC,EAAwC;AACpC,UAAI,GAAK,4EAAmB,CAAC,GAAD,CAAnB,CAAL,IAAJ;AACR,SAAO;AACL,iBAAa,EAAE,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,iBAAZ,EAA+B,EAA/B;AADV,GAAP;AAGD;AAED;;AACO,IAAM,0BAA0B,GAAG,EAAE,kBAAyB,YAA3B,CAAnC;AAEP;;AAEG;;AACH,IAAY,OAAZ;;AAAA,WAAY,OAAZ,EAAmB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACD,CARD,EAAY,OAAO,KAAP,OAAO,MAAnB,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACntBA;;AACA;AAAA;AAAA;AAKE;AAJA;AACA;AACA,kBAAS,WAAT;AACA,oBAAW,EAAX;AACgB;;AAChB,oDAAY,OAAZ,EAA6B,KAA7B,EAAuD;AACrD,WAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,KAAK,MAA9B,EAAsC,KAAtC,EAA6C,IAA7C,CAAP;AACD,GAFD;;AAGM,0CAAN,UAAkB,OAAlB,EAAiC;;;AAC/B;AAAA;AAAA,UAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,KAAK,MAA9B,CAAP;;;AACD,GAFK;;AAGN,wDAAgB,OAAhB,EAAiC,IAAjC,EAA+C,MAA/C,EAA0E;AACxE,WAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,IAAzB,EAA+B,MAA/B,EAAuC,KAAvC,CAAP;AACD,GAFD;;AAGM,8CAAN,UAAsB,OAAtB,EAAuC,IAAvC,EAAmD;;;AACjD;AAAA;AAAA,UAAO,KAAK,UAAL,CAAgB,OAAhB,EAAyB,IAAzB,CAAP;;;AACD,GAFK;;AAGE,yCAAR,UAAmB,UAAnB,EAAuC,GAAvC,EAAoD,KAApD,EAAgF,OAAhF,EAA+F;;;AAAf;AAAA;AAAe,MAC7F;;;AACA,WAAO,kDAAS,CAAC,OAAV,EAAiB;AAEpB,aAAO,EAAE;AAFW,OAGpB,GAAC,GAAD,IAAO,KAHa,E,EAAjB,GAKL,OALK,CAAP;AAOD,GATO,CAlBV,CA4BE;;;AACc,yCAAd,UAAyB,OAAzB,EAA0C,GAA1C,EAAsD;;;;;;AACpC;AAAA;AAAA,cAAM,kDAAS,CAAC,OAAV,CAAkB,OAAlB,CAAN;;;AAAV,mBAAO,GAAG,SAAV,C,CACN;;AACA;AAAA;AAAA,cAAO,GAAG,GAAG,OAAO,SAAP,WAAO,WAAP,GAAO,MAAP,UAAO,CAAG,GAAH,CAAV,GAAoB,OAA9B;;;;AACD,GAJa;;AAKhB;AAAC,CAlCD;;AAmCe,mEAAI,eAAJ,EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCbA;AACA;AACA;AACA;AACA;AACA;;;AAEA,IAAM,KAAK,GAAc;AACvB,MAAI,EAAE,qBADiB;AAEvB,KAAG,EAAE;AAFkB,CAAzB;;AAIA,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,OAAD,EAAe,IAAf,EAA4B;AAC5C,SAAO,IAAI,OAAJ,CAAiB,UAAC,OAAD,EAAU,MAAV,EAAgB;AACtC,WAAO,CAAC,SAAR,GAAoB,UAAC,KAAD,EAAe;AACjC,UAAM,SAAS,GAAQ;AACrB,aAAK,EAAE,KAAK,CAAC,MAAN,CAAa,MADC;AAErB,eAAO,EAAE,OAAO,CAAC,MAFI;AAGrB,WAAG,EAAE;AAHgB,OAAvB;AAKA,aAAO,CAAC,SAAS,CAAC,IAAI,IAAI,KAAT,CAAV,CAAP;AACD,KAPD;;AAQA,WAAO,CAAC,OAAR,GAAkB,UAAC,KAAD,EAAe;AAAK,mBAAM,CAAC,KAAK,CAAC,MAAN,CAAa,KAAb,IAAP,MAAM,CAAN;AAAoC,KAA1E;AACD,GAVM,CAAP;AAWD,CAZD,C,CAaA;;;AACA;AAAA;AAAA;AAIE,qBAAY,KAAZ,EAA0B;AAH1B,gBAAO,iBAAP;AACA,mBAAU,CAAV;AAGU,aAA0C,KAAK,CAA9B,IAAjB;AAAA,YAAI,mBAAG,UAAH,GAAa,EAAjB;AAAA,QAAmB,KAAuB,KAAK,CAAjB,OAA9B;AAAA,QAAmB,OAAO,mBAAG,CAAH,GAAI,EAA9B;AAAA,QAAgC,KAAK,GAAK,KAAK,CAAV,KAArC;AACR,SAAK,IAAL,GAAY,IAAZ;AACA,SAAK,OAAL,GAAe,OAAf;AAEA,SAAK,MAAL,CAAY,KAAZ;AACD;AAED;;;AAGG;;;AACH,yCAAO,KAAP,EAAuB;AACrB,QAAM,SAAS,GAAG,MAAM,CAAC,SAAP,IAAoB,MAAM,CAAC,eAA3B,IAA8C,MAAM,CAAC,YAArD,IAAqE,MAAM,CAAC,WAA9F;AACA,QAAM,OAAO,GAAG,SAAS,CAAC,IAAV,CAAe,KAAK,IAApB,EAA0B,KAAK,OAA/B,CAAhB;;AAEA,WAAO,CAAC,eAAR,GAA0B,UAAC,KAAD,EAA6B;AACrD,UAAM,EAAE,GAAI,KAAK,CAAC,MAAN,CAAkC,MAA9C;;AACA,UAAI,EAAE,CAAC,gBAAH,CAAoB,QAApB,CAA6B,KAAK,CAAC,IAAnC,CAAJ,EAA8C,CAC5C;AACD,OAJoD,CAMrD;;;AACA,QAAE,CAAC,iBAAH,CAAqB,KAAK,CAAC,IAA3B,EAAiC;AAC/B,eAAO,EAAE,KAAK,CAAC;AADgB,OAAjC;AAGD,KAVD;;AAWA,WAAO,CAAC,OAAR,GAAkB;AAAM,oBAAO,CAAC,MAAR,CAAe,IAAI,KAAJ,CAAf,UAAe,CAAf;AAAqC,KAA7D;;AACA,WAAO,CAAC,SAAR,GAAoB;AAAM,oBAAO,CAAC,OAAR;AAA2B,KAArD;AACD,GAjBD;;AAmBA;AACE,QAAM,SAAS,GAAG,MAAM,CAAC,SAAP,IAAoB,MAAM,CAAC,eAA3B,IAA8C,MAAM,CAAC,YAArD,IAAqE,MAAM,CAAC,WAA9F;AACA,QAAM,OAAO,GAAG,SAAS,CAAC,IAAV,CAAe,KAAK,IAApB,EAA0B,KAAK,OAA/B,CAAhB;AAEA,WAAO,SAAS,CAAC,OAAD,EAAU,OAAV,CAAhB;AACD,GALD;AAOA;;;;AAIG;;;AACG,mCAAN,UAAiB,SAAjB,EAAoC,IAApC,EAA6C;;;;;;;;AAG9B;AAAA;AAAA,cAAM,KAAK,MAAL,EAAN;;;AAAL,cAAE,GAAG,SAAL;AACA,4BAAc,EAAE,CAAC,WAAH,CAAe,SAAf,EAA0B,WAA1B,CAAd;AACA,uBAAW,GAAG,aAAW,CAAC,WAAZ,CAAwB,SAAxB,CAAd;AAEN,uBAAW,CAAC,GAAZ,CAAgB,IAAhB,E,CACA;;AAEA;AAAA;AAAA,cAAO,IAAI,OAAJ,CAAY,UAAC,OAAD,EAAU,MAAV,EAAgB;AACjC,2BAAW,CAAC,UAAZ,GAAyB;AACvB;AACA,uBAAO,CAAC,UAAD,CAAP;AACD,eAHD;;AAKA,2BAAW,CAAC,OAAZ,GAAsB,UAAU,KAAV,EAAe;AACnC,sBAAM,CAAC,KAAD,CAAN;AACD,eAFD;AAGD,aATM,CAAP;;;;AAWA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAvBK;AAyBN;;;AAGG;;;AACG,gCAAN,UAAc,IAAd,EAA8B,OAA9B,EAA+C;;;;;;;;AAGrC,qBAAS,GAAG,KAAK,CAAC,IAAlB;AACU;AAAA;AAAA,cAAM,KAAK,OAAL,CAAa,IAAI,CAAC,OAAlB,CAAN;;;AAAV,mBAAO,GAAG,SAAV;AACc;AAAA;AAAA,cAAM,KAAK,cAAL,CAAoB,SAApB,EAA+B,WAA/B,CAAN;;;AAAd,uBAAW,GAAG,SAAd;;AAEN,gBAAI,CAAC,OAAL,EAAc;AACZ;AACA,mBAAK,UAAL,CAAgB,SAAhB,EAA2B,IAA3B;AACD;;AAEG,mBAAO,yBAAa,OAAb,GAAyB,IAAzB,CAAP;AACJ,gBAAI,OAAJ,EAAa,OAAO,GAAG,IAAV,C,CAAgB;;AAEvB,yBAAa,GAAG,WAAW,CAAC,GAAZ,CAAgB,OAAhB,CAAhB,C,CACN;;AACA;AAAA;AAAA,cAAO,SAAS,CAAC,aAAD,CAAhB;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GArBK;AAuBN;;;;;AAKG;;;AACG,gCAAN,UAAc,UAAd,EAAgC;;;;;;;;AAGtB,qBAAS,GAAG,KAAK,CAAC,IAAlB;AACc;AAAA;AAAA,cAAM,KAAK,cAAL,CAAoB,SAApB,CAAN;;;AAAd,uBAAW,GAAG,SAAd;AACA,mBAAO,GAAG,WAAW,CAAC,GAAZ,CAAgB,UAAhB,CAAV,C,CACN;;AACA;AAAA;AAAA,cAAO,SAAS,CAAC,OAAD,EAAU,SAAV,CAAhB;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAXK;;AAYA,mCAAN,UAAiB,SAAjB,EAAkC;;;;;;;;AAGV;AAAA;AAAA,cAAM,KAAK,cAAL,CAAoB,SAApB,CAAN;;;AAAd,uBAAW,GAAG,SAAd;AACA,mBAAO,GAAG,WAAW,CAAC,MAAZ,EAAV;AACS;AAAA;AAAA,cAAM,SAAS,CAAC,OAAD,EAAU,SAAV,CAAf;;;AAAT,kBAAM,GAAG,SAAT,C,CACN;;AACA;AAAA;AAAA,cAAO,MAAM,GAAG,MAAH,GAAY,EAAzB;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAXK;AAYN;;;;AAIG;;;AACW,uCAAd,UAA6B,SAA7B,EAAgD,IAAhD,EAA0D;mCAAG,O,EAAO;;;;;;;AAErD;AAAA;AAAA,cAAM,KAAK,MAAL,EAAN;;;AAAL,cAAE,GAAG,SAAL;AACN;AAAA;AAAA,cAAO,EAAE,CAAC,WAAH,CAAe,SAAf,EAA0B,IAA1B,EAAgC,WAAhC,CAA4C,SAA5C,CAAP;;;;AAEA;AAAA;AAAA,cAAO,OAAO,CAAC,MAAR,CAAe,OAAf,CAAP;;;;;;;;;AAEH,GAPa;;AAQhB;AAAC,CA9ID,G,CA+IA;AACA;AACA;AACA;AACA;;;AACe,mEAAI,SAAJ,CAAc;AAAE,OAAK;AAAP,CAAd,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMA;AAEA,IAAM,iBAAiB,GAAG,MAA1B;AACA,IAAM,YAAY,GAAG,GAArB;AACA,IAAM,oBAAoB,GAAG,EAA7B;AACA,IAAM,WAAW,GAAG,kBAApB;;AAEA;AAAA;AAAA;AAyBE,gBAAY,OAAZ,EAAmB;AACT,gBAAQ,GAAqF,OAAO,CAA5F,QAAR;AAAA,QAAU,OAAO,GAA4E,OAAO,CAAnF,OAAjB;AAAA,QAAmB,MAAM,GAAoE,OAAO,CAA3E,MAAzB;AAAA,QAA2B,IAAI,GAA8D,OAAO,CAArE,IAA/B;AAAA,QAAiC,OAAO,GAAqD,OAAO,CAA5D,OAAxC;AAAA,QAA0C,KAAmD,OAAO,CAA9C,OAAtD;AAAA,QAA0C,OAAO,mBAAG,EAAH,GAAK,EAAtD;AAAA,QAAwD,MAAM,GAA+B,OAAO,CAAtC,MAA9D;AAAA,QAAgE,UAAU,GAAmB,OAAO,CAA1B,UAA1E;AAAA,QAA4E,YAAY,GAAK,OAAO,CAAZ,YAAxF;AACR,SAAK,QAAL,GAAgB,QAAhB,CAFiB,CAGjB;;AACA,SAAK,OAAL,GAAe,OAAf;AACA,SAAK,MAAL,GAAc,MAAd;AACA,SAAK,IAAL,GAAY,IAAZ;AACA,SAAK,OAAL,GAAe,OAAf;AACA,SAAK,OAAL,GAAe,OAAO,OAAP,KAAmB,QAAnB,GAA8B,OAA9B,GAAwC,IAAI,CAAC,SAAL,CAAe,OAAf,CAAvD;AACA,SAAK,MAAL,GAAc,MAAd;AACA,QAAM,OAAO,GAAG,6CAAM,GAAG,GAAT,EAAhB;AACA,SAAK,SAAL,GAAiB,OAAO,CAAC,IAAR,EAAjB;AACA,SAAK,IAAL,GAAY,OAAO,CAAC,MAAR,CAAe,YAAf,CAAZ;AACA,SAAK,UAAL,GAAkB,UAAlB;AACA,SAAK,YAAL,GAAoB,YAApB;AACD;;AAEK,6BAAN;;;AACE;AAAA;AAAA,UAAO,KAAK,iBAAL,EAAP;;;AACD,GAFK;;AAIA,qCAAN;;;;;;;;AACM,eAAG,GAAmE,EAAtE;;;;;;AAEW;AAAA;AAAA,cAAM,KAAK,UAAL,CAAgB,iBAAhB,CAAkC;AACnD,iBAAG,EAAE,2BAAoB,KAAK,YAAzB,EAAqC,oBAArC,CAD8C;AAEnD,oBAAM,EAAE,MAF2C;AAGnD,qBAAO,EAAE;AAAE,gCAAgB;AAAlB,eAH0C;AAInD,kBAAI,EAAE;AACJ,oBAAI,EAAE,KAAK,IADP;AAEJ,uBAAO,EAAE,KAAK,OAFV;AAGJ,uBAAO,EAAE,KAAK,OAHV;AAIJ,sBAAM,EAAE,KAAK,MAJT;AAKJ,sBAAM,EAAE,KAAK,MALT;AAMJ,yBAAS,EAAE,KAAK,SANZ;AAOJ,sBAAM,EAAE,iBAPJ;AAQJ,mBAAG,EAAE,YARD;AASJ,qBAAK,EAAE,oBATH;AAUJ,oBAAI,EAAE,KAAK,OAVP;AAWJ,uBAAO,EAAE;AACP,kCAAgB,WADT;AAEP,sBAAI,EAAE,KAAK;AAFJ;AAXL;AAJ6C,aAAlC,CAAN;;;AAAP,gBAAI,GAAG,SAAP;AAqBN,eAAG,GAAG,IAAI,CAAC,IAAX;;;;;;;;;;;;AAEM,yBAAa,GAAsB,GAAG,CAAzB,aAAb,EAAe,KAAK,GAAe,GAAG,CAAlB,KAApB,EAAsB,QAAQ,GAAK,GAAG,CAAR,QAA9B;AACF,0BAAc,GAAG,mBAAC,MAAc,CAAC,eAAhB,MAA+B,IAA/B,IAA+B,aAA/B,GAA+B,MAA/B,GAA+B,GAAE,QAAjC,MAAyC,IAAzC,IAAyC,aAAzC,GAAyC,MAAzC,GAAyC,GAAE,SAA3C,MAAoD,IAApD,IAAoD,aAApD,GAAoD,MAApD,GAAoD,GAAE,OAAtD,KAAiE,OAAlF;AACA,mBAAO;AACX,2BAAa,EAAE,aADJ;AAEX,8BAAgB,WAFL;AAGX,6BAAe,KAAK,MAHT;AAIX,gCAAkB,KAAK,SAAL,CAAe,QAAf,EAJP;AAKX,8BAAgB,KAAK,OALV;AAMX,oCAAsB,aAAM,cAAN,EAAoB,SAApB,EAAoB,MAApB,CAA8B,OAA9B;AANX,eAOP,KAAK,MAAL,IAAe;AACjB,6BAAe,KAAK;AADH,aAPR,GAUP,KAAK,IAAI;AACX,4BAAc;AADH,aAVF,GAYT;AACF,sBAAQ,EAAE;AADR,aAZS,CAAP;AAeN;AAAA;AAAA,cAAO,OAAP;;;;AACD,GA5CK;;AA6CR;AAAC,CA3FD;;;;;;;;;;;;;;ACPA;AAAA;;;;;;;;AAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH;AAAA;AAAA;AAOE,kBAAY,QAAZ,EAA8B;AAA9B;;AAAY;AAAA;AAAkB;;AAN9B,oBAAgB;AACd,UAAI,EAAE,eADQ;AAEd,YAAM,EAAE;AAFM,KAAhB;;AAaA,+BAAsB;AAAA;;AACpB;AAAA;AAAA,YAAO,KAAK,sBAAL,EAAP;;OADoB;AAErB,KAFD;;AANE,SAAK,QAAL,GAAgB,MAAM,CAAC,MAAP,CAAc,KAAK,QAAnB,EAA6B,QAA7B,CAAhB;AACA,SAAK,QAAL,CAAc,SAAd,GAA0B,EAA1B;AACA,SAAK,UAAL,GAAkB,QAAQ,CAAC,UAA3B;AACA,SAAK,YAAL,GAAoB,QAAQ,CAAC,YAA7B;AACD;;AAMK,4CAAN;;;;;;AACM,eAAG,GAA4E,EAA/E;;;;;;AAEM,gBAAI,GAAK,KAAK,QAAL,CAAL,IAAJ;AACF,mBAAO,GAAG,OAAO,IAAP,KAAgB,QAAhB,GAA2B,IAA3B,GAAkC,IAAI,CAAC,SAAL,CAAe,IAAf,CAA5C;AACO;AAAA;AAAA,cAAM,KAAK,UAAL,CAAgB,iBAAhB,CAAkC;AACnD,iBAAG,EAAE,2BAAoB,KAAK,YAAzB,EAAqC,oBAArC,CAD8C;AAEnD,oBAAM,EAAE,MAF2C;AAGnD,qBAAO,EAAE;AAAE,gCAAgB;AAAlB,eAH0C;AAInD,kBAAI,EAAE;AACJ,oBAAI,EAAE,KAAK,QAAL,CAAc,IADhB;AAEJ,sBAAM,EAAE,KAAK,QAAL,CAAc,MAFlB;AAGJ,uBAAO,EAAE,KAAK,QAAL,CAAc,OAHnB;AAIJ,sBAAM,EAAE,KAAK,QAAL,CAAc,MAJlB;AAKJ,sBAAM,EAAE,KAAK,QAAL,CAAc,MALlB;AAMJ,mBAAG,EAAE,KAAK,QAAL,CAAc,IANf;AAOJ,qBAAK,EAAE,EAPH;AAQJ,oBAAI,EAAE;AARF;AAJ6C,aAAlC,CAAN;;;AAAP,gBAAI,GAAG,SAAP;AAeN,eAAG,GAAG,IAAI,CAAC,IAAX;;;;;;;;;;;;AAEM,gBAAI,GAAkC,GAAG,CAArC,IAAJ,EAAM,WAAW,GAAqB,GAAG,CAAxB,WAAjB,EAAmB,IAAI,GAAe,GAAG,CAAlB,IAAvB,EAAyB,QAAQ,GAAK,GAAG,CAAR,QAAjC;AACR;AAAA;AAAA,cAAO;AAAE,yBAAW,EAAE,WAAf;AAA4B,kBAAI,EAAE,IAAlC;AAAwC,kBAAI,EAAE,IAA9C;AAAoD,sBAAQ,EAAE;AAA9D,aAAP;;;;AACD,GAxBK;;AAyBR;AAAC,CA3CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AAEA;;AACA,IAAM,QAAQ,GAAG,EAAjB;;AACA,SAAS,cAAT,CAAwB,KAAxB,EAA+B,MAA/B,EAAqC;AACnC,SAAO,MAAM,CAAC,GAAP,CAAW,UAAC,IAAD,EAAK;AAAK,wDAAC,CAAC,GAAF,CAAM,KAAN,EAAa,IAAb,EAAmB,6CAAC,CAAC,GAAF,CAAM,KAAN,EAAa,iBAAU,IAAV,CAAb,EAAnB,EAAmB,CAAnB;AAAsD,GAA3E,CAAP;AACD;;AAEK,SAAgB,eAAhB,CAAgC,OAAhC,EAAsE,OAAtE,EAAoF,KAApF,EAA4G;;;;;;;;AAC1G,gBAAM,gBAAQ,6CAAC,CAAC,IAAF,CAAO,OAAP,EAAgB,CAAC,cAAD,CAAhB,CAAR,CAAN;AACN,gBAAM,CAAC,KAAP,GAAe,MAAM,CAAC,KAAP,IAAgB,QAA/B,C,CAAyC;;AACzC,gBAAM,CAAC,MAAP,GAAgB,YAAM,CAAC,MAAP,MAAa,IAAb,IAAa,aAAb,GAAa,EAAb,GAAiB,CAAjC,C,CAAoC;;AAGxB;AAAA;AAAA,YAAM,OAAO,CAAC,MAAD,CAAb;;;AAAN,YAAE,GAAG,MAAC,SAAD,MAAuB,IAAvB,IAAuB,aAAvB,GAAuB,EAAvB,GAA2B,EAAhC;AACA,gBAAM,GAAG,KAAK,CAAC,OAAN,CAAc,KAAd,IAAuB,KAAvB,GAA+B,CAAC,KAAD,CAAxC;AAIA,oBAAU,GAAG,0BAAE,CAAC,UAAH,MAAa,IAAb,IAAa,aAAb,GAAa,EAAb,GAAiB,QAAE,CAAC,MAAH,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,UAA5B,MAAsC,IAAtC,IAAsC,aAAtC,GAAsC,EAAtC,GAA0C,EAAE,CAAC,QAA7C,MAAqD,IAArD,IAAqD,aAArD,GAAqD,EAArD,GAAyD,QAAE,CAAC,MAAH,MAAS,IAAT,IAAS,aAAT,GAAS,MAAT,GAAS,GAAE,QAApE,MAA4E,IAA5E,IAA4E,aAA5E,GAA4E,EAA5E,GAAgF,CAA7F;AACA,oBAAU,GAAG,cAAc,CAAC,EAAD,EAAK,MAAL,CAA3B;;AAEN,cAAI,UAAU,KAAK,CAAf,IAAoB,UAAU,CAAC,CAAD,CAAV,CAAc,MAAd,KAAyB,UAAjD,EAA6D;AAC3D;AACA;AAAA;AAAA,cAAO,UAAP;AACD;;AAGK,eAAK,GAAG,UAAU,GAAG,UAAU,CAAC,CAAD,CAAV,CAAc,MAAnC;AACA,oBAAU,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,GAAG,QAAlB,CAAb;AACA,gBAAM,GAAG,IAAI,KAAJ,CAAU,UAAV,EAAsB,IAAtB,CAA2B,CAA3B,EAA8B,GAA9B,CAAkC,UAAC,CAAD,EAAI,KAAJ,EAAS;AACxD,kBAAM,CAAC,MAAP,GAAgB,OAAO,CAAC,YAAR,GAAuB,IAAI,KAA3B,GAAmC,CAAC,IAAI,KAAL,IAAc,MAAM,CAAC,KAAxE;AACA,mBAAO,OAAO,CAAC,MAAD,CAAd;AACD,WAHc,CAAT;AAMa;AAAA;AAAA,YAAM,OAAO,CAAC,GAAR,CAAY,MAAZ,CAAN;;;AAAb,oBAAU,GAAG,SAAb;AAEN;AAAA;AAAA,YAAO,UAAU,CAAC,MAAX,CAAkB,UAAC,GAAD,EAAM,GAAN,EAAS;AAChC,gBAAM,KAAK,GAAG,cAAc,CAAC,GAAD,EAAM,MAAN,CAA5B,CADgC,CAEhC;;AACA,eAAG,CAAC,OAAJ,CAAY,UAAC,IAAD,EAAO,KAAP,EAAY;AAAK,yBAAI,CAAC,IAAL,CAAS,KAAT,OAAa,KAAK,CAAlB,KAAkB,CAAlB;AAA0B,aAAvD;AACA,mBAAO,GAAP;AACD,WALM,EAKJ,UALI,CAAP;;;;AAMD;AAED;;;;;AAKG;;AACG,SAAU,4BAAV,CAAuC,OAAvC,EAAqD,QAArD,EAAsE;AAC1E,MAAM,MAAM,GAAQ,EAApB;;AACA,MAAI,CAAC,6CAAC,CAAC,OAAF,CAAU,OAAV,CAAL,EAAyB;AACvB,UAAM,CAAC,KAAP,GAAe,6CAAC,CAAC,GAAF,CAAM,OAAN,EAAe,OAAf,EAAwB,EAAxB,KAA+B,EAA9C;AACA,UAAM,CAAC,MAAP,GAAgB,6CAAC,CAAC,GAAF,CAAM,OAAN,EAAe,QAAf,EAAyB,CAAzB,KAA+B,CAA/C;AACA,WAAO,GAAG,6CAAC,CAAC,IAAF,CAAO,OAAP,EAAgB,CAAC,QAAD,EAAW,OAAX,CAAhB,CAAV;AACA,QAAM,SAAO,GAAU,EAAvB;;AACA,iDAAC,CAAC,OAAF,CAAU,OAAV,EAAmB,UAAC,IAAD,EAAY,GAAZ,EAAe;AAChC,UAAI,6CAAC,CAAC,OAAF,CAAU,IAAV,CAAJ,EAAqB;AACnB,YAAI,GAAG,6CAAC,CAAC,OAAF,CAAU,IAAV,CAAP;;AACA,YAAI,IAAI,CAAC,MAAL,GAAc,CAAlB,EAAqB;AACnB,cAAI,QAAJ,EAAc;AACZ,qBAAO,CAAC,IAAR,CAAa;AAAE,kBAAI,EAAE,GAAR;AAAa,oBAAM,EAAE,6CAAC,CAAC,IAAF,CAAO,IAAP,EAAa,KAAb,CAAmB,CAAnB,EAAsB,CAAtB;AAArB,aAAb;AACD,WAFD,MAEO;AACL,kBAAM,CAAC,GAAD,CAAN,GAAc,6CAAC,CAAC,IAAF,CAAO,IAAP,CAAd;AACD;AACF;AACF,OATD,MASO,IAAI,6CAAC,CAAC,QAAF,CAAW,IAAX,CAAJ,EAAsB;AAC3B,YAAI,6CAAC,CAAC,QAAF,CAAW,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,EAAqB,SAArB,CAAX,KAA+C,CAAC,6CAAC,CAAC,OAAF,CAAU,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,EAAqB,SAArB,CAAV,CAApD,EAAgG;AAC9F,cAAI,QAAJ,EAAc;AACZ,qBAAO,CAAC,IAAR,CAAa;AAAE,kBAAI,EAAE,GAAR;AAAa,oBAAM,EAAE,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,EAAqB,EAArB,EAAyB,KAAzB,CAA+B,CAA/B,EAAkC,CAAlC;AAArB,aAAb;AACD,WAFD,MAEO;AACL,kBAAM,CAAC,GAAD,CAAN,GAAc,6CAAC,CAAC,GAAF,CAAM,IAAN,EAAY,OAAZ,CAAd;AACD;AACF;AACF,OARM,MAQA,IAAI,IAAI,KAAK,IAAT,IAAiB,IAAI,KAAK,SAA1B,IAAuC,IAAI,KAAK,EAApD,EAAwD;AAC7D,YAAI,QAAJ,EAAc;AACZ,mBAAO,CAAC,IAAR,CAAa;AAAE,gBAAI,EAAE,GAAR;AAAa,kBAAM,EAAE;AAArB,WAAb;AACD,SAFD,MAEO;AACL,gBAAM,CAAC,GAAD,CAAN,GAAc,IAAd;AACD;AACF;AACF,KAzBD;;AA0BA,QAAI,QAAQ,IAAI,SAAO,CAAC,MAAR,GAAiB,CAAjC,EAAoC;AAClC,YAAM,CAAC,OAAP,GAAiB,SAAjB;AACA,aAAO,MAAP;AACD;AACF;;AACD,SAAO,MAAP;AACD;AAEK,SAAU,uBAAV,CAAkC,WAAlC,EAAqD;AACzD,SAAO,6CAAC,CAAC,GAAF,CACL,6CAAC,CAAC,IAAF,CAAO,oDAAP,EAAiB,UAAC,OAAD,EAAQ;AAAK,kBAAO,CAAC,OAAR;AAA+B,GAA7D,CADK,EAEL,WAFK,CAAP;AAID;AAEK,SAAU,cAAV,CACJ,QADI,EAC+F;AAEnG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAT,CAAgB,UAAC,GAAD,EAAM,GAAN,EAAS;AAC9B,iBAAS,GAA+B,GAAG,CAAlC,SAAT;AAAA,QAAW,KAAK,GAAwB,GAAG,CAA3B,KAAhB;AAAA,QAAkB,KAAsB,GAAG,CAAR,SAAnC;AAAA,QAAkB,SAAS,mBAAG,KAAH,GAAQ,EAAnC;AAER,QAAM,YAAY,GAAG,GAAG,CAAC,IAAJ,CAAS,UAAC,IAAD,EAAK;AAAK,iBAAI,CAAC,KAAL;AAAwB,KAA3C,CAArB;;AACA,QAAI,CAAC,YAAL,EAAmB;AACjB,SAAG,CAAC,IAAJ,CAAS;AAAE,aAAK,EAAE,SAAT;AAAoB,aAAK,EAAE,SAA3B;AAAsC,aAAK,EAAE,CAAC;AAAE,eAAK,OAAP;AAAS,eAAK,EAAE;AAAhB,SAAD;AAA7C,OAAT;AACA,aAAO,GAAP;AACD;;AAED,gBAAY,CAAC,KAAb,CAAmB,IAAnB,CAAwB;AAAE,WAAK,OAAP;AAAS,WAAK,EAAE;AAAhB,KAAxB;AACA,WAAO,GAAP;AACD,GAXc,EAWZ,EAXY,CAAf,CAFmG,CAenG;;AACA,MAAM,EAAE,GAAG,MAAM,CAAC,GAAP,CAAW,UAAC,IAAD,EAAK;AACzB,eAAI,CAAC,KAAL,CAAW,MAAX,KAAsB,CAAtB,GAA0B;AAAE,WAAK,EAAE,IAAI,CAAC,KAAL,CAAW,CAAX,EAAc,KAAvB;AAA8B,WAAK,EAAE,IAAI,CAAC,KAAL,CAAW,CAAX,EAAc;AAAnD,KAA1B,GAAuF,IAAvF;AAA2F,GADlF,CAAX;AAGA,SAAO,EAAP;AACD;AAEM,IAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,eAAD,EAA0B,eAA1B,EAAmD,GAAnD,EAA8D;AACzF,MAAI;AACF,QAAM,SAAS,GAAG,IAAI,CAAC,KAAL,CAAW,eAAX,CAAlB;AACA,QAAM,SAAS,GAAG,IAAI,CAAC,KAAL,CAAW,eAAX,CAAlB;AACA,WAAO,SAAS,CAAC,GAAD,CAAT,KAAmB,SAAS,CAAC,GAAD,CAAnC;AACD,GAJD,CAIE,OAAO,CAAP,EAAU;AACV,WAAO,eAAe,KAAK,eAA3B;AACD;AACF,CARM;AAUA,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAAC,SAAD,EAAe;AAC7C,MAAM,KAAK,GAAG,qBAAqB,IAArB,CAA0B,SAA1B,CAAd;;AACA,MAAI,CAAC,KAAL,EAAY;AACV,WAAO,CAAP;AACD;;AACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAAvB;AACA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAD,CAAlB;;AACA,UAAQ,IAAR;AACE,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,KAAT,GAAiB,IAAxB;;AACF,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,IAAT,GAAgB,IAAvB;;AACF,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,EAAT,GAAc,IAArB;;AACF,SAAK,GAAL;AACE,aAAO,MAAM,GAAG,IAAhB;AARJ;;AAUA,SAAO,CAAP;AACD,CAlBM,C;;;;;;;;;;;;;;;;;;;;;;ACtIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kE;;;;;;;;;;;AC3WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qH;;;;;;;;;;;;ACjPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAeA;AAAA;AAAA;AAAA;;AAKE;AACA,+BAAY,gBAAZ,EAA8B,UAA9B,EAA0C,WAA1C,EAAqD;AAArD;;AACE,SAAK,gBAAL,GAAwB,gBAAxB;AACA,SAAK,UAAL,GAAkB,UAAlB;AACA,SAAK,WAAL,GAAmB,WAAnB;;AACA,iDAAC,CAAC,OAAF,CAAU,kDAAV,EAAuB,UAAC,MAAD,EAAc,GAAd,EAAiB;AACtC,WAAI,CAAC,GAAD,CAAJ,GAAY,IAAI,MAAJ,CAAW,KAAI,CAA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","file":"components/config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./components/config.ts\");\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","import { PluginMeta } from '@grafana/data';\nimport { config, getBackendSrv } from '@grafana/runtime';\nimport { TcDataSourceId } from '../datasource/common/constants';\n\nconst backendSrv = getBackendSrv();\n\nconst tcFolder = {\n uid: 'tencent-cloud-monitor',\n title: '腾讯云监控',\n folderId: null,\n};\n\nconst tcFolder_EN = {\n uid: 'tencent-cloud-monitor-english',\n title: 'Tencent Cloud Monitor',\n folderId: null,\n};\n\n/**\n * 生成腾讯云专用目录\n * @returns\n */\nasync function getFolderId() {\n if (tcFolder.folderId && tcFolder_EN.folderId) {\n return [tcFolder.folderId, tcFolder_EN.folderId];\n }\n const folders: any[] = await backendSrv.get('/api/folders');\n let folderId = folders.find((item) => item.uid === tcFolder.uid)?.id;\n let folderEnId = folders.find((item) => item.uid === tcFolder_EN.uid)?.id;\n if (!folderId) {\n const folder = await backendSrv.post('/api/folders', tcFolder);\n folderId = folder?.id || 0;\n }\n if (!folderEnId) {\n const folderEn = await backendSrv.post('/api/folders', tcFolder_EN);\n folderEnId = folderEn?.id || 0;\n }\n tcFolder.folderId = folderId;\n tcFolder_EN.folderId = folderEnId;\n return [folderId, folderEnId];\n}\n\n/**\n * 请求拦截器,拦截导入按钮的接口请求\n */\nfunction backendInterceptor() {\n const oldPost = backendSrv.post.bind(getBackendSrv());\n const pluginId = window.location.pathname.split('/').filter((item) => item)[1];\n backendSrv.post = async (url, data) => {\n // 拦截判断:拦截指定接口\n if (url === '/api/dashboards/import' && data.pluginId === pluginId) {\n const [folderId, folderEnId] = await getFolderId();\n data.folderId = data.path.endsWith('_en_dashboard.json') ? folderEnId : folderId;\n }\n return oldPost(url, data);\n };\n}\n\nbackendInterceptor();\n\nexport class MonitorAppConfigCtrl {\n static templateUrl = 'components/config.html';\n appEditCtrl: any;\n appModel?: PluginMeta;\n $q: any;\n configured: boolean;\n\n /** @ngInject */\n constructor($scope: any, $injector: any, $q: any) {\n this.appEditCtrl.setPostUpdateHook(this.postUpdate.bind(this));\n this.$q = $q;\n // Make sure it has a JSON Data spot\n if (!this.appModel) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n this.appModel = {} as PluginMeta;\n }\n\n // Required until we get the types sorted on appModel :(\n const appModel = this.appModel as any;\n if (!appModel.jsonData) {\n appModel.jsonData = {};\n }\n this.configured = false;\n if (this.appModel?.enabled) {\n const datasources = Object.values(config.datasources).filter((ds) => {\n return ds.type === TcDataSourceId;\n });\n if (datasources.length > 0) {\n this.configured = true;\n }\n }\n }\n\n async moveToFolder(dashbaordUid: string, folderId: number) {\n // 获取dashboard\n const { dashboard } = await backendSrv.get(`/api/dashboards/uid/${dashbaordUid}`);\n // 移动目录\n await backendSrv.post('/api/dashboards/db/', {\n dashboard,\n folderId,\n message: '',\n overwrite: true,\n });\n }\n\n async reviseDashboard() {\n // 1. 生成腾讯云目录\n const [folderId, folderEnId] = await getFolderId();\n // 2. 获取所有腾讯云插件下的dashboard\n const rs = await backendSrv.get(`/api/plugins/${this.appModel?.id}/dashboards`);\n\n // 3. 调用api更新dashboard\n const pmlist = rs.map((item) => {\n const { importedUrl, path } = item;\n const uid = importedUrl.split('/')[2];\n if (uid) {\n return this.moveToFolder(uid, path.endsWith('_en_dashboard.json') ? folderEnId : folderId);\n } else {\n return Promise.resolve();\n }\n });\n\n return Promise.all(pmlist);\n }\n\n async postUpdate() {\n if (!this.appModel?.enabled) {\n return;\n }\n // enable或者update时,对预设dashboard进行修改\n await this.reviseDashboard();\n return this.$q.resolve(true);\n }\n}\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { SERVICES } from '../tc_monitor';\nimport Sign from './sign';\nimport SignV2 from './signV2';\nimport { toDataQueryResponse } from '@grafana/runtime';\nimport { getLanguage } from '../../locale';\n\nimport packageInfo from '../plugin.json';\nexport const TcDataSourceId = packageInfo.id;\n\n// the services of tencentcloud monitor api\nconst FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi'];\nconst SERVICES_API_INFO = {\n api: {\n service: 'api',\n version: '2020-11-06',\n path: '/api',\n host: 'api.tencentcloudapi.com',\n },\n // monitor api info\n monitor: {\n service: 'monitor',\n version: '2018-07-24',\n path: '/monitor',\n host: 'monitor.tencentcloudapi.com',\n },\n // cls api info\n cls: {\n service: 'cls',\n version: '2020-10-16',\n path: '/cls',\n host: 'cls.tencentcloudapi.com',\n },\n // cvm api info\n cvm: {\n service: 'cvm',\n version: '2017-03-12',\n path: '/cvm',\n host: 'cvm.tencentcloudapi.com',\n },\n // cdb api info\n cdb: {\n service: 'cdb',\n version: '2017-03-20',\n path: '/cdb',\n host: 'cdb.tencentcloudapi.com',\n },\n // pcx api info\n pcx: {\n service: 'pcx',\n version: '',\n path: '/pcx',\n host: 'vpc.api.qcloud.com',\n },\n // vpc api info\n vpc: {\n service: 'vpc',\n version: '2017-03-12',\n path: '/vpc',\n host: 'vpc.tencentcloudapi.com',\n },\n // mongodb api info\n mongodb: {\n service: 'mongodb',\n version: '2019-07-25',\n path: '/mongodb',\n host: 'mongodb.tencentcloudapi.com',\n },\n // 负载均衡 clb\n clb: {\n service: 'clb',\n version: '2018-03-17',\n path: '/clb',\n host: 'clb.tencentcloudapi.com',\n },\n // postgresql api info\n postgres: {\n service: 'postgres',\n version: '2017-03-12',\n path: '/postgres',\n host: 'postgres.tencentcloudapi.com',\n },\n // cdn info\n cdn: {\n service: 'cdn',\n version: '2018-06-06',\n path: '/cdn',\n host: 'cdn.tencentcloudapi.com',\n },\n // redis info\n redis: {\n service: 'redis',\n version: '2018-04-12',\n path: '/redis',\n host: 'redis.tencentcloudapi.com',\n },\n scf: {\n service: 'scf',\n version: '2018-04-16',\n path: '/scf',\n host: 'scf.tencentcloudapi.com',\n },\n cfs: {\n service: 'cfs',\n version: '2019-07-19',\n path: '/cfs',\n host: 'cfs.tencentcloudapi.com',\n },\n ckafka: {\n service: 'ckafka',\n version: '2019-08-19',\n path: '/ckafka',\n host: 'ckafka.tencentcloudapi.com',\n },\n // 专线接入实例列表\n dc: {\n service: 'dc',\n version: '2018-04-10',\n path: '/dc',\n host: 'dc.tencentcloudapi.com',\n },\n // cynosdb实例列表\n cynosdb: {\n service: 'cynosdb',\n version: '2019-01-07',\n path: '/cynosdb',\n host: 'cynosdb.tencentcloudapi.com',\n },\n // sqlserver实例列表\n sqlserver: {\n service: 'sqlserver',\n version: '2018-03-28',\n path: '/sqlserver',\n host: 'sqlserver.tencentcloudapi.com',\n },\n // bm实例列表\n bm: {\n service: 'bm',\n version: '2018-04-23',\n path: '/bm',\n host: 'bm.tencentcloudapi.com',\n },\n bmeip: {\n service: 'bmeip',\n version: '2018-06-25',\n path: '/bmeip',\n host: 'bmeip.tencentcloudapi.com',\n },\n bmvpc: {\n service: 'bmvpc',\n version: '2018-06-25',\n path: '/bmvpc',\n host: 'bmvpc.tencentcloudapi.com',\n },\n bmlb: {\n service: 'bmlb',\n version: '2018-06-25',\n path: '/bmlb',\n host: 'bmlb.tencentcloudapi.com',\n },\n // ES集群实例\n es: {\n service: 'es',\n version: '2018-04-16',\n path: '/es',\n host: 'es.tencentcloudapi.com',\n },\n // MapReduce\n emr: {\n service: 'emr',\n version: '2019-01-03',\n path: '/emr',\n host: 'emr.tencentcloudapi.com',\n },\n // CMQ消息队列\n cmq: {\n service: 'cmq',\n version: '2019-03-04',\n path: '/cmq',\n host: 'cmq.tencentcloudapi.com',\n },\n cbs: {\n service: 'cbs',\n version: '2017-03-12',\n path: '/cbs',\n host: 'cbs.tencentcloudapi.com',\n },\n // tcaplus实例\n tcaplusdb: {\n service: 'tcaplusdb',\n version: '2019-08-23',\n path: '/tcaplusdb',\n host: 'tcaplusdb.tencentcloudapi.com',\n },\n // tcaplus实例\n dcdb: {\n service: 'dcdb',\n version: '2018-04-11',\n path: '/dcdb',\n host: 'dcdb.tencentcloudapi.com',\n },\n // apigateway实例\n apigateway: {\n service: 'apigateway',\n version: '2018-08-08',\n path: '/apigateway',\n host: 'apigateway.tencentcloudapi.com',\n },\n tdmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rabbitmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rocketmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n gaap: {\n service: 'gaap',\n version: '2018-05-29',\n path: '/gaap',\n host: 'gaap.tencentcloudapi.com',\n },\n ecm: {\n service: 'ecm',\n version: '2019-07-19',\n path: '/ecm',\n host: 'ecm.tencentcloudapi.com',\n },\n gse: {\n service: 'gse',\n version: '2019-11-12',\n path: '/gse',\n host: 'gse.tencentcloudapi.com',\n },\n lighthouse: {\n service: 'lighthouse',\n version: '2020-03-24',\n path: '/lighthouse',\n host: 'lighthouse.tencentcloudapi.com',\n },\n tsf: {\n service: 'tsf',\n version: '2018-03-26',\n path: '/tsf',\n host: 'tsf.tencentcloudapi.com',\n },\n rum: {\n service: 'rum',\n version: '2021-06-22',\n path: '/rum',\n host: 'rum.tencentcloudapi.com',\n },\n tke: {\n service: 'tke',\n version: '2018-05-25',\n path: '/tke',\n host: 'tke.tencentcloudapi.com',\n },\n ecdn: {\n service: 'ecdn',\n version: '2019-10-12',\n path: '/ecdn',\n host: 'ecdn.tencentcloudapi.com',\n },\n waf: {\n service: 'waf',\n version: '2018-01-25',\n path: '/waf',\n host: 'waf.tencentcloudapi.com',\n },\n region: {\n service: 'region',\n version: '2022-06-27',\n path: '/region',\n host: 'region.tencentcloudapi.com',\n },\n apm: {\n service: 'apm',\n version: '2021-06-22',\n path: '/apm',\n host: 'apm.tencentcloudapi.com',\n },\n // 不单独定义lb,因为lb同样用的是vpc的配置,同上\n // lb: {\n // service: 'lb',\n // version: '2017-03-12',\n // path: '/lb',\n // host: 'vpc.tencentcloudapi.com'\n // }\n // 负载均衡四层协议 lbPrivate\n // lbPrivate: {\n // service: 'lbPrivate',\n // version: '2018-03-17',\n // path: '/clb',\n // host: 'clb.tencentcloudapi.com',\n // },\n};\n\nconst FINACE_HOST = {\n scf: {\n 'ap-shanghai-fsi': {\n path: '/fsi/scf/shanghai',\n host: 'scf.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/scf/shenzhen',\n host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cfs: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cfs/shanghai',\n host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cfs/shenzhen',\n host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n ckafka: {\n 'ap-shanghai-fsi': {\n path: '/fsi/ckafka/shanghai',\n host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/ckafka/shenzhen',\n host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n clb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/clb/shanghai',\n host: 'clb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/clb/shenzhen',\n host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n mongodb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/mongodb/shanghai',\n host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/mongodb/shenzhen',\n host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n vpc: {\n 'ap-shanghai-fsi': {\n path: '/fsi/vpc/shanghai',\n host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/vpc/shenzhen',\n host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cvm: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cvm/shanghai',\n host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cvm/shenzhen',\n host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cdb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cdb/shanghai',\n host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cdb/shenzhen',\n host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n monitor: {\n 'ap-shanghai-fsi': {\n path: '/fsi/monitor/shanghai',\n host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/monitor/shenzhen',\n host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n postgres: {\n 'ap-shanghai-fsi': {\n path: '/fsi/postgres/shanghai',\n host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/postgres/shenzhen',\n host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n emr: {\n 'ap-shanghai-fsi': {\n path: '/fsi/emr/shanghai',\n host: 'emr.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/emr/shenzhen',\n host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cmq: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cmq/shanghai',\n host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cmq/shenzhen',\n host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cls: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cls/shanghai',\n host: 'cls.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cls/shenzhen',\n host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n};\n\n// 获取对应业务的 API 接口信息\nexport function GetServiceAPIInfo(region, service) {\n return { ...(SERVICES_API_INFO[service] || {}), ...getHostAndPath(region, service) };\n}\n\n// get host and path for finance regions\nfunction getHostAndPath(region, service) {\n if (_.indexOf(FINACE_REGIONS, region) === -1) {\n return {};\n }\n return (\n _.find(\n _.find(FINACE_HOST, (__, key) => key === service),\n (__, key) => key === region\n ) || {}\n );\n}\n\n// 变量替换指定实例按照那个字段展示\nexport const VARIABLE_ALIAS = 'instancealias';\n\nexport function GetServiceFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace),\n 'service'\n );\n}\n// 处理存量target中保存的qce/cvm\nexport function GetLabelFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace || service.label === namespace),\n 'label'\n );\n}\n// parse template variable query params\nexport function ParseMetricQuery(query = '') {\n if (!query) {\n return {};\n }\n const result = {};\n const queries = _.split(query, '&');\n _.forEach(queries, (item) => {\n const str = _.split(item, '=');\n if (_.trim(_.get(str, '0', ''))) {\n let val = _.trim(_.get(str, '1', ''));\n try {\n val = JSON.parse(val);\n } catch (e) {\n // console.log({ val });\n }\n result[_.toLower(_.trim(_.get(str, '0', '')))] = val;\n }\n });\n return result;\n}\n\n// parse template variable regex params\nexport function ParseMetricRegex(regex = '') {\n if (!regex) {\n return [];\n }\n regex = regex.replace(/:/g, ':');\n regex = regex.replace(/,/g, ',');\n const regexParams = ParseMetricQuery(regex);\n const result: any[] = [];\n _.forEach(regexParams, (value, key) => {\n if (key === 'tag:tag-key') {\n const valuesArr = _.split(value, ',');\n _.forEach(valuesArr, (item) => {\n const temp = _.split(item, ':');\n if (temp.length === 2) {\n result.push({ Name: `tag:${temp[0]}`, Values: temp.slice(1) });\n }\n });\n } else {\n result.push({ Name: key, Values: _.split(value, ',') });\n }\n });\n return result;\n}\n\n// get the actual value of template variable\nfunction parseVariableFormat(varname: string) {\n varname = String(varname || '');\n // $varname\n let varFlag = false;\n const regResult1 = varname.match(/^\\${?(\\w+)}?/);\n if (regResult1) {\n varFlag = true;\n varname = `\\$\\{${regResult1[1]}\\:json\\}`;\n }\n // [[varname]]\n const regResult2 = varname.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/);\n if (regResult2) {\n varFlag = true;\n varname = `\\$\\{${regResult2[1]}\\:json\\}`;\n }\n return { varname, varFlag };\n}\n\nexport function ReplaceVariable(templateSrv, scopedVars, field, multiple = false) {\n const { varname, varFlag } = parseVariableFormat(field);\n let replaceVar = templateSrv.replace(varname, scopedVars);\n if (varFlag) {\n try {\n replaceVar = JSON.parse(replaceVar);\n } catch (error) {}\n }\n if (!multiple && _.isArray(replaceVar)) {\n replaceVar = _.get(replaceVar, '0', '');\n }\n return replaceVar;\n}\n\n// get dimensions for instance query param\nexport function GetDimensions(obj) {\n if (_.isEmpty(obj)) {\n return [];\n }\n const dimensions: any[] = [];\n _.forEach(obj, (item) => {\n if (item.Value !== null && item.Value !== undefined && item.Value !== '') {\n dimensions.push({ Name: item.Name, Value: typeof item.Value === 'string' ? item.Value : `${item.Value}` });\n }\n });\n return dimensions;\n}\n\n// parse query data result for panel\nexport function ParseQueryResult(response, instances: any[] = [], timeshift = 0) {\n const instanceList = _.cloneDeep(instances);\n\n const dataPoints = _.get(response, 'DataPoints', []);\n return _.map(dataPoints, (dataPoint) => {\n let instanceAliasValue = _.get(dataPoint, 'Dimensions[0].Value');\n for (let i = 0; i < instanceList.length; i++) {\n if (isInstanceMatch(instanceList[i], _.get(dataPoint, 'Dimensions', []))) {\n instanceAliasValue = instanceList[i]._InstanceAliasValue;\n instanceList.splice(i, 1);\n break;\n }\n }\n return {\n target: `${response.MetricName} - ${instanceAliasValue}`,\n datapoints: parseDataPoint(dataPoint, timeshift),\n };\n });\n}\n\n// parse tencent cloud monitor response data to grafana panel data\nfunction parseDataPoint(dataPoint, timeshift = 0) {\n const timestamps = _.get(dataPoint, 'Timestamps', []);\n const values = _.get(dataPoint, 'Values', []);\n const result = timestamps.map((timestamp, index) => {\n return [values[index], timestamp * 1000 + timeshift];\n });\n\n return result;\n}\n\n// check whether instance is match or not\nfunction isInstanceMatch(instance, dimensions) {\n let match = true;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < dimensions.length; i++) {\n if (_.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) {\n match = false;\n break;\n }\n }\n return match;\n}\n\n/**\n * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]]\n *\n * @param field 变量字段名\n */\nexport function isVariable(value) {\n if (value && (value.match(/^\\${?(\\w+)}?/) || value.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/))) {\n return true;\n }\n return false;\n}\n\n/**\n * 腾讯云 API 3.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParams(options, service, signObj: any = {}, secretId, datasourceId, backendSrv) {\n const signParams = {\n secretId,\n payload: options.data || '',\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}),\n backendSrv,\n datasourceId,\n region: 'ap-guangzhou',\n };\n const sign = new Sign(signParams);\n const { intranet, ...headerSigned } = await sign.getHeader();\n // 传入x-tc-language实现国际化\n // zh-CN en-US ko-KR ja-JP\n options.headers = Object.assign(options.headers || {}, { ...headerSigned }, { 'x-tc-language': getLanguage() });\n options.method = 'POST';\n if (intranet) {\n options.url += '-internal';\n }\n return options;\n}\n\n/**\n * 腾讯云 API 2.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParamsV2(\n options: any = {},\n service,\n signObj: any = {},\n secretId,\n datasourceId,\n backendSrv\n) {\n const data = options.data || {};\n const signParams = {\n secretId,\n data,\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}),\n backendSrv,\n datasourceId,\n };\n options.method = 'POST';\n const sign = new SignV2(signParams);\n options.headers = Object.assign(options.headers || {}, { 'Content-Type': 'application/x-www-form-urlencoded' });\n const { queryString, path, host, intranet } = await sign.generateQueryString();\n options.data = qs.stringify({\n ...options.data,\n ...queryString,\n ...(host && { host: host }),\n });\n if (intranet) {\n // TODO: qcloud.com intranet host\n console.log('got intranet for sign v2');\n }\n options.url += path;\n return options;\n}\n\nexport function SliceLength(total = 0, len = 1) {\n const result: any[] = [];\n const num = Math.ceil(total / len);\n for (let i = 1; i < num; i++) {\n result.push({ Offset: len * i });\n }\n return result;\n}\n\nexport const FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order'];\n\nexport function parseDataFromBackendPlugin(res) {\n const { data } = toDataQueryResponse(res);\n return {\n authorization: _.get(data, '[0].meta.custom', ''),\n };\n}\n\n/** 当前环境是否为非生产环境 */\nexport const IS_DEVELOPMENT_ENVIRONMENT = !(process.env.NODE_ENV === 'production');\n\n/**\n * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12\n */\nexport enum CoreApp {\n CloudAlerting = 'cloud-alerting',\n UnifiedAlerting = 'unified-alerting',\n Dashboard = 'dashboard',\n Explore = 'explore',\n Unknown = 'unknown',\n PanelEditor = 'panel-editor',\n PanelViewer = 'panel-viewer',\n}\n","import indexedDB from './indexedDB';\nclass InstanceStorage {\n // prefix = 'Datasource';\n // storageKey = 'grafanaInstanceCache';\n insKey = 'Instances';\n cacheWay = '';\n constructor() {}\n setInstance(service: string, value: Record) {\n return this.setStorage(service, this.insKey, value, true);\n }\n async getInstance(service: string) {\n return this.getStorage(service, this.insKey);\n }\n setExtraStorage(service: string, Ekey: string, EValue: Record) {\n return this.setStorage(service, Ekey, EValue, false);\n }\n async getExtraStorage(service: string, Ekey: string) {\n return this.getStorage(service, Ekey);\n }\n private setStorage(serviceKey: string, key: string, value: Record, isCover = false) {\n // console.log('set', serviceKey, key, value);\n return indexedDB.addData(\n {\n service: serviceKey,\n [key]: value,\n },\n isCover\n );\n }\n // 获取到模版变量信息\n private async getStorage(service: string, key?: string) {\n const storage = await indexedDB.getData(service);\n // console.log('get', key, storage);\n return key ? storage?.[key] : storage;\n }\n}\nexport default new InstanceStorage();\n","interface DBEvent {\n target: { result: any; error: any };\n}\n// 数据库结构\ninterface DBTypes {\n store: StoreType;\n name?: string;\n version?: number;\n}\n// store表结构\ninterface StoreType {\n name: string; // 表名\n key: string; // 主键名\n cursorIndex?: { name: string; unique: boolean }[]; // 索引列表\n}\n\n// 数据结构\n// {service: 'cvm', instance: [{ins: 23}]}\ninterface DataType {\n service: string;\n [x: string]: any; // 有产品需缓存其他列表\n}\n\n// interface UpdateProps {\n// storeName: string;\n// cursorKey: string;\n// cursorValue?: any;\n// data: any;\n// }\n\nconst store: StoreType = {\n name: 'grafanaInstanceList',\n key: 'service',\n};\nconst promisify = (request: any, type?: string) => {\n return new Promise((resolve, reject) => {\n request.onsuccess = (event: DBEvent) => {\n const returnMap: any = {\n event: event.target.result,\n request: request.result,\n msg: '操作成功',\n };\n resolve(returnMap[type || 'msg']);\n };\n request.onerror = (event: DBEvent) => reject(event.target.error || '操作失败');\n });\n};\n// 固定表名和数据库名\nclass IndexedDB {\n name = 'grafanaDatabase';\n version = 1;\n\n constructor(props: DBTypes) {\n const { name = 'database', version = 1, store } = props;\n this.name = name;\n this.version = version;\n\n this.initDB(store);\n }\n\n /**\n * 初始化数据库\n * @param store 库表的结构\n */\n initDB(store: StoreType) {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n request.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n const db = (event.target as IDBOpenDBRequest).result;\n if (db.objectStoreNames.contains(store.name)) {\n // 存在表store\n }\n\n // 遍历store,设置数据表结构\n db.createObjectStore(store.name, {\n keyPath: store.key,\n });\n };\n request.onerror = () => Promise.reject(new Error('初始化数据库失败'));\n request.onsuccess = () => Promise.resolve('初始化数据库成功');\n }\n\n openDB() {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n return promisify(request, 'event');\n }\n\n /**\n * 新增数据\n * @param storeName 表名\n * @param data 添加的数据\n */\n async insertData(storeName: string, data: any) {\n try {\n // console.time('insertData');\n const db = await this.openDB();\n const transaction = db.transaction(storeName, 'readwrite');\n const objectStore = transaction.objectStore(storeName);\n\n objectStore.add(data);\n // console.timeEnd('insertData');\n\n return new Promise((resolve, reject) => {\n transaction.oncomplete = function () {\n // console.timeEnd('insertData');\n resolve('所有数据插入成功');\n };\n\n transaction.onerror = function (event) {\n reject(event);\n };\n });\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 更新数据\n * @param props 查询数据的参数以及要修改的值的参数\n */\n async addData(data: DataType, isCover?: boolean) {\n try {\n // console.log('addData');\n const storeName = store.name; // 表名\n const oldData = await this.getData(data.service);\n const objectStore = await this.getObjectStore(storeName, 'readwrite');\n\n if (!oldData) {\n // 不存在则新建\n this.insertData(storeName, data);\n }\n // 存在则更新\n let newData: any = { ...oldData, ...data };\n if (isCover) newData = data; // 需要覆盖之前内容\n // 把更新过的对象放回数据库\n const requestUpdate = objectStore.put(newData);\n // console.timeEnd('updateData');\n return promisify(requestUpdate);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 获取数据库的值,返回查询到的第一项\n * @param storeName 表名/存储对象的键\n * @param cursorKey key\n * @param cursorValue 要查询索引的值\n */\n async getData(seviceName: string) {\n try {\n // console.time('getData');\n const storeName = store.name;\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.get(seviceName);\n // console.timeEnd('getData');\n return promisify(request, 'request');\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async getAllData(storeName: string) {\n try {\n // console.time('getAllData');\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.getAll();\n const result = await promisify(request, 'request');\n // console.timeEnd('getAllData');\n return result ? result : [];\n } catch (error) {\n return Promise.reject(error);\n }\n }\n /**\n * 获取对象仓库\n * @param storeName 表名\n * @param type readonly 或者 readwrite等\n */\n private async getObjectStore(storeName: string, type?: any): Promise {\n try {\n const db = await this.openDB();\n return db.transaction(storeName, type).objectStore(storeName);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n// console.log('testDDB')\n// const indexDB = new IndexedDB({store});\n// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{\n// indexDB.getData('cvm').then(dd=>{console.log({dd})})\n// })\nexport default new IndexedDB({ store });\n","import moment from 'moment';\n\nconst HttpRequestMethod = 'POST';\nconst CanonicalUri = '/';\nconst CanonicalQueryString = '';\nconst ContentType = 'application/json';\n\nexport default class Sign {\n /**\n * Tencent Cloud API Signature v3 reference: https://cloud.tencent.com/document/api/213/30654\n * secretId: SecretId for identifying identity that is applied for on Cloud API Key.\n * A SecretId corresponds to a unique SecretKey, which is used to generate the request Signature.\n * secretKey: SecretKey is used to encrypt the signature string and verify the signature string on the server\n * service: the name of service, which must be consistent with the request domain, such as cvm\n * action: The name of the API for the desired operation\n * host: the domain of service,which must be consistent with the request domain, such as cvm.tencentcloudapi.com\n * version: PI version, such as 2017-03-12\n * payload: The request parameters\n */\n\n secretId: string;\n\n service: string;\n action: string;\n host: string;\n version: string;\n payload: Record | string;\n region: string;\n timestamp: number;\n date: string;\n backendSrv: any;\n datasourceId: Number;\n constructor(options) {\n const { secretId, service, action, host, version, payload = '', region, backendSrv, datasourceId } = options;\n this.secretId = secretId;\n // this.secretKey = secretKey;\n this.service = service;\n this.action = action;\n this.host = host;\n this.version = version;\n this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload);\n this.region = region;\n const nowDate = moment().utc();\n this.timestamp = nowDate.unix();\n this.date = nowDate.format('YYYY-MM-DD');\n this.backendSrv = backendSrv;\n this.datasourceId = datasourceId;\n }\n\n async getHeader() {\n return this.getResourceHeader();\n }\n\n async getResourceHeader() {\n let res: { authorization?: string; token?: string; intranet?: boolean } = {};\n try {\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v3`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.host,\n Service: this.service,\n Version: this.version,\n Action: this.action,\n Region: this.region,\n Timestamp: this.timestamp,\n Method: HttpRequestMethod,\n Uri: CanonicalUri,\n Query: CanonicalQueryString,\n Body: this.payload,\n Headers: {\n 'content-type': ContentType,\n host: this.host,\n },\n },\n });\n res = resp.data;\n } catch (err) {}\n const { authorization, token, intranet } = res;\n const grafanaVersion = (window as any).grafanaBootData?.settings?.buildInfo?.version || '0.0.0';\n const headers = {\n Authorization: authorization,\n 'Content-Type': ContentType,\n 'X-TC-Action': this.action,\n 'X-TC-Timestamp': this.timestamp.toString(),\n 'X-TC-Version': this.version,\n 'X-TC-RequestClient': `GF_${grafanaVersion}_PL_CM_${process.env.TENCENT_CLOUD_MONITOR_GRAFANA_PLUGIN_VERSION}`,\n ...(this.region && {\n 'X-TC-Region': this.region,\n }),\n ...(token && {\n 'X-TC-Token': token,\n }),\n intranet: intranet,\n };\n return headers;\n }\n}\n","/**\n *\n * @param defaults 为对象\n * secretId\n * secretKey\n * action\n * region\n * host\n */\n\nexport default class SignV2 {\n defaults: any = {\n path: '/v2/index.php',\n method: 'POST',\n };\n backendSrv: any;\n datasourceId: Number;\n constructor(defaults: any = {}) {\n this.defaults = Object.assign(this.defaults, defaults);\n this.defaults.secretKey = '';\n this.backendSrv = defaults.backendSrv;\n this.datasourceId = defaults.datasourceId;\n }\n\n generateQueryString = async () => {\n return this.getResourceQueryString();\n };\n\n async getResourceQueryString() {\n let res: { path?: string; querystring?: any; host?: string; intranet?: boolean } = {};\n try {\n const { data } = this.defaults;\n const payload = typeof data === 'string' ? data : JSON.stringify(data);\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v2`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.defaults.host,\n Action: this.defaults.action,\n Version: this.defaults.version,\n Region: this.defaults.region,\n Method: this.defaults.method,\n Uri: this.defaults.path,\n Query: '',\n Body: payload,\n },\n });\n res = resp.data;\n } catch (err) {}\n const { path, querystring, host, intranet } = res;\n return { queryString: querystring, path: path, host: host, intranet: intranet };\n }\n}\n","import _ from 'lodash';\nimport { SERVICES } from '../tc_monitor';\n\n/* 从分页数据获取全量数据 */\nconst PageSize = 50;\nfunction getFieldsValue(value, fields) {\n return fields.map((item) => _.get(value, item, _.get(value, `Result.${item}`, [])));\n}\n\nexport async function fetchAllFactory(fetcher: (args: any) => Promise, _params: any, field: string | string[]) {\n const params = { ..._.omit(_params, ['isOffsetPage']) };\n params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50\n params.Offset = params.Offset ?? 0; // 默认给个Offset为0\n\n // 第一次请求,获取总数\n const rs = (await fetcher(params)) ?? {};\n const fields = Array.isArray(field) ? field : [field];\n\n // rs.TotalCount = rs.TotalCount ?? rs.Result.TotalCount ?? [];\n // const { TotalCount } = rs;\n const TotalCount = rs.TotalCount ?? rs.Result?.TotalCount ?? rs.TotalCnt ?? rs.Result?.TotalCnt ?? 0;\n const firstLists = getFieldsValue(rs, fields);\n\n if (TotalCount === 0 || firstLists[0].length === TotalCount) {\n // 只有一页,结束\n return firstLists;\n }\n\n // 批量请求\n const delta = TotalCount - firstLists[0].length;\n const batchCount = Math.ceil(delta / PageSize);\n const pmList = new Array(batchCount).fill(0).map((_, index) => {\n params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit;\n return fetcher(params);\n });\n\n // 合并\n const resultList = await Promise.all(pmList); // [ {a: [], b[] }, { a: [], b:[] }]\n\n return resultList.reduce((acc, cur) => {\n const lists = getFieldsValue(cur, fields);\n // [[], [], []] + [[], [], []]\n acc.forEach((list, index) => list.push(...lists[index]));\n return acc;\n }, firstLists);\n}\n\n/**\n * 实例列表接口入参处理\n *\n * @param queries 表单键入内容\n * @param isFilter 是否需要设置为Filters格式\n */\nexport function instanceQueryParamsBaseParse(queries: any, isFilter: boolean) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n } else {\n params[key] = _.uniq(item);\n }\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n } else {\n params[key] = _.get(item, 'value');\n }\n }\n } else if (item !== null && item !== undefined && item !== '') {\n if (isFilter) {\n Filters.push({ Name: key, Values: item });\n } else {\n params[key] = item;\n }\n }\n });\n if (isFilter && Filters.length > 0) {\n params.Filters = Filters;\n return params;\n }\n }\n return params;\n}\n\nexport function getNamesapceFromService(serviceName: string) {\n return _.get(\n _.find(SERVICES, (service) => service.service === serviceName),\n 'namespace'\n );\n}\n\nexport function serviceGroupBy(\n services: { service: string; label: string; namespace: string; href: string; groupName?: string }[]\n) {\n const result = services.reduce((acc, cur) => {\n const { namespace, label, groupName = label } = cur;\n\n const existedGroup = acc.find((item) => item.label === groupName);\n if (!existedGroup) {\n acc.push({ label: groupName, value: groupName, items: [{ label, value: namespace }] });\n return acc;\n }\n\n existedGroup.items.push({ label, value: namespace });\n return acc;\n }, [] as any[]);\n\n // 将只有一个子元素的项目进行特殊处理\n const rs = result.map((item) =>\n item.items.length === 1 ? { label: item.items[0].label, value: item.items[0].value } : item\n );\n return rs;\n}\n\nexport const isTargetEqual = (newTargetString: string, oldTargetString: string, key: string) => {\n try {\n const newTarget = JSON.parse(newTargetString);\n const oldTarget = JSON.parse(oldTargetString);\n return newTarget[key] === oldTarget[key];\n } catch (e) {\n return newTargetString === oldTargetString;\n }\n};\n\nexport const getTimeShiftInMs = (timeShift: any) => {\n const parts = /^(\\d+)([d|h|m|s])$/.exec(timeShift);\n if (!parts) {\n return 0;\n }\n const amount = parseInt(parts[1], 10);\n const unit = parts[2];\n switch (unit) {\n case 'd':\n return amount * 86400 * 1000;\n case 'h':\n return amount * 3600 * 1000;\n case 'm':\n return amount * 60 * 1000;\n case 's':\n return amount * 1000;\n }\n return 0;\n};\n","var map = {\n\t\".\": \"./datasource/tc_monitor/index.ts\",\n\t\"./\": \"./datasource/tc_monitor/index.ts\",\n\t\"./MonitorDatasource\": \"./datasource/tc_monitor/MonitorDatasource.ts\",\n\t\"./MonitorDatasource.ts\": \"./datasource/tc_monitor/MonitorDatasource.ts\",\n\t\"./_base/datasource\": \"./datasource/tc_monitor/_base/datasource.ts\",\n\t\"./_base/datasource.ts\": \"./datasource/tc_monitor/_base/datasource.ts\",\n\t\"./_base/query\": \"./datasource/tc_monitor/_base/query.ts\",\n\t\"./_base/query.ts\": \"./datasource/tc_monitor/_base/query.ts\",\n\t\"./_base/query_filter\": \"./datasource/tc_monitor/_base/query_filter.ts\",\n\t\"./_base/query_filter.ts\": \"./datasource/tc_monitor/_base/query_filter.ts\",\n\t\"./_base/types\": \"./datasource/tc_monitor/_base/types.ts\",\n\t\"./_base/types.ts\": \"./datasource/tc_monitor/_base/types.ts\",\n\t\"./apigateway/datasource\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/datasource.ts\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/query\": \"./datasource/tc_monitor/apigateway/query.ts\",\n\t\"./apigateway/query.ts\": \"./datasource/tc_monitor/apigateway/query.ts\",\n\t\"./apigateway/query_def\": \"./datasource/tc_monitor/apigateway/query_def.ts\",\n\t\"./apigateway/query_def.ts\": \"./datasource/tc_monitor/apigateway/query_def.ts\",\n\t\"./bmIntraLb/datasource\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/datasource.ts\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/query\": \"./datasource/tc_monitor/bmIntraLb/query.ts\",\n\t\"./bmIntraLb/query.ts\": \"./datasource/tc_monitor/bmIntraLb/query.ts\",\n\t\"./bmIntraLb/query_def\": \"./datasource/tc_monitor/bmIntraLb/query_def.ts\",\n\t\"./bmIntraLb/query_def.ts\": \"./datasource/tc_monitor/bmIntraLb/query_def.ts\",\n\t\"./bm_lb/datasource\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/datasource.ts\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/query\": \"./datasource/tc_monitor/bm_lb/query.ts\",\n\t\"./bm_lb/query.ts\": \"./datasource/tc_monitor/bm_lb/query.ts\",\n\t\"./bm_lb/query_def\": \"./datasource/tc_monitor/bm_lb/query_def.ts\",\n\t\"./bm_lb/query_def.ts\": \"./datasource/tc_monitor/bm_lb/query_def.ts\",\n\t\"./bm_pcx/datasource\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/datasource.ts\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/query\": \"./datasource/tc_monitor/bm_pcx/query.ts\",\n\t\"./bm_pcx/query.ts\": \"./datasource/tc_monitor/bm_pcx/query.ts\",\n\t\"./bm_pcx/query_def\": \"./datasource/tc_monitor/bm_pcx/query_def.ts\",\n\t\"./bm_pcx/query_def.ts\": \"./datasource/tc_monitor/bm_pcx/query_def.ts\",\n\t\"./bwp/datasource\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/datasource.ts\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/query\": \"./datasource/tc_monitor/bwp/query.ts\",\n\t\"./bwp/query.ts\": \"./datasource/tc_monitor/bwp/query.ts\",\n\t\"./bwp/query_def\": \"./datasource/tc_monitor/bwp/query_def.ts\",\n\t\"./bwp/query_def.ts\": \"./datasource/tc_monitor/bwp/query_def.ts\",\n\t\"./cbs/datasource\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/datasource.ts\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/query\": \"./datasource/tc_monitor/cbs/query.ts\",\n\t\"./cbs/query.ts\": \"./datasource/tc_monitor/cbs/query.ts\",\n\t\"./cbs/query_def\": \"./datasource/tc_monitor/cbs/query_def.ts\",\n\t\"./cbs/query_def.ts\": \"./datasource/tc_monitor/cbs/query_def.ts\",\n\t\"./cdb/datasource\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/datasource.ts\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/query\": \"./datasource/tc_monitor/cdb/query.ts\",\n\t\"./cdb/query.ts\": \"./datasource/tc_monitor/cdb/query.ts\",\n\t\"./cdb/query_def\": \"./datasource/tc_monitor/cdb/query_def.ts\",\n\t\"./cdb/query_def.ts\": \"./datasource/tc_monitor/cdb/query_def.ts\",\n\t\"./cdn/datasource\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/datasource.ts\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/query\": \"./datasource/tc_monitor/cdn/query.ts\",\n\t\"./cdn/query.ts\": \"./datasource/tc_monitor/cdn/query.ts\",\n\t\"./cdn/query_def\": \"./datasource/tc_monitor/cdn/query_def.ts\",\n\t\"./cdn/query_def.ts\": \"./datasource/tc_monitor/cdn/query_def.ts\",\n\t\"./cdn_province/datasource\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/datasource.ts\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/query\": \"./datasource/tc_monitor/cdn_province/query.ts\",\n\t\"./cdn_province/query.ts\": \"./datasource/tc_monitor/cdn_province/query.ts\",\n\t\"./cdn_province/query_def\": \"./datasource/tc_monitor/cdn_province/query_def.ts\",\n\t\"./cdn_province/query_def.ts\": \"./datasource/tc_monitor/cdn_province/query_def.ts\",\n\t\"./ceip_summary/datasource\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/datasource.ts\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/query\": \"./datasource/tc_monitor/ceip_summary/query.ts\",\n\t\"./ceip_summary/query.ts\": \"./datasource/tc_monitor/ceip_summary/query.ts\",\n\t\"./ceip_summary/query_def\": \"./datasource/tc_monitor/ceip_summary/query_def.ts\",\n\t\"./ceip_summary/query_def.ts\": \"./datasource/tc_monitor/ceip_summary/query_def.ts\",\n\t\"./ces/datasource\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/datasource.ts\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/query\": \"./datasource/tc_monitor/ces/query.ts\",\n\t\"./ces/query.ts\": \"./datasource/tc_monitor/ces/query.ts\",\n\t\"./ces/query_def\": \"./datasource/tc_monitor/ces/query_def.ts\",\n\t\"./ces/query_def.ts\": \"./datasource/tc_monitor/ces/query_def.ts\",\n\t\"./cfs/datasource\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/datasource.ts\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/query\": \"./datasource/tc_monitor/cfs/query.ts\",\n\t\"./cfs/query.ts\": \"./datasource/tc_monitor/cfs/query.ts\",\n\t\"./cfs/query_def\": \"./datasource/tc_monitor/cfs/query_def.ts\",\n\t\"./cfs/query_def.ts\": \"./datasource/tc_monitor/cfs/query_def.ts\",\n\t\"./ckafka/datasource\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/datasource.ts\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/query\": \"./datasource/tc_monitor/ckafka/query.ts\",\n\t\"./ckafka/query.ts\": \"./datasource/tc_monitor/ckafka/query.ts\",\n\t\"./ckafka/query_def\": \"./datasource/tc_monitor/ckafka/query_def.ts\",\n\t\"./ckafka/query_def.ts\": \"./datasource/tc_monitor/ckafka/query_def.ts\",\n\t\"./clb/datasource\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/datasource.ts\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/query\": \"./datasource/tc_monitor/clb/query.ts\",\n\t\"./clb/query.ts\": \"./datasource/tc_monitor/clb/query.ts\",\n\t\"./clb/query_def\": \"./datasource/tc_monitor/clb/query_def.ts\",\n\t\"./clb/query_def.ts\": \"./datasource/tc_monitor/clb/query_def.ts\",\n\t\"./cls/datasource\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/datasource.ts\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/query\": \"./datasource/tc_monitor/cls/query.ts\",\n\t\"./cls/query.ts\": \"./datasource/tc_monitor/cls/query.ts\",\n\t\"./cls/query_def\": \"./datasource/tc_monitor/cls/query_def.ts\",\n\t\"./cls/query_def.ts\": \"./datasource/tc_monitor/cls/query_def.ts\",\n\t\"./cmq/datasource\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/datasource.ts\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/query\": \"./datasource/tc_monitor/cmq/query.ts\",\n\t\"./cmq/query.ts\": \"./datasource/tc_monitor/cmq/query.ts\",\n\t\"./cmq/query_def\": \"./datasource/tc_monitor/cmq/query_def.ts\",\n\t\"./cmq/query_def.ts\": \"./datasource/tc_monitor/cmq/query_def.ts\",\n\t\"./cmq_topic/datasource\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/datasource.ts\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/query\": \"./datasource/tc_monitor/cmq_topic/query.ts\",\n\t\"./cmq_topic/query.ts\": \"./datasource/tc_monitor/cmq_topic/query.ts\",\n\t\"./cmq_topic/query_def\": \"./datasource/tc_monitor/cmq_topic/query_def.ts\",\n\t\"./cmq_topic/query_def.ts\": \"./datasource/tc_monitor/cmq_topic/query_def.ts\",\n\t\"./cos/datasource\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/datasource.ts\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/query_def\": \"./datasource/tc_monitor/cos/query_def.ts\",\n\t\"./cos/query_def.ts\": \"./datasource/tc_monitor/cos/query_def.ts\",\n\t\"./cpm/datasource\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/datasource.ts\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/query\": \"./datasource/tc_monitor/cpm/query.ts\",\n\t\"./cpm/query.ts\": \"./datasource/tc_monitor/cpm/query.ts\",\n\t\"./cpm/query_def\": \"./datasource/tc_monitor/cpm/query_def.ts\",\n\t\"./cpm/query_def.ts\": \"./datasource/tc_monitor/cpm/query_def.ts\",\n\t\"./cvm/datasource\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/datasource.ts\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/query\": \"./datasource/tc_monitor/cvm/query.ts\",\n\t\"./cvm/query.ts\": \"./datasource/tc_monitor/cvm/query.ts\",\n\t\"./cvm/query_def\": \"./datasource/tc_monitor/cvm/query_def.ts\",\n\t\"./cvm/query_def.ts\": \"./datasource/tc_monitor/cvm/query_def.ts\",\n\t\"./cynosdb_mysql/datasource\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/datasource.ts\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/query\": \"./datasource/tc_monitor/cynosdb_mysql/query.ts\",\n\t\"./cynosdb_mysql/query.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query.ts\",\n\t\"./cynosdb_mysql/query_def\": \"./datasource/tc_monitor/cynosdb_mysql/query_def.ts\",\n\t\"./cynosdb_mysql/query_def.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query_def.ts\",\n\t\"./dc/datasource\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/datasource.ts\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/query\": \"./datasource/tc_monitor/dc/query.ts\",\n\t\"./dc/query.ts\": \"./datasource/tc_monitor/dc/query.ts\",\n\t\"./dc/query_def\": \"./datasource/tc_monitor/dc/query_def.ts\",\n\t\"./dc/query_def.ts\": \"./datasource/tc_monitor/dc/query_def.ts\",\n\t\"./dcdb/datasource\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/datasource.ts\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/query\": \"./datasource/tc_monitor/dcdb/query.ts\",\n\t\"./dcdb/query.ts\": \"./datasource/tc_monitor/dcdb/query.ts\",\n\t\"./dcdb/query_def\": \"./datasource/tc_monitor/dcdb/query_def.ts\",\n\t\"./dcdb/query_def.ts\": \"./datasource/tc_monitor/dcdb/query_def.ts\",\n\t\"./dcg/datasource\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/datasource.ts\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/query\": \"./datasource/tc_monitor/dcg/query.ts\",\n\t\"./dcg/query.ts\": \"./datasource/tc_monitor/dcg/query.ts\",\n\t\"./dcg/query_def\": \"./datasource/tc_monitor/dcg/query_def.ts\",\n\t\"./dcg/query_def.ts\": \"./datasource/tc_monitor/dcg/query_def.ts\",\n\t\"./dcx/datasource\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/datasource.ts\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/query\": \"./datasource/tc_monitor/dcx/query.ts\",\n\t\"./dcx/query.ts\": \"./datasource/tc_monitor/dcx/query.ts\",\n\t\"./dcx/query_def\": \"./datasource/tc_monitor/dcx/query_def.ts\",\n\t\"./dcx/query_def.ts\": \"./datasource/tc_monitor/dcx/query_def.ts\",\n\t\"./ecdn/datasource\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/datasource.ts\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/query\": \"./datasource/tc_monitor/ecdn/query.ts\",\n\t\"./ecdn/query.ts\": \"./datasource/tc_monitor/ecdn/query.ts\",\n\t\"./ecdn/query_def\": \"./datasource/tc_monitor/ecdn/query_def.ts\",\n\t\"./ecdn/query_def.ts\": \"./datasource/tc_monitor/ecdn/query_def.ts\",\n\t\"./ecm/datasource\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/datasource.ts\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/query\": \"./datasource/tc_monitor/ecm/query.ts\",\n\t\"./ecm/query.ts\": \"./datasource/tc_monitor/ecm/query.ts\",\n\t\"./ecm/query_def\": \"./datasource/tc_monitor/ecm/query_def.ts\",\n\t\"./ecm/query_def.ts\": \"./datasource/tc_monitor/ecm/query_def.ts\",\n\t\"./ecm_block_storage/datasource\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/datasource.ts\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/query\": \"./datasource/tc_monitor/ecm_block_storage/query.ts\",\n\t\"./ecm_block_storage/query.ts\": \"./datasource/tc_monitor/ecm_block_storage/query.ts\",\n\t\"./ecm_block_storage/query_def\": \"./datasource/tc_monitor/ecm_block_storage/query_def.ts\",\n\t\"./ecm_block_storage/query_def.ts\": \"./datasource/tc_monitor/ecm_block_storage/query_def.ts\",\n\t\"./ecm_lb/datasource\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/datasource.ts\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/query\": \"./datasource/tc_monitor/ecm_lb/query.ts\",\n\t\"./ecm_lb/query.ts\": \"./datasource/tc_monitor/ecm_lb/query.ts\",\n\t\"./ecm_lb/query_def\": \"./datasource/tc_monitor/ecm_lb/query_def.ts\",\n\t\"./ecm_lb/query_def.ts\": \"./datasource/tc_monitor/ecm_lb/query_def.ts\",\n\t\"./gse/datasource\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/datasource.ts\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/query\": \"./datasource/tc_monitor/gse/query.ts\",\n\t\"./gse/query.ts\": \"./datasource/tc_monitor/gse/query.ts\",\n\t\"./gse/query_def\": \"./datasource/tc_monitor/gse/query_def.ts\",\n\t\"./gse/query_def.ts\": \"./datasource/tc_monitor/gse/query_def.ts\",\n\t\"./index\": \"./datasource/tc_monitor/index.ts\",\n\t\"./index.ts\": \"./datasource/tc_monitor/index.ts\",\n\t\"./lb/datasource\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/datasource.ts\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/query\": \"./datasource/tc_monitor/lb/query.ts\",\n\t\"./lb/query.ts\": \"./datasource/tc_monitor/lb/query.ts\",\n\t\"./lb/query_def\": \"./datasource/tc_monitor/lb/query_def.ts\",\n\t\"./lb/query_def.ts\": \"./datasource/tc_monitor/lb/query_def.ts\",\n\t\"./lighthouse/datasource\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/datasource.ts\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/query\": \"./datasource/tc_monitor/lighthouse/query.ts\",\n\t\"./lighthouse/query.ts\": \"./datasource/tc_monitor/lighthouse/query.ts\",\n\t\"./lighthouse/query_def\": \"./datasource/tc_monitor/lighthouse/query_def.ts\",\n\t\"./lighthouse/query_def.ts\": \"./datasource/tc_monitor/lighthouse/query_def.ts\",\n\t\"./mongodb/datasource\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/datasource.ts\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/query\": \"./datasource/tc_monitor/mongodb/query.ts\",\n\t\"./mongodb/query.ts\": \"./datasource/tc_monitor/mongodb/query.ts\",\n\t\"./mongodb/query_def\": \"./datasource/tc_monitor/mongodb/query_def.ts\",\n\t\"./mongodb/query_def.ts\": \"./datasource/tc_monitor/mongodb/query_def.ts\",\n\t\"./mr/datasource\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/datasource.ts\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/query\": \"./datasource/tc_monitor/mr/query.ts\",\n\t\"./mr/query.ts\": \"./datasource/tc_monitor/mr/query.ts\",\n\t\"./mr/query_def\": \"./datasource/tc_monitor/mr/query_def.ts\",\n\t\"./mr/query_def.ts\": \"./datasource/tc_monitor/mr/query_def.ts\",\n\t\"./nat_gateway/datasource\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/datasource.ts\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/query\": \"./datasource/tc_monitor/nat_gateway/query.ts\",\n\t\"./nat_gateway/query.ts\": \"./datasource/tc_monitor/nat_gateway/query.ts\",\n\t\"./nat_gateway/query_def\": \"./datasource/tc_monitor/nat_gateway/query_def.ts\",\n\t\"./nat_gateway/query_def.ts\": \"./datasource/tc_monitor/nat_gateway/query_def.ts\",\n\t\"./ov_cdn/datasource\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/datasource.ts\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/query\": \"./datasource/tc_monitor/ov_cdn/query.ts\",\n\t\"./ov_cdn/query.ts\": \"./datasource/tc_monitor/ov_cdn/query.ts\",\n\t\"./ov_cdn/query_def\": \"./datasource/tc_monitor/ov_cdn/query_def.ts\",\n\t\"./ov_cdn/query_def.ts\": \"./datasource/tc_monitor/ov_cdn/query_def.ts\",\n\t\"./pcx/datasource\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/datasource.ts\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/query\": \"./datasource/tc_monitor/pcx/query.ts\",\n\t\"./pcx/query.ts\": \"./datasource/tc_monitor/pcx/query.ts\",\n\t\"./pcx/query_def\": \"./datasource/tc_monitor/pcx/query_def.ts\",\n\t\"./pcx/query_def.ts\": \"./datasource/tc_monitor/pcx/query_def.ts\",\n\t\"./postgresql/datasource\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/datasource.ts\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/query\": \"./datasource/tc_monitor/postgresql/query.ts\",\n\t\"./postgresql/query.ts\": \"./datasource/tc_monitor/postgresql/query.ts\",\n\t\"./postgresql/query_def\": \"./datasource/tc_monitor/postgresql/query_def.ts\",\n\t\"./postgresql/query_def.ts\": \"./datasource/tc_monitor/postgresql/query_def.ts\",\n\t\"./qaap/datasource\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/datasource.ts\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/query\": \"./datasource/tc_monitor/qaap/query.ts\",\n\t\"./qaap/query.ts\": \"./datasource/tc_monitor/qaap/query.ts\",\n\t\"./qaap/query_def\": \"./datasource/tc_monitor/qaap/query_def.ts\",\n\t\"./qaap/query_def.ts\": \"./datasource/tc_monitor/qaap/query_def.ts\",\n\t\"./redis/datasource\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/datasource.ts\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/query\": \"./datasource/tc_monitor/redis/query.ts\",\n\t\"./redis/query.ts\": \"./datasource/tc_monitor/redis/query.ts\",\n\t\"./redis/query_def\": \"./datasource/tc_monitor/redis/query_def.ts\",\n\t\"./redis/query_def.ts\": \"./datasource/tc_monitor/redis/query_def.ts\",\n\t\"./redis_mem/datasource\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/datasource.ts\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/query\": \"./datasource/tc_monitor/redis_mem/query.ts\",\n\t\"./redis_mem/query.ts\": \"./datasource/tc_monitor/redis_mem/query.ts\",\n\t\"./redis_mem/query_def\": \"./datasource/tc_monitor/redis_mem/query_def.ts\",\n\t\"./redis_mem/query_def.ts\": \"./datasource/tc_monitor/redis_mem/query_def.ts\",\n\t\"./scf/datasource\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/datasource.ts\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/query\": \"./datasource/tc_monitor/scf/query.ts\",\n\t\"./scf/query.ts\": \"./datasource/tc_monitor/scf/query.ts\",\n\t\"./scf/query_def\": \"./datasource/tc_monitor/scf/query_def.ts\",\n\t\"./scf/query_def.ts\": \"./datasource/tc_monitor/scf/query_def.ts\",\n\t\"./sqlserver/datasource\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/datasource.ts\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/query\": \"./datasource/tc_monitor/sqlserver/query.ts\",\n\t\"./sqlserver/query.ts\": \"./datasource/tc_monitor/sqlserver/query.ts\",\n\t\"./sqlserver/query_def\": \"./datasource/tc_monitor/sqlserver/query_def.ts\",\n\t\"./sqlserver/query_def.ts\": \"./datasource/tc_monitor/sqlserver/query_def.ts\",\n\t\"./tcaplus/datasource\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/datasource.ts\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/query\": \"./datasource/tc_monitor/tcaplus/query.ts\",\n\t\"./tcaplus/query.ts\": \"./datasource/tc_monitor/tcaplus/query.ts\",\n\t\"./tcaplus/query_def\": \"./datasource/tc_monitor/tcaplus/query_def.ts\",\n\t\"./tcaplus/query_def.ts\": \"./datasource/tc_monitor/tcaplus/query_def.ts\",\n\t\"./tdmq/datasource\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/datasource.ts\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/query\": \"./datasource/tc_monitor/tdmq/query.ts\",\n\t\"./tdmq/query.ts\": \"./datasource/tc_monitor/tdmq/query.ts\",\n\t\"./tdmq/query_def\": \"./datasource/tc_monitor/tdmq/query_def.ts\",\n\t\"./tdmq/query_def.ts\": \"./datasource/tc_monitor/tdmq/query_def.ts\",\n\t\"./tdmq_rabbitmq/datasource\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/query\": \"./datasource/tc_monitor/tdmq_rabbitmq/query.ts\",\n\t\"./tdmq_rabbitmq/query.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query.ts\",\n\t\"./tdmq_rabbitmq/query_def\": \"./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts\",\n\t\"./tdmq_rabbitmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts\",\n\t\"./tdmq_rocketmq/datasource\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/query\": \"./datasource/tc_monitor/tdmq_rocketmq/query.ts\",\n\t\"./tdmq_rocketmq/query.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query.ts\",\n\t\"./tdmq_rocketmq/query_def\": \"./datasource/tc_monitor/tdmq_rocketmq/query_def.ts\",\n\t\"./tdmq_rocketmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query_def.ts\",\n\t\"./tke/datasource\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/datasource.ts\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/query\": \"./datasource/tc_monitor/tke/query.ts\",\n\t\"./tke/query.ts\": \"./datasource/tc_monitor/tke/query.ts\",\n\t\"./tke/query_def\": \"./datasource/tc_monitor/tke/query_def.ts\",\n\t\"./tke/query_def.ts\": \"./datasource/tc_monitor/tke/query_def.ts\",\n\t\"./tsf/datasource\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/datasource.ts\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/query\": \"./datasource/tc_monitor/tsf/query.ts\",\n\t\"./tsf/query.ts\": \"./datasource/tc_monitor/tsf/query.ts\",\n\t\"./tsf/query_def\": \"./datasource/tc_monitor/tsf/query_def.ts\",\n\t\"./tsf/query_def.ts\": \"./datasource/tc_monitor/tsf/query_def.ts\",\n\t\"./v_clb/datasource\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/datasource.ts\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/query\": \"./datasource/tc_monitor/v_clb/query.ts\",\n\t\"./v_clb/query.ts\": \"./datasource/tc_monitor/v_clb/query.ts\",\n\t\"./v_clb/query_def\": \"./datasource/tc_monitor/v_clb/query_def.ts\",\n\t\"./v_clb/query_def.ts\": \"./datasource/tc_monitor/v_clb/query_def.ts\",\n\t\"./vbc/datasource\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/datasource.ts\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/query\": \"./datasource/tc_monitor/vbc/query.ts\",\n\t\"./vbc/query.ts\": \"./datasource/tc_monitor/vbc/query.ts\",\n\t\"./vbc/query_def\": \"./datasource/tc_monitor/vbc/query_def.ts\",\n\t\"./vbc/query_def.ts\": \"./datasource/tc_monitor/vbc/query_def.ts\",\n\t\"./vpc_net_detect/datasource\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/datasource.ts\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/query\": \"./datasource/tc_monitor/vpc_net_detect/query.ts\",\n\t\"./vpc_net_detect/query.ts\": \"./datasource/tc_monitor/vpc_net_detect/query.ts\",\n\t\"./vpc_net_detect/query_def\": \"./datasource/tc_monitor/vpc_net_detect/query_def.ts\",\n\t\"./vpc_net_detect/query_def.ts\": \"./datasource/tc_monitor/vpc_net_detect/query_def.ts\",\n\t\"./vpngw/datasource\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/datasource.ts\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/query\": \"./datasource/tc_monitor/vpngw/query.ts\",\n\t\"./vpngw/query.ts\": \"./datasource/tc_monitor/vpngw/query.ts\",\n\t\"./vpngw/query_def\": \"./datasource/tc_monitor/vpngw/query_def.ts\",\n\t\"./vpngw/query_def.ts\": \"./datasource/tc_monitor/vpngw/query_def.ts\",\n\t\"./vpnx/datasource\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/datasource.ts\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/query\": \"./datasource/tc_monitor/vpnx/query.ts\",\n\t\"./vpnx/query.ts\": \"./datasource/tc_monitor/vpnx/query.ts\",\n\t\"./vpnx/query_def\": \"./datasource/tc_monitor/vpnx/query_def.ts\",\n\t\"./vpnx/query_def.ts\": \"./datasource/tc_monitor/vpnx/query_def.ts\",\n\t\"./waf/datasource\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/datasource.ts\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/query\": \"./datasource/tc_monitor/waf/query.ts\",\n\t\"./waf/query.ts\": \"./datasource/tc_monitor/waf/query.ts\",\n\t\"./waf/query_def\": \"./datasource/tc_monitor/waf/query_def.ts\",\n\t\"./waf/query_def.ts\": \"./datasource/tc_monitor/waf/query_def.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./datasource/tc_monitor sync recursive ^.*$\";","var map = {\n\t\"./_base/query.ts\": \"./datasource/tc_monitor/_base/query.ts\",\n\t\"./apigateway/datasource\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/datasource.ts\": \"./datasource/tc_monitor/apigateway/datasource.ts\",\n\t\"./apigateway/query.ts\": \"./datasource/tc_monitor/apigateway/query.ts\",\n\t\"./apigateway/query_def.ts\": \"./datasource/tc_monitor/apigateway/query_def.ts\",\n\t\"./bmIntraLb/datasource\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/datasource.ts\": \"./datasource/tc_monitor/bmIntraLb/datasource.ts\",\n\t\"./bmIntraLb/query.ts\": \"./datasource/tc_monitor/bmIntraLb/query.ts\",\n\t\"./bmIntraLb/query_def.ts\": \"./datasource/tc_monitor/bmIntraLb/query_def.ts\",\n\t\"./bm_lb/datasource\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/datasource.ts\": \"./datasource/tc_monitor/bm_lb/datasource.ts\",\n\t\"./bm_lb/query.ts\": \"./datasource/tc_monitor/bm_lb/query.ts\",\n\t\"./bm_lb/query_def.ts\": \"./datasource/tc_monitor/bm_lb/query_def.ts\",\n\t\"./bm_pcx/datasource\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/datasource.ts\": \"./datasource/tc_monitor/bm_pcx/datasource.ts\",\n\t\"./bm_pcx/query.ts\": \"./datasource/tc_monitor/bm_pcx/query.ts\",\n\t\"./bm_pcx/query_def.ts\": \"./datasource/tc_monitor/bm_pcx/query_def.ts\",\n\t\"./bwp/datasource\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/datasource.ts\": \"./datasource/tc_monitor/bwp/datasource.ts\",\n\t\"./bwp/query.ts\": \"./datasource/tc_monitor/bwp/query.ts\",\n\t\"./bwp/query_def.ts\": \"./datasource/tc_monitor/bwp/query_def.ts\",\n\t\"./cbs/datasource\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/datasource.ts\": \"./datasource/tc_monitor/cbs/datasource.ts\",\n\t\"./cbs/query.ts\": \"./datasource/tc_monitor/cbs/query.ts\",\n\t\"./cbs/query_def.ts\": \"./datasource/tc_monitor/cbs/query_def.ts\",\n\t\"./cdb/datasource\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/datasource.ts\": \"./datasource/tc_monitor/cdb/datasource.ts\",\n\t\"./cdb/query.ts\": \"./datasource/tc_monitor/cdb/query.ts\",\n\t\"./cdb/query_def.ts\": \"./datasource/tc_monitor/cdb/query_def.ts\",\n\t\"./cdn/datasource\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/datasource.ts\": \"./datasource/tc_monitor/cdn/datasource.ts\",\n\t\"./cdn/query.ts\": \"./datasource/tc_monitor/cdn/query.ts\",\n\t\"./cdn/query_def.ts\": \"./datasource/tc_monitor/cdn/query_def.ts\",\n\t\"./cdn_province/datasource\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/datasource.ts\": \"./datasource/tc_monitor/cdn_province/datasource.ts\",\n\t\"./cdn_province/query.ts\": \"./datasource/tc_monitor/cdn_province/query.ts\",\n\t\"./cdn_province/query_def.ts\": \"./datasource/tc_monitor/cdn_province/query_def.ts\",\n\t\"./ceip_summary/datasource\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/datasource.ts\": \"./datasource/tc_monitor/ceip_summary/datasource.ts\",\n\t\"./ceip_summary/query.ts\": \"./datasource/tc_monitor/ceip_summary/query.ts\",\n\t\"./ceip_summary/query_def.ts\": \"./datasource/tc_monitor/ceip_summary/query_def.ts\",\n\t\"./ces/datasource\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/datasource.ts\": \"./datasource/tc_monitor/ces/datasource.ts\",\n\t\"./ces/query.ts\": \"./datasource/tc_monitor/ces/query.ts\",\n\t\"./ces/query_def.ts\": \"./datasource/tc_monitor/ces/query_def.ts\",\n\t\"./cfs/datasource\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/datasource.ts\": \"./datasource/tc_monitor/cfs/datasource.ts\",\n\t\"./cfs/query.ts\": \"./datasource/tc_monitor/cfs/query.ts\",\n\t\"./cfs/query_def.ts\": \"./datasource/tc_monitor/cfs/query_def.ts\",\n\t\"./ckafka/datasource\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/datasource.ts\": \"./datasource/tc_monitor/ckafka/datasource.ts\",\n\t\"./ckafka/query.ts\": \"./datasource/tc_monitor/ckafka/query.ts\",\n\t\"./ckafka/query_def.ts\": \"./datasource/tc_monitor/ckafka/query_def.ts\",\n\t\"./clb/datasource\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/datasource.ts\": \"./datasource/tc_monitor/clb/datasource.ts\",\n\t\"./clb/query.ts\": \"./datasource/tc_monitor/clb/query.ts\",\n\t\"./clb/query_def.ts\": \"./datasource/tc_monitor/clb/query_def.ts\",\n\t\"./cls/datasource\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/datasource.ts\": \"./datasource/tc_monitor/cls/datasource.ts\",\n\t\"./cls/query.ts\": \"./datasource/tc_monitor/cls/query.ts\",\n\t\"./cls/query_def.ts\": \"./datasource/tc_monitor/cls/query_def.ts\",\n\t\"./cmq/datasource\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/datasource.ts\": \"./datasource/tc_monitor/cmq/datasource.ts\",\n\t\"./cmq/query.ts\": \"./datasource/tc_monitor/cmq/query.ts\",\n\t\"./cmq/query_def.ts\": \"./datasource/tc_monitor/cmq/query_def.ts\",\n\t\"./cmq_topic/datasource\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/datasource.ts\": \"./datasource/tc_monitor/cmq_topic/datasource.ts\",\n\t\"./cmq_topic/query.ts\": \"./datasource/tc_monitor/cmq_topic/query.ts\",\n\t\"./cmq_topic/query_def.ts\": \"./datasource/tc_monitor/cmq_topic/query_def.ts\",\n\t\"./cos/datasource\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/datasource.ts\": \"./datasource/tc_monitor/cos/datasource.ts\",\n\t\"./cos/query_def.ts\": \"./datasource/tc_monitor/cos/query_def.ts\",\n\t\"./cpm/datasource\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/datasource.ts\": \"./datasource/tc_monitor/cpm/datasource.ts\",\n\t\"./cpm/query.ts\": \"./datasource/tc_monitor/cpm/query.ts\",\n\t\"./cpm/query_def.ts\": \"./datasource/tc_monitor/cpm/query_def.ts\",\n\t\"./cvm/datasource\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/datasource.ts\": \"./datasource/tc_monitor/cvm/datasource.ts\",\n\t\"./cvm/query.ts\": \"./datasource/tc_monitor/cvm/query.ts\",\n\t\"./cvm/query_def.ts\": \"./datasource/tc_monitor/cvm/query_def.ts\",\n\t\"./cynosdb_mysql/datasource\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/datasource.ts\": \"./datasource/tc_monitor/cynosdb_mysql/datasource.ts\",\n\t\"./cynosdb_mysql/query.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query.ts\",\n\t\"./cynosdb_mysql/query_def.ts\": \"./datasource/tc_monitor/cynosdb_mysql/query_def.ts\",\n\t\"./dc/datasource\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/datasource.ts\": \"./datasource/tc_monitor/dc/datasource.ts\",\n\t\"./dc/query.ts\": \"./datasource/tc_monitor/dc/query.ts\",\n\t\"./dc/query_def.ts\": \"./datasource/tc_monitor/dc/query_def.ts\",\n\t\"./dcdb/datasource\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/datasource.ts\": \"./datasource/tc_monitor/dcdb/datasource.ts\",\n\t\"./dcdb/query.ts\": \"./datasource/tc_monitor/dcdb/query.ts\",\n\t\"./dcdb/query_def.ts\": \"./datasource/tc_monitor/dcdb/query_def.ts\",\n\t\"./dcg/datasource\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/datasource.ts\": \"./datasource/tc_monitor/dcg/datasource.ts\",\n\t\"./dcg/query.ts\": \"./datasource/tc_monitor/dcg/query.ts\",\n\t\"./dcg/query_def.ts\": \"./datasource/tc_monitor/dcg/query_def.ts\",\n\t\"./dcx/datasource\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/datasource.ts\": \"./datasource/tc_monitor/dcx/datasource.ts\",\n\t\"./dcx/query.ts\": \"./datasource/tc_monitor/dcx/query.ts\",\n\t\"./dcx/query_def.ts\": \"./datasource/tc_monitor/dcx/query_def.ts\",\n\t\"./ecdn/datasource\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/datasource.ts\": \"./datasource/tc_monitor/ecdn/datasource.ts\",\n\t\"./ecdn/query.ts\": \"./datasource/tc_monitor/ecdn/query.ts\",\n\t\"./ecdn/query_def.ts\": \"./datasource/tc_monitor/ecdn/query_def.ts\",\n\t\"./ecm/datasource\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/datasource.ts\": \"./datasource/tc_monitor/ecm/datasource.ts\",\n\t\"./ecm/query.ts\": \"./datasource/tc_monitor/ecm/query.ts\",\n\t\"./ecm/query_def.ts\": \"./datasource/tc_monitor/ecm/query_def.ts\",\n\t\"./ecm_block_storage/datasource\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/datasource.ts\": \"./datasource/tc_monitor/ecm_block_storage/datasource.ts\",\n\t\"./ecm_block_storage/query.ts\": \"./datasource/tc_monitor/ecm_block_storage/query.ts\",\n\t\"./ecm_block_storage/query_def.ts\": \"./datasource/tc_monitor/ecm_block_storage/query_def.ts\",\n\t\"./ecm_lb/datasource\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/datasource.ts\": \"./datasource/tc_monitor/ecm_lb/datasource.ts\",\n\t\"./ecm_lb/query.ts\": \"./datasource/tc_monitor/ecm_lb/query.ts\",\n\t\"./ecm_lb/query_def.ts\": \"./datasource/tc_monitor/ecm_lb/query_def.ts\",\n\t\"./gse/datasource\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/datasource.ts\": \"./datasource/tc_monitor/gse/datasource.ts\",\n\t\"./gse/query.ts\": \"./datasource/tc_monitor/gse/query.ts\",\n\t\"./gse/query_def.ts\": \"./datasource/tc_monitor/gse/query_def.ts\",\n\t\"./lb/datasource\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/datasource.ts\": \"./datasource/tc_monitor/lb/datasource.ts\",\n\t\"./lb/query.ts\": \"./datasource/tc_monitor/lb/query.ts\",\n\t\"./lb/query_def.ts\": \"./datasource/tc_monitor/lb/query_def.ts\",\n\t\"./lighthouse/datasource\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/datasource.ts\": \"./datasource/tc_monitor/lighthouse/datasource.ts\",\n\t\"./lighthouse/query.ts\": \"./datasource/tc_monitor/lighthouse/query.ts\",\n\t\"./lighthouse/query_def.ts\": \"./datasource/tc_monitor/lighthouse/query_def.ts\",\n\t\"./mongodb/datasource\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/datasource.ts\": \"./datasource/tc_monitor/mongodb/datasource.ts\",\n\t\"./mongodb/query.ts\": \"./datasource/tc_monitor/mongodb/query.ts\",\n\t\"./mongodb/query_def.ts\": \"./datasource/tc_monitor/mongodb/query_def.ts\",\n\t\"./mr/datasource\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/datasource.ts\": \"./datasource/tc_monitor/mr/datasource.ts\",\n\t\"./mr/query.ts\": \"./datasource/tc_monitor/mr/query.ts\",\n\t\"./mr/query_def.ts\": \"./datasource/tc_monitor/mr/query_def.ts\",\n\t\"./nat_gateway/datasource\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/datasource.ts\": \"./datasource/tc_monitor/nat_gateway/datasource.ts\",\n\t\"./nat_gateway/query.ts\": \"./datasource/tc_monitor/nat_gateway/query.ts\",\n\t\"./nat_gateway/query_def.ts\": \"./datasource/tc_monitor/nat_gateway/query_def.ts\",\n\t\"./ov_cdn/datasource\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/datasource.ts\": \"./datasource/tc_monitor/ov_cdn/datasource.ts\",\n\t\"./ov_cdn/query.ts\": \"./datasource/tc_monitor/ov_cdn/query.ts\",\n\t\"./ov_cdn/query_def.ts\": \"./datasource/tc_monitor/ov_cdn/query_def.ts\",\n\t\"./pcx/datasource\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/datasource.ts\": \"./datasource/tc_monitor/pcx/datasource.ts\",\n\t\"./pcx/query.ts\": \"./datasource/tc_monitor/pcx/query.ts\",\n\t\"./pcx/query_def.ts\": \"./datasource/tc_monitor/pcx/query_def.ts\",\n\t\"./postgresql/datasource\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/datasource.ts\": \"./datasource/tc_monitor/postgresql/datasource.ts\",\n\t\"./postgresql/query.ts\": \"./datasource/tc_monitor/postgresql/query.ts\",\n\t\"./postgresql/query_def.ts\": \"./datasource/tc_monitor/postgresql/query_def.ts\",\n\t\"./qaap/datasource\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/datasource.ts\": \"./datasource/tc_monitor/qaap/datasource.ts\",\n\t\"./qaap/query.ts\": \"./datasource/tc_monitor/qaap/query.ts\",\n\t\"./qaap/query_def.ts\": \"./datasource/tc_monitor/qaap/query_def.ts\",\n\t\"./redis/datasource\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/datasource.ts\": \"./datasource/tc_monitor/redis/datasource.ts\",\n\t\"./redis/query.ts\": \"./datasource/tc_monitor/redis/query.ts\",\n\t\"./redis/query_def.ts\": \"./datasource/tc_monitor/redis/query_def.ts\",\n\t\"./redis_mem/datasource\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/datasource.ts\": \"./datasource/tc_monitor/redis_mem/datasource.ts\",\n\t\"./redis_mem/query.ts\": \"./datasource/tc_monitor/redis_mem/query.ts\",\n\t\"./redis_mem/query_def.ts\": \"./datasource/tc_monitor/redis_mem/query_def.ts\",\n\t\"./scf/datasource\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/datasource.ts\": \"./datasource/tc_monitor/scf/datasource.ts\",\n\t\"./scf/query.ts\": \"./datasource/tc_monitor/scf/query.ts\",\n\t\"./scf/query_def.ts\": \"./datasource/tc_monitor/scf/query_def.ts\",\n\t\"./sqlserver/datasource\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/datasource.ts\": \"./datasource/tc_monitor/sqlserver/datasource.ts\",\n\t\"./sqlserver/query.ts\": \"./datasource/tc_monitor/sqlserver/query.ts\",\n\t\"./sqlserver/query_def.ts\": \"./datasource/tc_monitor/sqlserver/query_def.ts\",\n\t\"./tcaplus/datasource\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/datasource.ts\": \"./datasource/tc_monitor/tcaplus/datasource.ts\",\n\t\"./tcaplus/query.ts\": \"./datasource/tc_monitor/tcaplus/query.ts\",\n\t\"./tcaplus/query_def.ts\": \"./datasource/tc_monitor/tcaplus/query_def.ts\",\n\t\"./tdmq/datasource\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/datasource.ts\": \"./datasource/tc_monitor/tdmq/datasource.ts\",\n\t\"./tdmq/query.ts\": \"./datasource/tc_monitor/tdmq/query.ts\",\n\t\"./tdmq/query_def.ts\": \"./datasource/tc_monitor/tdmq/query_def.ts\",\n\t\"./tdmq_rabbitmq/datasource\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts\",\n\t\"./tdmq_rabbitmq/query.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query.ts\",\n\t\"./tdmq_rabbitmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts\",\n\t\"./tdmq_rocketmq/datasource\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/datasource.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/datasource.ts\",\n\t\"./tdmq_rocketmq/query.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query.ts\",\n\t\"./tdmq_rocketmq/query_def.ts\": \"./datasource/tc_monitor/tdmq_rocketmq/query_def.ts\",\n\t\"./tke/datasource\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/datasource.ts\": \"./datasource/tc_monitor/tke/datasource.ts\",\n\t\"./tke/query.ts\": \"./datasource/tc_monitor/tke/query.ts\",\n\t\"./tke/query_def.ts\": \"./datasource/tc_monitor/tke/query_def.ts\",\n\t\"./tsf/datasource\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/datasource.ts\": \"./datasource/tc_monitor/tsf/datasource.ts\",\n\t\"./tsf/query.ts\": \"./datasource/tc_monitor/tsf/query.ts\",\n\t\"./tsf/query_def.ts\": \"./datasource/tc_monitor/tsf/query_def.ts\",\n\t\"./v_clb/datasource\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/datasource.ts\": \"./datasource/tc_monitor/v_clb/datasource.ts\",\n\t\"./v_clb/query.ts\": \"./datasource/tc_monitor/v_clb/query.ts\",\n\t\"./v_clb/query_def.ts\": \"./datasource/tc_monitor/v_clb/query_def.ts\",\n\t\"./vbc/datasource\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/datasource.ts\": \"./datasource/tc_monitor/vbc/datasource.ts\",\n\t\"./vbc/query.ts\": \"./datasource/tc_monitor/vbc/query.ts\",\n\t\"./vbc/query_def.ts\": \"./datasource/tc_monitor/vbc/query_def.ts\",\n\t\"./vpc_net_detect/datasource\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/datasource.ts\": \"./datasource/tc_monitor/vpc_net_detect/datasource.ts\",\n\t\"./vpc_net_detect/query.ts\": \"./datasource/tc_monitor/vpc_net_detect/query.ts\",\n\t\"./vpc_net_detect/query_def.ts\": \"./datasource/tc_monitor/vpc_net_detect/query_def.ts\",\n\t\"./vpngw/datasource\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/datasource.ts\": \"./datasource/tc_monitor/vpngw/datasource.ts\",\n\t\"./vpngw/query.ts\": \"./datasource/tc_monitor/vpngw/query.ts\",\n\t\"./vpngw/query_def.ts\": \"./datasource/tc_monitor/vpngw/query_def.ts\",\n\t\"./vpnx/datasource\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/datasource.ts\": \"./datasource/tc_monitor/vpnx/datasource.ts\",\n\t\"./vpnx/query.ts\": \"./datasource/tc_monitor/vpnx/query.ts\",\n\t\"./vpnx/query_def.ts\": \"./datasource/tc_monitor/vpnx/query_def.ts\",\n\t\"./waf/datasource\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/datasource.ts\": \"./datasource/tc_monitor/waf/datasource.ts\",\n\t\"./waf/query.ts\": \"./datasource/tc_monitor/waf/query.ts\",\n\t\"./waf/query_def.ts\": \"./datasource/tc_monitor/waf/query_def.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./datasource/tc_monitor sync recursive ^\\\\.\\\\/[a-zA-Z]\\\\w+\\\\/(datasource)|(query(_def)?)\\\\.ts$\";","import _ from 'lodash';\nimport { Datasources, SERVICES } from './index';\nimport { GetServiceFromNamespace, ParseMetricQuery } from '../common/constants';\nimport { serviceGroupBy } from '../common/utils';\nimport { LoadingState } from '@grafana/data';\n\nexport default interface DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n query: (options: any) => any;\n testDatasource: () => any;\n metricFindQuery: (query: any) => any;\n getRegions?: (service: string) => any;\n getMetrics: (service: string, region: string) => any;\n getInstances: (service: string, region: string, params: any) => any;\n getZones?: (service: string, region: string) => any;\n}\n\nexport class TCMonitorDatasource implements DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n _.forEach(Datasources, (_class: any, key) => {\n this[key] = new _class(this.instanceSettings, this.backendSrv, this.templateSrv);\n });\n }\n\n // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间\n getNamespaces() {\n const namespaces: any[] = [];\n _.forEach(SERVICES, (service) => {\n if (this.instanceSettings.jsonData[service.service] === true) {\n // namespaces.push(service.namespace);\n namespaces.push(service);\n }\n });\n return namespaces;\n }\n\n getCascaderNamespaces() {\n const validServices = SERVICES.filter((service) => this.instanceSettings.jsonData[service.service]);\n return serviceGroupBy(validServices);\n }\n\n getSelectedServices() {\n const namespaces = this.getNamespaces();\n return _.map(namespaces, ({ namespace }) => {\n return GetServiceFromNamespace(namespace);\n });\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数,示例如下\n * {\n * cacheTimeout: undefined,\n * dashboardId: 41,\n * interval: \"30s\",\n * intervalMs: 30000,\n * maxDataPoints: 554,\n * panelId: 2,\n * range: {\n * from: Moment,\n * to: Moment,\n * raw: {from: \"now-6h\", to: \"now\"}\n * },\n * rangeRaw: {from: \"now-6h\", to: \"now\"},\n * scopedVars: {__interval: {…}, __interval_ms: {…}}\n * targets: [\n * {\n * namespace: \"QCE/CVM\",\n * refId: \"A\",\n * service: \"cvm\",\n * showInstanceDetails: false,\n * cvm: {\n * dimensionObject: {InstanceId: {…}}\n * instance: \"\",\n * instanceAlias: \"InstanceId\",\n * metricName: \"AccOuttraffic\",\n * metricUnit: \"MB\",\n * period: 10,\n * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …},\n * region: \"ap-beijing\"\n * },\n * cdb: {},\n * },\n * ],\n * timezone: \"browser\"\n * }\n * @return 返回数据对象,示例如下\n * {\n * data: [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n * }\n */\n query(options: any) {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n const optionsTemp = _.cloneDeep(options);\n const targets = _.filter(optionsTemp.targets, (item) => item.service === service);\n optionsTemp.targets = targets;\n if (optionsTemp.targets.length > 0) {\n const promiseTemp = this[`${_.toUpper(service)}Datasource`].query(optionsTemp);\n if (promiseTemp) {\n promises.push(promiseTemp);\n }\n }\n });\n if (promises.length === 0) {\n return Promise.resolve({ data: [], state: LoadingState.Done });\n }\n return Promise.all(promises).then((results) => {\n return { data: _.flatten(results), state: LoadingState.Done };\n });\n }\n\n /**\n * 获取模板变量的选择项列表\n *\n * @param query 模板变量配置填写的 Query 参数字符串\n */\n metricFindQuery(query: string, options?: any) {\n const queries = ParseMetricQuery(query);\n const service = GetServiceFromNamespace(queries['namespace'] || '');\n\n if (_.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) {\n return Promise.resolve([]);\n }\n if (this[`${_.toUpper(service)}Datasource`].metricFindQuery) {\n const result = this[`${_.toUpper(service)}Datasource`].metricFindQuery(\n queries,\n _.get(options, 'variable.regex', undefined)\n );\n if (result) {\n return result;\n }\n }\n return Promise.resolve([]);\n }\n\n /**\n * 获取地域列表\n * @param service\n */\n getRegions(service) {\n if (this[`${_.toUpper(service)}Datasource`].getRegions) {\n return this[`${_.toUpper(service)}Datasource`].getRegions();\n }\n return [];\n }\n\n /**\n * 获取监控指标列表\n * @param service\n * @param region\n */\n getMetrics(service, region) {\n return this[`${_.toUpper(service)}Datasource`].getMetrics(region);\n }\n\n /**\n * 获取可用区列表\n * @param service\n * @param region\n */\n getZones(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getZones) {\n return this[`${_.toUpper(service)}Datasource`].getZones(region);\n }\n return [];\n }\n\n /**\n * 获取filter中dropdown列表\n * @param service\n * @param param\n */\n getFilterDropdown(service, param) {\n if (this[`${_.toUpper(service)}Datasource`].getFilterDropdown) {\n return this[`${_.toUpper(service)}Datasource`].getFilterDropdown(param);\n }\n return [];\n }\n\n /**\n * 获取实例列表\n * @param service\n * @param region\n * @param params\n */\n getInstances(service, region, params) {\n return this[`${_.toUpper(service)}Datasource`].getInstances(region, params);\n }\n\n /**\n * 获取监听器列表\n * @param service\n * @param region\n * @param params\n */\n getListeners(service, region, instance) {\n if (!this[`${_.toUpper(service)}Datasource`].getListeners) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`].getListeners(region, instance);\n }\n\n /**\n * 获取 私有网络列表\n * @param service\n */\n getVpcIds(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getVpcIds) {\n return this[`${_.toUpper(service)}Datasource`].getVpcIds(region);\n }\n }\n\n // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性\n testDatasource() {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n promises.push(this[`${_.toUpper(service)}Datasource`].testDatasource());\n });\n if (promises.length === 0) {\n return Promise.resolve(null);\n }\n\n return Promise.all(promises).then((results) => {\n let status = 'success';\n let message = 'DataSource Connection OK';\n\n const errorMsg = _.reduce(\n results,\n (acc, cur) => {\n if (cur.status === 'error') {\n if (acc === '') acc += 'Oops! Found an error in: ';\n acc += `${cur.service}: ${cur.message}; \\n`;\n }\n return acc;\n },\n ''\n );\n\n if (errorMsg) {\n status = 'error';\n message = errorMsg;\n }\n\n return {\n status,\n message,\n title: _.upperFirst(status),\n };\n });\n }\n\n getServiceFn(service, fnName) {\n return (...argu) => {\n if (!this[`${_.toUpper(service)}Datasource`][fnName]) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`][fnName](...argu);\n };\n }\n}\n","import _ from 'lodash';\nimport moment from 'moment';\nimport DatasourceInterface from '../MonitorDatasource';\nimport {\n GetRequestParams,\n GetServiceAPIInfo,\n ReplaceVariable,\n GetDimensions,\n ParseQueryResult,\n SliceLength,\n} from '../../common/constants';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { MetricQuery } from './types';\nimport { getNamesapceFromService, getTimeShiftInMs } from '../../common/utils';\nimport { Language, setLanguage } from '../../../locale';\n\nexport interface TemplateQueryIdType {\n instance: string;\n listener?: string;\n}\n\ninterface queryConfigType {\n dim_KeyInStorage: string;\n dim_KeyInTarget?: string;\n dim_KeyInIns?: string;\n dim_KeyInMap: string;\n}\n\nexport abstract class BaseDatasource implements DatasourceInterface {\n Namespace?: string;\n service: string;\n instanceListCache: any[] = [];\n extraMetricDims: string[] = [];\n url: string;\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n secretId: string;\n checkKeys: string[] = [];\n MetricReqConfig: {\n resultFilter?: Function;\n } = {};\n extrasAlias?: string[] = [];\n /*\n 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后)\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap\n 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim]\n */\n queryMonitorExtraConfg: Record = {};\n CandiateDimensions?: Record = {};\n\n InstanceReqConfig?: {\n service?: string;\n action: string;\n responseField: string;\n interceptor?: {\n request?: (params: unknown) => unknown;\n response?: (data: unknown) => unknown;\n };\n };\n InvalidDimensions?: Record;\n\n abstract InstanceAliasList: string[];\n abstract templateQueryIdMap: TemplateQueryIdType; // 必须为标识\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.url = instanceSettings.url;\n this.secretId = (instanceSettings.jsonData || {}).secretId || '';\n setLanguage(instanceSettings.jsonData.language || Language.Chinese);\n }\n\n get namespace() {\n // 需要注意的是this.service来自于原型上,在实例中导入时注入\n return this.Namespace || getNamesapceFromService(this.service);\n }\n\n // 获取额外要显示到图例里的内容\n getOtherAlias(instance: any, target: any): string {\n let result = '';\n const alias = instance._InstanceAliasValue;\n this.extrasAlias?.forEach((extra) => {\n const extraAlia = this.getVariable(target[extra]);\n if (extraAlia && alias.indexOf(extraAlia) === -1) {\n result += ` - ${extraAlia}`;\n }\n });\n return result;\n }\n\n /* 格式化模板变量上的显示 */\n getAliasValue(instance: Record, alias: string) {\n const result = instance[alias];\n return Array.isArray(result) ? result.join() : result;\n }\n\n formatVarDisplay(instance: Record, displayTpl: string | undefined, instanceAlias: string) {\n // 获取display=aaa${InstanceName}bbb${InstanceId}ccc\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.InstanceAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(instance, b);\n });\n }\n return this.getAliasValue(instance, instanceAlias);\n }\n /**\n * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象\n */\n async metricFindQuery(query: MetricQuery, regex?: string) {\n const { action, namespace, display, payload = {} } = query;\n let { region, instancealias = this.templateQueryIdMap.instance } = query;\n if (!action || !namespace) {\n return [];\n }\n // 支持payload里传入模板变量\n if (_.isObject(payload)) {\n _.forEach(payload, (value, key) => {\n payload[key] = _.isString(value) ? this.getVariable(value) : value;\n });\n }\n\n // 查询地域列表\n const regionQuery = action.match(/^DescribeRegions$/i);\n if (regionQuery) {\n return this.getRegions();\n }\n\n region = this.getVariable(region); // 将模板region转换为真实值\n\n // 查询实例列表\n if (region && action.match(/^DescribeInstances/i)) {\n const result = await this.getVariableInstances(region, payload);\n instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance;\n\n const res = result.flatMap((item) => {\n const insAlias = this.formatVarDisplay(item, display, instancealias);\n\n item._InstanceAliasValue = insAlias; // FIXME:\n\n if (!item[instancealias]) return [];\n return [\n {\n text: insAlias,\n value: item[this.templateQueryIdMap.instance],\n },\n ];\n });\n\n // 缓存全量实例列表\n await instanceStorage.setInstance(this.service, result);\n return res;\n }\n\n // 在instance实例的基础上查询其他数据\n let instance = this.getVariable(query['instance']);\n if (_.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况\n if (region && action && instance) {\n try {\n // instance = JSON.parse(instance);\n const instanceCache = await instanceStorage.getInstance(this.service);\n\n instance = _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === instance)) ?? {};\n // eslint-disable-next-line no-empty\n } catch (error) {}\n return this.fetchMetricData(action, region, instance, query);\n }\n\n return Promise.resolve([]);\n }\n // 获取指标数据\n async fetchMetricData(action: string, region: string, instance: any, query?: any) {\n return [];\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数\n * @return 返回数据数组,示例如下\n * [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n */\n async dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options) {\n for (let key of dimKeys) {\n let keyTmp = key;\n const invalidDim = this.InvalidDimensions || this.getInvalidDimensions(this, target[service]);\n if (invalidDim[key]) {\n // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName }\n keyTmp = invalidDim[key];\n ins[key] = ins[keyTmp];\n }\n\n let extraDimValue = this.getVariable(target[service][keyTmp]);\n if (this.queryMonitorExtraConfg[keyTmp]) {\n const {\n dim_KeyInStorage,\n dim_KeyInTarget = keyTmp,\n dim_KeyInMap,\n dim_KeyInIns,\n } = this.queryMonitorExtraConfg[keyTmp];\n let extraIns = ReplaceVariable(this.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true);\n let extraSourceMap: any = {};\n try {\n extraSourceMap = JSON.parse(extraIns); // 兼容json字符串的 形式\n } catch (error) {\n if (_.isArray(extraIns)) extraIns = extraIns[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选\n const extraStorage = await instanceStorage.getExtraStorage(this.service, dim_KeyInStorage);\n\n extraSourceMap =\n extraStorage?.find((item) => {\n if (_.isArray(item[dim_KeyInMap])) {\n return item[dim_KeyInMap][0] === extraIns;\n }\n return item[dim_KeyInMap] === extraIns;\n }) ?? {};\n }\n const isStringOrNumber = _.isString(extraSourceMap) || _.isNumber(extraSourceMap);\n // 增加ins实例之外的alias,填入到ins._InstanceAliasValue\n const insAlias = ins._InstanceAliasValue;\n const otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue;\n if (otherAlias && insAlias.indexOf(otherAlias) === -1) {\n ins._InstanceAliasValue += ` - ${otherAlias}`;\n }\n\n extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap?.[dim_KeyInIns || keyTmp];\n } else {\n ins._InstanceAliasValue += this.getOtherAlias(ins, target[service]);\n }\n\n if (\n getTimeShiftInMs(target[service].timeshift) > 0 &&\n ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1\n ) {\n ins._InstanceAliasValue += `_${target[service].timeshift}`;\n }\n // 设置instance,针对额外的维度,需要注意模板变量的值\n // ins[key] = ins[keyTmp] ?? extraDimValue;\n ins[key] = this.getDimensionsVal(ins, keyTmp, extraDimValue);\n // cynosdb产品接口返回维度和入参不一致\n if (this.checkKeys.length > 0) {\n this.checkKeys.forEach((Ekey) => {\n ins[Ekey] = ins[key];\n });\n }\n dimensionObject[key] = { Name: key, Value: ins[key] };\n }\n return dimensionObject;\n }\n getDimensionsVal(ins: Record, key: string, extraDimValue: string) {\n let dimVal = ins[key];\n if (_.isEmpty(dimVal) && this.CandiateDimensions[key]) {\n dimVal = ins[this.CandiateDimensions[key]];\n }\n return dimVal ?? extraDimValue;\n }\n query(options: any) {\n const service = this.service!; // 强制声明非空\n\n const queries = _.filter(options.targets, (item) => {\n // 过滤无效的查询 target\n return (\n item.hide !== true &&\n !!item.namespace &&\n !!item[service].metricName &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].region, false)) &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].instance, true))\n );\n })\n .reduce((prev, target) => {\n if (getTimeShiftInMs(target[service].timeshift) > 0) {\n const cloneTarget = _.cloneDeep(target);\n cloneTarget[service].timeshift = '';\n return [...prev, cloneTarget, target];\n }\n return [...prev, target];\n }, [])\n .map(async (target) => {\n // 实例 instances 可能为模板变量,需先获取实际值\n // 针对JSON字符串和id的形式,分开做处理\n let instances = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].instance, true);\n const instanceCache = await instanceStorage.getInstance(this.service);\n const timeshift = getTimeShiftInMs(target[service].timeshift);\n\n instances = [].concat(instances).map((inst) => {\n try {\n return JSON.parse(inst); // 兼容json字符串的 形式\n } catch (error) {\n // 如果没拿到缓存,取默认实例组\n if (!instanceCache) return this.getDefaultInsObj?.(inst);\n return _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === inst)) ?? {};\n }\n });\n const region = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].region, false);\n const insInReq: any = [];\n for (let ins of instances) {\n const dimensionObject = target[service].dimensionObject;\n // 处理dimensions的值\n const dimKeys = Object.keys(dimensionObject);\n const dimResult = await this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options);\n\n insInReq.push([{ Dimensions: GetDimensions(dimResult) }]);\n }\n const data = {\n StartTime: moment(options.range.from).subtract(timeshift).format(),\n EndTime: moment(options.range.to).subtract(timeshift).format(),\n Period: target[service].period || 300,\n Instances: _.flatMap(insInReq),\n Namespace: target.namespace,\n MetricName: target[service].metricName,\n };\n return this.getMonitorData(data, region, instances, target[service], options);\n });\n\n if (queries.length === 0) {\n return [];\n }\n\n return Promise.all(queries)\n .then((responses) => {\n return _.flatten(responses);\n })\n .catch((error) => {\n return [];\n });\n }\n getDefaultInsObj(ins: string) {\n return {} as any;\n }\n getInstanceReqConfig(selfIns: any) {\n return {} as any;\n }\n getInvalidDimensions(selfIns: any, target?: any) {\n return {} as any;\n }\n // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串\n getVariable(metric?: string) {\n const rs = this.templateSrv.replace((metric || '').trim());\n const valStr = rs.match(/\\{([\\w-,]+)\\}/);\n // 判断是否为多选\n if (valStr) {\n return valStr[1].split(',');\n }\n return rs;\n }\n\n /**\n * 获取 监控数据\n * @param params 获取监控数据的请求参数\n * @param region 地域信息\n * @param instances 实例列表,用于对返回结果的匹配解析\n */\n getMonitorData(params, region, instances, target, options) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { action: 'GetMonitorData', region }\n ).then((response) => {\n return ParseQueryResult(response, instances, timeshift);\n });\n }\n\n getRegions(): any {\n return this.doRequest(\n {\n url: this.url + '/cvm',\n },\n 'cvm',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getMetrics(region = 'ap-guangzhou'): Promise {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: this.namespace,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n ).then((response) => {\n const res = _.filter(\n _.filter(response.MetricSet || [], (item) => !(item.Namespace !== this.namespace || !item.MetricName))\n );\n const resFilterFn = this.MetricReqConfig.resultFilter;\n if (resFilterFn) {\n return res.map((item) => resFilterFn(item));\n }\n return res;\n });\n }\n\n getInstances(region, params = {}) {\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n params = { Offset: 0, Limit: 100, ...params };\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n // 处理异常,则不按正常的情况处理,直接抛出错误\n if (response?.Error) {\n console.error(response.Error);\n return response;\n }\n\n let result;\n // 先,field处理\n if (field) {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n }\n\n // 后,拦截器处理\n if (interceptor?.response) {\n result = interceptor.response(result);\n }\n return result;\n });\n }\n\n getVariableInstances(region, query = {}): Promise {\n let result: any[] = [];\n const params = { ...{ Offset: 0, Limit: 100 }, ...query };\n\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n const total =\n response.TotalCount ?? response.TotalCnt ?? response.TotalNumber ?? _.get(response, `Result.TotalCount`) ?? 0;\n if (result.length >= total) {\n return interceptor?.response ? interceptor.response(result) : result;\n } else {\n const param = SliceLength(total, params?.Limit || 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, { ...item, ...query }));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return interceptor?.response ? interceptor.response(result) : result;\n })\n .catch((error) => {\n return interceptor?.response ? interceptor.response(result) : result;\n });\n }\n });\n }\n\n // 检查某变量字段是否有值\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n\n testDatasource() {\n // const { service = this.service, action } = this.InstanceReqConfig;\n // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service);\n\n if (!this.isValidConfigField(this.secretId)) {\n return {\n service: this.service,\n status: 'error',\n message: 'The SecretId/SecretKey field is required.',\n };\n }\n\n return Promise.all([\n this.getRegions(),\n this.getMetrics(),\n // this.doRequest(\n // {\n // url: this.url + serviceInfo.path,\n // data: {\n // Offset: 0,\n // Limit: 1,\n // },\n // },\n // service,\n // { region: 'ap-guangzhou', action },\n // ),\n this.getInstances('ap-guangzhou', {\n Offset: 0,\n Limit: 1,\n }),\n ])\n .then((responses) => {\n const cvmErr = _.get(responses, '[0].Error', {});\n const monitorErr = _.get(responses, '[1].Error', {});\n const serviceErr = _.get(responses, '[2].Error', {});\n // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1;\n const cvmAuthFail = _.get(cvmErr, 'Code', '');\n const monitorAuthFail = _.get(monitorErr, 'Code', '');\n const serviceAuthFail = _.get(serviceErr, 'Code', '');\n if (cvmAuthFail || monitorAuthFail || serviceAuthFail) {\n const messages: any[] = [];\n if (cvmAuthFail) {\n messages.push(_.get(cvmErr, 'Code'));\n }\n if (monitorAuthFail) {\n messages.push(_.get(monitorErr, 'Code'));\n }\n if (serviceAuthFail) {\n messages.push(_.get(serviceErr, 'Code'));\n }\n const message = _.join(_.compact(_.uniq(messages)), '; ');\n return {\n service: this.service,\n status: 'error',\n message,\n };\n } else {\n return {\n namespace: this.namespace,\n service: this.service,\n status: 'success',\n message: `Successfully queried the ${this.service} service.`,\n title: 'Success',\n };\n }\n })\n .catch((error) => {\n let message = `${this.service} service:`;\n message += error.statusText ? error.statusText + '; ' : '';\n if (_.get(error, 'data.error.code', '')) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (_.get(error, 'data.error', '')) {\n message += error.data.error;\n } else if (_.get(error, 'data', '')) {\n message += error.data;\n } else {\n message += `Cannot connect to ${this.service} service.`;\n }\n return {\n service: this.service,\n status: 'error',\n message: message,\n };\n });\n }\n\n async doRequest(options, service, signObj: any = {}) {\n options = await GetRequestParams(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data.Response', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nfunction classFactory(detailConfig) {\n return class QueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, detailConfig);\n\n $scope.getDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n return $scope.datasource.getFilterDropdown(service, { field, region: $scope.region });\n };\n }\n };\n}\n\nconst template = `\n\n`;\nfunction queryDDOFactory(QueryCtrl) {\n return function queryDDO() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n // QueryCtrl._config = config;\n const newQueryIns = classFactory(config);\n coreModule.directive(name, queryDDOFactory(newQueryIns));\n};\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\n\nclass SPQueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, SPQueryCtrl._config);\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function queryDDO() {\n return {\n template: template,\n controller: SPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n SPQueryCtrl._config = config;\n coreModule.directive(name, queryDDO);\n};\n","import {\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = APIGATEWAYInstanceAliasList;\n InvalidDimensions = APIGATEWAYInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'apigateway',\n action: 'DescribeServicesStatus',\n responseField: 'ServiceSet',\n };\n\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getEnvironmentNameList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeServiceEnvironmentList' }\n );\n },\n {\n ServiceId: instanceId,\n },\n 'EnvironmentList'\n );\n const [rs] = res;\n return rs;\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeServiceEnvironmentList') {\n const rs = await this.getEnvironmentNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.environmentName];\n return {\n text: o[this.templateQueryIdMap.environmentName],\n value: o[this.templateQueryIdMap.environmentName],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.environmentList, rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.APIGATEWAYFilterFieldsDescriptor = APIGATEWAYFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n\n const result = rs.map((o) => {\n return {\n text: o.EnvironmentName,\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/APIGATEWAY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'apigatewayQuery';\n\nconst APIGATEWAYInvalidDemensions = {\n serviceId: 'ServiceId',\n environmentName: 'EnvironmentName',\n apiid: 'Apiid',\n apiId: 'Apiid',\n};\n\n// 需和文件名对应\nconst APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName'];\n\nconst templateQueryIdMap = {\n instance: 'ServiceId',\n environmentName: 'EnvironmentName',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n environmentList: 'EnvironmentList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n EnvironmentName: {\n dim_KeyInStorage: keyInStorage.environmentList,\n dim_KeyInTarget: 'EnvironmentName',\n dim_KeyInMap: templateQueryIdMap.environmentName,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst APIGATEWAYFilterFields = {\n Limit: 20,\n Offset: 0,\n ServiceId: [],\n ServiceName: [],\n NotUsagePlanId: [],\n Environment: [],\n IpVersion: [],\n};\n\nconst APIGATEWAYFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ServiceId',\n enDescriptor: 'ServiceId',\n cnDescriptor: '服务id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ServiceName',\n enDescriptor: 'ServiceName',\n cnDescriptor: '服务名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'NotUsagePlanId',\n enDescriptor: 'NotUsagePlanId',\n cnDescriptor: 'NotUsagePlanId',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Environment',\n enDescriptor: 'Environment',\n cnDescriptor: '环境名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'IpVersion',\n enDescriptor: 'IpVersion',\n cnDescriptor: 'IP版本',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198',\n namespace,\n fieldDescriptor: APIGATEWAYFilterFieldsDescriptor,\n};\n\nconst APIGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ServiceId',\n EnvironmentName: '',\n queries: APIGATEWAYFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nexport default APIGATEWAY_STATE;\nexport {\n APIGATEWAYFilterFieldsDescriptor,\n templateQueryIdMap,\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as APIGATEWAYGetInstanceQueryParams,\n};\n","import {\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n isValidMetric,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMINTRALBInstanceAliasList;\n InvalidDimensions = BMINTRALBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'internal',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_INTRA_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmIntraLbQuery';\n\nconst BMINTRALBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n vpcId: 'VpcId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMINTRALBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst BMINTRALBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: BMINTRALBFilterFieldsDescriptor,\n};\n\nconst BMINTRALB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: BMINTRALBFilterFields,\n};\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default BMINTRALB_STATE;\nexport {\n BMINTRALBFilterFieldsDescriptor,\n templateQueryIdMap,\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMINTRALBGetInstanceQueryParams,\n};\n","import { BMLBInstanceAliasList, CPMInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMLBInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'open',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmLbQuery';\n\nconst CPMInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n BMLBInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import {\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMPCXInstanceAliasList;\n InvalidDimensions = BMPCXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmvpc',\n action: 'DescribeVpcPeerConnections',\n responseField: 'VpcPeerConnectionSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_PCX';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmPcxQuery';\n\nconst BMPCXInvalidDemensions = {\n peeringConnectionId: 'VpcPeerConnectionId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpcPeerConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMPCXFilterFields = {\n Limit: 20,\n Offset: 0,\n VpcPeerConnectionIds: [],\n};\n\nconst BMPCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'VpcPeerConnectionIds',\n enDescriptor: 'VpcPeerConnectionIds',\n cnDescriptor: '对等连接实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903',\n namespace,\n fieldDescriptor: BMPCXFilterFieldsDescriptor,\n};\n\nconst BMPCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpcPeerConnectionId',\n queries: BMPCXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['peeringConnectionId'];\n });\n return metricTmp;\n}\nexport default BMPCX_STATE;\nexport {\n BMPCXFilterFieldsDescriptor,\n templateQueryIdMap,\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMPCXGetInstanceQueryParams,\n};\n","import { BWPInstanceAliasList, BWPInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class BWPDatasource extends BaseDatasource {\n Namespace = 'QCE/BWP';\n InstanceAliasList = BWPInstanceAliasList;\n InvalidDimensions = BWPInvalidDemensions;\n templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeBandwidthPackages',\n responseField: 'BandwidthPackageSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { BWPFilterFieldsDescriptor } from './query_def';\n\nexport class BWPQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.BWPFilterFieldsDescriptor = BWPFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function bwpQuery() {\n return {\n template: template,\n controller: BWPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('bwpQuery', bwpQuery);\n","import _ from 'lodash';\nconst networkTypes = [\n { text: 'BGP', value: 'BGP' },\n { text: 'SINGLEISP', value: 'SINGLEISP' },\n { text: 'ANYCAST', value: 'ANYCAST' },\n];\n\nconst chargeTypes = [\n { text: 'top5计费', value: 'TOP5_POSTPAID_BY_MONTH' },\n { text: '月95计费', value: 'PERCENT95_POSTPAID_BY_MONTH' },\n];\nconst BWPFilterFields = {\n 'bandwidth-package_id': [],\n 'bandwidth-package-name': [],\n 'network-type': [],\n 'charge-type': [],\n};\n\nconst BWPFilterFieldsDescriptor = [\n {\n key: 'bandwidth-package_id',\n enDescriptor: 'BandwidthPackage Id',\n cnDescriptor: '带宽包ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'bandwidth-package-name',\n enDescriptor: 'BandwidthPackage Name',\n cnDescriptor: '带宽包名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-type',\n enDescriptor: 'network type',\n cnDescriptor: '带宽包类型',\n link: '',\n type: 'select',\n list: networkTypes,\n },\n {\n key: 'charge-type',\n enDescriptor: 'charge type',\n cnDescriptor: '带宽包计费类型',\n link: '',\n type: 'select',\n list: chargeTypes,\n },\n];\n\nconst BWP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BandwidthPackageId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n BandwidthPackageIds: [''],\n Filters: { ...BWPFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.BandwidthPackageIds)) {\n const BandwidthPackageIds = _.compact(queries.BandwidthPackageIds);\n if (_.uniq(BandwidthPackageIds).length > 0) {\n params.BandwidthPackageIds = _.uniq(BandwidthPackageIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName'];\n\nconst templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n};\n\nconst BWPInvalidDemensions = {\n bandwidthPackageId: 'BandwidthPackageId',\n};\nexport default BWP_STATE;\nexport {\n BWPFilterFieldsDescriptor,\n templateQueryIdMap,\n BWPInstanceAliasList,\n BWPInvalidDemensions,\n GetInstanceQueryParams as BWPGetInstanceQueryParams,\n};\n","import { CBSInstanceAliasList, CBSInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CBSInstanceAliasList;\n InvalidDimensions = CBSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cbs',\n action: 'DescribeDisks',\n responseField: 'DiskSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.filter(rawSet, isValidMetric);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/BLOCK_STORAGE';\nconst queryEditorName = 'cbsQuery';\n\nconst CBSInvalidDemensions = {\n diskId: 'DiskId',\n InstanceId: 'InstanceId',\n diskname: 'DiskName',\n unInstanceId: 'InstanceId',\n};\n\nconst CBSInstanceAliasList = ['DiskId', 'DiskName'];\n\nconst templateQueryIdMap = {\n instance: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CBSFilterFields = {\n Limit: 20,\n Offset: 0,\n DiskIds: [],\n OrderField: [],\n Order: [],\n ReturnBindAutoSnapshotPolicy: false,\n};\n\nconst CBSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DiskIds',\n enDescriptor: 'DiskIds',\n cnDescriptor: '云硬盘ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Order',\n enDescriptor: 'Order',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'select',\n list: [\n { text: '升序排列', value: 'ASC' },\n { text: '降序排列', value: 'DESC' },\n ],\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderField',\n cnDescriptor: '排序的依据字段',\n link: '',\n type: 'select',\n list: [\n { text: '云盘的创建时间排序', value: 'CREATE_TIME' },\n { text: '云盘的到期时间排序', value: 'DEADLINE' },\n ],\n },\n {\n key: 'ReturnBindAutoSnapshotPolicy',\n enDescriptor: 'ReturnBindAutoSnapshotPolicy',\n cnDescriptor: '否需要返回云盘绑定的定期快照策略ID',\n link: '',\n type: 'switch',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315',\n namespace,\n fieldDescriptor: CBSFilterFieldsDescriptor,\n};\n\nconst CBS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DiskId',\n queries: CBSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n return dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1;\n}\nexport default CBS_STATE;\nexport {\n CBSFilterFieldsDescriptor,\n templateQueryIdMap,\n CBSInstanceAliasList,\n CBSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n GetInstanceQueryParams as CBSGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n CDBInstanceAliasList,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = 'QCE/CDB';\n InstanceAliasList = CDBInstanceAliasList;\n InvalidDimensions = CDBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cdb',\n action: 'DescribeDBInstances',\n responseField: 'Items',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n /**\n * 获取 可用区\n * @param region 地域信息\n */\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.ZoneId, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n InstanceType: 1,\n };\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDBFieldsDescriptor } from './query_def';\n\nexport class CDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDBFieldsDescriptor = CDBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'ZoneIds':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cdb', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function cdbQuery() {\n return {\n template: template,\n controller: CDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdbQuery', cdbQuery);\n","import _ from 'lodash';\n\nconst InstanceTypes = [\n { text: '主实例', value: 1 },\n { text: '备灾实例', value: 2 },\n { text: '只读实例', value: 3 },\n];\n\nconst Status = [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '隔离中', value: 4 },\n { text: '已隔离', value: 5 },\n];\n\nconst PayTypes = [\n { text: '包年包月', value: 0 },\n { text: '小时计费', value: 1 },\n];\n\nconst TaskStatus = [\n { text: '没有任务', value: 0 },\n { text: '升级中', value: 1 },\n { text: '数据导入中', value: 2 },\n { text: '开放Slave中', value: 3 },\n { text: '外网访问开通中', value: 4 },\n { text: '批量操作执行中', value: 5 },\n { text: '回档中', value: 6 },\n { text: '外网访问关闭中', value: 7 },\n { text: '密码修改中', value: 8 },\n { text: '实例名修改中', value: 9 },\n { text: '重启中', value: 10 },\n { text: '自建迁移中', value: 12 },\n { text: '删除库表中', value: 13 },\n { text: '灾备实例创建同步中', value: 14 },\n { text: '升级待切换', value: 15 },\n { text: '升级切换中', value: 16 },\n { text: '升级切换完成', value: 17 },\n];\n\nconst EngineVersions = [\n { text: '5.1', value: '5.1' },\n { text: '5.5', value: '5.5' },\n { text: '5.6', value: '5.6' },\n { text: '5.7', value: '5.7' },\n];\n\nconst OrderBy = [\n { text: 'InstanceId', value: 'InstanceId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'DeadlineTime', value: 'DeadlineTime' },\n];\n\nconst OrderDirection = [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n];\n\nconst InitFlag = [\n { text: '未初始化', value: 0 },\n { text: '初始化', value: 1 },\n];\n\nconst CdbErrors = [\n { text: '未锁定', value: 0 },\n { text: '锁定', value: 1 },\n];\n\nconst CDBFields = {\n ProjectId: '',\n InstanceTypes: {},\n Vips: [],\n Status: {},\n Offset: 0,\n Limit: 20,\n SecurityGroupId: '',\n PayTypes: {},\n InstanceNames: [],\n TaskStatus: {},\n EngineVersions: {},\n VpcIds: [],\n ZoneIds: [],\n SubnetIds: [],\n CdbErrors: {},\n OrderBy: {},\n OrderDirection: {},\n InstanceIds: [],\n InitFlag: {},\n};\n\nconst CDBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ZoneIds',\n enDescriptor: 'Zone ID',\n cnDescriptor: '可用区的ID',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'InstanceTypes',\n enDescriptor: 'Instance Type',\n cnDescriptor: '实例类型',\n link: '',\n multiple: true,\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'EngineVersions',\n enDescriptor: 'Engine Version',\n cnDescriptor: '实例数据库引擎版本',\n link: '',\n multiple: true,\n type: 'select',\n list: EngineVersions,\n },\n {\n key: 'TaskStatus',\n enDescriptor: 'Task Status',\n cnDescriptor: '实例任务',\n link: '',\n multiple: true,\n type: 'select',\n list: TaskStatus,\n },\n {\n key: 'InitFlag',\n enDescriptor: 'Init Flag',\n cnDescriptor: '实例初始化状态',\n link: '',\n multiple: true,\n type: 'select',\n list: InitFlag,\n },\n {\n key: 'PayTypes',\n enDescriptor: 'Pay Type',\n cnDescriptor: '付费类型',\n link: '',\n multiple: true,\n type: 'select',\n list: PayTypes,\n },\n {\n key: 'CdbErrors',\n enDescriptor: 'CDB Errors',\n cnDescriptor: '实例锁定标记',\n link: '',\n multiple: true,\n type: 'select',\n list: CdbErrors,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderDirection',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderDirection,\n },\n {\n key: 'Vips',\n enDescriptor: 'Vip',\n cnDescriptor: '实例内网IP地址',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'VpcIds',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '私有网络ID',\n link: 'https://cloud.tencent.com/document/api/215/15778',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: 'https://cloud.tencent.com/document/api/215/15784',\n type: 'inputmulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/product/378/4400',\n type: 'input',\n },\n {\n key: 'SecurityGroupId',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: 'https://cloud.tencent.com/document/api/236/15854',\n type: 'input',\n },\n];\n\nconst CDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...CDBFields },\n};\n\nconst CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return (\n dimension.length === 2 &&\n ((_.indexOf(dimension, 'instanceid') !== -1 && _.indexOf(dimension, 'insttype') !== -1) ||\n (_.indexOf(dimension, 'InstanceId') !== -1 && _.indexOf(dimension, 'InstanceType') !== -1))\n );\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((i) => CDBInvalidDemensions[i] || i);\n });\n return metricTmp;\n}\nconst CDBInvalidDemensions = {\n instanceid: 'InstanceId',\n insttype: 'InstanceType',\n region: 'Region',\n};\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CDB_STATE;\n\nexport {\n CDBFieldsDescriptor,\n CDBInstanceAliasList,\n templateQueryIdMap,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n GetInstanceQueryParams as CDBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { CDNInstanceAliasList, CDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = 'QCE/CDN';\n InstanceAliasList = CDNInstanceAliasList;\n InvalidDimensions = CDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNFilterFieldsDescriptor } from './query_def';\n\nexport class CDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNFilterFieldsDescriptor = CDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function cdnQuery() {\n return {\n template: template,\n controller: CDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdnQuery', cdnQuery);\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n // console.log('item', item, queries);\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst CDNInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst CDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default CDN_STATE;\nexport {\n CDNFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNInstanceAliasList,\n CDNInvalidDemensions,\n GetInstanceQueryParams as CDNGetInstanceQueryParams,\n};\n","import { CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CDNPROVINCEInstanceAliasList;\n InvalidDimensions = CDNPROVINCEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n extrasAlias = ['isp', 'district'];\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n async getConsumerList(params: any) {\n const { region, field } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'cdn');\n\n // 从分页数据,获取全量数据\n const rs = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Name: field,\n },\n },\n serviceInfo.service,\n { action: 'DescribeMapInfo' }\n );\n return (rs.MapInfoList || []).map((o) => {\n return {\n text: o.Name,\n value: o.Name,\n };\n });\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeMapInfo') {\n const { name: field } = query;\n const rs = await this.getConsumerList({ region, field });\n return rs;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNPROVINCEFilterFieldsDescriptor, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Isp',\n field: 'isp',\n },\n {\n label: 'Province',\n field: 'district',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNPROVINCEFilterFieldsDescriptor = CDNPROVINCEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, field });\n return rs;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CDN_LOG_DATA';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cdnProvinceQuery';\n\nconst CDNPROVINCEInvalidDemensions = {\n domain: 'Domain',\n // isp: 'Isp',\n projectid: 'ProjectId',\n province: 'district',\n appid: 'AppId',\n};\n\n// 需和文件名对应\nconst CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CDNPROVINCEFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNPROVINCEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n // Isp Province分别在两个接口,单独保存在state\n isp: '',\n district: '',\n queries: CDNPROVINCEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default CDNPROVINCE_STATE;\nexport {\n CDNPROVINCEFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNPROVINCEInstanceAliasList,\n CDNPROVINCEInvalidDemensions,\n namespace,\n queryEditorName,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CDNPROVINCEGetInstanceQueryParams,\n};\n","import {\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CEIPSUMMARYInstanceAliasList;\n InvalidDimensions = CEIPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['AnycastEIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n // response: (data: unknown[]) =>[\n // {\n // AddressId: 'AddressId',\n // AddressIp: '111.22.3.4'\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CEIP_SUMMARY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ceipSummaryQuery';\n\nconst CEIPInvalidDemensions = {\n vip: 'AddressIp',\n eip: 'AddressIp',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CEIPFilterFields = {\n Limit: 20,\n Offset: 0,\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status': {},\n 'is-arrears': {},\n 'address-isp': {},\n 'instance-id': [],\n 'private-ip-address': [],\n 'network-interface-id': [],\n};\n\nconst CEIPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'address-id',\n enDescriptor: 'address-id',\n cnDescriptor: ' EIP 的唯一 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'address-name',\n cnDescriptor: 'EIP 名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'address-ip',\n cnDescriptor: 'EIP 的 IP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'address-status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'CREATING', value: 'CREATING' },\n { text: 'BINDING', value: 'BINDING' },\n { text: 'BIND', value: 'BIND' },\n { text: 'UNBINDING', value: 'UNBINDING' },\n { text: 'UNBIND', value: 'UNBIND' },\n { text: 'OFFLINING', value: 'OFFLINING' },\n { text: 'BIND_ENI', value: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: 'EIP 绑定的实例 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'private-ip-address',\n cnDescriptor: 'EIP 绑定的内网 IP ',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'network-interface-id',\n cnDescriptor: ' EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'is-arrears',\n cnDescriptor: 'EIP 是否欠费',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '欠费状态', value: 'TRUE' },\n { text: '费用状态正常', value: 'FALSE' },\n ],\n },\n {\n key: 'address-isp',\n enDescriptor: 'address-isp',\n cnDescriptor: '运营商类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'BGP', value: 'BGP' },\n { text: 'CMCC', value: 'CMCC' },\n { text: 'CUCC', value: 'CUCC' },\n { text: 'CTCC', value: 'CTCC' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702',\n namespace,\n fieldDescriptor: CEIPFilterFieldsDescriptor,\n};\n\nconst CEIP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n queries: CEIPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['eip'];\n });\n return metricTmp;\n}\nexport default CEIP_STATE;\nexport {\n CEIPFilterFieldsDescriptor,\n templateQueryIdMap,\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n queryEditorName,\n modifyDimensons,\n queryEditorConfig,\n GetInstanceQueryParams as CEIPSUMMARYGetInstanceQueryParams,\n};\n","import { CESInstanceAliasList, CESInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CESInstanceAliasList;\n InvalidDimensions = CESInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'es',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cesQuery';\n\nconst CESInvalidDemensions = {\n uInstanceId: 'InstanceId',\n};\n\nconst CESInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CESFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n InstanceNames: [],\n OrderByKey: {},\n OrderByType: {},\n IpList: [],\n};\n\nconst CESFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '集群实例ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'InstanceNames',\n cnDescriptor: '集群实例名称列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderByKey',\n enDescriptor: 'OrderByKey',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 1 },\n { text: '实例名称', value: 2 },\n { text: '可用区', value: 3 },\n { text: '创建时间', value: 4 },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n ],\n },\n {\n key: 'IpList',\n enDescriptor: 'IpList',\n cnDescriptor: '私有网络vip列表',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631',\n namespace,\n fieldDescriptor: CESFilterFieldsDescriptor,\n};\n\nconst CES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CESFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default CES_STATE;\nexport {\n CESFilterFieldsDescriptor,\n templateQueryIdMap,\n CESInstanceAliasList,\n CESInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { CFSInstanceAliasList, CFSInvalidDemensions, regionSupported } from './query_def';\nimport { t } from '../../../locale';\nexport default class CFSDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = {\n instance: 'FileSystemId',\n };\n extrasAlias = ['version'];\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/CFS';\n this.InstanceAliasList = CFSInstanceAliasList;\n this.InvalidDimensions = CFSInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'cfs',\n action: 'DescribeCfsFileSystems',\n responseField: 'FileSystems',\n };\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CFSQueryDescriptor } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CFSQueryDescriptor = CFSQueryDescriptor;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n const { instance, region } = target;\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n if (!instance || !region) return [];\n\n return fetcher(region, { FunctionName: JSON.parse(instance).FunctionName }).then((res) => {\n // console.log(res, 'res');\n\n return res;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\ncoreModule.directive('cfsQuery', scfQuery);\n","import _ from 'lodash';\n\nexport const CFSQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'FileSystemId',\n enDescriptor: 'File System Id',\n cnDescriptor: '文件系统 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络(VPC) ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网 ID',\n link: '',\n type: 'input',\n },\n];\n\nconst CFS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FileSystemId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n FileSystemId: '',\n VpcId: '',\n SubnetId: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CFSInstanceAliasList = ['FileSystemId', 'FsName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CFSInvalidDemensions = {\n // functionName: 'FunctionName',\n // namespace: 'Namespace'\n};\n\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CFS_STATE;\nexport {\n CFSInstanceAliasList,\n CFSInvalidDemensions,\n templateQueryIdMap,\n regionSupported,\n GetInstanceQueryParams as CFSGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _, { flattenDeep } from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\n\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CKFKADatasource extends BaseDatasource {\n Namespace = 'QCE/CKAFKA';\n InstanceAliasList = CKAFKAInstanceAliasList;\n TopicAliasList = CKAFKATopicAliasList;\n InvalidDimensions = CKAFKAInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ckafka',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n extraMetricDims = ['topicId'];\n // extrasAlias = ['topicId', 'consumerGroup', 'partition'];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n consumerGroupCache = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getConsumerGroups(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'ckafka');\n let { InstanceId, groupname = '', topicid = '' } = params;\n groupname = this.getVariable(groupname); // 将模板转换为真实值\n topicid = this.getVariable(topicid); // 将模板转换为真实值\n try {\n groupname = JSON.parse(groupname)[templateQueryIdMap.groupName];\n topicid = JSON.parse(topicid)[templateQueryIdMap.topicId];\n } catch (e) {}\n let consumerGoup = this.consumerGroupCache[InstanceId];\n if (!consumerGoup) {\n // 从分页数据,获取全量数据\n consumerGoup = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeConsumerGroup' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList']\n );\n // topick数据从DescribeTopic\n const topicList = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeTopic' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['TopicList']\n );\n consumerGoup[1] = flattenDeep(topicList);\n console.log({ consumerGoup, topicList });\n this.consumerGroupCache[InstanceId] = consumerGoup;\n }\n\n let [GroupList, TopicList, PartitionList, GroupDetailList] = consumerGoup;\n // 无重复数组\n TopicList = _.uniqBy(TopicList, (item) => (item as any).TopicId);\n GroupList = _.uniqBy(GroupList, (item) => (item as any).GroupName);\n PartitionList = _.uniqBy(PartitionList, (item) => (item as any).PartitionId);\n GroupDetailList = _.uniqBy(GroupDetailList, (item) => (item as any).ConsumerGroupName);\n // 如果传入消费者信息,consumergroupname,获取该用户的订阅信息列表\n const SubscribedInfos = GroupDetailList.find((d) => d.ConsumerGroupName === groupname)?.SubscribedInfo || [];\n // 这里为了兼容PartitonList格式,最后转化为数组对象的方式\n const partitions =\n SubscribedInfos.find((sub) => sub.TopicId === topicid)?.Partition?.map((p) => ({\n [templateQueryIdMap.partition]: p,\n })) || [];\n return {\n GroupList,\n TopicList:\n SubscribedInfos.length > 0\n ? SubscribedInfos.map(({ TopicId, TopicName }) => ({ TopicId, TopicName }))\n : TopicList,\n PartitionList: partitions.length > 0 ? partitions : PartitionList,\n };\n }\n formatTopicVarDisplay(topic: Record, displayTpl: string | undefined, topicAlias: string) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.TopicAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(topic, b);\n });\n }\n return this.getAliasValue(topic, topicAlias);\n }\n // 查询指标下的数据\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n let { topicalias, groupname, topicid } = query;\n const result = await this.getConsumerGroups(region, {\n InstanceId: instance.InstanceId,\n groupname,\n topicid,\n });\n let { display } = query;\n const { TopicList, GroupList, PartitionList } = result;\n topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId;\n\n const rs = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: group[templateQueryIdMap.groupName],\n };\n }),\n TopicList: TopicList.map((topic) => {\n const topicAlias = this.formatTopicVarDisplay(topic, display, topicalias);\n topic._InstanceAliasValue = topicAlias || topic[templateQueryIdMap.topicId];\n return {\n text: topicAlias || topic[templateQueryIdMap.topicId],\n value: topic[templateQueryIdMap.topicId], // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n TopicName: topic.TopicName,\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: par[templateQueryIdMap.partition],\n value: par[templateQueryIdMap.partition],\n };\n }),\n };\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList);\n // console.log({ res1, res2, res3 });\n // console.log({rs});\n // 根据action返回指定的维度数据列表\n switch (action) {\n case 'DescribeTopicList':\n return rs.TopicList;\n case 'DescribeGroup':\n return rs.GroupList;\n case 'DescribePartion':\n return rs.PartitionList;\n default:\n return [];\n }\n }\n\n // async getOtherAlias(datapoints) {\n // let dimension;\n // for(let j = 0; j < datapoints.Dimensions.length; j++){\n // if(datapoints.Dimensions[j] !== 'InstanceName'){\n // dimension.push(datapoints.Dimensions[j])\n // }\n // }\n // console.log(dimension);\n\n // return dimension\n // }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CKAFKAQueryDescriptor, templateQueryIdMap } from './query_def';\nimport { isTargetEqual } from '../../common/utils';\n\nconst ExtraFields = [\n {\n label: 'ConsumerGroup',\n field: 'consumerGroup',\n },\n {\n label: 'TopicId',\n field: 'topicId',\n },\n {\n label: 'Partition',\n field: 'partition',\n },\n];\n\nexport class CKAFKAQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CKAFKAQueryDescriptor = CKAFKAQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'LoadBalancerId')) return;\n $scope.target.consumerGroup = '';\n $scope.target.topicId = '';\n $scope.target.topicName = '';\n $scope.target.partition = '';\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance);\n if (Array.isArray(instance)) instance = instance[0];\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).InstanceId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const InstanceId = $scope.getInstanceId();\n const fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups');\n const region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region);\n const res = await fetcher(region, { InstanceId, groupname: target.consumerGroup, topicid: target.topicId });\n\n const { TopicList, GroupList, PartitionList } = res;\n const data = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: JSON.stringify(group),\n };\n }),\n TopicList: TopicList.map((topic) => {\n topic._InstanceAliasValue = topic[templateQueryIdMap.topicId];\n return {\n text: topic[templateQueryIdMap.topicId],\n value: JSON.stringify(topic), // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: String(par[templateQueryIdMap.partition]),\n value: JSON.stringify(par),\n };\n }),\n };\n\n switch (field) {\n case 'consumerGroup':\n return data.GroupList;\n case 'topicId':\n return data.TopicList;\n case 'partition':\n return data.PartitionList;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CKAFKAQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n instance: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('ckafkaQuery', scfQuery);\n","import _ from 'lodash';\n\nexport const CKAFKAQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstanceId',\n cnDescriptor: '按照实例ID过滤',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '按照实例名称过滤,支持模糊查询',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '匹配标签key值',\n link: '',\n type: 'input',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例的状态,不填默认返回全部',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '删除中', value: 2 },\n ],\n },\n];\n\nconst CKAFKA_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n topicId: '',\n topicName: '',\n consumerGroup: '',\n partition: '',\n queries: {\n Offset: 0,\n Limit: 10,\n Status: [],\n InstanceId: '',\n SearchWord: '',\n TagKey: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName'];\nconst CKAFKATopicAliasList = ['TopicId', 'TopicName'];\n// 保存在模板变量value中的key\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n topicId: 'TopicId',\n groupName: 'GroupName',\n partition: 'PartitionId',\n};\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CKAFKAInvalidDemensions = new Proxy(\n {\n topicId: 'TopicId',\n topicName: 'TopicName',\n consumerGroup: 'GroupName',\n partition: 'PartitionId',\n },\n {\n get: (obj, prop) => {\n if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId';\n return obj[prop];\n },\n }\n);\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n TopicList: 'TopicList',\n GroupList: 'GroupList',\n PartitionList: 'PartitionList',\n};\n\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicId: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n // topicName和topicId是同一个storage中的source,所以根据topicId帅选\n TopicName: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n GroupName: {\n dim_KeyInStorage: keyInStorage.GroupList,\n dim_KeyInTarget: 'consumerGroup',\n dim_KeyInMap: templateQueryIdMap.groupName,\n },\n PartitionId: {\n dim_KeyInStorage: keyInStorage.PartitionList,\n dim_KeyInTarget: 'partition',\n dim_KeyInMap: templateQueryIdMap.partition,\n },\n};\nexport default CKAFKA_STATE;\nexport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as CKAFKAGetInstanceQueryParams,\n};\n","import {\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n keyInStorage,\n CANDIATEDIMENSIONS,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n // Namespace = namespace;\n InstanceAliasList = InstanceAliasList;\n ListenerAliasList = LOADBALANCEListenerAliasList;\n ServerAliasList = LOADBALANCEServerAliasList;\n CandiateDimensions = CANDIATEDIMENSIONS;\n // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n // InstanceReqConfig = {\n // service: 'clb',\n // action: 'DescribeLoadBalancers',\n // responseField: 'LoadBalancerSet',\n // };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getInvalidDimensions(selfIns: any, tagret: any) {\n if (selfIns.service === 'lbPrivate' || (selfIns.service === 'lbPublic' && tagret.servers))\n return { ...LOADBALANCEVALIDDIMENSIONS, vpcId: 'NumericalVpcId' };\n return LOADBALANCEVALIDDIMENSIONS;\n }\n getInstanceReqConfig(selfIns: any) {\n const res: any = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'INTERNAL' }),\n };\n }\n if (selfIns.service === 'lbPublic') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'OPEN' }),\n };\n }\n return res;\n }\n async getListenerList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeListeners' }\n );\n },\n {\n LoadBalancerId: instanceId,\n },\n 'Listeners'\n );\n const [rs] = res;\n return rs;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async getServerList(params: any) {\n const { region, instanceId, listenerId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n const res = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { LoadBalancerId: instanceId, ListenerIds: [listenerId] },\n },\n serviceInfo.service,\n { region, action: 'DescribeTargets' }\n );\n const { Listeners } = res;\n const serversList = _.reduce(\n Listeners,\n (prev, item) => {\n const { Rules, Targets } = item;\n if (!_.isEmpty(Rules)) {\n return _.concat(prev, _.flatten(_.map(Rules, (elem) => (_.isEmpty(elem.Targets) ? [] : elem.Targets))));\n }\n if (!_.isEmpty(Targets)) {\n return _.concat(prev, Targets);\n }\n return prev;\n },\n []\n );\n return serversList;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeListeners') {\n const rs = await this.getListenerList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n let { listeneralias } = query;\n listeneralias = this.ListenerAliasList.includes(listeneralias) ? listeneralias : this.templateQueryIdMap.listener;\n const result = rs.flatMap((o) => {\n const listenAlias = this.formatVariableDisplay(o, display, listeneralias, this.ListenerAliasList);\n const lisId = o[this.templateQueryIdMap.listener];\n o._InstanceAliasValue = listenAlias || lisId;\n // if (!o[listeneralias]) return [];\n return {\n text: listenAlias || lisId,\n value: lisId,\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.listener, rs);\n return result;\n }\n if (action === 'DescribeServer' || action === 'DescribeServerPort') {\n const { listenerid, serverprivateip, serveralias } = query;\n const serverPrivateIp = this.getVariable(serverprivateip);\n const serversList = await this.getServerList({\n region,\n instanceId: instance[this.templateQueryIdMap.instance],\n listenerId: this.getVariable(listenerid),\n });\n const serverAlias = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers;\n const result = _.chain(serversList)\n .filter((item) => {\n if (action === 'DescribeServer') {\n return true;\n }\n return serverPrivateIp === _.get(item, 'PrivateIpAddresses.0');\n })\n .map((item) => {\n const alias = this.formatVariableDisplay(item, display, serverAlias, this.ServerAliasList);\n const id = item[this.templateQueryIdMap.servers][0];\n item._InstanceAliasValue = alias || id;\n return action === 'DescribeServer'\n ? {\n text: alias || id,\n value: id,\n }\n : {\n text: `${_.get(item, 'Port')}`,\n value: _.get(item, 'Port'),\n };\n })\n .value();\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.servers, serversList);\n return action === 'DescribeServer' ? result : _.uniqBy(result, 'text');\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { get, chain } from 'lodash';\nimport { LOADBALANCEFieldsDescriptor, templateQueryIdMap, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\nimport { isTargetEqual } from '../../common/utils';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LOADBALANCEFieldsDescriptor = LOADBALANCEFieldsDescriptor;\n $scope.serversList = [];\n };\n $scope.onFieldChange = (field) => {\n $scope.onRefresh();\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'InstanceId')) return;\n $scope.target.listener = '';\n $scope.target.servers = '';\n $scope.target.serverPort = '';\n };\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n $scope.getExtraDropdown = async (target) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getListenerList')({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.listener];\n return {\n text: o[templateQueryIdMap.listener],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n $scope.getServersDropdown = async (target) => {\n const { instance, listener } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const listenerId = $scope.getVariableId(listener, 'listener');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const serversList = await $scope.datasource.getServiceFn(\n service,\n 'getServerList'\n )({ region, instanceId, listenerId });\n $scope.serversList = serversList;\n const res = chain(serversList)\n .map((item) => {\n item._InstanceAliasValue = get(item, 'PrivateIpAddresses.0');\n return {\n text: get(item, 'PrivateIpAddresses.0'),\n value: JSON.stringify(item),\n };\n })\n .uniqBy('text')\n .value();\n return res;\n };\n $scope.getServerPortDropdown = async (target) => {\n const { servers } = $scope.target;\n let serverPortList: any[] = [];\n try {\n const serversSource = JSON.parse(servers);\n serverPortList = chain($scope.serversList)\n .filter((item) => get(serversSource, 'PrivateIpAddresses.0') === get(item, 'PrivateIpAddresses.0'))\n .map((item) => {\n item._InstanceAliasValue = get(item, 'Port');\n return {\n text: `${get(item, 'Port')}`,\n value: JSON.stringify(item),\n };\n })\n .value();\n } catch (error) {}\n return serverPortList;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n\n\n\n\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n namespace: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('clbQuery', sQuery);\n","import _ from 'lodash';\n\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/LOADBALANCE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'loadBalanceQuery';\n\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst LOADBALANCEFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: LOADBALANCEFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst LOADBALANCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n servers: '',\n serverPort: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\n// function GetInstanceQueryParams(queries: any = {}) {\n// const params: any = {};\n// if (!_.isEmpty(queries)) {\n// params.Limit = _.get(queries, 'Limit', 20) || 20;\n// params.Offset = _.get(queries, 'Offset', 0) || 0;\n// queries = _.omit(queries, ['Offset', 'Limit']);\n// _.forEach(queries, (item: any, key) => {\n// if (_.isArray(item)) {\n// item = _.compact(item);\n// if (item.length > 0) {\n// params[key] = _.uniq(item);\n// }\n// } else if (_.isObject(item)) {\n// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n// params[key] = _.get(item, 'value');\n// }\n// } else if (_.isNumber(item) || !_.isEmpty(item)) {\n// params[key] = item;\n// }\n// });\n// }\n// return params;\n// }\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips'];\nconst LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port'];\nconst LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId'];\nconst LOADBALANCEVALIDDIMENSIONS = {\n vip: 'LoadBalancerVips',\n // vpcId: 'NumericalVpcId',\n loadBalancerPort: 'Port',\n protocol: 'Protocol',\n lanIp: 'PrivateIpAddresses',\n port: 'ServerPort',\n};\n// 对于ipv6类型,vip应该取AddressIPv6。\nconst CANDIATEDIMENSIONS = {\n LoadBalancerVips: 'AddressIPv6',\n};\n// dimensionObject[item] = { Name: item, Value: '' };\n// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// };\n// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' },\n// protocol: { Name: 'protocol', Value: '' },\n// };\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n listener: 'ListenerId',\n servers: 'PrivateIpAddresses',\n port: 'Port',\n};\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n listener: 'ListenerList',\n servers: 'ServersList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Port: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n Protocol: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n PrivateIpAddresses: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'servers',\n dim_KeyInMap: templateQueryIdMap.servers,\n },\n ServerPort: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'serverPort',\n dim_KeyInIns: 'Port',\n dim_KeyInMap: templateQueryIdMap.port,\n },\n};\nexport default LOADBALANCE_STATE;\nexport {\n LOADBALANCEFieldsDescriptor,\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n CANDIATEDIMENSIONS,\n // LOADBALANCE_LISTENER_DIMENSIONOBJECTS,\n // LOADBALANCE_INSTANCE_DIMENSIONOBJECTS,\n queryMonitorExtraConfg,\n keyInStorage,\n queryEditorConfig,\n namespace,\n queryEditorName,\n GetInstanceQueryParams,\n};\n","import {\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CLSInstanceAliasList;\n InvalidDimensions = CLSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cls',\n action: 'DescribeTopics',\n responseField: 'Topics',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n // async getInstances(region, params = {}) {\n // const superRes = await super.getInstances(region, params);\n // console.log({ superRes });\n // }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CLSFilterFieldsDescriptor, queryEditorName } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = CLSFilterFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CLS';\nconst queryEditorName = 'clsQuery';\n\nconst CLSInvalidDemensions = {\n // instanceid: 'TopicId',\n};\n\n// 需和文件名对应\nconst CLSInstanceAliasList = ['TopicId', 'TopicName'];\n\nconst templateQueryIdMap = {\n instance: 'TopicId',\n};\n\n// 需要缓存到storage的内容的key列表\n// const keyInStorage = {\n// fleet: 'fleet', // 实例队列\n// queue: 'queueName', // 会话队列\n// };\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\n// const queryMonitorExtraConfg = {\n// FleetId: {\n// dim_KeyInStorage: keyInStorage.fleet,\n// dim_KeyInTarget: 'FleetId',\n// dim_KeyInMap: templateQueryIdMap.FleetId,\n// },\n// Name: {\n// dim_KeyInStorage: keyInStorage.queue,\n// dim_KeyInTarget: 'Name',\n// dim_KeyInMap: templateQueryIdMap.Name,\n// },\n// };\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CLSFilterFields = {\n Limit: 20,\n Offset: 0,\n topicName: [],\n topicId: [],\n logsetName: [],\n logsetId: [],\n tagKey: [],\n 'tag:tagKey': [],\n storageType: {},\n};\n\nconst CLSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'topicName',\n enDescriptor: 'topicName',\n cnDescriptor: '日志主题名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'topicId',\n enDescriptor: 'topicId',\n cnDescriptor: '日志主题ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetName',\n enDescriptor: 'logsetName',\n cnDescriptor: '日志集名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetId',\n enDescriptor: 'logsetId',\n cnDescriptor: '日志集ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tag:tagKey',\n enDescriptor: 'tag - tagKey',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'storageType',\n enDescriptor: 'storageType',\n cnDescriptor: '日志主题的存储类型',\n link: '',\n type: 'select',\n list: [\n { text: '实时存储', value: 'hot' },\n { text: '离线存储', value: 'cold' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454',\n namespace,\n fieldDescriptor: CLSFilterFieldsDescriptor,\n};\n\nconst CLS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicId',\n uin: '',\n queries: CLSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v);\n item.Dimensions = ['uin', 'TopicId'];\n });\n return metricTmp;\n}\nexport default CLS_STATE;\nexport {\n CLSFilterFieldsDescriptor,\n templateQueryIdMap,\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // queryMonitorExtraConfg,\n // fleetId,\n // keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CLSGetInstanceQueryParams,\n};\n","import { BaseDatasource } from '../_base/datasource';\nimport { InvalidDemensions, InstanceAliasList, templateQueryIdMap } from './query_def';\n\nexport default class CmqDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeQueueDetail',\n responseField: 'QueueSet',\n };\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims = Array.from(new Set([...dims, 'queueId', 'queueName']));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import createQuery from '../_base/query';\nimport { InstanceQueryDescriptor } from './query_def';\n\ncreateQuery('cmqQuery', {\n fieldDescriptor: InstanceQueryDescriptor,\n instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624',\n namespace: 'QCE/CMQ',\n});\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'QueueName',\n enDescriptor: 'QueueName',\n cnDescriptor: '精确匹配QueueName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n queueId: 'QueueId',\n queueName: 'QueueName',\n};\n\nexport const templateQueryIdMap = {\n instance: 'QueueName',\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['QueueName', 'QueueId'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'QueueName',\n queries: {\n Offset: 0,\n Limit: 20,\n QueueName: '',\n TagKey: '',\n },\n};\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CmqTopicDatasource extends BaseDatasource {\n Namespace = 'QCE/CMQTOPIC';\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeTopicDetail',\n responseField: 'TopicSet',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraMetricDims = ['subscriptionId']; // 多选\n\n async fetchAllSubscription(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'cmq');\n // console.log(serviceInfo, 'serviceinfo');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeSubscriptionDetail' }\n );\n },\n params,\n 'SubscriptionSet'\n );\n\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeSubscriptionDetail':\n result = await this.fetchAllSubscription(region, { TopicName: instance.TopicName });\n // eslint-disable-next-line no-case-declarations\n const rs = result.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: item[templateQueryIdMap.subscription] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.subscriptionId, result);\n return rs;\n default:\n return [];\n }\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims.push('topicId');\n if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) {\n dims.push('subscriptionId');\n }\n\n dims = Array.from(new Set(dims));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { InstanceQueryDescriptor } from './query_def';\n\nconst ExtraFields = [\n {\n label: 'Subscription(订阅)',\n field: 'subscriptionId',\n },\n];\n\nexport class CmqTopicQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getTopicName = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).TopicName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'subscriptionId') {\n const TopicName = $scope.getTopicName();\n let data = $scope.cacheMap[TopicName];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription');\n const datas = await fetcher(region, { TopicName });\n data = datas.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: JSON.stringify(item) };\n });\n }\n\n // 缓存\n $scope.cacheMap[TopicName] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CmqTopicQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('cmqTopicQuery', scfQuery);\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'TopicName',\n enDescriptor: 'TopicName',\n cnDescriptor: '精确匹配TopicName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n topicId: 'TopicId',\n};\n\n// 因为cmq那边,以TopciName为主键\nexport const templateQueryIdMap = {\n instance: 'TopicName',\n subscription: 'SubscriptionId',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n subscriptionId: 'subscriptionId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n subscriptionId: {\n dim_KeyInStorage: keyInStorage.subscriptionId,\n dim_KeyInTarget: 'subscriptionId',\n dim_KeyInMap: templateQueryIdMap.subscription,\n },\n};\n// 与名称挂钩的变量\nconst InstanceAliasList = ['TopicName', 'TopicId'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicName',\n subscriptionId: '',\n queries: {\n Offset: 0,\n Limit: 20,\n TopicName: '',\n TagKey: '',\n },\n};\n","import { BaseDatasource } from '../_base/datasource';\n\ninterface BucketListResult {\n Owner: { ID: 'string'; DisplayName: 'string' };\n Buckets: { Name: string; Region: string }[];\n}\n\nexport default class CosDatasource extends BaseDatasource {\n InvalidDimensions: Record = {};\n InstanceAliasList: string[] = ['BucketName'];\n templateQueryIdMap = {\n instance: 'BucketName',\n };\n InstanceReqConfig = {} as any; // 不必要的配置\n cosURL: string;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n this.cosURL = `/api/datasources/${this.instanceSettings.id}/resources/tc_cos_list`;\n }\n async getInstances(region: string) {\n return this.backendSrv\n .datasourceRequest({\n url: this.cosURL,\n method: 'GET',\n params: { region },\n headers: { 'Content-Type': 'application/json' },\n })\n .then((res) => {\n let { data }: { data: BucketListResult } = res;\n data = data || ({} as any);\n let { Buckets } = data;\n Buckets = Buckets || [];\n\n // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291\n return Buckets.map((item) => ({\n ...item,\n BucketName: item.Name,\n bucket: item.Name,\n appid: item.Name.split('-').slice(-1)[0],\n }));\n });\n }\n\n async getVariableInstances(region) {\n return this.getInstances(region);\n }\n}\n","import _ from 'lodash';\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['BucketName'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BucketName',\n queries: {},\n};\n","import {\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CPMInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bm',\n action: 'DescribeDevices',\n responseField: 'DeviceInfoSet',\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'DeviceClassCode') {\n const serviceInfo = GetServiceAPIInfo(region, 'bm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n 'bm',\n { region, action: 'DescribeDeviceClass' }\n ).then((response) => {\n return _.map(response.DeviceClassSet || [], (item) => {\n return { text: item.DeviceClassCode, value: item.DeviceClassCode };\n });\n });\n }\n return [];\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CPM';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cpmQuery';\n\nconst CPMInvalidDemensions = {\n instanceId: 'InstanceId',\n // uniqid: 'InstanceId',\n};\n\nconst CPMInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n DeviceClassCode: '',\n InstanceIds: [],\n WanIps: [],\n LanIps: [],\n Alias: '',\n VagueIp: '',\n AutoRenewFlag: {},\n VpcId: '',\n SubnetId: '',\n DeviceType: {},\n IsLuckyDevice: {},\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DeviceClassCode',\n enDescriptor: 'DeviceClassCode',\n cnDescriptor: '机型ID',\n link: '',\n type: 'dropdown',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '设备ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'WanIps',\n enDescriptor: 'WanIps',\n cnDescriptor: '外网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LanIps',\n enDescriptor: 'LanIps',\n cnDescriptor: '内网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Alias',\n enDescriptor: 'Alias',\n cnDescriptor: '设备名称',\n link: '',\n type: 'input',\n },\n {\n key: 'VagueIp',\n enDescriptor: 'VagueIp',\n cnDescriptor: '模糊IP查询',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenewFlag',\n enDescriptor: 'AutoRenewFlag',\n cnDescriptor: '自动续费标志',\n link: '',\n type: 'select',\n list: [\n { text: '不自动续费', value: 0 },\n { text: '自动续费', value: 1 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'DeviceType',\n enDescriptor: 'DeviceType',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '计算型', value: 'compute' },\n { text: '标准型', value: 'standard' },\n { text: '存储型', value: 'storage' },\n ],\n },\n {\n key: 'IsLuckyDevice',\n enDescriptor: 'IsLuckyDevice',\n cnDescriptor: '竞价实例机器过滤',\n link: '',\n type: 'select',\n list: [\n { text: '非竞价实例机器', value: 0 },\n { text: '竞价实例的机器', value: 1 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['instanceId'];\n });\n return metricTmp;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CPMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { CVMInstanceAliasList, isValidMetric, modifyDimensons } from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CVMDatasource extends BaseDatasource {\n Namespace = 'QCE/CVM';\n InstanceAliasList = CVMInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cvm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cvm' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'cvm' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { CVMFilterFieldsDescriptor } from './query_def';\n\nexport class CVMQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CVMFilterFieldsDescriptor = CVMFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function cvmQuery() {\n return {\n template: template,\n controller: CVMQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cvmQuery', cvmQuery);\n","import _ from 'lodash';\nconst instanceChargeTypes = [\n { text: '预付费', value: 'PREPAID' },\n { text: '后付费', value: 'POSTPAID_BY_HOUR' },\n { text: 'CDH付费', value: 'CDHPAID' },\n];\n\nconst CVMFilterFields = {\n zone: [],\n 'project-id': [],\n 'host-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n 'instance-id': [],\n 'security-group-id': [],\n 'instance-name': [],\n 'instance-charge-type': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n 'tag-key': [],\n};\n\nconst CVMFilterFieldsDescriptor = [\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'project-id',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/api/378/4400',\n type: 'inputNumbermulti',\n },\n {\n key: 'host-id',\n enDescriptor: 'CDH ID',\n cnDescriptor: 'CDH ID',\n link: 'https://cloud.tencent.com/document/product/416/19730',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: 'VPC ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'security-group-id',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-key',\n enDescriptor: '标签简',\n cnDescriptor: '标签简',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-charge-type',\n enDescriptor: 'Instance Charge Type',\n cnDescriptor: '实例计费模式',\n link: '',\n type: 'select',\n list: instanceChargeTypes,\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CVM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...CVMFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst CVMValidMetricsT = [\n 'CPUUsage',\n 'CpuLoadavg',\n 'Cpuloadavg5m',\n 'Cpuloadavg15m',\n 'BaseCpuUsage',\n 'GpuMemTotal',\n 'GpuMemUsage',\n 'GpuMemUsed',\n 'GpuPowDraw',\n 'GpuPowLimit',\n 'GpuPowUsage',\n 'GpuTemp',\n 'GpuUtil',\n 'LanOuttraffic',\n 'LanIntraffic',\n 'LanOutpkg',\n 'LanInpkg',\n 'WanOuttraffic',\n 'WanIntraffic',\n 'WanOutpkg',\n 'WanInpkg',\n 'AccOuttraffic',\n 'TcpCurrEstab',\n 'TimeOffset',\n 'MemUsed',\n 'MemUsage',\n 'CvmDiskUsage',\n 'BaseCpuUsage',\n 'VmDiskReadIops',\n];\n// const CVMInvalidDemensions = {\n// 'vm_uuid': 'InstanceId',\n// 'vmUuid': 'InstanceId',\n// };\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nfunction isValidMetric(metric) {\n const CVMValidMetrics = _.map(CVMValidMetricsT, _.toUpper);\n return _.indexOf(CVMValidMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default CVM_STATE;\nexport {\n CVMFilterFieldsDescriptor,\n CVMInstanceAliasList,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n // CVMInvalidDemensions,\n GetInstanceQueryParams as CVMGetInstanceQueryParams,\n};\n","import {\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n checkKeys,\n} from './query_def';\nimport _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\n// import { t } from '../../../locale';\n\nexport default class CYNOSDBMYSQLDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CYNOSDBMYSQLInstanceAliasList;\n InvalidDimensions = CYNOSDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n checkKeys = checkKeys;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cynosdb',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n // getRegions() {\n // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n // }\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cynosdbmysql' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n };\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CYNOSDB_MYSQL';\n\n// 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字\nconst queryEditorName = 'cynosdbMysqlQuery';\n\nconst cynosdbMysqlFilterFields = {\n Limit: 20,\n Offset: 0,\n OrderBy: {},\n OrderByType: {},\n InstanceIds: [],\n DbType: {},\n // Status: '',\n};\n\nconst cynosdbMysqlFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 1000,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例id列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '创建时间', value: 'CREATETIME' },\n { text: '过期时间', value: 'PERIODENDTIME' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序类型',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n ],\n },\n {\n key: 'DbType',\n enDescriptor: 'DbType',\n cnDescriptor: '引擎类型',\n link: '',\n type: 'select',\n list: [\n { text: 'MYSQL', value: 'MYSQL' },\n { text: 'POSTGRESQL', value: 'POSTGRESQL' },\n ],\n },\n // {\n // key: 'Status',\n // enDescriptor: 'Status',\n // cnDescriptor: '实例状态',\n // link: '',\n // type: 'input',\n // },\n];\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n];\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334',\n namespace,\n fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor,\n};\n\nconst CYNOSDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: cynosdbMysqlFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// 和文件名字一样CYNOSDBMYSQL\nconst CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nconst CYNOSDBInvalidDemensions = {\n instanceid: 'InstanceId',\n instanceId: 'InstanceId',\n};\nconst checkKeys = ['instanceId'];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default CYNOSDB_STATE;\nexport {\n cynosdbMysqlFilterFieldsDescriptor,\n templateQueryIdMap,\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n checkKeys,\n // params前缀为service的全大写\n GetInstanceQueryParams as CYNOSDBMYSQLGetInstanceQueryParams,\n};\n","import { DCInstanceAliasList, DCInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCInstanceAliasList;\n InvalidDimensions = DCInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnects',\n responseField: 'DirectConnectSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DC';\nconst queryEditorName = 'dcQuery';\n\nconst DCFilterFields = {\n Limit: 20,\n Offset: 0,\n DirectConnectIds: [],\n};\n\nconst DCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DirectConnectIds',\n enDescriptor: 'DirectConnectIds',\n cnDescriptor: '物理专线 ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826',\n namespace,\n fieldDescriptor: DCFilterFieldsDescriptor,\n};\n\nconst DC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectId',\n queries: DCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectId',\n};\n\nconst DCInvalidDemensions = {\n directConnectId: 'DirectConnectId',\n directconnectid: 'DirectConnectId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectId'];\n });\n return metricTmp;\n}\nexport default DC_STATE;\nexport {\n DCFilterFieldsDescriptor,\n templateQueryIdMap,\n DCInstanceAliasList,\n DCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCGetInstanceQueryParams,\n};\n","import {\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCDBInstanceAliasList;\n InvalidDimensions = DCDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'dcdb',\n action: 'DescribeDCDBInstances',\n responseField: 'Instances',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraActionMap = {\n DescribeDCDBShards: {\n service: 'dcdb',\n action: 'DescribeDCDBShards',\n responseField: 'Shards',\n pickKey: 'ShardInstanceId',\n },\n DescribeDCDBInstanceNodeInfo: {\n service: 'dcdb',\n action: 'DescribeDCDBInstanceNodeInfo',\n responseField: 'NodesInfo',\n pickKey: 'NodeId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion, 入参的region用广州\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/dcdb',\n },\n 'dcdb',\n { action: 'DescribeDCDBSaleInfo', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionList || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n RegionState: item.RegionState,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance[this.templateQueryIdMap.instance],\n Limit: 100,\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { DCDBFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'nodeid',\n field: 'NodeId',\n action: 'DescribeDCDBInstanceNodeInfo',\n },\n {\n label: 'shardid',\n field: 'ShardId',\n action: 'DescribeDCDBShards',\n },\n];\nconst dropdownTextConfig = {\n DescribeDCDBInstanceNodeInfo: 'NodeId',\n DescribeDCDBShards: 'ShardInstanceId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.DCDBFilterFieldsDescriptor = DCDBFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const instanceId = $scope.getInstanceId();\n const payload: any = {\n InstanceId: instanceId,\n Limit: 100,\n };\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { isArray, cloneDeep } from 'lodash';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/TDMYSQL';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'dcdbQuery';\n\nconst DCDBInvalidDemensions = {\n nodeid: 'NodeId',\n instanceid: 'InstanceId',\n shardid: 'ShardInstanceId',\n ShardId: 'ShardInstanceId',\n};\n\n// 需和文件名对应\nconst DCDBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst DCDBFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n SearchName: '',\n SearchKey: '',\n ProjectIds: [],\n // IsFilterVpc\n VpcId: '',\n SubnetId: '',\n\n OrderBy: {},\n OrderByType: {},\n // IsFilterExcluster: {},\n ExclusterType: {},\n\n ExclusterIds: [],\n FilterInstanceType: {},\n};\n\nconst DCDBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例 ID 查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'SearchName',\n enDescriptor: 'SearchName',\n cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '搜索的关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '按项目 ID 查询',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'projectId', value: 'projectId' },\n { text: 'createtime', value: 'createtime' },\n { text: 'instancename', value: 'instancename' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'select',\n list: [\n { text: 'desc', value: 'desc' },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterType',\n enDescriptor: 'ExclusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: [\n { text: '非独享集群', value: 1 },\n { text: '独享集群', value: 2 },\n { text: '全部', value: 0 },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterIds',\n enDescriptor: 'ExclusterIds',\n cnDescriptor: '独享集群ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'FilterInstanceType',\n enDescriptor: 'FilterInstanceType',\n cnDescriptor: '实例类型过滤',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '独享实例', value: 1 },\n { text: '主实例', value: 2 },\n { text: '灾备实例', value: 3 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140',\n namespace,\n fieldDescriptor: DCDBFilterFieldsDescriptor,\n};\n\nconst DCDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n ShardId: '',\n NodeId: '',\n queries: DCDBFilterFields,\n};\nconst modifyMetricConf = {\n shardid: 'ShardId',\n instanceid: 'InstanceId',\n nodeid: 'NodeId',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => modifyMetricConf[v] || v);\n });\n return metricTmp;\n}\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params = instanceQueryParamsBaseParse(queries, false);\n // 特殊处理\n params.IsFilterVpc = false;\n params.IsFilterExcluster = false;\n if (params.VpcId || params.SubnetId) params.IsFilterVpc = true;\n if (params.ExclusterType) params.IsFilterExcluster = true;\n if (isArray(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(',');\n return params;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeId: {\n dim_KeyInStorage: keyInStorage.NodeId,\n dim_KeyInTarget: 'NodeId',\n dim_KeyInMap: templateQueryIdMap.NodeId,\n },\n ShardInstanceId: {\n dim_KeyInStorage: keyInStorage.ShardInstanceId,\n dim_KeyInTarget: 'ShardId',\n dim_KeyInMap: templateQueryIdMap.ShardInstanceId,\n },\n};\n// 和其他产品的展示保持一致\nconst regionSupported = [\n { text: '华北地区(北京)', value: 'ap-beijing' },\n { text: '西南地区(成都)', value: 'ap-chengdu' },\n { text: '西南地区(重庆)', value: 'ap-chongqing' },\n { text: '华南地区(广州)', value: 'ap-guangzhou' },\n { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n { text: '华东地区(南京)', value: 'ap-nanjing' },\n { text: '华东地区(上海)', value: 'ap-shanghai' },\n { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n { text: '亚太东北(东京)', value: 'ap-tokyo' },\n { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n { text: '北美地区(多伦多)', value: 'na-toronto' },\n];\nexport default DCDB_STATE;\nexport {\n DCDBFilterFieldsDescriptor,\n templateQueryIdMap,\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n keyInStorage,\n modifyDimensons,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as DCDBGetInstanceQueryParams,\n};\n","import { DCGInstanceAliasList, DCGInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCGInstanceAliasList;\n InvalidDimensions = DCGInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeDirectConnectGateways',\n responseField: 'DirectConnectGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCG';\nconst queryEditorName = 'dcgQuery';\n\nconst DCGInvalidDemensions = {\n directConnectGatewayId: 'DirectConnectGatewayId',\n};\n\nconst DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst DCGFilterFields = {\n Limit: 20,\n Offset: 0,\n 'direct-connect-gateway-id': [],\n 'direct-connect-gateway-name': [],\n 'direct-connect-gateway-ip': [],\n 'gateway-type': {},\n 'network-type': {},\n 'ccn-id': [],\n 'vpc-id': [],\n};\n\nconst DCGFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-gateway-id',\n enDescriptor: 'direct-connect-gateway-id',\n cnDescriptor: '专线网关唯一ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-name',\n enDescriptor: 'direct-connect-gateway-name',\n cnDescriptor: '专线网关名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-ip',\n enDescriptor: 'direct-connect-gateway-ip',\n cnDescriptor: '专线网关IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'gateway-type',\n enDescriptor: 'gateway-type',\n cnDescriptor: '网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '普通型', value: 'NORMAL' },\n { text: 'NAT型', value: 'NAT' },\n ],\n },\n {\n key: 'network-type',\n enDescriptor: 'network-type',\n cnDescriptor: '网络类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '私有网络类型', value: 'VPC' },\n { text: '云联网类型', value: 'CCN' },\n ],\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: '专线网关所在云联网ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '专线网关所在私有网络ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644',\n namespace,\n fieldDescriptor: DCGFilterFieldsDescriptor,\n};\n\nconst DCG_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectGatewayId',\n queries: DCGFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default DCG_STATE;\nexport {\n DCGFilterFieldsDescriptor,\n templateQueryIdMap,\n DCGInstanceAliasList,\n DCGInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as DCGGetInstanceQueryParams,\n};\n","import { DCXInstanceAliasList, DCXInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCXDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCXInstanceAliasList;\n InvalidDimensions = DCXInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnectTunnels',\n responseField: 'DirectConnectTunnelSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCX';\nconst queryEditorName = 'dcxQuery';\n\nconst DCXFilterFields = {\n 'direct-connect-tunnel-name': [],\n 'direct-connect-tunnel-id': [],\n 'direct-connect-id': [],\n};\n\nconst DCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-tunnel-name',\n enDescriptor: 'direct-connect-tunnel-name',\n cnDescriptor: '专用通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-tunnel-id',\n enDescriptor: 'direct-connect-tunnel-id',\n cnDescriptor: '专用通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-id',\n enDescriptor: 'direct-connect-id',\n cnDescriptor: '物理专线实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819',\n namespace,\n fieldDescriptor: DCXFilterFieldsDescriptor,\n};\n\nconst DCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectTunnelId',\n queries: {\n Limit: 20,\n Offset: 0,\n ...DCXFilterFields,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n};\n\nconst DCXInvalidDemensions = {\n directconnectconnid: 'DirectConnectTunnelId',\n directConnectConnId: 'DirectConnectTunnelId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectConnId'];\n });\n return metricTmp;\n}\nexport default DCX_STATE;\nexport {\n DCXFilterFieldsDescriptor,\n templateQueryIdMap,\n DCXInstanceAliasList,\n DCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCXGetInstanceQueryParams,\n};\n","import { BaseDatasource } from '../_base/datasource';\nimport {\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n modifyDimensons,\n namespace,\n templateQueryIdMap,\n} from './query_def';\n\nexport default class ECDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECDNInstanceAliasList;\n InvalidDimensions = ECDNInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ecdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import { cloneDeep, compact, forEach, get, isArray, isEmpty, isObject, omit, uniq } from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\n\nconst namespace = 'QCE/DSA';\nconst queryEditorName = 'ecdnQuery';\n\nconst ECDNInstanceAliasList = ['Domain'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\nconst ECDNInvalidDemensions = {\n domain: 'Domain',\n projectid: 'ProjectId',\n};\n\nconst ECDN_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 100,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n disable: [],\n projectId: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n area: [],\n tagKey: [],\n },\n};\n\nconst ECDNFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'Origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'ResourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'Status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'disable',\n enDescriptor: 'Disable',\n cnDescriptor: '域名封禁状态',\n link: '',\n type: 'select',\n list: [\n { text: 'normal', value: 'normal' },\n { text: 'unlicensed', value: 'unlicensed' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'FullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'Https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'OriginPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'https', value: 'https' },\n { text: 'follow', value: 'follow' },\n ],\n },\n {\n key: 'area',\n enDescriptor: 'Area',\n cnDescriptor: '加速区域',\n link: '',\n type: 'select',\n list: [\n { text: 'mainland', value: 'mainland' },\n { text: 'overseas', value: 'overseas' },\n { text: 'global', value: 'global' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462',\n namespace,\n fieldDescriptor: ECDNFilterFieldsDescriptor,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!isEmpty(queries)) {\n params.Limit = get(queries, 'Limit', 20) || 20;\n params.Offset = get(queries, 'Offset', 0) || 0;\n const _queries = omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n forEach(_queries, (item: any, key) => {\n if (isArray(item)) {\n item = compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: uniq(item).slice(0, 5) });\n }\n } else if (isObject(item)) {\n if (!isEmpty(get(item, 'value', []))) {\n Filters.push({ Name: key, Value: [get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters.map((item) => {\n if (item.Name === 'domain') {\n return { ...item, Fuzzy: true };\n }\n return item;\n });\n return params;\n }\n }\n return params;\n}\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['domain', 'projectid'];\n });\n return metricTmp;\n}\n\nexport default ECDN_STATE;\n\nexport {\n ECDNFilterFieldsDescriptor,\n templateQueryIdMap,\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECDNGetInstanceQueryParams,\n};\n","import {\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMInstanceAliasList;\n InvalidDimensions = ECMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM';\nconst queryEditorName = 'ecmQuery';\n\nconst ECMInvalidDemensions = {\n // diskId: 'InstanceId',\n uuid: 'UUID',\n // unInstanceId: 'InstanceId',\n};\n\nconst ECMInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMFilterFields = {\n Limit: 20,\n Offset: 0,\n zone: [],\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: '可用区英文标识',\n link: '',\n type: 'dropdownMulti',\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: ECMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMGetInstanceQueryParams,\n};\n","import {\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMBLOCKSTORAGEInstanceAliasList;\n InvalidDimensions = ECMBLOCKSTORAGEInvalidDemensions;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n templateQueryIdMap = templateQueryIdMap;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getDiskList(params: any) {\n const { payload } = params;\n const { InstanceId } = payload;\n const instanceCache = await instanceStorage.getInstance(this.service);\n const instanceObj: any =\n _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === InstanceId)) ?? {};\n const { DataDisks: dataDisks } = instanceObj;\n return dataDisks;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance,\n Limit: 100,\n };\n const rs = await this.getDiskList({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.diskId];\n return {\n text: o[this.templateQueryIdMap.diskId],\n value: o[this.templateQueryIdMap.diskId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.diskId, rs);\n return result;\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { ECMBLOCKSTORAGEFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n // {\n // label: 'nodeid',\n // field: 'NodeId',\n // action: 'DescribeInstanceNodeInfo',\n // },\n {\n label: 'diskId',\n field: 'diskId',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = ECMBLOCKSTORAGEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n // $scope.getInstanceId = () => {\n // let { instance } = $scope.target;\n // const service = GetServiceFromNamespace($scope.namespace);\n // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n // if (!instance) {\n // return '';\n // }\n // try {\n // instance = JSON.parse(instance)[templateQueryIdMap.instance];\n // } catch (error) {\n // console.log();\n // }\n // return instance;\n // };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = (target, action) => {\n let { instance } = target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n try {\n instance = JSON.parse(instance);\n const { DataDisks: dataDisks } = instance;\n return dataDisks.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.diskId];\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n } catch (error) {\n // console.log('instance error', instance);\n const payload: any = {\n InstanceId: instance,\n };\n const rs = $scope.datasource.getServiceFn(service, 'getDiskList')({ payload });\n const result = rs.map((o) => {\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n return result;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_BLOCK_STORAGE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ecmBlockStorageQuery';\n\nconst ECMBLOCKSTORAGEInvalidDemensions = {\n uuid: 'UUID',\n diskId: 'DiskId',\n};\n\n// 需和文件名对应\nconst ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n diskId: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst ECMBLOCKSTORAGEFilterFields = {\n Limit: 20,\n Offset: 0,\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMBLOCKSTORAGEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor,\n};\n\nconst ECMBLOCKSTORAGE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n diskId: '',\n queries: ECMBLOCKSTORAGEFilterFields,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n diskId: 'diskId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n DiskId: {\n dim_KeyInStorage: keyInStorage.diskId,\n dim_KeyInTarget: 'diskId',\n dim_KeyInMap: templateQueryIdMap.diskId,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default ECMBLOCKSTORAGE_STATE;\nexport {\n ECMBLOCKSTORAGEFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n keyInStorage,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as ECMBLOCKSTORAGEGetInstanceQueryParams,\n};\n","import { ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMLBInstanceAliasList;\n InvalidDimensions = ECMLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_LB';\nconst queryEditorName = 'ecmLbQuery';\n\nconst ECMLBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\nconst ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMLBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n BackendPrivateIps: [],\n VpcId: '',\n};\n\nconst ECMLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivateIps',\n cnDescriptor: '绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属私有网络唯一ID',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459',\n namespace,\n fieldDescriptor: ECMLBFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: ECMLBFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMLBFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMLBInstanceAliasList,\n ECMLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMLBGetInstanceQueryParams,\n};\n","import {\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = GSEInstanceAliasList;\n InvalidDimensions = GSEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gse',\n action: 'DescribeInstances',\n responseField: 'Instances',\n };\n\n keyInStorage = keyInStorage;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getQueueNameList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeGameServerSessionQueues' }\n );\n },\n {},\n 'GameServerSessionQueues'\n );\n const [rs] = res;\n return rs;\n }\n async getFleetList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'ListFleets' }\n );\n },\n {},\n 'FleetIds'\n );\n const [rs] = res;\n return rs.map((r) => ({ [this.templateQueryIdMap.FleetId]: r }));\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeGameServerSessionQueues') {\n const rs = await this.getQueueNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.Name];\n return {\n text: o[this.templateQueryIdMap.Name],\n value: o[this.templateQueryIdMap.Name],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.queue, rs);\n return result;\n }\n if (action === 'ListFleets') {\n const rs = await this.getFleetList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.FleetId];\n return {\n text: o[this.templateQueryIdMap.FleetId],\n value: o[this.templateQueryIdMap.FleetId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.fleet, rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { GSEFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'fleetId',\n field: 'FleetId',\n },\n {\n label: 'queueName',\n field: 'Name',\n },\n];\nconst actionMaps = {\n FleetId: 'getFleetList',\n Name: 'getQueueNameList',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = GSEFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n // const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n let rs = await $scope.datasource.getServiceFn(service, actionMaps[field])({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[field]];\n return {\n text: o[templateQueryIdMap[field]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/GSE';\nconst fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'gseQuery';\n\nconst GSEInvalidDemensions = {\n instanceid: 'InstanceId',\n fleetid: 'FleetId',\n queuename: 'Name',\n};\n\n// 需和文件名对应\nconst GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n Name: 'Name',\n FleetId: fleetId,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n fleet: 'fleet', // 实例队列\n queue: 'queueName', // 会话队列\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n FleetId: {\n dim_KeyInStorage: keyInStorage.fleet,\n dim_KeyInTarget: 'FleetId',\n dim_KeyInMap: templateQueryIdMap.FleetId,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.queue,\n dim_KeyInTarget: 'Name',\n dim_KeyInMap: templateQueryIdMap.Name,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst GSEFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceId: '',\n FleetId: '',\n};\n\nconst GSEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'resourceName',\n cnDescriptor: '资源名称',\n link: '',\n type: 'input',\n },\n {\n key: 'FleetId',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604',\n namespace,\n fieldDescriptor: GSEFilterFieldsDescriptor,\n};\n\nconst GSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n FleetId: '', // 服务器实例\n Name: '', // 队列名称\n queries: GSEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n // { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n // { value: 'ap-shanghai-fsi' },\n // { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n // { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => GSEInvalidDemensions[v] || v);\n });\n return metricTmp;\n}\nexport default GSE_STATE;\nexport {\n GSEFilterFieldsDescriptor,\n templateQueryIdMap,\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n fleetId,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as GSEGetInstanceQueryParams,\n};\n","import { t } from '../../locale';\n// name (产品名称), service(对应的真实service)\ninterface ServiceType {\n service: string;\n label: string;\n namespace: string;\n href: string;\n groupName?: string;\n hideRegion?: boolean;\n}\nconst SERVICES: ServiceType[] = [\n {\n service: 'cvm',\n get label() {\n return t('CVM');\n },\n namespace: 'QCE/CVM',\n href: 'https://cloud.tencent.com/document/api/213/15688',\n },\n {\n service: 'cdb',\n get label() {\n return t('CDB');\n },\n namespace: 'QCE/CDB',\n href: 'https://cloud.tencent.com/document/api/236/15829',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'mongoDB',\n get label() {\n return t('CMONGO');\n },\n namespace: 'QCE/CMONGO',\n href: 'https://cloud.tencent.com/document/api/240/38568',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'postgres',\n get label() {\n return t('POSTGRES');\n },\n namespace: 'QCE/POSTGRES',\n href: 'https://cloud.tencent.com/document/product/248/45105',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redis',\n get label() {\n return t('REDIS');\n },\n namespace: 'QCE/REDIS',\n href: 'https://cloud.tencent.com/document/product/248/45110',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redisMem',\n get label() {\n return t('REDIS_MEM');\n },\n namespace: 'QCE/REDIS_MEM',\n href: 'https://cloud.tencent.com/document/product/248/49729',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'sqlserver',\n get label() {\n return t('SQLSERVER');\n },\n namespace: 'QCE/SQLSERVER',\n href: 'https://cloud.tencent.com/document/product/248/45146',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'cynosdbMysql',\n get label() {\n return t('CYNOSDB_MYSQL');\n },\n namespace: 'QCE/CYNOSDB_MYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45106',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'tcaplus',\n get label() {\n return t('TCAPLUS');\n },\n namespace: 'QCE/TCAPLUS',\n href: 'https://cloud.tencent.com/document/product/248/45107',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'dcdb',\n get label() {\n return t('TDMYSQL');\n },\n namespace: 'QCE/TDMYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45108',\n },\n {\n service: 'pcx',\n get label() {\n return t('PCX');\n },\n namespace: 'QCE/PCX',\n href: 'https://cloud.tencent.com/document/product/215/5181',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'bwp',\n get label() {\n return t('BWP');\n },\n namespace: 'QCE/BWP',\n href: 'https://cloud.tencent.com/document/api/215/19209',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'natGateway',\n get label() {\n return t('NAT_GATEWAY');\n },\n namespace: 'QCE/NAT_GATEWAY',\n href: 'https://cloud.tencent.com/document/api/215/36034',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpngw',\n get label() {\n return t('VPNGW');\n },\n namespace: 'QCE/VPNGW',\n href: 'https://cloud.tencent.com/document/product/248/45070',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpnx',\n get label() {\n return t('VPNX');\n },\n namespace: 'QCE/VPNX',\n href: 'https://cloud.tencent.com/document/product/248/45071',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'dcg',\n get label() {\n return t('DCG');\n },\n namespace: 'QCE/DCG',\n href: 'https://cloud.tencent.com/document/product/248/45072',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'ceipSummary',\n get label() {\n return t('CEIP_SUMMARY');\n },\n namespace: 'QCE/CEIP_SUMMARY',\n href: 'https://cloud.tencent.com/document/product/248/50381',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpcNetDetect',\n get label() {\n return t('VPC_NET_DETECT');\n },\n namespace: 'QCE/VPC_NET_DETECT',\n href: 'https://cloud.tencent.com/document/product/248/50384',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vbc',\n get label() {\n return t('VBC');\n },\n namespace: 'QCE/VBC',\n href: 'https://cloud.tencent.com/document/product/248/45073',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lb',\n get label() {\n return t('LB');\n },\n namespace: 'QCE/LB',\n href: 'https://cloud.tencent.com/document/product/248/45099',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lbPublic',\n get label() {\n return t('LB_PUBLIC');\n },\n namespace: 'QCE/LB_PUBLIC',\n href: 'https://cloud.tencent.com/document/product/248/51898',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'lbPrivate',\n get label() {\n return t('LB_PRIVATE');\n },\n namespace: 'QCE/LB_PRIVATE',\n href: 'https://cloud.tencent.com/document/product/248/51899',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'loadBalance',\n get label() {\n return t('LOADBALANCE');\n },\n namespace: 'QCE/LOADBALANCE',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'vClb',\n get label() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n namespace: 'QCE/V_CLB',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n },\n {\n service: 'cdn',\n get label() {\n return t('CDN');\n },\n namespace: 'QCE/CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50386',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'cdnProvince',\n get label() {\n return t('CDN_LOG_DATA');\n },\n namespace: 'QCE/CDN_LOG_DATA',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50388',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'ovCdn',\n get label() {\n return t('OV_CDN');\n },\n namespace: 'QCE/OV_CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50387',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'scf',\n get label() {\n return t('SCF_V2');\n },\n namespace: 'QCE/SCF_V2',\n href: 'https://cloud.tencent.com/document/product/248/45130',\n },\n {\n service: 'cfs',\n get label() {\n return t('CFS');\n },\n namespace: 'QCE/CFS',\n href: 'https://cloud.tencent.com/document/product/248/45143',\n },\n {\n service: 'cos',\n get label() {\n return t('COS');\n },\n namespace: 'QCE/COS',\n href: 'https://cloud.tencent.com/document/product/248/45140',\n },\n {\n service: 'ckafka',\n get label() {\n return t('CKAFKA');\n },\n namespace: 'QCE/CKAFKA',\n href: 'https://cloud.tencent.com/document/product/248/45121',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmq',\n get label() {\n return t('CMQ');\n },\n namespace: 'QCE/CMQ',\n href: 'https://cloud.tencent.com/document/product/248/45114',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmqTopic',\n get label() {\n return t('CMQTOPIC');\n },\n namespace: 'QCE/CMQTOPIC',\n href: 'https://cloud.tencent.com/document/product/248/45113',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmq',\n get label() {\n return t('TDMQ');\n },\n namespace: 'QCE/TDMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRocketmq',\n get label() {\n return t('TDMQ_ROCKETMQ');\n },\n namespace: 'QCE/ROCKETMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRabbitmq',\n get label() {\n return t('TDMQ_RABBITMQ');\n },\n namespace: 'QCE/RABBITMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'dcx',\n get label() {\n return t('DCX');\n },\n namespace: 'QCE/DCX',\n href: 'https://cloud.tencent.com/document/product/248/45101',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'dc',\n get label() {\n return t('DC');\n },\n namespace: 'QCE/DC',\n href: 'https://cloud.tencent.com/document/product/248/45102',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'cpm',\n get label() {\n return t('CPM');\n },\n namespace: 'QCE/CPM',\n href: 'https://cloud.tencent.com/document/product/248/45881',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmPcx',\n get label() {\n return t('BM_PCX');\n },\n namespace: 'QCE/BM_PCX',\n href: 'https://cloud.tencent.com/document/product/248/45884',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmLb',\n get label() {\n return t('BM_LB');\n },\n namespace: 'QCE/BM_LB',\n href: 'https://cloud.tencent.com/document/product/248/45886',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmIntraLb',\n get label() {\n return t('BM_INTRA_LB');\n },\n namespace: 'QCE/BM_INTRA_LB',\n href: 'https://cloud.tencent.com/document/product/248/45885',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'ces',\n get label() {\n return t('CES');\n },\n namespace: 'QCE/CES',\n href: 'https://cloud.tencent.com/document/product/248/45129',\n },\n {\n service: 'mrHDFS',\n get label() {\n return `${t('elastic_mapReduce')}(HDFS)`;\n },\n namespace: 'QCE/TXMR_HDFS',\n href: 'https://cloud.tencent.com/document/product/248/44797',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHBASE',\n get label() {\n return `${t('elastic_mapReduce')}(HBASE)`;\n },\n namespace: 'QCE/TXMR_HBASE',\n href: 'https://cloud.tencent.com/document/product/248/45567',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHIVE',\n get label() {\n return `${t('elastic_mapReduce')}(HIVE)`;\n },\n namespace: 'QCE/TXMR_HIVE',\n href: 'https://cloud.tencent.com/document/product/248/45569',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrNODE',\n get label() {\n return `${t('elastic_mapReduce')}(NODE)`;\n },\n namespace: 'QCE/TXMR_NODE',\n href: 'https://cloud.tencent.com/document/product/248/45570',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrPRESTO',\n get label() {\n return `${t('elastic_mapReduce')}(PRESTO)`;\n },\n namespace: 'QCE/TXMR_PRESTO',\n href: 'https://cloud.tencent.com/document/product/248/45571',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrSPARK',\n get label() {\n return `${t('elastic_mapReduce')}(SPARK)`;\n },\n namespace: 'QCE/TXMR_SPARK',\n href: 'https://cloud.tencent.com/document/product/248/45572',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrYARN',\n get label() {\n return `${t('elastic_mapReduce')}(YARN)`;\n },\n namespace: 'QCE/TXMR_YARN',\n href: 'https://cloud.tencent.com/document/product/248/45573',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrZOOKEEPER',\n get label() {\n return `${t('elastic_mapReduce')}(ZOOKEEPER)`;\n },\n namespace: 'QCE/TXMR_ZOOKEEPER',\n href: 'https://cloud.tencent.com/document/product/248/45574',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'cbs',\n get label() {\n return t('BLOCK_STORAGE');\n },\n namespace: 'QCE/BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/362/2345',\n },\n {\n service: 'apigateway',\n get label() {\n return t('APIGATEWAY');\n },\n namespace: 'QCE/APIGATEWAY',\n href: 'https://cloud.tencent.com/document/product/248/45127',\n },\n {\n service: 'qaap',\n get label() {\n return t('QAAP');\n },\n namespace: 'QCE/QAAP',\n href: 'https://cloud.tencent.com/document/product/608',\n },\n {\n service: 'ecm',\n get label() {\n return t('ECM');\n },\n hideRegion: true,\n namespace: 'QCE/ECM',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmBlockStorage',\n get label() {\n return t('ECM_BLOCK_STORAGE');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmLb',\n get label() {\n return t('ECM_LB');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_LB',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'gse',\n get label() {\n return t('GSE');\n },\n namespace: 'QCE/GSE',\n href: 'https://cloud.tencent.com/document/product/1165',\n },\n {\n service: 'cls',\n get label() {\n return t('CLS');\n },\n namespace: 'QCE/CLS',\n href: 'https://cloud.tencent.com/document/product/614',\n },\n {\n service: 'tke',\n get label() {\n return t('TKE');\n },\n namespace: 'QCE/TKE2',\n href: 'https://cloud.tencent.com/document/product/457',\n },\n {\n service: 'ecdn',\n get label() {\n return t('ECDN');\n },\n namespace: 'QCE/DSA',\n href: 'https://cloud.tencent.com/document/product/570',\n },\n // {\n // service: 'lighthouse',\n // label: '轻量应用服务器(LIGHTHOUSE)',\n // namespace: 'QCE/LIGHTHOUSE',\n // href: 'https://cloud.tencent.com/document/product/1207',\n // },\n // {\n // service: 'tsf',\n // label: ' 微服务平台(TSF)',\n // namespace: 'QCE/TSF',\n // href: 'https://cloud.tencent.com/document/product/649',\n // },\n {\n service: 'waf',\n get label() {\n return t('WAF');\n },\n // hideRegion: true,\n namespace: 'QCE/WAF',\n href: 'https://cloud.tencent.com/document/product/627',\n },\n];\nconst Datasources = {};\nconst InitStates = {};\nconst InstanceAliasList = {};\nconst GetInstanceQueryParams = {};\n\n/**\n * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射\n */\nconst hackModuleName = {\n // lb_loadBalance: 'loadBalance',\n postgresql: 'postgres',\n mongodb: 'mongoDB',\n clb: ['lbPrivate', 'lbPublic', 'loadBalance'],\n mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER'],\n};\n\nconst requireModule = (require as any).context('./', true, /^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$/);\n\nrequireModule.keys().forEach((filePath) => {\n let [, moduleName, fileName] = filePath.split('/');\n\n // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码\n moduleName = hackModuleName[moduleName] ?? moduleName;\n\n // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理\n [].concat(moduleName).forEach((module: string) => {\n // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应\n const service = module.replace(/_([a-zA-Z])/g, (_, b) => b.toUpperCase());\n const prefix = service.toUpperCase(); // 命名规则\n\n // datasource\n if (fileName === 'datasource.ts') {\n const Cls = require(`${filePath}`).default;\n\n // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource\n Datasources[`${prefix}Datasource`] = class {\n constructor(...params) {\n const target = new Cls(...params, service);\n target.service = service;\n // eslint-disable-next-line no-constructor-return\n return target;\n }\n };\n }\n // query\n if (fileName === 'query.ts') {\n require(`${filePath}`);\n }\n // query_def\n if (fileName === 'query_def.ts') {\n const alias = `${prefix}InstanceAliasList`;\n const getParams = `${prefix}GetInstanceQueryParams`;\n\n const target = require(`${filePath}`);\n\n InitStates[service] = target.default; // FIXME: 这里需不需要深拷贝?\n InstanceAliasList[alias] = target[alias] ?? target['InstanceAliasList'];\n GetInstanceQueryParams[getParams] = target[getParams] ?? target['GetInstanceQueryParams'];\n }\n });\n});\n\nexport {\n InitStates as InitServiceState,\n SERVICES,\n Datasources,\n InstanceAliasList,\n GetInstanceQueryParams,\n // DefaultDimensions\n};\n\n// console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams);\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { LBInstanceAliasList, LBInvalidDemensions } from './query_def';\n\nexport default class SCFDatasource extends BaseDatasource {\n Namespace = 'QCE/LB';\n InstanceAliasList = LBInstanceAliasList;\n InvalidDimensions = LBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'AddressId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['EIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n },\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('eip')\n );\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { LBFilterDescriptor } from './query_def';\n\nexport class LBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n // $scope.LBQueryDescriptor = LBQueryDescriptor;\n $scope.LBFilterDescriptor = LBFilterDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function lbQuery() {\n return {\n template: template,\n controller: LBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lbQuery', lbQuery);\n","import _ from 'lodash';\n\n// export const LBQueryDescriptor = [{\n// key: 'Offset',\n// enDescriptor: 'Offset',\n// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n// link: '',\n// type: 'inputnumber',\n// min: 0,\n// },\n// {\n// key: 'Limit',\n// enDescriptor: 'Limit',\n// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000',\n// link: '',\n// type: 'inputnumber',\n// min: 1,\n// max: 2000,\n// },\n// {\n// key: 'AddressId',\n// enDescriptor: 'Address Id',\n// cnDescriptor: '标识 EIP 的唯一 ID ',\n// link: '',\n// type: 'inputmulti',\n// }\n// ];\n\nexport const LBFilterDescriptor = [\n {\n key: 'address-id',\n enDescriptor: 'Address ID',\n cnDescriptor: 'EIP 的唯一 ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'Address Name',\n cnDescriptor: 'EIP 名称 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'Address IP',\n cnDescriptor: 'EIP 的 IP 地址 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'Address Status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n list: [\n { value: 'CREATING', text: 'CREATING' },\n { value: 'BINDING', text: 'BINDING' },\n { value: 'BIND', text: 'BIND' },\n { value: 'UNBINDING', text: 'UNBINDING' },\n { value: 'UNBIND', text: 'UNBIND' },\n { value: 'OFFLINING', text: 'OFFLINING' },\n { value: 'BIND_ENI', text: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: 'EIP 绑定的内网 IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'Network Interface ID',\n cnDescriptor: 'EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'Arrears',\n cnDescriptor: 'EIP 是否欠费 ',\n link: '',\n type: 'select',\n list: [\n { text: '正常', value: 'FALSE' },\n { text: '欠费', value: 'TRUE' },\n ],\n },\n];\n\n// const LBFilterFields = {\n// \"address-id\": [],\n// \"address-name\": [],\n// \"address-ip\": [],\n// \"address-status \": [],\n// \"instance-id \": [],\n// \"private-ip-address\": [],\n// \"network-interface-id \": [],\n// \"is-arrears \": [],\n// };\n\nconst InstanceKey = 'AddressIds';\nconst LB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n [InstanceKey]: [''],\n Filters: {\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status ': [],\n 'instance-id ': [],\n 'private-ip-address': [],\n 'network-interface-id ': [],\n 'is-arrears ': [],\n },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries[InstanceKey])) {\n const InstanceIds = _.compact(queries[InstanceKey]);\n if (_.uniq(InstanceIds).length > 0) {\n params[InstanceKey] = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\n// 维度eip对应于实例中的哪个字段?映射\nconst LBInvalidDemensions = {\n eip: 'AddressIp',\n};\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n// 从monitor维度到LB实例对应字段的映射\n// export const metric2Instance = {\n// functionName: 'FunctionName',\n// namespace: 'Namespace'\n// };\n\nexport default LB_STATE;\nexport {\n LBInstanceAliasList,\n LBInvalidDemensions,\n templateQueryIdMap,\n GetInstanceQueryParams as LBGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\nimport {\n LIGHTHOUSEInstanceAliasList,\n templateQueryIdMap,\n LighthouseInvalidDemensions,\n modifyDimensons,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class LighthouseDatasource extends BaseDatasource {\n Namespace = 'QCE/LIGHTHOUSE';\n InstanceAliasList = LIGHTHOUSEInstanceAliasList;\n InvalidDimensions = LighthouseInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'lighthouse',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'lighthouse' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'lighthouse' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { LighthouseFilterFieldsDescriptor } from './query_def';\n\nexport class LighthouseQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LighthouseFilterFieldsDescriptor = LighthouseFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('lighthouse', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function lighthouseQuery() {\n return {\n template: template,\n controller: LighthouseQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lighthouseQuery', lighthouseQuery);\n","import _ from 'lodash';\n\nconst LighthouseStateType = [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n];\n\nconst LighthouseFilterFields = {\n zone: [],\n 'instance-name': [],\n 'instance-state': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n};\n\nconst LighthouseFilterFieldsDescriptor = [\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'Instance State',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: LighthouseStateType,\n },\n];\n\nconst LIGHTHOUSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...LighthouseFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst LighthouseInvalidDemensions = {\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default LIGHTHOUSE_STATE;\n\nexport {\n LighthouseFilterFieldsDescriptor,\n LIGHTHOUSEInstanceAliasList,\n LighthouseInvalidDemensions,\n templateQueryIdMap,\n modifyDimensons,\n GetInstanceQueryParams as LIGHTHOUSEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n MONGODBInstanceAliasList,\n MONGODBInvalidDemensions,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MONGODBDatasource extends BaseDatasource {\n Namespace = 'QCE/CMONGO';\n InstanceAliasList = MONGODBInstanceAliasList;\n ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName'];\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n InstanceReqConfig = {\n service: 'mongodb',\n action: 'DescribeDBInstances',\n responseField: 'InstanceDetails',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getInvalidDimensions(selfIns: any, target: any) {\n if (target.node && target.node !== '') {\n return { target: 'Node' };\n }\n if (target.replica && target.replica !== '') {\n return { target: 'Replica' };\n }\n return MONGODBInvalidDemensions;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeReplicas') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n let { replicaalias } = query;\n replicaalias = this.ReplicaAliasList.includes(replicaalias) ? replicaalias : this.templateQueryIdMap.replica;\n const result = _.map(_.get(res, 'ReplicaSets', []), (item) => {\n const replicaAlias = this.formatVariableDisplay(item, display, replicaalias, this.ReplicaAliasList);\n item._InstanceAliasValue = replicaAlias || item[this.templateQueryIdMap.replica];\n return { text: item.ReplicaSetId, value: item.ReplicaSetId };\n });\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Replica.dim_KeyInStorage,\n _.get(res, 'ReplicaSets', [])\n );\n return result;\n }\n if (action === 'DescribeReplicaNodes') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n const { replicasetid } = query;\n const targetReplica = _.find(_.get(res, 'ReplicaSets', []), { ReplicaSetId: this.getVariable(replicasetid) });\n let result = _.times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return { text: nodeId, value: nodeId };\n });\n if (targetReplica) {\n result = [\n { text: `${targetReplica.ReplicaSetId}-node-primary`, value: `${targetReplica.ReplicaSetId}-node-primary` },\n ...result,\n ];\n }\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Node.dim_KeyInStorage,\n result.map((item) => ({ NodeId: item.value, _InstanceAliasValue: item.value }))\n );\n return result;\n }\n\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { map, get, find, times } from 'lodash';\nimport { MONGODBFieldsDescriptor, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class MongoDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.MONGODBFieldsDescriptor = MONGODBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.onInstanceChange = (n, o) => {\n if (n === o) {\n return;\n }\n $scope.target.replica = '';\n $scope.target.node = '';\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, type) => {\n const { instance, replica } = $scope.target;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const [res] = await $scope.datasource.getServiceFn(service, 'getInstances')(region, {\n InstanceIds: [instanceId],\n });\n if (type === 'replica') {\n return map(get(res, 'ReplicaSets', []), (item) => {\n item._InstanceAliasValue = item.ReplicaSetId;\n return { text: item.ReplicaSetId, value: JSON.stringify(item) };\n });\n }\n if (type === 'node' && replica !== '') {\n const replicaId = $scope.getVariableId(replica, 'replica');\n const targetReplica = find(get(res, 'ReplicaSets', []), { ReplicaSetId: replicaId });\n const options = times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return {\n text: nodeId,\n value: JSON.stringify({ NodeId: nodeId, _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${nodeId}` }),\n };\n });\n return [\n {\n text: `${targetReplica.ReplicaSetId}-node-primary`,\n value: JSON.stringify({\n NodeId: `${targetReplica.ReplicaSetId}-node-primary`,\n _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${`${targetReplica.ReplicaSetId}-node-primary`}`,\n }),\n },\n ...options,\n ];\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n\n\n\n\n`;\n\nexport function mongodbQuery() {\n return {\n template: template,\n controller: MongoDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onRefresh: '&',\n onChange: '&',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\n\ncoreModule.directive('mongodbQuery', mongodbQuery);\n","import _ from 'lodash';\nconst InstanceTypes = [\n { text: '所有实例', value: 0 },\n { text: '正式实例', value: 1 },\n { text: '临时实例', value: 2 },\n { text: '只读实例', value: 3 },\n { text: '正式,只读,灾备实例', value: -1 },\n];\n\nconst ClusterTypes = [\n { text: '副本集实例', value: 0 },\n { text: '分片实例', value: 1 },\n { text: '所有实例', value: -1 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '实例有效', value: 2 },\n { text: '实例已过期', value: -2 },\n];\n\nconst PayMode = [\n { text: '按量计费', value: 0 },\n { text: '包年包月', value: 1 },\n { text: '按量包年包月计费', value: -1 },\n];\n\nconst OrderBy = [\n { text: 'ProjectId', value: 'ProjectId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n];\n\nconst OrderByType = [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n];\n\nconst MongoDBFields = {\n InstanceIds: [],\n InstanceType: {},\n ClusterType: {},\n Status: [],\n VpcId: '',\n SubnetId: '',\n PayMode: {},\n Limit: 20,\n Offset: 0,\n OrderBy: '',\n OrderByType: '',\n};\n\nconst MONGODBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstancesIds',\n cnDescriptor: '实例名称',\n type: 'inputmulti',\n },\n {\n key: 'InstanceType',\n enDescriptor: 'InstanceType',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'ClusterType',\n enDescriptor: 'ClusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: ClusterTypes,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId',\n link: '',\n type: 'input',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '付费类型',\n link: '',\n type: 'select',\n list: PayMode,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderByType,\n },\n];\n\nconst MONGODB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...MongoDBFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst MONGODBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst MONGODBInvalidDemensions = {\n target: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n replica: 'ReplicaSetId',\n};\n\nconst queryMonitorExtraConfg = {\n Replica: {\n dim_KeyInStorage: 'ReplicaSets',\n dim_KeyInTarget: 'replica',\n dim_KeyInMap: 'ReplicaSetId',\n dim_KeyInIns: 'ReplicaSetId',\n },\n Node: {\n dim_KeyInStorage: 'ReplicaNodeSets',\n dim_KeyInTarget: 'node',\n dim_KeyInMap: 'NodeId',\n dim_KeyInIns: 'NodeId',\n },\n};\nexport default MONGODB_STATE;\nexport {\n MONGODBFieldsDescriptor,\n MONGODBInvalidDemensions,\n MONGODBInstanceAliasList,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as MONGODBGetInstanceQueryParams,\n};\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MrHdfsDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n InstanceReqConfig = {\n service: 'emr',\n action: 'DescribeInstances',\n responseField: 'ClusterList',\n interceptor: {\n request: (params) => ({\n ...params,\n DisplayStrategy: params.DisplayStrategy || 'monitorManage',\n ProjectId: params.ProjectId || -1,\n }), // 设置一些请求参数的 默认值\n response: (data: any[]) => data.map(({ ClusterId, ClusterName }) => ({ ClusterId, ClusterName })),\n },\n };\n\n async fetchAllNodes(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'emr');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeClusterNodes' }\n );\n },\n { ...params, isOffsetPage: true },\n 'NodeList'\n );\n\n // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip }));\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeClusterNodes': {\n const resultT = await this.fetchAllNodes(region, { InstanceId: instance.ClusterId, NodeFlag: 'all' });\n result = resultT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return { text: item[templateQueryIdMap.node], value: item[templateQueryIdMap.node] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.node, resultT);\n\n return result;\n }\n default:\n return [];\n }\n }\n}\n","import { InstanceQueryDescriptor, templateQueryIdMap } from './query_def';\nimport coreModule from 'grafana/app/core/core_module';\n\nconst ExtraFields = [\n {\n label: 'NodeIP',\n field: 'nodeIP',\n },\n];\n\nexport class MrQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return Object.keys($scope.dims ?? {}).some((item: string) => item.startsWith('host4')) ? ExtraFields : [];\n // return ExtraFields;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).ClusterId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'nodeIP') {\n const InstanceId = $scope.getInstanceId();\n let data = $scope.cacheMap[InstanceId];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes');\n const dataT = await fetcher(region, { InstanceId, NodeFlag: 'all' });\n data = dataT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return {\n text: item[templateQueryIdMap.node],\n value: JSON.stringify(item),\n };\n });\n }\n\n // 缓存\n $scope.cacheMap[InstanceId] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function mrQuery() {\n return {\n template: template,\n controller: MrQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('mrQuery', mrQuery);\n","import _ from 'lodash';\n\nexport const InstanceQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 'clusterId' },\n { text: '创建时间', value: 'addTime' },\n { text: '状态', value: 'status' },\n ],\n },\n {\n key: 'Asc',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '降序', value: 0 },\n { text: '升序', value: 1 },\n ],\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '实例所属项目ID',\n link: '',\n type: 'inputnumber',\n },\n {\n key: 'DisplayStrategy',\n enDescriptor: 'DisplayStrategy',\n cnDescriptor: '集群筛选策略',\n link: '',\n type: 'select',\n list: [\n { text: '未销毁的实例', value: 'clusterList' },\n { text: '正常运行的实例', value: 'monitorManage' },\n ],\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = new Proxy(\n {},\n {\n get(target, k, receiver) {\n if (typeof k === 'string') {\n if (k.startsWith('id4')) return 'ClusterId'; // id4****\n if (k.startsWith('host4')) return 'Ip'; // host4***\n }\n return Reflect.get(target, k, receiver);\n },\n has(target, propKey) {\n return true;\n },\n }\n);\n\nexport const templateQueryIdMap = {\n instance: 'ClusterId',\n node: 'Ip',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'nodeIP',\n};\n\n/**\n * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置\n *\n * `key` 的含义:\n * 经过InvalidDemensions处理后的string。topicId => TopicId。\n * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\n *\n * `value` 的含义:\n * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n * 默认取通过InvalidDemsion处理后的key\n * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n * 即:templateQueryIdMap中内容。\n * 联合上面 2 的内容筛选出原始sourceMap\n */\nconst queryMonitorExtraConfg = {\n Ip: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'nodeIP',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['ClusterId', 'ClusterName'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n nodeIP: '',\n queries: {\n Offset: 0,\n Limit: 10,\n DisplayStrategy: '',\n OrderBy: {},\n Order: {},\n InstanceIds: [],\n ProjectId: -1,\n OrderField: '',\n Asc: '',\n },\n};\n","import _ from 'lodash';\nimport { NATGATEWAYInstanceAliasList, NATInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class NATGATEWAYDatasource extends BaseDatasource {\n Namespace = 'QCE/NAT_GATEWAY';\n InstanceAliasList = NATGATEWAYInstanceAliasList;\n InvalidDimensions = NATInvalidDemensions;\n templateQueryIdMap = {\n instance: 'NatGatewayId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNatGateways',\n responseField: 'NatGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { NATGatewayFilterFieldsDescriptor } from './query_def';\n\nexport class NatGatewayQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.NATGatewayFilterFieldsDescriptor = NATGatewayFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function natGatewayQuery() {\n return {\n template: template,\n controller: NatGatewayQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('natGatewayQuery', natGatewayQuery);\n","import _ from 'lodash';\n\nconst NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName'];\n\nconst NATGatewayFilterFields = {\n 'nat-gateway-id': [],\n 'nat-gateway-name': [],\n 'vpc-id': [],\n};\n\nconst NATGatewayFilterFieldsDescriptor = [\n {\n key: 'nat-gateway-id',\n enDescriptor: 'NatGateway ID',\n cnDescriptor: 'NAT网关统一 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'nat-gateway-name',\n enDescriptor: 'NatGateway Name',\n cnDescriptor: 'NatGateway Name',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst NATGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NatGatewayId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n NatGatewayIds: [''],\n Filters: { ...NATGatewayFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.NatGatewayIds)) {\n const NatGatewayIds = _.compact(queries.NatGatewayIds);\n if (_.uniq(NatGatewayIds).length > 0) {\n params.InstanceIds = _.uniq(NatGatewayIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst templateQueryIdMap = {\n instance: 'NatGatewayId',\n};\n\nconst NATInvalidDemensions = {\n natId: 'NatGatewayId',\n};\n\nexport default NATGATEWAY_STATE;\nexport {\n NATGatewayFilterFieldsDescriptor,\n NATGATEWAYInstanceAliasList,\n templateQueryIdMap,\n NATInvalidDemensions,\n GetInstanceQueryParams as NATGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { OVCDNInstanceAliasList, OVCDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class OVCDNDatasource extends BaseDatasource {\n Namespace = 'QCE/OV_CDN';\n InstanceAliasList = OVCDNInstanceAliasList;\n InvalidDimensions = OVCDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { OVCDNFilterFieldsDescriptor } from './query_def';\n\nexport class OVCDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.OVCDNFilterFieldsDescriptor = OVCDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function ovCdnQuery() {\n return {\n template: template,\n controller: OVCDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('ovCdnQuery', ovCdnQuery);\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n serviceType: [],\n projectId: [],\n domainType: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n tagKey: [],\n};\n\nconst OVCDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst OVCDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst OVCDNInstanceAliasList = ['Domain', 'ResourceId'];\n\nconst OVCDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default OVCDN_STATE;\nexport {\n OVCDNFilterFieldsDescriptor,\n OVCDNInstanceAliasList,\n templateQueryIdMap,\n OVCDNInvalidDemensions,\n GetInstanceQueryParams as OVCDNGetInstanceQueryParams,\n};\n","import { PCXInstanceAliasList, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo, GetRequestParamsV2, SliceLength } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = PCXInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'xx',\n action: 'xx',\n responseField: 'xx',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getInstances(region = 'ap-guangzhou', params = {}) {\n params = { offset: 0, limit: 50, ...params };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n return response.data || [];\n });\n }\n\n /**\n * 模板变量中获取全量的 PCX 实例列表\n * @param region 地域信息\n */\n getVariableInstances(region, query) {\n let result: any[] = [];\n const params = { Offset: 0, Limit: 50, ...query };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n result = response.data || [];\n const total = response.totalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 50);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n getVpcId(region, params: any = {}) {\n params = { Offset: 0, Limit: 20, ...params };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n return _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n });\n }\n\n getVpcIds(region) {\n let result: any[] = [];\n const params: any = { Offset: 0, Limit: 100 };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n result = _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n const total = response.TotalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getVpcId(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n /**\n * 腾讯云 API 2.0 请求接口\n * @param options\n * @param service\n * @param signObj\n */\n async doRequestV2(options, service, signObj: any = {}) {\n options = await GetRequestParamsV2(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { PCXFieldsDescriptor } from './query_def';\n\nexport class PCXQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.PCXFieldsDescriptor = PCXFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'vpcId':\n return $scope.getVpcIds();\n default:\n return [];\n }\n };\n\n $scope.getVpcIds = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getVpcIds('pcx', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function pcxQuery() {\n return {\n template: template,\n controller: PCXQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('pcxQuery', pcxQuery);\n","import _ from 'lodash';\nconst namespace = 'QCE/PCX';\n\nconst PCXFields = {\n limit: 20,\n offset: 0,\n peeringConnectionId: '',\n peeringConnectionName: '',\n vpcId: '',\n state: undefined,\n};\n\nconst PCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'peeringConnectionId',\n queries: { ...PCXFields },\n};\n\nconst StateTypes = [\n { text: '申请中', value: 0 },\n { text: '连接成功', value: 1 },\n { text: '已过期', value: 2 },\n { text: '对端已拒绝', value: 3 },\n { text: '对端已删除', value: 4 },\n];\n\nconst PCXFieldsDescriptor = [\n {\n key: 'offset',\n enDescriptor: 'offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'limit',\n enDescriptor: 'limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 50,\n },\n {\n key: 'peeringConnectionId',\n enDescriptor: 'PeeringConnection Id',\n cnDescriptor: '私有网络对等连接 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'peeringConnectionName',\n enDescriptor: 'PeeringConnection Name',\n cnDescriptor: '对等连接名称',\n link: '',\n type: 'input',\n },\n {\n key: 'vpcId',\n enDescriptor: 'vpcId',\n cnDescriptor: '发起方私有网络 ID 值',\n link: 'https://cloud.tencent.com/document/api/215/1372',\n type: 'dropdown',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '连接状态',\n link: '',\n type: 'select',\n list: StateTypes,\n },\n];\n\nconst PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'peeringConnectionId',\n};\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.limit = _.get(queries, 'limit', 20) || 20;\n params.offset = _.get(queries, 'offset', 0) || 0;\n queries = _.omit(queries, ['offset', 'limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nexport default PCX_STATE;\n\nexport {\n PCXInstanceAliasList,\n PCXFieldsDescriptor,\n templateQueryIdMap,\n namespace,\n GetInstanceQueryParams as PCXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n POSTGRESInstanceAliasList,\n PostgreInvalidDemensions,\n namespace,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = POSTGRESInstanceAliasList;\n InvalidDimensions = PostgreInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'postgres',\n action: 'DescribeDBInstances',\n responseField: 'DBInstanceSet',\n };\n\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nconst namespace = 'QCE/POSTGRES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'postgresQuery';\n\nconst PostgresFields = {\n 'db-instance-id': [],\n 'db-instance-name': [],\n};\n\nconst PostgresFieldsDescriptor: FildDescriptorType = [\n {\n key: 'db-instance-id',\n enDescriptor: 'DB Instance ID',\n cnDescriptor: 'DB 实例ID',\n link: '',\n type: 'inputMulti',\n min: 0,\n },\n {\n key: 'db-instance-name',\n enDescriptor: 'DB Instance Name',\n cnDescriptor: 'DB 实例名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773',\n namespace,\n fieldDescriptor: PostgresFieldsDescriptor,\n};\nconst POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName'];\n\nconst POSTGRES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DBInstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...PostgresFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nconst PostgreInvalidDemensions = {\n uid: 'DBInstanceId',\n resourceId: 'DBInstanceId',\n};\nconst templateQueryIdMap = {\n instance: 'DBInstanceId',\n};\nexport default POSTGRES_STATE;\n\nexport {\n PostgresFieldsDescriptor,\n POSTGRESInstanceAliasList,\n templateQueryIdMap,\n modifyDimensons,\n namespace,\n queryEditorName,\n queryEditorConfig,\n PostgreInvalidDemensions,\n GetInstanceQueryParams as POSTGRESGetInstanceQueryParams,\n};\n","import { get } from 'lodash';\nimport { QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class QAAPDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = QAAPInstanceAliasList;\n InvalidDimensions = QAAPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gaap',\n action: 'DescribeProxies',\n responseField: 'ProxySet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n // MetricReqConfig = {\n // resultFilter: modifyDimensons,\n // };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n get(item, 'Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions[0]') === 'channelId'\n );\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/QAAP';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'qaapQuery';\n\nconst QAAPInvalidDemensions = {\n channelId: 'InstanceId',\n};\n\nconst QAAPInstanceAliasList = ['InstanceId'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst QAAPFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: [],\n AccessRegion: [],\n RealServerRegion: [],\n GroupId: [],\n};\n\nconst QAAPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'AccessRegion',\n enDescriptor: 'AccessRegion',\n cnDescriptor: '接入地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'RealServerRegion',\n enDescriptor: 'RealServerRegion',\n cnDescriptor: '源站地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'GroupId',\n enDescriptor: 'GroupId',\n cnDescriptor: '通道组ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963',\n namespace,\n fieldDescriptor: QAAPFilterFieldsDescriptor,\n};\n\nconst QAAP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: QAAPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n // metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['netDetectId'];\n // });\n return metricTmp;\n}\nexport default QAAP_STATE;\nexport {\n QAAPFilterFieldsDescriptor,\n templateQueryIdMap,\n QAAPInstanceAliasList,\n QAAPInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as QAAPGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { REDISInstanceAliasList, RedisInvalidDemensions, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = 'QCE/REDIS';\n InstanceAliasList = REDISInstanceAliasList;\n InvalidDimensions = RedisInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '1m' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => isValidMetric(item));\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { RedisFieldsDescriptor } from './query_def';\n\nexport class RedisQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisFieldsDescriptor = RedisFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function redisQuery() {\n return {\n template: template,\n controller: RedisQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('redisQuery', redisQuery);\n","import _ from 'lodash';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDIS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return dimension.length === 1 && _.indexOf(dimension, 'instanceid') !== -1;\n}\n\nconst REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisInvalidDemensions = {\n redis_uuid: 'InstanceId',\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default REDIS_STATE;\nexport {\n RedisFieldsDescriptor,\n RedisInvalidDemensions,\n templateQueryIdMap,\n REDISInstanceAliasList,\n isValidMetric,\n GetInstanceQueryParams as REDISGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n REDISMEMInstanceAliasList,\n namespace,\n RedisMemInvalidDemensions,\n templateQueryIdMap,\n NodeType,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = REDISMEMInstanceAliasList;\n InvalidDimensions = RedisMemInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [RedisMemInvalidDemensions.pnodeid, RedisMemInvalidDemensions.rnodeid];\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '5s' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getInstanceNodeInfo(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'redis');\n\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeInstanceNodeInfo' }\n );\n },\n {\n InstanceId: instanceId,\n },\n NodeType\n );\n\n return res;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeInstanceNodeInfo') {\n const rs = await this.getInstanceNodeInfo({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const { nodetype } = query;\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1\n ? []\n : _.map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { map } from 'lodash';\nimport { RedisMemFieldsDescriptor, templateQueryIdMap, NodeType, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class RedisMemQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisMemFieldsDescriptor = RedisMemFieldsDescriptor;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.rnodeid = '';\n $scope.target.pnodeid = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {}\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, nodetype) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({ region, instanceId });\n\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1 ? [] : map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n\n\n\n`;\n\nexport function redisMemQuery() {\n return {\n template: template,\n controller: RedisMemQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\n\ncoreModule.directive('redisMemQuery', redisMemQuery);\n","import _ from 'lodash';\n\nconst namespace = 'QCE/REDIS_MEM';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisMemFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDISMEM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n rnodeid: '',\n pnodeid: '',\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisMemInvalidDemensions = {\n instanceid: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst NodeType = ['Redis', 'Proxy'];\n\nexport default REDISMEM_STATE;\nexport {\n RedisMemFieldsDescriptor,\n RedisMemInvalidDemensions,\n REDISMEMInstanceAliasList,\n templateQueryIdMap,\n namespace,\n NodeType,\n GetInstanceQueryParams as REDISMEMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n templateQueryIdMap,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class SCFDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/SCF_V2';\n this.InstanceAliasList = SCFInstanceAliasList;\n this.InvalidDimensions = SCFInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'scf',\n action: 'ListFunctions',\n responseField: 'Functions',\n };\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('functionName') &&\n item.Dimensions?.[0]?.Dimensions?.includes('namespace') &&\n !item.MetricName.startsWith('Name')\n );\n }\n\n getVersions(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'scf');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'ListVersionByFunction' }\n ).then((response) => {\n return response.Versions;\n });\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'ListVersionByFunction') {\n const rs = await this.getVersions(region, { FunctionName: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.version];\n return {\n text: o[this.templateQueryIdMap.version],\n value: o[this.templateQueryIdMap.version],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.version, rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { SCFQueryDescriptor, templateQueryIdMap } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.SCFQueryDescriptor = SCFQueryDescriptor;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).FunctionName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n // let { instance, region } = target;\n const FunctionName = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region);\n if (!FunctionName || !region) return [];\n\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n\n return fetcher(region, { FunctionName }).then((res) => {\n // console.log(res, 'res');\n const result = res.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.version];\n return {\n text: o[templateQueryIdMap.version],\n value: JSON.stringify(o),\n };\n });\n return result;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n },\n };\n}\ncoreModule.directive('scfQuery', scfQuery);\n","import _ from 'lodash';\n\nexport const SCFQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '支持FunctionName模糊匹配',\n link: '',\n type: 'input',\n },\n {\n key: 'Namespace',\n enDescriptor: 'Namespace',\n cnDescriptor: '云函数命名空间',\n link: '',\n type: 'input',\n },\n {\n key: 'Description',\n enDescriptor: 'Description',\n cnDescriptor: '函数描述,支持模糊搜索',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'AddTime', value: 'AddTime' },\n { text: 'ModTime', value: 'ModTime' },\n { text: 'FunctionName', value: 'FunctionName' },\n ],\n },\n {\n key: 'Order',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n ],\n },\n // {\n // key: 'Filters',\n // enDescriptor: 'Filters',\n // cnDescriptor: '按照标签键值对进行过滤',\n // link: '',\n // type: 'dropdownmulti',\n // },\n];\n\nconst SCF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FunctionName',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n OrderBy: {},\n Order: {},\n SearchKey: '',\n Namespace: '',\n Description: '',\n // Filters: {},\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst SCFInstanceAliasList = ['FunctionId', 'FunctionName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst SCFInvalidDemensions = {\n functionName: 'FunctionName',\n namespace: 'Namespace',\n version: 'Version',\n};\n\nconst templateQueryIdMap = {\n instance: 'FunctionName',\n version: 'Version',\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n version: 'version',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Version: {\n dim_KeyInStorage: keyInStorage.version,\n dim_KeyInTarget: 'version',\n dim_KeyInMap: templateQueryIdMap.version,\n },\n};\nexport default SCF_STATE;\nexport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n queryMonitorExtraConfg,\n regionSupported,\n templateQueryIdMap,\n keyInStorage,\n GetInstanceQueryParams as SCFGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\nexport const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import {\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = SQLSERVERInstanceAliasList;\n InvalidDimensions = SQLSERVERInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'sqlserver',\n action: 'DescribeDBInstances',\n responseField: 'DBInstances',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n getFilterDropdown({ field, region }) {\n if (field === 'Zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/SQLSERVER';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'sqlserverQuery';\n\nconst SQLSERVERInvalidDemensions = {\n resourceId: 'InstanceId',\n};\n\nconst SQLSERVERInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst SQLSERVERNETFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: null,\n Status: {},\n InstanceIdSet: [],\n PayMode: {},\n VpcId: '',\n SubnetId: '',\n VipSet: [],\n InstanceNameSet: [],\n VersionSet: [],\n Zone: '',\n};\n\nconst SQLSERVERNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: [\n { text: '申请中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '受限运行中 (主备切换中)', value: 3 },\n { text: '已隔离', value: 4 },\n { text: '回收中', value: 5 },\n { text: '已回收', value: 6 },\n { text: '任务执行中', value: 7 },\n { text: '已下线', value: 8 },\n { text: '实例扩容中', value: 9 },\n { text: '实例迁移中', value: 10 },\n { text: '只读', value: 11 },\n { text: '重启中', value: 12 },\n ],\n },\n {\n key: 'InstanceIdSet',\n enDescriptor: 'InstanceIdSet',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '包年包月', value: 1 },\n { text: '按量计费', value: 0 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属VPC的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '实例所属子网的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VipSet',\n enDescriptor: 'VipSet',\n cnDescriptor: '实例内网地址列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNameSet',\n enDescriptor: 'InstanceNameSet',\n cnDescriptor: '实例名称列表, 模糊查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VersionSet',\n enDescriptor: 'VersionSet',\n cnDescriptor: '实例版本代号列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Zone',\n enDescriptor: 'Zone',\n cnDescriptor: '实例可用区',\n link: '',\n type: 'dropdown',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969',\n namespace,\n fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor,\n};\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-moscow' },\n { value: 'na-siliconvalley' },\n];\nconst SQLSERVER_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: SQLSERVERNETFilterFields,\n};\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default SQLSERVER_STATE;\nexport {\n SQLSERVERNETFilterFieldsDescriptor,\n templateQueryIdMap,\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // 对应产品的service的全大写拼接InstanceQueryParams\n GetInstanceQueryParams as SQLSERVERGetInstanceQueryParams,\n};\n","import { TCAPLUSInstanceAliasList, TCAPLUSInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TCAPLUSInstanceAliasList;\n InvalidDimensions = TCAPLUSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tcaplusdb',\n action: 'DescribeTables',\n responseField: 'TableInfos',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/tcaplusdb',\n },\n 'tcaplusdb',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionInfos || [], (item) => {\n return {\n text: t(item.RegionName),\n value: item.RegionName,\n };\n });\n });\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TCAPLUS';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tcaplusQuery';\n\nconst TCAPLUSInvalidDemensions = {\n // TableInstanceId: 'TableInstanceId',\n // ClusterId: 'ClusterId',\n};\n\n// 需和文件名对应\nconst TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName'];\n\nconst templateQueryIdMap = {\n instance: 'TableInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst TCAPLUSFilterFields = {\n Limit: 20,\n Offset: 0,\n ClusterId: '',\n TableGroupIds: [],\n\n TableName: '',\n TableInstanceId: '',\n TableIdlType: {},\n TableType: {},\n ListElementNum: null,\n ReservedVolume: null,\n ReservedReadQps: null,\n ReservedWriteQps: null,\n Memo: '',\n FileName: '',\n FileExtType: '',\n FileSize: null,\n FileContent: '',\n};\n\nconst TCAPLUSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ClusterId',\n enDescriptor: 'ClusterId',\n cnDescriptor: '表格所属集群ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableGroupIds',\n enDescriptor: 'TableGroupIds',\n cnDescriptor: '表格组ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'TableName',\n enDescriptor: 'TableName',\n cnDescriptor: '表格名称',\n link: '',\n type: 'input',\n },\n {\n key: 'TableInstanceId',\n enDescriptor: 'TableInstanceId',\n cnDescriptor: '表实例ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableIdlType',\n enDescriptor: 'TableIdlType',\n cnDescriptor: '表格描述语言类型',\n link: '',\n type: 'select',\n list: [\n { text: 'PROTO', value: 'PROTO' },\n { text: 'TDR', value: 'TDR' },\n ],\n },\n {\n key: 'TableType',\n enDescriptor: 'TableType',\n cnDescriptor: '表格数据结构类型',\n link: '',\n type: 'select',\n list: [\n { text: 'GENERIC', value: 'GENERIC' },\n { text: 'LIST', value: 'LIST' },\n ],\n },\n {\n key: 'ListElementNum',\n enDescriptor: 'ListElementNum',\n cnDescriptor: 'LIST表元素个数',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedVolume',\n enDescriptor: 'ReservedVolume',\n cnDescriptor: '表格预留容量(GB)',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedReadQps',\n enDescriptor: 'ReservedReadQps',\n cnDescriptor: '表格预留读CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedWriteQps',\n enDescriptor: 'ReservedWriteQps',\n cnDescriptor: '表格预留写CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Memo',\n enDescriptor: 'Memo',\n cnDescriptor: '表格备注信息',\n link: '',\n type: 'input',\n },\n {\n key: 'FileName',\n enDescriptor: 'FileName',\n cnDescriptor: 'Key回档文件名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileExtType',\n enDescriptor: 'FileExtType',\n cnDescriptor: 'Key回档文件扩展名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileSize',\n enDescriptor: 'FileSize',\n cnDescriptor: 'Key回档文件大小,回档专用',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'FileContent',\n enDescriptor: 'FileContent',\n cnDescriptor: 'Key回档文件内容,回档专用',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664',\n namespace,\n fieldDescriptor: TCAPLUSFilterFieldsDescriptor,\n};\n\nconst TCAPLUS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TableInstanceId',\n queries: TCAPLUSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n params.ClusterId = _.get(queries, 'ClusterId', '') || '';\n params.TableGroupIds = _.get(queries, 'TableGroupIds', []) || [];\n queries = _.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']);\n const SelectedTables: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n SelectedTables[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n SelectedTables[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n SelectedTables[key] = item;\n }\n });\n params.SelectedTables = SelectedTables;\n return params;\n}\n// 和其他产品的展示保持一致\nconst regonsMap = {\n 'ap-beijing': '华北地区(北京)',\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-tokyo': '亚太东北(东京)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'na-siliconvalley': '美国西部(硅谷)',\n};\nexport default TCAPLUS_STATE;\nexport {\n TCAPLUSFilterFieldsDescriptor,\n templateQueryIdMap,\n TCAPLUSInstanceAliasList,\n TCAPLUSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regonsMap,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TCAPLUSGetInstanceQueryParams,\n};\n","import {\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeClusters',\n responseField: 'ClusterSet',\n };\n extraActionMap = {\n DescribeTopics: {\n service: 'tdmq',\n action: 'DescribeTopics',\n responseField: 'TopicSets',\n pickKey: 'TopicName',\n },\n DescribeEnvironments: {\n service: 'tdmq',\n action: 'DescribeEnvironments',\n responseField: 'EnvironmentSet',\n pickKey: 'EnvironmentId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n // console.log({ rs });\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeTopics') {\n payload.EnvironmentId = this.getVariable(query['environmentid']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'environmentId',\n field: 'environmentId',\n action: 'DescribeEnvironments',\n },\n {\n label: 'topicName',\n field: 'topicName',\n action: 'DescribeTopics',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeTopics: 'topicName',\n DescribeEnvironments: 'environmentId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeTopics') {\n let evId = $scope.target.environmentId;\n try {\n evId = JSON.parse(evId);\n evId = evId[templateQueryIdMap.environmentId];\n } catch (e) {}\n payload.EnvironmentId = evId;\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TDMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n tenantId: 'ClusterId',\n tenant: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// 需和文件名对应\nconst TDMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n topicName: '',\n environmentId: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) {\n item.Dimensions.push('environmentId');\n }\n });\n return metricTmp;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n topicName: 'topicName',\n environmentId: 'environmentId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicName: {\n dim_KeyInStorage: keyInStorage.topicName,\n dim_KeyInTarget: 'topicName',\n dim_KeyInMap: templateQueryIdMap.topicName,\n },\n EnvironmentId: {\n dim_KeyInStorage: keyInStorage.environmentId,\n dim_KeyInTarget: 'environmentId',\n dim_KeyInMap: templateQueryIdMap.environmentId,\n },\n};\nexport default CDNPROVINCE_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","import {\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQRABBITMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRabbitMQVipInstances',\n responseField: 'Instances',\n };\n extraActionMap = {\n DescribeRabbitMQNodeList: {\n service: 'tdmq',\n action: 'DescribeRabbitMQNodeList',\n responseField: 'NodeList',\n pickKey: 'node',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n InstanceId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Node',\n field: 'node',\n action: 'DescribeRabbitMQNodeList',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRabbitMQNodeList: 'node',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.node = '';\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n InstanceId: $scope.getInstanceId(),\n };\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRabbitmqQuery', sQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/RABBITMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n instanceid: 'InstanceId',\n node: 'NodeName',\n};\n\n// 需和文件名对应\nconst TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n node: 'NodeName',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n node: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'NodeName',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeName: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'node',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","import {\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQROCKETMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRocketMQClusters',\n responseField: 'ClusterList',\n interceptor: {\n response: (result) =>\n _.map(result, (item) => ({\n ...item,\n ClusterId: _.get(item, 'Info.ClusterId', ''),\n ClusterName: _.get(item, 'Info.ClusterName', ''),\n })),\n },\n };\n extraActionMap = {\n DescribeRocketMQNamespaces: {\n service: 'tdmq',\n action: 'DescribeRocketMQNamespaces',\n responseField: 'Namespaces',\n pickKey: 'namespace',\n },\n DescribeRocketMQGroups: {\n service: 'tdmq',\n action: 'DescribeRocketMQGroups',\n responseField: 'Groups',\n pickKey: 'group',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => !item.Dimensions?.[0]?.Dimensions?.includes('rmqcluster'));\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeRocketMQGroups') {\n payload.NamespaceId = this.getVariable(query['clusternamespace']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Namespace',\n field: 'namespace',\n action: 'DescribeRocketMQNamespaces',\n },\n {\n label: 'Group',\n field: 'group',\n action: 'DescribeRocketMQGroups',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRocketMQNamespaces: 'namespace',\n DescribeRocketMQGroups: 'group',\n};\nexport class TdmqRocketmqQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.namespace = '';\n $scope.target.group = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeRocketMQGroups') {\n let namespace = $scope.target.namespace;\n try {\n namespace = JSON.parse(namespace)[templateQueryIdMap.namespace];\n } catch (e) {}\n payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace);\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function tdmqRocketmqQuery() {\n return {\n template: template,\n controller: TdmqRocketmqQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRocketmqQuery', tdmqRocketmqQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/ROCKETMQ';\n\nconst TDMQInvalidDemensions = {\n tenant: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// 需和文件名对应\nconst TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIdList: [''],\n Filters: {\n includeVip: { text: '是', value: 'true' },\n },\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'includeVip',\n enDescriptor: 'includeVip',\n cnDescriptor: '包含专享集群',\n link: '',\n type: 'select',\n list: [\n { text: '是', value: 'true' },\n { text: '否', value: 'false' },\n ],\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n namespace: '',\n group: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.ClusterIdList)) {\n const ClusterIdList = _.compact(queries.ClusterIdList);\n if (_.uniq(ClusterIdList).length > 0) {\n params.ClusterIdList = _.uniq(ClusterIdList).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: [_.get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n namespace: 'NamespaceId',\n group: 'Name',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NamespaceId: {\n dim_KeyInStorage: keyInStorage.namespace,\n dim_KeyInTarget: 'namespace',\n dim_KeyInMap: templateQueryIdMap.namespace,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.group,\n dim_KeyInTarget: 'group',\n dim_KeyInMap: templateQueryIdMap.group,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQROCKETMQGetInstanceQueryParams,\n};\n","import { map, flatten, reduce, isEmpty, filter, split, sortBy, findIndex, trim, isArray, isString } from 'lodash';\nimport { GetServiceAPIInfo, ReplaceVariable } from '../../common/constants';\nimport { getTimeShiftInMs } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\n\nconst variableToArray = (variable) => {\n if (isEmpty(variable)) {\n return [];\n }\n if (isArray(variable)) {\n return variable;\n }\n if (isString(variable)) {\n return split(variable, ',').map((item) => trim(item));\n }\n return [];\n};\n\nexport default class TKEDatasource extends BaseDatasource {\n InstanceAliasList = ['ClusterId', 'ClusterName'];\n templateQueryIdMap = {\n instance: 'ClusterId',\n };\n InvalidDimensions = {\n tke_cluster_instance_id: 'ClusterId',\n };\n InstanceReqConfig = {\n service: 'tke',\n action: 'DescribeClusters',\n responseField: 'Clusters',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getMonitorData(params: any, region: any, instances: any, target: any, options: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n const conditions = reduce(\n target.conditions,\n (prev, item) => {\n if (isEmpty(item.Key) || isEmpty(item.Operator) || isEmpty(item.Value)) {\n return prev;\n }\n return [\n ...filter(prev, (e) => e.Key !== item.Key),\n {\n Key: ReplaceVariable(this.templateSrv, options.scopedVars, item.Key, false),\n Operator: ReplaceVariable(this.templateSrv, options.scopedVars, item.Operator, false),\n Value: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, item.Value, true)),\n },\n ];\n },\n [{ Key: 'tke_cluster_instance_id', Operator: '=', Value: instances.map((item) => item['ClusterId']) }]\n );\n\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Period: params.Period,\n MetricNames: [params.MetricName],\n Module: 'monitor',\n Namespace: 'QCE/TKE',\n EndTime: params.EndTime,\n StartTime: params.StartTime,\n Conditions: conditions,\n GroupBys: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, target.groupBys, true)),\n },\n },\n serviceInfo.service,\n { action: 'DescribeStatisticData', region }\n ).then((response) => {\n return flatten(\n map(response.Data, (data) => {\n return map(data.Points, (point) => {\n const dimensionSort = sortBy(point.Dimensions, ['Name']);\n const dimensionString = [\n ...dimensionSort.splice(findIndex(dimensionSort, { Name: 'tke_cluster_instance_id' }), 1),\n ...dimensionSort,\n ]\n .map((dimension) => dimension.Value)\n .join(' - ');\n const timeshiftString = timeshift > 0 ? `_${target.timeshift}` : '';\n return {\n target: `${data.MetricName} - ${dimensionString}${timeshiftString}`,\n datapoints: map(point.Values, (value) => [value.Value, value.Timestamp * 1000 + timeshift]),\n };\n });\n })\n );\n });\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { isEmpty } from 'lodash';\nimport { TKEFilterFieldsDescriptor } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TKEFilterFieldsDescriptor = TKEFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.addCondition = () => {\n $scope.target.conditions.push({ Key: '', Operator: '=', Value: '' });\n };\n\n $scope.deleteCondition = (index) => {\n const targetCondition = $scope.target.conditions[index];\n if (isEmpty(targetCondition.Key) || isEmpty(targetCondition.Operator) || isEmpty(targetCondition.Value)) {\n $scope.target.conditions.splice(index, 1);\n } else {\n $scope.target.conditions.splice(index, 1);\n $scope.onRefresh();\n }\n };\n\n $scope.getOperator = () => {\n return Promise.resolve([\n { text: '=', value: '=' },\n { text: 'in', value: 'in' },\n ]);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('tkeQuery', sQuery);\n","import _ from 'lodash';\n\nconst TKE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n conditions: [],\n groupBys: '',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIds: [''],\n Filters: {\n ClusterName: [],\n ClusterType: [],\n ClusterStatus: [],\n 'tag-key': [],\n },\n },\n};\n\nconst TKEFilterFieldsDescriptor = [\n {\n key: 'ClusterName',\n enDescriptor: 'Cluster Name',\n cnDescriptor: '集群名',\n link: '',\n type: 'input',\n },\n {\n key: 'ClusterType',\n enDescriptor: 'Cluster Type',\n cnDescriptor: '集群类型',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ClusterStatus',\n enDescriptor: 'Cluster Status',\n cnDescriptor: '集群状态',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Tags',\n enDescriptor: 'Tags',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC',\n cnDescriptor: 'VPC',\n link: '',\n type: 'input',\n },\n {\n key: 'tag-key',\n enDescriptor: 'Tag Key',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-value',\n enDescriptor: 'Tag Value',\n cnDescriptor: '标签值',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst TKEInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nexport default TKE_STATE;\n\nexport { TKEFilterFieldsDescriptor, TKEInstanceAliasList, GetInstanceQueryParams as TKEGetInstanceQueryParams };\n","import _ from 'lodash';\nimport { TSFInvalidDemensions, TSFInstanceAliasList, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class TSFDatasource extends BaseDatasource {\n Namespace = 'QCE/TSF';\n InstanceAliasList = TSFInstanceAliasList;\n InvalidDimensions = TSFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'tsf',\n action: 'DescribeApplications',\n responseField: 'Content',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { TSFFieldsDescriptor } from './query_def';\n\nexport class TSFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TSFFieldsDescriptor = TSFFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function tsfQuery() {\n return {\n template: template,\n controller: TSFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('tsfQuery', tsfQuery);\n","import { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst ApplicationType = [\n { text: '所有', value: '' },\n { text: '容器应用', value: 'C' },\n { text: '普通应用/虚拟机应用', value: 'V' },\n];\n\nconst MicroserviceType = [\n { text: '所有', value: '' },\n { text: '普通应用', value: 'N' },\n { text: 'Mesh应用', value: 'M' },\n { text: '微服务网关应用', value: 'G' },\n { text: '原生应用', value: 'NATIVE' },\n];\n\nconst ApplicationResourceType = [\n { text: '默认资源类型', value: 'DEF' },\n { text: '微服务网关资源', value: 'GW' },\n];\n\nconst TSFFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '搜索关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ApplicationIdList',\n enDescriptor: 'ApplicationIdList',\n cnDescriptor: '应用ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ApplicationType',\n enDescriptor: 'ApplicationType',\n cnDescriptor: '应用类型',\n link: '',\n type: 'select',\n list: ApplicationType,\n },\n {\n key: 'MicroserviceType',\n enDescriptor: 'MicroserviceType',\n cnDescriptor: '应用的微服务类型',\n link: '',\n type: 'select',\n list: MicroserviceType,\n },\n {\n key: 'ApplicationResourceTypeList',\n enDescriptor: 'ApplicationResourceTypeList',\n cnDescriptor: '应用资源类型数组',\n link: '',\n type: 'select',\n multiple: true,\n list: ApplicationResourceType,\n },\n];\n\nconst TSF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ApplicationId',\n queries: {\n Limit: 20,\n Offset: 0,\n SearchWord: '',\n OrderBy: '',\n OrderType: null,\n ApplicationType: '',\n MicroserviceType: '',\n ApplicationResourceTypeList: [],\n ApplicationIdList: [],\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst TSFInstanceAliasList = ['ApplicationId', 'ApplicationName'];\n\nconst TSFInvalidDemensions = {\n applicationid: 'ApplicationId',\n};\n\nconst templateQueryIdMap = {\n instance: 'ApplicationId',\n};\n\nexport default TSF_STATE;\nexport {\n TSFInvalidDemensions,\n templateQueryIdMap,\n TSFInstanceAliasList,\n TSFFieldsDescriptor,\n GetInstanceQueryParams as TSFGetInstanceQueryParams,\n};\n","import {\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n clbNamespaceMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VCLBInstanceAliasList;\n InvalidDimensions = VCLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getAllMetrics(region: string) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const { MetricSet: public_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.public,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const { MetricSet: private_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.private,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const res = Object.values(_.keyBy(_.concat(private_metrics, public_metrics), 'MetricName'));\n return res.map((t) => modifyDimensons(t));\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await this.getAllMetrics(region);\n return _.compact(rawSet);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/V_CLB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vClbQuery';\n\nconst VCLBInvalidDemensions = {\n InstanceId: 'LoadBalancerId',\n // vip: 'LoadBalancerVips',\n // loadBalancerPort: 'Port',\n // protocol: 'Protocol',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst VCLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: VCLBFilterFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst VCLB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst clbNamespaceMap = {\n public: 'QCE/LB_PUBLIC',\n private: 'QCE/LB_PRIVATE',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default VCLB_STATE;\nexport {\n VCLBFilterFieldsDescriptor,\n templateQueryIdMap,\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n clbNamespaceMap,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import { VBCInstanceAliasList, VBCInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VBCInstanceAliasList;\n InvalidDimensions = VBCInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeCcns',\n responseField: 'CcnSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getFilterDropdown({ field }) {\n return super.getRegions();\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { VBCFilterFieldsDescriptor, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields: any = [\n // {\n // label: 'SRegion',\n // field: 'SRegion',\n // },\n // {\n // label: 'DRegion',\n // field: 'DRegion',\n // },\n];\n\nexport class VBCQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.VBCFilterFieldsDescriptor = VBCFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getExtraDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field })\n return $scope.datasource.getFilterDropdown(service, { field });\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: VBCQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('vbcQuery', scfQuery);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VBC';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vbcQuery';\n\nconst VBCInvalidDemensions = {\n // CcnId: 'CcnId',\n};\n\n// 需和文件名对应\nconst VBCInstanceAliasList = ['CcnId', 'CcnName'];\n\nconst templateQueryIdMap = {\n instance: 'CcnId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst VBCFilterFields = {\n Limit: 20,\n Offset: 0,\n 'ccn-id': [],\n 'ccn-name': [],\n 'ccn-description': [],\n state: {},\n};\n\nconst VBCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: 'CCN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-name',\n enDescriptor: 'ccn-name',\n cnDescriptor: 'CCN名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-description',\n enDescriptor: 'ccn-description',\n cnDescriptor: 'CCN描述',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '隔离中', value: 'ISOLATED' },\n { text: '运行中', value: 'AVAILABLE' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199',\n namespace,\n fieldDescriptor: VBCFilterFieldsDescriptor,\n};\n\nconst VBC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'CcnId',\n DRegion: '',\n SRegion: '',\n queries: VBCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default VBC_STATE;\nexport {\n VBCFilterFieldsDescriptor,\n templateQueryIdMap,\n VBCInstanceAliasList,\n VBCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as VBCGetInstanceQueryParams,\n};\n","import {\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPCNETDETECTInstanceAliasList;\n InvalidDimensions = VPCNETInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNetDetects',\n responseField: 'NetDetectSet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPC_NET_DETECT';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vpcNetDetectQuery';\n\nconst VPCNETInvalidDemensions = {\n netdetectid: 'NetDetectId',\n netDetectId: 'NetDetectId',\n};\n\nconst VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName'];\n\nconst templateQueryIdMap = {\n instance: 'NetDetectId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPCNETFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'net-detect-id': [],\n 'subnet-id': [],\n 'net-detect-name': [],\n};\n\nconst VPCNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-id',\n enDescriptor: 'net-detect-id',\n cnDescriptor: '网络探测实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-name',\n enDescriptor: 'net-detect-name',\n cnDescriptor: '网络探测名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696',\n namespace,\n fieldDescriptor: VPCNETFilterFieldsDescriptor,\n};\n\nconst VPCNET_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NetDetectId',\n queries: VPCNETFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['netDetectId'];\n });\n return metricTmp;\n}\nexport default VPCNET_STATE;\nexport {\n VPCNETFilterFieldsDescriptor,\n templateQueryIdMap,\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as VPCNETDETECTGetInstanceQueryParams,\n};\n","import { VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNGWInstanceAliasList;\n InvalidDimensions = VPNGWInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnGateways',\n responseField: 'VpnGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNGW';\nconst queryEditorName = 'vpngwQuery';\n\nconst VPNGWInvalidDemensions = {\n vpnGwId: 'VpnGatewayId',\n};\n\nconst VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNGWFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'vpn-gateway-name': [],\n type: {},\n 'public-ip-address': [],\n 'renew-flag': {},\n zone: [],\n};\n\nconst VPNGWFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-name',\n enDescriptor: 'vpn-gateway-name',\n cnDescriptor: 'VPN实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'type',\n enDescriptor: 'type',\n cnDescriptor: 'VPN网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'IPSEC', value: 'IPSEC' },\n { text: 'SSL', value: 'SSL' },\n ],\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'public-ip-address',\n cnDescriptor: '公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'renew-flag',\n enDescriptor: 'renew-flag',\n cnDescriptor: '网关续费类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '手动续费', value: 'NOTIFY_AND_MANUAL_RENEW' },\n { text: '自动续费', value: 'NOTIFY_AND_AUTO_RENEW' },\n ],\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: 'VPN所在可用区',\n link: '',\n type: 'dropdownMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514',\n namespace,\n fieldDescriptor: VPNGWFilterFieldsDescriptor,\n};\n\nconst VPNGW_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnGatewayId',\n queries: VPNGWFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNGW_STATE;\nexport {\n VPNGWFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNGWInstanceAliasList,\n VPNGWInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNGWGetInstanceQueryParams,\n};\n","import { VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNXInstanceAliasList;\n InvalidDimensions = VPNXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnConnections',\n responseField: 'VpnConnectionSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNX';\nconst queryEditorName = 'vpnxQuery';\n\nconst VPNXInvalidDemensions = {\n vpnConnId: 'VpnConnectionId',\n};\n\nconst VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNXFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'customer-gateway-id': [],\n 'vpn-connection-name': [],\n 'vpn-connection-id': [],\n};\n\nconst VPNXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'customer-gateway-id ',\n enDescriptor: 'customer-gateway-id ',\n cnDescriptor: '对端网关实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-name',\n enDescriptor: 'vpn-connection-name',\n cnDescriptor: '通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-id',\n enDescriptor: 'vpn-connection-id',\n cnDescriptor: '通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515',\n namespace,\n fieldDescriptor: VPNXFilterFieldsDescriptor,\n};\n\nconst VPNX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnConnectionId',\n queries: VPNXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNX_STATE;\nexport {\n VPNXFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNXInstanceAliasList,\n VPNXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport {\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n templateQueryIdMap,\n namespace,\n regionSupported,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { t } from '../../../locale';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = WAFInstanceAliasList;\n InvalidDimensions = WAFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n // service: 'waf',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/WAF';\nconst queryEditorName = 'wafQuery';\nconst WAFFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst WAFFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118',\n namespace,\n fieldDescriptor: WAFFilterFieldsDescriptor,\n};\nconst WAF_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: WAFFilterFields,\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n];\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst WAFInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst WAFInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default WAF_STATE;\nexport {\n WAFFilterFieldsDescriptor,\n templateQueryIdMap,\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n namespace,\n regionSupported,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as WAFGetInstanceQueryParams,\n};\n","const en_US = {\n language: 'Language',\n enable_intranet_API_mode: 'Enable Intranet API Mode',\n cloud_database: 'Cloud Database',\n cloud_load_balancer: 'Cloud Load Balancer',\n virtual_private_cloud: 'Virtual Private Cloud',\n content_delivery_network: 'Content Delivery Network',\n message_queue: 'Message Queue',\n direct_connect: 'Direct Connect',\n cloud_physical_machine: 'Cloud Physical Machine',\n elastic_mapReduce: 'Elastic MapReduce',\n edge_computing_machine: 'Edge Computing Machine',\n // namespace\n RUM: 'Real User Monitoring(RUM)',\n CLS: 'Cloud Log Service(CLS)',\n CVM: 'Cloud Virtual Machine(CVM)',\n CDB: 'TencentDB for MySQL(CDB)',\n CMONGO: 'TencentDB for MongoDB(CMONGO)',\n POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)',\n REDIS: 'TencentDB for Redis(REDIS)',\n REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)',\n SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)',\n TDMYSQL: 'TDSQL for MySQL(TDMYSQL)',\n PCX: 'Peering Connection(PCX)',\n BWP: 'Bandwidth Packet(BWP)',\n NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)',\n VPNGW: 'VPN Gateway(VPNGW)',\n VPNX: 'VPN Tunnel(VPNX)',\n DCG: 'Direct Connect Gateway(DCG)',\n CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)',\n VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)',\n VBC: 'Cloud Connect Network(VBC)',\n LB: 'Elastic IP(LB)',\n LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)',\n LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)',\n LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)',\n CDN: 'Chinese Mainland Domain(CDN)',\n CDN_LOG_DATA: 'Province(CDN_LOG_DATA)',\n OV_CDN: 'Overseas Domain(OV_CDN)',\n SCF_V2: 'Serverless Cloud Function(SCF)',\n CFS: 'Cloud File Storage(CFS)',\n COS: 'Cloud Object Storage(COS)',\n CKAFKA: 'Message Queue CKafka(CKAFKA)',\n CMQ: 'Message Queue for Queue Service(CMQ)',\n CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)',\n TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)',\n TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)',\n TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)',\n DCX: 'Direct Connect for Dedicated Tunnel(DCX)',\n DC: 'Direct Connect for Connection(DC)',\n CPM: 'Cloud Physical Machine(CPM)',\n BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)',\n BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)',\n BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)',\n CES: 'Elasticsearch Service(CES)',\n BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)',\n APIGATEWAY: 'API Gateway(APIGATEWAY)',\n QAAP: 'Global Application Acceleration Platform(GAAP)',\n ECM: 'Edge Computing Machine for Computation and Networking(ECM)',\n ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)',\n ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)',\n GSE: 'Game Server Elastic-scaling(GSE)',\n TKE: 'Tencent Kubernetes Engine(TKE)',\n ECDN: 'Enterprise Content Delivery Network(ECDN)',\n WAF: 'Web Application Firewall(WAF)',\n // others\n multi_scene: 'Multi-Scene',\n lite: 'Lite',\n cloud_monitor: 'Cloud Monitor',\n cloud_log_service: 'Cloud Log Service',\n real_user_monitoring: 'Real User Monitoring',\n apm_monitoring: 'Application Monitoring',\n region: 'Region',\n log_topic: 'Log Topic',\n syntax_rule: 'Syntax Rule',\n max_result_num: 'Maximum result number',\n search_statement: 'Search Statement',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description:\n 'Search for instances according to specific query conditions, and pull the first 20 instances by default',\n // region\n 'ap-guangzhou': 'South China(Guangzhou)',\n 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)',\n 'ap-guangzhou-open': 'South China(Guangzhou OPEN)',\n 'ap-shenzhen': 'South China(Shenzhen)',\n 'ap-qingyuan': 'South China(Qingyuan)',\n 'ap-shanghai': 'East China(Shanghai)',\n 'ap-shanghai-fsi': 'East China(Shanghai Finance)',\n 'ap-jinan-ec': 'East China(Jinan)',\n 'ap-hangzhou-ec': 'East China(Hangzhou)',\n 'ap-nanjing': 'East China(Nanjing)',\n 'ap-fuzhou-ec': 'East China(Fuzhou)',\n 'ap-hefei-ec': 'East China(Hefei)',\n 'ap-beijing': 'North China region(Beijing)',\n 'ap-tianjin': 'North China region(Tianjin)',\n 'ap-beijing-fsi': 'North China region(Beijing Finance)',\n 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)',\n 'ap-wuhan-ec': 'Central China(Wuhan)',\n 'ap-changsha-ec': 'Central China(Changsha)',\n 'ap-zhengzhou-ec': 'Central China(Zhengzhou)',\n 'ap-chengdu': 'Southwest China(Chengdu)',\n 'ap-chongqing': 'Southwest China(Chongqing)',\n 'ap-xian-ec': \"Northwest region(Xi'an)\",\n 'ap-shenyang-ec': 'Northeast China(Shenyang)',\n 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)',\n 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)',\n 'ap-seoul': 'Northeast Asia(Seoul)',\n 'ap-tokyo': 'Northeast Asia(Tokyo)',\n 'ap-singapore': 'Southeast Asia(Singapore)',\n 'ap-bangkok': 'Southeast Asia(Bangkok)',\n 'ap-jakarta': 'Southeast Asia(Jakarta)',\n 'na-siliconvalley': 'US West(Silicon Valley)',\n 'eu-frankfurt': 'Europe(Frankfurt)',\n 'eu-moscow': 'Europe(Northeastern Europe)',\n 'ap-mumbai': 'South Asia(Mumbai)',\n 'na-ashburn': 'US East(Virginia)',\n 'sa-saopaulo': 'South America(São Paulo)',\n 'na-toronto': 'North America(Toronto)',\n};\nexport default en_US;\n","import zh_CN from './zh_CN';\nimport en_US from './en_US';\n\nlet locale_language = 'zh-CN';\n\nexport enum Language {\n Chinese = 'zh-CN',\n English = 'en-US',\n}\n\nexport const t = (key: string) => {\n if (locale_language === Language.Chinese) {\n return zh_CN[key];\n }\n return en_US[key];\n};\n\nexport const setLanguage = (language: Language) => {\n locale_language = language;\n};\n\nexport const getLanguage = () => locale_language;\n","const zh_CN = {\n language: '语言',\n enable_intranet_API_mode: '开启内网API模式',\n cloud_database: '云数据库',\n cloud_load_balancer: '负载均衡',\n virtual_private_cloud: '私有网络',\n content_delivery_network: '内容分发网络',\n message_queue: '消息队列',\n direct_connect: '专线接入',\n cloud_physical_machine: '黑石物理服务器',\n elastic_mapReduce: '弹性 MapReduce',\n edge_computing_machine: '边缘计算机器',\n // namespace\n RUM: '前端性能监控(RUM)',\n APM: '应用性能监控(APM)',\n CLS: '日志服务(CLS)',\n CVM: '云服务器(CVM)',\n CDB: '云数据库 MySQL(CDB)',\n CMONGO: '云数据库 MongoDB(CMONGO)',\n POSTGRES: '云数据库 PostgreSQL(POSTGRES)',\n REDIS: '云数据库 Redis(REDIS)',\n REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)',\n SQLSERVER: '云数据库 SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)',\n TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)',\n PCX: '私有网络-对等连接(PCX)',\n BWP: '私有网络-带宽包(BWP)',\n NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)',\n VPNGW: '私有网络-VPN 网关(VPNGW)',\n VPNX: '私有网络-VPN 通道(VPNX)',\n DCG: '私有网络-专线网关(DCG)',\n CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)',\n VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)',\n VBC: '私有网络-云联网(VBC)',\n LB: '私有网络-弹性公网IP(LB)',\n LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)',\n LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)',\n LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)',\n CDN: '国内域名(CDN)',\n CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)',\n OV_CDN: '国外域名(OV_CDN)',\n SCF_V2: '云函数(SCF)',\n CFS: '文件存储(CFS)',\n COS: '对象存储(COS)',\n CKAFKA: '消息队列 CKafka(CKAFKA)',\n CMQ: '消息队列-队列服务监控(CMQ)',\n CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)',\n TDMQ: '消息队列 Pulsar 版(TDMQ)',\n TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)',\n TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)',\n DCX: '专线接入-专用通道(DCX)',\n DC: '专线接入-物理专线(DC)',\n CPM: '黑石物理服务器(CPM)',\n BM_PCX: '黑石对等连接(BM_PCX)',\n BM_LB: '黑石外网负载均衡(BM_LB)',\n BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)',\n CES: 'Elasticsearch指标(CES)',\n BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)',\n APIGATEWAY: 'API 网关(APIGATEWAY)',\n QAAP: '全球应用加速(GAAP)',\n ECM: '边缘计算和网络监控(ECM)',\n ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)',\n ECM_LB: '边缘计算负载均衡(ECM_LB)',\n GSE: '游戏服务器伸缩(GSE)',\n TKE: '容器服务(TKE)',\n ECDN: '全站加速网络(ECDN)',\n WAF: 'Web 应用防火墙(WAF)',\n // others\n multi_scene: '多场景版',\n lite: '精简版',\n cloud_monitor: '云监控',\n cloud_log_service: '日志服务',\n real_user_monitoring: '前端性能监控',\n apm_monitoring: '应用性能监控',\n region: '地域',\n log_topic: '日志主题',\n syntax_rule: '语法规则',\n max_result_num: '最大结果条数',\n search_statement: '检索语句',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例',\n // region\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-shenzhen-fsi': '华南地区(深圳金融)',\n 'ap-guangzhou-open': '华南地区(广州OPEN)',\n 'ap-shenzhen': '华南地区(深圳)',\n 'ap-qingyuan': '华南地区(清远)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-shanghai-fsi': '华东地区(上海金融)',\n 'ap-jinan-ec': '华东地区(济南)',\n 'ap-hangzhou-ec': '华东地区(杭州)',\n 'ap-nanjing': '华东地区(南京)',\n 'ap-fuzhou-ec': '华东地区(福州)',\n 'ap-hefei-ec': '华东地区(合肥)',\n 'ap-beijing': '华北地区(北京)',\n 'ap-tianjin': '华北地区(天津)',\n 'ap-beijing-fsi': '华北地区(北京金融)',\n 'ap-shijiazhuang-ec': '华北地区(石家庄)',\n 'ap-wuhan-ec': '华中地区(武汉)',\n 'ap-changsha-ec': '华中地区(长沙)',\n 'ap-zhengzhou-ec': '华中地区(郑州)',\n 'ap-chengdu': '西南地区(成都)',\n 'ap-chongqing': '西南地区(重庆)',\n 'ap-xian-ec': '西北地区(西安)',\n 'ap-shenyang-ec': '东北地区(沈阳)',\n 'ap-taipei': '港澳台地区(中国台北)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-tokyo': '亚太东北(东京)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-bangkok': '亚太东南(曼谷)',\n 'ap-jakarta': '亚太东南(雅加达)',\n 'na-siliconvalley': '美国西部(硅谷)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'eu-moscow': '欧洲地区(莫斯科)',\n 'ap-mumbai': '亚太南部(孟买)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'sa-saopaulo': '南美地区(圣保罗)',\n 'na-toronto': '北美地区(多伦多)',\n};\nexport default zh_CN;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_data__;","module.exports = __WEBPACK_EXTERNAL_MODULE__grafana_runtime__;","module.exports = __WEBPACK_EXTERNAL_MODULE_grafana_app_core_core_module__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__;","module.exports = __WEBPACK_EXTERNAL_MODULE_moment__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://TencentCloudMonitorGrafanaApp/webpack/bootstrap","webpack://TencentCloudMonitorGrafanaApp/external \"lodash\"","webpack://TencentCloudMonitorGrafanaApp/./locale/zh_CN.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/en_US.ts","webpack://TencentCloudMonitorGrafanaApp/./locale/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/sign.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/signV2.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/constants.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/utils.ts","webpack://TencentCloudMonitorGrafanaApp/external \"app/core/core_module\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/data\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/indexedDB.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/common/datasourceStorage.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/index.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/external \"@grafana/runtime\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/external \"moment\"","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/datasource.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/apigateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bmIntraLb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bm_pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/bwp/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cbs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cdn_province/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ceip_summary/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ces/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cfs/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ckafka/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cls/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cmq_topic/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cos/query_def.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cpm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cvm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/cynosdb_mysql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcdb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcg/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/dcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_block_storage/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ecm_lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/gse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/lighthouse/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mongodb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/mr/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/nat_gateway/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/ov_cdn/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/pcx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/postgresql/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/qaap/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/redis_mem/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/scf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/sqlserver/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tcaplus/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rabbitmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tdmq_rocketmq/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tke/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/tsf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/v_clb/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vbc/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpc_net_detect/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpngw/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/vpnx/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/waf/query.ts","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^.*$","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/MonitorDatasource.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/utils.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/formats.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor/_base/query_filter.ts","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/index.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/stringify.js","webpack://TencentCloudMonitorGrafanaApp/../node_modules/qs/lib/parse.js","webpack://TencentCloudMonitorGrafanaApp/./datasource/tc_monitor sync ^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)","webpack://TencentCloudMonitorGrafanaApp/./components/config.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__0__","language","enable_intranet_API_mode","cloud_database","cloud_load_balancer","virtual_private_cloud","content_delivery_network","message_queue","direct_connect","cloud_physical_machine","elastic_mapReduce","edge_computing_machine","RUM","APM","CLS","CVM","CDB","CMONGO","POSTGRES","REDIS","REDIS_MEM","SQLSERVER","CYNOSDB_MYSQL","TCAPLUS","TDMYSQL","PCX","BWP","NAT_GATEWAY","VPNGW","VPNX","DCG","CEIP_SUMMARY","VPC_NET_DETECT","VBC","LB","LB_PUBLIC","LB_PRIVATE","LOADBALANCE","CDN","CDN_LOG_DATA","OV_CDN","SCF_V2","CFS","COS","CKAFKA","CMQ","CMQTOPIC","TDMQ","TDMQ_ROCKETMQ","TDMQ_RABBITMQ","DCX","DC","CPM","BM_PCX","BM_LB","BM_INTRA_LB","CES","BLOCK_STORAGE","APIGATEWAY","QAAP","ECM","ECM_BLOCK_STORAGE","ECM_LB","GSE","TKE","ECDN","WAF","multi_scene","lite","cloud_monitor","cloud_log_service","real_user_monitoring","apm_monitoring","region","log_topic","syntax_rule","max_result_num","search_statement","time_unit","seconds","search_description","Language","locale_language","Chinese","setLanguage","getLanguage","options","secretId","service","action","host","version","payload","backendSrv","datasourceId","this","JSON","stringify","nowDate","utc","timestamp","unix","date","format","getHeader","getResourceHeader","res","datasourceRequest","url","method","headers","data","Host","Service","Version","Action","Region","Timestamp","Method","Uri","Query","Body","Headers","resp","authorization","token","intranet","grafanaVersion","window","grafanaBootData","settings","buildInfo","Authorization","toString","defaults","path","generateQueryString","getResourceQueryString","assign","secretKey","querystring","queryString","TcDataSourceId","id","FINACE_REGIONS","SERVICES_API_INFO","api","monitor","cls","cvm","cdb","pcx","vpc","mongodb","clb","postgres","cdn","redis","scf","cfs","ckafka","dc","cynosdb","sqlserver","bm","bmeip","bmvpc","bmlb","es","emr","cmq","cbs","tcaplusdb","dcdb","apigateway","tdmq","tdmq_rabbitmq","tdmq_rocketmq","gaap","ecm","gse","lighthouse","tsf","rum","tke","ecdn","waf","apm","FINACE_HOST","GetServiceAPIInfo","indexOf","find","__","getHostAndPath","GetServiceFromNamespace","namespace","ParseMetricQuery","query","result","queries","split","forEach","item","str","trim","val","parse","e","toLower","ReplaceVariable","templateSrv","scopedVars","field","multiple","varname","varFlag","regResult1","String","match","regResult2","parseVariableFormat","replaceVar","replace","error","isArray","GetDimensions","obj","isEmpty","dimensions","Value","undefined","push","Name","ParseQueryResult","response","instances","timeshift","instanceList","cloneDeep","dataPoints","map","dataPoint","instanceAliasValue","length","isInstanceMatch","_InstanceAliasValue","splice","target","MetricName","datapoints","parseDataPoint","timestamps","values","index","instance","isVariable","GetRequestParams","signObj","signParams","pick","headerSigned","GetRequestParamsV2","sign","SliceLength","total","len","num","Math","ceil","Offset","CoreApp","IS_DEVELOPMENT_ENVIRONMENT","instanceSettings","instanceListCache","extraMetricDims","checkKeys","MetricReqConfig","extrasAlias","queryMonitorExtraConfg","CandiateDimensions","jsonData","Namespace","getOtherAlias","alias","extra","extraAlia","getVariable","getAliasValue","Array","join","formatVarDisplay","displayTpl","instanceAlias","a","b","InstanceAliasList","includes","metricFindQuery","regex","display","instancealias","templateQueryIdMap","isObject","isString","getRegions","getVariableInstances","flatMap","insAlias","text","setInstance","getInstance","instanceCache","fetchMetricData","Promise","resolve","dimensionsFormat","dimKeys","ins","dimensionObject","keyTmp","invalidDim","InvalidDimensions","getInvalidDimensions","extraDimValue","dim_KeyInStorage","dim_KeyInTarget","dim_KeyInMap","dim_KeyInIns","extraSourceMap","getExtraStorage","extraStorage","isStringOrNumber","isNumber","otherAlias","getDimensionsVal","Ekey","dimVal","filter","targets","hide","metricName","reduce","prev","cloneTarget","concat","inst","getDefaultInsObj","insInReq","keys","dimResult","Dimensions","StartTime","range","from","subtract","EndTime","to","Period","period","Instances","getMonitorData","all","then","responses","flatten","getInstanceReqConfig","selfIns","metric","rs","valStr","params","serviceInfo","doRequest","RegionSet","RegionName","RegionState","getMetrics","MetricSet","resFilterFn","resultFilter","getInstances","InstanceReqConfig","interceptor","Limit","request","Error","TotalCount","TotalCnt","TotalNumber","param","isValidConfigField","testDatasource","cvmErr","monitorErr","serviceErr","cvmAuthFail","monitorAuthFail","serviceAuthFail","messages","message","compact","uniq","status","title","statusText","code","getFieldsValue","fields","fetchAllFactory","fetcher","_params","omit","Result","firstLists","delta","batchCount","pmList","fill","_","isOffsetPage","acc","cur","lists","list","instanceQueryParamsBaseParse","isFilter","Values","slice","Filters","getNamesapceFromService","serviceName","serviceGroupBy","services","label","groupName","existedGroup","items","isTargetEqual","newTargetString","oldTargetString","newTarget","oldTarget","getTimeShiftInMs","timeShift","parts","exec","amount","parseInt","__WEBPACK_EXTERNAL_MODULE__6__","config","detailConfig","QueryCtrl","newQueryIns","$scope","$rootScope","getDropdown","datasource","getFilterDropdown","directive","template","controller","restrict","scope","showDetail","getDropdownOptions","onChange","__WEBPACK_EXTERNAL_MODULE__8__","store","promisify","type","reject","onsuccess","event","returnMap","msg","onerror","props","initDB","indexedDB","webkitIndexedDB","mozIndexedDB","msIndexedDB","open","onupgradeneeded","db","objectStoreNames","contains","createObjectStore","keyPath","openDB","insertData","storeName","transaction","objectStore","add","oncomplete","addData","isCover","getData","oldData","getObjectStore","newData","requestUpdate","put","seviceName","getAllData","getAll","insKey","cacheWay","setStorage","getStorage","setExtraStorage","EValue","serviceKey","storage","CKAFKAQueryDescriptor","enDescriptor","cnDescriptor","link","min","max","CKAFKA_STATE","metricUnit","topicId","topicName","consumerGroup","partition","Status","InstanceId","SearchWord","TagKey","GetInstanceQueryParams","CKAFKAInstanceAliasList","CKAFKATopicAliasList","CKAFKAInvalidDemensions","Proxy","prop","toLocaleLowerCase","keyInStorage","TopicList","GroupList","PartitionList","TopicId","TopicName","GroupName","PartitionId","queryEditorName","LOADBALANCEFieldsDescriptor","queryEditorConfig","instanceDocUrl","fieldDescriptor","LOADBALANCE_STATE","Port","Protocol","listener","servers","serverPort","LoadBalancerIds","Forward","LoadBalancerName","Domain","LoadBalancerVips","BackendPublicIps","BackendPrivateIps","ProjectId","WithRs","VpcId","SecurityGroup","MasterZone","OrderBy","OrderType","LOADBALANCEListenerAliasList","LOADBALANCEServerAliasList","LOADBALANCEVALIDDIMENSIONS","vip","loadBalancerPort","protocol","lanIp","port","CANDIATEDIMENSIONS","PrivateIpAddresses","ServerPort","TDMQInvalidDemensions","tenantId","tenant","environmentId","TDMQInstanceAliasList","TDMQFilterFieldsDescriptor","CDNPROVINCE_STATE","regionSupported","modifyDimensons","metricItem","metricTmp","EnvironmentId","fleetId","GSEInvalidDemensions","instanceid","fleetid","queuename","GSEInstanceAliasList","FleetId","fleet","queue","GSEFilterFieldsDescriptor","GSE_STATE","v","DCDBInvalidDemensions","nodeid","shardid","ShardId","DCDBInstanceAliasList","NodeId","ShardInstanceId","DCDBFilterFieldsDescriptor","DCDB_STATE","InstanceIds","SearchName","SearchKey","ProjectIds","SubnetId","OrderByType","ExclusterType","ExclusterIds","FilterInstanceType","modifyMetricConf","IsFilterVpc","IsFilterExcluster","RedisMemFieldsDescriptor","REDISMEM_STATE","VpcIds","SubnetIds","InstanceName","UniqVpcIds","UniqSubnetIds","TypeVersion","EngineName","AutoRenew","BillingMode","Type","rnodeid","pnodeid","REDISMEMInstanceAliasList","RedisMemInvalidDemensions","NodeType","node","TDMQRABBITMQInstanceAliasList","TDMQ_STATE","NodeName","group","TDMQROCKETMQInstanceAliasList","instanceIdsChecked","filtersChecked","ClusterIdList","includeVip","NamespaceId","SERVICES","href","hideRegion","Datasources","InitStates","hackModuleName","postgresql","mr","filePath","moduleName","fileName","prefix","toUpperCase","getParams","ECMBLOCKSTORAGEInvalidDemensions","uuid","diskId","ECMBLOCKSTORAGEInstanceAliasList","ECMBLOCKSTORAGEFilterFieldsDescriptor","ECMBLOCKSTORAGE_STATE","DiskId","__WEBPACK_EXTERNAL_MODULE__22__","APIGATEWAYInvalidDemensions","serviceId","environmentName","apiid","apiId","APIGATEWAYInstanceAliasList","environmentList","EnvironmentName","APIGATEWAYFilterFieldsDescriptor","APIGATEWAY_STATE","ServiceId","ServiceName","NotUsagePlanId","Environment","IpVersion","InstanceQueryDescriptor","InvalidDemensions","k","receiver","startsWith","Reflect","has","propKey","Ip","nodeIP","DisplayStrategy","Order","OrderField","Asc","VCLBInvalidDemensions","VCLBInstanceAliasList","VCLBFilterFieldsDescriptor","VCLB_STATE","clbNamespaceMap","public","private","cynosdbMysqlFilterFieldsDescriptor","CYNOSDB_STATE","DbType","CYNOSDBMYSQLInstanceAliasList","CYNOSDBInvalidDemensions","instanceId","SCFQueryDescriptor","SCF_STATE","Description","SCFInstanceAliasList","SCFInvalidDemensions","functionName","SCFDefaultDimensionList","CLSInvalidDemensions","CLSInstanceAliasList","CLSFilterFieldsDescriptor","CLS_STATE","uin","logsetName","logsetId","tagKey","storageType","SQLSERVERInvalidDemensions","resourceId","SQLSERVERInstanceAliasList","SQLSERVERNETFilterFieldsDescriptor","SQLSERVER_STATE","InstanceIdSet","PayMode","VipSet","InstanceNameSet","VersionSet","Zone","BMINTRALBInvalidDemensions","vpcId","BMINTRALBInstanceAliasList","BMINTRALBFilterFieldsDescriptor","BMINTRALB_STATE","BMLBValidMetricsT","isValidMetric","validMetrics","toUpper","CPMInvalidDemensions","BMLBInstanceAliasList","CPMFilterFieldsDescriptor","CPM_STATE","BMPCXInvalidDemensions","peeringConnectionId","BMPCXInstanceAliasList","BMPCXFilterFieldsDescriptor","BMPCX_STATE","VpcPeerConnectionIds","CBSInvalidDemensions","diskname","unInstanceId","CBSInstanceAliasList","CBSFilterFieldsDescriptor","CBS_STATE","DiskIds","ReturnBindAutoSnapshotPolicy","metricObj","dimension","CDNPROVINCEInvalidDemensions","domain","projectid","province","appid","CDNPROVINCEInstanceAliasList","CDNPROVINCEFilterFieldsDescriptor","isp","district","origin","serviceType","projectId","domainType","fullUrlCache","https","originPullProtocol","CEIPInvalidDemensions","eip","CEIPSUMMARYInstanceAliasList","CEIPFilterFieldsDescriptor","CEIP_STATE","subscription","subscriptionId","CPMInstanceAliasList","DeviceClassCode","WanIps","LanIps","Alias","VagueIp","AutoRenewFlag","DeviceType","IsLuckyDevice","ECDNInstanceAliasList","ECDNInvalidDemensions","ECDN_STATE","disable","area","ECDNFilterFieldsDescriptor","_queries","Fuzzy","ECMInvalidDemensions","ECMInstanceAliasList","ECMFilterFieldsDescriptor","ECM_STATE","zone","PostgresFieldsDescriptor","POSTGRESInstanceAliasList","POSTGRES_STATE","PostgreInvalidDemensions","uid","VPCNETInvalidDemensions","netdetectid","netDetectId","VPCNETDETECTInstanceAliasList","VPCNETFilterFieldsDescriptor","VPCNET_STATE","WAFFilterFieldsDescriptor","WAF_STATE","WAFInstanceAliasList","WAFInvalidDemensions","CDBFieldsDescriptor","CDB_STATE","InstanceTypes","Vips","SecurityGroupId","PayTypes","InstanceNames","TaskStatus","EngineVersions","ZoneIds","CdbErrors","OrderDirection","InitFlag","CDBInstanceAliasList","CDBInvalidDemensions","insttype","CESInvalidDemensions","uInstanceId","CESInstanceAliasList","CESFilterFieldsDescriptor","CES_STATE","OrderByKey","IpList","DCFilterFieldsDescriptor","DC_STATE","DirectConnectIds","DCInstanceAliasList","DCInvalidDemensions","directConnectId","directconnectid","DCGInvalidDemensions","directConnectGatewayId","DCGInstanceAliasList","DCGFilterFieldsDescriptor","DCG_STATE","DCXFilterFieldsDescriptor","DCX_STATE","DCXInstanceAliasList","DCXInvalidDemensions","directconnectconnid","directConnectConnId","ECMLBInvalidDemensions","ECMLBInstanceAliasList","ECMLBFilterFieldsDescriptor","MONGODBFieldsDescriptor","MONGODB_STATE","InstanceType","ClusterType","MONGODBInstanceAliasList","MONGODBInvalidDemensions","replica","Replica","Node","QAAPInvalidDemensions","channelId","QAAPInstanceAliasList","QAAPFilterFieldsDescriptor","QAAP_STATE","AccessRegion","RealServerRegion","GroupId","TCAPLUSInvalidDemensions","TCAPLUSInstanceAliasList","TCAPLUSFilterFieldsDescriptor","TCAPLUS_STATE","ClusterId","TableGroupIds","TableName","TableInstanceId","TableIdlType","TableType","ListElementNum","ReservedVolume","ReservedReadQps","ReservedWriteQps","Memo","FileName","FileExtType","FileSize","FileContent","SelectedTables","regonsMap","VBCInvalidDemensions","VBCInstanceAliasList","VBCFilterFieldsDescriptor","VBC_STATE","DRegion","SRegion","state","VPNGWInvalidDemensions","vpnGwId","VPNGWInstanceAliasList","VPNGWFilterFieldsDescriptor","VPNGW_STATE","VPNXInvalidDemensions","vpnConnId","VPNXInstanceAliasList","VPNXFilterFieldsDescriptor","VPNX_STATE","LighthouseFilterFieldsDescriptor","LIGHTHOUSE_STATE","LIGHTHOUSEInstanceAliasList","LighthouseInvalidDemensions","CFSQueryDescriptor","CFS_STATE","FileSystemId","CFSInstanceAliasList","CFSInvalidDemensions","queueId","queueName","QueueName","CVMFilterFieldsDescriptor","CVM_STATE","CVMInstanceAliasList","CVMValidMetricsT","CVMValidMetrics","PCX_STATE","limit","offset","peeringConnectionName","PCXFieldsDescriptor","PCXInstanceAliasList","RedisFieldsDescriptor","REDIS_STATE","REDISInstanceAliasList","RedisInvalidDemensions","redis_uuid","TSFFieldsDescriptor","TSF_STATE","ApplicationType","MicroserviceType","ApplicationResourceTypeList","ApplicationIdList","TSFInstanceAliasList","TSFInvalidDemensions","applicationid","BWPFilterFieldsDescriptor","BWP_STATE","BandwidthPackageIds","BWPInstanceAliasList","BWPInvalidDemensions","bandwidthPackageId","CDNFilterFieldsDescriptor","CDN_STATE","CDNInstanceAliasList","CDNInvalidDemensions","LBFilterDescriptor","LB_STATE","LBInstanceAliasList","LBInvalidDemensions","NATGATEWAYInstanceAliasList","NATGatewayFilterFieldsDescriptor","NATGATEWAY_STATE","NatGatewayIds","NATInvalidDemensions","natId","OVCDNFilterFieldsDescriptor","OVCDN_STATE","OVCDNInstanceAliasList","OVCDNInvalidDemensions","__WEBPACK_EXTERNAL_MODULE__69__","TKE_STATE","conditions","groupBys","ClusterIds","ClusterName","ClusterStatus","TKEFilterFieldsDescriptor","TKEInstanceAliasList","responseField","getEnvironmentNameList","LoadBalancerType","RegionMap","keyBy","RegionInfoSet","rawSet","getZones","ZoneSet","ZoneName","ZoneId","ZoneState","getConsumerList","MapInfoList","TopicAliasList","consumerGroupCache","getConsumerGroups","groupname","topicid","consumerGoup","topicList","GroupDetailList","uniqBy","SubscribedInfos","ConsumerGroupName","SubscribedInfo","partitions","sub","Partition","formatTopicVarDisplay","topic","topicAlias","topicalias","par","ListenerAliasList","ServerAliasList","tagret","getListenerList","LoadBalancerId","formatVariableDisplay","aliasList","getServerList","listenerId","ListenerIds","Listeners","Rules","Targets","elem","listenAlias","lisId","listenerid","serverprivateip","serveralias","serversList","chain","dims","Set","fetchAllSubscription","SubscriptionId","cosURL","Buckets","BucketName","bucket","DeviceClassSet","Product","extraActionMap","DescribeDCDBShards","pickKey","DescribeDCDBInstanceNodeInfo","RegionList","act","getDiskList","instanceObj","getQueueNameList","getFleetList","ReplicaAliasList","replicaAlias","ReplicaSetId","replicasetid","times","SecondaryNum","nodeId","fetchAllNodes","NodeFlag","resultT","doRequestV2","totalCount","getVpcId","VpcSet","getVpcIds","MonitorVersion","getInstanceNodeInfo","nodetype","ndoeTypeIndex","getVersions","Versions","FunctionName","RegionInfos","DescribeTopics","DescribeEnvironments","DescribeRabbitMQNodeList","DescribeRocketMQNamespaces","DescribeRocketMQGroups","variableToArray","variable","tke_cluster_instance_id","Key","Operator","MetricNames","Module","Conditions","GroupBys","Data","Points","point","dimensionSort","dimensionString","timeshiftString","getAllMetrics","public_metrics","private_metrics","init","getInstanceId","getServiceFn","getExtraDropdown","sQuery","onRefresh","onChecked","srcField","dstField","bwpQuery","BWPQueryCtrl","cdbQuery","CDBQueryCtrl","cdnQuery","CDNQueryCtrl","ExtraFields","scfQuery","SCFQueryCtrl","onInstanceChange","getExtraFields","CKAFKAQueryCtrl","element","attrs","$watch","newValue","oldValue","onFieldChange","getVariableId","variableData","getServersDropdown","getServerPortDropdown","serverPortList","cacheMap","getTopicName","onExtraFieldChange","datas","CmqTopicQueryCtrl","cvmQuery","CVMQueryCtrl","dropdownTextConfig","actionMaps","lbQuery","LBQueryCtrl","lighthouseQuery","LighthouseQueryCtrl","replicaId","mongodbQuery","MongoDBQueryCtrl","some","dataT","mrQuery","MrQueryCtrl","natGatewayQuery","NatGatewayQueryCtrl","ovCdnQuery","OVCDNQueryCtrl","pcxQuery","PCXQueryCtrl","redisQuery","RedisQueryCtrl","clearExtrasAlias","redisMemQuery","RedisMemQueryCtrl","evId","tdmqRocketmqQuery","TdmqRocketmqQueryCtrl","addCondition","deleteCondition","targetCondition","getOperator","tsfQuery","TSFQueryCtrl","VBCQueryCtrl","webpackContext","req","webpackContextResolve","_class","getNamespaces","namespaces","getCascaderNamespaces","validServices","getSelectedServices","promises","optionsTemp","promiseTemp","Done","results","getListeners","errorMsg","upperFirst","fnName","argu","hexTable","array","arrayToObject","source","plainObjects","refs","j","pop","compacted","compactQueue","decode","decodeURIComponent","encode","string","out","charCodeAt","charAt","isBuffer","constructor","isRegExp","merge","allowPrototypes","mergeTarget","percentTwenties","formatters","RFC1738","RFC3986","SPQueryCtrl","_config","queryDDO","formats","utils","arrayPrefixGenerators","brackets","indices","repeat","toISO","Date","toISOString","delimiter","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","sort","allowDots","formatter","objKeys","opts","TypeError","arrayFormat","joined","addQueryPrefix","arrayLimit","decoder","depth","parameterLimit","parseKeys","givenKey","child","segment","parent","leaf","root","cleanRoot","isNaN","parseArrays","parseObject","ignoreQueryPrefix","tempObj","cleanStr","Infinity","part","bracketEqualsPos","pos","parseValues","newObj","tcFolder","folderId","tcFolder_EN","getFolderId","folders","folderEnId","post","folder","folderEn","oldPost","pluginId","location","pathname","endsWith","backendInterceptor","$injector","$q","appEditCtrl","setPostUpdateHook","postUpdate","appModel","configured","enabled","datasources","ds","moveToFolder","dashbaordUid","dashboard","overwrite","reviseDashboard","pmlist","importedUrl","templateUrl"],"mappings":"6JACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,IAIjBlC,EAAoBA,EAAoBmC,EAAI,K,gBClFrDhC,EAAOD,QAAUkC,G,6BCAjB,IA0He,EA1HD,CACZC,SAAU,KACVC,yBAA0B,YAC1BC,eAAgB,OAChBC,oBAAqB,OACrBC,sBAAuB,OACvBC,yBAA0B,SAC1BC,cAAe,OACfC,eAAgB,OAChBC,uBAAwB,UACxBC,kBAAmB,eACnBC,uBAAwB,SAExBC,IAAK,cACLC,IAAK,cACLC,IAAK,YACLC,IAAK,YACLC,IAAK,kBACLC,OAAQ,uBACRC,SAAU,4BACVC,MAAO,oBACPC,UAAW,+BACXC,UAAW,6BACXC,cAAe,oCACfC,QAAS,0BACTC,QAAS,8BACTC,IAAK,iBACLC,IAAK,gBACLC,YAAa,2BACbC,MAAO,qBACPC,KAAM,oBACNC,IAAK,iBACLC,aAAc,oCACdC,eAAgB,4BAChBC,IAAK,gBACLC,GAAI,kBACJC,UAAW,wBACXC,WAAY,6BACZC,YAAa,8BACbC,IAAK,YACLC,aAAc,qBACdC,OAAQ,eACRC,OAAQ,WACRC,IAAK,YACLC,IAAK,YACLC,OAAQ,sBACRC,IAAK,mBACLC,SAAU,wBACVC,KAAM,sBACNC,cAAe,4BACfC,cAAe,4BACfC,IAAK,iBACLC,GAAI,gBACJC,IAAK,eACLC,OAAQ,iBACRC,MAAO,kBACPC,YAAa,wBACbC,IAAK,uBACLC,cAAe,qBACfC,WAAY,qBACZC,KAAM,eACNC,IAAK,iBACLC,kBAAmB,8BACnBC,OAAQ,mBACRC,IAAK,eACLC,IAAK,YACLC,KAAM,eACNC,IAAK,iBAELC,YAAa,OACbC,KAAM,MACNC,cAAe,MACfC,kBAAmB,OACnBC,qBAAsB,SACtBC,eAAgB,SAChBC,OAAQ,KACRC,UAAW,OACXC,YAAa,OACbC,eAAgB,SAChBC,iBAAkB,OAClBC,UAAW,YACXC,QAAS,UACTC,mBAAoB,6BAEpB,eAAgB,WAChB,kBAAmB,aACnB,oBAAqB,eACrB,cAAe,WACf,cAAe,WACf,cAAe,WACf,kBAAmB,aACnB,cAAe,WACf,iBAAkB,WAClB,aAAc,WACd,eAAgB,WAChB,cAAe,WACf,aAAc,WACd,aAAc,WACd,iBAAkB,aAClB,qBAAsB,YACtB,cAAe,WACf,iBAAkB,WAClB,kBAAmB,WACnB,aAAc,WACd,eAAgB,WAChB,aAAc,WACd,iBAAkB,WAClB,YAAa,cACb,cAAe,cACf,WAAY,WACZ,WAAY,WACZ,eAAgB,YAChB,aAAc,WACd,aAAc,YACd,mBAAoB,WACpB,eAAgB,aAChB,YAAa,YACb,YAAa,WACb,aAAc,aACd,cAAe,YACf,aAAc,aCED,EA1HD,CACZ/E,SAAU,WACVC,yBAA0B,2BAC1BC,eAAgB,iBAChBC,oBAAqB,sBACrBC,sBAAuB,wBACvBC,yBAA0B,2BAC1BC,cAAe,gBACfC,eAAgB,iBAChBC,uBAAwB,yBACxBC,kBAAmB,oBACnBC,uBAAwB,yBAExBC,IAAK,4BACLE,IAAK,yBACLC,IAAK,6BACLC,IAAK,2BACLC,OAAQ,gCACRC,SAAU,qCACVC,MAAO,6BACPC,UAAW,2DACXC,UAAW,sCACXC,cAAe,6CACfC,QAAS,mCACTC,QAAS,2BACTC,IAAK,0BACLC,IAAK,wBACLC,YAAa,2BACbC,MAAO,qBACPC,KAAM,mBACNC,IAAK,8BACLC,aAAc,4BACdC,eAAgB,oCAChBC,IAAK,6BACLC,GAAI,iBACJC,UAAW,gCACXC,WAAY,mDACZC,YAAa,oDACbC,IAAK,+BACLC,aAAc,yBACdC,OAAQ,0BACRC,OAAQ,iCACRC,IAAK,0BACLC,IAAK,4BACLC,OAAQ,+BACRC,IAAK,uCACLC,SAAU,iDACVC,KAAM,qDACNC,cAAe,2DACfC,cAAe,2DACfC,IAAK,2CACLC,GAAI,oCACJC,IAAK,8BACLC,OAAQ,wDACRC,MAAO,uDACPC,YAAa,8DACbC,IAAK,6BACLC,cAAe,qCACfC,WAAY,0BACZC,KAAM,iDACNC,IAAK,6DACLC,kBAAmB,8DACnBC,OAAQ,iDACRC,IAAK,mCACLC,IAAK,iCACLC,KAAM,4CACNC,IAAK,gCAELC,YAAa,cACbC,KAAM,OACNC,cAAe,gBACfC,kBAAmB,oBACnBC,qBAAsB,uBACtBC,eAAgB,yBAChBC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,eAAgB,wBAChBC,iBAAkB,mBAClBC,UAAW,YACXC,QAAS,UACTC,mBACE,0GAEF,eAAgB,yBAChB,kBAAmB,gCACnB,oBAAqB,8BACrB,cAAe,wBACf,cAAe,wBACf,cAAe,uBACf,kBAAmB,+BACnB,cAAe,oBACf,iBAAkB,uBAClB,aAAc,sBACd,eAAgB,qBAChB,cAAe,oBACf,aAAc,8BACd,aAAc,8BACd,iBAAkB,sCAClB,qBAAsB,mCACtB,cAAe,uBACf,iBAAkB,0BAClB,kBAAmB,2BACnB,aAAc,2BACd,eAAgB,6BAChB,aAAc,0BACd,iBAAkB,4BAClB,YAAa,qDACb,cAAe,wDACf,WAAY,wBACZ,WAAY,wBACZ,eAAgB,4BAChB,aAAc,0BACd,aAAc,0BACd,mBAAoB,0BACpB,eAAgB,oBAChB,YAAa,8BACb,YAAa,qBACb,aAAc,oBACd,cAAe,2BACf,aAAc,0BCxHhB,wIAGA,IAEYC,EAFRC,EAAkB,SAEtB,SAAYD,GACV,kBACA,kBAFF,CAAYA,MAAQ,KAKb,IAAM,EAAI,SAAC1F,GAChB,OAAI2F,IAAoBD,EAASE,QACxB,EAAM5F,GAER,EAAMA,IAGF6F,EAAc,SAACnF,GAC1BiF,EAAkBjF,GAGPoF,EAAc,WAAM,OAAAH,I,0nDCdjC,WAyBE,WAAYI,GACF,IAAAC,EAA6FD,EAArF,SAAEE,EAAmFF,EAA5E,QAAEG,EAA0EH,EAApE,OAAEI,EAAkEJ,EAA9D,KAAEK,EAA4DL,EAArD,QAAE,EAAmDA,EAAvC,QAAZM,OAAO,IAAG,KAAE,EAAEnB,EAAqCa,EAA/B,OAAEO,EAA6BP,EAAnB,WAAEQ,EAAiBR,EAAL,aAChGS,KAAKR,SAAWA,EAEhBQ,KAAKP,QAAUA,EACfO,KAAKN,OAASA,EACdM,KAAKL,KAAOA,EACZK,KAAKJ,QAAUA,EACfI,KAAKH,QAA6B,iBAAZA,EAAuBA,EAAUI,KAAKC,UAAUL,GACtEG,KAAKtB,OAASA,EACd,IAAMyB,EAAU,MAASC,MACzBJ,KAAKK,UAAYF,EAAQG,OACzBN,KAAKO,KAAOJ,EAAQK,OAAO,cAC3BR,KAAKF,WAAaA,EAClBE,KAAKD,aAAeA,EAoDxB,OAjDQ,YAAAU,UAAN,W,mEACE,SAAOT,KAAKU,4BAGR,YAAAA,kBAAN,W,oHACMC,EAAsE,G,iBAE3D,O,sBAAA,GAAMX,KAAKF,WAAWc,kBAAkB,CACnDC,IAAK,2BAAoBb,KAAKD,aAAY,sBAC1Ce,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,CACJC,KAAMjB,KAAKL,KACXuB,QAASlB,KAAKP,QACd0B,QAASnB,KAAKJ,QACdwB,OAAQpB,KAAKN,OACb2B,OAAQrB,KAAKtB,OACb4C,UAAWtB,KAAKK,UAChBkB,OAjEgB,OAkEhBC,IAjEW,IAkEXC,MAjEmB,GAkEnBC,KAAM1B,KAAKH,QACX8B,QAAS,CACP,eAnEQ,mBAoERhC,KAAMK,KAAKL,U,cAjBXiC,EAAO,SAqBbjB,EAAMiB,EAAKZ,K,0CAmBb,OAjBQa,EAAmClB,EAAtB,cAAEmB,EAAoBnB,EAAf,MAAEoB,EAAapB,EAAL,SAChCqB,GAAqE,QAApD,EAAyC,QAAzC,EAA+B,QAA/B,EAACC,OAAeC,uBAAe,eAAEC,gBAAQ,eAAEC,iBAAS,eAAExC,UAAW,QAgBxF,GAfgB,EAAH,KACXyC,cAAeR,EACf,eA9Ec,mBA+Ed,cAAe7B,KAAKN,OACpB,iBAAkBM,KAAKK,UAAUiC,WACjC,eAAgBtC,KAAKJ,QACrB,qBAAsB,aAAMoC,EAAc,kBAAU,UAChDhC,KAAKtB,QAAU,CACjB,cAAesB,KAAKtB,SAElBoD,GAAS,CACX,aAAcA,IACd,CACFC,SAAUA,aAIhB,EA3FA,G,+0CCGA,WAOE,WAAYQ,GAAZ,gBAAY,IAAAA,MAAA,IANZ,KAAAA,SAAgB,CACdC,KAAM,gBACN1B,OAAQ,QAWV,KAAA2B,oBAAsB,gD,2BACpB,SAAOzC,KAAK0C,iCAPZ1C,KAAKuC,SAAW5J,OAAOgK,OAAO3C,KAAKuC,SAAUA,GAC7CvC,KAAKuC,SAASK,UAAY,GAC1B5C,KAAKF,WAAayC,EAASzC,WAC3BE,KAAKD,aAAewC,EAASxC,aAgCjC,OAzBQ,YAAA2C,uBAAN,W,8GACM/B,EAA+E,G,iBAIpE,O,sBAFLK,EAAShB,KAAKuC,SAAV,KACN1C,EAA0B,iBAATmB,EAAoBA,EAAOf,KAAKC,UAAUc,GACpD,GAAMhB,KAAKF,WAAWc,kBAAkB,CACnDC,IAAK,2BAAoBb,KAAKD,aAAY,sBAC1Ce,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM,CACJC,KAAMjB,KAAKuC,SAAS5C,KACpByB,OAAQpB,KAAKuC,SAAS7C,OACtByB,QAASnB,KAAKuC,SAAS3C,QACvByB,OAAQrB,KAAKuC,SAAS7D,OACtB6C,OAAQvB,KAAKuC,SAASzB,OACtBU,IAAKxB,KAAKuC,SAASC,KACnBf,MAAO,GACPC,KAAM7B,M,cAZJ+B,EAAO,SAebjB,EAAMiB,EAAKZ,K,0CAGb,OADQwB,EAAsC7B,EAAlC,KAAEkC,EAAgClC,EAArB,YAAEhB,EAAmBgB,EAAf,KAAEoB,EAAapB,EAAL,SACzC,GAAO,CAAEmC,YAAaD,EAAaL,KAAMA,EAAM7C,KAAMA,EAAMoC,SAAUA,YAEzE,EA3CA,G,8zECDagB,EAAiB,EAAYC,GAGpCC,EAAiB,CAAC,kBAAmB,mBACrCC,EAAoB,CACxBC,IAAK,CACH1D,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGRyD,QAAS,CACP3D,QAAS,UACTG,QAAS,aACT4C,KAAM,WACN7C,KAAM,+BAGR0D,IAAK,CACH5D,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGR2D,IAAK,CACH7D,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGR4D,IAAK,CACH9D,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGR6D,IAAK,CACH/D,QAAS,MACTG,QAAS,GACT4C,KAAM,OACN7C,KAAM,sBAGR8D,IAAK,CACHhE,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGR+D,QAAS,CACPjE,QAAS,UACTG,QAAS,aACT4C,KAAM,WACN7C,KAAM,+BAGRgE,IAAK,CACHlE,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGRiE,SAAU,CACRnE,QAAS,WACTG,QAAS,aACT4C,KAAM,YACN7C,KAAM,gCAGRkE,IAAK,CACHpE,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGRmE,MAAO,CACLrE,QAAS,QACTG,QAAS,aACT4C,KAAM,SACN7C,KAAM,6BAERoE,IAAK,CACHtE,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAERqE,IAAK,CACHvE,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAERsE,OAAQ,CACNxE,QAAS,SACTG,QAAS,aACT4C,KAAM,UACN7C,KAAM,8BAGRuE,GAAI,CACFzE,QAAS,KACTG,QAAS,aACT4C,KAAM,MACN7C,KAAM,0BAGRwE,QAAS,CACP1E,QAAS,UACTG,QAAS,aACT4C,KAAM,WACN7C,KAAM,+BAGRyE,UAAW,CACT3E,QAAS,YACTG,QAAS,aACT4C,KAAM,aACN7C,KAAM,iCAGR0E,GAAI,CACF5E,QAAS,KACTG,QAAS,aACT4C,KAAM,MACN7C,KAAM,0BAER2E,MAAO,CACL7E,QAAS,QACTG,QAAS,aACT4C,KAAM,SACN7C,KAAM,6BAER4E,MAAO,CACL9E,QAAS,QACTG,QAAS,aACT4C,KAAM,SACN7C,KAAM,6BAER6E,KAAM,CACJ/E,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAGR8E,GAAI,CACFhF,QAAS,KACTG,QAAS,aACT4C,KAAM,MACN7C,KAAM,0BAGR+E,IAAK,CACHjF,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGRgF,IAAK,CACHlF,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAERiF,IAAK,CACHnF,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAGRkF,UAAW,CACTpF,QAAS,YACTG,QAAS,aACT4C,KAAM,aACN7C,KAAM,iCAGRmF,KAAM,CACJrF,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAGRoF,WAAY,CACVtF,QAAS,aACTG,QAAS,aACT4C,KAAM,cACN7C,KAAM,kCAERqF,KAAM,CACJvF,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAERsF,cAAe,CACbxF,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAERuF,cAAe,CACbzF,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAERwF,KAAM,CACJ1F,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAERyF,IAAK,CACH3F,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAER0F,IAAK,CACH5F,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAER2F,WAAY,CACV7F,QAAS,aACTG,QAAS,aACT4C,KAAM,cACN7C,KAAM,kCAER4F,IAAK,CACH9F,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAER6F,IAAK,CACH/F,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAER8F,IAAK,CACHhG,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAER+F,KAAM,CACJjG,QAAS,OACTG,QAAS,aACT4C,KAAM,QACN7C,KAAM,4BAERgG,IAAK,CACHlG,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,2BAERjB,OAAQ,CACNe,QAAS,SACTG,QAAS,aACT4C,KAAM,UACN7C,KAAM,8BAERiG,IAAK,CACHnG,QAAS,MACTG,QAAS,aACT4C,KAAM,OACN7C,KAAM,4BAkBJkG,EAAc,CAClB9B,IAAK,CACH,kBAAmB,CACjBvB,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGVqE,IAAK,CACH,kBAAmB,CACjBxB,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGVsE,OAAQ,CACN,kBAAmB,CACjBzB,KAAM,uBACN7C,KAAM,8CAER,kBAAmB,CACjB6C,KAAM,uBACN7C,KAAM,+CAGVgE,IAAK,CACH,kBAAmB,CACjBnB,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGV+D,QAAS,CACP,kBAAmB,CACjBlB,KAAM,wBACN7C,KAAM,+CAER,kBAAmB,CACjB6C,KAAM,wBACN7C,KAAM,gDAGV8D,IAAK,CACH,kBAAmB,CACjBjB,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGV2D,IAAK,CACH,kBAAmB,CACjBd,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGV4D,IAAK,CACH,kBAAmB,CACjBf,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGVyD,QAAS,CACP,kBAAmB,CACjBZ,KAAM,wBACN7C,KAAM,+CAER,kBAAmB,CACjB6C,KAAM,wBACN7C,KAAM,gDAGViE,SAAU,CACR,kBAAmB,CACjBpB,KAAM,yBACN7C,KAAM,gDAER,kBAAmB,CACjB6C,KAAM,yBACN7C,KAAM,iDAGV+E,IAAK,CACH,kBAAmB,CACjBlC,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGVgF,IAAK,CACH,kBAAmB,CACjBnC,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,4CAGV0D,IAAK,CACH,kBAAmB,CACjBb,KAAM,oBACN7C,KAAM,2CAER,kBAAmB,CACjB6C,KAAM,oBACN7C,KAAM,6CAMN,SAAUmG,EAAkBpH,EAAQe,GACxC,cAAayD,EAAkBzD,IAAY,IAI7C,SAAwBf,EAAQe,GAC9B,IAA2C,IAAvC,IAAEsG,QAAQ9C,EAAgBvE,GAC5B,MAAO,GAET,OACE,IAAEsH,KACA,IAAEA,KAAKH,GAAa,SAACI,EAAIzM,GAAQ,OAAAA,IAAA,MACjC,SAACyM,EAAIzM,GAAQ,OAAAA,IAAA,MACV,GAZ4C0M,CAAexH,EAAQe,IAmBtE,SAAU0G,EAAwBC,GACtC,OAAO,IAAEtN,IACP,IAAEkN,KAAK,YAAU,SAACvG,GAAY,OAAAA,EAAQ2G,YAAR,KAC9B,WAWE,SAAUC,EAAiBC,GAC/B,QAD+B,IAAAA,MAAA,KAC1BA,EACH,MAAO,GAET,IAAMC,EAAS,GACTC,EAAU,IAAEC,MAAMH,EAAO,KAa/B,OAZA,IAAEI,QAAQF,GAAS,SAACG,GAClB,IAAMC,EAAM,IAAEH,MAAME,EAAM,KAC1B,GAAI,IAAEE,KAAK,IAAE/N,IAAI8N,EAAK,IAAK,KAAM,CAC/B,IAAIE,EAAM,IAAED,KAAK,IAAE/N,IAAI8N,EAAK,IAAK,KACjC,IACEE,EAAM7G,KAAK8G,MAAMD,GACjB,MAAOE,IAGTT,EAAO,IAAEU,QAAQ,IAAEJ,KAAK,IAAE/N,IAAI8N,EAAK,IAAK,OAASE,MAG9CP,EA+CH,SAAUW,EAAgBC,EAAaC,EAAYC,EAAOC,QAAA,IAAAA,OAAA,GACxD,MAnBR,SAA6BC,GAG3B,IAAIC,GAAU,EACRC,GAHNF,EAAUG,OAAOH,GAAW,KAGDI,MAAM,gBAC7BF,IACFD,GAAU,EACVD,EAAU,YAAOE,EAAW,GAAE,WAGhC,IAAMG,EAAaL,EAAQI,MAAM,0BAKjC,OAJIC,IACFJ,GAAU,EACVD,EAAU,YAAOK,EAAW,GAAE,WAEzB,CAAEL,QAAO,EAAEC,QAAO,GAIIK,CAAoBR,GAAzCE,EAAO,UAAEC,EAAO,UACpBM,EAAaX,EAAYY,QAAQR,EAASH,GAC9C,GAAII,EACF,IACEM,EAAa7H,KAAK8G,MAAMe,GACxB,MAAOE,IAKX,OAHKV,GAAY,IAAEW,QAAQH,KACzBA,EAAa,IAAEhP,IAAIgP,EAAY,IAAK,KAE/BA,EAIH,SAAUI,EAAcC,GAC5B,GAAI,IAAEC,QAAQD,GACZ,MAAO,GAET,IAAME,EAAoB,GAM1B,OALA,IAAE3B,QAAQyB,GAAK,SAACxB,GACK,OAAfA,EAAK2B,YAAiCC,IAAf5B,EAAK2B,OAAsC,KAAf3B,EAAK2B,OAC1DD,EAAWG,KAAK,CAAEC,KAAM9B,EAAK8B,KAAMH,MAA6B,iBAAf3B,EAAK2B,MAAqB3B,EAAK2B,MAAQ,UAAG3B,EAAK2B,YAG7FD,EAIH,SAAUK,EAAiBC,EAAUC,EAAuBC,QAAvB,IAAAD,MAAA,SAAuB,IAAAC,MAAA,GAChE,IAAMC,EAAe,IAAEC,UAAUH,GAE3BI,EAAa,IAAElQ,IAAI6P,EAAU,aAAc,IACjD,OAAO,IAAEM,IAAID,GAAY,SAACE,GAExB,IADA,IAAIC,EAAqB,IAAErQ,IAAIoQ,EAAW,uBACjCjR,EAAI,EAAGA,EAAI6Q,EAAaM,OAAQnR,IACvC,GAAIoR,EAAgBP,EAAa7Q,GAAI,IAAEa,IAAIoQ,EAAW,aAAc,KAAM,CACxEC,EAAqBL,EAAa7Q,GAAGqR,oBACrCR,EAAaS,OAAOtR,EAAG,GACvB,MAGJ,MAAO,CACLuR,OAAQ,UAAGb,EAASc,WAAU,cAAMN,GACpCO,WAAYC,EAAeT,EAAWL,OAM5C,SAASc,EAAeT,EAAWL,QAAA,IAAAA,MAAA,GACjC,IAAMe,EAAa,IAAE9Q,IAAIoQ,EAAW,aAAc,IAC5CW,EAAS,IAAE/Q,IAAIoQ,EAAW,SAAU,IAK1C,OAJeU,EAAWX,KAAI,SAAC5I,EAAWyJ,GACxC,MAAO,CAACD,EAAOC,GAAoB,IAAZzJ,EAAmBwI,MAO9C,SAASQ,EAAgBU,EAAU1B,GAGjC,IAFA,IAAIV,GAAQ,EAEH1P,EAAI,EAAGA,EAAIoQ,EAAWe,OAAQnR,IACrC,GAAI,IAAEa,IAAIiR,EAAU1B,EAAWpQ,GAAGwQ,KAAM,IAAInG,aAAe+F,EAAWpQ,GAAGqQ,MAAMhG,WAAY,CACzFqF,GAAQ,EACR,MAGJ,OAAOA,EAQH,SAAUqC,EAAW9Q,GACzB,SAAIA,IAAUA,EAAMyO,MAAM,kBAAmBzO,EAAMyO,MAAM,2BAcrD,SAAgBsC,EAAiB1K,EAASE,EAASyK,EAAmB1K,EAAUO,EAAcD,G,YAA3C,IAAAoK,MAAA,I,+FAWjB,OAVhCC,EAAa,EAAH,KACd3K,SAAQ,EACRK,QAASN,EAAQyB,MAAQ,IACtBkJ,GACC,IAAEE,KAAKtE,EAAkBoE,EAAQxL,QAAU,GAAIe,GAAU,CAAC,UAAW,OAAQ,aAAe,IAAG,CACnGK,WAAU,EACVC,aAAY,EACZrB,OAAQ,iBAG4B,GADzB,IAAI,EAAKyL,GAC2B1J,a,OAQjD,OARM,EAAgC,SAA9BsB,EAAQ,WAAKsI,EAAY,IAA3B,cAGN9K,EAAQwB,QAAUpI,OAAOgK,OAAOpD,EAAQwB,SAAW,GAAE,KAAOsJ,GAAgB,CAAE,gBAAiB,gBAC/F9K,EAAQuB,OAAS,OACbiB,IACFxC,EAAQsB,KAAO,aAEjB,GAAOtB,UAWH,SAAgB+K,EACpB/K,EACAE,EACAyK,EACA1K,EACAO,EACAD,G,YALA,IAAAP,MAAA,SAEA,IAAA2K,MAAA,I,qGAiB8C,OAZxClJ,EAAOzB,EAAQyB,MAAQ,GACvBmJ,EAAa,EAAH,KACd3K,SAAQ,EACRwB,KAAI,GACDkJ,GACC,IAAEE,KAAKtE,EAAkBoE,EAAQxL,QAAU,GAAIe,GAAU,CAAC,OAAQ,aAAe,IAAG,CACxFK,WAAU,EACVC,aAAY,IAEdR,EAAQuB,OAAS,OACXyJ,EAAO,IAAI,EAAOJ,GACxB5K,EAAQwB,QAAUpI,OAAOgK,OAAOpD,EAAQwB,SAAW,GAAI,CAAE,eAAgB,sCAC3B,GAAMwJ,EAAK9H,uB,OAWzD,OAXM,EAAwC,SAAtCK,EAAW,cAAEN,EAAI,OAAE7C,EAAI,OAAU,WACzCJ,EAAQyB,KAAO,IAAGd,UAAS,SACtBX,EAAQyB,MACR8B,GACCnD,GAAQ,CAAEA,KAAMA,KAMtBJ,EAAQsB,KAAO2B,EACf,GAAOjD,UAGH,SAAUiL,EAAYC,EAAWC,QAAX,IAAAD,MAAA,QAAW,IAAAC,MAAA,GAGrC,IAFA,IAAMnE,EAAgB,GAChBoE,EAAMC,KAAKC,KAAKJ,EAAQC,GACrBzS,EAAI,EAAGA,EAAI0S,EAAK1S,IACvBsO,EAAOiC,KAAK,CAAEsC,OAAQJ,EAAMzS,IAE9B,OAAOsO,EAaF,IAKKwE,EALCC,GAA6B,GAK1C,SAAYD,GACV,iCACA,qCACA,wBACA,oBACA,oBACA,6BACA,6BAPF,CAAYA,MAAO,M,k3DCvrBnB,aAwCE,WAAYE,EAAkBnL,EAAYqH,GArC1C,KAAA+D,kBAA2B,GAC3B,KAAAC,gBAA4B,GAM5B,KAAAC,UAAsB,GACtB,KAAAC,gBAEI,GACJ,KAAAC,YAAyB,GAQzB,KAAAC,uBAA0D,GAC1D,KAAAC,mBAA8C,GAkB5CxL,KAAKiL,iBAAmBA,EACxBjL,KAAKF,WAAaA,EAClBE,KAAKmH,YAAcA,EACnBnH,KAAKa,IAAMoK,EAAiBpK,IAC5Bb,KAAKR,UAAYyL,EAAiBQ,UAAY,IAAIjM,UAAY,GAC9D,YAAYyL,EAAiBQ,SAASvR,UAAY,IAASkF,SAgiB/D,OA9kBA,0DAiDE,sBAAI,wBAAS,C,IAAb,WAEE,OAAOY,KAAK0L,WAAa,YAAwB1L,KAAKP,U,gCAIxD,YAAAkM,cAAA,SAAc5B,EAAeP,GAA7B,I,EAAA,OACMjD,EAAS,GACPqF,EAAQ7B,EAAST,oBAOvB,OANgB,QAAhB,EAAAtJ,KAAKsL,mBAAW,SAAE5E,SAAQ,SAACmF,GACzB,IAAMC,EAAY,EAAKC,YAAYvC,EAAOqC,IACtCC,IAA2C,IAA9BF,EAAM7F,QAAQ+F,KAC7BvF,GAAU,aAAMuF,OAGbvF,GAIT,YAAAyF,cAAA,SAAcjC,EAA+B6B,GAC3C,IAAMrF,EAASwD,EAAS6B,GACxB,OAAOK,MAAMhE,QAAQ1B,GAAUA,EAAO2F,OAAS3F,GAGjD,YAAA4F,iBAAA,SAAiBpC,EAA+BqC,EAAgCC,GAAhF,WAEE,OAAID,EACKA,EAAWrE,QAAQ,gBAAgB,SAACuE,EAAGC,GAC5C,OAAKA,GAAM,EAAKC,kBAAkBC,SAASF,GAGpC,EAAKP,cAAcjC,EAAUwC,GAF3B,MAKNvM,KAAKgM,cAAcjC,EAAUsC,IAKhC,YAAAK,gBAAN,SAAsBpG,EAAoBqG,G,mIAGxC,OAFQjN,EAA6C4G,EAAvC,OAAEF,EAAqCE,EAA5B,UAAEsG,EAA0BtG,EAAnB,QAAE,EAAiBA,EAAL,QAAZzG,OAAO,IAAG,KAAE,EAC1CnB,EAA6D4H,EAAvD,OAAE,EAAqDA,EAAL,cAAhDuG,OAAa,IAAG,EAAA7M,KAAK8M,mBAAmB/C,SAAQ,EACzDrK,GAAW0G,GAIZ,IAAE2G,SAASlN,IACb,IAAE6G,QAAQ7G,GAAS,SAAC3G,EAAOM,GACzBqG,EAAQrG,GAAO,IAAEwT,SAAS9T,GAAS,EAAK6S,YAAY7S,GAASA,KAK7CwG,EAAOiI,MAAM,sBAE/B,GAAO3H,KAAKiN,eAGdvO,EAASsB,KAAK+L,YAAYrN,KAGZgB,EAAOiI,MAAM,uBACV,GAAM3H,KAAKkN,qBAAqBxO,EAAQmB,IADrD,OAlBF,GAAO,I,OAqCP,OAlBM0G,EAAS,SACfsG,EAAgB7M,KAAKwM,kBAAkBC,SAASI,GAAiBA,EAAgB7M,KAAK8M,mBAAmB/C,SAEnGpJ,EAAM4F,EAAO4G,SAAQ,SAACxG,GAC1B,IAAMyG,EAAW,EAAKjB,iBAAiBxF,EAAMiG,EAASC,GAItD,OAFAlG,EAAK2C,oBAAsB8D,EAEtBzG,EAAKkG,GACH,CACL,CACEQ,KAAMD,EACNlU,MAAOyN,EAAK,EAAKmG,mBAAmB/C,YAJP,MAUnC,GAAM,IAAgBuD,YAAYtN,KAAKP,QAAS8G,I,OAChD,OADA,SACA,GAAO5F,G,UAILoJ,EAAW/J,KAAK+L,YAAYzF,EAAK,UACjC,IAAE2B,QAAQ8B,KAAWA,EAAWA,EAAS,MACzCrL,GAAUgB,GAAUqK,GAApB,Y,iBAGsB,O,sBAAA,GAAM,IAAgBwD,YAAYvN,KAAKP,U,cAAvD+N,EAAgB,SAEtBzD,EAAyG,QAA9F,MAAEhB,UAAUyE,EAAcxH,MAAK,SAACW,GAAS,OAAAA,EAAK,EAAKmG,mBAAmB/C,YAA7B,aAAqD,QAAI,G,0CAG/G,SAAO/J,KAAKyN,gBAAgB/N,EAAQhB,EAAQqL,EAAUzD,I,OAGxD,SAAOoH,QAAQC,QAAQ,aAGnB,YAAAF,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,mEACnE,SAAO,WAkBH,YAAAsH,iBAAN,SAAuBC,EAASC,EAAKC,EAAiBvE,EAAQ/J,EAASF,G,yHAC5D/F,G,uFACHwU,EAASxU,GACPyU,EAAa,EAAKC,mBAAqB,EAAKC,qBAAoB,EAAO3E,EAAO/J,KACrEjG,KAEbwU,EAASC,EAAWzU,GACpBsU,EAAItU,GAAOsU,EAAIE,IAGbI,EAAgB,EAAKrC,YAAYvC,EAAO/J,GAASuO,KACjD,EAAKzC,uBAAuByC,GAA5B,YACI,EAKF,EAAKzC,uBAAuByC,GAJ9BK,EAAgB,mBAChB,IAAAC,uBAAe,IAAG,EAAAN,EAAM,EACxB,IAAAO,aACAC,EAAY,eAEV,EAAW,YAAgB,EAAKrH,YAAa5H,EAAQ6H,WAAYoC,EAAO/J,GAAS6O,IAAkB,GACnGG,EAAsB,G,8CAExBA,EAAiBxO,KAAK8G,MAAM,G,aAGP,O,SADjB,IAAEkB,QAAQ,KAAW,EAAW,EAAS,IACxB,GAAM,IAAgByG,gBAAgB,EAAKjP,QAAS4O,I,cAAnEM,EAAe,SAErBF,EAMI,QALF,EAAAE,aAAY,EAAZA,EAAc3I,MAAK,SAACW,GAClB,OAAI,IAAEsB,QAAQtB,EAAK,IACVA,EAAK,GAAc,KAAO,EAE5BA,EAAK,KAAkB,YAC9B,QAAI,G,oBAEJiI,EAAmB,IAAE5B,SAASyB,IAAmB,IAAEI,SAASJ,GAE5DrB,EAAWU,EAAIxE,qBACfwF,EAAaF,EAAmBH,EAAiBA,EAAenF,uBAClB,IAAlC8D,EAASrH,QAAQ+I,KACjChB,EAAIxE,qBAAuB,aAAMwF,IAGnCV,EAAgBQ,EAAmBH,EAAiBA,aAAc,EAAdA,EAAiBD,GAAgBR,G,aAErFF,EAAIxE,qBAAuB,EAAKqC,cAAcmC,EAAKtE,EAAO/J,I,wBAI1D,YAAiB+J,EAAO/J,GAASoJ,WAAa,IACkB,IAAhEiF,EAAIxE,oBAAoBvD,QAAQyD,EAAO/J,GAASoJ,aAEhDiF,EAAIxE,qBAAuB,WAAIE,EAAO/J,GAASoJ,YAIjDiF,EAAItU,GAAO,EAAKuV,iBAAiBjB,EAAKE,EAAQI,GAE1C,EAAKhD,UAAUhC,OAAS,GAC1B,EAAKgC,UAAU1E,SAAQ,SAACsI,GACtBlB,EAAIkB,GAAQlB,EAAItU,MAGpBuU,EAAgBvU,GAAO,CAAEiP,KAAMjP,EAAK8O,MAAOwF,EAAItU,I,kBA7D1B,EAAP,EAAAqU,E,wBAAA,YAAPrU,EAAG,K,KAAHA,KAAc,M,wCAAP,I,aA+DhB,SAAOuU,WAET,YAAAgB,iBAAA,SAAiBjB,EAA0BtU,EAAa4U,GACtD,IAAIa,EAASnB,EAAItU,GAIjB,OAHI,IAAE4O,QAAQ6G,IAAWjP,KAAKwL,mBAAmBhS,KAC/CyV,EAASnB,EAAI9N,KAAKwL,mBAAmBhS,KAEhCyV,UAAUb,GAEnB,YAAA9H,MAAA,SAAM/G,GAAN,WACQE,EAAUO,KAAKP,QAEf+G,EAAU,IAAE0I,OAAO3P,EAAQ4P,SAAS,SAACxI,GAEzC,SACgB,IAAdA,EAAKyI,OACHzI,EAAKP,YACLO,EAAKlH,GAAS4P,YACf,IAAEjH,QAAQ,YAAgB,EAAKjB,YAAa5H,EAAQ6H,WAAYT,EAAKlH,GAASf,QAAQ,KACtF,IAAE0J,QAAQ,YAAgB,EAAKjB,YAAa5H,EAAQ6H,WAAYT,EAAKlH,GAASsK,UAAU,QAG1FuF,QAAO,SAACC,EAAM/F,GACb,GAAI,YAAiBA,EAAO/J,GAASoJ,WAAa,EAAG,CACnD,IAAM2G,EAAc,IAAEzG,UAAUS,GAEhC,OADAgG,EAAY/P,GAASoJ,UAAY,GACjC,OAAW0G,GAAI,IAAEC,EAAahG,IAAM,GAEtC,cAAW+F,GAAI,IAAE/F,IAAM,KACtB,IACFP,KAAI,SAAOO,GAAM,qC,qFAIM,OADlBZ,EAAY,YAAgB5I,KAAKmH,YAAa5H,EAAQ6H,WAAYoC,EAAO/J,GAASsK,UAAU,GAC1E,GAAM,IAAgBwD,YAAYvN,KAAKP,U,OAAvD+N,EAAgB,SAChB3E,EAAY,YAAiBW,EAAO/J,GAASoJ,WAEnDD,EAAY,GAAG6G,OAAO7G,GAAWK,KAAI,SAACyG,G,QACpC,IACE,OAAOzP,KAAK8G,MAAM2I,GAClB,MAAO1H,GAEP,OAAKwF,EAC4F,QAA1F,MAAEzE,UAAUyE,EAAcxH,MAAK,SAACW,GAAS,OAAAA,EAAK,EAAKmG,mBAAmB/C,YAA7B,aAAiD,QAAI,GADrD,QAArB,IAAK4F,wBAAgB,oBAArB,EAAwBD,OAIjDhR,EAAS,YAAgBsB,KAAKmH,YAAa5H,EAAQ6H,WAAYoC,EAAO/J,GAASf,QAAQ,GACvFkR,EAAgB,G,EACG,EAAT,EAAAhH,E,wBAAA,YAAPkF,EAAG,KACJC,EAAkBvE,EAAO/J,GAASsO,gBAElCF,EAAUlV,OAAOkX,KAAK9B,GACV,GAAM/N,KAAK4N,iBAAiBC,EAASC,EAAKC,EAAiBvE,EAAQ/J,EAASF,KAJvE,M,OAIjBuQ,EAAY,SAElBF,EAASpH,KAAK,CAAC,CAAEuH,WAAY,YAAcD,M,wBAN7B,I,aAgBhB,OARM9O,EAAO,CACXgP,UAAW,IAAOzQ,EAAQ0Q,MAAMC,MAAMC,SAAStH,GAAWrI,SAC1D4P,QAAS,IAAO7Q,EAAQ0Q,MAAMI,IAAIF,SAAStH,GAAWrI,SACtD8P,OAAQ9G,EAAO/J,GAAS8Q,QAAU,IAClCC,UAAW,IAAErD,QAAQyC,GACrBlE,UAAWlC,EAAOpD,UAClBqD,WAAYD,EAAO/J,GAAS4P,YAE9B,GAAOrP,KAAKyQ,eAAezP,EAAMtC,EAAQkK,EAAWY,EAAO/J,GAAUF,cAGzE,OAAuB,IAAnBiH,EAAQ4C,OACH,GAGFsE,QAAQgD,IAAIlK,GAChBmK,MAAK,SAACC,GACL,OAAO,IAAEC,QAAQD,MAFd,OAIE,SAAC5I,GACN,MAAO,OAGb,YAAA2H,iBAAA,SAAiB7B,GACf,MAAO,IAET,YAAAgD,qBAAA,SAAqBC,GACnB,MAAO,IAET,YAAA5C,qBAAA,SAAqB4C,EAAcvH,GACjC,MAAO,IAGT,YAAAuC,YAAA,SAAYiF,GACV,IAAMC,EAAKjR,KAAKmH,YAAYY,SAASiJ,GAAU,IAAInK,QAC7CqK,EAASD,EAAGtJ,MAAM,iBAExB,OAAIuJ,EACKA,EAAO,GAAGzK,MAAM,KAElBwK,GAST,YAAAR,eAAA,SAAeU,EAAQzS,EAAQkK,EAAWY,EAAQjK,GAChD,IAAM6R,EAAc,YAAkB1S,EAAQ,WACxCmK,EAAY,YAAiBW,EAAOX,WAC1C,OAAO7I,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAMmQ,GAERC,EAAY3R,QACZ,CAAEC,OAAQ,iBAAkBhB,OAAM,IAClCiS,MAAK,SAAChI,GACN,OAAO,YAAiBA,EAAUC,EAAWC,OAIjD,YAAAoE,WAAA,WACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,QAElB,MACA,CAAEnB,OAAQ,oBACViR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS2I,WAAa,IAAI,SAAC3K,GAC/B,MAAO,CACL0G,KAAM1G,EAAK4K,WACXrY,MAAOyN,EAAKtF,OACZmQ,YAAa7K,EAAK6K,iBAGtB,SAAC7K,GAAS,oBAAAA,EAAK6K,mBAKrB,YAAAC,WAAA,SAAW/S,GAAX,gBAAW,IAAAA,MAAA,gBACT,IAAM0S,EAAc,YAAkB1S,EAAQ,WAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CACJ0K,UAAW1L,KAAKoG,YAGpBgL,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,wBAClBiR,MAAK,SAAChI,GACN,IAAMhI,EAAM,IAAEuO,OACZ,IAAEA,OAAOvG,EAAS+I,WAAa,IAAI,SAAC/K,GAAS,QAAEA,EAAK+E,YAAc,EAAKtF,YAAcO,EAAxC,gBAEzCgL,EAAc,EAAKtG,gBAAgBuG,aACzC,OAAID,EACKhR,EAAIsI,KAAI,SAACtC,GAAS,OAAAgL,EAAA,MAEpBhR,MAIX,YAAAkR,aAAA,SAAanT,EAAQyS,QAAA,IAAAA,MAAA,IACb,MAKFnR,KAAK8R,mBAAqB9R,KAAK8Q,qBAAqB9Q,MAJtD,IAAAP,eAAO,IAAG,EAAAO,KAAKP,QAAO,EACtBC,EAAM,SACS2H,EAAK,gBACpB0K,EAAW,cAEbZ,EAAS,EAAH,CAAKrG,OAAQ,EAAGkH,MAAO,KAAQb,GACrC,IAAMC,EAAc,YAAkB1S,EAAQe,GAC9C,OAAOO,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,MAAM+Q,aAAW,EAAXA,EAAaE,SAAUF,EAAYE,QAAQd,GAAUA,GAE7DC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAM,IAChBiR,MAAK,SAAChI,G,QAOFpC,EALJ,OAAIoC,aAAQ,EAARA,EAAUuJ,OAELvJ,GAKLtB,IACFd,EAAqE,QAA5D,EAAsB,QAAtB,MAAEzN,IAAI6P,EAAUtB,UAAM,QAAI,IAAEvO,IAAI6P,EAAU,iBAAUtB,WAAQ,QAAI,KAIvE0K,aAAW,EAAXA,EAAapJ,YACfpC,EAASwL,EAAYpJ,SAASpC,IAEzBA,OAIX,YAAA2G,qBAAA,SAAqBxO,EAAQ4H,GAA7B,gBAA6B,IAAAA,MAAA,IAC3B,IAAIC,EAAgB,GACd4K,EAAS,EAAK,CAAErG,OAAQ,EAAGkH,MAAO,KAAU1L,GAE5C,EAKFtG,KAAK8R,mBAAqB9R,KAAK8Q,qBAAqB9Q,MAJtD,IAAAP,eAAO,IAAG,EAAAO,KAAKP,QAAO,EACtBC,EAAM,SACS2H,EAAK,gBACpB0K,EAAW,cAGPX,EAAc,YAAkB1S,EAAQe,GAC9C,OAAOO,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,MAAM+Q,aAAW,EAAXA,EAAaE,SAAUF,EAAYE,QAAQd,GAAUA,GAE7DC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAM,IAChBiR,MAAK,SAAChI,G,gBACNpC,EAAqE,QAA5D,EAAsB,QAAtB,MAAEzN,IAAI6P,EAAUtB,UAAM,QAAI,IAAEvO,IAAI6P,EAAU,iBAAUtB,WAAQ,QAAI,GACzE,IAAMoD,EACoG,QAAxG,EAAgE,QAAhE,EAAwC,QAAxC,EAAmB,QAAnB,EAAA9B,EAASwJ,kBAAU,QAAIxJ,EAASyJ,gBAAQ,QAAIzJ,EAAS0J,mBAAW,QAAI,IAAEvZ,IAAI6P,EAAU,4BAAoB,QAAI,EAC9G,GAAIpC,EAAO6C,QAAUqB,EACnB,OAAOsH,aAAW,EAAXA,EAAapJ,UAAWoJ,EAAYpJ,SAASpC,GAAUA,EAE9D,IAAM+L,EAAQ,YAAY7H,GAAO0G,aAAM,EAANA,EAAQa,QAAS,KAC5C,EAAkB,GAIxB,OAHA,IAAEtL,QAAQ4L,GAAO,SAAC3L,GAChB,EAAS6B,KAAK,EAAKqJ,aAAanT,EAAM,OAAOiI,GAASL,QAEjDoH,QAAQgD,IAAI,GAChBC,MAAK,SAACC,GAIL,OAHA,IAAElK,QAAQkK,GAAW,SAACjK,GACpBJ,EAAS,IAAEkJ,OAAOlJ,EAAQI,OAErBoL,aAAW,EAAXA,EAAapJ,UAAWoJ,EAAYpJ,SAASpC,GAAUA,KAL3D,OAOE,SAACyB,GACN,OAAO+J,aAAW,EAAXA,EAAapJ,UAAWoJ,EAAYpJ,SAASpC,GAAUA,SAOxE,YAAAgM,mBAAA,SAAmBlL,GACjB,OAAOA,GAASA,EAAM+B,OAAS,GAGjC,YAAAoJ,eAAA,sBAIE,OAAKxS,KAAKuS,mBAAmBvS,KAAKR,UAQ3BkO,QAAQgD,IAAI,CACjB1Q,KAAKiN,aACLjN,KAAKyR,aAYLzR,KAAK6R,aAAa,eAAgB,CAChC/G,OAAQ,EACRkH,MAAO,MAGRrB,MAAK,SAACC,GACL,IAAM6B,EAAS,IAAE3Z,IAAI8X,EAAW,YAAa,IACvC8B,EAAa,IAAE5Z,IAAI8X,EAAW,YAAa,IAC3C+B,EAAa,IAAE7Z,IAAI8X,EAAW,YAAa,IAI3CgC,EAAc,IAAE9Z,IAAI2Z,EAAQ,OAAQ,IACpCI,EAAkB,IAAE/Z,IAAI4Z,EAAY,OAAQ,IAC5CI,EAAkB,IAAEha,IAAI6Z,EAAY,OAAQ,IAClD,GAAIC,GAAeC,GAAmBC,EAAiB,CACrD,IAAMC,EAAkB,GACpBH,GACFG,EAASvK,KAAK,IAAE1P,IAAI2Z,EAAQ,SAE1BI,GACFE,EAASvK,KAAK,IAAE1P,IAAI4Z,EAAY,SAE9BI,GACFC,EAASvK,KAAK,IAAE1P,IAAI6Z,EAAY,SAElC,IAAMK,EAAU,IAAE9G,KAAK,IAAE+G,QAAQ,IAAEC,KAAKH,IAAY,MACpD,MAAO,CACLtT,QAAS,EAAKA,QACd0T,OAAQ,QACRH,QAAO,GAGT,MAAO,CACL5M,UAAW,EAAKA,UAChB3G,QAAS,EAAKA,QACd0T,OAAQ,UACRH,QAAS,mCAA4B,EAAKvT,QAAO,aACjD2T,MAAO,cApDR,OAwDE,SAACpL,GACN,IAAIgL,EAAU,UAAG,EAAKvT,QAAO,aAW7B,OAVAuT,GAAWhL,EAAMqL,WAAarL,EAAMqL,WAAa,KAAO,GACpD,IAAEva,IAAIkP,EAAO,kBAAmB,IAClCgL,GAAWhL,EAAMhH,KAAKgH,MAAMsL,KAAO,KAAOtL,EAAMhH,KAAKgH,MAAMgL,QAClD,IAAEla,IAAIkP,EAAO,aAAc,IACpCgL,GAAWhL,EAAMhH,KAAKgH,MACb,IAAElP,IAAIkP,EAAO,OAAQ,IAC9BgL,GAAWhL,EAAMhH,KAEjBgS,GAAW,4BAAqB,EAAKvT,QAAO,aAEvC,CACLA,QAAS,EAAKA,QACd0T,OAAQ,QACRH,QAASA,MA9EN,CACLvT,QAASO,KAAKP,QACd0T,OAAQ,QACRH,QAAS,8CAgFT,YAAA3B,UAAN,SAAgB9R,EAASE,EAASyK,G,YAAA,IAAAA,MAAA,I,mFACtB,SAAM,YACd3K,EACAE,EACAyK,EACAlK,KAAKR,SACLQ,KAAKiL,iBAAiBjI,GACtBhD,KAAKF,a,OAEP,OARAP,EAAU,SAQV,GAAOS,KAAKF,WACTc,kBAAkBrB,GAClBoR,MAAK,SAAChI,GACL,OAAO,IAAE7P,IAAI6P,EAAU,gBAAiB,OAHrC,OAKE,SAACX,GACN,MAAMA,cAGd,EA9kBA,I,kyDCvBA,SAASuL,EAAera,EAAOsa,GAC7B,OAAOA,EAAOvK,KAAI,SAACtC,GAAS,WAAE7N,IAAII,EAAOyN,EAAM,IAAE7N,IAAII,EAAO,iBAAUyN,GAA1C,QAGxB,SAAgB8M,EAAgBC,EAAsCC,EAActM,G,kIAM5E,OALN8J,EAAS,EAAH,GAAQ,IAAEyC,KAAKD,EAAS,CAAC,mBAC9B3B,MAAQb,EAAOa,OAPP,GAQfb,EAAOrG,OAAsB,QAAb,EAAAqG,EAAOrG,cAAM,QAAI,EAGrB,GAAM4I,EAAQvC,I,OAQ1B,OARMF,EAA4B,QAAtB,kBAAsB,QAAI,GAChCuC,EAASvH,MAAMhE,QAAQZ,GAASA,EAAQ,CAACA,GAIzC8K,EAAyF,QAA5E,EAAqD,QAArD,EAAsC,QAAtC,EAAa,QAAb,EAAAlB,EAAGkB,kBAAU,QAAa,QAAT,EAAAlB,EAAG4C,cAAM,eAAE1B,kBAAU,QAAIlB,EAAGmB,gBAAQ,QAAa,QAAT,EAAAnB,EAAG4C,cAAM,eAAEzB,gBAAQ,QAAI,EAC7F0B,EAAaP,EAAetC,EAAIuC,GAEnB,IAAfrB,GAAoB2B,EAAW,GAAG1K,SAAW+I,EAE/C,GAAO2B,IAIHC,EAAQ5B,EAAa2B,EAAW,GAAG1K,OACnC4K,EAAapJ,KAAKC,KAAKkJ,EA1Bd,IA2BTE,EAAS,IAAIhI,MAAM+H,GAAYE,KAAK,GAAGjL,KAAI,SAACkL,EAAGrK,GAEnD,OADAqH,EAAOrG,OAAS6I,EAAQS,aAAe,EAAItK,GAAS,EAAIA,GAASqH,EAAOa,MACjE0B,EAAQvC,MAIE,GAAMzD,QAAQgD,IAAIuD,K,OAErC,SAFmB,SAED3E,QAAO,SAAC+E,EAAKC,GAC7B,IAAMC,EAAQhB,EAAee,EAAKd,GAGlC,OADAa,EAAI3N,SAAQ,SAAC8N,EAAM1K,GAAU,OAAA0K,EAAKhM,KAAI,MAATgM,EAAaD,EAAb,OACtBF,IACNP,WASC,SAAUW,EAA6BjO,EAAckO,GACzD,IAAMvD,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAAU,CACvB2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAM,EAAiB,GA2BvB,GA1BA,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IACZsL,EACF,EAAQlM,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAExDzD,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAGhB,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MAC7EmM,EACF,EAAQlM,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,KAEpEzD,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,UAGrBA,SAAgD,KAATA,IAC5C+N,EACF,EAAQlM,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQhO,IAElCwK,EAAO3X,GAAOmN,MAIhB+N,GAAY,EAAQtL,OAAS,EAE/B,OADA+H,EAAO0D,QAAU,EACV1D,EAGX,OAAOA,EAGH,SAAU2D,EAAwBC,GACtC,OAAO,IAAEjc,IACP,IAAEkN,KAAK,YAAU,SAACvG,GAAY,OAAAA,EAAQA,UAAR,KAC9B,aAIE,SAAUuV,EACdC,GAmBA,OAjBeA,EAAS3F,QAAO,SAAC+E,EAAKC,GAC3B,IAAAlO,EAAwCkO,EAA/B,UAAEY,EAA6BZ,EAAxB,MAAE,EAAsBA,EAAL,UAAjBa,OAAS,IAAG,EAAAD,EAAK,EAErCE,EAAef,EAAIrO,MAAK,SAACW,GAAS,OAAAA,EAAKuO,QAAL,KACxC,OAAKE,GAKLA,EAAaC,MAAM7M,KAAK,CAAE0M,MAAK,EAAEhc,MAAOkN,IACjCiO,IALLA,EAAI7L,KAAK,CAAE0M,MAAOC,EAAWjc,MAAOic,EAAWE,MAAO,CAAC,CAAEH,MAAK,EAAEhc,MAAOkN,MAChEiO,KAKR,IAGepL,KAAI,SAACtC,GACrB,OAAsB,IAAtBA,EAAK0O,MAAMjM,OAAe,CAAE8L,MAAOvO,EAAK0O,MAAM,GAAGH,MAAOhc,MAAOyN,EAAK0O,MAAM,GAAGnc,OAAUyN,KAKpF,IAAM2O,EAAgB,SAACC,EAAyBC,EAAyBhc,GAC9E,IACE,IAAMic,EAAYxV,KAAK8G,MAAMwO,GACvBG,EAAYzV,KAAK8G,MAAMyO,GAC7B,OAAOC,EAAUjc,KAASkc,EAAUlc,GACpC,MAAOwN,GACP,OAAOuO,IAAoBC,IAIlBG,EAAmB,SAACC,GAC/B,IAAMC,EAAQ,qBAAqBC,KAAKF,GACxC,IAAKC,EACH,OAAO,EAET,IAAME,EAASC,SAASH,EAAM,GAAI,IAElC,OADaA,EAAM,IAEjB,IAAK,IACH,OAAgB,MAATE,EAAiB,IAC1B,IAAK,IACH,OAAgB,KAATA,EAAgB,IACzB,IAAK,IACH,OAAgB,GAATA,EAAc,IACvB,IAAK,IACH,OAAgB,IAATA,EAEX,OAAO,I,cCvJT/d,EAAOD,QAAUke,G,6BCAjB,kCA0He,mBAACzd,EAAc0d,GAE5B,IAxHoBC,EAoGGC,EAoBjBC,GAxHcF,EAwHaD,EAvHjC,WAIE,WAAYI,EAAQC,GAClB5d,OAAOgK,OAAO2T,EAAQH,GAEtBG,EAAOE,YAAc,SAACnP,GACpB,IAAM5H,EAAU,YAAwB6W,EAAOlQ,WAC/C,OAAOkQ,EAAOG,WAAWC,kBAAkBjX,EAAS,CAAE4H,MAAK,EAAE3I,OAAQ4X,EAAO5X,UAGlF,OAZA,kCAYA,EAZA,IAwHA,IAAWiY,UAAUne,GArBE4d,EAqBoBC,EApBpC,WACL,MAAO,CACLO,SAvFW,uyFAwFXC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,W,cCpHlBlf,EAAOD,QAAUof,G,6jDC8BXC,EAAmB,CACvB5e,KAAM,sBACNgB,IAAK,WAED6d,EAAY,SAACpF,EAAcqF,GAC/B,OAAO,IAAI5J,SAAa,SAACC,EAAS4J,GAChCtF,EAAQuF,UAAY,SAACC,GACnB,IAAMC,EAAiB,CACrBD,MAAOA,EAAMjO,OAAOjD,OACpB0L,QAASA,EAAQ1L,OACjBoR,IAAK,QAEPhK,EAAQ+J,EAAUJ,GAAQ,SAE5BrF,EAAQ2F,QAAU,SAACH,GAAmB,OAAAF,EAAOE,EAAMjO,OAAOxB,OAApB,aAwJ3B,MApJf,WAIE,WAAY6P,GAHZ,KAAArf,KAAO,kBACP,KAAAoH,QAAU,EAGA,MAA0CiY,EAAzB,KAAjBrf,OAAI,IAAG,aAAU,EAAE,EAAuBqf,EAAZ,QAAXjY,OAAO,IAAG,IAAC,EAAEwX,EAAUS,EAAL,MAC7C7X,KAAKxH,KAAOA,EACZwH,KAAKJ,QAAUA,EAEfI,KAAK8X,OAAOV,GAqIhB,OA9HE,YAAAU,OAAA,SAAOV,GACL,IACMnF,GADYhQ,OAAO8V,WAAa9V,OAAO+V,iBAAmB/V,OAAOgW,cAAgBhW,OAAOiW,aACpEC,KAAKnY,KAAKxH,KAAMwH,KAAKJ,SAE/CqS,EAAQmG,gBAAkB,SAACX,GACzB,IAAMY,EAAMZ,EAAMjO,OAA4BjD,OAC1C8R,EAAGC,iBAAiBC,SAASnB,EAAM5e,MAKvC6f,EAAGG,kBAAkBpB,EAAM5e,KAAM,CAC/BigB,QAASrB,EAAM5d,OAGnByY,EAAQ2F,QAAU,WAAM,OAAAlK,QAAQ6J,OAAO,IAAIrF,MAAnB,cACxBD,EAAQuF,UAAY,WAAM,OAAA9J,QAAQC,QAAR,cAG5B,YAAA+K,OAAA,WACE,IACMzG,GADYhQ,OAAO8V,WAAa9V,OAAO+V,iBAAmB/V,OAAOgW,cAAgBhW,OAAOiW,aACpEC,KAAKnY,KAAKxH,KAAMwH,KAAKJ,SAE/C,OAAOyX,EAAUpF,EAAS,UAQtB,YAAA0G,WAAN,SAAiBC,EAAmB5X,G,oGAGrB,O,sBAAA,GAAMhB,KAAK0Y,U,OAOtB,OAPML,EAAK,SACL,EAAcA,EAAGQ,YAAYD,EAAW,aAC1B,EAAYE,YAAYF,GAEhCG,IAAI/X,GAGhB,GAAO,IAAI0M,SAAQ,SAACC,EAAS4J,GAC3B,EAAYyB,WAAa,WAEvBrL,EAAQ,aAGV,EAAYiK,QAAU,SAAUH,GAC9BF,EAAOE,Q,OAIX,O,WAAA,GAAO/J,QAAQ6J,OAAO,I,yBAQpB,YAAA0B,QAAN,SAAcjY,EAAgBkY,G,0GAIV,O,sBADVN,EAAYxB,EAAM5e,KACR,GAAMwH,KAAKmZ,QAAQnY,EAAKvB,U,OACpB,OADd2Z,EAAU,SACI,GAAMpZ,KAAKqZ,eAAeT,EAAW,c,OAYzD,OAZME,EAAc,SAEfM,GAEHpZ,KAAK2Y,WAAWC,EAAW5X,GAGzBsY,EAAO,OAAaF,GAAYpY,GAChCkY,IAASI,EAAUtY,GAEjBuY,EAAgBT,EAAYU,IAAIF,GAEtC,GAAOjC,EAAUkC,I,OAEjB,O,WAAA,GAAO7L,QAAQ6J,OAAO,I,yBAUpB,YAAA4B,QAAN,SAAcM,G,sGAIU,O,sBADdb,EAAYxB,EAAM5e,KACJ,GAAMwH,KAAKqZ,eAAeT,I,OAG9C,OAHME,EAAc,SACd7G,EAAU6G,EAAYhgB,IAAI2gB,GAEhC,GAAOpC,EAAUpF,EAAS,Y,OAE1B,O,WAAA,GAAOvE,QAAQ6J,OAAO,I,yBAGpB,YAAAmC,WAAN,SAAiBd,G,oGAGO,O,sBAAA,GAAM5Y,KAAKqZ,eAAeT,I,OAE/B,OAFTE,EAAc,SACd7G,EAAU6G,EAAYa,SACb,GAAMtC,EAAUpF,EAAS,Y,OAExC,SAFe,UAEU,I,OAEzB,O,WAAA,GAAOvE,QAAQ6J,OAAO,I,yBAQZ,YAAA8B,eAAd,SAA6BT,EAAmBtB,G,qBAAa5J,SAAO,W,wDAErD,O,sBAAA,GAAM1N,KAAK0Y,U,OACtB,SADW,SACDG,YAAYD,EAAWtB,GAAMwB,YAAYF,I,OAEnD,O,WAAA,GAAOlL,QAAQ6J,OAAO,I,yBAG5B,EA9IA,GAoJe,CAAc,CAAEH,MAAK,I,60CCnMpC,aAKE,aAFA,KAAAwC,OAAS,YACT,KAAAC,SAAW,GA8Bb,OA5BE,YAAAvM,YAAA,SAAY7N,EAAiBvG,GAC3B,OAAO8G,KAAK8Z,WAAWra,EAASO,KAAK4Z,OAAQ1gB,GAAO,IAEhD,YAAAqU,YAAN,SAAkB9N,G,mEAChB,SAAOO,KAAK+Z,WAAWta,EAASO,KAAK4Z,gBAEvC,YAAAI,gBAAA,SAAgBva,EAAiBuP,EAAciL,GAC7C,OAAOja,KAAK8Z,WAAWra,EAASuP,EAAMiL,GAAQ,IAE1C,YAAAvL,gBAAN,SAAsBjP,EAAiBuP,G,mEACrC,SAAOhP,KAAK+Z,WAAWta,EAASuP,WAE1B,YAAA8K,WAAR,SAAmBI,EAAoB1gB,EAAaN,EAA4BggB,G,MAE9E,YAF8E,IAAAA,OAAA,GAEvEnB,EAAUkB,UAAO,GAEpBxZ,QAASya,IACR1gB,GAAMN,E,GAETggB,IAIU,YAAAa,WAAd,SAAyBta,EAAiBjG,G,gGACxB,SAAMue,EAAUoB,QAAQ1Z,I,OAExC,OAFM0a,EAAU,SAEhB,GAAO3gB,EAAM2gB,aAAO,EAAPA,EAAU3gB,GAAO2gB,WAElC,EAlCA,GAmCe,QAAI,G,8BCpCnB,0cAEaC,EAAwB,CACnC,CACE5gB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,aACL6gB,aAAc,aACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,kBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,MAKtBwhB,EAAe,CACnBhc,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACfuO,QAAS,GACTC,UAAW,GACXC,cAAe,GACfC,UAAW,GACXvU,QAAS,CACPsE,OAAQ,EACRkH,MAAO,GACPgJ,OAAQ,GACRC,WAAY,GACZC,WAAY,GACZC,OAAQ,KAIZ,SAASC,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGT,IAAMkK,EAA0B,CAAC,aAAc,gBACzCC,EAAuB,CAAC,UAAW,aAEnCxO,EAAqB,CACzB/C,SAAU,aACV6Q,QAAS,UACTzF,UAAW,YACX4F,UAAW,eAGPQ,EAA0B,IAAIC,MAClC,CACEZ,QAAS,UACTC,UAAW,YACXC,cAAe,YACfC,UAAW,eAEb,CACEjiB,IAAK,SAACqP,EAAKsT,GACT,MAAyC,eAArC/T,OAAO+T,GAAMC,oBAA6C,aACvDvT,EAAIsT,MAKXE,EAAe,CACnBC,UAAW,YACXC,UAAW,YACXC,cAAe,iBAgBXvQ,EAAyB,CAC7BwQ,QAAS,CACP1N,iBAAkBsN,EAAaC,UAC/BtN,gBAAiB,UACjBC,aAAczB,EAAmB8N,SAGnCoB,UAAW,CACT3N,iBAAkBsN,EAAaC,UAC/BtN,gBAAiB,UACjBC,aAAczB,EAAmB8N,SAEnCqB,UAAW,CACT5N,iBAAkBsN,EAAaE,UAC/BvN,gBAAiB,gBACjBC,aAAczB,EAAmBqI,WAEnC+G,YAAa,CACX7N,iBAAkBsN,EAAaG,cAC/BxN,gBAAiB,YACjBC,aAAczB,EAAmBiO,YAGtB,a,6BCtKf,gsBAEM3U,EAAY,kBAGZ+V,EAAkB,mBAwBlBC,EAAkD,CACtD,CACE5iB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,wBACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,oBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACN9C,KA3DiB,CACnB,CAAEnH,KAAM,UAAWnU,MAAO,GAC1B,CAAEmU,KAAM,UAAWnU,MAAO,KA2D1B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,wCACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,mBACL6gB,aAAc,oBACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,qBACdC,aAAc,oBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,oBACdC,aAAc,oBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,aACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,QACL6gB,aAAc,SACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,gBACL6gB,aAAc,iBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,cACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,SACN9C,KA1GW,CACb,CAAEnH,KAAM,WAAYnU,MAAO,GAC3B,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,OAAQnU,OAAQ,KAyGxB,CACEM,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KA9HY,CACd,CAAEnH,KAAM,mBAAoBnU,MAAO,oBACnC,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,mBAAoBnU,MAAO,sBA4HnC,CACEM,IAAK,YACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KA/Hc,CAChB,CAAEnH,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,KAAMnU,MAAO,MAkIjBmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBH,GAqBbI,EAAoB,CACxB9d,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,iBACfoQ,KAAM,GACNC,SAAU,GACVC,SAAU,GACVC,QAAS,GACTC,WAAY,GAEZrW,QAjCe,CACfsW,gBAAiB,GACjBC,aAASxU,EACTyU,iBAAkB,GAClBC,OAAQ,GACRC,iBAAkB,GAClBC,iBAAkB,GAClBC,kBAAmB,GACnBpL,MAAO,GACPlH,OAAQ,EACRuS,eAAW9U,EACX+U,OAAQ,GACRC,MAAO,GACPC,cAAe,GACfC,WAAY,GACZC,QAAS,GACTC,UAAW,KA4Cb,SAASvC,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,IAAMgG,EAAoB,CAAC,iBAAkB,mBAAoB,oBAC3DoR,EAA+B,CAAC,aAAc,eAAgB,QAC9DC,EAA6B,CAAC,qBAAsB,cACpDC,EAA6B,CACjCC,IAAK,mBAELC,iBAAkB,OAClBC,SAAU,WACVC,MAAO,qBACPC,KAAM,cAGFC,EAAqB,CACzBlB,iBAAkB,eAWdpQ,EAAqB,CACzB/C,SAAU,iBACV4S,SAAU,aACVC,QAAS,qBACTuB,KAAM,QAGFxC,EAAe,CACnBgB,SAAU,eACVC,QAAS,eAeLrR,EAAyB,CAC7BkR,KAAM,CACJpO,iBAAkBsN,EAAagB,SAC/BrO,gBAAiB,WACjBC,aAAczB,EAAmB6P,UAEnCD,SAAU,CACRrO,iBAAkBsN,EAAagB,SAC/BrO,gBAAiB,WACjBC,aAAczB,EAAmB6P,UAEnC0B,mBAAoB,CAClBhQ,iBAAkBsN,EAAaiB,QAC/BtO,gBAAiB,UACjBC,aAAczB,EAAmB8P,SAEnC0B,WAAY,CACVjQ,iBAAkBsN,EAAaiB,QAC/BtO,gBAAiB,aACjBE,aAAc,OACdD,aAAczB,EAAmBqR,OAGtB,a,6BCnSf,qlBAGM/X,EAAY,WAGZ+V,EAAkB,YAElBoC,EAAwB,CAC5BC,SAAU,YACVC,OAAQ,YACR5D,UAAW,YACX6D,cAAe,iBAIXC,EAAwB,CAAC,YAAa,eAEtC7R,EAAqB,CACzB/C,SAAU,YACV8Q,UAAW,YACX6D,cAAe,iBASXE,EAAiD,CACrD,CACEplB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,MAIHoE,EAAoB,CACxBngB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YAEfwO,UAAW,GACX6D,cAAe,GACflY,QApCuB,CACvBwL,MAAO,GACPlH,OAAQ,IAqCV,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,IAAMsY,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,YACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,aACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAEX,SAAS6lB,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAM9B,OALAC,EAAUlP,WAAWrJ,SAAQ,SAACC,IACkB,IAA1CA,EAAKoJ,WAAWhK,QAAQ,eAAqE,IAA9CY,EAAKoJ,WAAWhK,QAAQ,kBACzEY,EAAKoJ,WAAWvH,KAAK,oBAGlByW,EAGT,IAAMtD,EAAe,CACnBd,UAAW,YACX6D,cAAe,iBAeXnT,EAAyB,CAC7ByQ,UAAW,CACT3N,iBAAkBsN,EAAad,UAC/BvM,gBAAiB,YACjBC,aAAczB,EAAmB+N,WAEnCqE,cAAe,CACb7Q,iBAAkBsN,EAAa+C,cAC/BpQ,gBAAiB,gBACjBC,aAAczB,EAAmB4R,gBAGtB,a,8BChIf,2qBAGMtY,EAAY,UACZ+Y,EAAU,UAEVhD,EAAkB,WAElBiD,EAAuB,CAC3BC,WAAY,aACZC,QAAS,UACTC,UAAW,QAIPC,EAAuB,CAAC,aAAc,mBAAoB,aAE1D1S,EAAqB,CACzB/C,SAAU,aACVtB,KAAM,OACNgX,QAASN,GAILxD,EAAe,CACnB+D,MAAO,QACPC,MAAO,aAeHpU,EAAyB,CAC7BkU,QAAS,CACPpR,iBAAkBsN,EAAa+D,MAC/BpR,gBAAiB,UACjBC,aAAczB,EAAmB2S,SAEnChX,KAAM,CACJ4F,iBAAkBsN,EAAagE,MAC/BrR,gBAAiB,OACjBC,aAAczB,EAAmBrE,OAW/BmX,EAAgD,CACpD,CACEpmB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,aACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,UAKJ+E,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiBqD,GAGbC,EAAY,CAChBnhB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACfoT,QAAS,GACThX,KAAM,GACNjC,QA1DsB,CACtBwL,MAAO,GACPlH,OAAQ,EACRmQ,WAAY,GACZwE,QAAS,KAyDX,SAASrE,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMsY,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,cAET,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,aACT,CAAEA,MAAO,YACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eAGT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,qBAGX,SAAS6lB,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAapJ,EAAKoJ,WAAW9G,KAAI,SAAC6W,GAAM,OAAAV,EAAqBU,IAArB,QAExCb,EAEM,a,6BClJf,8nBAGM7Y,EAAY,cAGZ+V,EAAkB,YAElB4D,EAAwB,CAC5BC,OAAQ,SACRX,WAAY,aACZY,QAAS,kBACTC,QAAS,mBAILC,EAAwB,CAAC,aAAc,gBAEvCrT,EAAqB,CACzB/C,SAAU,aACVqW,OAAQ,SACRC,gBAAiB,mBAwBbC,EAAiD,CACrD,CACE9mB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,cACL6gB,aAAc,cACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,sCACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,oBAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,eAAgBnU,MAAO,kBAGnC,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,MAAOnU,MAAO,SAG1B,CACEM,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,MAAOnU,MAAO,SAG1B,CACEM,IAAK,eACL6gB,aAAc,eACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,OAAQnU,MAAO,MAMvBmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB+D,GAGbC,EAAa,CACjB7hB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf6T,QAAS,GACTE,OAAQ,GACR5Z,QA3JuB,CACvBwL,MAAO,GACPlH,OAAQ,EACR0V,YAAa,GACbC,WAAY,GACZC,UAAW,GACXC,WAAY,GAEZpD,MAAO,GACPqD,SAAU,GAEVlD,QAAS,GACTmD,YAAa,GAEbC,cAAe,GAEfC,aAAc,GACdC,mBAAoB,KA4IhBC,EAAmB,CACvBhB,QAAS,UACTZ,WAAY,aACZW,OAAQ,UAEV,SAASjB,EAAgBC,GACvB,IAAMC,EAAY,oBAAUD,GAI5B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAapJ,EAAKoJ,WAAW9G,KAAI,SAAC6W,GAAM,OAAAmB,EAAiBnB,IAAjB,QAExCb,EAGT,SAAS7D,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAS,YAA6B3K,GAAS,GAOrD,OALA2K,EAAO+P,aAAc,EACrB/P,EAAOgQ,mBAAoB,GACvBhQ,EAAOoM,OAASpM,EAAOyP,YAAUzP,EAAO+P,aAAc,GACtD/P,EAAO2P,gBAAe3P,EAAOgQ,mBAAoB,GACjD,kBAAQhQ,EAAO6P,sBAAqB7P,EAAO6P,mBAAqB7P,EAAO6P,mBAAmB9U,KAAK,MAC5FiF,EAGT,IAAMwK,EAAe,CACnByE,OAAQ,SACRC,gBAAiB,WAeb9U,EAAyB,CAC7B6U,OAAQ,CACN/R,iBAAkBsN,EAAayE,OAC/B9R,gBAAiB,SACjBC,aAAczB,EAAmBsT,QAEnCC,gBAAiB,CACfhS,iBAAkBsN,EAAa0E,gBAC/B/R,gBAAiB,UACjBC,aAAczB,EAAmBuT,kBAI/BvB,EAAkB,CACtB,CAAEzR,KAAM,WAAYnU,MAAO,cAC3B,CAAEmU,KAAM,WAAYnU,MAAO,cAC3B,CAAEmU,KAAM,WAAYnU,MAAO,gBAC3B,CAAEmU,KAAM,WAAYnU,MAAO,gBAC3B,CAAEmU,KAAM,cAAenU,MAAO,eAC9B,CAAEmU,KAAM,WAAYnU,MAAO,aAC3B,CAAEmU,KAAM,WAAYnU,MAAO,cAC3B,CAAEmU,KAAM,WAAYnU,MAAO,eAC3B,CAAEmU,KAAM,aAAcnU,MAAO,mBAC7B,CAAEmU,KAAM,aAAcnU,MAAO,mBAC7B,CAAEmU,KAAM,YAAanU,MAAO,gBAC5B,CAAEmU,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,aAAcnU,MAAO,gBAC7B,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,WAAYnU,MAAO,oBAC3B,CAAEmU,KAAM,YAAanU,MAAO,eAEf,a,ynBC9PTkN,EAAY,gBAqEZgb,EAA2B,CAC/B,CACE5nB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,aACL6gB,aAAc,cACdC,aAAc,OACdhD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAzEY,CACd,CAAEnH,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,eAAgBnU,MAAO,gBAC/B,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,cAAenU,MAAO,iBAsE9B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAzEc,CAChB,CAAEnH,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,KAAMnU,MAAO,KAyErB,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,0BACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,mDACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,sCACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdhT,UAAU,EACVgQ,KAAM,SACN9C,KAxJW,CACb,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,OAAQ,GACvB,CAAEmU,KAAM,MAAOnU,OAAQ,KAqJvB,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAxJgB,CAClB,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,KAuJtB,CACEM,IAAK,aACL6gB,aAAc,aACdC,aAAc,+BACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdhT,UAAU,EACVgQ,KAAM,SACN9C,KArLc,CAChB,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,UAAWnU,MAAO,KAoL1B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,kCACdC,KAAM,GACNjD,KAAM,SACN9C,KAlMgB,CAClB,CAAEnH,KAAM,OAAQnU,MAAO,YACvB,CAAEmU,KAAM,OAAQnU,MAAO,aAkMvB,CACEM,IAAK,OACL6gB,aAAc,OACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KArKS,CACX,CAAEnH,KAAM,YAAanU,MAAO,GAC5B,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,cAAenU,MAAO,GAC9B,CAAEmU,KAAM,cAAenU,MAAO,MAgK1BmoB,EAAiB,CACrB3iB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,EAAF,GArKW,CAClByU,WAAY,GACZyC,QAAS,GACTC,UAAW,KACX2D,OAAQ,GACRC,UAAW,GACXZ,WAAY,GACZD,UAAW,GACXc,aAAc,GACdC,WAAY,GACZC,cAAe,GACf1G,OAAQ,GACR2G,YAAa,KACbC,WAAY,GACZC,UAAW,KACXC,YAAa,GACbC,KAAM,OAsJNC,QAAS,GACTC,QAAS,IAGX,SAAS7G,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAqBpB,OApBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAEhB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGT,IAAM+Q,EAA4B,CAAC,aAAc,eAAgB,SAE3DC,EAA4B,CAChC9C,WAAY,aACZ2C,QAAS,UACTC,QAAS,WAGLnV,EAAqB,CACzB/C,SAAU,aACViY,QAAS,UACTC,QAAS,WAGLG,EAAW,CAAC,QAAS,SAEZ,a,6BCrQf,6hBAGMhc,EAAY,eAGZ+V,EAAkB,YAElBoC,EAAwB,CAC5Bc,WAAY,aACZgD,KAAM,YAIFC,EAAgC,CAAC,aAAc,gBAE/CxV,EAAqB,CACzB/C,SAAU,aACVsY,KAAM,YASFzD,EAAiD,CACrD,CACEplB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,MAIH8H,EAAa,CACjB7jB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aAEfgW,KAAM,GACN7b,QAnCuB,CACvBwL,MAAO,GACPlH,OAAQ,IAoCV,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,IAAMsY,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,YACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,aACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAILyiB,EAAe,CACnB0G,KAAM,YAeF9W,EAAyB,CAC7BiX,SAAU,CACRnU,iBAAkBsN,EAAa0G,KAC/B/T,gBAAiB,OACjBC,aAAczB,EAAmBuV,OAGtB,a,6BC9Gf,8fAEMjc,EAAY,eAEZmY,EAAwB,CAC5BE,OAAQ,YACRrY,UAAW,cACXqc,MAAO,QAIHC,EAAgC,CAAC,YAAa,eAE9C5V,EAAqB,CACzB/C,SAAU,YACV3D,UAAW,cACXqc,MAAO,QAeH7D,EAAiD,CACrD,CACEplB,IAAK,aACL6gB,aAAc,aACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,IAAKnU,MAAO,QACpB,CAAEmU,KAAM,IAAKnU,MAAO,YAKpBqpB,EAAa,CACjB7jB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YAEfjG,UAAW,GACXqc,MAAO,GACPjc,QApCuB,CACvBwL,MAAO,GACPlH,OAAQ,EACR6X,oBAAoB,EACpBC,gBAAgB,EAChBC,cAAe,CAAC,IAChBhO,QAAS,CACPiO,WAAY,CAAEzV,KAAM,IAAKnU,MAAO,WAgCpC,SAASkiB,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAQqc,eAAgB,CACpC,IAAMA,EAAgB,IAAE5P,QAAQzM,EAAQqc,eACpC,IAAE3P,KAAK2P,GAAezZ,OAAS,IACjC+H,EAAO0R,cAAgB,IAAE3P,KAAK2P,GAAejO,MAAM,EAAG,YAGrD,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,CAAC,IAAE7b,IAAI6N,EAAM,QAAS,KAAKiO,MAAM,EAAG,UAIxE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAET,IAAM2N,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,YACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,aACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAILyiB,EAAe,CACnBvV,UAAW,cACXqc,MAAO,QAeHlX,EAAyB,CAC7BwX,YAAa,CACX1U,iBAAkBsN,EAAavV,UAC/BkI,gBAAiB,YACjBC,aAAczB,EAAmB1G,WAEnCqC,KAAM,CACJ4F,iBAAkBsN,EAAa8G,MAC/BnU,gBAAiB,QACjBC,aAAczB,EAAmB2V,QAGtB,a,geC5ITO,EAA0B,CAC9B,CACEvjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,oDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,mDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,UACT,YACE,OAAO,YAAE,WAEX2G,UAAW,aACX6c,KAAM,mDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,WACT,YACE,OAAO,YAAE,aAEX2G,UAAW,eACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,QACT,YACE,OAAO,YAAE,UAEX2G,UAAW,YACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,WACT,YACE,OAAO,YAAE,cAEX2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,YACT,YACE,OAAO,YAAE,cAEX2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,eACT,YACE,OAAO,YAAE,kBAEX2G,UAAW,oBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,UACT,YACE,OAAO,YAAE,YAEX2G,UAAW,cACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,OACT,YACE,OAAO,YAAE,YAEX2G,UAAW,cACX6c,KAAM,wDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,sDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,mDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,aACT,YACE,OAAO,YAAE,gBAEX2G,UAAW,kBACX6c,KAAM,mDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,QACT,YACE,OAAO,YAAE,UAEX2G,UAAW,YACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,OACT,YACE,OAAO,YAAE,SAEX2G,UAAW,WACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,cACT,YACE,OAAO,YAAE,iBAEX2G,UAAW,mBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,eACT,YACE,OAAO,YAAE,mBAEX2G,UAAW,qBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,KACT,YACE,OAAO,YAAE,OAEX2G,UAAW,SACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,2BAGb,CACExjB,QAAS,WACT,YACE,OAAO,YAAE,cAEX2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,MAAO,UAAG,YAAE,uBAAsB,YAAI,YAAE,eAAc,OAG1D,CACExjB,QAAS,YACT,YACE,OAAO,YAAE,eAEX2G,UAAW,iBACX6c,KAAM,uDACN,gBACE,MAAO,UAAG,YAAE,uBAAsB,YAAI,YAAE,eAAc,OAG1D,CACExjB,QAAS,cACT,YACE,OAAO,YAAE,gBAEX2G,UAAW,kBACX6c,KAAM,uDACN,gBACE,MAAO,UAAG,YAAE,uBAAsB,YAAI,YAAE,eAAc,OAG1D,CACExjB,QAAS,OACT,YACE,MAAO,UAAG,YAAE,uBAAsB,YAAI,YAAE,QAAO,MAEjD2G,UAAW,YACX6c,KAAM,uDACN,gBACE,MAAO,UAAG,YAAE,uBAAsB,YAAI,YAAE,QAAO,OAGnD,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX8c,YAAY,EACZD,KAAM,uDACN,gBACE,OAAO,YAAE,8BAGb,CACExjB,QAAS,cACT,YACE,OAAO,YAAE,iBAEX2G,UAAW,mBACX8c,YAAY,EACZD,KAAM,uDACN,gBACE,OAAO,YAAE,8BAGb,CACExjB,QAAS,QACT,YACE,OAAO,YAAE,WAEX2G,UAAW,aACX8c,YAAY,EACZD,KAAM,uDACN,gBACE,OAAO,YAAE,8BAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,WAEX2G,UAAW,aACX6c,KAAM,wDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,wDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,wDAER,CACExjB,QAAS,SACT,YACE,OAAO,YAAE,WAEX2G,UAAW,aACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,mBAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,mBAGb,CACExjB,QAAS,WACT,YACE,OAAO,YAAE,aAEX2G,UAAW,eACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,mBAGb,CACExjB,QAAS,OACT,YACE,OAAO,YAAE,SAEX2G,UAAW,WACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,mBAGb,CACExjB,QAAS,eACT,YACE,OAAO,YAAE,kBAEX2G,UAAW,eACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,mBAGb,CACExjB,QAAS,eACT,YACE,OAAO,YAAE,kBAEX2G,UAAW,eACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,mBAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,KACT,YACE,OAAO,YAAE,OAEX2G,UAAW,SACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,oBAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,QACT,YACE,OAAO,YAAE,WAEX2G,UAAW,aACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,OACT,YACE,OAAO,YAAE,UAEX2G,UAAW,YACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,YACT,YACE,OAAO,YAAE,gBAEX2G,UAAW,kBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,wDAER,CACExjB,QAAS,SACT,YACE,MAAO,UAAG,YAAE,qBAAoB,WAElC2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,UACT,YACE,MAAO,UAAG,YAAE,qBAAoB,YAElC2G,UAAW,iBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,SACT,YACE,MAAO,UAAG,YAAE,qBAAoB,WAElC2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,SACT,YACE,MAAO,UAAG,YAAE,qBAAoB,WAElC2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,WACT,YACE,MAAO,UAAG,YAAE,qBAAoB,aAElC2G,UAAW,kBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,UACT,YACE,MAAO,UAAG,YAAE,qBAAoB,YAElC2G,UAAW,iBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,SACT,YACE,MAAO,UAAG,YAAE,qBAAoB,WAElC2G,UAAW,gBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,cACT,YACE,MAAO,UAAG,YAAE,qBAAoB,gBAElC2G,UAAW,qBACX6c,KAAM,uDACN,gBACE,OAAO,YAAE,uBAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,kBAEX2G,UAAW,oBACX6c,KAAM,uDAER,CACExjB,QAAS,aACT,YACE,OAAO,YAAE,eAEX2G,UAAW,iBACX6c,KAAM,wDAER,CACExjB,QAAS,OACT,YACE,OAAO,YAAE,SAEX2G,UAAW,WACX6c,KAAM,kDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEXyjB,YAAY,EACZ9c,UAAW,UACX6c,KAAM,kDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,kBACT,YACE,OAAO,YAAE,sBAEXyjB,YAAY,EACZ9c,UAAW,wBACX6c,KAAM,kDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,QACT,YACE,OAAO,YAAE,WAEXyjB,YAAY,EACZ9c,UAAW,aACX6c,KAAM,kDACN,gBACE,OAAO,YAAE,4BAGb,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,mDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,UACX6c,KAAM,kDAER,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAEX2G,UAAW,WACX6c,KAAM,kDAER,CACExjB,QAAS,OACT,YACE,OAAO,YAAE,SAEX2G,UAAW,UACX6c,KAAM,kDAcR,CACExjB,QAAS,MACT,YACE,OAAO,YAAE,QAGX2G,UAAW,UACX6c,KAAM,mDAGJE,EAAc,GACdC,EAAa,GACb5W,EAAoB,GACpB4O,EAAyB,GAKzBiI,EAAiB,CAErBC,WAAY,WACZ5f,QAAS,UACTC,IAAK,CAAC,YAAa,WAAY,eAC/B4f,GAAI,CAAC,SAAU,UAAW,SAAU,SAAU,WAAY,UAAW,SAAU,gBAG1D,OAET1T,OAAOnJ,SAAQ,SAAC8c,G,MACxB,EAA2BA,EAAS/c,MAAM,KAAvCgd,EAAU,KAAEC,EAAQ,KAG3BD,EAAuC,QAA1B,EAAAJ,EAAeI,UAAW,QAAIA,EAG3C,GAAGhU,OAAOgU,GAAY/c,SAAQ,SAAC1O,G,QAEvByH,EAAUzH,EAAO+P,QAAQ,gBAAgB,SAACoM,EAAG5H,GAAM,OAAAA,EAAA,iBACnDoX,EAASlkB,EAAQmkB,cAGvB,GAAiB,kBAAbF,EAA8B,CAChC,IAAM,EAAM,OAAQ,UAAGF,IAAX,QAGZL,EAAY,UAAGQ,EAAM,eACnB,W,IAAY,sDACV,IAAMna,EAAS,IAAI,EAAG,WAAH,EAAG,aAAI2H,GAAM,IAAE1R,IAAO,KAGzC,OAFA+J,EAAO/J,QAAUA,EAEV+J,GASb,GAJiB,aAAbka,GACF,OAAQ,UAAGF,IAGI,iBAAbE,EAA6B,CAC/B,IAAM9X,EAAQ,UAAG+X,EAAM,qBACjBE,EAAY,UAAGF,EAAM,0BAErBna,EAAS,OAAQ,UAAGga,IAE1BJ,EAAW3jB,GAAW+J,EAAM,QAC5BgD,EAAkBZ,GAAsB,QAAb,EAAApC,EAAOoC,UAAM,QAAIpC,EAAM,kBAClD4R,EAAuByI,GAA8B,QAAjB,EAAAra,EAAOqa,UAAU,QAAIra,EAAM,+B,6BCttBrE,mkBAEMpD,EAAY,wBAGZ+V,EAAkB,uBAElB2H,EAAmC,CACvCC,KAAM,OACNC,OAAQ,UAIJC,EAAmC,CAAC,aAAc,gBAElDnX,EAAqB,CACzB/C,SAAU,aACVia,OAAQ,UAsBJE,EAA4D,CAChE,CACE1qB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,OAAQnU,MAAO,iBACvB,CAAEmU,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,KAAMnU,MAAO,WACrB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,aACtB,CAAEmU,KAAM,QAASnU,MAAO,YACxB,CAAEmU,KAAM,MAAOnU,MAAO,iBAG1B,CACEM,IAAK,4BACL6gB,aAAc,4BACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiB2H,GAGbC,EAAwB,CAC5BzlB,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf2X,OAAQ,GACRxd,QA7JkC,CAClCwL,MAAO,GACPlH,OAAQ,EACR,YAAa,GACb,YAAa,GACb,cAAe,GACf,cAAe,GACf,gBAAiB,GACjB,aAAc,GACd,gBAAiB,GACjB,iBAAkB,GAClB,4BAA6B,GAC7B,kBAAmB,GACnB,WAAY,GACZ,SAAU,GACV,YAAa,KAkJT6Q,EAAe,CACnBqI,OAAQ,UAeJzY,EAAyB,CAC7B6Y,OAAQ,CACN/V,iBAAkBsN,EAAaqI,OAC/B1V,gBAAiB,SACjBC,aAAczB,EAAmBkX,SAIrC,SAAS5I,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,cCnNfxO,EAAOD,QAAUssB,G,6BCEjB,+lBAEMje,EAAY,iBAGZ+V,EAAkB,kBAElBmI,EAA8B,CAClCC,UAAW,YACXC,gBAAiB,kBACjBC,MAAO,QACPC,MAAO,SAIHC,EAA8B,CAAC,YAAa,eAE5C7X,EAAqB,CACzB/C,SAAU,YACVya,gBAAiB,mBAIb7I,EAAe,CACnBiJ,gBAAiB,mBAebrZ,EAAyB,CAC7BsZ,gBAAiB,CACfxW,iBAAkBsN,EAAaiJ,gBAC/BtW,gBAAiB,kBACjBC,aAAczB,EAAmB0X,kBAc/BM,EAAuD,CAC3D,CACEtrB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBuI,GAGbC,EAAmB,CACvBrmB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACfwY,gBAAiB,GACjBre,QAjF6B,CAC7BwL,MAAO,GACPlH,OAAQ,EACRka,UAAW,GACXC,YAAa,GACbC,eAAgB,GAChBC,YAAa,GACbC,UAAW,KA6Eb,SAAShK,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMsY,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAEI,a,6BC3Jf,qYAEamsB,EAA0B,CACrC,CACE7rB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,cACL6gB,aAAc,cACdC,aAAc,uCACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,aACvB,CAAEmU,KAAM,OAAQnU,MAAO,WACvB,CAAEmU,KAAM,KAAMnU,MAAO,YAGzB,CACEM,IAAK,MACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,KAAMnU,MAAO,KAGzB,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,eACzB,CAAEmU,KAAM,UAAWnU,MAAO,oBAKhC,SAASkiB,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAIF,IAAMmU,EAAoB,IAAI9J,MACnC,GACA,CACE1iB,IAAG,SAAC0Q,EAAQ+b,EAAGC,GACb,GAAiB,iBAAND,EAAgB,CACzB,GAAIA,EAAEE,WAAW,OAAQ,MAAO,YAChC,GAAIF,EAAEE,WAAW,SAAU,MAAO,KAEpC,OAAOC,QAAQ5sB,IAAI0Q,EAAQ+b,EAAGC,IAEhCG,IAAG,SAACnc,EAAQoc,GACV,OAAO,KAKA9Y,EAAqB,CAChC/C,SAAU,YACVsY,KAAM,MAIF1G,EAAe,CACnB0G,KAAM,UAkBF9W,EAAyB,CAC7Bsa,GAAI,CACFxX,iBAAkBsN,EAAa0G,KAC/B/T,gBAAiB,SACjBC,aAAczB,EAAmBuV,OAK/B7V,EAAoB,CAAC,YAAa,eAIzB,WACb9N,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACfyZ,OAAQ,GACRtf,QAAS,CACPsE,OAAQ,EACRkH,MAAO,GACP+T,gBAAiB,GACjBrI,QAAS,GACTsI,MAAO,GACPxF,YAAa,GACbnD,WAAY,EACZ4I,WAAY,GACZC,IAAK,M,6BCrKT,mlBAGM9f,EAAY,YAGZ+V,EAAkB,YAElBgK,EAAwB,CAC5BlL,WAAY,kBAORmL,EAAwB,CAAC,iBAAkB,mBAAoB,oBAE/DtZ,EAAqB,CACzB/C,SAAU,kBAwBNsc,EAAiD,CACrD,CACE7sB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,wBACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,oBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACN9C,KA3DiB,CACnB,CAAEnH,KAAM,UAAWnU,MAAO,GAC1B,CAAEmU,KAAM,UAAWnU,MAAO,KA2D1B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,wCACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,mBACL6gB,aAAc,oBACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,qBACdC,aAAc,oBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,oBACdC,aAAc,oBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,aACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,QACL6gB,aAAc,SACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,gBACL6gB,aAAc,iBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,cACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,SACN9C,KA1GW,CACb,CAAEnH,KAAM,WAAYnU,MAAO,GAC3B,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,OAAQnU,OAAQ,KAyGxB,CACEM,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KA9HY,CACd,CAAEnH,KAAM,mBAAoBnU,MAAO,oBACnC,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,mBAAoBnU,MAAO,sBA4HnC,CACEM,IAAK,YACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KA/Hc,CAChB,CAAEnH,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,KAAMnU,MAAO,MAkIjBmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB8J,GAqBbC,EAAa,CACjB5nB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,iBACfoQ,KAAM,GACNC,SAAU,GACVC,SAAU,GAEVnW,QA/Be,CACfsW,gBAAiB,GACjBC,aAASxU,EACTyU,iBAAkB,GAClBC,OAAQ,GACRC,iBAAkB,GAClBC,iBAAkB,GAClBC,kBAAmB,GACnBpL,MAAO,GACPlH,OAAQ,EACRuS,eAAW9U,EACX+U,OAAQ,GACRC,MAAO,GACPC,cAAe,GACfC,WAAY,GACZC,QAAS,GACTC,UAAW,KAkBb,SAASvC,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAI/C,IAAMsY,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,cACT,CAAEA,MAAO,aACT,CAAEA,MAAO,YACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAELqtB,EAAkB,CACtBC,OAAQ,gBACRC,QAAS,kBAEX,SAAS1H,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAEM,a,8BCpPf,wmBAIM7Y,EAAY,oBAGZ+V,EAAkB,oBAYlBuK,EAAyD,CAC7D,CACEltB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,cACL6gB,aAAc,cACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,cACvB,CAAEmU,KAAM,OAAQnU,MAAO,mBAG3B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,OACrB,CAAEmU,KAAM,KAAMnU,MAAO,UAGzB,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,QAASnU,MAAO,SACxB,CAAEmU,KAAM,aAAcnU,MAAO,iBAY7B4lB,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBAELmjB,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiBmK,GAGbC,EAAgB,CACpBjoB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAjG+B,CAC/BwL,MAAO,GACPlH,OAAQ,EACR4S,QAAS,GACTmD,YAAa,GACbL,YAAa,GACboG,OAAQ,KA8FV,SAASxL,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMqgB,EAAgC,CAAC,aAAc,gBAE/C/Z,EAAqB,CACzB/C,SAAU,cAGN+c,EAA2B,CAC/BzH,WAAY,aACZ0H,WAAY,cAER3b,EAAY,CAAC,cACnB,SAAS2T,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAGM,a,6BCpIf,ifAEa+H,EAAqB,CAChC,CACExtB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,qBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,cACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,eAAgBnU,MAAO,kBAGnC,CACEM,IAAK,QACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,OAAQnU,MAAO,WAYvB+tB,EAAY,CAChBvoB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,eACfzM,QAAS,GACT4G,QAAS,CACPsE,OAAQ,EACRkH,MAAO,GACP0L,QAAS,GACTsI,MAAO,GACPtF,UAAW,GACXhV,UAAW,GACXwb,YAAa,KAKjB,SAAS9L,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGT,IAAMgW,EAAuB,CAAC,aAAc,gBAGtCC,EAAuB,CAC3BC,aAAc,eACdjhB,UAAW,YACXxG,QAAS,WAGLkN,EAAqB,CACzB/C,SAAU,eACVnK,QAAS,WAELkf,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,aACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAGLyiB,EAAe,CACnB/b,QAAS,WAeL2L,EAAyB,CAC7BpK,QAAS,CACPkN,iBAAkBsN,EAAa/b,QAC/B0O,gBAAiB,UACjBC,aAAczB,EAAmBlN,UAGtB,YAYR,IAAM0nB,EAA0B,CAAC,eAAgB,YAAa,Y,6BCrLrE,+hBAGMlhB,EAAY,UACZ+V,EAAkB,WAElBoL,EAAuB,GAKvBC,EAAuB,CAAC,UAAW,aAEnC1a,EAAqB,CACzB/C,SAAU,WA8CN0d,EAAgD,CACpD,CACEjuB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,OACvB,CAAEmU,KAAM,OAAQnU,MAAO,WAMvBmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBkL,GAGbC,EAAY,CAChBhpB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,UACfsb,IAAK,GACLnhB,QArGsB,CACtBwL,MAAO,GACPlH,OAAQ,EACR+P,UAAW,GACXD,QAAS,GACTgN,WAAY,GACZC,SAAU,GACVC,OAAQ,GACR,aAAc,GACdC,YAAa,KA+Ff,SAAS3M,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMsY,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,cACT,CAAEA,MAAO,aACT,CAAEA,MAAO,YACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAEX,SAAS6lB,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAK9B,OAJAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAE5BA,EAAKoJ,WAAa,CAAC,MAAO,cAErBkP,EAEM,a,6BC1Lf,0jBAGM7Y,EAAY,gBAGZ+V,EAAkB,iBAElB6L,EAA6B,CACjCC,WAAY,cAGRC,EAA6B,CAAC,aAAc,QAE5Cpb,EAAqB,CACzB/C,SAAU,cAmBNoe,EAAyD,CAC7D,CACE3uB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,gBAAiBnU,MAAO,GAChC,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,QAASnU,MAAO,IACxB,CAAEmU,KAAM,KAAMnU,MAAO,IACrB,CAAEmU,KAAM,MAAOnU,MAAO,MAG1B,CACEM,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,KAG3B,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,kBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,OACL6gB,aAAc,OACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,aAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB4L,GAIbrJ,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,cACT,CAAEA,MAAO,YACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,aACT,CAAEA,MAAO,qBAELkvB,EAAkB,CACtB1pB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QA3J+B,CAC/BwL,MAAO,GACPlH,OAAQ,EACRuS,UAAW,KACXrC,OAAQ,GACRqN,cAAe,GACfC,QAAS,GACT/K,MAAO,GACPqD,SAAU,GACV2H,OAAQ,GACRC,gBAAiB,GACjBC,WAAY,GACZC,KAAM,KAkJR,SAAS3J,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAET,SAAS7D,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,6BC3Lf,qgBAGMJ,EAAY,kBAGZ+V,EAAkB,iBAElBwM,EAA6B,CACjC5K,IAAK,mBACL6K,MAAO,SAIHC,EAA6B,CAAC,iBAAkB,mBAAoB,oBAEpE/b,EAAqB,CACzB/C,SAAU,kBAYN+e,EAAsD,CAC1D,CACEtvB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiBuM,GAGbC,EAAkB,CACtBrqB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,iBACf7F,QAhE4B,CAC5BwL,MAAO,GACPlH,OAAQ,EACRgS,gBAAiB,GACjBE,iBAAkB,GAClBE,iBAAkB,KA6Dd8L,EAAoB,CAAC,QAAS,SAAU,YAAa,aAAc,SAAU,OACnF,SAASC,EAAcjY,GACrB,IAAMkY,EAAe,IAAEjgB,IAAI+f,EAAmB,IAAEG,SAChD,OAAkE,IAA3D,IAAEpjB,QAAQmjB,EAAc,IAAEC,QAAQnY,EAAOvH,aAElD,SAAS2R,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,6BC/Ff,+eAGMJ,EAAY,YAGZ+V,EAAkB,YAElBiN,EAAuB,CAC3BrL,IAAK,oBAIDsL,EAAwB,CAAC,iBAAkB,mBAAoB,oBAE/Dvc,EAAqB,CACzB/C,SAAU,kBAYNuf,EAAgD,CACpD,CACE9vB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiB+M,GAGbC,EAAY,CAChB7qB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,iBACf7F,QAhEsB,CACtBwL,MAAO,GACPlH,OAAQ,EACRgS,gBAAiB,GACjBE,iBAAkB,GAClBE,iBAAkB,KA8DpB,SAAS9B,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,IAAMwiB,EAAoB,CAAC,QAAS,SAAU,YAAa,aAAc,SAAU,OACnF,SAASC,EAAcjY,GACrB,IAAMkY,EAAe,IAAEjgB,IAAI+f,EAAmB,IAAEG,SAChD,OAAkE,IAA3D,IAAEpjB,QAAQmjB,EAAc,IAAEC,QAAQnY,EAAOvH,aAEnC,a,6BC/Ff,ufAGMrD,EAAY,aAGZ+V,EAAkB,aAElBqN,EAAyB,CAC7BC,oBAAqB,uBAIjBC,EAAyB,CAAC,sBAAuB,yBAEjD5c,EAAqB,CACzB/C,SAAU,uBAUN4f,EAAkD,CACtD,CACEnwB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,uBACL6gB,aAAc,uBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,wDAChBlW,UAAS,EACTmW,gBAAiBoN,GAGbC,EAAc,CAClBlrB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,sBACf7F,QAhDwB,CACxBwL,MAAO,GACPlH,OAAQ,EACR+e,qBAAsB,KAgDxB,SAASzO,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,0BAEdkP,EAEM,a,6BCnFf,oeAIM7Y,EAAY,oBACZ+V,EAAkB,WAElB2N,EAAuB,CAC3B9F,OAAQ,SACR/I,WAAY,aACZ8O,SAAU,WACVC,aAAc,cAGVC,EAAuB,CAAC,SAAU,YAElCnd,EAAqB,CACzB/C,SAAU,UAaNmgB,EAAgD,CACpD,CACE1wB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,UACL6gB,aAAc,UACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,OACvB,CAAEmU,KAAM,OAAQnU,MAAO,UAG3B,CACEM,IAAK,aACL6gB,aAAc,aACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,YAAanU,MAAO,eAC5B,CAAEmU,KAAM,YAAanU,MAAO,cAGhC,CACEM,IAAK,+BACL6gB,aAAc,+BACdC,aAAc,qBACdC,KAAM,GACNjD,KAAM,WAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB2N,GAGbC,EAAY,CAChBzrB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,SACf7F,QAhFsB,CACtBwL,MAAO,GACPlH,OAAQ,EACRsf,QAAS,GACTnE,WAAY,GACZD,MAAO,GACPqE,8BAA8B,IA6EhC,SAASjP,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,SAASyiB,EAAcqB,QAAA,IAAAA,MAAA,IACrB,IAAMC,EAAY,MAAMD,EAAW,4BAEnC,OAA4B,IAArBC,EAAUnhB,SAAoD,IAApC,UAAUmhB,EAAW,UAEzC,a,6BC9Gf,6ZAEMnkB,EAAY,mBAGZ+V,EAAkB,mBAElBqO,EAA+B,CACnCC,OAAQ,SAERC,UAAW,YACXC,SAAU,WACVC,MAAO,SAIHC,EAA+B,CAAC,SAAU,aAE1C/d,EAAqB,CACzB/C,SAAU,UAoBN+gB,EAAwD,CAC5D,CACEtxB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,KACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,oBAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,SACtB,CAAEmU,KAAM,QAASnU,MAAO,SAG5B,CACEM,IAAK,eACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,KAAMnU,MAAO,SAGzB,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,eAIJuH,EAAoB,CACxBngB,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,SAEf0e,IAAK,GACLC,SAAU,GACVxkB,QAxJ8B,CAC9BwL,MAAO,GACPlH,OAAQ,EACRmgB,OAAQ,GACRR,OAAQ,GACRxC,WAAY,GACZ9U,OAAQ,GACR+X,YAAa,GACbC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,MAAO,GACPC,mBAAoB,GACpBzD,OAAQ,KA8IV,SAAS1M,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAoBhC,a,6BCzMf,igBAIMJ,EAAY,mBAGZ+V,EAAkB,mBAElBqP,EAAwB,CAC5BzN,IAAK,YACL0N,IAAK,aAIDC,EAA+B,CAAC,YAAa,cAAe,aAE5D5e,EAAqB,CACzB/C,SAAU,aAkBN4hB,EAAiD,CACrD,CACEnyB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,aACL6gB,aAAc,aACdC,aAAc,cACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,cACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,WAAYnU,MAAO,cAG/B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,uBACL6gB,aAAc,uBACdC,aAAc,kBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,SAAUnU,MAAO,WAG7B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,OAAQnU,MAAO,WAMvBmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBoP,GAGbC,EAAa,CACjBltB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACf7F,QAtIuB,CACvBwL,MAAO,GACPlH,OAAQ,EACR,aAAc,GACd,eAAgB,GAChB,aAAc,GACd,iBAAkB,GAClB,aAAc,GACd,cAAe,GACf,cAAe,GACf,qBAAsB,GACtB,uBAAwB,KA8H1B,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,UAEdkP,EAEM,a,6BCzKf,qYAGaoG,EAA8C,CACzD,CACE7rB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,IAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,UAIV,SAAS8D,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAIF,IAAMmU,EAAoB,CAC/B1K,QAAS,WAIE9N,EAAqB,CAChC/C,SAAU,YACV8hB,aAAc,kBAIVlQ,EAAe,CACnBmQ,eAAgB,kBAeZvgB,EAAyB,CAC7BugB,eAAgB,CACdzd,iBAAkBsN,EAAamQ,eAC/Bxd,gBAAiB,iBACjBC,aAAczB,EAAmB+e,eAI/Brf,EAAoB,CAAC,YAAa,WAIzB,WACb9N,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACfyf,eAAgB,GAChBtlB,QAAS,CACPsE,OAAQ,EACRkH,MAAO,GACPgK,UAAW,GACXb,OAAQ,M,6BChHZ,+eAGM/U,EAAY,UAGZ+V,EAAkB,WAElBiN,EAAuB,CAC3BrC,WAAY,cAIRgF,EAAuB,CAAC,aAAc,QAEtCjf,EAAqB,CACzB/C,SAAU,cAoBNuf,EAAgD,CACpD,CACE9vB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,YAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,OAAQnU,MAAO,KAG3B,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,aAG1B,CACEM,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,UAAWnU,MAAO,GAC1B,CAAEmU,KAAM,UAAWnU,MAAO,MAM1BmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB+M,GAGbC,EAAY,CAChB7qB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QA7IsB,CACtBwL,MAAO,GACPlH,OAAQ,EACRkhB,gBAAiB,GACjBxL,YAAa,GACbyL,OAAQ,GACRC,OAAQ,GACRC,MAAO,GACPC,QAAS,GACTC,cAAe,GACf9O,MAAO,GACPqD,SAAU,GACV0L,WAAY,GACZC,cAAe,KAmIjB,SAASnR,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAEM,a,+sBC9KT7Y,EAAY,UACZ+V,EAAkB,YAElBqQ,EAAwB,CAAC,UAEzB1f,EAAqB,CACzB/C,SAAU,UAGN0iB,EAAwB,CAC5BhC,OAAQ,SACRC,UAAW,aAGPgC,EAAa,CACjBhuB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,SACf7F,QAAS,CACPwL,MAAO,IACPlH,OAAQ,EACRmgB,OAAQ,GACRR,OAAQ,GACRxC,WAAY,GACZ9U,OAAQ,GACRwZ,QAAS,GACTxB,UAAW,GACXE,aAAc,GACdC,MAAO,GACPC,mBAAoB,GACpBqB,KAAM,GACN9E,OAAQ,KAIN+E,EAAiD,CACrD,CACErzB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,KACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,UACL6gB,aAAc,UACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,MAAOnU,MAAO,SAG1B,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,QAASnU,MAAO,SACxB,CAAEmU,KAAM,SAAUnU,MAAO,YAG7B,CACEM,IAAK,OACL6gB,aAAc,OACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,SAAUnU,MAAO,YAG7B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,eAIJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBsQ,GAGnB,SAASzR,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,kBAAQ3K,GAAU,CACrB2K,EAAOa,MAAQ,cAAIxL,EAAS,QAAS,KAAO,GAC5C2K,EAAOrG,OAAS,cAAItE,EAAS,SAAU,IAAM,EAC7C,IAAMsmB,EAAW,eAAKtmB,EAAS,CAAC,SAAU,UACpC,EAAiB,GAavB,GAZA,kBAAQsmB,GAAU,SAACnmB,EAAWnN,GACxB,kBAAQmN,IACVA,EAAO,kBAAQA,IACNyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAK8O,MAAO,eAAK3B,GAAMiO,MAAM,EAAG,KAE9C,mBAASjO,KACb,kBAAQ,cAAIA,EAAM,QAAS,MAC9B,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAK8O,MAAO,CAAC,cAAI3B,EAAM,QAAS,KAAKiO,MAAM,EAAG,SAIrE,EAAQxL,OAAS,EAOnB,OANA+H,EAAO0D,QAAU,EAAQ5L,KAAI,SAACtC,GAC5B,MAAkB,WAAdA,EAAK8B,KACP,OAAY9B,GAAI,CAAEomB,OAAO,IAEpBpmB,KAEFwK,EAGX,OAAOA,EAGT,SAAS4N,EAAgBC,GACvB,IAAMC,EAAY,oBAAUD,GAI5B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,SAAU,gBAExBkP,EAGM,a,6BCrNf,seAIM7Y,EAAY,UACZ+V,EAAkB,WAElB6Q,EAAuB,CAE3BjJ,KAAM,QAIFkJ,EAAuB,CAAC,aAAc,gBAEtCngB,EAAqB,CACzB/C,SAAU,cAuBNmjB,EAAgD,CACpD,CACE1zB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,OACL6gB,aAAc,OACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,iBAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,OAAQnU,MAAO,iBACvB,CAAEmU,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,KAAMnU,MAAO,WACrB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,aACtB,CAAEmU,KAAM,QAASnU,MAAO,YACxB,CAAEmU,KAAM,MAAOnU,MAAO,iBAG1B,CACEM,IAAK,4BACL6gB,aAAc,4BACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiB2Q,GAGbC,EAAY,CAChBzuB,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QApKsB,CACtBwL,MAAO,GACPlH,OAAQ,EACRsiB,KAAM,GACN,YAAa,GACb,YAAa,GACb,cAAe,GACf,cAAe,GACf,gBAAiB,GACjB,aAAc,GACd,gBAAiB,GACjB,iBAAkB,GAClB,4BAA6B,GAC7B,kBAAmB,GACnB,WAAY,GACZ,SAAU,GACV,YAAa,KAuJf,SAAShS,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAQ/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,YAAYD,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,WAEdkP,EAEM,a,wuBCxMT7Y,EAAY,eAGZ+V,EAAkB,gBAOlBkR,EAA+C,CACnD,CACE7zB,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,aACNkD,IAAK,GAEP,CACEhhB,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB8Q,GAEbC,EAA4B,CAAC,eAAgB,kBAE7CC,EAAiB,CACrB7uB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,eACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR+J,QAAS,EAAF,GA1CY,CACrB,iBAAkB,GAClB,mBAAoB,OA4CtB,SAASuG,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAET,IAAMuO,EAA2B,CAC/BC,IAAK,eACLxF,WAAY,gBAERnb,EAAqB,CACzB/C,SAAU,gBAEG,a,6BCvEf,ugBAIM3D,EAAY,qBAGZ+V,EAAkB,oBAElBuR,EAA0B,CAC9BC,YAAa,cACbC,YAAa,eAGTC,EAAgC,CAAC,cAAe,iBAEhD/gB,EAAqB,CACzB/C,SAAU,eAaN+jB,EAAmD,CACvD,CACEt0B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBuR,GAGbC,EAAe,CACnBrvB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,cACf7F,QAxEyB,CACzBwL,MAAO,GACPlH,OAAQ,EACR,SAAU,GACV,gBAAiB,GACjB,YAAa,GACb,kBAAmB,KAqErB,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,kBAEdkP,EAEM,a,6BCxGf,+dAEM7Y,EAAY,UACZ+V,EAAkB,WAiBlB6R,EAAgD,CACpD,CACEx0B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,KACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,oBAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,SACtB,CAAEmU,KAAM,QAASnU,MAAO,SAG5B,CACEM,IAAK,eACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,KAAMnU,MAAO,SAGzB,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiByR,GAEbC,EAAY,CAChBvvB,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,SACf7F,QA3JsB,CACtBwL,MAAO,GACPlH,OAAQ,EACRmgB,OAAQ,GACRR,OAAQ,GACRxC,WAAY,GACZ9U,OAAQ,GACR+X,YAAa,GACbC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,MAAO,GACPC,mBAAoB,GACpBzD,OAAQ,KAgJJhJ,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,cACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,iBAEX,SAASkiB,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAM0nB,EAAuB,CAAC,SAAU,aAElCC,EAAuB,CAC3BhD,UAAW,YACXV,OAAQ,UAEJ3d,EAAqB,CACzB/C,SAAU,UAEG,a,gnBCjGTqkB,EAAsB,CAC1B,CACE50B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,iBAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KAvIkB,CACpB,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,KAsIvB,CACEM,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,YACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KA1GmB,CACrB,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,MAAOnU,MAAO,SAwGtB,CACEM,IAAK,aACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KAvIe,CACjB,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,WAAYnU,MAAO,GAC3B,CAAEmU,KAAM,UAAWnU,MAAO,GAC1B,CAAEmU,KAAM,UAAWnU,MAAO,GAC1B,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,UAAWnU,MAAO,GAC1B,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,MAAOnU,MAAO,IACtB,CAAEmU,KAAM,QAASnU,MAAO,IACxB,CAAEmU,KAAM,QAASnU,MAAO,IACxB,CAAEmU,KAAM,YAAanU,MAAO,IAC5B,CAAEmU,KAAM,QAASnU,MAAO,IACxB,CAAEmU,KAAM,QAASnU,MAAO,IACxB,CAAEmU,KAAM,SAAUnU,MAAO,MAwHzB,CACEM,IAAK,WACL6gB,aAAc,YACdC,aAAc,UACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KAzGa,CACf,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,MAAOnU,MAAO,KAyGtB,CACEM,IAAK,WACL6gB,aAAc,WACdC,aAAc,OACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KA9Ja,CACf,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,KA8JvB,CACEM,IAAK,YACL6gB,aAAc,aACdC,aAAc,SACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KAtHc,CAChB,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,KAAMnU,MAAO,KAsHrB,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KAvLW,CACb,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,KAqLtB,CACEM,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAxJY,CACd,CAAEnH,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,eAAgBnU,MAAO,gBAC/B,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,eAAgBnU,MAAO,kBAsJ/B,CACEM,IAAK,iBACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAzJmB,CACrB,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,OAAQnU,MAAO,UAyJvB,CACEM,IAAK,OACL6gB,aAAc,MACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,SACdC,KAAM,mDACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,mDACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,sDACNjD,KAAM,SAER,CACE9d,IAAK,kBACL6gB,aAAc,oBACdC,aAAc,QACdC,KAAM,mDACNjD,KAAM,UAIJ+W,EAAY,CAChB3vB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,EAAF,GAzLS,CAChB6W,UAAW,GACXiR,cAAe,GACfC,KAAM,GACNvT,OAAQ,GACRlQ,OAAQ,EACRkH,MAAO,GACPwc,gBAAiB,GACjBC,SAAU,GACVC,cAAe,GACfC,WAAY,GACZC,eAAgB,GAChBtN,OAAQ,GACRuN,QAAS,GACTtN,UAAW,GACXuN,UAAW,GACXpR,QAAS,GACTqR,eAAgB,GAChBvO,YAAa,GACbwO,SAAU,MAyKNC,EAAuB,CAAC,aAAc,eAAgB,OAE5D,SAAS7T,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAET,SAAS8X,EAAcqB,QAAA,IAAAA,MAAA,IACrB,IAAMC,EAAY,IAAEzxB,IAAIwxB,EAAW,4BACnC,OACuB,IAArBC,EAAUnhB,UACgC,IAAxC,IAAErD,QAAQwkB,EAAW,gBAA8D,IAAtC,IAAExkB,QAAQwkB,EAAW,cACzB,IAAxC,IAAExkB,QAAQwkB,EAAW,gBAAkE,IAA1C,IAAExkB,QAAQwkB,EAAW,iBAGzE,SAASxL,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAapJ,EAAKoJ,WAAW9G,KAAI,SAAChR,GAAM,OAAAi3B,EAAqBj3B,IAArB,QAExCgnB,EAET,IAAMiQ,EAAuB,CAC3B7P,WAAY,aACZ8P,SAAU,eACVzwB,OAAQ,UAEJoO,EAAqB,CACzB/C,SAAU,cAEG,a,6BC/Sf,+aAEM3D,EAAY,UAGZ+V,EAAkB,WAElBiT,EAAuB,CAC3BC,YAAa,cAGTC,EAAuB,CAAC,aAAc,gBAEtCxiB,EAAqB,CACzB/C,SAAU,cAcNwlB,EAAgD,CACpD,CACE/1B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,cACL6gB,aAAc,cACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,OAAQnU,MAAO,KAG3B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,KAAMnU,MAAO,KAGzB,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBgT,GAGbC,EAAY,CAChB9wB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QA1FsB,CACtBwL,MAAO,GACPlH,OAAQ,EACR0V,YAAa,GACbkO,cAAe,GACfe,WAAY,GACZ5O,YAAa,GACb6O,OAAQ,KAsFV,SAAStU,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,6BCpHf,2eAIMJ,EAAY,SACZ+V,EAAkB,UAQlBwT,EAA+C,CACnD,CACEn2B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,eAIJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBoT,GAGbC,EAAW,CACflxB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,kBACf7F,QA/CqB,CACrBwL,MAAO,GACPlH,OAAQ,EACR+kB,iBAAkB,KA+CpB,SAASzU,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMspB,EAAsB,CAAC,kBAAmB,qBAE1ChjB,EAAqB,CACzB/C,SAAU,mBAGNgmB,EAAsB,CAC1BC,gBAAiB,kBACjBC,gBAAiB,mBAEnB,SAASlR,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,sBAEdkP,EAEM,a,6BC5Ef,+aAEM7Y,EAAY,UACZ+V,EAAkB,WAElB+T,EAAuB,CAC3BC,uBAAwB,0BAGpBC,EAAuB,CAAC,yBAA0B,4BAElDtjB,EAAqB,CACzB/C,SAAU,0BAgBNsmB,EAAgD,CACpD,CACE72B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,4BACL6gB,aAAc,4BACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,8BACL6gB,aAAc,8BACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,4BACL6gB,aAAc,4BACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,UACtB,CAAEmU,KAAM,OAAQnU,MAAO,SAG3B,CACEM,IAAK,eACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,OACzB,CAAEmU,KAAM,QAASnU,MAAO,SAG5B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,cACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB8T,GAGbC,EAAY,CAChB5xB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,yBACf7F,QA1GsB,CACtBwL,MAAO,GACPlH,OAAQ,EACR,4BAA6B,GAC7B,8BAA+B,GAC/B,4BAA6B,GAC7B,eAAgB,GAChB,eAAgB,GAChB,SAAU,GACV,SAAU,KAoGZ,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,2tBC9HTJ,EAAY,UACZ+V,EAAkB,WAQlBoU,EAAgD,CACpD,CACE/2B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,6BACL6gB,aAAc,6BACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,2BACL6gB,aAAc,2BACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,eAIJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBgU,GAGbC,EAAY,CAChB9xB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,wBACf7F,QAAS,EAAF,CACLwL,MAAO,GACPlH,OAAQ,GA/DY,CACtB,6BAA8B,GAC9B,2BAA4B,GAC5B,oBAAqB,MAiEvB,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMiqB,EAAuB,CAAC,wBAAyB,2BAEjD3jB,EAAqB,CACzB/C,SAAU,yBAGN2mB,EAAuB,CAC3BC,oBAAqB,wBACrBC,oBAAqB,yBAEvB,SAAS7R,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,0BAEdkP,EAEM,a,6BChGf,8eAIM7Y,EAAY,aACZ+V,EAAkB,aAElB0U,EAAyB,CAC7B9S,IAAK,oBAGD+S,EAAyB,CAAC,iBAAkB,oBAE5ChkB,EAAqB,CACzB/C,SAAU,kBAcNgnB,EAAkD,CACtD,CACEv3B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,UAKJ+E,EAAuC,CAC3CC,eAAgB,oDAChBlW,UAAS,EACTmW,gBAAiBwU,GAGb5D,EAAY,CAChBzuB,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,iBACf7F,QAhFwB,CACxBwL,MAAO,GACPlH,OAAQ,EACRgS,gBAAiB,GACjBE,iBAAkB,GAClBE,iBAAkB,GAClBE,kBAAmB,GACnBG,MAAO,KA4ET,SAASnC,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAQ/C,SAASuY,EAAgBC,GACvB,IAAMC,EAAY,YAAYD,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,OAGvBsY,EAEM,a,ylBChET+R,EAA0B,CAC9B,CACEx3B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,cACL6gB,aAAc,eACdC,aAAc,OACdhD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAlFkB,CACpB,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,aAAcnU,OAAQ,KA+E9B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAlFiB,CACnB,CAAEnH,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,OAAQ,KAiFxB,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjT,UAAU,EACVgQ,KAAM,SACN9C,KArFW,CACb,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,QAASnU,OAAQ,KAmFzB,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,+CACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KApGY,CACd,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,WAAYnU,OAAQ,KAmG5B,CACEM,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAtGY,CACd,CAAEnH,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,eAAgBnU,MAAO,gBAC/B,CAAEmU,KAAM,aAAcnU,MAAO,gBAqG7B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAxGgB,CAClB,CAAEnH,KAAM,KAAMnU,MAAO,OACrB,CAAEmU,KAAM,KAAMnU,MAAO,WA0GjB+3B,EAAgB,CACpBvyB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,EAAF,GA/Ga,CACpBga,YAAa,GACb0Q,aAAc,GACdC,YAAa,GACbnW,OAAQ,GACRuC,MAAO,GACPqD,SAAU,GACV0H,QAAS,GACTtW,MAAO,GACPlH,OAAQ,EACR4S,QAAS,GACTmD,YAAa,MAuGf,SAASzF,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAqBpB,OApBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAEhB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGT,IAAMigB,EAA2B,CAAC,aAAc,gBAE1CC,EAA2B,CAC/B7nB,OAAQ,cAGJsD,EAAqB,CACzB/C,SAAU,aACVunB,QAAS,gBAGL/lB,EAAyB,CAC7BgmB,QAAS,CACPljB,iBAAkB,cAClBC,gBAAiB,UACjBC,aAAc,eACdC,aAAc,gBAEhBgjB,KAAM,CACJnjB,iBAAkB,kBAClBC,gBAAiB,OACjBC,aAAc,SACdC,aAAc,WAGH,a,6BC3Mf,mfAIMpI,EAAY,WAGZ+V,EAAkB,YAElBsV,EAAwB,CAC5BC,UAAW,cAGPC,EAAwB,CAAC,cAEzB7kB,EAAqB,CACzB/C,SAAU,cAaN6nB,EAAiD,CACrD,CACEp4B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBqV,GAGbC,EAAa,CACjBnzB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAxEuB,CACvBwL,MAAO,GACPlH,OAAQ,EACRuS,UAAW,GACXyU,aAAc,GACdC,iBAAkB,GAClBC,QAAS,KAqEX,SAAS5W,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAE/C,SAASuY,EAAgBC,GAKvB,OAJkB,IAAEjW,UAAUiW,GAMjB,a,6BCvGf,kfAEM5Y,EAAY,cAGZ+V,EAAkB,eAElB8V,EAA2B,GAM3BC,EAA2B,CAAC,kBAAmB,aAE/CplB,EAAqB,CACzB/C,SAAU,mBAyBNooB,EAAoD,CACxD,CACE34B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,QAASnU,MAAO,SACxB,CAAEmU,KAAM,MAAOnU,MAAO,SAG1B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,OAAQnU,MAAO,UAG3B,CACEM,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,OACL6gB,aAAc,OACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,kBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,eAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,UAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB4V,GAGbC,EAAgB,CACpB1zB,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,kBACf7F,QAzK0B,CAC1BwL,MAAO,GACPlH,OAAQ,EACRunB,UAAW,GACXC,cAAe,GAEfC,UAAW,GACXC,gBAAiB,GACjBC,aAAc,GACdC,UAAW,GACXC,eAAgB,KAChBC,eAAgB,KAChBC,gBAAiB,KACjBC,iBAAkB,KAClBC,KAAM,GACNC,SAAU,GACVC,YAAa,GACbC,SAAU,KACVC,YAAa,KA0Jf,SAAS/X,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpBA,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/C2K,EAAOkhB,UAAY,IAAEv5B,IAAI0N,EAAS,YAAa,KAAO,GACtD2K,EAAOmhB,cAAgB,IAAEx5B,IAAI0N,EAAS,gBAAiB,KAAO,GAC9DA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,QAAS,gBAAiB,cAC/D,IAAM4sB,EAAwB,GAgB9B,OAfA,IAAE1sB,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChBgqB,EAAe55B,GAAO,IAAE0Z,KAAKvM,IAEtB,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF6qB,EAAe55B,GAAO,IAAEV,IAAI6N,EAAM,WAE3B,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCysB,EAAe55B,GAAOmN,MAG1BwK,EAAOiiB,eAAiBA,EACjBjiB,EAGT,IAAMkiB,EAAY,CAChB,aAAc,WACd,eAAgB,WAChB,cAAe,cACf,WAAY,WACZ,cAAe,WACf,eAAgB,YAChB,WAAY,WACZ,eAAgB,aAChB,aAAc,aACd,mBAAoB,YAEP,a,6BCtOf,+aAEMjtB,EAAY,UAGZ+V,EAAkB,WAElBmX,EAAuB,GAKvBC,EAAuB,CAAC,QAAS,WAEjCzmB,EAAqB,CACzB/C,SAAU,SAaNypB,EAAgD,CACpD,CACEh6B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,gBAMtBmjB,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiBiX,GAGbC,EAAY,CAChB/0B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,QACfqnB,QAAS,GACTC,QAAS,GACTntB,QA/EsB,CACtBwL,MAAO,GACPlH,OAAQ,EACR,SAAU,GACV,WAAY,GACZ,kBAAmB,GACnB8oB,MAAO,KA4ET,SAASxY,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAoBhC,a,6BC1Hf,ubAEMJ,EAAY,YACZ+V,EAAkB,aAElB0X,EAAyB,CAC7BC,QAAS,gBAGLC,EAAyB,CAAC,eAAgB,kBAE1CjnB,EAAqB,CACzB/C,SAAU,gBAgBNiqB,EAAkD,CACtD,CACEx6B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,OACL6gB,aAAc,OACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,QAASnU,MAAO,SACxB,CAAEmU,KAAM,MAAOnU,MAAO,SAG1B,CACEM,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,2BACvB,CAAEmU,KAAM,OAAQnU,MAAO,2BAG3B,CACEM,IAAK,OACL6gB,aAAc,OACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,kBAIJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiByX,GAGbC,EAAc,CAClBv1B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,eACf7F,QAzGwB,CACxBwL,MAAO,GACPlH,OAAQ,EACR,SAAU,GACV,iBAAkB,GAClB,mBAAoB,GACpBwM,KAAM,GACN,oBAAqB,GACrB,aAAc,GACd8V,KAAM,KAmGR,SAAShS,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,6BC/Hf,mbAEMJ,EAAY,WACZ+V,EAAkB,YAElB+X,EAAwB,CAC5BC,UAAW,mBAGPC,EAAwB,CAAC,kBAAmB,qBAE5CtnB,EAAqB,CACzB/C,SAAU,mBAcNsqB,EAAiD,CACrD,CACE76B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,SACL6gB,aAAc,SACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,uBACL6gB,aAAc,uBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,sBACL6gB,aAAc,sBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,eAKJ+E,EAAuC,CAC3CC,eAAgB,mDAChBlW,UAAS,EACTmW,gBAAiB8X,GAGbC,EAAa,CACjB51B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,kBACf7F,QAhFuB,CACvBwL,MAAO,GACPlH,OAAQ,EACR,SAAU,GACV,iBAAkB,GAClB,sBAAuB,GACvB,sBAAuB,GACvB,oBAAqB,KA4EvB,SAASsQ,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAEhC,a,omBClFT+tB,EAAmC,CACvC,CACE/6B,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,OACL6gB,aAAc,OACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,iBAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAvDwB,CAC1B,CAAEnH,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,OAAQnU,MAAO,iBACvB,CAAEmU,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,KAAMnU,MAAO,WACrB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,YACtB,CAAEmU,KAAM,MAAOnU,MAAO,aACtB,CAAEmU,KAAM,QAASnU,MAAO,YACxB,CAAEmU,KAAM,MAAOnU,MAAO,kBAkDlBs7B,EAAmB,CACvB91B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR6X,oBAAoB,EACpBC,gBAAgB,EAChBpC,YAAa,CAAC,IACd3L,QAAS,EAAF,GA7DoB,CAC7BuY,KAAM,GACN,gBAAiB,GACjB,iBAAkB,GAClB,qBAAsB,GACtB,oBAAqB,OA4DvB,SAAShS,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAQga,aAAc,CAClC,IAAMA,EAAc,IAAEvN,QAAQzM,EAAQga,aAClC,IAAEtN,KAAKsN,GAAapX,OAAS,IAC/B+H,EAAOqP,YAAc,IAAEtN,KAAKsN,GAAa5L,MAAM,EAAG,YAGjD,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,UAItE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAGT,IAAMsjB,EAA8B,CAAC,aAAc,eAAgB,qBAAsB,qBAEnFC,EAA8B,CAClCrV,WAAY,cAGRvS,EAAqB,CACzB/C,SAAU,cAGZ,SAASgV,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAGM,a,6BCtIf,qVAEa0V,EAAqB,CAChC,CACEn7B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,eACL6gB,aAAc,iBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,WACL6gB,aAAc,WACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,UAIJsd,EAAY,CAChBl2B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,eACfzM,QAAS,GACT4G,QAAS,CACPsE,OAAQ,EACRkH,MAAO,GACP6iB,aAAc,GACdtX,MAAO,GACPqD,SAAU,KAId,SAASxF,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGT,IAAM2jB,EAAuB,CAAC,eAAgB,UAGxCC,EAAuB,GAKvBjW,EAAkB,CACtB,CAAE5lB,MAAO,cACT,CAAEA,MAAO,cACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,eACT,CAAEA,MAAO,aACT,CAAEA,MAAO,cACT,CAAEA,MAAO,YACT,CAAEA,MAAO,eACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,mBACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,YACT,CAAEA,MAAO,gBACT,CAAEA,MAAO,oBACT,CAAEA,MAAO,eAEL4T,EAAqB,CACzB/C,SAAU,cAEG,a,6BClHf,iSAGasb,EAA8C,CACzD,CACE7rB,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,IAEP,CACEjhB,IAAK,YACL6gB,aAAc,YACdC,aAAc,gBACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,UAIV,SAAS8D,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAIF,IAAMmU,EAAoB,CAC/B0P,QAAS,UACTC,UAAW,aAGAnoB,EAAqB,CAChC/C,SAAU,aAINyC,EAAoB,CAAC,YAAa,WAIzB,WACb9N,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACf7F,QAAS,CACPsE,OAAQ,EACRkH,MAAO,GACPkjB,UAAW,GACX/Z,OAAQ,M,ikBClENga,EAA4B,CAChC,CACE37B,IAAK,OACL6gB,aAAc,OACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,iBAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,kDACNjD,KAAM,oBAER,CACE9d,IAAK,UACL6gB,aAAc,SACdC,aAAc,SACdC,KAAM,uDACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,UACL6gB,aAAc,MACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,uBACL6gB,aAAc,uBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KA3FwB,CAC1B,CAAEnH,KAAM,MAAOnU,MAAO,WACtB,CAAEmU,KAAM,MAAOnU,MAAO,oBACtB,CAAEmU,KAAM,QAASnU,MAAO,aA0FxB,CACEM,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,2CACdC,KAAM,GACNjD,KAAM,eAIJ8d,EAAY,CAChB12B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR6X,oBAAoB,EACpBC,gBAAgB,EAChBpC,YAAa,CAAC,IACd3L,QAAS,EAAF,GArHa,CACtBuY,KAAM,GACN,aAAc,GACd,UAAW,GACX,SAAU,GACV,YAAa,GACb,cAAe,GACf,oBAAqB,GACrB,gBAAiB,GACjB,uBAAwB,GACxB,qBAAsB,GACtB,oBAAqB,GACrB,UAAW,OA6Gb,SAAShS,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAQga,aAAc,CAClC,IAAMA,EAAc,IAAEvN,QAAQzM,EAAQga,aAClC,IAAEtN,KAAKsN,GAAapX,OAAS,IAC/B+H,EAAOqP,YAAc,IAAEtN,KAAKsN,GAAa5L,MAAM,EAAG,YAGjD,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,UAItE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAGT,IAAMkkB,EAAuB,CAAC,aAAc,eAAgB,qBAAsB,qBAE5EC,EAAmB,CACvB,WACA,aACA,eACA,gBACA,eACA,cACA,cACA,aACA,aACA,cACA,cACA,UACA,UACA,gBACA,eACA,YACA,WACA,gBACA,eACA,YACA,WACA,gBACA,eACA,aACA,UACA,WACA,eACA,eACA,kBAOIxoB,EAAqB,CACzB/C,SAAU,cAEZ,SAASkf,EAAcjY,GACrB,IAAMukB,EAAkB,IAAEtsB,IAAIqsB,EAAkB,IAAEnM,SAClD,OAAqE,IAA9D,IAAEpjB,QAAQwvB,EAAiB,IAAEpM,QAAQnY,EAAOvH,aAErD,SAASsV,EAAgBC,GACvB,IAAMC,EAAY,IAAElW,UAAUiW,GAI9B,OAHAC,EAAUlP,WAAWrJ,SAAQ,SAACC,GAC5BA,EAAKoJ,WAAa,CAAC,iBAEdkP,EAEM,a,ugBCxNT7Y,EAAY,UAWZovB,EAAY,CAChB92B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,sBACf7F,QAAS,EAAF,GAjBS,CAChBivB,MAAO,GACPC,OAAQ,EACRjM,oBAAqB,GACrBkM,sBAAuB,GACvB/M,MAAO,GACPgL,WAAOrrB,KAsBHqtB,EAAsB,CAC1B,CACEp8B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,+BACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,IAEP,CACEjhB,IAAK,sBACL6gB,aAAc,uBACdC,aAAc,cACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,wBACL6gB,aAAc,yBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,eACdC,KAAM,kDACNjD,KAAM,YAER,CACE9d,IAAK,QACL6gB,aAAc,QACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KArDe,CACjB,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,QAASnU,MAAO,MAoDpB28B,EAAuB,CAAC,sBAAuB,yBAE/C/oB,EAAqB,CACzB/C,SAAU,uBAEZ,SAASqR,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOskB,MAAQ,IAAE38B,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOukB,OAAS,IAAE58B,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGM,a,wkBCxCT2kB,EAAwB,CAC5B,CACEt8B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,aACL6gB,aAAc,cACdC,aAAc,OACdhD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAzEY,CACd,CAAEnH,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,eAAgBnU,MAAO,gBAC/B,CAAEmU,KAAM,aAAcnU,MAAO,cAC7B,CAAEmU,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,cAAenU,MAAO,iBAsE9B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAzEc,CAChB,CAAEnH,KAAM,KAAMnU,MAAO,GACrB,CAAEmU,KAAM,KAAMnU,MAAO,KAyErB,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,0BACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,mDACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,gBACdC,aAAc,sCACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdhT,UAAU,EACVgQ,KAAM,SACN9C,KAxJW,CACb,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,QAASnU,MAAO,GACxB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,OAAQ,GACvB,CAAEmU,KAAM,MAAOnU,OAAQ,KAqJvB,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAxJgB,CAClB,CAAEnH,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,GACtB,CAAEmU,KAAM,MAAOnU,MAAO,KAuJtB,CACEM,IAAK,aACL6gB,aAAc,aACdC,aAAc,+BACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdhT,UAAU,EACVgQ,KAAM,SACN9C,KArLc,CAChB,CAAEnH,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,OAAQnU,MAAO,GACvB,CAAEmU,KAAM,UAAWnU,MAAO,KAoL1B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,kCACdC,KAAM,GACNjD,KAAM,SACN9C,KAlMgB,CAClB,CAAEnH,KAAM,OAAQnU,MAAO,YACvB,CAAEmU,KAAM,OAAQnU,MAAO,aAkMvB,CACEM,IAAK,OACL6gB,aAAc,OACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KArKS,CACX,CAAEnH,KAAM,YAAanU,MAAO,GAC5B,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,SAAUnU,MAAO,GACzB,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,eAAgBnU,MAAO,GAC/B,CAAEmU,KAAM,cAAenU,MAAO,GAC9B,CAAEmU,KAAM,cAAenU,MAAO,MAgK1B68B,EAAc,CAClBr3B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,EAAF,GArKW,CAClByU,WAAY,GACZyC,QAAS,GACTC,UAAW,KACX2D,OAAQ,GACRC,UAAW,GACXZ,WAAY,GACZD,UAAW,GACXc,aAAc,GACdC,WAAY,GACZC,cAAe,GACf1G,OAAQ,GACR2G,YAAa,KACbC,WAAY,GACZC,UAAW,KACXC,YAAa,GACbC,KAAM,QAwJR,SAAS3G,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAqBpB,OApBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAEhB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAGT,SAAS8X,EAAcqB,QAAA,IAAAA,MAAA,IACrB,IAAMC,EAAY,IAAEzxB,IAAIwxB,EAAW,4BACnC,OAA4B,IAArBC,EAAUnhB,SAAwD,IAAxC,IAAErD,QAAQwkB,EAAW,cAGxD,IAAMyL,EAAyB,CAAC,aAAc,eAAgB,SAExDC,EAAyB,CAC7BC,WAAY,aACZ7W,WAAY,cAGRvS,EAAqB,CACzB/C,SAAU,cAEG,a,6BClQf,6RAqBMosB,EAAsB,CAC1B,CACE38B,IAAK,SACL6gB,aAAc,SACdC,aAAc,0CACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,GAEP,CACEhhB,IAAK,QACL6gB,aAAc,QACdC,aAAc,gCACdC,KAAM,GACNjD,KAAM,cACNkD,IAAK,EACLC,IAAK,KAEP,CACEjhB,IAAK,aACL6gB,aAAc,aACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,oBACL6gB,aAAc,oBACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,kBACL6gB,aAAc,kBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAzDoB,CACtB,CAAEnH,KAAM,KAAMnU,MAAO,IACrB,CAAEmU,KAAM,OAAQnU,MAAO,KACvB,CAAEmU,KAAM,aAAcnU,MAAO,OAwD7B,CACEM,IAAK,mBACL6gB,aAAc,mBACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACN9C,KA3DqB,CACvB,CAAEnH,KAAM,KAAMnU,MAAO,IACrB,CAAEmU,KAAM,OAAQnU,MAAO,KACvB,CAAEmU,KAAM,SAAUnU,MAAO,KACzB,CAAEmU,KAAM,UAAWnU,MAAO,KAC1B,CAAEmU,KAAM,OAAQnU,MAAO,YAwDvB,CACEM,IAAK,8BACL6gB,aAAc,8BACdC,aAAc,WACdC,KAAM,GACNjD,KAAM,SACNhQ,UAAU,EACVkN,KA5D4B,CAC9B,CAAEnH,KAAM,SAAUnU,MAAO,OACzB,CAAEmU,KAAM,UAAWnU,MAAO,SA8DtBk9B,EAAY,CAChB13B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,gBACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACRoQ,WAAY,GACZwC,QAAS,GACTC,UAAW,KACX0Y,gBAAiB,GACjBC,iBAAkB,GAClBC,4BAA6B,GAC7BC,kBAAmB,KAIvB,SAASpb,EAAuB5U,GAC9B,YAD8B,IAAAA,MAAA,IACvB,YAA6BA,GAAS,GAG/C,IAAMiwB,EAAuB,CAAC,gBAAiB,mBAEzCC,EAAuB,CAC3BC,cAAe,iBAGX7pB,EAAqB,CACzB/C,SAAU,iBAGG,a,whBCjGT6sB,EAA4B,CAChC,CACEp9B,IAAK,uBACL6gB,aAAc,sBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,yBACL6gB,aAAc,wBACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAtCiB,CACnB,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,YAAanU,MAAO,aAC5B,CAAEmU,KAAM,UAAWnU,MAAO,aAqC1B,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SACN9C,KAxCgB,CAClB,CAAEnH,KAAM,SAAUnU,MAAO,0BACzB,CAAEmU,KAAM,QAASnU,MAAO,kCA0CpB29B,EAAY,CAChBn4B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,qBACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR6X,oBAAoB,EACpBC,gBAAgB,EAChBkU,oBAAqB,CAAC,IACtBjiB,QAAS,EAAF,GAtDa,CACtB,uBAAwB,GACxB,yBAA0B,GAC1B,eAAgB,GAChB,cAAe,OAsDjB,SAASuG,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAQswB,qBAAsB,CAC1C,IAAMA,EAAsB,IAAE7jB,QAAQzM,EAAQswB,qBAC1C,IAAE5jB,KAAK4jB,GAAqB1tB,OAAS,IACvC+H,EAAO2lB,oBAAsB,IAAE5jB,KAAK4jB,GAAqBliB,MAAM,EAAG,YAGjE,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,UAItE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAGT,IAAM4lB,EAAuB,CAAC,qBAAsB,wBAE9CjqB,EAAqB,CACzB/C,SAAU,sBAGNitB,EAAuB,CAC3BC,mBAAoB,sBAEP,a,whBCpGTC,EAA4B,CAChC,CACE19B,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,KACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,oBAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,SACtB,CAAEmU,KAAM,QAASnU,MAAO,SAG5B,CACEM,IAAK,eACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,KAAMnU,MAAO,SAGzB,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,eAIJ6f,EAAY,CAChBz4B,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,SACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR+J,QAAS,EAAF,GArIa,CACtBoW,OAAQ,GACRR,OAAQ,GACRxC,WAAY,GACZ9U,OAAQ,GACR+X,YAAa,GACbC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,MAAO,GACPC,mBAAoB,GACpBzD,OAAQ,OA8HV,SAAS1M,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAAU,CACvB2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/C,IAAM,EAAiB,GACvB,IAAEE,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GAEjC,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAK8O,MAAO,IAAE4K,KAAKvM,GAAMiO,MAAM,EAAG,KAEhD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAK8O,MAAO,IAAExP,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,SAIrE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAGrB,OAAO1D,EAGT,IAAMimB,EAAuB,CAAC,SAAU,aAElCC,EAAuB,CAC3BlM,UAAW,YACXV,OAAQ,UAEJ3d,EAAqB,CACzB/C,SAAU,UAEG,a,iUCjJFutB,EAAqB,CAChC,CACE99B,IAAK,aACL6gB,aAAc,aACdC,aAAc,cACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,eACL6gB,aAAc,eACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,iBACL6gB,aAAc,iBACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEtb,MAAO,WAAYmU,KAAM,YAC3B,CAAEnU,MAAO,UAAWmU,KAAM,WAC1B,CAAEnU,MAAO,OAAQmU,KAAM,QACvB,CAAEnU,MAAO,YAAamU,KAAM,aAC5B,CAAEnU,MAAO,SAAUmU,KAAM,UACzB,CAAEnU,MAAO,YAAamU,KAAM,aAC5B,CAAEnU,MAAO,WAAYmU,KAAM,cAG/B,CACE7T,IAAK,cACL6gB,aAAc,cACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,eACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,uBACL6gB,aAAc,uBACdC,aAAc,iBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,UACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,SACrB,CAAEmU,KAAM,KAAMnU,MAAO,WAiBrBq+B,EAAW,CACf74B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACfzM,QAAS,GACT4G,SAAO,GACLsE,OAAQ,EACRkH,MAAO,IACP,aAAe,CAAC,IAChB,EAAA6C,QAAS,CACP,aAAc,GACd,eAAgB,GAChB,aAAc,GACd,kBAAmB,GACnB,eAAgB,GAChB,qBAAsB,GACtB,wBAAyB,GACzB,cAAe,IAElB,IAGH,SAASuG,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAO,YAAgB,CACnC,IAAMga,EAAc,IAAEvN,QAAQzM,EAAO,YACjC,IAAE0M,KAAKsN,GAAapX,OAAS,IAC/B+H,EAAM,WAAgB,IAAE+B,KAAKsN,GAAa5L,MAAM,EAAG,YAGlD,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,UAItE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAGT,IAAMqmB,EAAsB,CAAC,YAAa,cAAe,aAGnDC,EAAsB,CAC1BhM,IAAK,aAGD3e,EAAqB,CACzB/C,SAAU,aAQG,a,6iBC7LT2tB,EAA8B,CAAC,eAAgB,kBAQ/CC,EAAmC,CACvC,CACEn+B,IAAK,iBACL6gB,aAAc,gBACdC,aAAc,aACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,mBACL6gB,aAAc,kBACdC,aAAc,kBACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,UACdC,KAAM,GACNjD,KAAM,eAIJsgB,EAAmB,CACvBl5B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,eACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR6X,oBAAoB,EACpBC,gBAAgB,EAChBiV,cAAe,CAAC,IAChBhjB,QAAS,EAAF,GA5CoB,CAC7B,iBAAkB,GAClB,mBAAoB,GACpB,SAAU,OA6CZ,SAASuG,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAQqxB,eAAgB,CACpC,IAAMA,EAAgB,IAAE5kB,QAAQzM,EAAQqxB,eACpC,IAAE3kB,KAAK2kB,GAAezuB,OAAS,IACjC+H,EAAOqP,YAAc,IAAEtN,KAAK2kB,GAAejjB,MAAM,EAAG,YAGnD,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,UAItE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAGT,IAAMrE,EAAqB,CACzB/C,SAAU,gBAGN+tB,EAAuB,CAC3BC,MAAO,gBAGM,a,giBClFTC,EAA8B,CAClC,CACEx+B,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,KACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,SACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,UAAWnU,MAAO,WAC1B,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,cACL6gB,aAAc,cACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,WAAYnU,MAAO,YAC3B,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,YACL6gB,aAAc,YACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,oBAER,CACE9d,IAAK,aACL6gB,aAAc,aACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,MAAOnU,MAAO,SACtB,CAAEmU,KAAM,QAASnU,MAAO,SAG5B,CACEM,IAAK,eACL6gB,aAAc,eACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,KAAMnU,MAAO,SAGzB,CACEM,IAAK,QACL6gB,aAAc,QACdC,aAAc,YACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,KAAMnU,MAAO,MACrB,CAAEmU,KAAM,MAAOnU,MAAO,OACtB,CAAEmU,KAAM,aAAcnU,MAAO,gBAGjC,CACEM,IAAK,qBACL6gB,aAAc,qBACdC,aAAc,SACdC,KAAM,GACNjD,KAAM,SACN9C,KAAM,CACJ,CAAEnH,KAAM,OAAQnU,MAAO,QACvB,CAAEmU,KAAM,SAAUnU,MAAO,UACzB,CAAEmU,KAAM,QAASnU,MAAO,WAG5B,CACEM,IAAK,SACL6gB,aAAc,SACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,eAIJ2gB,EAAc,CAClBv5B,OAAQ,eACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,SACf7F,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR+J,QAAS,EAAF,GArIa,CACtBoW,OAAQ,GACRR,OAAQ,GACRxC,WAAY,GACZ9U,OAAQ,GACR+X,YAAa,GACbC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,MAAO,GACPC,mBAAoB,GACpBzD,OAAQ,OA8HV,SAAS1M,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAAU,CACvB2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/C,IAAM,EAAiB,GACvB,IAAEE,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAK8O,MAAO,IAAE4K,KAAKvM,GAAMiO,MAAM,EAAG,KAEhD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAK8O,MAAO,IAAExP,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,SAIrE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAGrB,OAAO1D,EAGT,IAAM+mB,EAAyB,CAAC,SAAU,cAEpCC,EAAyB,CAC7BhN,UAAW,YACXV,OAAQ,UAEJ3d,EAAqB,CACzB/C,SAAU,UAEG,a,eC5Kf/R,EAAOD,QAAUqgC,G,iCCAjB,oMAEMC,EAAY,CAChB35B,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,YACfisB,WAAY,GACZC,SAAU,GACV/xB,QAAS,CACPwL,MAAO,GACPlH,OAAQ,EACR6X,oBAAoB,EACpBC,gBAAgB,EAChB4V,WAAY,CAAC,IACb3jB,QAAS,CACP4jB,YAAa,GACbtH,YAAa,GACbuH,cAAe,GACf,UAAW,MAKXC,EAA4B,CAChC,CACEn/B,IAAK,cACL6gB,aAAc,eACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,cACL6gB,aAAc,eACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,gBACL6gB,aAAc,iBACdC,aAAc,OACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,OACL6gB,aAAc,OACdC,aAAc,QACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,SACL6gB,aAAc,MACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,SAER,CACE9d,IAAK,UACL6gB,aAAc,UACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,cAER,CACE9d,IAAK,YACL6gB,aAAc,YACdC,aAAc,MACdC,KAAM,GACNjD,KAAM,eAIJshB,EAAuB,CAAC,YAAa,eAE3C,SAASxd,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GACpB,IAAK,IAAE/I,QAAQ5B,GAGb,GAFA2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC3CA,EAAQmc,oBACV,GAAI,IAAE1a,QAAQzB,EAAQga,aAAc,CAClC,IAAMA,EAAc,IAAEvN,QAAQzM,EAAQga,aAClC,IAAEtN,KAAKsN,GAAapX,OAAS,IAC/B+H,EAAOqP,YAAc,IAAEtN,KAAKsN,GAAa5L,MAAM,EAAG,YAGjD,GAAIpO,EAAQoc,eAAgB,CACjC,IAAM,EAAiB,GACvB,IAAElc,QAAQF,EAAQqO,SAAS,SAAClO,EAAWnN,GACjC,EAAQ4P,OAAS,IAGjB,IAAEnB,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,GAChB,EAAQZ,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAEzB,KAAKvM,GAAMiO,MAAM,EAAG,KAEjD,IAAE7H,SAASpG,KACf,IAAEyB,QAAQ,IAAEtP,IAAI6N,EAAM,QAAS,MAClC,EAAQ6B,KAAK,CAAEC,KAAMjP,EAAKmb,OAAQ,IAAE7b,IAAI6N,EAAM,QAAS,IAAIiO,MAAM,EAAG,UAItE,EAAQxL,OAAS,IACnB+H,EAAO0D,QAAU,GAIvB,OAAO1D,EAGM,a,o2DCtGf,cAeE,WAAYlG,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAflD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,8BACpB,EAAA0B,kBAAoB,8BACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,aACTC,OAAQ,yBACRm5B,cAAe,cAGjB,EAAAld,aAAe,eACf,EAAApQ,uBAAyB,yB,EAmD3B,OAhE0C,OAqBxC,YAAA0B,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAExE,YAAA4/B,uBAAN,SAA6B3nB,G,6GAKf,OAJJzS,EAAuByS,EAAjB,OAAE4V,EAAe5V,EAAL,WACpBC,EAAc,YAAkB1S,EAAQsB,KAAKP,SAGvC,GAAM,aAChB,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,qCAGtB,CACEslB,UAAW+B,GAEb,oB,OAGF,OAjBMpmB,EAAM,SAiBZ,GADaA,EAAJ,YAGL,YAAA8M,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,G,+GAErC,mCAAXrK,EAAA,MACS,GAAMM,KAAK84B,uBAAuB,CAAEp6B,OAAM,EAAEqoB,WAAYhd,EAAS/J,KAAK8M,mBAAmB/C,a,OAQpG,OARMkH,EAAK,SACL1K,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmB0X,iBAC3C,CACLnX,KAAM3U,EAAE,EAAKoU,mBAAmB0X,iBAChCtrB,MAAOR,EAAE,EAAKoU,mBAAmB0X,qBAGrC,GAAM,IAAgBxK,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAaiJ,gBAAiB3T,I,OACvF,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EAhEA,CAA0C,kB,2jECL1C,cAkBE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAlBlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,6BACpB,EAAA0B,kBAAoB,6BACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,wBACRm5B,cAAe,kBACf9mB,YAAa,CACXE,QAAS,SAACd,GAAW,cAChBA,GAAM,CACT4nB,iBAFmB,gBAMzB,EAAAC,UAAY,G,EAkCd,OAnD0C,OAsBxC,YAAA/rB,WAAA,sBACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAElB,KACA,CAAEnB,OAAQ,kBAAmBhB,OAAQ,iBACrCiS,MAAK,SAAChI,GAGN,OADA,EAAKqwB,UAAY,IAAEC,MAAMtwB,EAASuwB,cAAe,UAC1C,IAAEjwB,IAAIN,EAASuwB,eAAiB,IAAI,SAACvyB,GAC1C,MAAO,CACL0G,KAAM,YAAE1G,EAAKtF,QACbnI,MAAOyN,EAAKtF,eAKd,YAAAoQ,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAI,wBAAcA,GACTA,EAEF,kBAIf,EAnDA,CAA0C,kB,2jECN1C,cAkBE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAlBlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,wBACRm5B,cAAe,kBACf9mB,YAAa,CACXE,QAAS,SAACd,GAAW,cAChBA,GAAM,CACT4nB,iBAFmB,YAMzB,EAAAC,UAAY,G,EAkCd,OAnD0C,OAqBlC,YAAAvnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAI,wBAAcA,GACTA,EAEF,kBAKb,YAAAsG,WAAA,sBACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAElB,KACA,CAAEnB,OAAQ,kBAAmBhB,OAAQ,iBACrCiS,MAAK,SAAChI,GAGN,OADA,EAAKqwB,UAAY,IAAEC,MAAMtwB,EAASuwB,cAAe,UAC1C,IAAEjwB,IAAIN,EAASuwB,eAAiB,IAAI,SAACvyB,GAC1C,MAAO,CACL0G,KAAM,YAAE1G,EAAKtF,QACbnI,MAAOyN,EAAKtF,eAKtB,EAnDA,CAA0C,kB,+hBCM1C,cAeE,WAAY4J,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAflD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,yBACpB,EAAA0B,kBAAoB,yBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,QACTC,OAAQ,6BACRm5B,cAAe,wBAEjB,EAAAxtB,gBAAkB,CAChBuG,aAAc,mBAEhB,EAAAonB,UAAY,G,EAuBd,OArC0C,OAmBxC,YAAA/rB,WAAA,sBACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAElB,KACA,CAAEnB,OAAQ,kBAAmBhB,OAAQ,iBACrCiS,MAAK,SAAChI,GAGN,OADA,EAAKqwB,UAAY,IAAEC,MAAMtwB,EAASuwB,cAAe,UAC1C,IAAEjwB,IAAIN,EAASuwB,eAAiB,IAAI,SAACvyB,GAC1C,MAAO,CACL0G,KAAM,YAAE1G,EAAKtF,QACbnI,MAAOyN,EAAKtF,eAKtB,EArCA,CAA0C,kB,wgBCR1C,cAYE,WAAY4J,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,UACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,sBAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,4BACRm5B,cAAe,uB,EAKnB,OAf2C,OAe3C,EAfA,CAA2C,kB,q2DCC3C,cAWE,WAAY5tB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,gBACRm5B,cAAe,W,EASnB,OAlB0C,OAclC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAEjqB,OAAOiqB,EAAQ,0BAE5B,EAlBA,CAA0C,kB,42DCO1C,cAYE,WAAYluB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,UACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,cAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,sBACRm5B,cAAe,S,EA4CnB,OAtD2C,OAenC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAI,wBAAcA,GACT,0BAAgBA,GAElB,kBAQb,YAAAyyB,SAAA,SAAS16B,GACP,IAAM0S,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,MAE9B4O,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS0wB,SAAW,IAAI,SAAC1yB,GAC7B,MAAO,CAAE0G,KAAM1G,EAAK2yB,SAAUpgC,MAAOyN,EAAK4yB,OAAQC,UAAW7yB,EAAK6yB,UAAW9Q,KAAM/hB,EAAK+hB,UAE1F,SAAC/hB,GAAS,oBAAAA,EAAK6yB,iBAKrB,YAAA7pB,iBAAA,SAAiB7B,G,MACf,aACG,qBAAmB/D,UAAW+D,EAC/B,EAAAojB,aAAc,EACd,GAEN,EAtDA,CAA2C,kB,oiECP3C,cAYE,WAAYjmB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,UACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,UAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,kBACRm5B,cAAe,W,EAQnB,OAlB2C,OAenC,YAAAnsB,gBAAN,SAAsBpG,EAAYqG,G,mEAChC,SAAO,YAAMD,gBAAe,iBAAMpG,GAAU,CAAE5H,OAAQ,iBAAoBiO,WAE9E,EAlBA,CAA2C,kB,2iECC3C,cAYE,WAAY1B,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,+BACpB,EAAA0B,kBAAoB,+BACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,kBACRm5B,cAAe,WAEjB,EAAAvtB,YAAc,CAAC,MAAO,Y,EAwCxB,OAnD0C,OAkBlC,YAAAoB,gBAAN,SAAsBpG,EAAYqG,G,mEAChC,SAAO,YAAMD,gBAAe,iBAAMpG,GAAU,CAAE5H,OAAQ,iBAAoBiO,WAEtE,YAAA8sB,gBAAN,SAAsBtoB,G,oGAKT,OAJHzS,EAAkByS,EAAZ,OAAE9J,EAAU8J,EAAL,MACfC,EAAc,YAAkB1S,EAAQ,OAGnC,GAAMsB,KAAKqR,UACpB,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CACJyH,KAAMpB,IAGV+J,EAAY3R,QACZ,CAAEC,OAAQ,qB,OAEZ,UAVW,SAUAg6B,aAAe,IAAIzwB,KAAI,SAACvQ,GACjC,MAAO,CACL2U,KAAM3U,EAAE+P,KACRvP,MAAOR,EAAE+P,kBAIT,YAAAgF,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,sGACpD,oBAAX5G,EAAA,OACY2H,EAAUf,EAAL,KACR,GAAMtG,KAAKy5B,gBAAgB,CAAE/6B,OAAM,EAAE2I,MAAK,M,OACrD,SADW,U,OAGb,SAAO,YAEX,EAnDA,CAA0C,kB,wgBCI1C,cAiCE,WAAY4D,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAjClD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,+BACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,aACf9mB,YAAa,CACXE,QAAS,SAACd,GASR,OARoBA,EAAL,UAEbA,EAAO0D,QAAU,IAEnB1D,EAAO0D,QAAQrM,KAAK,CAClBC,KAAM,eACNkM,OAAQ,CAAC,gBAEJxD,KAUb,EAAA9F,gBAAkB,CAChBuG,aAAc,mB,EAelB,OA9C0C,OA8C1C,EA9CA,CAA0C,kB,wgBCN1C,cAWE,WAAY3G,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,KACTC,OAAQ,oBACRm5B,cAAe,gB,EAKnB,OAd0C,OAc1C,EAdA,CAA0C,kB,+gBCC1C,cAWE,WAAY5tB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAPlD,EAAA2F,mBAAqB,CACnB/C,SAAU,gBAEZ,EAAAuB,YAAc,CAAC,WAMb,EAAKI,UAAY,UACjB,EAAKc,kBAAoB,uBACzB,EAAK0B,kBAAoB,uBACzB,EAAK4D,kBAAoB,CACvBrS,QAAS,MACTC,OAAQ,yBACRm5B,cAAe,e,EAMrB,OA1B2C,OAuBzC,YAAA5rB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAEhF,EA1BA,CAA2C,kB,03DCW3C,cAgBE,WAAY+R,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAhBlD,EAAAuE,UAAY,aACZ,EAAAc,kBAAoB,0BACpB,EAAAmtB,eAAiB,uBACjB,EAAAzrB,kBAAoB,0BACpB,EAAApB,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,SACTC,OAAQ,oBACRm5B,cAAe,gBAEjB,EAAA1tB,gBAAkB,CAAC,WAEnB,EAAAwQ,aAAe,eACf,EAAApQ,uBAAyB,yBACzB,EAAAquB,mBAAqB,G,EAsJvB,OArK6C,OAoBrC,YAAAC,kBAAN,SAAwBn7B,EAAQyS,G,2IACxBC,EAAc,YAAkB1S,EAAQ,UACxCuc,EAA6C9J,EAAnC,WAAE,EAAiCA,EAAnB,UAAd2oB,OAAS,IAAG,KAAE,EAAE,EAAiB3oB,EAAL,QAAZ4oB,OAAO,IAAG,KAAE,EAC9CD,EAAY95B,KAAK+L,YAAY+tB,GAC7BC,EAAU/5B,KAAK+L,YAAYguB,GAC3B,IACED,EAAY75B,KAAK8G,MAAM+yB,GAAW,qBAAmB3kB,WACrD4kB,EAAU95B,KAAK8G,MAAMgzB,GAAS,qBAAmBnf,SACjD,MAAO5T,I,OACLgzB,EAAeh6B,KAAK45B,mBAAmB3e,IACvC,MAEa,GAAM,aACnB,SAACja,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,4BAGtB,IAAE0K,KAAK+G,EAAQ,cACf,CAAC,sBAAuB,sBAAuB,0BAA2B,e,OAG1D,OAflB6oB,EAAe,SAeG,GAAM,aACtB,SAACh5B,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,oBAGtB,IAAE0K,KAAK+G,EAAQ,cACf,CAAC,e,OAZG8oB,EAAY,SAclBD,EAAa,GAAK,sBAAYC,GAE9Bj6B,KAAK45B,mBAAmB3e,GAAc+e,E,iBAgBxC,OAbKne,EAAwDme,EAA/C,GAAEpe,EAA6Coe,EAApC,GAAEle,EAAkCke,EAArB,GAAEE,EAAmBF,EAAJ,GAEzDpe,EAAY,IAAEue,OAAOve,GAAW,SAACjV,GAAS,OAACA,EAAD,WAC1CkV,EAAY,IAAEse,OAAOte,GAAW,SAAClV,GAAS,OAACA,EAAD,aAC1CmV,EAAgB,IAAEqe,OAAOre,GAAe,SAACnV,GAAS,OAACA,EAAD,eAClDuzB,EAAkB,IAAEC,OAAOD,GAAiB,SAACvzB,GAAS,OAACA,EAAD,qBAEhDyzB,GAAgF,QAA9D,EAAAF,EAAgBl0B,MAAK,SAACzN,GAAM,OAAAA,EAAE8hC,oBAAF,YAAkC,eAAEC,iBAAkB,GAEpGC,GAC6D,QAAjE,EAAsD,QAAtD,EAAAH,EAAgBp0B,MAAK,SAACw0B,GAAQ,OAAAA,EAAIze,UAAJ,YAAwB,eAAE0e,iBAAS,eAAExxB,KAAI,SAAClP,G,MAAM,aAC3E,qBAAmBghB,WAAYhhB,EAChC,OAAK,GACT,GAAO,CACL8hB,UAAS,EACTD,UACEwe,EAAgBhxB,OAAS,EACrBgxB,EAAgBnxB,KAAI,SAAC,GAA2B,MAAC,CAAE8S,QAArB,UAA8BC,UAAnB,gBACzCJ,EACNE,cAAeye,EAAWnxB,OAAS,EAAImxB,EAAaze,YAGxD,YAAA4e,sBAAA,SAAsBC,EAA4BvuB,EAAgCwuB,GAAlF,WACE,OAAIxuB,EACKA,EAAWrE,QAAQ,gBAAgB,SAACuE,EAAGC,GAC5C,OAAKA,GAAM,EAAKotB,eAAeltB,SAASF,GAGjC,EAAKP,cAAc2uB,EAAOpuB,GAFxB,MAKNvM,KAAKgM,cAAc2uB,EAAOC,IAG7B,YAAAntB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,uHAEpD,OADTu0B,EAAmCv0B,EAAzB,WAAEwzB,EAAuBxzB,EAAd,UAAEyzB,EAAYzzB,EAAL,QACrB,GAAMtG,KAAK65B,kBAAkBn7B,EAAQ,CAClDuc,WAAYlR,EAASkR,WACrB6e,UAAS,EACTC,QAAO,K,OA+BT,OAlCMxzB,EAAS,SAKTqG,EAAYtG,EAAL,QACLsV,EAAwCrV,EAA/B,UAAEsV,EAA6BtV,EAApB,UAAEuV,EAAkBvV,EAAL,cAC3Cs0B,EAAa76B,KAAK25B,eAAeltB,SAASouB,GAAcA,EAAa76B,KAAK8M,mBAAmB8N,QAEvF3J,EAAK,CACT4K,UAAWA,EAAU5S,KAAI,SAACwZ,GAExB,OADAA,EAAMnZ,oBAAsBmZ,EAAMxG,UAC3B,CACL5O,KAAMoV,EAAMxG,UACZ/iB,MAAOupB,EAAM,qBAAmBtN,eAGpCyG,UAAWA,EAAU3S,KAAI,SAAC0xB,GACxB,IAAMC,EAAa,EAAKF,sBAAsBC,EAAO/tB,EAASiuB,GAE9D,OADAF,EAAMrxB,oBAAsBsxB,GAAcD,EAAM,qBAAmB/f,SAC5D,CACLvN,KAAMutB,GAAcD,EAAM,qBAAmB/f,SAC7C1hB,MAAOyhC,EAAM,qBAAmB/f,SAChCoB,UAAW2e,EAAM3e,cAGrBF,cAAeA,EAAc7S,KAAI,SAAC6xB,GAEhC,OADAA,EAAIxxB,oBAAsBwxB,EAAI,qBAAmB/f,WAC1C,CACL1N,KAAMytB,EAAI,qBAAmB/f,WAC7B7hB,MAAO4hC,EAAI,qBAAmB/f,gBAIpC,GAAM,IAAgBf,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAaC,UAAWA,I,OACjF,OADA,SACA,GAAM,IAAgB5B,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAaE,UAAWA,I,OACjF,OADA,SACA,GAAM,IAAgB7B,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAaG,cAAeA,I,OAIrF,OAJA,SAIQpc,GACN,IAAK,oBACH,SAAOuR,EAAG2K,WACZ,IAAK,gBACH,SAAO3K,EAAG4K,WACZ,IAAK,kBACH,SAAO5K,EAAG6K,eACZ,QACE,SAAO,I,kBAef,EArKA,CAA6C,kB,ykECC7C,cAgBE,WAAY7Q,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAflD,EAAAqF,kBAAoB,oBACpB,EAAAuuB,kBAAoB,+BACpB,EAAAC,gBAAkB,6BAClB,EAAAxvB,mBAAqB,qBAErB,EAAAsB,mBAAqB,qBAOrB,EAAA6O,aAAe,eACf,EAAApQ,uBAAyB,yB,EAqJ3B,OApK0C,OAsBxC,YAAA4C,qBAAA,SAAqB4C,EAAckqB,GACjC,MAAwB,cAApBlqB,EAAQtR,SAAgD,aAApBsR,EAAQtR,SAA0Bw7B,EAAOre,QACxE,EAAP,KAAY,8BAA0B,CAAEgM,MAAO,mBAC1C,8BAET,YAAA9X,qBAAA,SAAqBC,GACnB,IAAMpQ,EAAW,CACflB,QAAS,MACTC,OAAQ,wBACRm5B,cAAe,mBAYjB,MAVwB,cAApB9nB,EAAQtR,SAA+C,gBAApBsR,EAAQtR,UAC7CkB,EAAIoR,YAAc,CAChBE,QAAS,SAACK,GAAU,cAAMA,GAAK,CAAEymB,iBAAb,gBAGA,aAApBhoB,EAAQtR,UACVkB,EAAIoR,YAAc,CAChBE,QAAS,SAACK,GAAU,cAAMA,GAAK,CAAEymB,iBAAb,YAGjBp4B,GAEH,YAAAu6B,gBAAN,SAAsB/pB,G,6GAKR,OAJJzS,EAAuByS,EAAjB,OAAE4V,EAAe5V,EAAL,WACpBC,EAAc,YAAkB1S,EAAQ,OAGlC,GAAM,aAChB,SAACsC,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,wBAGtB,CACEy7B,eAAgBpU,GAElB,c,OAGF,OAjBMpmB,EAAM,SAiBZ,GADaA,EAAJ,YAGX,YAAAy6B,sBAAA,SAAsBp6B,EAA2BoL,EAAgCR,EAAeyvB,GAAhG,WACE,OAAIjvB,EACKA,EAAWrE,QAAQ,gBAAgB,SAACuE,EAAGC,GAC5C,OAAKA,GAAM8uB,EAAU5uB,SAASF,GAGvB,EAAKP,cAAchL,EAAMuL,GAFvB,MAKNvM,KAAKgM,cAAchL,EAAM4K,IAE5B,YAAA0vB,cAAN,SAAoBnqB,G,0GAIN,OAHJzS,EAAmCyS,EAA7B,OAAE4V,EAA2B5V,EAAjB,WAAEoqB,EAAepqB,EAAL,WAChCC,EAAc,YAAkB1S,EAAQ,OAElC,GAAMsB,KAAKqR,UACrB,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CAAEm6B,eAAgBpU,EAAYyU,YAAa,CAACD,KAEpDnqB,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,qB,OAiBpB,OAvBMiB,EAAM,SAQJ86B,EAAc96B,EAAL,UAejB,GAdoB,IAAE2O,OACpBmsB,GACA,SAAClsB,EAAM5I,GACG,IAAA+0B,EAAmB/0B,EAAd,MAAEg1B,EAAYh1B,EAAL,QACtB,OAAK,IAAEyB,QAAQszB,GAGV,IAAEtzB,QAAQuzB,GAGRpsB,EAFE,IAAEE,OAAOF,EAAMosB,GAHf,IAAElsB,OAAOF,EAAM,IAAEsB,QAAQ,IAAE5H,IAAIyyB,GAAO,SAACE,GAAS,OAAC,IAAExzB,QAAQwzB,EAAKD,SAAW,GAAKC,EAAhC,eAO3D,aAIE,YAAAnuB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,gIAC3DsG,EAAYtG,EAAL,QACA,sBAAX5G,EAAA,MACS,GAAMM,KAAKk7B,gBAAgB,CAAEx8B,OAAM,EAAEqoB,WAAYhd,EAAS/J,KAAK8M,mBAAmB/C,a,OAa7F,OAbMkH,EAAK,SACL,EAAkB3K,EAAL,cACnB,EAAgBtG,KAAK+6B,kBAAkBtuB,SAAS,GAAiB,EAAgBzM,KAAK8M,mBAAmB6P,SACnGpW,EAAS0K,EAAG9D,SAAQ,SAACzU,GACzB,IAAMmjC,EAAc,EAAKT,sBAAsB1iC,EAAGkU,EAAS,EAAe,EAAKmuB,mBACzEe,EAAQpjC,EAAE,EAAKoU,mBAAmB6P,UAGxC,OAFAjkB,EAAE4Q,oBAAsBuyB,GAAeC,EAEhC,CACLzuB,KAAMwuB,GAAeC,EACrB5iC,MAAO4iC,MAGX,GAAM,IAAgB9hB,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAagB,SAAU1L,I,OAChF,OADA,SACA,GAAO1K,G,aAEM,mBAAX7G,GAA0C,uBAAXA,EAA/B,OACMq8B,EAA6Cz1B,EAAnC,WAAE01B,EAAiC11B,EAAlB,gBAAE21B,EAAgB31B,EAAL,YAC1C,EAAkBtG,KAAK+L,YAAYiwB,GACrB,GAAMh8B,KAAKs7B,cAAc,CAC3C58B,OAAM,EACNqoB,WAAYhd,EAAS/J,KAAK8M,mBAAmB/C,UAC7CwxB,WAAYv7B,KAAK+L,YAAYgwB,O,OAyB/B,OA5BMG,EAAc,SAKd,EAAcl8B,KAAKg7B,gBAAgBvuB,SAASwvB,GAAeA,EAAcj8B,KAAK8M,mBAAmB8P,QACjGrW,EAAS,IAAE41B,MAAMD,GACpBhtB,QAAO,SAACvI,GACP,MAAe,mBAAXjH,GAGG,IAAoB,IAAE5G,IAAI6N,EAAM,2BAExCsC,KAAI,SAACtC,GACJ,IAAMiF,EAAQ,EAAKwvB,sBAAsBz0B,EAAMiG,EAAS,EAAa,EAAKouB,iBACpEh4B,EAAK2D,EAAK,EAAKmG,mBAAmB8P,SAAS,GAEjD,OADAjW,EAAK2C,oBAAsBsC,GAAS5I,EAClB,mBAAXtD,EACH,CACE2N,KAAMzB,GAAS5I,EACf9J,MAAO8J,GAET,CACEqK,KAAM,UAAG,IAAEvU,IAAI6N,EAAM,SACrBzN,MAAO,IAAEJ,IAAI6N,EAAM,YAG1BzN,QACH,GAAM,IAAgB8gB,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAaiB,QAASsf,I,OAC/E,OADA,SACA,GAAkB,mBAAXx8B,EAA8B6G,EAAS,IAAE4zB,OAAO5zB,EAAQ,S,OAEjE,SAAO,YAEX,EApKA,CAA0C,kB,42DCJ1C,cAYE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,iBACRm5B,cAAe,U,EAwBnB,OAjC0C,OAkBxC,YAAA5rB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAMxE,YAAAuY,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAO,0BAAgBA,gBAI/B,EAjCA,CAA0C,kB,uhECT1C,yE,OACE,EAAAuH,kBAA4C,oBAC5C,EAAA1B,kBAA8B,oBAC9B,EAAAM,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,sBACRm5B,cAAe,Y,EAYnB,OAnB2C,OAUnC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACG,SAAM,YAAM+S,WAAU,UAAC/S,I,OACzC,SADkB,SACDuK,KAAI,SAAC+H,GACpB,IAAIorB,EAAOprB,EAAOjB,WAAW,GAAGA,WAGhC,OAFAqsB,EAAOnwB,MAAMiE,KAAK,IAAImsB,IAAG,OAAKD,GAAI,IAAE,UAAW,cAAW,KAC1DprB,EAAOjB,WAAW,GAAGA,WAAaqsB,EAC3BprB,cAGb,EAnBA,CAA2C,kB,02DCS3C,yE,OACE,EAAAtF,UAAY,eACZ,EAAAwC,kBAA4C,oBAC5C,EAAA1B,kBAA8B,oBAC9B,EAAAM,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,sBACRm5B,cAAe,YAEjB,EAAAld,aAAe,eACf,EAAApQ,uBAAyB,yBACzB,EAAAJ,gBAAkB,CAAC,kB,EAwDrB,OApEgD,OAcxC,YAAAmxB,qBAAN,SAA2B59B,EAAgByS,G,uGAK9B,OAJLC,EAAc,YAAkB1S,EAAQ,OAInC,GAAM,aACf,SAACsC,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,iCAGtByR,EACA,oB,OAGF,SAfW,SAeD,YAGN,YAAA1D,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,G,yGAE5CrK,G,IACD,yC,mBACM,SAAMM,KAAKs8B,qBAAqB59B,EAAQ,CAAEsd,UAAWjS,EAASiS,a,OAMvE,OANAzV,EAAS,SAEH0K,EAAK1K,EAAO0C,KAAI,SAACtC,GAErB,OADAA,EAAK2C,oBAAsB3C,EAAK41B,eACzB,CAAElvB,KAAM1G,EAAK41B,eAAgBrjC,MAAOyN,EAAK,qBAAmBklB,kBAErE,GAAM,IAAgB7R,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAamQ,eAAgBvlB,I,OACtF,OADA,SACA,GAAO0K,G,OAEP,SAAO,YAIP,YAAAQ,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACG,SAAM,YAAM+S,WAAU,UAAC/S,I,OACzC,SADkB,SACDuK,KAAI,SAAC+H,GACpB,IAAIorB,EAAOprB,EAAOjB,WAAW,GAAGA,WAQhC,OAPAqsB,EAAK5zB,KAAK,WACN,CAAC,cAAe,mBAAmBiE,SAASuE,EAAOvH,aACrD2yB,EAAK5zB,KAAK,kBAGZ4zB,EAAOnwB,MAAMiE,KAAK,IAAImsB,IAAID,IAC1BprB,EAAOjB,WAAW,GAAGA,WAAaqsB,EAC3BprB,cAGb,EApEA,CAAgD,kB,4hECLhD,cASE,WAAY/F,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OATlD,EAAA+G,kBAA4C,GAC5C,EAAA1B,kBAA8B,CAAC,cAC/B,EAAAM,mBAAqB,CACnB/C,SAAU,cAEZ,EAAA+H,kBAAoB,GAKlB,EAAK0qB,OAAS,2BAAoB,EAAKvxB,iBAAiBjI,GAAE,0B,EA6B9D,OAxC2C,OAanC,YAAA6O,aAAN,SAAmBnT,G,mEACjB,SAAOsB,KAAKF,WACTc,kBAAkB,CACjBC,IAAKb,KAAKw8B,OACV17B,OAAQ,MACRqQ,OAAQ,CAAEzS,OAAM,GAChBqC,QAAS,CAAE,eAAgB,sBAE5B4P,MAAK,SAAChQ,GACC,IAAAK,EAAqCL,EAAjC,KAEJ87B,GADNz7B,EAAOA,GAAS,IACH,QAIb,OAHAy7B,EAAUA,GAAW,IAGNxzB,KAAI,SAACtC,GAAS,cACxBA,GAAI,CACP+1B,WAAY/1B,EAAK8B,KACjBk0B,OAAQh2B,EAAK8B,KACbmiB,MAAOjkB,EAAK8B,KAAKhC,MAAM,KAAKmO,OAAO,GAJR,mBAS7B,YAAA1H,qBAAN,SAA2BxO,G,mEACzB,SAAOsB,KAAK6R,aAAanT,WAE7B,EAxCA,CAA2C,kB,m3DCK3C,cAYE,WAAYuM,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,KACTC,OAAQ,kBACRm5B,cAAe,iBAEjB,EAAAG,UAAY,G,EA8Cd,OAzD0C,OAgBxC,YAAA/rB,WAAA,sBACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAElB,KACA,CAAEnB,OAAQ,kBAAmBhB,OAAQ,iBACrCiS,MAAK,SAAChI,GAGN,OADA,EAAKqwB,UAAY,IAAEC,MAAMtwB,EAASuwB,cAAe,UAC1C,IAAEjwB,IAAIN,EAASuwB,eAAiB,IAAI,SAACvyB,GAC1C,MAAO,CACL0G,KAAM,YAAE1G,EAAKtF,QACbnI,MAAOyN,EAAKtF,eAMd,YAAAoQ,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDuK,KAAI,SAACtC,GAAS,gDAG9B,YAAA+P,kBAAA,SAAkB,G,IAAErP,EAAK,QAAE3I,EAAM,SAC/B,GAAc,oBAAV2I,EAA6B,CAC/B,IAAM+J,EAAc,YAAkB1S,EAAQ,MAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,MAE9B,KACA,CAAE9D,OAAM,EAAEgB,OAAQ,wBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEM,IAAIN,EAASi0B,gBAAkB,IAAI,SAACj2B,GAC3C,MAAO,CAAE0G,KAAM1G,EAAKqlB,gBAAiB9yB,MAAOyN,EAAKqlB,uBAIvD,MAAO,IAEX,EAzDA,CAA0C,kB,42DCP1C,cAYE,WAAY/gB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,UACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,GACpB,EAAApB,mBAAqB,CACnB/C,SAAU,cAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,e,EA0DnB,OApE2C,OAgBnC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAI,wBAAcA,GACT,0BAAgBA,GAElB,kBAKb,YAAAsG,WAAA,WACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAChBG,KAAM,CAAE67B,QAAS,QAEnB,MACA,CAAEn9B,OAAQ,oBACViR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS2I,WAAa,IAAI,SAAC3K,GAC/B,MAAO,CACL0G,KAAM1G,EAAK4K,WACXrY,MAAOyN,EAAKtF,OACZmQ,YAAa7K,EAAK6K,iBAGtB,SAAC7K,GAAS,oBAAAA,EAAK6K,mBAKrB,YAAA4nB,SAAA,SAAS16B,GACP,IAAM0S,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CAAE67B,QAAS,QAEnBzrB,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS0wB,SAAW,IAAI,SAAC1yB,GAC7B,MAAO,CAAE0G,KAAM1G,EAAK2yB,SAAUpgC,MAAOyN,EAAK+hB,KAAM8Q,UAAW7yB,EAAK6yB,UAAW9Q,KAAM/hB,EAAK+hB,UAExF,SAAC/hB,GAAS,oBAAAA,EAAK6yB,iBAIvB,EApEA,CAA2C,kB,q2DCO3C,cAYE,WAAYvuB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,gCACpB,EAAA0B,kBAAoB,2BACpB,EAAApB,mBAAqB,qBACrB,EAAA1B,UAAY,YAEZ,EAAA0G,kBAAoB,CAClBrS,QAAS,UACTC,OAAQ,oBACRm5B,cAAe,e,EAuCnB,OAjDoD,OAe5C,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDuK,KAAI,SAACtC,GAAS,gDAK9B,YAAAsG,WAAA,WACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAChBG,KAAM,CAAE67B,QAAS,iBAEnB,MACA,CAAEn9B,OAAQ,oBACViR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS2I,WAAa,IAAI,SAAC3K,GAC/B,MAAO,CACL0G,KAAM1G,EAAK4K,WACXrY,MAAOyN,EAAKtF,OACZmQ,YAAa7K,EAAK6K,iBAGtB,SAAC7K,GAAS,oBAAAA,EAAK6K,mBAKrB,YAAA7B,iBAAA,SAAiB7B,G,MACf,aACG,qBAAmB/D,UAAW+D,EAC/B,GAEN,EAjDA,CAAoD,kB,q1DCTpD,cAYE,WAAY7C,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,sBACpB,EAAA0B,kBAAoB,sBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,mBAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,KACTC,OAAQ,yBACRm5B,cAAe,oB,EASnB,OAnB0C,OAelC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDuK,KAAI,SAACtC,GAAS,gDAEhC,EAnBA,CAA0C,kB,i4DCa1C,cA2BE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OA3BlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,wBACRm5B,cAAe,aAEjB,EAAAld,aAAe,eACf,EAAApQ,uBAAyB,yBACzB,EAAAuxB,eAAiB,CACfC,mBAAoB,CAClBt9B,QAAS,OACTC,OAAQ,qBACRm5B,cAAe,SACfmE,QAAS,mBAEXC,6BAA8B,CAC5Bx9B,QAAS,OACTC,OAAQ,+BACRm5B,cAAe,YACfmE,QAAS,W,EA4Ef,OApG0C,OA+BxC,YAAA/vB,WAAA,WACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,SAElB,OACA,CAAEnB,OAAQ,uBAAwBhB,OAAQ,iBAC1CiS,MAAK,SAAChI,GACN,OAAO,IAAEM,IAAIN,EAASu0B,YAAc,IAAI,SAACv2B,GACvC,MAAO,CACL0G,KAAM,YAAE1G,EAAKtF,QACbnI,MAAOyN,EAAKtF,OACZmQ,YAAa7K,EAAK6K,oBAMpB,YAAAC,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAO,0BAAgBA,gBAIvB,YAAA8yB,gBAAN,SAAsBtoB,G,qHAOT,OANHzS,EAAiCyS,EAA3B,OAAUgsB,EAAiBhsB,EAAd,OAAEtR,EAAYsR,EAAL,QAC9B,EAAqCnR,KAAK88B,eAAeK,GAAvD19B,EAAO,UAAEC,EAAM,SAAEm5B,EAAa,gBAEhCznB,EAAc,YAAkB1S,EAAQe,GAGnC,GAAM,aACf,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAM,MAGpBG,EACAg5B,I,OAEF,SAdW,SAcD,YAEN,YAAAprB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,oHAC7DzG,EAAe,CACnBob,WAAYlR,EAAS/J,KAAK8M,mBAAmB/C,UAC7CiI,MAAO,MAEiD,IAAtDrZ,OAAOkX,KAAK7P,KAAK88B,gBAAgB/2B,QAAQrG,GAAzC,MACS,GAAMM,KAAKy5B,gBAAgB,CAAE/6B,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OAS/D,OATMoR,EAAK,SACH,EAAYjR,KAAK88B,eAAep9B,GAAzB,QACT6G,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmB,IAC3C,CACLO,KAAM3U,EAAE,EAAKoU,mBAAmB,IAChC5T,MAAOR,EAAE,EAAKoU,mBAAmB,QAGrC,GAAM,IAAgBkN,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa,GAAU1K,I,OAChF,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EApGA,CAA0C,kB,wgBCb1C,cAWE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,gCACRm5B,cAAe,2B,EAKnB,OAd0C,OAc1C,EAdA,CAA0C,kB,q1DCA1C,cAYE,WAAY5tB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,yBAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,KACTC,OAAQ,+BACRm5B,cAAe,0B,EAUnB,OApB2C,OAgBnC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDuK,KAAI,SAACtC,GAAS,gDAEhC,EApBA,CAA2C,kB,q1DCM3C,cAUE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAVlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,kBACRm5B,cAAe,W,EAUnB,OAlB4C,OAcpC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDuK,KAAI,SAACtC,GAAS,gDAEhC,EAlBA,CAA4C,kB,oiECC5C,cAcE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAdlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,eAEjB,EAAAxtB,gBAAkB,CAChBuG,aAAc,mB,EAQlB,OApB0C,OAiBlC,YAAAlF,gBAAN,SAAsBpG,EAAYqG,G,mEAChC,SAAO,YAAMD,gBAAe,iBAAMpG,GAAU,CAAE5H,OAAQ,iBAAoBiO,WAE9E,EApBA,CAA0C,kB,42DCE1C,cAaE,WAAY1B,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAblD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,mCACpB,EAAA0B,kBAAoB,mCACpB,EAAA3C,uBAAyB,yBACzB,EAAAuB,mBAAqB,qBACrB,EAAA6O,aAAe,eAEf,EAAA7J,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,e,EA8BnB,OAzC0C,OAgBlC,YAAAuE,YAAN,SAAkBjsB,G,mHAGM,OAFdtR,EAAYsR,EAAL,QACP8J,EAAepb,EAAL,WACI,GAAM,IAAgB0N,YAAYvN,KAAKP,U,OAI7D,OAJM+N,EAAgB,SAChB6vB,EAC4F,QAAhG,MAAEt0B,UAAUyE,EAAcxH,MAAK,SAACW,GAAS,OAAAA,EAAK,EAAKmG,mBAAmB/C,YAA7B,aAAuD,QAAI,GAEtG,GADiCszB,EAAL,mBAGxB,YAAA5vB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,2GAKxD,OAJLzG,EAAe,CACnBob,WAAYlR,EACZiI,MAAO,KAEE,GAAMhS,KAAKo9B,YAAY,CAAE1+B,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OAQ3D,OARMoR,EAAK,SACL1K,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmBkX,QAC3C,CACL3W,KAAM3U,EAAE,EAAKoU,mBAAmBkX,QAChC9qB,MAAOR,EAAE,EAAKoU,mBAAmBkX,YAGrC,GAAM,IAAgBhK,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAaqI,OAAQ/S,I,OAC9E,OADA,SACA,GAAO1K,WAEX,EAzCA,CAA0C,kB,oiECR1C,cAWE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,yBACpB,EAAA0B,kBAAoB,yBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,wBACRm5B,cAAe,mB,EAQnB,OAjB0C,OAclC,YAAAnsB,gBAAN,SAAsBpG,EAAYqG,G,mEAChC,SAAO,YAAMD,gBAAe,iBAAMpG,GAAU,CAAE5H,OAAQ,iBAAoBiO,WAE9E,EAjBA,CAA0C,kB,i4DCa1C,cAeE,WAAY1B,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAflD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBACrB,EAAAvB,uBAAyB,yBAEzB,EAAAuG,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,aAGjB,EAAAld,aAAe,e,EA4FjB,OAzG0C,OAqBxC,YAAA1O,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAGxE,YAAAuY,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAO,0BAAgBA,gBAIvB,YAAA22B,iBAAN,SAAuBnsB,G,2GAKT,OAJJzS,EAAWyS,EAAL,OACRC,EAAc,YAAkB1S,EAAQsB,KAAKP,SAGvC,GAAM,aAChB,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,sCAGtB,GACA,4B,OAGF,OAfMiB,EAAM,SAeZ,GADaA,EAAJ,YAGL,YAAA48B,aAAN,SAAmBpsB,G,2GAKL,OAJJzS,EAAWyS,EAAL,OACRC,EAAc,YAAkB1S,EAAQsB,KAAKP,SAGvC,GAAM,aAChB,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,iBAGtB,GACA,a,OAGF,OAfMiB,EAAM,SAeZ,GADaA,EAAJ,GACCsI,KAAI,SAAClQ,G,MAAM,aAAI,EAAK+T,mBAAmB2S,SAAU1mB,EAAC,cAExD,YAAA0U,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,G,+GAErC,oCAAXrK,EAAA,MACS,GAAMM,KAAKs9B,iBAAiB,CAAE5+B,OAAM,EAAEqoB,WAAYhd,EAAS/J,KAAK8M,mBAAmB/C,a,OAQ9F,OARMkH,EAAK,SACL1K,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmBrE,MAC3C,CACL4E,KAAM3U,EAAE,EAAKoU,mBAAmBrE,MAChCvP,MAAOR,EAAE,EAAKoU,mBAAmBrE,UAGrC,GAAM,IAAgBuR,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAagE,MAAO1O,I,OAC7E,OADA,SACA,GAAO1K,G,aAEM,eAAX7G,EAAA,MACS,GAAMM,KAAKu9B,aAAa,CAAE7+B,OAAM,EAAEqoB,WAAYhd,EAAS/J,KAAK8M,mBAAmB/C,a,OAQ1F,OARMkH,EAAK,SACL1K,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmB2S,SAC3C,CACLpS,KAAM3U,EAAE,EAAKoU,mBAAmB2S,SAChCvmB,MAAOR,EAAE,EAAKoU,mBAAmB2S,aAGrC,GAAM,IAAgBzF,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa+D,MAAOzO,I,OAC7E,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EAzGA,CAA0C,kB,q1DCb1C,cA0BE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OA1BlD,EAAAuE,UAAY,SACZ,EAAAc,kBAAoB,sBACpB,EAAA0B,kBAAoB,sBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,aAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,aACf9mB,YAAa,CACXE,QAAS,SAACd,GASR,OARoBA,EAAL,UAEbA,EAAO0D,QAAU,IAEnB1D,EAAO0D,QAAQrM,KAAK,CAClBC,KAAM,eACNkM,OAAQ,CAAC,SAEJxD,K,EA2Bf,OAhD2C,OA8BnC,YAAAM,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDwQ,QAAO,SAACvI,GAAI,UAExB,OAAgC,QAAhC,EAAoB,QAApB,EAAe,QAAf,EAAAA,EAAKoJ,kBAAU,eAAG,UAAE,eAAEA,kBAAU,eAAEtD,SAAS,mBAcjD,EAhDA,CAA2C,kB,42DCM3C,cAUE,WAAYxB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAVlD,EAAAuE,UAAY,iBACZ,EAAAc,kBAAoB,8BACpB,EAAA0B,kBAAoB,8BACpB,EAAApB,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,aACTC,OAAQ,oBACRm5B,cAAe,e,EAuDnB,OA/DkD,OAchD,YAAA5rB,WAAA,WACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,OAChBG,KAAM,CAAE67B,QAAS,eAEnB,MACA,CAAEn9B,OAAQ,oBACViR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS2I,WAAa,IAAI,SAAC3K,GAC/B,MAAO,CACL0G,KAAM1G,EAAK4K,WACXrY,MAAOyN,EAAKtF,OACZmQ,YAAa7K,EAAK6K,iBAGtB,SAAC7K,GAAS,oBAAAA,EAAK6K,mBAKrB,YAAA4nB,SAAA,SAAS16B,GACP,IAAM0S,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CAAE67B,QAAS,eAEnBzrB,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS0wB,SAAW,IAAI,SAAC1yB,GAC7B,MAAO,CAAE0G,KAAM1G,EAAK2yB,SAAUpgC,MAAOyN,EAAK+hB,KAAM8Q,UAAW7yB,EAAK6yB,UAAW9Q,KAAM/hB,EAAK+hB,UAExF,SAAC/hB,GAAS,oBAAAA,EAAK6yB,iBAKf,YAAA/nB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QACPkmB,EAAOlwB,KAAI,SAACtC,GACV,OAAO,0BAAgBA,gBAI/B,EA/DA,CAAkD,kB,8iECAlD,cAaE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAblD,EAAAuE,UAAY,aACZ,EAAAc,kBAAoB,2BACpB,EAAAgxB,iBAAmB,CAAC,eAAgB,kBACpC,EAAA1wB,mBAAqB,qBACrB,EAAAvB,uBAAyB,yBAEzB,EAAAuG,kBAAoB,CAClBrS,QAAS,UACTC,OAAQ,sBACRm5B,cAAe,mB,EAoEnB,OA9E+C,OAgB7C,YAAA1qB,qBAAA,SAAqB4C,EAAcvH,GACjC,OAAIA,EAAO6Y,MAAwB,KAAhB7Y,EAAO6Y,KACjB,CAAE7Y,OAAQ,QAEfA,EAAO8nB,SAA8B,KAAnB9nB,EAAO8nB,QACpB,CAAE9nB,OAAQ,WAEZ,4BAET,YAAA4xB,sBAAA,SAAsBp6B,EAA2BoL,EAAgCR,EAAeyvB,GAAhG,WACE,OAAIjvB,EACKA,EAAWrE,QAAQ,gBAAgB,SAACuE,EAAGC,GAC5C,OAAKA,GAAM8uB,EAAU5uB,SAASF,GAGvB,EAAKP,cAAchL,EAAMuL,GAFvB,MAKNvM,KAAKgM,cAAchL,EAAM4K,IAE5B,YAAA6B,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,wHAC3DsG,EAAYtG,EAAL,QACA,qBAAX5G,EAAA,MACY,GAAMM,KAAK6R,aAAanT,EAAQ,CAAE8hB,YAAa,CAACzW,EAAS/J,KAAK8M,mBAAmB/C,c,OAQ/F,OAROpJ,EAAO,SAAJ,GACJ,EAAiB2F,EAAL,aAClB,EAAetG,KAAKw9B,iBAAiB/wB,SAAS,GAAgB,EAAezM,KAAK8M,mBAAmBwkB,QAC/F/qB,EAAS,IAAE0C,IAAI,IAAEnQ,IAAI6H,EAAK,cAAe,KAAK,SAACgG,GACnD,IAAM82B,EAAe,EAAKrC,sBAAsBz0B,EAAMiG,EAAS,EAAc,EAAK4wB,kBAElF,OADA72B,EAAK2C,oBAAsBm0B,GAAgB92B,EAAK,EAAKmG,mBAAmBwkB,SACjE,CAAEjkB,KAAM1G,EAAK+2B,aAAcxkC,MAAOyN,EAAK+2B,iBAEhD,GAAM,IAAgB1jB,gBACpBha,KAAKP,QACLO,KAAKuL,uBAAuBgmB,QAAQljB,iBACpC,IAAEvV,IAAI6H,EAAK,cAAe,M,OAE5B,OALA,SAKA,GAAO4F,G,aAEM,yBAAX7G,EAAA,MACY,GAAMM,KAAK6R,aAAanT,EAAQ,CAAE8hB,YAAa,CAACzW,EAAS/J,KAAK8M,mBAAmB/C,c,OAa/F,OAbOpJ,EAAO,SAAJ,GACFg9B,EAAiBr3B,EAAL,aACd,EAAgB,IAAEN,KAAK,IAAElN,IAAI6H,EAAK,cAAe,IAAK,CAAE+8B,aAAc19B,KAAK+L,YAAY4xB,KACzFp3B,EAAS,IAAEq3B,MAAM,EAAcC,cAAc,SAAC/zB,GAChD,IAAMg0B,EAAS,UAAG,EAAcJ,aAAY,sBAAc5zB,GAC1D,MAAO,CAAEuD,KAAMywB,EAAQ5kC,MAAO4kC,MAE5B,IACFv3B,EAAS,EAAH,CACJ,CAAE8G,KAAM,UAAG,EAAcqwB,aAAY,iBAAiBxkC,MAAO,UAAG,EAAcwkC,aAAY,mBACvFn3B,GAAM,IAGb,GAAM,IAAgByT,gBACpBha,KAAKP,QACLO,KAAKuL,uBAAuBimB,KAAKnjB,iBACjC9H,EAAO0C,KAAI,SAACtC,GAAS,MAAC,CAAEyZ,OAAQzZ,EAAKzN,MAAOoQ,oBAAqB3C,EAA5C,Y,OAEvB,OALA,SAKA,GAAOJ,G,OAGT,SAAO,YAEX,EA9EA,CAA+C,kB,yjECE/C,yE,OACE,EAAA2H,kBAA4C,oBAC5C,EAAA1B,kBAA8B,oBAC9B,EAAAM,mBAAqB,qBACrB,EAAAxB,YAAc,GACd,EAAAqQ,aAAe,eACf,EAAApQ,uBAAyB,yBACzB,EAAAuG,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,oBACRm5B,cAAe,cACf9mB,YAAa,CACXE,QAAS,SAACd,GAAW,cAChBA,GAAM,CACT4U,gBAAiB5U,EAAO4U,iBAAmB,gBAC3C1I,UAAWlM,EAAOkM,YAHC,KAKrB1U,SAAU,SAAC3H,GAAgB,OAAAA,EAAKiI,KAAI,SAAC,GAA+B,MAAC,CAAEopB,UAAvB,YAAkCoG,YAArB,qB,EA4CnE,OA7D8C,OAqBtC,YAAAsF,cAAN,SAAoBr/B,EAAgByS,G,uGAIvB,OAHLC,EAAc,YAAkB1S,EAAQ,OAGnC,GAAM,aACf,SAACsC,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,2BAErB,OACIyR,GAAM,CAAEiD,cAAc,IAC3B,a,OAIF,SAhBW,SAgBD,YAGN,YAAA3G,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,G,yGAE5CrK,G,IACD,mC,mBACa,SAAMM,KAAK+9B,cAAcr/B,EAAQ,CAAEuc,WAAYlR,EAASsoB,UAAW2L,SAAU,S,OAK7F,OALMC,EAAU,SAChB13B,EAAS03B,EAAQh1B,KAAI,SAACtC,GAEpB,OADAA,EAAK2C,oBAAsB3C,EAAK,qBAAmB0b,MAC5C,CAAEhV,KAAM1G,EAAK,qBAAmB0b,MAAOnpB,MAAOyN,EAAK,qBAAmB0b,UAE/E,GAAM,IAAgBrI,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa0G,KAAM4b,I,OAE5E,OAFA,SAEA,GAAO13B,G,OAGP,SAAO,YAGf,EA7DA,CAA8C,kB,wgBCR9C,cAYE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,kBACZ,EAAAc,kBAAoB,8BACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,gBAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,sBACRm5B,cAAe,iB,EAKnB,OAfkD,OAelD,EAfA,CAAkD,kB,oiECAlD,cAYE,WAAY5tB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,aACZ,EAAAc,kBAAoB,yBACpB,EAAA0B,kBAAoB,yBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,UAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,kBACRm5B,cAAe,W,EASnB,OAnB6C,OAgBrC,YAAAnsB,gBAAN,SAAsBpG,EAAYqG,G,mEAChC,SAAO,YAAMD,gBAAe,iBAAMpG,GAAU,CAAE5H,OAAQ,iBAAoBiO,WAE9E,EAnBA,CAA6C,kB,2jECC7C,cAYE,WAAY1B,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAZlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,GACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,KACTC,OAAQ,KACRm5B,cAAe,M,EA+InB,OAxJ0C,OAgBxC,YAAAhnB,aAAA,SAAanT,EAAyByS,QAAzB,IAAAzS,MAAA,qBAAyB,IAAAyS,MAAA,IACpCA,EAAS,EAAH,CAAKukB,OAAQ,EAAGD,MAAO,IAAOtkB,GACpC,IAAMC,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKk+B,YACV,CACEr9B,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAMmQ,GAERC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kCAClBiR,MAAK,SAAChI,GACN,OAAOA,EAAS3H,MAAQ,OAQ5B,YAAAkM,qBAAA,SAAqBxO,EAAQ4H,GAA7B,WACMC,EAAgB,GACd4K,EAAS,EAAH,CAAKrG,OAAQ,EAAGkH,MAAO,IAAO1L,GACpC8K,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKk+B,YACV,CACEr9B,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAMmQ,GAERC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kCAClBiR,MAAK,SAAChI,GACNpC,EAASoC,EAAS3H,MAAQ,GAC1B,IAAMyJ,EAAQ9B,EAASw1B,YAAc,EACrC,GAAI53B,EAAO6C,QAAUqB,EACnB,OAAOlE,EAEP,IAAM+L,EAAQ,YAAY7H,EAAO,IAC3B,EAAkB,GAIxB,OAHA,IAAE/D,QAAQ4L,GAAO,SAAC3L,GAChB,EAAS6B,KAAK,EAAKqJ,aAAanT,EAAQiI,OAEnC+G,QAAQgD,IAAI,GAChBC,MAAK,SAACC,GAIL,OAHA,IAAElK,QAAQkK,GAAW,SAACjK,GACpBJ,EAAS,IAAEkJ,OAAOlJ,EAAQI,MAErBJ,KALJ,OAOE,SAACyB,GACN,OAAOzB,SAMjB,YAAA63B,SAAA,SAAS1/B,EAAQyS,QAAA,IAAAA,MAAA,KACfA,EAAS,EAAH,CAAKrG,OAAQ,EAAGkH,MAAO,IAAOb,IAE7BrG,OAASpD,OAAOyJ,EAAOrG,QAC9BqG,EAAOa,MAAQtK,OAAOyJ,EAAOa,OAC7B,IAAMZ,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAMmQ,GAERC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,iBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEM,IAAIN,EAAS01B,QAAU,IAAI,SAAC13B,GAAS,MAAC,CAAE0G,KAAM1G,EAAK4W,MAAOrkB,MAAOyN,EAA5B,cAIlD,YAAA23B,UAAA,SAAU5/B,GAAV,WACM6H,EAAgB,GACd4K,EAAc,CAAErG,OAAQ,EAAGkH,MAAO,KAExCb,EAAOrG,OAASpD,OAAOyJ,EAAOrG,QAC9BqG,EAAOa,MAAQtK,OAAOyJ,EAAOa,OAC7B,IAAMZ,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAMmQ,GAERC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,iBAClBiR,MAAK,SAAChI,GACNpC,EAAS,IAAE0C,IAAIN,EAAS01B,QAAU,IAAI,SAAC13B,GAAS,MAAC,CAAE0G,KAAM1G,EAAK4W,MAAOrkB,MAAOyN,EAA5B,UAChD,IAAM8D,EAAQ9B,EAASwJ,YAAc,EACrC,GAAI5L,EAAO6C,QAAUqB,EACnB,OAAOlE,EAEP,IAAM+L,EAAQ,YAAY7H,EAAO,KAC3B,EAAkB,GAIxB,OAHA,IAAE/D,QAAQ4L,GAAO,SAAC3L,GAChB,EAAS6B,KAAK,EAAK41B,SAAS1/B,EAAQiI,OAE/B+G,QAAQgD,IAAI,GAChBC,MAAK,SAACC,GAIL,OAHA,IAAElK,QAAQkK,GAAW,SAACjK,GACpBJ,EAAS,IAAEkJ,OAAOlJ,EAAQI,MAErBJ,KALJ,OAOE,SAACyB,GACN,OAAOzB,SAYX,YAAA23B,YAAN,SAAkB3+B,EAASE,EAASyK,G,YAAA,IAAAA,MAAA,I,mFACxB,SAAM,YACd3K,EACAE,EACAyK,EACAlK,KAAKR,SACLQ,KAAKiL,iBAAiBjI,GACtBhD,KAAKF,a,OAEP,OARAP,EAAU,SAQV,GAAOS,KAAKF,WACTc,kBAAkBrB,GAClBoR,MAAK,SAAChI,GACL,OAAO,IAAE7P,IAAI6P,EAAU,OAAQ,OAH5B,OAKE,SAACX,GACN,MAAMA,cAGd,EAxJA,CAA0C,kB,wgBCK1C,cAcE,WAAYiD,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAdlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,4BACpB,EAAA0B,kBAAoB,2BACpB,EAAApB,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,WACTC,OAAQ,sBACRm5B,cAAe,iBAGjB,EAAAxtB,gBAAkB,CAChBuG,aAAc,mB,EAKlB,OAjB2C,OAiB3C,EAjBA,CAA2C,kB,41DCN3C,cAqBE,WAAY3G,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OArBlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,kBACRm5B,cAAe,WACf9mB,YAAa,I,EAwBjB,OAlC4C,OAyBpC,YAAAN,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDwQ,QACZ,SAACvI,GACC,OAAmC,IAAnC,cAAIA,EAAM,sBACuC,IAAjD,cAAIA,EAAM,oCACmC,cAA7C,cAAIA,EAAM,2CAGlB,EAlCA,CAA4C,kB,oiECA5C,cAeE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAflD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,yBACpB,EAAA0B,kBAAoB,yBACpB,EAAApB,mBAAqB,CACnB/C,SAAU,cAEZ,EAAA+H,kBAAoB,CAClBrS,QAAS,QACTC,OAAQ,oBACRm5B,cAAe,cACf9mB,YAAa,CACXE,QAAS,SAACd,GAAW,cAAMA,GAAM,CAAEotB,eAAd,U,EAW3B,OAvB6C,OAmBrC,YAAA9sB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDwQ,QAAO,SAACvI,GAAS,8CAEnC,EAvBA,CAA6C,kB,kkECQ7C,cAcE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAdlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,4BACpB,EAAA0B,kBAAoB,4BACpB,EAAApB,mBAAqB,qBACrB,EAAAxB,YAAc,CAAC,4BAA0B2W,QAAS,4BAA0BD,SAC5E,EAAAlQ,kBAAoB,CAClBrS,QAAS,QACTC,OAAQ,oBACRm5B,cAAe,cACf9mB,YAAa,CACXE,QAAS,SAACd,GAAW,cAAMA,GAAM,CAAEotB,eAAd,U,EAyC3B,OApD6C,OAkBrC,YAAAC,oBAAN,SAA0BrtB,G,2GAIZ,OAHJzS,EAAuByS,EAAjB,OAAE4V,EAAe5V,EAAL,WACpBC,EAAc,YAAkB1S,EAAQ,SAElC,GAAM,aAChB,SAACsC,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,+BAGtB,CACEub,WAAY8L,GAEd,a,OAGF,SAjBY,kBAmBR,YAAAtZ,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,0GACpD,6BAAX5G,EAAA,MACS,GAAMM,KAAKw+B,oBAAoB,CAAE9/B,OAAM,EAAEqoB,WAAYhd,EAAS/J,KAAK8M,mBAAmB/C,a,OAGjG,OAHMkH,EAAK,SACHwtB,EAAan4B,EAAL,SAEhB,IAA0B,KADpBo4B,EAAgB,WAAS34B,QAAQ04B,IAEnC,GACA,IAAEx1B,IAAIgI,EAAGytB,IAAgB,SAAC/3B,GAAS,MAAC,CAAE0G,KAAM1G,EAAKyZ,OAAQlnB,MAAOyN,EAA7B,Y,OAEzC,SAAO,YAEX,EApDA,CAA6C,kB,02DCE7C,cAUE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OANlD,EAAA2F,mBAAqB,qBACrB,EAAAvB,uBAAyB,yBACzB,EAAAoQ,aAAe,eAMb,EAAKjQ,UAAY,aACjB,EAAKc,kBAAoB,uBACzB,EAAK0B,kBAAoB,uBACzB,EAAK4D,kBAAoB,CACvBrS,QAAS,MACTC,OAAQ,gBACRm5B,cAAe,a,EAiDrB,OApE2C,OAuBzC,YAAA5rB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAGxE,YAAAuY,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDwQ,QACZ,SAACvI,G,gBAEC,OAAgC,QAAhC,EAAoB,QAApB,EAAe,QAAf,EAAAA,EAAKoJ,kBAAU,eAAG,UAAE,eAAEA,kBAAU,eAAEtD,SAAS,mBACX,QAAhC,EAAoB,QAApB,EAAe,QAAf,EAAA9F,EAAKoJ,kBAAU,eAAG,UAAE,eAAEA,kBAAU,eAAEtD,SAAS,gBAC1C9F,EAAK8C,WAAWgc,WAAW,oBAIlC,YAAAkZ,YAAA,SAAYjgC,EAAQyS,GAClB,IAAMC,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAMmQ,GAERC,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,0BAClBiR,MAAK,SAAChI,GACN,OAAOA,EAASi2B,aAId,YAAAnxB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,G,+GAErC,0BAAXrK,EAAA,MACS,GAAMM,KAAK2+B,YAAYjgC,EAAQ,CAAEmgC,aAAc90B,EAAS/J,KAAK8M,mBAAmB/C,a,OAQ3F,OARMkH,EAAK,SACL1K,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmBlN,SAC3C,CACLyN,KAAM3U,EAAE,EAAKoU,mBAAmBlN,SAChC1G,MAAOR,EAAE,EAAKoU,mBAAmBlN,aAGrC,GAAM,IAAgBoa,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa/b,QAASqR,I,OAC/E,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EApEA,CAA2C,kB,m3DCD3C,cAWE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,6BACpB,EAAA0B,kBAAoB,6BACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,YACTC,OAAQ,sBACRm5B,cAAe,e,EAiCnB,OA1C0C,OAelC,YAAApnB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QAAQkmB,EAAOlwB,KAAI,SAACtC,GAAS,iDAExC,YAAAsG,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAE9E,YAAAwd,kBAAA,SAAkB,G,IAAErP,EAAK,QAAE3I,EAAM,SAC/B,GAAc,SAAV2I,EAAkB,CACpB,IAAM+J,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,MAE9B4O,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS0wB,SAAW,IAAI,SAAC1yB,GAC7B,MAAO,CAAE0G,KAAM1G,EAAK2yB,SAAUpgC,MAAOyN,EAAK+hB,KAAM8Q,UAAW7yB,EAAK6yB,UAAW9Q,KAAM/hB,EAAK+hB,UAExF,SAAC/hB,GAAS,oBAAAA,EAAK6yB,gBAIrB,MAAO,IAEX,EA1CA,CAA0C,kB,+hBCR1C,cAWE,WAAYvuB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,2BACpB,EAAA0B,kBAAoB,2BACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,YACTC,OAAQ,iBACRm5B,cAAe,c,EAsBnB,OA/B0C,OAexC,YAAA5rB,WAAA,WACE,OAAOjN,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAM,cAElB,YACA,CAAEnB,OAAQ,kBAAmBhB,OAAQ,iBACrCiS,MAAK,SAAChI,GACN,OAAO,IAAEM,IAAIN,EAASm2B,aAAe,IAAI,SAACn4B,GACxC,MAAO,CACL0G,KAAM,YAAE1G,EAAK4K,YACbrY,MAAOyN,EAAK4K,mBAKtB,EA/BA,CAA0C,kB,i4DCY1C,cA2BE,WAAYtG,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OA3BlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBACrB,EAAAvB,uBAAyB,yBACzB,EAAAoQ,aAAe,eAEf,EAAA7J,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,mBACRm5B,cAAe,cAEjB,EAAAiE,eAAiB,CACfiC,eAAgB,CACdt/B,QAAS,OACTC,OAAQ,iBACRm5B,cAAe,YACfmE,QAAS,aAEXgC,qBAAsB,CACpBv/B,QAAS,OACTC,OAAQ,uBACRm5B,cAAe,iBACfmE,QAAS,kB,EAiEf,OAzF4C,OAiC1C,YAAA/vB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAGxE,YAAAuY,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QAAQkmB,EAAOlwB,KAAI,SAACtC,GAAS,iDAGlC,YAAA8yB,gBAAN,SAAsBtoB,G,qHAOT,OANHzS,EAAiCyS,EAA3B,OAAUgsB,EAAiBhsB,EAAd,OAAEtR,EAAYsR,EAAL,QAC9B,EAAqCnR,KAAK88B,eAAeK,GAAvD19B,EAAO,UAAEC,EAAM,SAAEm5B,EAAa,gBAEhCznB,EAAc,YAAkB1S,EAAQe,GAGnC,GAAM,aACf,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAM,MAGpBG,EACAg5B,I,OAGF,SAfW,SAeD,YAEN,YAAAprB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,oHAC7DzG,EAAe,CACnBmS,MAAO,IACPqgB,UAAWtoB,EAAS/J,KAAK8M,mBAAmB/C,YAEY,IAAtDpR,OAAOkX,KAAK7P,KAAK88B,gBAAgB/2B,QAAQrG,GAAzC,OACa,mBAAXA,IACFG,EAAQqf,cAAgBlf,KAAK+L,YAAYzF,EAAK,gBAErC,GAAMtG,KAAKy5B,gBAAgB,CAAE/6B,OAAM,EAAEgB,OAAM,EAAEG,QAAO,M,OAS/D,OATMoR,EAAK,SACH,EAAYjR,KAAK88B,eAAep9B,GAAzB,QACT6G,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmB,IAC3C,CACLO,KAAM3U,EAAE,EAAKoU,mBAAmB,IAChC5T,MAAOR,EAAE,EAAKoU,mBAAmB,QAGrC,GAAM,IAAgBkN,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa,GAAU1K,I,OAChF,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EAzFA,CAA4C,kB,i3DCD5C,cAqBE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OArBlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,gCACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBACrB,EAAAvB,uBAAyB,yBACzB,EAAAoQ,aAAe,eAEf,EAAA7J,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,+BACRm5B,cAAe,aAEjB,EAAAiE,eAAiB,CACfmC,yBAA0B,CACxBx/B,QAAS,OACTC,OAAQ,2BACRm5B,cAAe,WACfmE,QAAS,S,EAsDf,OAxE4C,OAyB1C,YAAA/vB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAGxE,YAAAugC,gBAAN,SAAsBtoB,G,qHAOT,OANHzS,EAAiCyS,EAA3B,OAAUgsB,EAAiBhsB,EAAd,OAAEtR,EAAYsR,EAAL,QAC9B,EAAqCnR,KAAK88B,eAAeK,GAAvD19B,EAAO,UAAEC,EAAM,SAAEm5B,EAAa,gBAEhCznB,EAAc,YAAkB1S,EAAQe,GAGnC,GAAM,aACf,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAM,MAGpBG,EACAg5B,I,OAEF,SAdW,SAcD,YAEN,YAAAprB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,oHAC7DzG,EAAe,CACnBmS,MAAO,IACPiJ,WAAYlR,EAAS/J,KAAK8M,mBAAmB/C,YAEW,IAAtDpR,OAAOkX,KAAK7P,KAAK88B,gBAAgB/2B,QAAQrG,GAAzC,MACS,GAAMM,KAAKy5B,gBAAgB,CAAE/6B,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OAS/D,OATMoR,EAAK,SACH,EAAYjR,KAAK88B,eAAep9B,GAAzB,QACT6G,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmB,IAC3C,CACLO,KAAM3U,EAAE,EAAKoU,mBAAmB,IAChC5T,MAAOR,EAAE,EAAKoU,mBAAmB,QAGrC,GAAM,IAAgBkN,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa,GAAU1K,I,OAChF,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EAxEA,CAA4C,kB,glECA5C,cAmCE,WAAY0E,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAnClD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,gCACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBACrB,EAAAvB,uBAAyB,yBACzB,EAAAoQ,aAAe,eAEf,EAAA7J,kBAAoB,CAClBrS,QAAS,OACTC,OAAQ,2BACRm5B,cAAe,cACf9mB,YAAa,CACXpJ,SAAU,SAACpC,GACT,WAAE0C,IAAI1C,GAAQ,SAACI,GAAS,cACnBA,GAAI,CACP0rB,UAAW,IAAEv5B,IAAI6N,EAAM,iBAAkB,IACzC8xB,YAAa,IAAE3/B,IAAI6N,EAAM,mBAHH,YAO9B,EAAAm2B,eAAiB,CACfoC,2BAA4B,CAC1Bz/B,QAAS,OACTC,OAAQ,6BACRm5B,cAAe,aACfmE,QAAS,aAEXmC,uBAAwB,CACtB1/B,QAAS,OACTC,OAAQ,yBACRm5B,cAAe,SACfmE,QAAS,U,EA8Df,OA9F4C,OAuCpC,YAAAvrB,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,mFACA,SAAM,YAAM+S,WAAU,UAAC/S,I,OACtC,SADe,SACDwQ,QAAO,SAACvI,GAAI,UAAK,QAAiC,QAAhC,EAAoB,QAApB,EAAe,QAAf,EAAAA,EAAKoJ,kBAAU,eAAG,UAAE,eAAEA,kBAAU,eAAEtD,SAAS,2BAG7E,YAAAQ,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAGxE,YAAAugC,gBAAN,SAAsBtoB,G,qHAOT,OANHzS,EAAiCyS,EAA3B,OAAUgsB,EAAiBhsB,EAAd,OAAEtR,EAAYsR,EAAL,QAC9B,EAAqCnR,KAAK88B,eAAeK,GAAvD19B,EAAO,UAAEC,EAAM,SAAEm5B,EAAa,gBAEhCznB,EAAc,YAAkB1S,EAAQe,GAGnC,GAAM,aACf,SAACuB,GACC,OAAO,EAAKqQ,UACV,CACExQ,IAAK,EAAKA,IAAMuQ,EAAY5O,KAC5BxB,KAAI,GAENoQ,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAM,MAGpBG,EACAg5B,I,OAEF,SAdW,SAcD,YAEN,YAAAprB,gBAAN,SAAsB/N,EAAgBhB,EAAgBqL,EAAezD,G,oHAC7DzG,EAAe,CACnBmS,MAAO,IACPqgB,UAAWtoB,EAAS/J,KAAK8M,mBAAmB/C,YAEY,IAAtDpR,OAAOkX,KAAK7P,KAAK88B,gBAAgB/2B,QAAQrG,GAAzC,OACa,2BAAXA,IACFG,EAAQkjB,YAAc/iB,KAAK+L,YAAYzF,EAAK,mBAEnC,GAAMtG,KAAKy5B,gBAAgB,CAAE/6B,OAAM,EAAEgB,OAAM,EAAEG,QAAO,M,OAS/D,OATMoR,EAAK,SACH,EAAYjR,KAAK88B,eAAep9B,GAAzB,QACT6G,EAAS0K,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,EAAKoU,mBAAmB,IAC3C,CACLO,KAAM3U,EAAE,EAAKoU,mBAAmB,IAChC5T,MAAOR,EAAE,EAAKoU,mBAAmB,QAGrC,GAAM,IAAgBkN,gBAAgBha,KAAKP,QAASO,KAAK2b,aAAa,GAAU1K,I,OAChF,OADA,SACA,GAAO1K,G,OAET,SAAO,YAEX,EA9FA,CAA4C,kB,utBCXtC64B,EAAkB,SAACC,GACvB,OAAI,kBAAQA,GACH,GAEL,kBAAQA,GACHA,EAEL,mBAASA,GACJ,gBAAMA,EAAU,KAAKp2B,KAAI,SAACtC,GAAS,4BAErC,IAGT,cAaE,WAAYsE,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAblD,EAAAqF,kBAAoB,CAAC,YAAa,eAClC,EAAAM,mBAAqB,CACnB/C,SAAU,aAEZ,EAAAmE,kBAAoB,CAClBoxB,wBAAyB,aAE3B,EAAAxtB,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,mBACRm5B,cAAe,Y,EAgEnB,OA3E2C,OAiBzC,YAAApoB,eAAA,SAAeU,EAAazS,EAAakK,EAAgBY,EAAajK,GAAtE,WACQ6R,EAAc,YAAkB1S,EAAQ,WACxCmK,EAAY,YAAiBW,EAAOX,WACpCyvB,EAAa,iBACjB9uB,EAAO8uB,YACP,SAAC/oB,EAAM5I,GACL,OAAI,kBAAQA,EAAK44B,MAAQ,kBAAQ54B,EAAK64B,WAAa,kBAAQ74B,EAAK2B,OACvDiH,EAET,OACK,iBAAOA,GAAM,SAACvI,GAAM,OAAAA,EAAEu4B,MAAQ54B,EAAV,QAAmB,IAC1C,CACE44B,IAAK,YAAgB,EAAKp4B,YAAa5H,EAAQ6H,WAAYT,EAAK44B,KAAK,GACrEC,SAAU,YAAgB,EAAKr4B,YAAa5H,EAAQ6H,WAAYT,EAAK64B,UAAU,GAC/El3B,MAAO82B,EAAgB,YAAgB,EAAKj4B,YAAa5H,EAAQ6H,WAAYT,EAAK2B,OAAO,OAE3F,KAEJ,CAAC,CAAEi3B,IAAK,0BAA2BC,SAAU,IAAKl3B,MAAOM,EAAUK,KAAI,SAACtC,GAAS,OAAAA,EAAI,gBAGvF,OAAO3G,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CACJsP,OAAQa,EAAOb,OACfmvB,YAAa,CAACtuB,EAAO1H,YACrBi2B,OAAQ,UACRh0B,UAAW,UACX0E,QAASe,EAAOf,QAChBJ,UAAWmB,EAAOnB,UAClB2vB,WAAYrH,EACZsH,SAAUR,EAAgB,YAAgBp/B,KAAKmH,YAAa5H,EAAQ6H,WAAYoC,EAAO+uB,UAAU,MAGrGnnB,EAAY3R,QACZ,CAAEC,OAAQ,wBAAyBhB,OAAM,IACzCiS,MAAK,SAAChI,GACN,OAAO,kBACL,cAAIA,EAASk3B,MAAM,SAAC7+B,GAClB,OAAO,cAAIA,EAAK8+B,QAAQ,SAACC,GACvB,IAAMC,EAAgB,iBAAOD,EAAMhwB,WAAY,CAAC,SAC1CkwB,EAAkB,OACnBD,EAAcz2B,OAAO,oBAAUy2B,EAAe,CAAEv3B,KAAM,4BAA8B,IAAE,GACtFu3B,GAAa,GAEf/2B,KAAI,SAACshB,GAAc,OAAAA,EAAA,SACnBre,KAAK,OACFg0B,EAAkBr3B,EAAY,EAAI,WAAIW,EAAOX,WAAc,GACjE,MAAO,CACLW,OAAQ,UAAGxI,EAAKyI,WAAU,cAAMw2B,GAAe,OAAGC,GAClDx2B,WAAY,cAAIq2B,EAAMprB,QAAQ,SAACzb,GAAU,OAACA,EAAMoP,MAAyB,IAAlBpP,EAAMoI,UAApB,kBAOvD,EA3EA,CAA2C,kB,wgBCd3C,cAUE,WAAY2J,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAVlD,EAAAuE,UAAY,UACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,uBACRm5B,cAAe,W,EAKnB,OAb2C,OAa3C,EAbA,CAA2C,kB,m3DCU3C,cAWE,WAAY5tB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,wBACRm5B,cAAe,mB,EAsCnB,OA/C0C,OAexC,YAAA5rB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAExE,YAAAinC,cAAN,SAAoBzhC,G,oGAEoB,OADhC0S,EAAc,YAAkB1S,EAAQ,WACR,GAAMsB,KAAKqR,UAC/C,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CACJ0K,UAAW,kBAAe,SAG9B0F,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,yB,OAEmB,OAVpB0gC,EAAmB,SAAL,UAUM,GAAMpgC,KAAKqR,UAChD,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,KAC5BxB,KAAM,CACJ0K,UAAW,kBAAe,UAG9B0F,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,yB,OAGpB,OAXmB2gC,EAAoB,SAAL,UAWlC,GADY1nC,OAAOkR,OAAO,IAAEovB,MAAM,IAAExpB,OAAO4wB,EAAiBD,GAAiB,eAClEn3B,KAAI,SAAC9P,GAAM,gDAElB,YAAAsY,WAAN,SAAiB/S,G,YAAA,IAAAA,MAAA,gB,yFACA,SAAMsB,KAAKmgC,cAAczhC,I,OACxC,OADMy6B,EAAS,SACf,GAAO,IAAElmB,QAAQkmB,YAErB,EA/CA,CAA0C,kB,wgBCV1C,cAWE,WAAYluB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,eACRm5B,cAAe,U,EAQnB,OAjB0C,OAcxC,YAAAniB,kBAAA,SAAkB,GAAO,QACvB,OAAO,YAAMzJ,WAAU,YAE3B,EAjBA,CAA0C,kB,wgBCK1C,cAqBE,WAAYhC,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OArBlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,gCACpB,EAAA0B,kBAAoB,0BACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,qBACRm5B,cAAe,eACf9mB,YAAa,IAQf,EAAA1G,gBAAkB,CAChBuG,aAAc,mB,EAKlB,OAxB0C,OAwB1C,EAxBA,CAA0C,kB,+hBCJ1C,cAWE,WAAY3G,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,yBACpB,EAAA0B,kBAAoB,yBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,sBACRm5B,cAAe,iB,EA0BnB,OAnC0C,OAexC,YAAAniB,kBAAA,SAAkB,G,IAAErP,EAAK,QAAE3I,EAAM,SAC/B,GAAc,SAAV2I,EAAkB,CACpB,IAAM+J,EAAc,YAAkB1S,EAAQ,OAC9C,OAAOsB,KAAKqR,UACV,CACExQ,IAAKb,KAAKa,IAAMuQ,EAAY5O,MAE9B4O,EAAY3R,QACZ,CAAEf,OAAM,EAAEgB,OAAQ,kBAClBiR,MAAK,SAAChI,GACN,OAAO,IAAEuG,OACP,IAAEjG,IAAIN,EAAS0wB,SAAW,IAAI,SAAC1yB,GAC7B,MAAO,CAAE0G,KAAM1G,EAAK2yB,SAAUpgC,MAAOyN,EAAK+hB,KAAM8Q,UAAW7yB,EAAK6yB,UAAW9Q,KAAM/hB,EAAK+hB,UAExF,SAAC/hB,GAAS,oBAAAA,EAAK6yB,gBAIrB,MAAO,IAEX,EAnCA,CAA0C,kB,wgBCF1C,cAWE,WAAYvuB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAXlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,wBACpB,EAAA0B,kBAAoB,wBACpB,EAAApB,mBAAqB,qBAErB,EAAAgF,kBAAoB,CAClBrS,QAAS,MACTC,OAAQ,yBACRm5B,cAAe,oB,EAKnB,OAd0C,OAc1C,EAdA,CAA0C,kB,2iECQ1C,cAUE,WAAY5tB,EAAkBnL,EAAYqH,GAA1C,MACE,YAAM8D,EAAkBnL,EAAYqH,IAAY,K,OAVlD,EAAAuE,UAAY,YACZ,EAAAc,kBAAoB,uBACpB,EAAA0B,kBAAoB,uBACpB,EAAApB,mBAAqB,qBACrB,EAAAgF,kBAAoB,CAElBpS,OAAQ,kBACRm5B,cAAe,W,EAWnB,OAnB2C,OAazC,YAAA5rB,WAAA,WACE,OAAOS,QAAQC,QAAQ,kBAAgB1E,KAAI,SAAC,G,IAAE/P,EAAK,QAAO,MAAC,CAAEA,MAAK,EAAEmU,KAAM,YAAEnU,SAExE,YAAAwT,gBAAN,SAAsBpG,EAAYqG,G,mEAChC,SAAO,YAAMD,gBAAe,iBAAMpG,GAAU,CAAE5H,OAAQ,iBAAoBiO,WAE9E,EAnBA,CAA2C,kB,m/CCP3C,aAEE,WAAY2J,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOwO,iCAAmC,mCAC1CxO,EAAOlQ,UAAY,aAErBkQ,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAG/C,KADA2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,IAEhE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU,qBAAmBA,UACnD,MAAO/B,IAGT,OAAO+B,GAETuM,EAAOmqB,iBAAmB,SAAOj3B,GAAM,qC,8DAI1B,OAHL/J,EAAU,YAAwB6W,EAAOlQ,WACzC2gB,EAAazQ,EAAOiqB,gBACpB7hC,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QAClE,GAAM4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,yBAAxC6W,CAAkE,CAAE5X,OAAM,EAAEqoB,WAAU,K,OAQvG,OARM9V,EAAK,SAQX,GANeA,EAAGhI,KAAI,SAACvQ,GACrB,MAAO,CACL2U,KAAM3U,EAAEmsB,gBACR3rB,MAAO+G,KAAKC,UAAUxH,gBAM5B4d,EAAOgqB,OAEX,OAvCA,kCAuCA,EAvCA,GAqHM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,0lFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,6BC1ItC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,yHAGA,aAEE,WAAYpqB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOsgB,0BAA4B,6BAGrCtgB,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GACpB,OAAQA,GACN,IAAK,OACH,OAAOiP,EAAO8iB,WAChB,QACE,MAAO,KAIb9iB,EAAO8iB,SAAW,WAChB,OAAK9iB,EAAO5X,OAGL4X,EAAOG,WAAW2iB,SAAS,MAAO9iB,EAAO5X,QAFvC,IAKX4X,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GAwIM,SAAUS,IACd,MAAO,CACLnqB,SAxGa,mvHAyGbC,WAAYmqB,EACZlqB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,WAAYoqB,I,6BC3JjC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,yHAGA,aAEE,WAAYzqB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAO8X,oBAAsB,uBAG/B9X,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GACpB,OAAQA,GACN,IAAK,UACH,OAAOiP,EAAO8iB,WAChB,QACE,MAAO,KAIb9iB,EAAO8iB,SAAW,WAChB,OAAK9iB,EAAO5X,OAGL4X,EAAOG,WAAW2iB,SAAS,MAAO9iB,EAAO5X,QAFvC,IAKX4X,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GA4FM,SAAUW,IACd,MAAO,CACLrqB,SA5Da,+9DA6DbC,WAAYqqB,EACZpqB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,WAAYsqB,I,6BC/GjC,yHAGA,aAEE,WAAY3qB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAO4gB,0BAA4B,6BA0BrC5gB,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GAkGM,SAAUa,IACd,MAAO,CACLvqB,SAlEa,oiEAmEbC,WAAYuqB,EACZtqB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,WAAYwqB,I,q+CCjH3BE,EAAc,CAClB,CACEnsB,MAAO,MACP7N,MAAO,OAET,CACE6N,MAAO,WACP7N,MAAO,aAGX,aAEE,WAAYiP,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOwU,kCAAoC,oCAC3CxU,EAAO+qB,YAAcA,EACrB/qB,EAAOlQ,UAAY,aAGrBkQ,EAAOmqB,iBAAmB,SAAOj3B,EAAQnC,GAAK,qC,0DAGjC,OAFL5H,EAAU,YAAwB6W,EAAOlQ,WACzC1H,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QAClE,GAAM4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,kBAAxC6W,CAA2D,CAAE5X,OAAM,EAAE2I,MAAK,K,OAC3F,SADW,kBAIbiP,EAAOgqB,OAEX,OAlBA,kCAkBA,EAlBA,GAgGM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,+tFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,6BC/HtC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,m+CCC9B,aAEE,WAAYpqB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOqe,mBAAqB,sBAG9Bre,EAAOqoB,YAAc,SAAOn1B,GAAM,qC,qCAOhC,OAFQO,EAAqBP,EAAb,SAAE9K,EAAW8K,EAAL,OAClBkK,EAAU4C,EAAOG,WAAW+pB,aAAa,MAAO,eACjDz2B,GAAarL,EAElB,GAAOgV,EAAQhV,EAAQ,CAAEmgC,aAAc5+B,KAAK8G,MAAMgD,GAAU80B,eAAgBluB,MAAK,SAAChQ,GAGhF,OAAOA,MALwB,CAAC,EAAD,WA+BnC2V,EAAOgqB,OAEX,OA/CA,kCA+CA,EA/CA,GA6GM,SAAUgB,IACd,MAAO,CACL1qB,SA9Da,++DA+DbC,WAAY0qB,EACZzqB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAIhB,IAAWP,UAAU,WAAY2qB,I,6+CC3H3BD,EAAc,CAClB,CACEnsB,MAAO,gBACP7N,MAAO,iBAET,CACE6N,MAAO,UACP7N,MAAO,WAET,CACE6N,MAAO,YACP7N,MAAO,cAIX,aAEE,WAAYiP,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO8D,sBAAwB,yBAGjC9D,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAGbiP,EAAOkrB,iBAAmB,SAAC9nC,EAAGhB,GACxB,YAAcgB,EAAGhB,EAAG,oBACxB4d,EAAO9M,OAAOsR,cAAgB,GAC9BxE,EAAO9M,OAAOoR,QAAU,GACxBtE,EAAO9M,OAAOqR,UAAY,GAC1BvE,EAAO9M,OAAOuR,UAAY,KAE5BzE,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,MAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,QAGpE9lB,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SAGd,GAFAO,EAAWuM,EAAOG,WAAW+pB,aAAa,SAAU,cAAzClqB,CAAwDvM,GAC/DkC,MAAMhE,QAAQ8B,KAAWA,EAAWA,EAAS,KAC5CA,EACH,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAUkR,WAChC,MAAOjT,IAGT,OAAO+B,GAGTuM,EAAOmqB,iBAAmB,SAAOj3B,EAAQnC,GAAK,qC,sEAIhC,OAHN4T,EAAa3E,EAAOiqB,gBACpB7sB,EAAU4C,EAAOG,WAAW+pB,aAAa,SAAU,qBACnD9hC,EAAS4X,EAAOG,WAAW+pB,aAAa,SAAU,cAAzClqB,CAAwD9M,EAAO9K,QAClE,GAAMgV,EAAQhV,EAAQ,CAAEuc,WAAU,EAAE6e,UAAWtwB,EAAOsR,cAAeif,QAASvwB,EAAOoR,W,OA2BjG,OA3BMja,EAAM,SAEJib,EAAwCjb,EAA/B,UAAEkb,EAA6Blb,EAApB,UAAEmb,EAAkBnb,EAAL,cACrCK,EAAO,CACX6a,UAAWA,EAAU5S,KAAI,SAACwZ,GAExB,OADAA,EAAMnZ,oBAAsBmZ,EAAMxG,UAC3B,CACL5O,KAAMoV,EAAMxG,UACZ/iB,MAAO+G,KAAKC,UAAUuiB,OAG1B7G,UAAWA,EAAU3S,KAAI,SAAC0xB,GAExB,OADAA,EAAMrxB,oBAAsBqxB,EAAM,qBAAmB/f,SAC9C,CACLvN,KAAMstB,EAAM,qBAAmB/f,SAC/B1hB,MAAO+G,KAAKC,UAAUy6B,OAG1B7e,cAAeA,EAAc7S,KAAI,SAAC6xB,GAEhC,OADAA,EAAIxxB,oBAAsBwxB,EAAI,qBAAmB/f,WAC1C,CACL1N,KAAM3F,OAAOozB,EAAI,qBAAmB/f,YACpC7hB,MAAO+G,KAAKC,UAAU46B,QAKpBzzB,GACN,IAAK,gBACH,SAAOrG,EAAK6a,WACd,IAAK,UACH,SAAO7a,EAAK4a,WACd,IAAK,YACH,SAAO5a,EAAK8a,e,kBAIlBxF,EAAOgqB,OAEX,OAlFA,kCAkFA,EAlFA,GA+JM,SAAUgB,IACd,MAAO,CACL1qB,SA7Ea,omFA8EbC,WAAY6qB,EACZ5qB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,IACNryB,SAAU,KAEZwQ,KAAM,SAACxD,EAAO4qB,EAASC,GACrB7qB,EAAM8qB,OAAO,mBAAmB,SAACC,EAAUC,G,MACnB,QAAtB,EAAAhrB,EAAMyqB,wBAAgB,cAAtBzqB,EAAyB+qB,EAAUC,QAK3C,IAAWprB,UAAU,cAAe2qB,I,m/CCnMpC,aAEE,WAAYhrB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO8F,4BAA8B,8BACrC9F,EAAO4lB,YAAc,IAEvB5lB,EAAO0rB,cAAgB,SAAC36B,GACtBiP,EAAOqqB,aAETrqB,EAAOkrB,iBAAmB,SAAC9nC,EAAGhB,GACxB,YAAcgB,EAAGhB,EAAG,gBACxB4d,EAAO9M,OAAOmT,SAAW,GACzBrG,EAAO9M,OAAOoT,QAAU,GACxBtG,EAAO9M,OAAOqT,WAAa,KAE7BvG,EAAO2rB,cAAgB,SAACjhC,EAAMsW,GAC5B,IAAI4qB,EAAelhC,EACbvB,EAAU,YAAwB,aAGxC,KADAyiC,EAAe5rB,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD4rB,IAEpE,MAAO,GAET,IACEA,EAAejiC,KAAK8G,MAAMm7B,GAAc,qBAAmB5qB,IAC3D,MAAOtP,IAGT,OAAOk6B,GAET5rB,EAAOmqB,iBAAmB,SAAOj3B,GAAM,qC,gEAK1B,OAJHO,EAAauM,EAAO9M,OAAZ,SACV/J,EAAU,YAAwB,aAClCsnB,EAAazQ,EAAO2rB,cAAcl4B,EAAU,YAC5CrL,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QAClE,GAAM4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,kBAAxC6W,CAA2D,CAAE5X,OAAM,EAAEqoB,WAAU,K,OAQhG,OARM9V,EAAK,SAQX,GAPeA,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBikB,UACtC,CACLtP,KAAM3U,EAAE,qBAAmBikB,UAC3BzjB,MAAO+G,KAAKC,UAAUxH,gBAK5B4d,EAAO6rB,mBAAqB,SAAO34B,GAAM,qC,sEAMnB,OALd,EAAyB8M,EAAO9M,OAA9BO,EAAQ,WAAE4S,EAAQ,WACpBld,EAAU,YAAwB,aAClCsnB,EAAazQ,EAAO2rB,cAAcl4B,EAAU,YAC5CwxB,EAAajlB,EAAO2rB,cAActlB,EAAU,YAC5Cje,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QACzD,GAAM4X,EAAOG,WAAW+pB,aAC1C/gC,EACA,gBAFwB6W,CAGxB,CAAE5X,OAAM,EAAEqoB,WAAU,EAAEwU,WAAU,K,OAYlC,OAfMW,EAAc,SAIpB5lB,EAAO4lB,YAAcA,EAWrB,GAVY,gBAAMA,GACfjzB,KAAI,SAACtC,GAEJ,OADAA,EAAK2C,oBAAsB,cAAI3C,EAAM,wBAC9B,CACL0G,KAAM,cAAI1G,EAAM,wBAChBzN,MAAO+G,KAAKC,UAAUyG,OAGzBwzB,OAAO,QACPjhC,iBAGLod,EAAO8rB,sBAAwB,SAAO54B,GAAM,qC,qCAClCoT,EAAYtG,EAAO9M,OAAZ,QACX64B,EAAwB,GAC5B,IACQ,EAAgBpiC,KAAK8G,MAAM6V,GACjCylB,EAAiB,gBAAM/rB,EAAO4lB,aAC3BhtB,QAAO,SAACvI,GAAS,qBAAI,EAAe,0BAA4B,cAAIA,EAAnD,2BACjBsC,KAAI,SAACtC,GAEJ,OADAA,EAAK2C,oBAAsB,cAAI3C,EAAM,QAC9B,CACL0G,KAAM,UAAG,cAAI1G,EAAM,SACnBzN,MAAO+G,KAAKC,UAAUyG,OAGzBzN,QACH,MAAO8O,IACT,SAAOq6B,UAGT/rB,EAAOgqB,OAEX,OA1FA,kCA0FA,EA1FA,GA4FM1pB,EAAW,00FA6EsD,YAAS,0fAUV,YAAS,ubAYzE,SAAU8pB,IACd,MAAO,CACL9pB,SAAUA,EACVC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRpD,UAAW,IACX4Q,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,KAER7hB,KAAM,SAACxD,EAAO4qB,EAASC,GACrB7qB,EAAM8qB,OAAO,mBAAmB,SAACC,EAAUC,G,MACnB,QAAtB,EAAAhrB,EAAMyqB,wBAAgB,cAAtBzqB,EAAyB+qB,EAAUC,QAK3C,IAAWprB,UAAU,WAAY+pB,I,6BC5NjC,oHAGA,aAEE,WAAYpqB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOsJ,0BAA4B,6BAGrCtJ,EAAOgqB,OAEX,OATA,kCASA,EATA,GAyFM,SAAUI,IACd,MAAO,CACL9pB,SAhFa,w6EAiFbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,6BC7GtC,0BAGA,kBAAY,WAAY,CACtBnkB,gBAAiB,0BACjBD,eAAgB,mDAChBlW,UAAW,a,w+CCHPi7B,EAAc,CAClB,CACEnsB,MAAO,mBACP7N,MAAO,mBAIX,aAEE,WAAYiP,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO+O,wBAA0B,2BAGnC/O,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAKbiP,EAAOgsB,SAAW,GAElBhsB,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,MAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,QAGpE9lB,EAAOisB,aAAe,WACd,IAAAx4B,EAAauM,EAAO9M,OAAZ,SAEd,KADAO,EAAWuM,EAAOG,WAAW+pB,aAAa,WAAY,cAA3ClqB,CAA0DvM,IAEnE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAUiS,UAChC,MAAOhU,IAGT,OAAO+B,GAGTuM,EAAOksB,mBAAqB,SAACn7B,GAC3BiP,EAAOqqB,aAGTrqB,EAAOmqB,iBAAmB,SAAOj3B,EAAQnC,GAAK,qC,oEAC9B,mBAAVA,EAAA,OACI2U,EAAY1F,EAAOisB,gBACrBvhC,EAAOsV,EAAOgsB,SAAStmB,IAEvB,OACItd,EAAS4X,EAAOG,WAAW+pB,aAAa,WAAY,cAA3ClqB,CAA0D9M,EAAO9K,QAElE,GADE4X,EAAOG,WAAW+pB,aAAa,WAAY,uBACvC9sB,CAAQhV,EAAQ,CAAEsd,UAAS,O,OAAzCymB,EAAQ,SACdzhC,EAAOyhC,EAAMx5B,KAAI,SAACtC,GAEhB,OADAA,EAAK2C,oBAAsB3C,EAAK41B,eACzB,CAAElvB,KAAM1G,EAAK41B,eAAgBrjC,MAAO+G,KAAKC,UAAUyG,O,iBAM9D,OADA2P,EAAOgsB,SAAStmB,GAAahb,EAC7B,GAAOA,G,OAET,SAAO,YAGTsV,EAAOgqB,OAEX,OA/DA,kCA+DA,EA/DA,GA4IM,SAAUgB,IACd,MAAO,CACL1qB,SA7Ea,kmFA8EbC,WAAY6rB,EACZ5rB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,gBAAiB2qB,I,6BCvKtC,oIAEA,SAASlmB,EAAuB5U,QAAA,IAAAA,MAAA,IAC9B,IAAM2K,EAAc,GAoBpB,OAnBK,IAAE/I,QAAQ5B,KACb2K,EAAOa,MAAQ,IAAElZ,IAAI0N,EAAS,QAAS,KAAO,GAC9C2K,EAAOrG,OAAS,IAAEhS,IAAI0N,EAAS,SAAU,IAAM,EAC/CA,EAAU,IAAEoN,KAAKpN,EAAS,CAAC,SAAU,UACrC,IAAEE,QAAQF,GAAS,SAACG,EAAWnN,GACzB,IAAEyO,QAAQtB,IACZA,EAAO,IAAEsM,QAAQtM,IACRyC,OAAS,IAChB+H,EAAO3X,GAAO,IAAE0Z,KAAKvM,IAEd,IAAEoG,SAASpG,IAChB,IAAEkI,SAAS,IAAE/V,IAAI6N,EAAM,aAAS4B,KAAgB,IAAEH,QAAQ,IAAEtP,IAAI6N,EAAM,aAAS4B,MACjF4I,EAAO3X,GAAO,IAAEV,IAAI6N,EAAM,WAEnB,IAAEkI,SAASlI,IAAU,IAAEyB,QAAQzB,KACxCwK,EAAO3X,GAAOmN,OAIbwK,EAIT,IAAM3E,EAAoB,CAAC,cAIZ,WACb9N,OAAQ,GACR2Q,WAAY,GACZsL,WAAY,GACZpK,YAAQhI,EACRwF,gBAAiB,KACjBhE,SAAU,GACVsC,cAAe,aACf7F,QAAS,K,6BCvCX,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,yHAGA,aAEE,WAAY8P,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAO6e,0BAA4B,6BAGrC7e,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GACpB,OAAQA,GACN,IAAK,OACH,OAAOiP,EAAO8iB,WAChB,QACE,MAAO,KAIb9iB,EAAO8iB,SAAW,WAChB,OAAK9iB,EAAO5X,OAGL4X,EAAOG,WAAW2iB,SAAS,MAAO9iB,EAAO5X,QAFvC,IAKX4X,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GAwIM,SAAUqC,IACd,MAAO,CACL/rB,SAxGa,6tHAyGbC,WAAY+rB,EACZ9rB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,WAAYgsB,I,6BC3JjC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,q+CCExBtB,EAAc,CAClB,CACEnsB,MAAO,SACP7N,MAAO,SACP3H,OAAQ,gCAEV,CACEwV,MAAO,UACP7N,MAAO,UACP3H,OAAQ,uBAGNmjC,EAAqB,CACzB5F,6BAA8B,SAC9BF,mBAAoB,mBAEtB,aAEE,WAAYzmB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOgK,2BAA6B,6BACpChK,EAAO+qB,YAAcA,EACrB/qB,EAAOlQ,UAAY,aAGrBkQ,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAE/C,KADA2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,IAEhE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU,qBAAmBA,UACnD,MAAO/B,IAGT,OAAO+B,GAETuM,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,QAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,KAAOz1B,EAAKuO,SAAqB,QAAX,EAAAoB,EAAO8lB,YAAI,QAAI,QAEzG9lB,EAAOmqB,iBAAmB,SAAOj3B,EAAQ9J,GAAM,qC,gEAQlC,OAPLD,EAAU,YAAwB6W,EAAOlQ,WACzC1H,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QACvEqoB,EAAazQ,EAAOiqB,gBACpB1gC,EAAe,CACnBob,WAAY8L,EACZ/U,MAAO,KAEE,GAAMsE,EAAOG,WAAW+pB,aAAa/gC,EAAS,kBAAxC6W,CAA2D,CAAE5X,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OASrG,OATMoR,EAAK,SASX,GAPeA,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBmqC,EAAmBnjC,KACzD,CACL2N,KAAM3U,EAAE,qBAAmBmqC,EAAmBnjC,KAC9CxG,MAAO+G,KAAKC,UAAUxH,gBAM5B4d,EAAOgqB,OAEX,OAhDA,kCAgDA,EAhDA,GA8HM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,ouFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,6BCnKtC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,2HAIMW,EAAc,CAMlB,CACEnsB,MAAO,SACP7N,MAAO,WAGX,aAEE,WAAYiP,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAO4N,sCAAwC,wCAC/C5N,EAAO+qB,YAAcA,EACrB/qB,EAAOlQ,UAAY,aAiBrBkQ,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,QAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,KAAOz1B,EAAKuO,SAAqB,QAAX,EAAAoB,EAAO8lB,YAAI,QAAI,QAEzG9lB,EAAOmqB,iBAAmB,SAACj3B,EAAQ9J,GAC3B,IAAAqK,EAAaP,EAAL,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAC/C2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,GAClE,IAGE,OAFAA,EAAW9J,KAAK8G,MAAMgD,IACM,UACXd,KAAI,SAACvQ,GAEpB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBsrB,QACtC,CACL3W,KAAM3U,EAAE,qBAAmBsrB,QAC3B9qB,MAAO+G,KAAKC,UAAUxH,OAG1B,MAAOsP,GAEP,IAAMnI,EAAe,CACnBob,WAAYlR,GASd,OAPWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD,CAAEzW,QAAO,IACzDoJ,KAAI,SAACvQ,GACrB,MAAO,CACL2U,KAAM3U,EAAE,qBAAmBsrB,QAC3B9qB,MAAO+G,KAAKC,UAAUxH,SAO9B4d,EAAOgqB,OAEX,OA1DA,kCA0DA,EA1DA,GAwIM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,iuFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,6BCxKtC,0BAEA,kBAAa,kBAAiB,sB,q+CCExBW,EAAc,CAClB,CACEnsB,MAAO,UACP7N,MAAO,WAET,CACE6N,MAAO,YACP7N,MAAO,SAGLy7B,EAAa,CACjBrjB,QAAS,eACThX,KAAM,oBAER,aAEE,WAAY6N,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOsJ,0BAA4B,4BACnCtJ,EAAOlQ,UAAY,aAGrBkQ,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,MAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,QAGpE9lB,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAG/C,KADA2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,IAEhE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU,qBAAmBA,UACnD,MAAO/B,IAGT,OAAO+B,GAETuM,EAAOmqB,iBAAmB,SAAOj3B,EAAQnC,GAAK,qC,8DAKnC,OAJH5H,EAAU,YAAwB6W,EAAOlQ,WACzC2gB,EAAazQ,EAAOiqB,gBACpB7hC,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QAEpE,GAAM4X,EAAOG,WAAW+pB,aAAa/gC,EAASqjC,EAAWz7B,GAAnDiP,CAA2D,CAAE5X,OAAM,EAAEqoB,WAAU,K,OAQ9F,OARI9V,EAAK,SAQT,GAPeA,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmB2O,IACtC,CACLgG,KAAM3U,EAAE,qBAAmB2O,IAC3BnO,MAAO+G,KAAKC,UAAUxH,gBAM5B4d,EAAOgqB,OAEX,OA7CA,kCA6CA,EA7CA,GA2HM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,0mFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,6BC9JtC,uHAGA,aAEE,WAAYpqB,EAAQC,GAClBD,EAAOgqB,KAAO,WAEZhqB,EAAOghB,mBAAqB,sBAG9BhhB,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GACpB,OAAQA,GACN,IAAK,OACH,OAAOiP,EAAO8iB,WAChB,QACE,MAAO,KAIb9iB,EAAO8iB,SAAW,WAChB,OAAK9iB,EAAO5X,OAGL4X,EAAOG,WAAW2iB,SAAS,MAAO9iB,EAAO5X,QAFvC,IAKX4X,EAAOgqB,OAEX,OAjCA,kCAiCA,EAjCA,GA4IM,SAAUyC,IACd,MAAO,CACLnsB,SA3Ga,8uHA4GbC,WAAYmsB,EACZlsB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,UAAWosB,I,6BC/JhC,uIAGA,aAEE,WAAYzsB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOie,iCAAmC,oCAG5Cje,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GACpB,OAAQA,GACN,IAAK,OACH,OAAOiP,EAAO8iB,WAChB,QACE,MAAO,KAIb9iB,EAAO8iB,SAAW,WAChB,OAAK9iB,EAAO5X,OAGL4X,EAAOG,WAAW2iB,SAAS,aAAc9iB,EAAO5X,QAF9C,IAKX4X,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GAuIM,SAAU2C,IACd,MAAO,CACLrsB,SAvGa,m6HAwGbC,WAAYqsB,EACZpsB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,kBAAmBssB,I,2rDCrJxC,aAEE,WAAY3sB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO0a,wBAA0B,2BAGnC1a,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAIbiP,EAAOkrB,iBAAmB,SAAC9nC,EAAGhB,GACxBgB,IAAMhB,IAGV4d,EAAO9M,OAAO8nB,QAAU,GACxBhb,EAAO9M,OAAO6Y,KAAO,KAGvB/L,EAAO2rB,cAAgB,SAACjhC,EAAMsW,GAC5B,IAAI4qB,EAAelhC,EACbvB,EAAU,YAAwB,cAGxC,KADAyiC,EAAe5rB,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD4rB,IAEpE,MAAO,GAET,IACEA,EAAejiC,KAAK8G,MAAMm7B,GAAc,qBAAmB5qB,IAC3D,MAAOtP,IAGT,OAAOk6B,GAGT5rB,EAAOmqB,iBAAmB,SAAOj3B,EAAQ8N,GAAI,qC,0EAK7B,OAJR,EAAwBhB,EAAO9M,OAA7BO,EAAQ,WAAEunB,EAAO,UACnB7xB,EAAU,YAAwB,cAClCsnB,EAAazQ,EAAO2rB,cAAcl4B,EAAU,YAC5CrL,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QAC/D,GAAM4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,eAAxC6W,CAAwD5X,EAAQ,CAClF8hB,YAAa,CAACuG,M,OAEhB,OAHOpmB,EAAO,SAAJ,GAGG,YAAT2W,EACF,GAAO,cAAI,cAAI3W,EAAK,cAAe,KAAK,SAACgG,GAEvC,OADAA,EAAK2C,oBAAsB3C,EAAK+2B,aACzB,CAAErwB,KAAM1G,EAAK+2B,aAAcxkC,MAAO+G,KAAKC,UAAUyG,QAG/C,SAAT2Q,GAA+B,KAAZga,GACf6R,EAAY7sB,EAAO2rB,cAAc3Q,EAAS,WAC1C,EAAgB,eAAK,cAAI3wB,EAAK,cAAe,IAAK,CAAE+8B,aAAcyF,IAClE5jC,EAAU,gBAAM,EAAcs+B,cAAc,SAAC/zB,GACjD,IAAMg0B,EAAS,UAAG,EAAcJ,aAAY,sBAAc5zB,GAC1D,MAAO,CACLuD,KAAMywB,EACN5kC,MAAO+G,KAAKC,UAAU,CAAEkgB,OAAQ0d,EAAQx0B,oBAAqB,UAAG,EAAco0B,aAAY,cAAMI,SAGpG,MACE,CACEzwB,KAAM,UAAG,EAAcqwB,aAAY,iBACnCxkC,MAAO+G,KAAKC,UAAU,CACpBkgB,OAAQ,UAAG,EAAcsd,aAAY,iBACrCp0B,oBAAqB,UAAG,EAAco0B,aAAY,cAAM,UAAG,EAAcA,aAAY,sBAGtFn+B,GAAO,KAGd,GAAO,YAGT+W,EAAOgqB,OAEX,OArFA,kCAqFA,EArFA,GAoLM,SAAU8C,IACd,MAAO,CACLxsB,SA/Fa,yvGAgGbC,WAAYwsB,EACZvsB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZkqB,UAAW,IACXzpB,SAAU,KAEZqD,KAAM,SAACxD,EAAO4qB,EAASC,GACrB7qB,EAAM8qB,OAAO,mBAAmB,SAACC,EAAUC,G,MACnB,QAAtB,EAAAhrB,EAAMyqB,wBAAgB,cAAtBzqB,EAAyB+qB,EAAUC,QAM3C,IAAWprB,UAAU,eAAgBysB,I,i+CC3M/B/B,EAAc,CAClB,CACEnsB,MAAO,SACP7N,MAAO,WAIX,aAEE,WAAYiP,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO+O,wBAA0B,2BAGnC/O,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAKbiP,EAAOgsB,SAAW,GAElBhsB,EAAOmrB,eAAiB,W,MACtB,OAAO9oC,OAAOkX,KAAgB,QAAX,EAAAyG,EAAO8lB,YAAI,QAAI,IAAIkH,MAAK,SAAC38B,GAAiB,OAAAA,EAAK8e,WAAL,YAA4B4b,EAAc,IAIzG/qB,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SAEd,KADAO,EAAWuM,EAAOG,WAAW+pB,aAAa,SAAU,cAAzClqB,CAAwDvM,IAEjE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAUsoB,UAChC,MAAOrqB,IAGT,OAAO+B,GAGTuM,EAAOksB,mBAAqB,SAACn7B,GAC3BiP,EAAOqqB,aAGTrqB,EAAOmqB,iBAAmB,SAAOj3B,EAAQnC,GAAK,qC,oEAC9B,WAAVA,EAAA,OACI4T,EAAa3E,EAAOiqB,iBACtBv/B,EAAOsV,EAAOgsB,SAASrnB,IAEvB,OACIvc,EAAS4X,EAAOG,WAAW+pB,aAAa,SAAU,cAAzClqB,CAAwD9M,EAAO9K,QAEhE,GADE4X,EAAOG,WAAW+pB,aAAa,SAAU,gBACrC9sB,CAAQhV,EAAQ,CAAEuc,WAAU,EAAE+iB,SAAU,W,OAAtDuF,EAAQ,SACdviC,EAAOuiC,EAAMt6B,KAAI,SAACtC,GAEhB,OADAA,EAAK2C,oBAAsB3C,EAAK,qBAAmB0b,MAC5C,CACLhV,KAAM1G,EAAK,qBAAmB0b,MAC9BnpB,MAAO+G,KAAKC,UAAUyG,O,iBAO5B,OADA2P,EAAOgsB,SAASrnB,GAAcja,EAC9B,GAAOA,G,OAET,SAAO,YAGTsV,EAAOgqB,OAEX,OAnEA,kCAmEA,EAnEA,GAgJM,SAAUkD,IACd,MAAO,CACL5sB,SA7Ea,mmFA8EbC,WAAY4sB,EACZ3sB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,UAAW6sB,I,6BC3KhC,uIAGA,aAEE,WAAYltB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOqhB,iCAAmC,oCAG5CrhB,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAIbiP,EAAOgqB,OAEX,OAvBA,kCAuBA,EAvBA,GA4HM,SAAUoD,IACd,MAAO,CACL9sB,SArGa,6mHAsGbC,WAAY8sB,EACZ7sB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,kBAAmB+sB,I,6BC/IxC,6HAGA,aAEE,WAAYptB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAO0hB,4BAA8B,+BA0BvC1hB,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GAkGM,SAAUsD,IACd,MAAO,CACLhtB,SAlEa,siEAmEbC,WAAYgtB,EACZ/sB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKhB,IAAWP,UAAU,aAAcitB,I,6BCrHnC,yHAGA,aAEE,WAAYttB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOsf,oBAAsB,uBAG/Btf,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GACpB,OAAQA,GACN,IAAK,QACH,OAAOiP,EAAOgoB,YAChB,QACE,MAAO,KAIbhoB,EAAOgoB,UAAY,WACjB,OAAKhoB,EAAO5X,OAGL4X,EAAOG,WAAW6nB,UAAU,MAAOhoB,EAAO5X,QAFxC,IAKX4X,EAAOgqB,OAEX,OAhCA,kCAgCA,EAhCA,GAsGM,SAAUwD,IACd,MAAO,CACLltB,SAtEa,sxEAuEbC,WAAYktB,EACZjtB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZS,SAAU,MAKhB,IAAWP,UAAU,WAAYmtB,I,6BCxHjC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,6HAGA,aAEE,WAAYxtB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOwf,sBAAwB,yBAGjCxf,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAIbiP,EAAOgqB,OAEX,OAvBA,kCAuBA,EAvBA,GA6FM,SAAU0D,IACd,MAAO,CACLptB,SAtEa,yxEAuEbC,WAAYotB,EACZntB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZS,SAAU,MAKhB,IAAWP,UAAU,aAAcqtB,I,2/CC1GnC,aAEE,WAAY1tB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO8K,yBAA2B,4BAGpC9K,EAAO4tB,iBAAmB,WACxB5tB,EAAO9M,OAAOwY,QAAU,GACxB1L,EAAO9M,OAAOyY,QAAU,IAG1B3L,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOE,YAAc,SAACnP,GAGhB,MAAO,IAIbiP,EAAO2rB,cAAgB,SAACjhC,EAAMsW,GAC5B,IAAI4qB,EAAelhC,EACbvB,EAAU,YAAwB,aAGxC,KADAyiC,EAAe5rB,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD4rB,IAEpE,MAAO,GAET,IACEA,EAAejiC,KAAK8G,MAAMm7B,GAAc,qBAAmB5qB,IAC3D,MAAOtP,IACT,OAAOk6B,GAGT5rB,EAAOmqB,iBAAmB,SAAOj3B,EAAQi1B,GAAQ,qC,kEAKpC,OAJH10B,EAAauM,EAAO9M,OAAZ,SACV/J,EAAU,YAAwB,aAClCsnB,EAAazQ,EAAO2rB,cAAcl4B,EAAU,YAC5CrL,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QAClE,GAAM4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,sBAAxC6W,CAA+D,CAAE5X,OAAM,EAAEqoB,WAAU,K,OAGpG,OAHM9V,EAAK,SAGX,IAA0B,KADpBytB,EAAgB,WAAS34B,QAAQ04B,IACT,GAAK,cAAIxtB,EAAGytB,IAAgB,SAAC/3B,GAAS,MAAC,CAAE0G,KAAM1G,EAAKyZ,OAAQlnB,MAAOyN,EAA7B,oBAGtE2P,EAAOgqB,OAEX,OArDA,kCAqDA,EArDA,GAoJM,SAAU6D,IACd,MAAO,CACLvtB,SA/Fa,oyGAgGbC,WAAYutB,EACZttB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZS,SAAU,IACVypB,UAAW,IACXvE,KAAM,KAER7hB,KAAM,SAACxD,EAAO4qB,EAASC,GACrB7qB,EAAM8qB,OAAO,mBAAmB,W,MACR,QAAtB,EAAA9qB,EAAMmtB,wBAAgB,cAAtBntB,MAEFA,EAAM8qB,OAAO,qBAAqB,W,MACV,QAAtB,EAAA9qB,EAAMmtB,wBAAgB,cAAtBntB,QAMR,IAAWJ,UAAU,gBAAiBwtB,I,m+CC/KtC,aAEE,WAAY7tB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAO0Q,mBAAqB,sBAG9B1Q,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SAEd,KADAO,EAAWuM,EAAOG,WAAW+pB,aAAa,MAAO,cAAtClqB,CAAqDvM,IAE9D,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU80B,aAChC,MAAO72B,IAGT,OAAO+B,GAGTuM,EAAOqoB,YAAc,SAAOn1B,GAAM,qC,mCAQhC,OAFMq1B,EAAevoB,EAAOiqB,gBACtB7hC,EAAS4X,EAAOG,WAAW+pB,aAAa,MAAO,cAAtClqB,CAAqD9M,EAAO9K,QACtEmgC,GAAiBngC,EAItB,GAFgB4X,EAAOG,WAAW+pB,aAAa,MAAO,cAE/C9sB,CAAQhV,EAAQ,CAAEmgC,aAAY,IAAIluB,MAAK,SAAChQ,GAS7C,OAPeA,EAAIsI,KAAI,SAACvQ,GAEtB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBkH,SACtC,CACLyN,KAAM3U,EAAE,qBAAmBkH,SAC3B1G,MAAO+G,KAAKC,UAAUxH,WAVS,CAAC,EAAD,WAuCvC4d,EAAOgqB,OAEX,OAtEA,kCAsEA,EAtEA,GAkJM,SAAUgB,IACd,MAAO,CACL1qB,SA5Ea,g9EA6EbC,WAAY0qB,EACZzqB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,MAIjB,IAAWhqB,UAAU,WAAY2qB,I,6BCrKjC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,q+CCExBD,EAAc,CAClB,CACEnsB,MAAO,gBACP7N,MAAO,gBACP3H,OAAQ,wBAEV,CACEwV,MAAO,YACP7N,MAAO,YACP3H,OAAQ,mBAINmjC,EAAqB,CACzB9D,eAAgB,YAChBC,qBAAsB,iBAExB,aAEE,WAAY1oB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOsI,2BAA6B,6BACpCtI,EAAO+qB,YAAcA,EACrB/qB,EAAOlQ,UAAY,aAGrBkQ,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAE/C,KADA2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,IAEhE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU,qBAAmBA,UACnD,MAAO/B,IAGT,OAAO+B,GAETuM,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,QAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,KAAOz1B,EAAKuO,SAAqB,QAAX,EAAAoB,EAAO8lB,YAAI,QAAI,QAEzG9lB,EAAOmqB,iBAAmB,SAAOj3B,EAAQ9J,GAAM,qC,gEAO7C,GANMD,EAAU,YAAwB6W,EAAOlQ,WACzC1H,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QACvEmB,EAAe,CACnBmS,MAAO,IACPqgB,UAAW/b,EAAOiqB,iBAEL,mBAAX7gC,EAA6B,CAC3B2kC,EAAO/tB,EAAO9M,OAAOkV,cACzB,IAEE2lB,GADAA,EAAOpkC,KAAK8G,MAAMs9B,IACN,qBAAmB3lB,eAC/B,MAAO1X,IACTnH,EAAQqf,cAAgBmlB,EAGf,SAAM/tB,EAAOG,WAAW+pB,aAAa/gC,EAAS,kBAAxC6W,CAA2D,CAAE5X,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OASrG,OATMoR,EAAK,SASX,GAReA,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBmqC,EAAmBnjC,KACzD,CACL2N,KAAM3U,EAAE,qBAAmBmqC,EAAmBnjC,KAC9CwV,MAAOxc,EAAE,qBAAmBmqC,EAAmBnjC,KAC/CxG,MAAO+G,KAAKC,UAAUxH,gBAM5B4d,EAAOgqB,OAEX,OAxDA,kCAwDA,EAxDA,GAsIM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,ouFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,kBAAiB+pB,I,q+CCxKhCW,EAAc,CAClB,CACEnsB,MAAO,OACP7N,MAAO,OACP3H,OAAQ,6BAINmjC,EAAqB,CACzB5D,yBAA0B,QAE5B,aAEE,WAAY3oB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOsI,2BAA6B,6BACpCtI,EAAO+qB,YAAcA,EACrB/qB,EAAOlQ,UAAY,aAGrBkQ,EAAO4tB,iBAAmB,WACxB5tB,EAAO9M,OAAO6Y,KAAO,IAGvB/L,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAE/C,KADA2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,IAEhE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU,qBAAmBA,UACnD,MAAO/B,IAGT,OAAO+B,GAETuM,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,QAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,KAAOz1B,EAAKuO,SAAqB,QAAX,EAAAoB,EAAO8lB,YAAI,QAAI,QAEzG9lB,EAAOmqB,iBAAmB,SAAOj3B,EAAQ9J,GAAM,qC,8DAQlC,OAPLD,EAAU,YAAwB6W,EAAOlQ,WACzC1H,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QACvEmB,EAAe,CACnBmS,MAAO,IACPiJ,WAAY3E,EAAOiqB,iBAGV,GAAMjqB,EAAOG,WAAW+pB,aAAa/gC,EAAS,kBAAxC6W,CAA2D,CAAE5X,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OASrG,OATMoR,EAAK,SASX,GAReA,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBmqC,EAAmBnjC,KACzD,CACL2N,KAAM3U,EAAE,qBAAmBmqC,EAAmBnjC,KAC9CwV,MAAOxc,EAAE,qBAAmBmqC,EAAmBnjC,KAC/CxG,MAAO+G,KAAKC,UAAUxH,gBAM5B4d,EAAOgqB,OAEX,OApDA,kCAoDA,EApDA,GAkIM,SAAUI,IACd,MAAO,CACL9pB,SA9Ea,+sFA+EbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,KAER7hB,KAAM,SAACxD,EAAO4qB,EAASC,GACrB7qB,EAAM8qB,OAAO,mBAAmB,W,MACR,QAAtB,EAAA9qB,EAAMmtB,wBAAgB,cAAtBntB,MAEFA,EAAM8qB,OAAO,qBAAqB,W,MACV,QAAtB,EAAA9qB,EAAMmtB,wBAAgB,cAAtBntB,QAKR,IAAWJ,UAAU,oBAAqB+pB,I,4/CCtKpCW,EAAc,CAClB,CACEnsB,MAAO,YACP7N,MAAO,YACP3H,OAAQ,8BAEV,CACEwV,MAAO,QACP7N,MAAO,QACP3H,OAAQ,2BAINmjC,EAAqB,CACzB3D,2BAA4B,YAC5BC,uBAAwB,SAE1B,aAEE,WAAY7oB,EAAQC,GAApB,WACED,EAAOgqB,KAAO,WACZhqB,EAAOsI,2BAA6B,6BACpCtI,EAAO+qB,YAAcA,EACrB/qB,EAAOlQ,UAAY,aAGrBkQ,EAAO4tB,iBAAmB,WACxB5tB,EAAO9M,OAAOpD,UAAY,GAC1BkQ,EAAO9M,OAAOiZ,MAAQ,IAGxBnM,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOiqB,cAAgB,WACf,IAAAx2B,EAAauM,EAAO9M,OAAZ,SACR/J,EAAU,YAAwB6W,EAAOlQ,WAE/C,KADA2D,EAAWuM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuDvM,IAEhE,MAAO,GAET,IACEA,EAAW9J,KAAK8G,MAAMgD,GAAU,qBAAmBA,UACnD,MAAO/B,IAGT,OAAO+B,GAETuM,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,QAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,KAAOz1B,EAAKuO,SAAqB,QAAX,EAAAoB,EAAO8lB,YAAI,QAAI,QAEzG9lB,EAAOmqB,iBAAmB,SAAOj3B,EAAQ9J,GAAM,qC,gEAO7C,GANMD,EAAU,YAAwB6W,EAAOlQ,WACzC1H,EAAS4X,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD9M,EAAO9K,QACvEmB,EAAe,CACnBmS,MAAO,IACPqgB,UAAW/b,EAAOiqB,iBAEL,2BAAX7gC,EAAqC,CACnC,EAAY4W,EAAO9M,OAAOpD,UAC9B,IACE,EAAYnG,KAAK8G,MAAM,GAAW,qBAAmBX,WACrD,MAAOY,IACTnH,EAAQkjB,YAAczM,EAAOG,WAAW+pB,aAAa/gC,EAAS,cAAxC6W,CAAuD,GAGpE,SAAMA,EAAOG,WAAW+pB,aAAa/gC,EAAS,kBAAxC6W,CAA2D,CAAE5X,OAAM,EAAEgB,OAAM,EAAEG,QAAO,K,OAQrG,OARMoR,EAAK,SAQX,GAPeA,EAAGhI,KAAI,SAACvQ,GAErB,OADAA,EAAE4Q,oBAAsB5Q,EAAE,qBAAmBmqC,EAAmBnjC,KACzD,CACL2N,KAAM3U,EAAE,qBAAmBmqC,EAAmBnjC,KAC9CxG,MAAO+G,KAAKC,UAAUxH,gBAM5B4d,EAAOgqB,OAEX,OAlEA,kCAkEA,EAlEA,GAyLM,SAAUgE,IACd,MAAO,CACL1tB,SAvHa,ksJAwHbC,WAAY0tB,EACZztB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,KAER7hB,KAAM,SAACxD,EAAO4qB,EAASC,GACrB7qB,EAAM8qB,OAAO,mBAAmB,W,MACR,QAAtB,EAAA9qB,EAAMmtB,wBAAgB,cAAtBntB,MAEFA,EAAM8qB,OAAO,qBAAqB,W,MACV,QAAtB,EAAA9qB,EAAMmtB,wBAAgB,cAAtBntB,QAKR,IAAWJ,UAAU,oBAAqB2tB,I,6BCvO1C,2HAIA,aAEE,WAAYhuB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOqiB,0BAA4B,6BAGrCriB,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOkuB,aAAe,WACpBluB,EAAO9M,OAAO8uB,WAAW9vB,KAAK,CAAE+2B,IAAK,GAAIC,SAAU,IAAKl3B,MAAO,MAGjEgO,EAAOmuB,gBAAkB,SAAC36B,GACxB,IAAM46B,EAAkBpuB,EAAO9M,OAAO8uB,WAAWxuB,GAC7C,kBAAQ46B,EAAgBnF,MAAQ,kBAAQmF,EAAgBlF,WAAa,kBAAQkF,EAAgBp8B,OAC/FgO,EAAO9M,OAAO8uB,WAAW/uB,OAAOO,EAAO,IAEvCwM,EAAO9M,OAAO8uB,WAAW/uB,OAAOO,EAAO,GACvCwM,EAAOqqB,cAIXrqB,EAAOquB,YAAc,WACnB,OAAOj3B,QAAQC,QAAQ,CACrB,CAAEN,KAAM,IAAKnU,MAAO,KACpB,CAAEmU,KAAM,KAAMnU,MAAO,SAIzBod,EAAOgqB,OAEX,OArCA,kCAqCA,EArCA,GAuLM,SAAUI,IACd,MAAO,CACL9pB,SAlJa,wgMAmJbC,WAAYT,EACZU,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,WAAY+pB,I,6BC5MjC,yHAGA,aAEE,WAAYpqB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAO6f,oBAAsB,uBAG/B7f,EAAOgqB,OAEX,OATA,kCASA,EATA,GA+DM,SAAUsE,IACd,MAAO,CACLhuB,SAtDa,0uDAuDbC,WAAYguB,EACZ/tB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZS,SAAU,MAKhB,IAAWP,UAAU,WAAYiuB,I,6BCjFjC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,gIAIMvD,EAAmB,GAWzB,aAEE,WAAY/qB,EAAQC,GAClBD,EAAOgqB,KAAO,WACZhqB,EAAOkd,0BAA4B,4BACnCld,EAAOlQ,UAAY,aAErBkQ,EAAOmrB,eAAiB,WACtB,OAAOJ,EAAYnyB,QAAO,SAACvI,GAAI,MAAK,OAAAA,EAAKU,SAAqB,QAAX,EAAAiP,EAAO8lB,YAAI,QAAI,QAGpE9lB,EAAOmqB,iBAAmB,SAACp5B,GACzB,IAAM5H,EAAU,YAAwB6W,EAAOlQ,WAE/C,OAAOkQ,EAAOG,WAAWC,kBAAkBjX,EAAS,CAAE4H,MAAK,KAG7DiP,EAAOgqB,OAEX,OAnBA,kCAmBA,EAnBA,GAiGM,SAAUgB,IACd,MAAO,CACL1qB,SA9Ea,wmFA+EbC,WAAYiuB,EACZhuB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,IACVypB,UAAW,IACXvE,KAAM,MAIZ,IAAWzlB,UAAU,WAAY2qB,I,6BCjIjC,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,6BCF9B,0BAEA,kBAAa,kBAAiB,sB,gBCF9B,IAAIr4B,EAAM,CACT,IAAK,GACL,KAAM,GACN,sBAAuB,IACvB,yBAA0B,IAC1B,qBAAsB,EACtB,wBAAyB,EACzB,gBAAiB,EACjB,mBAAoB,EACpB,uBAAwB,IACxB,0BAA2B,IAC3B,gBAAiB,IACjB,mBAAoB,IACpB,0BAA2B,GAC3B,6BAA8B,GAC9B,qBAAsB,IACtB,wBAAyB,IACzB,yBAA0B,GAC1B,4BAA6B,GAC7B,yBAA0B,GAC1B,4BAA6B,GAC7B,oBAAqB,IACrB,uBAAwB,IACxB,wBAAyB,GACzB,2BAA4B,GAC5B,qBAAsB,GACtB,wBAAyB,GACzB,gBAAiB,IACjB,mBAAoB,IACpB,oBAAqB,GACrB,uBAAwB,GACxB,sBAAuB,GACvB,yBAA0B,GAC1B,iBAAkB,IAClB,oBAAqB,IACrB,qBAAsB,GACtB,wBAAyB,GACzB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,4BAA6B,GAC7B,+BAAgC,GAChC,uBAAwB,IACxB,0BAA2B,IAC3B,2BAA4B,GAC5B,8BAA+B,GAC/B,4BAA6B,GAC7B,+BAAgC,GAChC,uBAAwB,IACxB,0BAA2B,IAC3B,2BAA4B,GAC5B,8BAA+B,GAC/B,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,sBAAuB,GACvB,yBAA0B,GAC1B,iBAAkB,IAClB,oBAAqB,IACrB,qBAAsB,GACtB,wBAAyB,GACzB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,yBAA0B,GAC1B,4BAA6B,GAC7B,oBAAqB,IACrB,uBAAwB,IACxB,wBAAyB,GACzB,2BAA4B,GAC5B,mBAAoB,GACpB,sBAAuB,GACvB,kBAAmB,IACnB,qBAAsB,IACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,6BAA8B,GAC9B,gCAAiC,GACjC,wBAAyB,IACzB,2BAA4B,IAC5B,4BAA6B,GAC7B,+BAAgC,GAChC,kBAAmB,GACnB,qBAAsB,GACtB,aAAc,IACd,gBAAiB,IACjB,iBAAkB,GAClB,oBAAqB,GACrB,oBAAqB,GACrB,uBAAwB,GACxB,eAAgB,IAChB,kBAAmB,IACnB,mBAAoB,GACpB,sBAAuB,GACvB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,oBAAqB,IACrB,uBAAwB,IACxB,eAAgB,IAChB,kBAAmB,IACnB,mBAAoB,GACpB,sBAAuB,GACvB,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,iCAAkC,IAClC,oCAAqC,IACrC,4BAA6B,IAC7B,+BAAgC,IAChC,gCAAiC,GACjC,mCAAoC,GACpC,sBAAuB,IACvB,yBAA0B,IAC1B,iBAAkB,IAClB,oBAAqB,IACrB,qBAAsB,GACtB,wBAAyB,GACzB,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,UAAW,GACX,aAAc,GACd,kBAAmB,IACnB,qBAAsB,IACtB,aAAc,IACd,gBAAiB,IACjB,iBAAkB,GAClB,oBAAqB,GACrB,0BAA2B,IAC3B,6BAA8B,IAC9B,qBAAsB,IACtB,wBAAyB,IACzB,yBAA0B,GAC1B,4BAA6B,GAC7B,uBAAwB,IACxB,0BAA2B,IAC3B,kBAAmB,IACnB,qBAAsB,IACtB,sBAAuB,GACvB,yBAA0B,GAC1B,kBAAmB,IACnB,qBAAsB,IACtB,aAAc,IACd,gBAAiB,IACjB,iBAAkB,GAClB,oBAAqB,GACrB,2BAA4B,IAC5B,8BAA+B,IAC/B,sBAAuB,IACvB,yBAA0B,IAC1B,0BAA2B,GAC3B,6BAA8B,GAC9B,sBAAuB,IACvB,yBAA0B,IAC1B,iBAAkB,IAClB,oBAAqB,IACrB,qBAAsB,GACtB,wBAAyB,GACzB,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,0BAA2B,IAC3B,6BAA8B,IAC9B,qBAAsB,IACtB,wBAAyB,IACzB,yBAA0B,GAC1B,4BAA6B,GAC7B,oBAAqB,IACrB,uBAAwB,IACxB,eAAgB,IAChB,kBAAmB,IACnB,mBAAoB,GACpB,sBAAuB,GACvB,qBAAsB,IACtB,wBAAyB,IACzB,gBAAiB,IACjB,mBAAoB,IACpB,oBAAqB,GACrB,uBAAwB,GACxB,yBAA0B,IAC1B,4BAA6B,IAC7B,oBAAqB,IACrB,uBAAwB,IACxB,wBAAyB,GACzB,2BAA4B,GAC5B,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,yBAA0B,IAC1B,4BAA6B,IAC7B,oBAAqB,IACrB,uBAAwB,IACxB,wBAAyB,GACzB,2BAA4B,GAC5B,uBAAwB,IACxB,0BAA2B,IAC3B,kBAAmB,IACnB,qBAAsB,IACtB,sBAAuB,GACvB,yBAA0B,GAC1B,oBAAqB,IACrB,uBAAwB,IACxB,eAAgB,IAChB,kBAAmB,IACnB,mBAAoB,GACpB,sBAAuB,GACvB,6BAA8B,IAC9B,gCAAiC,IACjC,wBAAyB,IACzB,2BAA4B,IAC5B,4BAA6B,GAC7B,+BAAgC,GAChC,6BAA8B,IAC9B,gCAAiC,IACjC,wBAAyB,IACzB,2BAA4B,IAC5B,4BAA6B,GAC7B,+BAAgC,GAChC,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,qBAAsB,IACtB,wBAAyB,IACzB,gBAAiB,IACjB,mBAAoB,IACpB,oBAAqB,GACrB,uBAAwB,GACxB,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,GACtB,8BAA+B,IAC/B,iCAAkC,IAClC,yBAA0B,IAC1B,4BAA6B,IAC7B,6BAA8B,GAC9B,gCAAiC,GACjC,qBAAsB,IACtB,wBAAyB,IACzB,gBAAiB,IACjB,mBAAoB,IACpB,oBAAqB,GACrB,uBAAwB,GACxB,oBAAqB,IACrB,uBAAwB,IACxB,eAAgB,IAChB,kBAAmB,IACnB,mBAAoB,GACpB,sBAAuB,GACvB,mBAAoB,IACpB,sBAAuB,IACvB,cAAe,IACf,iBAAkB,IAClB,kBAAmB,GACnB,qBAAsB,IAIvB,SAAS87B,EAAeC,GACvB,IAAIhiC,EAAKiiC,EAAsBD,GAC/B,OAAOntC,EAAoBmL,GAE5B,SAASiiC,EAAsBD,GAC9B,IAAIntC,EAAoBa,EAAEuQ,EAAK+7B,GAAM,CACpC,IAAIh+B,EAAI,IAAIkL,MAAM,uBAAyB8yB,EAAM,KAEjD,MADAh+B,EAAEsM,KAAO,mBACHtM,EAEP,OAAOiC,EAAI+7B,GAEZD,EAAel1B,KAAO,WACrB,OAAOlX,OAAOkX,KAAK5G,IAEpB87B,EAAep3B,QAAUs3B,EACzBjtC,EAAOD,QAAUgtC,EACjBA,EAAe/hC,GAAK,K,8BC3WpB,4GAmBA,aAME,WAAYiI,EAAkBnL,EAAYqH,GAA1C,WACEnH,KAAKiL,iBAAmBA,EACxBjL,KAAKF,WAAaA,EAClBE,KAAKmH,YAAcA,EACnB,IAAET,QAAQ,eAAa,SAACw+B,EAAa1rC,GACnC,EAAKA,GAAO,IAAI0rC,EAAO,EAAKj6B,iBAAkB,EAAKnL,WAAY,EAAKqH,gBA2P1E,OAtQA,0DAgBE,YAAAg+B,cAAA,sBACQC,EAAoB,GAO1B,OANA,IAAE1+B,QAAQ,YAAU,SAACjH,IACqC,IAApD,EAAKwL,iBAAiBQ,SAAShM,EAAQA,UAEzC2lC,EAAW58B,KAAK/I,MAGb2lC,GAGT,YAAAC,sBAAA,sBACQC,EAAgB,WAASp2B,QAAO,SAACzP,GAAY,SAAKwL,iBAAiBQ,SAAShM,EAA/B,YACnD,OAAO,YAAe6lC,IAGxB,YAAAC,oBAAA,WACE,IAAMH,EAAaplC,KAAKmlC,gBACxB,OAAO,IAAEl8B,IAAIm8B,GAAY,SAAC,G,IAAEh/B,EAAS,YACnC,OAAO,YAAwBA,OAwDnC,YAAAE,MAAA,SAAM/G,GAAN,WACQimC,EAAkB,GAClBvwB,EAAWjV,KAAKulC,sBAYtB,OAXA,IAAE7+B,QAAQuO,GAAU,SAACxV,GACnB,IAAMgmC,EAAc,IAAE18B,UAAUxJ,GAC1B4P,EAAU,IAAED,OAAOu2B,EAAYt2B,SAAS,SAACxI,GAAS,OAAAA,EAAKlH,UAAL,KAExD,GADAgmC,EAAYt2B,QAAUA,EAClBs2B,EAAYt2B,QAAQ/F,OAAS,EAAG,CAClC,IAAMs8B,EAAc,EAAK,UAAG,IAAEvc,QAAQ1pB,GAAQ,eAAc6G,MAAMm/B,GAC9DC,GACFF,EAASh9B,KAAKk9B,OAII,IAApBF,EAASp8B,OACJsE,QAAQC,QAAQ,CAAE3M,KAAM,GAAI4yB,MAAO,eAAa+R,OAElDj4B,QAAQgD,IAAI80B,GAAU70B,MAAK,SAACi1B,GACjC,MAAO,CAAE5kC,KAAM,IAAE6P,QAAQ+0B,GAAUhS,MAAO,eAAa+R,UAS3D,YAAAj5B,gBAAA,SAAgBpG,EAAe/G,GAC7B,IAAMiH,EAAU,YAAiBF,GAC3B7G,EAAU,YAAwB+G,EAAO,WAAiB,IAEhE,GAAI,IAAE4B,QAAQ5B,KAAaA,EAAO,YAAkBA,EAAO,SAAe/G,EACxE,OAAOiO,QAAQC,QAAQ,IAEzB,GAAI3N,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAciN,gBAAiB,CAC3D,IAAMnG,EAASvG,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAciN,gBACrDlG,EACA,IAAE1N,IAAIyG,EAAS,sBAAkBgJ,IAEnC,GAAIhC,EACF,OAAOA,EAGX,OAAOmH,QAAQC,QAAQ,KAOzB,YAAAV,WAAA,SAAWxN,GACT,OAAIO,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAcwN,WACnCjN,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAcwN,aAE1C,IAQT,YAAAwE,WAAA,SAAWhS,EAASf,GAClB,OAAOsB,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAcgS,WAAW/S,IAQ5D,YAAA06B,SAAA,SAAS35B,EAASf,GAChB,OAAIsB,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAc25B,SACnCp5B,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAc25B,SAAS16B,GAEnD,IAQT,YAAAgY,kBAAA,SAAkBjX,EAAS6S,GACzB,OAAItS,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAciX,kBACnC1W,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAciX,kBAAkBpE,GAE5D,IAST,YAAAT,aAAA,SAAapS,EAASf,EAAQyS,GAC5B,OAAOnR,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAcoS,aAAanT,EAAQyS,IAStE,YAAA00B,aAAA,SAAapmC,EAASf,EAAQqL,GAC5B,OAAK/J,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAcomC,aAGtC7lC,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAcomC,aAAannC,EAAQqL,GAF3D,IASX,YAAAu0B,UAAA,SAAU7+B,EAASf,GACjB,GAAIsB,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAc6+B,UAC1C,OAAOt+B,KAAK,UAAG,IAAEmpB,QAAQ1pB,GAAQ,eAAc6+B,UAAU5/B,IAK7D,YAAA8T,eAAA,sBACQgzB,EAAkB,GAClBvwB,EAAWjV,KAAKulC,sBAItB,OAHA,IAAE7+B,QAAQuO,GAAU,SAACxV,GACnB+lC,EAASh9B,KAAK,EAAK,UAAG,IAAE2gB,QAAQ1pB,GAAQ,eAAc+S,qBAEhC,IAApBgzB,EAASp8B,OACJsE,QAAQC,QAAQ,MAGlBD,QAAQgD,IAAI80B,GAAU70B,MAAK,SAACi1B,GACjC,IAAIzyB,EAAS,UACTH,EAAU,2BAER8yB,EAAW,IAAEx2B,OACjBs2B,GACA,SAACvxB,EAAKC,GAKJ,MAJmB,UAAfA,EAAInB,SACM,KAARkB,IAAYA,GAAO,6BACvBA,GAAO,UAAGC,EAAI7U,QAAO,aAAK6U,EAAItB,QAAO,SAEhCqB,IAET,IAQF,OALIyxB,IACF3yB,EAAS,QACTH,EAAU8yB,GAGL,CACL3yB,OAAM,EACNH,QAAO,EACPI,MAAO,IAAE2yB,WAAW5yB,QAK1B,YAAAqtB,aAAA,SAAa/gC,EAASumC,GAAtB,WACE,OAAO,W,UAAC,kDACN,OAAK,EAAK,UAAG,IAAE7c,QAAQ1pB,GAAQ,eAAcumC,IAGtC,IAAK,UAAG,IAAE7c,QAAQ1pB,GAAQ,gBAAcumC,GAAO,QAAIC,GAFjD,KAKf,EAtQA,I,iCCjBA,IAAItgB,EAAMhtB,OAAOkB,UAAUC,eAEvBosC,EAAY,WAEZ,IADA,IAAIC,EAAQ,GACHluC,EAAI,EAAGA,EAAI,MAAOA,EACvBkuC,EAAM39B,KAAK,MAAQvQ,EAAI,GAAK,IAAM,IAAMA,EAAEqK,SAAS,KAAKshB,eAG5D,OAAOuiB,EANI,GAgCXC,EAAgB,SAAuBC,EAAQ9mC,GAE/C,IADA,IAAI4I,EAAM5I,GAAWA,EAAQ+mC,aAAe3tC,OAAOY,OAAO,MAAQ,GACzDtB,EAAI,EAAGA,EAAIouC,EAAOj9B,SAAUnR,OACR,IAAdouC,EAAOpuC,KACdkQ,EAAIlQ,GAAKouC,EAAOpuC,IAIxB,OAAOkQ,GA+JXnQ,EAAOD,QAAU,CACbquC,cAAeA,EACfzjC,OAvGS,SAA4B6G,EAAQ68B,GAC7C,OAAO1tC,OAAOkX,KAAKw2B,GAAQ/2B,QAAO,SAAU+E,EAAK7a,GAE7C,OADA6a,EAAI7a,GAAO6sC,EAAO7sC,GACX6a,IACR7K,IAoGHyJ,QArCU,SAAiB/Z,GAI3B,IAHA,IAAIymB,EAAQ,CAAC,CAAExX,IAAK,CAAEzP,EAAGQ,GAASuiB,KAAM,MACpC8qB,EAAO,GAEFtuC,EAAI,EAAGA,EAAI0nB,EAAMvW,SAAUnR,EAKhC,IAJA,IAAI0O,EAAOgZ,EAAM1nB,GACbkQ,EAAMxB,EAAKwB,IAAIxB,EAAK8U,MAEpB5L,EAAOlX,OAAOkX,KAAK1H,GACdq+B,EAAI,EAAGA,EAAI32B,EAAKzG,SAAUo9B,EAAG,CAClC,IAAIhtC,EAAMqW,EAAK22B,GACX1/B,EAAMqB,EAAI3O,GACK,iBAARsN,GAA4B,OAARA,IAAuC,IAAvBy/B,EAAKxgC,QAAQe,KACxD6Y,EAAMnX,KAAK,CAAEL,IAAKA,EAAKsT,KAAMjiB,IAC7B+sC,EAAK/9B,KAAK1B,IAKtB,OA/Ke,SAAsB6Y,GAGrC,IAFA,IAAIxX,EAEGwX,EAAMvW,QAAQ,CACjB,IAAIzC,EAAOgZ,EAAM8mB,MAGjB,GAFAt+B,EAAMxB,EAAKwB,IAAIxB,EAAK8U,MAEhBxP,MAAMhE,QAAQE,GAAM,CAGpB,IAFA,IAAIu+B,EAAY,GAEPF,EAAI,EAAGA,EAAIr+B,EAAIiB,SAAUo9B,OACR,IAAXr+B,EAAIq+B,IACXE,EAAUl+B,KAAKL,EAAIq+B,IAI3B7/B,EAAKwB,IAAIxB,EAAK8U,MAAQirB,GAI9B,OAAOv+B,EA2JAw+B,CAAahnB,IAmBpBinB,OAlGS,SAAUhgC,GACnB,IACI,OAAOigC,mBAAmBjgC,EAAImB,QAAQ,MAAO,MAC/C,MAAOf,GACL,OAAOJ,IA+FXkgC,OA3FS,SAAgBlgC,GAGzB,GAAmB,IAAfA,EAAIwC,OACJ,OAAOxC,EAMX,IAHA,IAAImgC,EAAwB,iBAARngC,EAAmBA,EAAMc,OAAOd,GAEhDogC,EAAM,GACD/uC,EAAI,EAAGA,EAAI8uC,EAAO39B,SAAUnR,EAAG,CACpC,IAAIK,EAAIyuC,EAAOE,WAAWhvC,GAGhB,KAANK,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAEtB0uC,GAAOD,EAAOG,OAAOjvC,GAIrBK,EAAI,IACJ0uC,GAAYd,EAAS5tC,GAIrBA,EAAI,KACJ0uC,GAAad,EAAS,IAAQ5tC,GAAK,GAAM4tC,EAAS,IAAY,GAAJ5tC,GAI1DA,EAAI,OAAUA,GAAK,MACnB0uC,GAAad,EAAS,IAAQ5tC,GAAK,IAAO4tC,EAAS,IAAS5tC,GAAK,EAAK,IAAS4tC,EAAS,IAAY,GAAJ5tC,IAIpGL,GAAK,EACLK,EAAI,QAAiB,KAAJA,IAAc,GAA8B,KAAvByuC,EAAOE,WAAWhvC,IACxD+uC,GAAOd,EAAS,IAAQ5tC,GAAK,IACvB4tC,EAAS,IAAS5tC,GAAK,GAAM,IAC7B4tC,EAAS,IAAS5tC,GAAK,EAAK,IAC5B4tC,EAAS,IAAY,GAAJ5tC,IAG3B,OAAO0uC,GA2CPG,SAdW,SAAkBh/B,GAC7B,OAAIA,YAIMA,EAAIi/B,aAAej/B,EAAIi/B,YAAYD,UAAYh/B,EAAIi/B,YAAYD,SAASh/B,KAUlFk/B,SAnBW,SAAkBl/B,GAC7B,MAA+C,oBAAxCxP,OAAOkB,UAAUyI,SAASlK,KAAK+P,IAmBtCm/B,MApKQ,SAASA,EAAM99B,EAAQ68B,EAAQ9mC,GACvC,IAAK8mC,EACD,OAAO78B,EAGX,GAAsB,iBAAX68B,EAAqB,CAC5B,GAAIp6B,MAAMhE,QAAQuB,GACdA,EAAOhB,KAAK69B,OACT,IAAsB,iBAAX78B,EAKd,MAAO,CAACA,EAAQ68B,IAJZ9mC,EAAQ+mC,cAAgB/mC,EAAQgoC,kBAAoB5hB,EAAIvtB,KAAKO,OAAOkB,UAAWwsC,MAC/E78B,EAAO68B,IAAU,GAMzB,OAAO78B,EAGX,GAAsB,iBAAXA,EACP,MAAO,CAACA,GAAQiG,OAAO42B,GAG3B,IAAImB,EAAch+B,EAKlB,OAJIyC,MAAMhE,QAAQuB,KAAYyC,MAAMhE,QAAQo+B,KACxCmB,EAAcpB,EAAc58B,EAAQjK,IAGpC0M,MAAMhE,QAAQuB,IAAWyC,MAAMhE,QAAQo+B,IACvCA,EAAO3/B,SAAQ,SAAUC,EAAM1O,GACvB0tB,EAAIvtB,KAAKoR,EAAQvR,GACbuR,EAAOvR,IAA2B,iBAAduR,EAAOvR,GAC3BuR,EAAOvR,GAAKqvC,EAAM99B,EAAOvR,GAAI0O,EAAMpH,GAEnCiK,EAAOhB,KAAK7B,GAGhB6C,EAAOvR,GAAK0O,KAGb6C,GAGJ7Q,OAAOkX,KAAKw2B,GAAQ/2B,QAAO,SAAU+E,EAAK7a,GAC7C,IAAIN,EAAQmtC,EAAO7sC,GAOnB,OALImsB,EAAIvtB,KAAKic,EAAK7a,GACd6a,EAAI7a,GAAO8tC,EAAMjzB,EAAI7a,GAAMN,EAAOqG,GAElC8U,EAAI7a,GAAON,EAERmb,IACRmzB,M,6BCjGP,IAAIz/B,EAAUL,OAAO7N,UAAUkO,QAC3B0/B,EAAkB,OAEtBzvC,EAAOD,QAAU,CACb,QAAW,UACX2vC,WAAY,CACRC,QAAS,SAAUzuC,GACf,OAAO6O,EAAQ3P,KAAKc,EAAOuuC,EAAiB,MAEhDG,QAAS,SAAU1uC,GACf,OAAOA,IAGfyuC,QAAS,UACTC,QAAS,Y,6BChBb,oEAGA,aAIE,WAAYtxB,EAAQC,GAClB5d,OAAOgK,OAAO2T,EAAQuxB,EAAYC,SAElCxxB,EAAOsqB,UAAY,SAACC,EAAUC,IACY,IAApCxqB,EAAO9M,OAAOhD,QAAQq6B,KACxBvqB,EAAO9M,OAAOhD,QAAQs6B,IAAY,GAEpCxqB,EAAOY,YAGTZ,EAAOgqB,OAEX,OAhBA,kCAgBA,EAhBA,GAuHM,SAAUyH,IACd,MAAO,CACLnxB,SAvGa,6rHAwGbC,WAAYgxB,EACZ/wB,SAAU,IACVC,MAAO,CACLvN,OAAQ,IACRwN,WAAY,IACZtY,OAAQ,IACR+X,WAAY,IACZQ,mBAAoB,IACpBC,SAAU,MAKD,mBAAC1e,EAAc0d,GAC5B2xB,EAAYC,QAAU5xB,EACtB,IAAWS,UAAUne,EAAMuvC,K,kEC1I7B,IAAI7nC,EAAY,EAAQ,KACpB6G,EAAQ,EAAQ,KAChBihC,EAAU,EAAQ,KAEtBhwC,EAAOD,QAAU,CACbiwC,QAASA,EACTjhC,MAAOA,EACP7G,UAAWA,I,gzlBCPf,IAAI+nC,EAAQ,EAAQ,KAChBD,EAAU,EAAQ,KAElBE,EAAwB,CACxBC,SAAU,SAAkBxkB,GACxB,OAAOA,EAAS,MAEpBykB,QAAS,SAAiBzkB,EAAQnqB,GAC9B,OAAOmqB,EAAS,IAAMnqB,EAAM,KAEhC6uC,OAAQ,SAAgB1kB,GACpB,OAAOA,IAIX2kB,EAAQC,KAAK1uC,UAAU2uC,YAEvBjmC,EAAW,CACXkmC,UAAW,IACX3B,QAAQ,EACR4B,QAAST,EAAMnB,OACf6B,kBAAkB,EAClBC,cAAe,SAAuBroC,GAClC,OAAO+nC,EAAMlwC,KAAKmI,IAEtBsoC,WAAW,EACXC,oBAAoB,GAGpB5oC,EAAY,SAASA,EACrBvG,EACAgqB,EACAolB,EACAD,EACAD,EACAH,EACAx5B,EACA85B,EACAC,EACAL,EACAM,EACAP,GAEA,IAAIxgC,EAAMxO,EACV,GAAsB,mBAAXuV,EACP/G,EAAM+G,EAAOyU,EAAQxb,QAClB,GAAIA,aAAeogC,KACtBpgC,EAAMygC,EAAczgC,QACjB,GAAY,OAARA,EAAc,CACrB,GAAI2gC,EACA,OAAOJ,IAAYC,EAAmBD,EAAQ/kB,EAAQphB,EAASmmC,SAAW/kB,EAG9Exb,EAAM,GAGV,GAAmB,iBAARA,GAAmC,iBAARA,GAAmC,kBAARA,GAAqB8/B,EAAMd,SAASh/B,GACjG,OAAIugC,EAEO,CAACQ,EADOP,EAAmBhlB,EAAS+kB,EAAQ/kB,EAAQphB,EAASmmC,UACtC,IAAMQ,EAAUR,EAAQvgC,EAAK5F,EAASmmC,WAEjE,CAACQ,EAAUvlB,GAAU,IAAMulB,EAAUxhC,OAAOS,KAGvD,IAMIghC,EANAt/B,EAAS,GAEb,QAAmB,IAAR1B,EACP,OAAO0B,EAIX,GAAIoC,MAAMhE,QAAQiH,GACdi6B,EAAUj6B,MACP,CACH,IAAIW,EAAOlX,OAAOkX,KAAK1H,GACvBghC,EAAUH,EAAOn5B,EAAKm5B,KAAKA,GAAQn5B,EAGvC,IAAK,IAAI5X,EAAI,EAAGA,EAAIkxC,EAAQ//B,SAAUnR,EAAG,CACrC,IAAIuB,EAAM2vC,EAAQlxC,GAEd4wC,GAA0B,OAAb1gC,EAAI3O,KAKjBqQ,EADAoC,MAAMhE,QAAQE,GACL0B,EAAO4F,OAAOvP,EACnBiI,EAAI3O,GACJuvC,EAAoBplB,EAAQnqB,GAC5BuvC,EACAD,EACAD,EACAH,EACAx5B,EACA85B,EACAC,EACAL,EACAM,EACAP,IAGK9+B,EAAO4F,OAAOvP,EACnBiI,EAAI3O,GACJmqB,GAAUslB,EAAY,IAAMzvC,EAAM,IAAMA,EAAM,KAC9CuvC,EACAD,EACAD,EACAH,EACAx5B,EACA85B,EACAC,EACAL,EACAM,EACAP,KAKZ,OAAO9+B,GAGX7R,EAAOD,QAAU,SAAU4B,EAAQyvC,GAC/B,IAAIjhC,EAAMxO,EACN4F,EAAU6pC,EAAOnB,EAAMtlC,OAAO,GAAIymC,GAAQ,GAE9C,GAAwB,OAApB7pC,EAAQmpC,cAAwCngC,IAApBhJ,EAAQmpC,SAAoD,mBAApBnpC,EAAQmpC,QAC5E,MAAM,IAAIW,UAAU,iCAGxB,IAAIZ,OAAyC,IAAtBlpC,EAAQkpC,UAA4BlmC,EAASkmC,UAAYlpC,EAAQkpC,UACpFK,EAA2D,kBAA/BvpC,EAAQupC,mBAAmCvpC,EAAQupC,mBAAqBvmC,EAASumC,mBAC7GD,EAAyC,kBAAtBtpC,EAAQspC,UAA0BtpC,EAAQspC,UAAYtmC,EAASsmC,UAClF/B,EAAmC,kBAAnBvnC,EAAQunC,OAAuBvnC,EAAQunC,OAASvkC,EAASukC,OACzE4B,EAAqC,mBAApBnpC,EAAQmpC,QAAyBnpC,EAAQmpC,QAAUnmC,EAASmmC,QAC7EM,EAA+B,mBAAjBzpC,EAAQypC,KAAsBzpC,EAAQypC,KAAO,KAC3DC,OAAyC,IAAtB1pC,EAAQ0pC,WAAoC1pC,EAAQ0pC,UACvEL,EAAiD,mBAA1BrpC,EAAQqpC,cAA+BrpC,EAAQqpC,cAAgBrmC,EAASqmC,cAC/FD,EAAuD,kBAA7BppC,EAAQopC,iBAAiCppC,EAAQopC,iBAAmBpmC,EAASomC,iBAC3G,QAA8B,IAAnBppC,EAAQiB,OACfjB,EAAQiB,OAASwnC,EAAiB,aAC/B,IAAKrvC,OAAOkB,UAAUC,eAAe1B,KAAK4vC,EAAQN,WAAYnoC,EAAQiB,QACzE,MAAM,IAAI6oC,UAAU,mCAExB,IACIF,EACAj6B,EAFAg6B,EAAYlB,EAAQN,WAAWnoC,EAAQiB,QAIb,mBAAnBjB,EAAQ2P,OAEf/G,GADA+G,EAAS3P,EAAQ2P,QACJ,GAAI/G,GACV8D,MAAMhE,QAAQ1I,EAAQ2P,UAE7Bi6B,EADAj6B,EAAS3P,EAAQ2P,QAIrB,IAMIo6B,EANAz5B,EAAO,GAEX,GAAmB,iBAAR1H,GAA4B,OAARA,EAC3B,MAAO,GAKPmhC,EADA/pC,EAAQ+pC,eAAepB,EACT3oC,EAAQ+pC,YACf,YAAa/pC,EACNA,EAAQ6oC,QAAU,UAAY,SAE9B,UAGlB,IAAIW,EAAsBb,EAAsBoB,GAE3CH,IACDA,EAAUxwC,OAAOkX,KAAK1H,IAGtB6gC,GACAG,EAAQH,KAAKA,GAGjB,IAAK,IAAI/wC,EAAI,EAAGA,EAAIkxC,EAAQ//B,SAAUnR,EAAG,CACrC,IAAIuB,EAAM2vC,EAAQlxC,GAEd4wC,GAA0B,OAAb1gC,EAAI3O,KAIrBqW,EAAOA,EAAKJ,OAAOvP,EACfiI,EAAI3O,GACJA,EACAuvC,EACAD,EACAD,EACA/B,EAAS4B,EAAU,KACnBx5B,EACA85B,EACAC,EACAL,EACAM,EACAP,KAIR,IAAIY,EAAS15B,EAAK3D,KAAKu8B,GACnB9kB,GAAoC,IAA3BpkB,EAAQiqC,eAA0B,IAAM,GAErD,OAAOD,EAAOngC,OAAS,EAAIua,EAAS4lB,EAAS,K,6BC9MjD,IAAItB,EAAQ,EAAQ,KAEhBtiB,EAAMhtB,OAAOkB,UAAUC,eAEvByI,EAAW,CACX0mC,WAAW,EACX1B,iBAAiB,EACjBkC,WAAY,GACZC,QAASzB,EAAMrB,OACf6B,UAAW,IACXkB,MAAO,EACPC,eAAgB,IAChBtD,cAAc,EACdwC,oBAAoB,GAmEpBe,EAAY,SAA8BC,EAAUhjC,EAAKvH,GACzD,GAAKuqC,EAAL,CAKA,IAAItwC,EAAM+F,EAAQ0pC,UAAYa,EAAS/hC,QAAQ,cAAe,QAAU+hC,EAKpEC,EAAQ,gBAIRC,EALW,eAKQl0B,KAAKtc,GACxBywC,EAASD,EAAUxwC,EAAIob,MAAM,EAAGo1B,EAAQlgC,OAAStQ,EAIjDqW,EAAO,GACX,GAAIo6B,EAAQ,CAGR,IAAK1qC,EAAQ+mC,cAAgB3gB,EAAIvtB,KAAKO,OAAOkB,UAAWowC,KAC/C1qC,EAAQgoC,gBACT,OAIR13B,EAAKrH,KAAKyhC,GAMd,IADA,IAAIhyC,EAAI,EAC+B,QAA/B+xC,EAAUD,EAAMj0B,KAAKtc,KAAkBvB,EAAIsH,EAAQoqC,OAAO,CAE9D,GADA1xC,GAAK,GACAsH,EAAQ+mC,cAAgB3gB,EAAIvtB,KAAKO,OAAOkB,UAAWmwC,EAAQ,GAAGp1B,MAAM,GAAI,MACpErV,EAAQgoC,gBACT,OAGR13B,EAAKrH,KAAKwhC,EAAQ,IAStB,OAJIA,GACAn6B,EAAKrH,KAAK,IAAMhP,EAAIob,MAAMo1B,EAAQlgC,OAAS,KAnFjC,SAAUqyB,EAAOr1B,EAAKvH,GAGpC,IAFA,IAAI2qC,EAAOpjC,EAEF7O,EAAIkkC,EAAM/yB,OAAS,EAAGnR,GAAK,IAAKA,EAAG,CACxC,IAAIkQ,EACAgiC,EAAOhO,EAAMlkC,GAEjB,GAAa,OAATkyC,EAEAhiC,GADAA,EAAM,IACIsH,OAAOy6B,OACd,CACH/hC,EAAM5I,EAAQ+mC,aAAe3tC,OAAOY,OAAO,MAAQ,GACnD,IAAI6wC,EAA+B,MAAnBD,EAAKjD,OAAO,IAA+C,MAAjCiD,EAAKjD,OAAOiD,EAAK/gC,OAAS,GAAa+gC,EAAKv1B,MAAM,GAAI,GAAKu1B,EACjGrgC,EAAQkM,SAASo0B,EAAW,KAE3BC,MAAMvgC,IACJqgC,IAASC,GACT1iC,OAAOoC,KAAWsgC,GAClBtgC,GAAS,GACRvK,EAAQ+qC,aAAexgC,GAASvK,EAAQkqC,YAE5CthC,EAAM,IACF2B,GAASogC,EAEb/hC,EAAIiiC,GAAaF,EAIzBA,EAAO/hC,EAGX,OAAO+hC,EAuDAK,CAAY16B,EAAM/I,EAAKvH,KAGlCvH,EAAOD,QAAU,SAAU6O,EAAKwiC,GAC5B,IAAI7pC,EAAU6pC,EAAOnB,EAAMtlC,OAAO,GAAIymC,GAAQ,GAE9C,GAAwB,OAApB7pC,EAAQmqC,cAAwCnhC,IAApBhJ,EAAQmqC,SAAoD,mBAApBnqC,EAAQmqC,QAC5E,MAAM,IAAIL,UAAU,iCAexB,GAZA9pC,EAAQirC,mBAAkD,IAA9BjrC,EAAQirC,kBACpCjrC,EAAQkpC,UAAyC,iBAAtBlpC,EAAQkpC,WAA0BR,EAAMZ,SAAS9nC,EAAQkpC,WAAalpC,EAAQkpC,UAAYlmC,EAASkmC,UAC9HlpC,EAAQoqC,MAAiC,iBAAlBpqC,EAAQoqC,MAAqBpqC,EAAQoqC,MAAQpnC,EAASonC,MAC7EpqC,EAAQkqC,WAA2C,iBAAvBlqC,EAAQkqC,WAA0BlqC,EAAQkqC,WAAalnC,EAASknC,WAC5FlqC,EAAQ+qC,aAAsC,IAAxB/qC,EAAQ+qC,YAC9B/qC,EAAQmqC,QAAqC,mBAApBnqC,EAAQmqC,QAAyBnqC,EAAQmqC,QAAUnnC,EAASmnC,QACrFnqC,EAAQ0pC,UAAyC,kBAAtB1pC,EAAQ0pC,UAA0B1pC,EAAQ0pC,UAAY1mC,EAAS0mC,UAC1F1pC,EAAQ+mC,aAA+C,kBAAzB/mC,EAAQ+mC,aAA6B/mC,EAAQ+mC,aAAe/jC,EAAS+jC,aACnG/mC,EAAQgoC,gBAAqD,kBAA5BhoC,EAAQgoC,gBAAgChoC,EAAQgoC,gBAAkBhlC,EAASglC,gBAC5GhoC,EAAQqqC,eAAmD,iBAA3BrqC,EAAQqqC,eAA8BrqC,EAAQqqC,eAAiBrnC,EAASqnC,eACxGrqC,EAAQupC,mBAA2D,kBAA/BvpC,EAAQupC,mBAAmCvpC,EAAQupC,mBAAqBvmC,EAASumC,mBAEzG,KAARliC,SAAcA,EACd,OAAOrH,EAAQ+mC,aAAe3tC,OAAOY,OAAO,MAAQ,GASxD,IANA,IAAIkxC,EAAyB,iBAAR7jC,EA9IP,SAAgCA,EAAKrH,GAMnD,IALA,IAAI4I,EAAM,GACNuiC,EAAWnrC,EAAQirC,kBAAoB5jC,EAAImB,QAAQ,MAAO,IAAMnB,EAChE6uB,EAAQl2B,EAAQqqC,iBAAmBe,SAAWpiC,EAAYhJ,EAAQqqC,eAClE/zB,EAAQ60B,EAASjkC,MAAMlH,EAAQkpC,UAAWhT,GAErCx9B,EAAI,EAAGA,EAAI4d,EAAMzM,SAAUnR,EAAG,CACnC,IAKIuB,EAAKsN,EALL8jC,EAAO/0B,EAAM5d,GAEb4yC,EAAmBD,EAAK7kC,QAAQ,MAChC+kC,GAA4B,IAAtBD,EAA0BD,EAAK7kC,QAAQ,KAAO8kC,EAAmB,GAG9D,IAATC,GACAtxC,EAAM+F,EAAQmqC,QAAQkB,EAAMroC,EAASmnC,SACrC5iC,EAAMvH,EAAQupC,mBAAqB,KAAO,KAE1CtvC,EAAM+F,EAAQmqC,QAAQkB,EAAKh2B,MAAM,EAAGk2B,GAAMvoC,EAASmnC,SACnD5iC,EAAMvH,EAAQmqC,QAAQkB,EAAKh2B,MAAMk2B,EAAM,GAAIvoC,EAASmnC,UAEpD/jB,EAAIvtB,KAAK+P,EAAK3O,GACd2O,EAAI3O,GAAO,GAAGiW,OAAOtH,EAAI3O,IAAMiW,OAAO3I,GAEtCqB,EAAI3O,GAAOsN,EAInB,OAAOqB,EAmHiC4iC,CAAYnkC,EAAKrH,GAAWqH,EAChEuB,EAAM5I,EAAQ+mC,aAAe3tC,OAAOY,OAAO,MAAQ,GAInDsW,EAAOlX,OAAOkX,KAAK46B,GACdxyC,EAAI,EAAGA,EAAI4X,EAAKzG,SAAUnR,EAAG,CAClC,IAAIuB,EAAMqW,EAAK5X,GACX+yC,EAASnB,EAAUrwC,EAAKixC,EAAQjxC,GAAM+F,GAC1C4I,EAAM8/B,EAAMX,MAAMn/B,EAAK6iC,EAAQzrC,GAGnC,OAAO0oC,EAAMh1B,QAAQ9K,K,gBC5KzB,IAAIc,EAAM,CACT,mBAAoB,EACpB,0BAA2B,GAC3B,6BAA8B,GAC9B,wBAAyB,IACzB,4BAA6B,GAC7B,yBAA0B,GAC1B,4BAA6B,GAC7B,uBAAwB,IACxB,2BAA4B,GAC5B,qBAAsB,GACtB,wBAAyB,GACzB,mBAAoB,IACpB,uBAAwB,GACxB,sBAAuB,GACvB,yBAA0B,GAC1B,oBAAqB,IACrB,wBAAyB,GACzB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,4BAA6B,GAC7B,+BAAgC,GAChC,0BAA2B,IAC3B,8BAA+B,GAC/B,4BAA6B,GAC7B,+BAAgC,GAChC,0BAA2B,IAC3B,8BAA+B,GAC/B,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,sBAAuB,GACvB,yBAA0B,GAC1B,oBAAqB,IACrB,wBAAyB,GACzB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,yBAA0B,GAC1B,4BAA6B,GAC7B,uBAAwB,IACxB,2BAA4B,GAC5B,mBAAoB,GACpB,sBAAuB,GACvB,qBAAsB,IACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,6BAA8B,GAC9B,gCAAiC,GACjC,2BAA4B,IAC5B,+BAAgC,GAChC,kBAAmB,GACnB,qBAAsB,GACtB,gBAAiB,IACjB,oBAAqB,GACrB,oBAAqB,GACrB,uBAAwB,GACxB,kBAAmB,IACnB,sBAAuB,GACvB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,GACpB,sBAAuB,GACvB,iBAAkB,IAClB,qBAAsB,GACtB,oBAAqB,IACrB,uBAAwB,IACxB,kBAAmB,IACnB,sBAAuB,GACvB,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,iCAAkC,IAClC,oCAAqC,IACrC,+BAAgC,IAChC,mCAAoC,GACpC,sBAAuB,IACvB,yBAA0B,IAC1B,oBAAqB,IACrB,wBAAyB,GACzB,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,kBAAmB,IACnB,qBAAsB,IACtB,gBAAiB,IACjB,oBAAqB,GACrB,0BAA2B,IAC3B,6BAA8B,IAC9B,wBAAyB,IACzB,4BAA6B,GAC7B,uBAAwB,IACxB,0BAA2B,IAC3B,qBAAsB,IACtB,yBAA0B,GAC1B,kBAAmB,IACnB,qBAAsB,IACtB,gBAAiB,IACjB,oBAAqB,GACrB,2BAA4B,IAC5B,8BAA+B,IAC/B,yBAA0B,IAC1B,6BAA8B,GAC9B,sBAAuB,IACvB,yBAA0B,IAC1B,oBAAqB,IACrB,wBAAyB,GACzB,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,0BAA2B,IAC3B,6BAA8B,IAC9B,wBAAyB,IACzB,4BAA6B,GAC7B,oBAAqB,IACrB,uBAAwB,IACxB,kBAAmB,IACnB,sBAAuB,GACvB,qBAAsB,IACtB,wBAAyB,IACzB,mBAAoB,IACpB,uBAAwB,GACxB,yBAA0B,IAC1B,4BAA6B,IAC7B,uBAAwB,IACxB,2BAA4B,GAC5B,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,yBAA0B,IAC1B,4BAA6B,IAC7B,uBAAwB,IACxB,2BAA4B,GAC5B,uBAAwB,IACxB,0BAA2B,IAC3B,qBAAsB,IACtB,yBAA0B,GAC1B,oBAAqB,IACrB,uBAAwB,IACxB,kBAAmB,IACnB,sBAAuB,GACvB,6BAA8B,IAC9B,gCAAiC,IACjC,2BAA4B,IAC5B,+BAAgC,GAChC,6BAA8B,IAC9B,gCAAiC,IACjC,2BAA4B,IAC5B,+BAAgC,GAChC,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,qBAAsB,IACtB,wBAAyB,IACzB,mBAAoB,IACpB,uBAAwB,GACxB,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,GACtB,8BAA+B,IAC/B,iCAAkC,IAClC,4BAA6B,IAC7B,gCAAiC,GACjC,qBAAsB,IACtB,wBAAyB,IACzB,mBAAoB,IACpB,uBAAwB,GACxB,oBAAqB,IACrB,uBAAwB,IACxB,kBAAmB,IACnB,sBAAuB,GACvB,mBAAoB,IACpB,sBAAuB,IACvB,iBAAkB,IAClB,qBAAsB,IAIvB,SAAS87B,EAAeC,GACvB,IAAIhiC,EAAKiiC,EAAsBD,GAC/B,OAAOntC,EAAoBmL,GAE5B,SAASiiC,EAAsBD,GAC9B,IAAIntC,EAAoBa,EAAEuQ,EAAK+7B,GAAM,CACpC,IAAIh+B,EAAI,IAAIkL,MAAM,uBAAyB8yB,EAAM,KAEjD,MADAh+B,EAAEsM,KAAO,mBACHtM,EAEP,OAAOiC,EAAI+7B,GAEZD,EAAel1B,KAAO,WACrB,OAAOlX,OAAOkX,KAAK5G,IAEpB87B,EAAep3B,QAAUs3B,EACzBjtC,EAAOD,QAAUgtC,EACjBA,EAAe/hC,GAAK,K,27CC7OdlD,EAAa,0BAEbmrC,EAAW,CACfxd,IAAK,wBACLra,MAAO,QACP83B,SAAU,MAGNC,EAAc,CAClB1d,IAAK,gCACLra,MAAO,wBACP83B,SAAU,MAOZ,SAAeE,I,gHACb,OAAIH,EAASC,UAAYC,EAAYD,SACnC,GAAO,CAACD,EAASC,SAAUC,EAAYD,WAElB,GAAMprC,EAAWhH,IAAI,iB,cAAtCuyC,EAAiB,SACnBH,EAA4D,QAAjD,EAAAG,EAAQrlC,MAAK,SAACW,GAAS,OAAAA,EAAK8mB,MAAQwd,EAAb,cAA0B,eAAEjoC,GAC9DsoC,EAAiE,QAApD,EAAAD,EAAQrlC,MAAK,SAACW,GAAS,OAAAA,EAAK8mB,MAAQ0d,EAAb,cAA6B,eAAEnoC,GAClEkoC,EAAD,MACa,GAAMprC,EAAWyrC,KAAK,eAAgBN,I,OAA/CO,EAAS,SACfN,GAAWM,aAAM,EAANA,EAAQxoC,KAAM,E,wBAEtBsoC,EAAD,MACe,GAAMxrC,EAAWyrC,KAAK,eAAgBJ,I,OAAjDM,EAAW,SACjBH,GAAaG,aAAQ,EAARA,EAAUzoC,KAAM,E,iBAI/B,OAFAioC,EAASC,SAAWA,EACpBC,EAAYD,SAAWI,EACvB,GAAO,CAACJ,EAAUI,YAMpB,sBACQI,EAAU5rC,EAAWyrC,KAAK9xC,KAAK,2BAC/BkyC,EAAW1pC,OAAO2pC,SAASC,SAASplC,MAAM,KAAKyI,QAAO,SAACvI,GAAS,OAAAA,KAAM,GAC5E7G,EAAWyrC,KAAO,SAAO1qC,EAAKG,GAAI,qC,kEAEpB,2BAARH,GAAoCG,EAAK2qC,WAAaA,EAAtD,MAC6B,GAAMP,K,OAA/B,EAAyB,SAAxBF,EAAQ,KAAEI,EAAU,KAC3BtqC,EAAKkqC,SAAWlqC,EAAKwB,KAAKspC,SAAS,sBAAwBR,EAAaJ,E,iBAE1E,SAAOQ,EAAQ7qC,EAAKG,YAIxB+qC,GAEA,iBAQE,WAAYz1B,EAAa01B,EAAgBC,G,MACvCjsC,KAAKksC,YAAYC,kBAAkBnsC,KAAKosC,WAAW3yC,KAAKuG,OACxDA,KAAKisC,GAAKA,EAELjsC,KAAKqsC,WAERrsC,KAAKqsC,SAAW,IAIlB,IAAMA,EAAWrsC,KAAKqsC,UACjBA,EAAS5gC,WACZ4gC,EAAS5gC,SAAW,IAEtBzL,KAAKssC,YAAa,EACD,QAAb,EAAAtsC,KAAKqsC,gBAAQ,eAAEE,WACG5zC,OAAOkR,OAAO,SAAO2iC,aAAat9B,QAAO,SAACu9B,GAC5D,OAAOA,EAAGn1B,OAAS,OAELlO,OAAS,IACvBpJ,KAAKssC,YAAa,IA6C1B,OAzEA,sCAiCQ,YAAAI,aAAN,SAAmBC,EAAsBzB,G,gGAEjB,SAAMprC,EAAWhH,IAAI,8BAAuB6zC,K,OAElE,OAFQC,EAAc,SAAL,UAEjB,GAAM9sC,EAAWyrC,KAAK,sBAAuB,CAC3CqB,UAAS,EACT1B,SAAQ,EACRl4B,QAAS,GACT65B,WAAW,K,cAJb,S,YAQI,YAAAC,gBAAN,W,qHAEiC,SAAM1B,K,OAE1B,OAFL,EAAyB,SAAxBF,EAAQ,KAAEI,EAAU,KAEhB,GAAMxrC,EAAWhH,IAAI,uBAA6B,QAAb,EAAAkH,KAAKqsC,gBAAQ,eAAErpC,GAAE,iB,OAajE,OAbMiO,EAAK,SAGL87B,EAAS97B,EAAGhI,KAAI,SAACtC,GACb,IAAAqmC,EAAsBrmC,EAAX,YAAEnE,EAASmE,EAAL,KACnB8mB,EAAMuf,EAAYvmC,MAAM,KAAK,GACnC,OAAIgnB,EACK,EAAKif,aAAajf,EAAKjrB,EAAKspC,SAAS,sBAAwBR,EAAaJ,GAE1Ex9B,QAAQC,aAInB,GAAOD,QAAQgD,IAAIq8B,YAGf,YAAAX,WAAN,W,gGACE,OAAkB,QAAb,EAAApsC,KAAKqsC,gBAAQ,eAAEE,SAIpB,GAAMvsC,KAAK8sC,mBAHT,I,OAIF,OADA,SACA,GAAO9sC,KAAKisC,GAAGt+B,SAAQ,YAtElB,EAAAs/B,YAAc,yBAwEvB,EAzEA","file":"components/config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 212);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","const zh_CN = {\n language: '语言',\n enable_intranet_API_mode: '开启内网API模式',\n cloud_database: '云数据库',\n cloud_load_balancer: '负载均衡',\n virtual_private_cloud: '私有网络',\n content_delivery_network: '内容分发网络',\n message_queue: '消息队列',\n direct_connect: '专线接入',\n cloud_physical_machine: '黑石物理服务器',\n elastic_mapReduce: '弹性 MapReduce',\n edge_computing_machine: '边缘计算机器',\n // namespace\n RUM: '前端性能监控(RUM)',\n APM: '应用性能监控(APM)',\n CLS: '日志服务(CLS)',\n CVM: '云服务器(CVM)',\n CDB: '云数据库 MySQL(CDB)',\n CMONGO: '云数据库 MongoDB(CMONGO)',\n POSTGRES: '云数据库 PostgreSQL(POSTGRES)',\n REDIS: '云数据库 Redis(REDIS)',\n REDIS_MEM: '云数据库 Redis内存版(5s)(REDIS_MEM)',\n SQLSERVER: '云数据库 SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: '云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: '云数据库 TcaplusDB(TCAPLUS)',\n TDMYSQL: '分布式数据库 TDSQL MySQL(TDMYSQL)',\n PCX: '私有网络-对等连接(PCX)',\n BWP: '私有网络-带宽包(BWP)',\n NAT_GATEWAY: '私有网络-NAT 网关(NAT_GATEWAY)',\n VPNGW: '私有网络-VPN 网关(VPNGW)',\n VPNX: '私有网络-VPN 通道(VPNX)',\n DCG: '私有网络-专线网关(DCG)',\n CEIP_SUMMARY: '私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)',\n VPC_NET_DETECT: '私有网络-网络探测(VPC_NET_DETECT)',\n VBC: '私有网络-云联网(VBC)',\n LB: '私有网络-弹性公网IP(LB)',\n LB_PUBLIC: '公网负载均衡监控指标(LB_PUBLIC)',\n LB_PRIVATE: '内网负载均衡四层协议监控指标(LB_PRIVATE)',\n LOADBALANCE: '内网负载均衡七层协议监控指标(LOADBALANCE)',\n CDN: '国内域名(CDN)',\n CDN_LOG_DATA: '省份域名(CDN_LOG_DATA)',\n OV_CDN: '国外域名(OV_CDN)',\n SCF_V2: '云函数(SCF)',\n CFS: '文件存储(CFS)',\n COS: '对象存储(COS)',\n CKAFKA: '消息队列 CKafka(CKAFKA)',\n CMQ: '消息队列-队列服务监控(CMQ)',\n CMQTOPIC: '消息队列-主题订阅监控(CMQTOPIC)',\n TDMQ: '消息队列 Pulsar 版(TDMQ)',\n TDMQ_ROCKETMQ: '消息队列 RocketMQ 版(ROCKETMQ)',\n TDMQ_RABBITMQ: '消息队列 RabbitMQ 版(RABBITMQ)',\n DCX: '专线接入-专用通道(DCX)',\n DC: '专线接入-物理专线(DC)',\n CPM: '黑石物理服务器(CPM)',\n BM_PCX: '黑石对等连接(BM_PCX)',\n BM_LB: '黑石外网负载均衡(BM_LB)',\n BM_INTRA_LB: '黑石内网负载均衡(BM_INTRA_LB)',\n CES: 'Elasticsearch指标(CES)',\n BLOCK_STORAGE: '云硬盘(BLOCK_STORAGE)',\n APIGATEWAY: 'API 网关(APIGATEWAY)',\n QAAP: '全球应用加速(GAAP)',\n ECM: '边缘计算和网络监控(ECM)',\n ECM_BLOCK_STORAGE: '边缘计算存储监控(ECM_BLOCK_STORAGE)',\n ECM_LB: '边缘计算负载均衡(ECM_LB)',\n GSE: '游戏服务器伸缩(GSE)',\n TKE: '容器服务(TKE)',\n ECDN: '全站加速网络(ECDN)',\n WAF: 'Web 应用防火墙(WAF)',\n // others\n multi_scene: '多场景版',\n lite: '精简版',\n cloud_monitor: '云监控',\n cloud_log_service: '日志服务',\n real_user_monitoring: '前端性能监控',\n apm_monitoring: '应用性能监控',\n region: '地域',\n log_topic: '日志主题',\n syntax_rule: '语法规则',\n max_result_num: '最大结果条数',\n search_statement: '检索语句',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description: '按照具体的查询条件搜索实例,默认拉取前 20 条实例',\n // region\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-shenzhen-fsi': '华南地区(深圳金融)',\n 'ap-guangzhou-open': '华南地区(广州OPEN)',\n 'ap-shenzhen': '华南地区(深圳)',\n 'ap-qingyuan': '华南地区(清远)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-shanghai-fsi': '华东地区(上海金融)',\n 'ap-jinan-ec': '华东地区(济南)',\n 'ap-hangzhou-ec': '华东地区(杭州)',\n 'ap-nanjing': '华东地区(南京)',\n 'ap-fuzhou-ec': '华东地区(福州)',\n 'ap-hefei-ec': '华东地区(合肥)',\n 'ap-beijing': '华北地区(北京)',\n 'ap-tianjin': '华北地区(天津)',\n 'ap-beijing-fsi': '华北地区(北京金融)',\n 'ap-shijiazhuang-ec': '华北地区(石家庄)',\n 'ap-wuhan-ec': '华中地区(武汉)',\n 'ap-changsha-ec': '华中地区(长沙)',\n 'ap-zhengzhou-ec': '华中地区(郑州)',\n 'ap-chengdu': '西南地区(成都)',\n 'ap-chongqing': '西南地区(重庆)',\n 'ap-xian-ec': '西北地区(西安)',\n 'ap-shenyang-ec': '东北地区(沈阳)',\n 'ap-taipei': '港澳台地区(中国台北)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-tokyo': '亚太东北(东京)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-bangkok': '亚太东南(曼谷)',\n 'ap-jakarta': '亚太东南(雅加达)',\n 'na-siliconvalley': '美国西部(硅谷)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'eu-moscow': '欧洲地区(莫斯科)',\n 'ap-mumbai': '亚太南部(孟买)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'sa-saopaulo': '南美地区(圣保罗)',\n 'na-toronto': '北美地区(多伦多)',\n};\nexport default zh_CN;\n","const en_US = {\n language: 'Language',\n enable_intranet_API_mode: 'Enable Intranet API Mode',\n cloud_database: 'Cloud Database',\n cloud_load_balancer: 'Cloud Load Balancer',\n virtual_private_cloud: 'Virtual Private Cloud',\n content_delivery_network: 'Content Delivery Network',\n message_queue: 'Message Queue',\n direct_connect: 'Direct Connect',\n cloud_physical_machine: 'Cloud Physical Machine',\n elastic_mapReduce: 'Elastic MapReduce',\n edge_computing_machine: 'Edge Computing Machine',\n // namespace\n RUM: 'Real User Monitoring(RUM)',\n CLS: 'Cloud Log Service(CLS)',\n CVM: 'Cloud Virtual Machine(CVM)',\n CDB: 'TencentDB for MySQL(CDB)',\n CMONGO: 'TencentDB for MongoDB(CMONGO)',\n POSTGRES: 'TencentDB for PostgreSQL(POSTGRES)',\n REDIS: 'TencentDB for Redis(REDIS)',\n REDIS_MEM: 'TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)',\n SQLSERVER: 'TencentDB for SQL Server(SQLSERVER)',\n CYNOSDB_MYSQL: 'TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)',\n TCAPLUS: 'TencentDB for TcaplusDB(TCAPLUS)',\n TDMYSQL: 'TDSQL for MySQL(TDMYSQL)',\n PCX: 'Peering Connection(PCX)',\n BWP: 'Bandwidth Packet(BWP)',\n NAT_GATEWAY: 'NAT Gateway(NAT_GATEWAY)',\n VPNGW: 'VPN Gateway(VPNGW)',\n VPNX: 'VPN Tunnel(VPNX)',\n DCG: 'Direct Connect Gateway(DCG)',\n CEIP_SUMMARY: 'Anycast EIP(CEIP_SUMMARY)',\n VPC_NET_DETECT: 'Network Detection(VPC_NET_DETECT)',\n VBC: 'Cloud Connect Network(VBC)',\n LB: 'Elastic IP(LB)',\n LB_PUBLIC: 'Public Network CLB(LB_PUBLIC)',\n LB_PRIVATE: 'Private Network CLB Layer-4 Protocol(LB_PRIVATE)',\n LOADBALANCE: 'Private Network CLB Layer-7 Protocol(LOADBALANCE)',\n CDN: 'Chinese Mainland Domain(CDN)',\n CDN_LOG_DATA: 'Province(CDN_LOG_DATA)',\n OV_CDN: 'Overseas Domain(OV_CDN)',\n SCF_V2: 'Serverless Cloud Function(SCF)',\n CFS: 'Cloud File Storage(CFS)',\n COS: 'Cloud Object Storage(COS)',\n CKAFKA: 'Message Queue CKafka(CKAFKA)',\n CMQ: 'Message Queue for Queue Service(CMQ)',\n CMQTOPIC: 'Message Queue for Topic Subscription(CMQTOPIC)',\n TDMQ: 'Tencent Distributed Message Queue for Pulsar(TDMQ)',\n TDMQ_ROCKETMQ: 'Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)',\n TDMQ_RABBITMQ: 'Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)',\n DCX: 'Direct Connect for Dedicated Tunnel(DCX)',\n DC: 'Direct Connect for Connection(DC)',\n CPM: 'Cloud Physical Machine(CPM)',\n BM_PCX: 'Cloud Physical Machine for Peering Connection(BM_PCX)',\n BM_LB: 'Cloud Physical Machine for Public Network CLB(BM_LB)',\n BM_INTRA_LB: 'Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)',\n CES: 'Elasticsearch Service(CES)',\n BLOCK_STORAGE: 'Cloud Block Storage(BLOCK_STORAGE)',\n APIGATEWAY: 'API Gateway(APIGATEWAY)',\n QAAP: 'Global Application Acceleration Platform(GAAP)',\n ECM: 'Edge Computing Machine for Computation and Networking(ECM)',\n ECM_BLOCK_STORAGE: 'Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)',\n ECM_LB: 'Edge Computing Machine for Layer-4 CLB(ECM_LB)',\n GSE: 'Game Server Elastic-scaling(GSE)',\n TKE: 'Tencent Kubernetes Engine(TKE)',\n ECDN: 'Enterprise Content Delivery Network(ECDN)',\n WAF: 'Web Application Firewall(WAF)',\n // others\n multi_scene: 'Multi-Scene',\n lite: 'Lite',\n cloud_monitor: 'Cloud Monitor',\n cloud_log_service: 'Cloud Log Service',\n real_user_monitoring: 'Real User Monitoring',\n apm_monitoring: 'Application Monitoring',\n region: 'Region',\n log_topic: 'Log Topic',\n syntax_rule: 'Syntax Rule',\n max_result_num: 'Maximum result number',\n search_statement: 'Search Statement',\n time_unit: 'Time unit',\n seconds: 'seconds',\n search_description:\n 'Search for instances according to specific query conditions, and pull the first 20 instances by default',\n // region\n 'ap-guangzhou': 'South China(Guangzhou)',\n 'ap-shenzhen-fsi': 'South China(Shenzhen Finance)',\n 'ap-guangzhou-open': 'South China(Guangzhou OPEN)',\n 'ap-shenzhen': 'South China(Shenzhen)',\n 'ap-qingyuan': 'South China(Qingyuan)',\n 'ap-shanghai': 'East China(Shanghai)',\n 'ap-shanghai-fsi': 'East China(Shanghai Finance)',\n 'ap-jinan-ec': 'East China(Jinan)',\n 'ap-hangzhou-ec': 'East China(Hangzhou)',\n 'ap-nanjing': 'East China(Nanjing)',\n 'ap-fuzhou-ec': 'East China(Fuzhou)',\n 'ap-hefei-ec': 'East China(Hefei)',\n 'ap-beijing': 'North China region(Beijing)',\n 'ap-tianjin': 'North China region(Tianjin)',\n 'ap-beijing-fsi': 'North China region(Beijing Finance)',\n 'ap-shijiazhuang-ec': 'North China region(Shijiazhuang)',\n 'ap-wuhan-ec': 'Central China(Wuhan)',\n 'ap-changsha-ec': 'Central China(Changsha)',\n 'ap-zhengzhou-ec': 'Central China(Zhengzhou)',\n 'ap-chengdu': 'Southwest China(Chengdu)',\n 'ap-chongqing': 'Southwest China(Chongqing)',\n 'ap-xian-ec': \"Northwest region(Xi'an)\",\n 'ap-shenyang-ec': 'Northeast China(Shenyang)',\n 'ap-taipei': 'Hong Kong, Macau and Taiwan (China)(Taipei, China)',\n 'ap-hongkong': 'Hong Kong, Macau and Taiwan (China)(Hong Kong, China)',\n 'ap-seoul': 'Northeast Asia(Seoul)',\n 'ap-tokyo': 'Northeast Asia(Tokyo)',\n 'ap-singapore': 'Southeast Asia(Singapore)',\n 'ap-bangkok': 'Southeast Asia(Bangkok)',\n 'ap-jakarta': 'Southeast Asia(Jakarta)',\n 'na-siliconvalley': 'US West(Silicon Valley)',\n 'eu-frankfurt': 'Europe(Frankfurt)',\n 'eu-moscow': 'Europe(Northeastern Europe)',\n 'ap-mumbai': 'South Asia(Mumbai)',\n 'na-ashburn': 'US East(Virginia)',\n 'sa-saopaulo': 'South America(São Paulo)',\n 'na-toronto': 'North America(Toronto)',\n};\nexport default en_US;\n","import zh_CN from './zh_CN';\nimport en_US from './en_US';\n\nlet locale_language = 'zh-CN';\n\nexport enum Language {\n Chinese = 'zh-CN',\n English = 'en-US',\n}\n\nexport const t = (key: string) => {\n if (locale_language === Language.Chinese) {\n return zh_CN[key];\n }\n return en_US[key];\n};\n\nexport const setLanguage = (language: Language) => {\n locale_language = language;\n};\n\nexport const getLanguage = () => locale_language;\n","import moment from 'moment';\n\nconst HttpRequestMethod = 'POST';\nconst CanonicalUri = '/';\nconst CanonicalQueryString = '';\nconst ContentType = 'application/json';\n\nexport default class Sign {\n /**\n * Tencent Cloud API Signature v3 reference: https://cloud.tencent.com/document/api/213/30654\n * secretId: SecretId for identifying identity that is applied for on Cloud API Key.\n * A SecretId corresponds to a unique SecretKey, which is used to generate the request Signature.\n * secretKey: SecretKey is used to encrypt the signature string and verify the signature string on the server\n * service: the name of service, which must be consistent with the request domain, such as cvm\n * action: The name of the API for the desired operation\n * host: the domain of service,which must be consistent with the request domain, such as cvm.tencentcloudapi.com\n * version: PI version, such as 2017-03-12\n * payload: The request parameters\n */\n\n secretId: string;\n\n service: string;\n action: string;\n host: string;\n version: string;\n payload: Record | string;\n region: string;\n timestamp: number;\n date: string;\n backendSrv: any;\n datasourceId: Number;\n constructor(options) {\n const { secretId, service, action, host, version, payload = '', region, backendSrv, datasourceId } = options;\n this.secretId = secretId;\n // this.secretKey = secretKey;\n this.service = service;\n this.action = action;\n this.host = host;\n this.version = version;\n this.payload = typeof payload === 'string' ? payload : JSON.stringify(payload);\n this.region = region;\n const nowDate = moment().utc();\n this.timestamp = nowDate.unix();\n this.date = nowDate.format('YYYY-MM-DD');\n this.backendSrv = backendSrv;\n this.datasourceId = datasourceId;\n }\n\n async getHeader() {\n return this.getResourceHeader();\n }\n\n async getResourceHeader() {\n let res: { authorization?: string; token?: string; intranet?: boolean } = {};\n try {\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v3`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.host,\n Service: this.service,\n Version: this.version,\n Action: this.action,\n Region: this.region,\n Timestamp: this.timestamp,\n Method: HttpRequestMethod,\n Uri: CanonicalUri,\n Query: CanonicalQueryString,\n Body: this.payload,\n Headers: {\n 'content-type': ContentType,\n host: this.host,\n },\n },\n });\n res = resp.data;\n } catch (err) {}\n const { authorization, token, intranet } = res;\n const grafanaVersion = (window as any).grafanaBootData?.settings?.buildInfo?.version || '0.0.0';\n const headers = {\n Authorization: authorization,\n 'Content-Type': ContentType,\n 'X-TC-Action': this.action,\n 'X-TC-Timestamp': this.timestamp.toString(),\n 'X-TC-Version': this.version,\n 'X-TC-RequestClient': `GF_${grafanaVersion}_PL_CM_${process.env.TENCENT_CLOUD_MONITOR_GRAFANA_PLUGIN_VERSION}`,\n ...(this.region && {\n 'X-TC-Region': this.region,\n }),\n ...(token && {\n 'X-TC-Token': token,\n }),\n intranet: intranet,\n };\n return headers;\n }\n}\n","/**\n *\n * @param defaults 为对象\n * secretId\n * secretKey\n * action\n * region\n * host\n */\n\nexport default class SignV2 {\n defaults: any = {\n path: '/v2/index.php',\n method: 'POST',\n };\n backendSrv: any;\n datasourceId: Number;\n constructor(defaults: any = {}) {\n this.defaults = Object.assign(this.defaults, defaults);\n this.defaults.secretKey = '';\n this.backendSrv = defaults.backendSrv;\n this.datasourceId = defaults.datasourceId;\n }\n\n generateQueryString = async () => {\n return this.getResourceQueryString();\n };\n\n async getResourceQueryString() {\n let res: { path?: string; querystring?: any; host?: string; intranet?: boolean } = {};\n try {\n const { data } = this.defaults;\n const payload = typeof data === 'string' ? data : JSON.stringify(data);\n const resp = await this.backendSrv.datasourceRequest({\n url: `/api/datasources/${this.datasourceId}/resources/sign_v2`,\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: {\n Host: this.defaults.host,\n Action: this.defaults.action,\n Version: this.defaults.version,\n Region: this.defaults.region,\n Method: this.defaults.method,\n Uri: this.defaults.path,\n Query: '',\n Body: payload,\n },\n });\n res = resp.data;\n } catch (err) {}\n const { path, querystring, host, intranet } = res;\n return { queryString: querystring, path: path, host: host, intranet: intranet };\n }\n}\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { SERVICES } from '../tc_monitor';\nimport Sign from './sign';\nimport SignV2 from './signV2';\nimport { toDataQueryResponse } from '@grafana/runtime';\nimport { getLanguage } from '../../locale';\n\nimport packageInfo from '../plugin.json';\nexport const TcDataSourceId = packageInfo.id;\n\n// the services of tencentcloud monitor api\nconst FINACE_REGIONS = ['ap-shanghai-fsi', 'ap-shenzhen-fsi'];\nconst SERVICES_API_INFO = {\n api: {\n service: 'api',\n version: '2020-11-06',\n path: '/api',\n host: 'api.tencentcloudapi.com',\n },\n // monitor api info\n monitor: {\n service: 'monitor',\n version: '2018-07-24',\n path: '/monitor',\n host: 'monitor.tencentcloudapi.com',\n },\n // cls api info\n cls: {\n service: 'cls',\n version: '2020-10-16',\n path: '/cls',\n host: 'cls.tencentcloudapi.com',\n },\n // cvm api info\n cvm: {\n service: 'cvm',\n version: '2017-03-12',\n path: '/cvm',\n host: 'cvm.tencentcloudapi.com',\n },\n // cdb api info\n cdb: {\n service: 'cdb',\n version: '2017-03-20',\n path: '/cdb',\n host: 'cdb.tencentcloudapi.com',\n },\n // pcx api info\n pcx: {\n service: 'pcx',\n version: '',\n path: '/pcx',\n host: 'vpc.api.qcloud.com',\n },\n // vpc api info\n vpc: {\n service: 'vpc',\n version: '2017-03-12',\n path: '/vpc',\n host: 'vpc.tencentcloudapi.com',\n },\n // mongodb api info\n mongodb: {\n service: 'mongodb',\n version: '2019-07-25',\n path: '/mongodb',\n host: 'mongodb.tencentcloudapi.com',\n },\n // 负载均衡 clb\n clb: {\n service: 'clb',\n version: '2018-03-17',\n path: '/clb',\n host: 'clb.tencentcloudapi.com',\n },\n // postgresql api info\n postgres: {\n service: 'postgres',\n version: '2017-03-12',\n path: '/postgres',\n host: 'postgres.tencentcloudapi.com',\n },\n // cdn info\n cdn: {\n service: 'cdn',\n version: '2018-06-06',\n path: '/cdn',\n host: 'cdn.tencentcloudapi.com',\n },\n // redis info\n redis: {\n service: 'redis',\n version: '2018-04-12',\n path: '/redis',\n host: 'redis.tencentcloudapi.com',\n },\n scf: {\n service: 'scf',\n version: '2018-04-16',\n path: '/scf',\n host: 'scf.tencentcloudapi.com',\n },\n cfs: {\n service: 'cfs',\n version: '2019-07-19',\n path: '/cfs',\n host: 'cfs.tencentcloudapi.com',\n },\n ckafka: {\n service: 'ckafka',\n version: '2019-08-19',\n path: '/ckafka',\n host: 'ckafka.tencentcloudapi.com',\n },\n // 专线接入实例列表\n dc: {\n service: 'dc',\n version: '2018-04-10',\n path: '/dc',\n host: 'dc.tencentcloudapi.com',\n },\n // cynosdb实例列表\n cynosdb: {\n service: 'cynosdb',\n version: '2019-01-07',\n path: '/cynosdb',\n host: 'cynosdb.tencentcloudapi.com',\n },\n // sqlserver实例列表\n sqlserver: {\n service: 'sqlserver',\n version: '2018-03-28',\n path: '/sqlserver',\n host: 'sqlserver.tencentcloudapi.com',\n },\n // bm实例列表\n bm: {\n service: 'bm',\n version: '2018-04-23',\n path: '/bm',\n host: 'bm.tencentcloudapi.com',\n },\n bmeip: {\n service: 'bmeip',\n version: '2018-06-25',\n path: '/bmeip',\n host: 'bmeip.tencentcloudapi.com',\n },\n bmvpc: {\n service: 'bmvpc',\n version: '2018-06-25',\n path: '/bmvpc',\n host: 'bmvpc.tencentcloudapi.com',\n },\n bmlb: {\n service: 'bmlb',\n version: '2018-06-25',\n path: '/bmlb',\n host: 'bmlb.tencentcloudapi.com',\n },\n // ES集群实例\n es: {\n service: 'es',\n version: '2018-04-16',\n path: '/es',\n host: 'es.tencentcloudapi.com',\n },\n // MapReduce\n emr: {\n service: 'emr',\n version: '2019-01-03',\n path: '/emr',\n host: 'emr.tencentcloudapi.com',\n },\n // CMQ消息队列\n cmq: {\n service: 'cmq',\n version: '2019-03-04',\n path: '/cmq',\n host: 'cmq.tencentcloudapi.com',\n },\n cbs: {\n service: 'cbs',\n version: '2017-03-12',\n path: '/cbs',\n host: 'cbs.tencentcloudapi.com',\n },\n // tcaplus实例\n tcaplusdb: {\n service: 'tcaplusdb',\n version: '2019-08-23',\n path: '/tcaplusdb',\n host: 'tcaplusdb.tencentcloudapi.com',\n },\n // tcaplus实例\n dcdb: {\n service: 'dcdb',\n version: '2018-04-11',\n path: '/dcdb',\n host: 'dcdb.tencentcloudapi.com',\n },\n // apigateway实例\n apigateway: {\n service: 'apigateway',\n version: '2018-08-08',\n path: '/apigateway',\n host: 'apigateway.tencentcloudapi.com',\n },\n tdmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rabbitmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n tdmq_rocketmq: {\n service: 'tdmq',\n version: '2020-02-17',\n path: '/tdmq',\n host: 'tdmq.tencentcloudapi.com',\n },\n gaap: {\n service: 'gaap',\n version: '2018-05-29',\n path: '/gaap',\n host: 'gaap.tencentcloudapi.com',\n },\n ecm: {\n service: 'ecm',\n version: '2019-07-19',\n path: '/ecm',\n host: 'ecm.tencentcloudapi.com',\n },\n gse: {\n service: 'gse',\n version: '2019-11-12',\n path: '/gse',\n host: 'gse.tencentcloudapi.com',\n },\n lighthouse: {\n service: 'lighthouse',\n version: '2020-03-24',\n path: '/lighthouse',\n host: 'lighthouse.tencentcloudapi.com',\n },\n tsf: {\n service: 'tsf',\n version: '2018-03-26',\n path: '/tsf',\n host: 'tsf.tencentcloudapi.com',\n },\n rum: {\n service: 'rum',\n version: '2021-06-22',\n path: '/rum',\n host: 'rum.tencentcloudapi.com',\n },\n tke: {\n service: 'tke',\n version: '2018-05-25',\n path: '/tke',\n host: 'tke.tencentcloudapi.com',\n },\n ecdn: {\n service: 'ecdn',\n version: '2019-10-12',\n path: '/ecdn',\n host: 'ecdn.tencentcloudapi.com',\n },\n waf: {\n service: 'waf',\n version: '2018-01-25',\n path: '/waf',\n host: 'waf.tencentcloudapi.com',\n },\n region: {\n service: 'region',\n version: '2022-06-27',\n path: '/region',\n host: 'region.tencentcloudapi.com',\n },\n apm: {\n service: 'apm',\n version: '2021-06-22',\n path: '/apm',\n host: 'apm.tencentcloudapi.com',\n },\n // 不单独定义lb,因为lb同样用的是vpc的配置,同上\n // lb: {\n // service: 'lb',\n // version: '2017-03-12',\n // path: '/lb',\n // host: 'vpc.tencentcloudapi.com'\n // }\n // 负载均衡四层协议 lbPrivate\n // lbPrivate: {\n // service: 'lbPrivate',\n // version: '2018-03-17',\n // path: '/clb',\n // host: 'clb.tencentcloudapi.com',\n // },\n};\n\nconst FINACE_HOST = {\n scf: {\n 'ap-shanghai-fsi': {\n path: '/fsi/scf/shanghai',\n host: 'scf.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/scf/shenzhen',\n host: 'scf.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cfs: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cfs/shanghai',\n host: 'cfs.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cfs/shenzhen',\n host: 'cfs.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n ckafka: {\n 'ap-shanghai-fsi': {\n path: '/fsi/ckafka/shanghai',\n host: 'ckafka.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/ckafka/shenzhen',\n host: 'ckafka.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n clb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/clb/shanghai',\n host: 'clb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/clb/shenzhen',\n host: 'clb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n mongodb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/mongodb/shanghai',\n host: 'mongodb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/mongodb/shenzhen',\n host: 'mongodb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n vpc: {\n 'ap-shanghai-fsi': {\n path: '/fsi/vpc/shanghai',\n host: 'vpc.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/vpc/shenzhen',\n host: 'vpc.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cvm: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cvm/shanghai',\n host: 'cvm.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cvm/shenzhen',\n host: 'cvm.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cdb: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cdb/shanghai',\n host: 'cdb.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cdb/shenzhen',\n host: 'cdb.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n monitor: {\n 'ap-shanghai-fsi': {\n path: '/fsi/monitor/shanghai',\n host: 'monitor.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/monitor/shenzhen',\n host: 'monitor.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n postgres: {\n 'ap-shanghai-fsi': {\n path: '/fsi/postgres/shanghai',\n host: 'postgres.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/postgres/shenzhen',\n host: 'postgres.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n emr: {\n 'ap-shanghai-fsi': {\n path: '/fsi/emr/shanghai',\n host: 'emr.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/emr/shenzhen',\n host: 'emr.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cmq: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cmq/shanghai',\n host: 'cmq.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cmq/shenzhen',\n host: 'cmq.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n cls: {\n 'ap-shanghai-fsi': {\n path: '/fsi/cls/shanghai',\n host: 'cls.ap-shanghai-fsi.tencentcloudapi.com',\n },\n 'ap-shenzhen-fsi': {\n path: '/fsi/cls/shenzhen',\n host: 'cls.ap-shenzhen-fsi.tencentcloudapi.com',\n },\n },\n};\n\n// 获取对应业务的 API 接口信息\nexport function GetServiceAPIInfo(region, service) {\n return { ...(SERVICES_API_INFO[service] || {}), ...getHostAndPath(region, service) };\n}\n\n// get host and path for finance regions\nfunction getHostAndPath(region, service) {\n if (_.indexOf(FINACE_REGIONS, region) === -1) {\n return {};\n }\n return (\n _.find(\n _.find(FINACE_HOST, (__, key) => key === service),\n (__, key) => key === region\n ) || {}\n );\n}\n\n// 变量替换指定实例按照那个字段展示\nexport const VARIABLE_ALIAS = 'instancealias';\n\nexport function GetServiceFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace),\n 'service'\n );\n}\n// 处理存量target中保存的qce/cvm\nexport function GetLabelFromNamespace(namespace) {\n return _.get(\n _.find(SERVICES, (service) => service.namespace === namespace || service.label === namespace),\n 'label'\n );\n}\n// parse template variable query params\nexport function ParseMetricQuery(query = '') {\n if (!query) {\n return {};\n }\n const result = {};\n const queries = _.split(query, '&');\n _.forEach(queries, (item) => {\n const str = _.split(item, '=');\n if (_.trim(_.get(str, '0', ''))) {\n let val = _.trim(_.get(str, '1', ''));\n try {\n val = JSON.parse(val);\n } catch (e) {\n // console.log({ val });\n }\n result[_.toLower(_.trim(_.get(str, '0', '')))] = val;\n }\n });\n return result;\n}\n\n// parse template variable regex params\nexport function ParseMetricRegex(regex = '') {\n if (!regex) {\n return [];\n }\n regex = regex.replace(/:/g, ':');\n regex = regex.replace(/,/g, ',');\n const regexParams = ParseMetricQuery(regex);\n const result: any[] = [];\n _.forEach(regexParams, (value, key) => {\n if (key === 'tag:tag-key') {\n const valuesArr = _.split(value, ',');\n _.forEach(valuesArr, (item) => {\n const temp = _.split(item, ':');\n if (temp.length === 2) {\n result.push({ Name: `tag:${temp[0]}`, Values: temp.slice(1) });\n }\n });\n } else {\n result.push({ Name: key, Values: _.split(value, ',') });\n }\n });\n return result;\n}\n\n// get the actual value of template variable\nfunction parseVariableFormat(varname: string) {\n varname = String(varname || '');\n // $varname\n let varFlag = false;\n const regResult1 = varname.match(/^\\${?(\\w+)}?/);\n if (regResult1) {\n varFlag = true;\n varname = `\\$\\{${regResult1[1]}\\:json\\}`;\n }\n // [[varname]]\n const regResult2 = varname.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/);\n if (regResult2) {\n varFlag = true;\n varname = `\\$\\{${regResult2[1]}\\:json\\}`;\n }\n return { varname, varFlag };\n}\n\nexport function ReplaceVariable(templateSrv, scopedVars, field, multiple = false) {\n const { varname, varFlag } = parseVariableFormat(field);\n let replaceVar = templateSrv.replace(varname, scopedVars);\n if (varFlag) {\n try {\n replaceVar = JSON.parse(replaceVar);\n } catch (error) {}\n }\n if (!multiple && _.isArray(replaceVar)) {\n replaceVar = _.get(replaceVar, '0', '');\n }\n return replaceVar;\n}\n\n// get dimensions for instance query param\nexport function GetDimensions(obj) {\n if (_.isEmpty(obj)) {\n return [];\n }\n const dimensions: any[] = [];\n _.forEach(obj, (item) => {\n if (item.Value !== null && item.Value !== undefined && item.Value !== '') {\n dimensions.push({ Name: item.Name, Value: typeof item.Value === 'string' ? item.Value : `${item.Value}` });\n }\n });\n return dimensions;\n}\n\n// parse query data result for panel\nexport function ParseQueryResult(response, instances: any[] = [], timeshift = 0) {\n const instanceList = _.cloneDeep(instances);\n\n const dataPoints = _.get(response, 'DataPoints', []);\n return _.map(dataPoints, (dataPoint) => {\n let instanceAliasValue = _.get(dataPoint, 'Dimensions[0].Value');\n for (let i = 0; i < instanceList.length; i++) {\n if (isInstanceMatch(instanceList[i], _.get(dataPoint, 'Dimensions', []))) {\n instanceAliasValue = instanceList[i]._InstanceAliasValue;\n instanceList.splice(i, 1);\n break;\n }\n }\n return {\n target: `${response.MetricName} - ${instanceAliasValue}`,\n datapoints: parseDataPoint(dataPoint, timeshift),\n };\n });\n}\n\n// parse tencent cloud monitor response data to grafana panel data\nfunction parseDataPoint(dataPoint, timeshift = 0) {\n const timestamps = _.get(dataPoint, 'Timestamps', []);\n const values = _.get(dataPoint, 'Values', []);\n const result = timestamps.map((timestamp, index) => {\n return [values[index], timestamp * 1000 + timeshift];\n });\n\n return result;\n}\n\n// check whether instance is match or not\nfunction isInstanceMatch(instance, dimensions) {\n let match = true;\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < dimensions.length; i++) {\n if (_.get(instance, dimensions[i].Name, '').toString() !== dimensions[i].Value.toString()) {\n match = false;\n break;\n }\n }\n return match;\n}\n\n/**\n * 检查某个变量是否模板变量,即是否匹配 ${varnam} 或 [[varname]]\n *\n * @param field 变量字段名\n */\nexport function isVariable(value) {\n if (value && (value.match(/^\\${?(\\w+)}?/) || value.match(/^\\[\\[(\\w+)(\\:\\w+)?\\]\\]/))) {\n return true;\n }\n return false;\n}\n\n/**\n * 腾讯云 API 3.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParams(options, service, signObj: any = {}, secretId, datasourceId, backendSrv) {\n const signParams = {\n secretId,\n payload: options.data || '',\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['service', 'host', 'version']) || {}),\n backendSrv,\n datasourceId,\n region: 'ap-guangzhou',\n };\n const sign = new Sign(signParams);\n const { intranet, ...headerSigned } = await sign.getHeader();\n // 传入x-tc-language实现国际化\n // zh-CN en-US ko-KR ja-JP\n options.headers = Object.assign(options.headers || {}, { ...headerSigned }, { 'x-tc-language': getLanguage() });\n options.method = 'POST';\n if (intranet) {\n options.url += '-internal';\n }\n return options;\n}\n\n/**\n * 腾讯云 API 2.0 接口协议\n * @param options 接口请求对象 { url: string, data?: object }\n * @param service 产品名字 'cvm'\n * @param signObj 接口请求相关信息 { region?: string, action: string }\n * @param secretId\n * @param secretKey\n */\nexport async function GetRequestParamsV2(\n options: any = {},\n service,\n signObj: any = {},\n secretId,\n datasourceId,\n backendSrv\n) {\n const data = options.data || {};\n const signParams = {\n secretId,\n data,\n ...signObj,\n ...(_.pick(GetServiceAPIInfo(signObj.region || '', service), ['host', 'version']) || {}),\n backendSrv,\n datasourceId,\n };\n options.method = 'POST';\n const sign = new SignV2(signParams);\n options.headers = Object.assign(options.headers || {}, { 'Content-Type': 'application/x-www-form-urlencoded' });\n const { queryString, path, host, intranet } = await sign.generateQueryString();\n options.data = qs.stringify({\n ...options.data,\n ...queryString,\n ...(host && { host: host }),\n });\n if (intranet) {\n // TODO: qcloud.com intranet host\n console.log('got intranet for sign v2');\n }\n options.url += path;\n return options;\n}\n\nexport function SliceLength(total = 0, len = 1) {\n const result: any[] = [];\n const num = Math.ceil(total / len);\n for (let i = 1; i < num; i++) {\n result.push({ Offset: len * i });\n }\n return result;\n}\n\nexport const FilterKeys = ['Namespace', 'Offset', 'Limit', 'SearchKey', 'Description', 'OrderBy', 'Order'];\n\nexport function parseDataFromBackendPlugin(res) {\n const { data } = toDataQueryResponse(res);\n return {\n authorization: _.get(data, '[0].meta.custom', ''),\n };\n}\n\n/** 当前环境是否为非生产环境 */\nexport const IS_DEVELOPMENT_ENVIRONMENT = !(process.env.NODE_ENV === 'production');\n\n/**\n * @link https://github.com/grafana/grafana/blob/3c6e0e8ef85048af952367751e478c08342e17b4/packages/grafana-data/src/types/app.ts#L12\n */\nexport enum CoreApp {\n CloudAlerting = 'cloud-alerting',\n UnifiedAlerting = 'unified-alerting',\n Dashboard = 'dashboard',\n Explore = 'explore',\n Unknown = 'unknown',\n PanelEditor = 'panel-editor',\n PanelViewer = 'panel-viewer',\n}\n","import _ from 'lodash';\nimport moment from 'moment';\nimport DatasourceInterface from '../MonitorDatasource';\nimport {\n GetRequestParams,\n GetServiceAPIInfo,\n ReplaceVariable,\n GetDimensions,\n ParseQueryResult,\n SliceLength,\n} from '../../common/constants';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { MetricQuery } from './types';\nimport { getNamesapceFromService, getTimeShiftInMs } from '../../common/utils';\nimport { Language, setLanguage } from '../../../locale';\n\nexport interface TemplateQueryIdType {\n instance: string;\n listener?: string;\n}\n\ninterface queryConfigType {\n dim_KeyInStorage: string;\n dim_KeyInTarget?: string;\n dim_KeyInIns?: string;\n dim_KeyInMap: string;\n}\n\nexport abstract class BaseDatasource implements DatasourceInterface {\n Namespace?: string;\n service: string;\n instanceListCache: any[] = [];\n extraMetricDims: string[] = [];\n url: string;\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n secretId: string;\n checkKeys: string[] = [];\n MetricReqConfig: {\n resultFilter?: Function;\n } = {};\n extrasAlias?: string[] = [];\n /*\n 一个配置:(用于处理除了InstanceId之外的)(Record中的key是指标修正之后的维度,即通过InvalidDemsion处理后)\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。为空则取即通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。即:templateQueryIdMap中内容。联合上面2的内容筛选出原始sourceMap\n 4 通过这个dim和sourceMap获取维度值。即sourceMap[dim]\n */\n queryMonitorExtraConfg: Record = {};\n CandiateDimensions?: Record = {};\n\n InstanceReqConfig?: {\n service?: string;\n action: string;\n responseField: string;\n interceptor?: {\n request?: (params: unknown) => unknown;\n response?: (data: unknown) => unknown;\n };\n };\n InvalidDimensions?: Record;\n\n abstract InstanceAliasList: string[];\n abstract templateQueryIdMap: TemplateQueryIdType; // 必须为标识\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.url = instanceSettings.url;\n this.secretId = (instanceSettings.jsonData || {}).secretId || '';\n setLanguage(instanceSettings.jsonData.language || Language.Chinese);\n }\n\n get namespace() {\n // 需要注意的是this.service来自于原型上,在实例中导入时注入\n return this.Namespace || getNamesapceFromService(this.service);\n }\n\n // 获取额外要显示到图例里的内容\n getOtherAlias(instance: any, target: any): string {\n let result = '';\n const alias = instance._InstanceAliasValue;\n this.extrasAlias?.forEach((extra) => {\n const extraAlia = this.getVariable(target[extra]);\n if (extraAlia && alias.indexOf(extraAlia) === -1) {\n result += ` - ${extraAlia}`;\n }\n });\n return result;\n }\n\n /* 格式化模板变量上的显示 */\n getAliasValue(instance: Record, alias: string) {\n const result = instance[alias];\n return Array.isArray(result) ? result.join() : result;\n }\n\n formatVarDisplay(instance: Record, displayTpl: string | undefined, instanceAlias: string) {\n // 获取display=aaa${InstanceName}bbb${InstanceId}ccc\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.InstanceAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(instance, b);\n });\n }\n return this.getAliasValue(instance, instanceAlias);\n }\n /**\n * @param query 模板变量配置填写的 Query 参数对象,由顶层将字符串转换为了对象\n */\n async metricFindQuery(query: MetricQuery, regex?: string) {\n const { action, namespace, display, payload = {} } = query;\n let { region, instancealias = this.templateQueryIdMap.instance } = query;\n if (!action || !namespace) {\n return [];\n }\n // 支持payload里传入模板变量\n if (_.isObject(payload)) {\n _.forEach(payload, (value, key) => {\n payload[key] = _.isString(value) ? this.getVariable(value) : value;\n });\n }\n\n // 查询地域列表\n const regionQuery = action.match(/^DescribeRegions$/i);\n if (regionQuery) {\n return this.getRegions();\n }\n\n region = this.getVariable(region); // 将模板region转换为真实值\n\n // 查询实例列表\n if (region && action.match(/^DescribeInstances/i)) {\n const result = await this.getVariableInstances(region, payload);\n instancealias = this.InstanceAliasList.includes(instancealias) ? instancealias : this.templateQueryIdMap.instance;\n\n const res = result.flatMap((item) => {\n const insAlias = this.formatVarDisplay(item, display, instancealias);\n\n item._InstanceAliasValue = insAlias; // FIXME:\n\n if (!item[instancealias]) return [];\n return [\n {\n text: insAlias,\n value: item[this.templateQueryIdMap.instance],\n },\n ];\n });\n\n // 缓存全量实例列表\n await instanceStorage.setInstance(this.service, result);\n return res;\n }\n\n // 在instance实例的基础上查询其他数据\n let instance = this.getVariable(query['instance']);\n if (_.isArray(instance)) instance = instance[0]; // 有额外维度,仅支持实例单选情况\n if (region && action && instance) {\n try {\n // instance = JSON.parse(instance);\n const instanceCache = await instanceStorage.getInstance(this.service);\n\n instance = _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === instance)) ?? {};\n // eslint-disable-next-line no-empty\n } catch (error) {}\n return this.fetchMetricData(action, region, instance, query);\n }\n\n return Promise.resolve([]);\n }\n // 获取指标数据\n async fetchMetricData(action: string, region: string, instance: any, query?: any) {\n return [];\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数\n * @return 返回数据数组,示例如下\n * [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n */\n async dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options) {\n for (let key of dimKeys) {\n let keyTmp = key;\n const invalidDim = this.InvalidDimensions || this.getInvalidDimensions(this, target[service]);\n if (invalidDim[key]) {\n // 从【维度中】的字段到【实例中】字段的映射。 { functionName: FunctionName }\n keyTmp = invalidDim[key];\n ins[key] = ins[keyTmp];\n }\n\n let extraDimValue = this.getVariable(target[service][keyTmp]);\n if (this.queryMonitorExtraConfg[keyTmp]) {\n const {\n dim_KeyInStorage,\n dim_KeyInTarget = keyTmp,\n dim_KeyInMap,\n dim_KeyInIns,\n } = this.queryMonitorExtraConfg[keyTmp];\n let extraIns = ReplaceVariable(this.templateSrv, options.scopedVars, target[service][dim_KeyInTarget], true);\n let extraSourceMap: any = {};\n try {\n extraSourceMap = JSON.parse(extraIns); // 兼容json字符串的 形式\n } catch (error) {\n if (_.isArray(extraIns)) extraIns = extraIns[0]; // 如果多个,取第一个。除了实例ID 暂不支持其他纬度多选\n const extraStorage = await instanceStorage.getExtraStorage(this.service, dim_KeyInStorage);\n\n extraSourceMap =\n extraStorage?.find((item) => {\n if (_.isArray(item[dim_KeyInMap])) {\n return item[dim_KeyInMap][0] === extraIns;\n }\n return item[dim_KeyInMap] === extraIns;\n }) ?? {};\n }\n const isStringOrNumber = _.isString(extraSourceMap) || _.isNumber(extraSourceMap);\n // 增加ins实例之外的alias,填入到ins._InstanceAliasValue\n const insAlias = ins._InstanceAliasValue;\n const otherAlias = isStringOrNumber ? extraSourceMap : extraSourceMap._InstanceAliasValue;\n if (otherAlias && insAlias.indexOf(otherAlias) === -1) {\n ins._InstanceAliasValue += ` - ${otherAlias}`;\n }\n\n extraDimValue = isStringOrNumber ? extraSourceMap : extraSourceMap?.[dim_KeyInIns || keyTmp];\n } else {\n ins._InstanceAliasValue += this.getOtherAlias(ins, target[service]);\n }\n\n if (\n getTimeShiftInMs(target[service].timeshift) > 0 &&\n ins._InstanceAliasValue.indexOf(target[service].timeshift) === -1\n ) {\n ins._InstanceAliasValue += `_${target[service].timeshift}`;\n }\n // 设置instance,针对额外的维度,需要注意模板变量的值\n // ins[key] = ins[keyTmp] ?? extraDimValue;\n ins[key] = this.getDimensionsVal(ins, keyTmp, extraDimValue);\n // cynosdb产品接口返回维度和入参不一致\n if (this.checkKeys.length > 0) {\n this.checkKeys.forEach((Ekey) => {\n ins[Ekey] = ins[key];\n });\n }\n dimensionObject[key] = { Name: key, Value: ins[key] };\n }\n return dimensionObject;\n }\n getDimensionsVal(ins: Record, key: string, extraDimValue: string) {\n let dimVal = ins[key];\n if (_.isEmpty(dimVal) && this.CandiateDimensions[key]) {\n dimVal = ins[this.CandiateDimensions[key]];\n }\n return dimVal ?? extraDimValue;\n }\n query(options: any) {\n const service = this.service!; // 强制声明非空\n\n const queries = _.filter(options.targets, (item) => {\n // 过滤无效的查询 target\n return (\n item.hide !== true &&\n !!item.namespace &&\n !!item[service].metricName &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].region, false)) &&\n !_.isEmpty(ReplaceVariable(this.templateSrv, options.scopedVars, item[service].instance, true))\n );\n })\n .reduce((prev, target) => {\n if (getTimeShiftInMs(target[service].timeshift) > 0) {\n const cloneTarget = _.cloneDeep(target);\n cloneTarget[service].timeshift = '';\n return [...prev, cloneTarget, target];\n }\n return [...prev, target];\n }, [])\n .map(async (target) => {\n // 实例 instances 可能为模板变量,需先获取实际值\n // 针对JSON字符串和id的形式,分开做处理\n let instances = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].instance, true);\n const instanceCache = await instanceStorage.getInstance(this.service);\n const timeshift = getTimeShiftInMs(target[service].timeshift);\n\n instances = [].concat(instances).map((inst) => {\n try {\n return JSON.parse(inst); // 兼容json字符串的 形式\n } catch (error) {\n // 如果没拿到缓存,取默认实例组\n if (!instanceCache) return this.getDefaultInsObj?.(inst);\n return _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === inst)) ?? {};\n }\n });\n const region = ReplaceVariable(this.templateSrv, options.scopedVars, target[service].region, false);\n const insInReq: any = [];\n for (let ins of instances) {\n const dimensionObject = target[service].dimensionObject;\n // 处理dimensions的值\n const dimKeys = Object.keys(dimensionObject);\n const dimResult = await this.dimensionsFormat(dimKeys, ins, dimensionObject, target, service, options);\n\n insInReq.push([{ Dimensions: GetDimensions(dimResult) }]);\n }\n const data = {\n StartTime: moment(options.range.from).subtract(timeshift).format(),\n EndTime: moment(options.range.to).subtract(timeshift).format(),\n Period: target[service].period || 300,\n Instances: _.flatMap(insInReq),\n Namespace: target.namespace,\n MetricName: target[service].metricName,\n };\n return this.getMonitorData(data, region, instances, target[service], options);\n });\n\n if (queries.length === 0) {\n return [];\n }\n\n return Promise.all(queries)\n .then((responses) => {\n return _.flatten(responses);\n })\n .catch((error) => {\n return [];\n });\n }\n getDefaultInsObj(ins: string) {\n return {} as any;\n }\n getInstanceReqConfig(selfIns: any) {\n return {} as any;\n }\n getInvalidDimensions(selfIns: any, target?: any) {\n return {} as any;\n }\n // 获取某个变量的实际值,this.templateSrv.replace() 函数返回实际值的字符串\n getVariable(metric?: string) {\n const rs = this.templateSrv.replace((metric || '').trim());\n const valStr = rs.match(/\\{([\\w-,]+)\\}/);\n // 判断是否为多选\n if (valStr) {\n return valStr[1].split(',');\n }\n return rs;\n }\n\n /**\n * 获取 监控数据\n * @param params 获取监控数据的请求参数\n * @param region 地域信息\n * @param instances 实例列表,用于对返回结果的匹配解析\n */\n getMonitorData(params, region, instances, target, options) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { action: 'GetMonitorData', region }\n ).then((response) => {\n return ParseQueryResult(response, instances, timeshift);\n });\n }\n\n getRegions(): any {\n return this.doRequest(\n {\n url: this.url + '/cvm',\n },\n 'cvm',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getMetrics(region = 'ap-guangzhou'): Promise {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: this.namespace,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n ).then((response) => {\n const res = _.filter(\n _.filter(response.MetricSet || [], (item) => !(item.Namespace !== this.namespace || !item.MetricName))\n );\n const resFilterFn = this.MetricReqConfig.resultFilter;\n if (resFilterFn) {\n return res.map((item) => resFilterFn(item));\n }\n return res;\n });\n }\n\n getInstances(region, params = {}) {\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n params = { Offset: 0, Limit: 100, ...params };\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n // 处理异常,则不按正常的情况处理,直接抛出错误\n if (response?.Error) {\n console.error(response.Error);\n return response;\n }\n\n let result;\n // 先,field处理\n if (field) {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n }\n\n // 后,拦截器处理\n if (interceptor?.response) {\n result = interceptor.response(result);\n }\n return result;\n });\n }\n\n getVariableInstances(region, query = {}): Promise {\n let result: any[] = [];\n const params = { ...{ Offset: 0, Limit: 100 }, ...query };\n\n const {\n service = this.service,\n action,\n responseField: field,\n interceptor,\n } = this.InstanceReqConfig || this.getInstanceReqConfig(this);\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: interceptor?.request ? interceptor.request(params) : params,\n },\n serviceInfo.service,\n { region, action }\n ).then((response) => {\n result = _.get(response, field) ?? _.get(response, `Result.${field}`) ?? [];\n const total =\n response.TotalCount ?? response.TotalCnt ?? response.TotalNumber ?? _.get(response, `Result.TotalCount`) ?? 0;\n if (result.length >= total) {\n return interceptor?.response ? interceptor.response(result) : result;\n } else {\n const param = SliceLength(total, params?.Limit || 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, { ...item, ...query }));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return interceptor?.response ? interceptor.response(result) : result;\n })\n .catch((error) => {\n return interceptor?.response ? interceptor.response(result) : result;\n });\n }\n });\n }\n\n // 检查某变量字段是否有值\n isValidConfigField(field: string) {\n return field && field.length > 0;\n }\n\n testDatasource() {\n // const { service = this.service, action } = this.InstanceReqConfig;\n // const serviceInfo = GetServiceAPIInfo('ap-guangzhou', service);\n\n if (!this.isValidConfigField(this.secretId)) {\n return {\n service: this.service,\n status: 'error',\n message: 'The SecretId/SecretKey field is required.',\n };\n }\n\n return Promise.all([\n this.getRegions(),\n this.getMetrics(),\n // this.doRequest(\n // {\n // url: this.url + serviceInfo.path,\n // data: {\n // Offset: 0,\n // Limit: 1,\n // },\n // },\n // service,\n // { region: 'ap-guangzhou', action },\n // ),\n this.getInstances('ap-guangzhou', {\n Offset: 0,\n Limit: 1,\n }),\n ])\n .then((responses) => {\n const cvmErr = _.get(responses, '[0].Error', {});\n const monitorErr = _.get(responses, '[1].Error', {});\n const serviceErr = _.get(responses, '[2].Error', {});\n // const cvmAuthFail = _.get(cvmErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const monitorAuthFail = _.get(monitorErr, 'Code', '').indexOf('AuthFailure') !== -1;\n // const serviceAuthFail = _.get(serviceErr, 'Code', '').indexOf('AuthFailure') !== -1;\n const cvmAuthFail = _.get(cvmErr, 'Code', '');\n const monitorAuthFail = _.get(monitorErr, 'Code', '');\n const serviceAuthFail = _.get(serviceErr, 'Code', '');\n if (cvmAuthFail || monitorAuthFail || serviceAuthFail) {\n const messages: any[] = [];\n if (cvmAuthFail) {\n messages.push(_.get(cvmErr, 'Code'));\n }\n if (monitorAuthFail) {\n messages.push(_.get(monitorErr, 'Code'));\n }\n if (serviceAuthFail) {\n messages.push(_.get(serviceErr, 'Code'));\n }\n const message = _.join(_.compact(_.uniq(messages)), '; ');\n return {\n service: this.service,\n status: 'error',\n message,\n };\n } else {\n return {\n namespace: this.namespace,\n service: this.service,\n status: 'success',\n message: `Successfully queried the ${this.service} service.`,\n title: 'Success',\n };\n }\n })\n .catch((error) => {\n let message = `${this.service} service:`;\n message += error.statusText ? error.statusText + '; ' : '';\n if (_.get(error, 'data.error.code', '')) {\n message += error.data.error.code + '. ' + error.data.error.message;\n } else if (_.get(error, 'data.error', '')) {\n message += error.data.error;\n } else if (_.get(error, 'data', '')) {\n message += error.data;\n } else {\n message += `Cannot connect to ${this.service} service.`;\n }\n return {\n service: this.service,\n status: 'error',\n message: message,\n };\n });\n }\n\n async doRequest(options, service, signObj: any = {}) {\n options = await GetRequestParams(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data.Response', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import _ from 'lodash';\nimport { SERVICES } from '../tc_monitor';\n\n/* 从分页数据获取全量数据 */\nconst PageSize = 50;\nfunction getFieldsValue(value, fields) {\n return fields.map((item) => _.get(value, item, _.get(value, `Result.${item}`, [])));\n}\n\nexport async function fetchAllFactory(fetcher: (args: any) => Promise, _params: any, field: string | string[]) {\n const params = { ..._.omit(_params, ['isOffsetPage']) };\n params.Limit = params.Limit || PageSize; // 默认给个Limit大小为50\n params.Offset = params.Offset ?? 0; // 默认给个Offset为0\n\n // 第一次请求,获取总数\n const rs = (await fetcher(params)) ?? {};\n const fields = Array.isArray(field) ? field : [field];\n\n // rs.TotalCount = rs.TotalCount ?? rs.Result.TotalCount ?? [];\n // const { TotalCount } = rs;\n const TotalCount = rs.TotalCount ?? rs.Result?.TotalCount ?? rs.TotalCnt ?? rs.Result?.TotalCnt ?? 0;\n const firstLists = getFieldsValue(rs, fields);\n\n if (TotalCount === 0 || firstLists[0].length === TotalCount) {\n // 只有一页,结束\n return firstLists;\n }\n\n // 批量请求\n const delta = TotalCount - firstLists[0].length;\n const batchCount = Math.ceil(delta / PageSize);\n const pmList = new Array(batchCount).fill(0).map((_, index) => {\n params.Offset = _params.isOffsetPage ? 1 + index : (1 + index) * params.Limit;\n return fetcher(params);\n });\n\n // 合并\n const resultList = await Promise.all(pmList); // [ {a: [], b[] }, { a: [], b:[] }]\n\n return resultList.reduce((acc, cur) => {\n const lists = getFieldsValue(cur, fields);\n // [[], [], []] + [[], [], []]\n acc.forEach((list, index) => list.push(...lists[index]));\n return acc;\n }, firstLists);\n}\n\n/**\n * 实例列表接口入参处理\n *\n * @param queries 表单键入内容\n * @param isFilter 是否需要设置为Filters格式\n */\nexport function instanceQueryParamsBaseParse(queries: any, isFilter: boolean) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n } else {\n params[key] = _.uniq(item);\n }\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n if (isFilter) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n } else {\n params[key] = _.get(item, 'value');\n }\n }\n } else if (item !== null && item !== undefined && item !== '') {\n if (isFilter) {\n Filters.push({ Name: key, Values: item });\n } else {\n params[key] = item;\n }\n }\n });\n if (isFilter && Filters.length > 0) {\n params.Filters = Filters;\n return params;\n }\n }\n return params;\n}\n\nexport function getNamesapceFromService(serviceName: string) {\n return _.get(\n _.find(SERVICES, (service) => service.service === serviceName),\n 'namespace'\n );\n}\n\nexport function serviceGroupBy(\n services: { service: string; label: string; namespace: string; href: string; groupName?: string }[]\n) {\n const result = services.reduce((acc, cur) => {\n const { namespace, label, groupName = label } = cur;\n\n const existedGroup = acc.find((item) => item.label === groupName);\n if (!existedGroup) {\n acc.push({ label: groupName, value: groupName, items: [{ label, value: namespace }] });\n return acc;\n }\n\n existedGroup.items.push({ label, value: namespace });\n return acc;\n }, [] as any[]);\n\n // 将只有一个子元素的项目进行特殊处理\n const rs = result.map((item) =>\n item.items.length === 1 ? { label: item.items[0].label, value: item.items[0].value } : item\n );\n return rs;\n}\n\nexport const isTargetEqual = (newTargetString: string, oldTargetString: string, key: string) => {\n try {\n const newTarget = JSON.parse(newTargetString);\n const oldTarget = JSON.parse(oldTargetString);\n return newTarget[key] === oldTarget[key];\n } catch (e) {\n return newTargetString === oldTargetString;\n }\n};\n\nexport const getTimeShiftInMs = (timeShift: any) => {\n const parts = /^(\\d+)([d|h|m|s])$/.exec(timeShift);\n if (!parts) {\n return 0;\n }\n const amount = parseInt(parts[1], 10);\n const unit = parts[2];\n switch (unit) {\n case 'd':\n return amount * 86400 * 1000;\n case 'h':\n return amount * 3600 * 1000;\n case 'm':\n return amount * 60 * 1000;\n case 's':\n return amount * 1000;\n }\n return 0;\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nfunction classFactory(detailConfig) {\n return class QueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, detailConfig);\n\n $scope.getDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n return $scope.datasource.getFilterDropdown(service, { field, region: $scope.region });\n };\n }\n };\n}\n\nconst template = `\n\n`;\nfunction queryDDOFactory(QueryCtrl) {\n return function queryDDO() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n // QueryCtrl._config = config;\n const newQueryIns = classFactory(config);\n coreModule.directive(name, queryDDOFactory(newQueryIns));\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","interface DBEvent {\n target: { result: any; error: any };\n}\n// 数据库结构\ninterface DBTypes {\n store: StoreType;\n name?: string;\n version?: number;\n}\n// store表结构\ninterface StoreType {\n name: string; // 表名\n key: string; // 主键名\n cursorIndex?: { name: string; unique: boolean }[]; // 索引列表\n}\n\n// 数据结构\n// {service: 'cvm', instance: [{ins: 23}]}\ninterface DataType {\n service: string;\n [x: string]: any; // 有产品需缓存其他列表\n}\n\n// interface UpdateProps {\n// storeName: string;\n// cursorKey: string;\n// cursorValue?: any;\n// data: any;\n// }\n\nconst store: StoreType = {\n name: 'grafanaInstanceList',\n key: 'service',\n};\nconst promisify = (request: any, type?: string) => {\n return new Promise((resolve, reject) => {\n request.onsuccess = (event: DBEvent) => {\n const returnMap: any = {\n event: event.target.result,\n request: request.result,\n msg: '操作成功',\n };\n resolve(returnMap[type || 'msg']);\n };\n request.onerror = (event: DBEvent) => reject(event.target.error || '操作失败');\n });\n};\n// 固定表名和数据库名\nclass IndexedDB {\n name = 'grafanaDatabase';\n version = 1;\n\n constructor(props: DBTypes) {\n const { name = 'database', version = 1, store } = props;\n this.name = name;\n this.version = version;\n\n this.initDB(store);\n }\n\n /**\n * 初始化数据库\n * @param store 库表的结构\n */\n initDB(store: StoreType) {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n request.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n const db = (event.target as IDBOpenDBRequest).result;\n if (db.objectStoreNames.contains(store.name)) {\n // 存在表store\n }\n\n // 遍历store,设置数据表结构\n db.createObjectStore(store.name, {\n keyPath: store.key,\n });\n };\n request.onerror = () => Promise.reject(new Error('初始化数据库失败'));\n request.onsuccess = () => Promise.resolve('初始化数据库成功');\n }\n\n openDB() {\n const indexeddb = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;\n const request = indexeddb.open(this.name, this.version);\n\n return promisify(request, 'event');\n }\n\n /**\n * 新增数据\n * @param storeName 表名\n * @param data 添加的数据\n */\n async insertData(storeName: string, data: any) {\n try {\n // console.time('insertData');\n const db = await this.openDB();\n const transaction = db.transaction(storeName, 'readwrite');\n const objectStore = transaction.objectStore(storeName);\n\n objectStore.add(data);\n // console.timeEnd('insertData');\n\n return new Promise((resolve, reject) => {\n transaction.oncomplete = function () {\n // console.timeEnd('insertData');\n resolve('所有数据插入成功');\n };\n\n transaction.onerror = function (event) {\n reject(event);\n };\n });\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 更新数据\n * @param props 查询数据的参数以及要修改的值的参数\n */\n async addData(data: DataType, isCover?: boolean) {\n try {\n // console.log('addData');\n const storeName = store.name; // 表名\n const oldData = await this.getData(data.service);\n const objectStore = await this.getObjectStore(storeName, 'readwrite');\n\n if (!oldData) {\n // 不存在则新建\n this.insertData(storeName, data);\n }\n // 存在则更新\n let newData: any = { ...oldData, ...data };\n if (isCover) newData = data; // 需要覆盖之前内容\n // 把更新过的对象放回数据库\n const requestUpdate = objectStore.put(newData);\n // console.timeEnd('updateData');\n return promisify(requestUpdate);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n /**\n * 获取数据库的值,返回查询到的第一项\n * @param storeName 表名/存储对象的键\n * @param cursorKey key\n * @param cursorValue 要查询索引的值\n */\n async getData(seviceName: string) {\n try {\n // console.time('getData');\n const storeName = store.name;\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.get(seviceName);\n // console.timeEnd('getData');\n return promisify(request, 'request');\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async getAllData(storeName: string) {\n try {\n // console.time('getAllData');\n const objectStore = await this.getObjectStore(storeName);\n const request = objectStore.getAll();\n const result = await promisify(request, 'request');\n // console.timeEnd('getAllData');\n return result ? result : [];\n } catch (error) {\n return Promise.reject(error);\n }\n }\n /**\n * 获取对象仓库\n * @param storeName 表名\n * @param type readonly 或者 readwrite等\n */\n private async getObjectStore(storeName: string, type?: any): Promise {\n try {\n const db = await this.openDB();\n return db.transaction(storeName, type).objectStore(storeName);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n// console.log('testDDB')\n// const indexDB = new IndexedDB({store});\n// indexDB.addData({service: 'cvm', instance: [{ins: 23}]}).then(e=>{\n// indexDB.getData('cvm').then(dd=>{console.log({dd})})\n// })\nexport default new IndexedDB({ store });\n","import indexedDB from './indexedDB';\nclass InstanceStorage {\n // prefix = 'Datasource';\n // storageKey = 'grafanaInstanceCache';\n insKey = 'Instances';\n cacheWay = '';\n constructor() {}\n setInstance(service: string, value: Record) {\n return this.setStorage(service, this.insKey, value, true);\n }\n async getInstance(service: string) {\n return this.getStorage(service, this.insKey);\n }\n setExtraStorage(service: string, Ekey: string, EValue: Record) {\n return this.setStorage(service, Ekey, EValue, false);\n }\n async getExtraStorage(service: string, Ekey: string) {\n return this.getStorage(service, Ekey);\n }\n private setStorage(serviceKey: string, key: string, value: Record, isCover = false) {\n // console.log('set', serviceKey, key, value);\n return indexedDB.addData(\n {\n service: serviceKey,\n [key]: value,\n },\n isCover\n );\n }\n // 获取到模版变量信息\n private async getStorage(service: string, key?: string) {\n const storage = await indexedDB.getData(service);\n // console.log('get', key, storage);\n return key ? storage?.[key] : storage;\n }\n}\nexport default new InstanceStorage();\n","import _ from 'lodash';\n\nexport const CKAFKAQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstanceId',\n cnDescriptor: '按照实例ID过滤',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '按照实例名称过滤,支持模糊查询',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '匹配标签key值',\n link: '',\n type: 'input',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例的状态,不填默认返回全部',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '删除中', value: 2 },\n ],\n },\n];\n\nconst CKAFKA_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n topicId: '',\n topicName: '',\n consumerGroup: '',\n partition: '',\n queries: {\n Offset: 0,\n Limit: 10,\n Status: [],\n InstanceId: '',\n SearchWord: '',\n TagKey: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CKAFKAInstanceAliasList = ['InstanceId', 'InstanceName'];\nconst CKAFKATopicAliasList = ['TopicId', 'TopicName'];\n// 保存在模板变量value中的key\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n topicId: 'TopicId',\n groupName: 'GroupName',\n partition: 'PartitionId',\n};\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CKAFKAInvalidDemensions = new Proxy(\n {\n topicId: 'TopicId',\n topicName: 'TopicName',\n consumerGroup: 'GroupName',\n partition: 'PartitionId',\n },\n {\n get: (obj, prop) => {\n if (String(prop).toLocaleLowerCase() === 'instanceid') return 'InstanceId';\n return obj[prop];\n },\n }\n);\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n TopicList: 'TopicList',\n GroupList: 'GroupList',\n PartitionList: 'PartitionList',\n};\n\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicId: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n // topicName和topicId是同一个storage中的source,所以根据topicId帅选\n TopicName: {\n dim_KeyInStorage: keyInStorage.TopicList,\n dim_KeyInTarget: 'topicId',\n dim_KeyInMap: templateQueryIdMap.topicId,\n },\n GroupName: {\n dim_KeyInStorage: keyInStorage.GroupList,\n dim_KeyInTarget: 'consumerGroup',\n dim_KeyInMap: templateQueryIdMap.groupName,\n },\n PartitionId: {\n dim_KeyInStorage: keyInStorage.PartitionList,\n dim_KeyInTarget: 'partition',\n dim_KeyInMap: templateQueryIdMap.partition,\n },\n};\nexport default CKAFKA_STATE;\nexport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as CKAFKAGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/LOADBALANCE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'loadBalanceQuery';\n\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst LOADBALANCEFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: LOADBALANCEFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst LOADBALANCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n servers: '',\n serverPort: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\n// function GetInstanceQueryParams(queries: any = {}) {\n// const params: any = {};\n// if (!_.isEmpty(queries)) {\n// params.Limit = _.get(queries, 'Limit', 20) || 20;\n// params.Offset = _.get(queries, 'Offset', 0) || 0;\n// queries = _.omit(queries, ['Offset', 'Limit']);\n// _.forEach(queries, (item: any, key) => {\n// if (_.isArray(item)) {\n// item = _.compact(item);\n// if (item.length > 0) {\n// params[key] = _.uniq(item);\n// }\n// } else if (_.isObject(item)) {\n// if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n// params[key] = _.get(item, 'value');\n// }\n// } else if (_.isNumber(item) || !_.isEmpty(item)) {\n// params[key] = item;\n// }\n// });\n// }\n// return params;\n// }\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst InstanceAliasList = ['LoadBalancerId', 'LoadBalancerName', 'LoadBalancerVips'];\nconst LOADBALANCEListenerAliasList = ['ListenerId', 'ListenerName', 'Port'];\nconst LOADBALANCEServerAliasList = ['PrivateIpAddresses', 'InstanceId'];\nconst LOADBALANCEVALIDDIMENSIONS = {\n vip: 'LoadBalancerVips',\n // vpcId: 'NumericalVpcId',\n loadBalancerPort: 'Port',\n protocol: 'Protocol',\n lanIp: 'PrivateIpAddresses',\n port: 'ServerPort',\n};\n// 对于ipv6类型,vip应该取AddressIPv6。\nconst CANDIATEDIMENSIONS = {\n LoadBalancerVips: 'AddressIPv6',\n};\n// dimensionObject[item] = { Name: item, Value: '' };\n// const LOADBALANCE_INSTANCE_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// };\n// const LOADBALANCE_LISTENER_DIMENSIONOBJECTS = {\n// vip: { Name: 'vip', Value: '' },\n// loadBalancerPort: { Name: 'loadBalancerPort', Value: '' },\n// protocol: { Name: 'protocol', Value: '' },\n// };\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n listener: 'ListenerId',\n servers: 'PrivateIpAddresses',\n port: 'Port',\n};\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n listener: 'ListenerList',\n servers: 'ServersList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Port: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n Protocol: {\n dim_KeyInStorage: keyInStorage.listener,\n dim_KeyInTarget: 'listener',\n dim_KeyInMap: templateQueryIdMap.listener,\n },\n PrivateIpAddresses: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'servers',\n dim_KeyInMap: templateQueryIdMap.servers,\n },\n ServerPort: {\n dim_KeyInStorage: keyInStorage.servers,\n dim_KeyInTarget: 'serverPort',\n dim_KeyInIns: 'Port',\n dim_KeyInMap: templateQueryIdMap.port,\n },\n};\nexport default LOADBALANCE_STATE;\nexport {\n LOADBALANCEFieldsDescriptor,\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n CANDIATEDIMENSIONS,\n // LOADBALANCE_LISTENER_DIMENSIONOBJECTS,\n // LOADBALANCE_INSTANCE_DIMENSIONOBJECTS,\n queryMonitorExtraConfg,\n keyInStorage,\n queryEditorConfig,\n namespace,\n queryEditorName,\n GetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TDMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n tenantId: 'ClusterId',\n tenant: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// 需和文件名对应\nconst TDMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n topicName: 'TopicName',\n environmentId: 'EnvironmentId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n topicName: '',\n environmentId: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n if (item.Dimensions.indexOf('topicName') !== -1 && item.Dimensions.indexOf('environmentId') === -1) {\n item.Dimensions.push('environmentId');\n }\n });\n return metricTmp;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n topicName: 'topicName',\n environmentId: 'environmentId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n TopicName: {\n dim_KeyInStorage: keyInStorage.topicName,\n dim_KeyInTarget: 'topicName',\n dim_KeyInMap: templateQueryIdMap.topicName,\n },\n EnvironmentId: {\n dim_KeyInStorage: keyInStorage.environmentId,\n dim_KeyInTarget: 'environmentId',\n dim_KeyInMap: templateQueryIdMap.environmentId,\n },\n};\nexport default CDNPROVINCE_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/GSE';\nconst fleetId = 'FleetId'; // 为和cvm其他产品保持一致,即将string[]改为Array<{fleetid: xxx}>,在此声明key\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'gseQuery';\n\nconst GSEInvalidDemensions = {\n instanceid: 'InstanceId',\n fleetid: 'FleetId',\n queuename: 'Name',\n};\n\n// 需和文件名对应\nconst GSEInstanceAliasList = ['InstanceId', 'PrivateIpAddress', 'IpAddress'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n Name: 'Name',\n FleetId: fleetId,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n fleet: 'fleet', // 实例队列\n queue: 'queueName', // 会话队列\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n FleetId: {\n dim_KeyInStorage: keyInStorage.fleet,\n dim_KeyInTarget: 'FleetId',\n dim_KeyInMap: templateQueryIdMap.FleetId,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.queue,\n dim_KeyInTarget: 'Name',\n dim_KeyInMap: templateQueryIdMap.Name,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst GSEFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceId: '',\n FleetId: '',\n};\n\nconst GSEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'resourceName',\n cnDescriptor: '资源名称',\n link: '',\n type: 'input',\n },\n {\n key: 'FleetId',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1165/42604',\n namespace,\n fieldDescriptor: GSEFilterFieldsDescriptor,\n};\n\nconst GSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n FleetId: '', // 服务器实例\n Name: '', // 队列名称\n queries: GSEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n // { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n // { value: 'ap-shanghai-fsi' },\n // { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n // { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => GSEInvalidDemensions[v] || v);\n });\n return metricTmp;\n}\nexport default GSE_STATE;\nexport {\n GSEFilterFieldsDescriptor,\n templateQueryIdMap,\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n fleetId,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as GSEGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { isArray, cloneDeep } from 'lodash';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/TDMYSQL';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'dcdbQuery';\n\nconst DCDBInvalidDemensions = {\n nodeid: 'NodeId',\n instanceid: 'InstanceId',\n shardid: 'ShardInstanceId',\n ShardId: 'ShardInstanceId',\n};\n\n// 需和文件名对应\nconst DCDBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst DCDBFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n SearchName: '',\n SearchKey: '',\n ProjectIds: [],\n // IsFilterVpc\n VpcId: '',\n SubnetId: '',\n\n OrderBy: {},\n OrderByType: {},\n // IsFilterExcluster: {},\n ExclusterType: {},\n\n ExclusterIds: [],\n FilterInstanceType: {},\n};\n\nconst DCDBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例 ID 查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'SearchName',\n enDescriptor: 'SearchName',\n cnDescriptor: '搜索的字段名,当前支持的值有:instancename、vip、all',\n link: '',\n type: 'input',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '搜索的关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '按项目 ID 查询',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'projectId', value: 'projectId' },\n { text: 'createtime', value: 'createtime' },\n { text: 'instancename', value: 'instancename' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'select',\n list: [\n { text: 'desc', value: 'desc' },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterType',\n enDescriptor: 'ExclusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: [\n { text: '非独享集群', value: 1 },\n { text: '独享集群', value: 2 },\n { text: '全部', value: 0 },\n { text: 'asc', value: 'asc' },\n ],\n },\n {\n key: 'ExclusterIds',\n enDescriptor: 'ExclusterIds',\n cnDescriptor: '独享集群ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'FilterInstanceType',\n enDescriptor: 'FilterInstanceType',\n cnDescriptor: '实例类型过滤',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '独享实例', value: 1 },\n { text: '主实例', value: 2 },\n { text: '灾备实例', value: 3 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/557/16140',\n namespace,\n fieldDescriptor: DCDBFilterFieldsDescriptor,\n};\n\nconst DCDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n ShardId: '',\n NodeId: '',\n queries: DCDBFilterFields,\n};\nconst modifyMetricConf = {\n shardid: 'ShardId',\n instanceid: 'InstanceId',\n nodeid: 'NodeId',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((v) => modifyMetricConf[v] || v);\n });\n return metricTmp;\n}\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params = instanceQueryParamsBaseParse(queries, false);\n // 特殊处理\n params.IsFilterVpc = false;\n params.IsFilterExcluster = false;\n if (params.VpcId || params.SubnetId) params.IsFilterVpc = true;\n if (params.ExclusterType) params.IsFilterExcluster = true;\n if (isArray(params.FilterInstanceType)) params.FilterInstanceType = params.FilterInstanceType.join(',');\n return params;\n}\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n NodeId: 'NodeId',\n ShardInstanceId: 'ShardId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeId: {\n dim_KeyInStorage: keyInStorage.NodeId,\n dim_KeyInTarget: 'NodeId',\n dim_KeyInMap: templateQueryIdMap.NodeId,\n },\n ShardInstanceId: {\n dim_KeyInStorage: keyInStorage.ShardInstanceId,\n dim_KeyInTarget: 'ShardId',\n dim_KeyInMap: templateQueryIdMap.ShardInstanceId,\n },\n};\n// 和其他产品的展示保持一致\nconst regionSupported = [\n { text: '华北地区(北京)', value: 'ap-beijing' },\n { text: '西南地区(成都)', value: 'ap-chengdu' },\n { text: '西南地区(重庆)', value: 'ap-chongqing' },\n { text: '华南地区(广州)', value: 'ap-guangzhou' },\n { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n { text: '华东地区(南京)', value: 'ap-nanjing' },\n { text: '华东地区(上海)', value: 'ap-shanghai' },\n { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n { text: '亚太东北(东京)', value: 'ap-tokyo' },\n { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n { text: '北美地区(多伦多)', value: 'na-toronto' },\n];\nexport default DCDB_STATE;\nexport {\n DCDBFilterFieldsDescriptor,\n templateQueryIdMap,\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n keyInStorage,\n modifyDimensons,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as DCDBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst namespace = 'QCE/REDIS_MEM';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisMemFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDISMEM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n rnodeid: '',\n pnodeid: '',\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst REDISMEMInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisMemInvalidDemensions = {\n instanceid: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n rnodeid: 'rnodeid',\n pnodeid: 'pnodeid',\n};\n\nconst NodeType = ['Redis', 'Proxy'];\n\nexport default REDISMEM_STATE;\nexport {\n RedisMemFieldsDescriptor,\n RedisMemInvalidDemensions,\n REDISMEMInstanceAliasList,\n templateQueryIdMap,\n namespace,\n NodeType,\n GetInstanceQueryParams as REDISMEMGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/RABBITMQ';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tdmqQuery';\n\nconst TDMQInvalidDemensions = {\n instanceid: 'InstanceId',\n node: 'NodeName',\n};\n\n// 需和文件名对应\nconst TDMQRABBITMQInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n node: 'NodeName',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n node: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'NodeName',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NodeName: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'node',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryEditorName,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/ROCKETMQ';\n\nconst TDMQInvalidDemensions = {\n tenant: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// 需和文件名对应\nconst TDMQROCKETMQInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nconst templateQueryIdMap = {\n instance: 'ClusterId',\n namespace: 'NamespaceId',\n group: 'Name',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst TDMQFilterFields = {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIdList: [''],\n Filters: {\n includeVip: { text: '是', value: 'true' },\n },\n};\n\nconst TDMQFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'includeVip',\n enDescriptor: 'includeVip',\n cnDescriptor: '包含专享集群',\n link: '',\n type: 'select',\n list: [\n { text: '是', value: 'true' },\n { text: '否', value: 'false' },\n ],\n },\n];\n\nconst TDMQ_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n // 此处key应该是经过TDMQInvalidDemensions处理后的\n namespace: '',\n group: '',\n queries: TDMQFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.ClusterIdList)) {\n const ClusterIdList = _.compact(queries.ClusterIdList);\n if (_.uniq(ClusterIdList).length > 0) {\n params.ClusterIdList = _.uniq(ClusterIdList).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: [_.get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-nanjing' },\n { value: 'ap-hongkong' },\n { value: 'ap-tokyo' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n { value: 'ap-bangkok' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n namespace: 'NamespaceId',\n group: 'Name',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n NamespaceId: {\n dim_KeyInStorage: keyInStorage.namespace,\n dim_KeyInTarget: 'namespace',\n dim_KeyInMap: templateQueryIdMap.namespace,\n },\n Name: {\n dim_KeyInStorage: keyInStorage.group,\n dim_KeyInTarget: 'group',\n dim_KeyInMap: templateQueryIdMap.group,\n },\n};\nexport default TDMQ_STATE;\nexport {\n TDMQFilterFieldsDescriptor,\n templateQueryIdMap,\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n queryMonitorExtraConfg,\n keyInStorage,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TDMQROCKETMQGetInstanceQueryParams,\n};\n","import { t } from '../../locale';\n// name (产品名称), service(对应的真实service)\ninterface ServiceType {\n service: string;\n label: string;\n namespace: string;\n href: string;\n groupName?: string;\n hideRegion?: boolean;\n}\nconst SERVICES: ServiceType[] = [\n {\n service: 'cvm',\n get label() {\n return t('CVM');\n },\n namespace: 'QCE/CVM',\n href: 'https://cloud.tencent.com/document/api/213/15688',\n },\n {\n service: 'cdb',\n get label() {\n return t('CDB');\n },\n namespace: 'QCE/CDB',\n href: 'https://cloud.tencent.com/document/api/236/15829',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'mongoDB',\n get label() {\n return t('CMONGO');\n },\n namespace: 'QCE/CMONGO',\n href: 'https://cloud.tencent.com/document/api/240/38568',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'postgres',\n get label() {\n return t('POSTGRES');\n },\n namespace: 'QCE/POSTGRES',\n href: 'https://cloud.tencent.com/document/product/248/45105',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redis',\n get label() {\n return t('REDIS');\n },\n namespace: 'QCE/REDIS',\n href: 'https://cloud.tencent.com/document/product/248/45110',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'redisMem',\n get label() {\n return t('REDIS_MEM');\n },\n namespace: 'QCE/REDIS_MEM',\n href: 'https://cloud.tencent.com/document/product/248/49729',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'sqlserver',\n get label() {\n return t('SQLSERVER');\n },\n namespace: 'QCE/SQLSERVER',\n href: 'https://cloud.tencent.com/document/product/248/45146',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'cynosdbMysql',\n get label() {\n return t('CYNOSDB_MYSQL');\n },\n namespace: 'QCE/CYNOSDB_MYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45106',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'tcaplus',\n get label() {\n return t('TCAPLUS');\n },\n namespace: 'QCE/TCAPLUS',\n href: 'https://cloud.tencent.com/document/product/248/45107',\n get groupName() {\n return t('cloud_database');\n },\n },\n {\n service: 'dcdb',\n get label() {\n return t('TDMYSQL');\n },\n namespace: 'QCE/TDMYSQL',\n href: 'https://cloud.tencent.com/document/product/248/45108',\n },\n {\n service: 'pcx',\n get label() {\n return t('PCX');\n },\n namespace: 'QCE/PCX',\n href: 'https://cloud.tencent.com/document/product/215/5181',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'bwp',\n get label() {\n return t('BWP');\n },\n namespace: 'QCE/BWP',\n href: 'https://cloud.tencent.com/document/api/215/19209',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'natGateway',\n get label() {\n return t('NAT_GATEWAY');\n },\n namespace: 'QCE/NAT_GATEWAY',\n href: 'https://cloud.tencent.com/document/api/215/36034',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpngw',\n get label() {\n return t('VPNGW');\n },\n namespace: 'QCE/VPNGW',\n href: 'https://cloud.tencent.com/document/product/248/45070',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpnx',\n get label() {\n return t('VPNX');\n },\n namespace: 'QCE/VPNX',\n href: 'https://cloud.tencent.com/document/product/248/45071',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'dcg',\n get label() {\n return t('DCG');\n },\n namespace: 'QCE/DCG',\n href: 'https://cloud.tencent.com/document/product/248/45072',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'ceipSummary',\n get label() {\n return t('CEIP_SUMMARY');\n },\n namespace: 'QCE/CEIP_SUMMARY',\n href: 'https://cloud.tencent.com/document/product/248/50381',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vpcNetDetect',\n get label() {\n return t('VPC_NET_DETECT');\n },\n namespace: 'QCE/VPC_NET_DETECT',\n href: 'https://cloud.tencent.com/document/product/248/50384',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'vbc',\n get label() {\n return t('VBC');\n },\n namespace: 'QCE/VBC',\n href: 'https://cloud.tencent.com/document/product/248/45073',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lb',\n get label() {\n return t('LB');\n },\n namespace: 'QCE/LB',\n href: 'https://cloud.tencent.com/document/product/248/45099',\n get groupName() {\n return t('virtual_private_cloud');\n },\n },\n {\n service: 'lbPublic',\n get label() {\n return t('LB_PUBLIC');\n },\n namespace: 'QCE/LB_PUBLIC',\n href: 'https://cloud.tencent.com/document/product/248/51898',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'lbPrivate',\n get label() {\n return t('LB_PRIVATE');\n },\n namespace: 'QCE/LB_PRIVATE',\n href: 'https://cloud.tencent.com/document/product/248/51899',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'loadBalance',\n get label() {\n return t('LOADBALANCE');\n },\n namespace: 'QCE/LOADBALANCE',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('multi_scene')})`;\n },\n },\n {\n service: 'vClb',\n get label() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n namespace: 'QCE/V_CLB',\n href: 'https://cloud.tencent.com/document/product/248/51901',\n get groupName() {\n return `${t('cloud_load_balancer')}(${t('lite')})`;\n },\n },\n {\n service: 'cdn',\n get label() {\n return t('CDN');\n },\n namespace: 'QCE/CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50386',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'cdnProvince',\n get label() {\n return t('CDN_LOG_DATA');\n },\n namespace: 'QCE/CDN_LOG_DATA',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50388',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'ovCdn',\n get label() {\n return t('OV_CDN');\n },\n namespace: 'QCE/OV_CDN',\n hideRegion: true,\n href: 'https://cloud.tencent.com/document/product/248/50387',\n get groupName() {\n return t('content_delivery_network');\n },\n },\n {\n service: 'scf',\n get label() {\n return t('SCF_V2');\n },\n namespace: 'QCE/SCF_V2',\n href: 'https://cloud.tencent.com/document/product/248/45130',\n },\n {\n service: 'cfs',\n get label() {\n return t('CFS');\n },\n namespace: 'QCE/CFS',\n href: 'https://cloud.tencent.com/document/product/248/45143',\n },\n {\n service: 'cos',\n get label() {\n return t('COS');\n },\n namespace: 'QCE/COS',\n href: 'https://cloud.tencent.com/document/product/248/45140',\n },\n {\n service: 'ckafka',\n get label() {\n return t('CKAFKA');\n },\n namespace: 'QCE/CKAFKA',\n href: 'https://cloud.tencent.com/document/product/248/45121',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmq',\n get label() {\n return t('CMQ');\n },\n namespace: 'QCE/CMQ',\n href: 'https://cloud.tencent.com/document/product/248/45114',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'cmqTopic',\n get label() {\n return t('CMQTOPIC');\n },\n namespace: 'QCE/CMQTOPIC',\n href: 'https://cloud.tencent.com/document/product/248/45113',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmq',\n get label() {\n return t('TDMQ');\n },\n namespace: 'QCE/TDMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRocketmq',\n get label() {\n return t('TDMQ_ROCKETMQ');\n },\n namespace: 'QCE/ROCKETMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'tdmqRabbitmq',\n get label() {\n return t('TDMQ_RABBITMQ');\n },\n namespace: 'QCE/RABBITMQ',\n href: 'https://cloud.tencent.com/document/product/248/51450',\n get groupName() {\n return t('message_queue');\n },\n },\n {\n service: 'dcx',\n get label() {\n return t('DCX');\n },\n namespace: 'QCE/DCX',\n href: 'https://cloud.tencent.com/document/product/248/45101',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'dc',\n get label() {\n return t('DC');\n },\n namespace: 'QCE/DC',\n href: 'https://cloud.tencent.com/document/product/248/45102',\n get groupName() {\n return t('direct_connect');\n },\n },\n {\n service: 'cpm',\n get label() {\n return t('CPM');\n },\n namespace: 'QCE/CPM',\n href: 'https://cloud.tencent.com/document/product/248/45881',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmPcx',\n get label() {\n return t('BM_PCX');\n },\n namespace: 'QCE/BM_PCX',\n href: 'https://cloud.tencent.com/document/product/248/45884',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmLb',\n get label() {\n return t('BM_LB');\n },\n namespace: 'QCE/BM_LB',\n href: 'https://cloud.tencent.com/document/product/248/45886',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'bmIntraLb',\n get label() {\n return t('BM_INTRA_LB');\n },\n namespace: 'QCE/BM_INTRA_LB',\n href: 'https://cloud.tencent.com/document/product/248/45885',\n get groupName() {\n return t('cloud_physical_machine');\n },\n },\n {\n service: 'ces',\n get label() {\n return t('CES');\n },\n namespace: 'QCE/CES',\n href: 'https://cloud.tencent.com/document/product/248/45129',\n },\n {\n service: 'mrHDFS',\n get label() {\n return `${t('elastic_mapReduce')}(HDFS)`;\n },\n namespace: 'QCE/TXMR_HDFS',\n href: 'https://cloud.tencent.com/document/product/248/44797',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHBASE',\n get label() {\n return `${t('elastic_mapReduce')}(HBASE)`;\n },\n namespace: 'QCE/TXMR_HBASE',\n href: 'https://cloud.tencent.com/document/product/248/45567',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrHIVE',\n get label() {\n return `${t('elastic_mapReduce')}(HIVE)`;\n },\n namespace: 'QCE/TXMR_HIVE',\n href: 'https://cloud.tencent.com/document/product/248/45569',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrNODE',\n get label() {\n return `${t('elastic_mapReduce')}(NODE)`;\n },\n namespace: 'QCE/TXMR_NODE',\n href: 'https://cloud.tencent.com/document/product/248/45570',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrPRESTO',\n get label() {\n return `${t('elastic_mapReduce')}(PRESTO)`;\n },\n namespace: 'QCE/TXMR_PRESTO',\n href: 'https://cloud.tencent.com/document/product/248/45571',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrSPARK',\n get label() {\n return `${t('elastic_mapReduce')}(SPARK)`;\n },\n namespace: 'QCE/TXMR_SPARK',\n href: 'https://cloud.tencent.com/document/product/248/45572',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrYARN',\n get label() {\n return `${t('elastic_mapReduce')}(YARN)`;\n },\n namespace: 'QCE/TXMR_YARN',\n href: 'https://cloud.tencent.com/document/product/248/45573',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'mrZOOKEEPER',\n get label() {\n return `${t('elastic_mapReduce')}(ZOOKEEPER)`;\n },\n namespace: 'QCE/TXMR_ZOOKEEPER',\n href: 'https://cloud.tencent.com/document/product/248/45574',\n get groupName() {\n return t('elastic_mapReduce');\n },\n },\n {\n service: 'cbs',\n get label() {\n return t('BLOCK_STORAGE');\n },\n namespace: 'QCE/BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/362/2345',\n },\n {\n service: 'apigateway',\n get label() {\n return t('APIGATEWAY');\n },\n namespace: 'QCE/APIGATEWAY',\n href: 'https://cloud.tencent.com/document/product/248/45127',\n },\n {\n service: 'qaap',\n get label() {\n return t('QAAP');\n },\n namespace: 'QCE/QAAP',\n href: 'https://cloud.tencent.com/document/product/608',\n },\n {\n service: 'ecm',\n get label() {\n return t('ECM');\n },\n hideRegion: true,\n namespace: 'QCE/ECM',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmBlockStorage',\n get label() {\n return t('ECM_BLOCK_STORAGE');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_BLOCK_STORAGE',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'ecmLb',\n get label() {\n return t('ECM_LB');\n },\n hideRegion: true,\n namespace: 'QCE/ECM_LB',\n href: 'https://cloud.tencent.com/document/product/1108',\n get groupName() {\n return t('edge_computing_machine');\n },\n },\n {\n service: 'gse',\n get label() {\n return t('GSE');\n },\n namespace: 'QCE/GSE',\n href: 'https://cloud.tencent.com/document/product/1165',\n },\n {\n service: 'cls',\n get label() {\n return t('CLS');\n },\n namespace: 'QCE/CLS',\n href: 'https://cloud.tencent.com/document/product/614',\n },\n {\n service: 'tke',\n get label() {\n return t('TKE');\n },\n namespace: 'QCE/TKE2',\n href: 'https://cloud.tencent.com/document/product/457',\n },\n {\n service: 'ecdn',\n get label() {\n return t('ECDN');\n },\n namespace: 'QCE/DSA',\n href: 'https://cloud.tencent.com/document/product/570',\n },\n // {\n // service: 'lighthouse',\n // label: '轻量应用服务器(LIGHTHOUSE)',\n // namespace: 'QCE/LIGHTHOUSE',\n // href: 'https://cloud.tencent.com/document/product/1207',\n // },\n // {\n // service: 'tsf',\n // label: ' 微服务平台(TSF)',\n // namespace: 'QCE/TSF',\n // href: 'https://cloud.tencent.com/document/product/649',\n // },\n {\n service: 'waf',\n get label() {\n return t('WAF');\n },\n // hideRegion: true,\n namespace: 'QCE/WAF',\n href: 'https://cloud.tencent.com/document/product/627',\n },\n];\nconst Datasources = {};\nconst InitStates = {};\nconst InstanceAliasList = {};\nconst GetInstanceQueryParams = {};\n\n/**\n * 由于目录命名不规范,导致需要使用额外逻辑保证正确性。从目录到具体service的映射\n */\nconst hackModuleName = {\n // lb_loadBalance: 'loadBalance',\n postgresql: 'postgres',\n mongodb: 'mongoDB',\n clb: ['lbPrivate', 'lbPublic', 'loadBalance'],\n mr: ['mrHDFS', 'mrHBASE', 'mrHIVE', 'mrNODE', 'mrPRESTO', 'mrSPARK', 'mrYARN', 'mrZOOKEEPER'],\n};\n\nconst requireModule = (require as any).context('./', true, /^\\.\\/[a-zA-Z]\\w+\\/(datasource)|(query(_def)?)\\.ts$/);\n\nrequireModule.keys().forEach((filePath) => {\n let [, moduleName, fileName] = filePath.split('/');\n\n // hack: 这里是由于产品目录命名不规范,所以才会多这么一段代码\n moduleName = hackModuleName[moduleName] ?? moduleName;\n\n // 目录与模块的映射关系,不管是一对一还是一对多,均按数组进行统一处理\n [].concat(moduleName).forEach((module: string) => {\n // 这个service就是产品配置中的service,需要注意这里的service是根据目录名称算出来的,因此目录名称一定要和service对应\n const service = module.replace(/_([a-zA-Z])/g, (_, b) => b.toUpperCase());\n const prefix = service.toUpperCase(); // 命名规则\n\n // datasource\n if (fileName === 'datasource.ts') {\n const Cls = require(`${filePath}`).default;\n\n // 想办法为实例注入service,不能为prototype或则类本身注入,因为会造成互相污染,详尽mrDatasource\n Datasources[`${prefix}Datasource`] = class {\n constructor(...params) {\n const target = new Cls(...params, service);\n target.service = service;\n // eslint-disable-next-line no-constructor-return\n return target;\n }\n };\n }\n // query\n if (fileName === 'query.ts') {\n require(`${filePath}`);\n }\n // query_def\n if (fileName === 'query_def.ts') {\n const alias = `${prefix}InstanceAliasList`;\n const getParams = `${prefix}GetInstanceQueryParams`;\n\n const target = require(`${filePath}`);\n\n InitStates[service] = target.default; // FIXME: 这里需不需要深拷贝?\n InstanceAliasList[alias] = target[alias] ?? target['InstanceAliasList'];\n GetInstanceQueryParams[getParams] = target[getParams] ?? target['GetInstanceQueryParams'];\n }\n });\n});\n\nexport {\n InitStates as InitServiceState,\n SERVICES,\n Datasources,\n InstanceAliasList,\n GetInstanceQueryParams,\n // DefaultDimensions\n};\n\n// console.log(Datasources, InitStates, InstanceAliasList, GetInstanceQueryParams);\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_BLOCK_STORAGE';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ecmBlockStorageQuery';\n\nconst ECMBLOCKSTORAGEInvalidDemensions = {\n uuid: 'UUID',\n diskId: 'DiskId',\n};\n\n// 需和文件名对应\nconst ECMBLOCKSTORAGEInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n diskId: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst ECMBLOCKSTORAGEFilterFields = {\n Limit: 20,\n Offset: 0,\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMBLOCKSTORAGEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMBLOCKSTORAGEFilterFieldsDescriptor,\n};\n\nconst ECMBLOCKSTORAGE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n diskId: '',\n queries: ECMBLOCKSTORAGEFilterFields,\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n diskId: 'diskId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n DiskId: {\n dim_KeyInStorage: keyInStorage.diskId,\n dim_KeyInTarget: 'diskId',\n dim_KeyInMap: templateQueryIdMap.diskId,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default ECMBLOCKSTORAGE_STATE;\nexport {\n ECMBLOCKSTORAGEFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n keyInStorage,\n queryMonitorExtraConfg,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as ECMBLOCKSTORAGEGetInstanceQueryParams,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__22__;","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/APIGATEWAY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'apigatewayQuery';\n\nconst APIGATEWAYInvalidDemensions = {\n serviceId: 'ServiceId',\n environmentName: 'EnvironmentName',\n apiid: 'Apiid',\n apiId: 'Apiid',\n};\n\n// 需和文件名对应\nconst APIGATEWAYInstanceAliasList = ['ServiceId', 'ServiceName'];\n\nconst templateQueryIdMap = {\n instance: 'ServiceId',\n environmentName: 'EnvironmentName',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n environmentList: 'EnvironmentList',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n EnvironmentName: {\n dim_KeyInStorage: keyInStorage.environmentList,\n dim_KeyInTarget: 'EnvironmentName',\n dim_KeyInMap: templateQueryIdMap.environmentName,\n },\n};\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst APIGATEWAYFilterFields = {\n Limit: 20,\n Offset: 0,\n ServiceId: [],\n ServiceName: [],\n NotUsagePlanId: [],\n Environment: [],\n IpVersion: [],\n};\n\nconst APIGATEWAYFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ServiceId',\n enDescriptor: 'ServiceId',\n cnDescriptor: '服务id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ServiceName',\n enDescriptor: 'ServiceName',\n cnDescriptor: '服务名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'NotUsagePlanId',\n enDescriptor: 'NotUsagePlanId',\n cnDescriptor: 'NotUsagePlanId',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Environment',\n enDescriptor: 'Environment',\n cnDescriptor: '环境名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'IpVersion',\n enDescriptor: 'IpVersion',\n cnDescriptor: 'IP版本',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/628/45198',\n namespace,\n fieldDescriptor: APIGATEWAYFilterFieldsDescriptor,\n};\n\nconst APIGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ServiceId',\n EnvironmentName: '',\n queries: APIGATEWAYFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nexport default APIGATEWAY_STATE;\nexport {\n APIGATEWAYFilterFieldsDescriptor,\n templateQueryIdMap,\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as APIGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const InstanceQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '按照一个或者多个实例ID查询。实例ID形如: emr-xxxxxxxx ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 'clusterId' },\n { text: '创建时间', value: 'addTime' },\n { text: '状态', value: 'status' },\n ],\n },\n {\n key: 'Asc',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '降序', value: 0 },\n { text: '升序', value: 1 },\n ],\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '实例所属项目ID',\n link: '',\n type: 'inputnumber',\n },\n {\n key: 'DisplayStrategy',\n enDescriptor: 'DisplayStrategy',\n cnDescriptor: '集群筛选策略',\n link: '',\n type: 'select',\n list: [\n { text: '未销毁的实例', value: 'clusterList' },\n { text: '正常运行的实例', value: 'monitorManage' },\n ],\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = new Proxy(\n {},\n {\n get(target, k, receiver) {\n if (typeof k === 'string') {\n if (k.startsWith('id4')) return 'ClusterId'; // id4****\n if (k.startsWith('host4')) return 'Ip'; // host4***\n }\n return Reflect.get(target, k, receiver);\n },\n has(target, propKey) {\n return true;\n },\n }\n);\n\nexport const templateQueryIdMap = {\n instance: 'ClusterId',\n node: 'Ip',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n node: 'nodeIP',\n};\n\n/**\n * 如果有InstanceId额外的维度,原则上都需要传入此map结构配置\n *\n * `key` 的含义:\n * 经过InvalidDemensions处理后的string。topicId => TopicId。\n * 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\n *\n * `value` 的含义:\n * @param {1} dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n * @param {2} dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n * 默认取通过InvalidDemsion处理后的key\n * @param {3} dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n * 即:templateQueryIdMap中内容。\n * 联合上面 2 的内容筛选出原始sourceMap\n */\nconst queryMonitorExtraConfg = {\n Ip: {\n dim_KeyInStorage: keyInStorage.node,\n dim_KeyInTarget: 'nodeIP',\n dim_KeyInMap: templateQueryIdMap.node,\n },\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['ClusterId', 'ClusterName'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n nodeIP: '',\n queries: {\n Offset: 0,\n Limit: 10,\n DisplayStrategy: '',\n OrderBy: {},\n Order: {},\n InstanceIds: [],\n ProjectId: -1,\n OrderField: '',\n Asc: '',\n },\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/V_CLB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vClbQuery';\n\nconst VCLBInvalidDemensions = {\n InstanceId: 'LoadBalancerId',\n // vip: 'LoadBalancerVips',\n // loadBalancerPort: 'Port',\n // protocol: 'Protocol',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst VCLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\nconst ForwardTypes = [\n { text: '通用的负载均衡', value: 1 },\n { text: '传统的负载均衡', value: 0 },\n];\n\nconst OrderBy = [\n { text: 'LoadBalancerName', value: 'LoadBalancerName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'Domain', value: 'Domain' },\n { text: 'LoadBalancerType', value: 'LoadBalancerType' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\n\nconst WithRs = [\n { text: '没有绑定后端服务', value: 0 },\n { text: '绑定后端服务', value: 1 },\n { text: '查询全部', value: -1 },\n];\nconst VCLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1',\n link: '',\n type: 'inputNumber',\n min: 1,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancer ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancer Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'Forward',\n enDescriptor: 'Forward',\n cnDescriptor: '负载均衡实例类型',\n link: '',\n type: 'select',\n list: ForwardTypes,\n },\n {\n key: 'Domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义',\n link: '',\n type: 'input',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancer Vips',\n cnDescriptor: '负载均衡实例的 VIP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivate Ips',\n cnDescriptor: '负载均衡绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPublicIps',\n enDescriptor: 'BackendPublic Ips',\n cnDescriptor: '负载均衡绑定的后端服务的外网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '负载均衡实例所属的项目 ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'VpcId',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '负载均衡实例所属私有网络',\n link: '',\n type: 'input',\n },\n {\n key: 'SecurityGroup',\n enDescriptor: 'Security Group',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'input',\n },\n {\n key: 'MasterZone',\n enDescriptor: 'Master Zone',\n cnDescriptor: '主可用区ID',\n link: '',\n type: 'input',\n },\n {\n key: 'WithRs',\n enDescriptor: 'WithRs',\n cnDescriptor: '负载均衡是否绑定后端服务',\n link: '',\n type: 'select',\n list: WithRs,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderType,\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/214/30685',\n namespace,\n fieldDescriptor: VCLBFilterFieldsDescriptor,\n};\nconst LBFields = {\n LoadBalancerIds: [],\n Forward: undefined,\n LoadBalancerName: '',\n Domain: '',\n LoadBalancerVips: [],\n BackendPublicIps: [],\n BackendPrivateIps: [],\n Limit: 20,\n Offset: 0,\n ProjectId: undefined,\n WithRs: {},\n VpcId: '',\n SecurityGroup: '',\n MasterZone: '',\n OrderBy: {},\n OrderType: {},\n};\n\nconst VCLB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n Port: '',\n Protocol: '',\n listener: '',\n // listenerAlias: 'ListenerId',\n queries: LBFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst clbNamespaceMap = {\n public: 'QCE/LB_PUBLIC',\n private: 'QCE/LB_PRIVATE',\n};\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default VCLB_STATE;\nexport {\n VCLBFilterFieldsDescriptor,\n templateQueryIdMap,\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n clbNamespaceMap,\n modifyDimensons,\n regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CYNOSDB_MYSQL';\n\n// 按照驼峰方式命名,和SERVICES保持一致,abcDeF会成为angular组件名字\nconst queryEditorName = 'cynosdbMysqlQuery';\n\nconst cynosdbMysqlFilterFields = {\n Limit: 20,\n Offset: 0,\n OrderBy: {},\n OrderByType: {},\n InstanceIds: [],\n DbType: {},\n // Status: '',\n};\n\nconst cynosdbMysqlFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 1000,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '实例id列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '创建时间', value: 'CREATETIME' },\n { text: '过期时间', value: 'PERIODENDTIME' },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序类型',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n ],\n },\n {\n key: 'DbType',\n enDescriptor: 'DbType',\n cnDescriptor: '引擎类型',\n link: '',\n type: 'select',\n list: [\n { text: 'MYSQL', value: 'MYSQL' },\n { text: 'POSTGRESQL', value: 'POSTGRESQL' },\n ],\n },\n // {\n // key: 'Status',\n // enDescriptor: 'Status',\n // cnDescriptor: '实例状态',\n // link: '',\n // type: 'input',\n // },\n];\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n];\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1003/48334',\n namespace,\n fieldDescriptor: cynosdbMysqlFilterFieldsDescriptor,\n};\n\nconst CYNOSDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: cynosdbMysqlFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// 和文件名字一样CYNOSDBMYSQL\nconst CYNOSDBMYSQLInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nconst CYNOSDBInvalidDemensions = {\n instanceid: 'InstanceId',\n instanceId: 'InstanceId',\n};\nconst checkKeys = ['instanceId'];\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default CYNOSDB_STATE;\nexport {\n cynosdbMysqlFilterFieldsDescriptor,\n templateQueryIdMap,\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n checkKeys,\n // params前缀为service的全大写\n GetInstanceQueryParams as CYNOSDBMYSQLGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const SCFQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '支持FunctionName模糊匹配',\n link: '',\n type: 'input',\n },\n {\n key: 'Namespace',\n enDescriptor: 'Namespace',\n cnDescriptor: '云函数命名空间',\n link: '',\n type: 'input',\n },\n {\n key: 'Description',\n enDescriptor: 'Description',\n cnDescriptor: '函数描述,支持模糊搜索',\n link: '',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: 'AddTime', value: 'AddTime' },\n { text: 'ModTime', value: 'ModTime' },\n { text: 'FunctionName', value: 'FunctionName' },\n ],\n },\n {\n key: 'Order',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n ],\n },\n // {\n // key: 'Filters',\n // enDescriptor: 'Filters',\n // cnDescriptor: '按照标签键值对进行过滤',\n // link: '',\n // type: 'dropdownmulti',\n // },\n];\n\nconst SCF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FunctionName',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n OrderBy: {},\n Order: {},\n SearchKey: '',\n Namespace: '',\n Description: '',\n // Filters: {},\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst SCFInstanceAliasList = ['FunctionId', 'FunctionName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst SCFInvalidDemensions = {\n functionName: 'FunctionName',\n namespace: 'Namespace',\n version: 'Version',\n};\n\nconst templateQueryIdMap = {\n instance: 'FunctionName',\n version: 'Version',\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n version: 'version',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n Version: {\n dim_KeyInStorage: keyInStorage.version,\n dim_KeyInTarget: 'version',\n dim_KeyInMap: templateQueryIdMap.version,\n },\n};\nexport default SCF_STATE;\nexport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n queryMonitorExtraConfg,\n regionSupported,\n templateQueryIdMap,\n keyInStorage,\n GetInstanceQueryParams as SCFGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\nexport const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CLS';\nconst queryEditorName = 'clsQuery';\n\nconst CLSInvalidDemensions = {\n // instanceid: 'TopicId',\n};\n\n// 需和文件名对应\nconst CLSInstanceAliasList = ['TopicId', 'TopicName'];\n\nconst templateQueryIdMap = {\n instance: 'TopicId',\n};\n\n// 需要缓存到storage的内容的key列表\n// const keyInStorage = {\n// fleet: 'fleet', // 实例队列\n// queue: 'queueName', // 会话队列\n// };\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\n// const queryMonitorExtraConfg = {\n// FleetId: {\n// dim_KeyInStorage: keyInStorage.fleet,\n// dim_KeyInTarget: 'FleetId',\n// dim_KeyInMap: templateQueryIdMap.FleetId,\n// },\n// Name: {\n// dim_KeyInStorage: keyInStorage.queue,\n// dim_KeyInTarget: 'Name',\n// dim_KeyInMap: templateQueryIdMap.Name,\n// },\n// };\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CLSFilterFields = {\n Limit: 20,\n Offset: 0,\n topicName: [],\n topicId: [],\n logsetName: [],\n logsetId: [],\n tagKey: [],\n 'tag:tagKey': [],\n storageType: {},\n};\n\nconst CLSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'topicName',\n enDescriptor: 'topicName',\n cnDescriptor: '日志主题名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'topicId',\n enDescriptor: 'topicId',\n cnDescriptor: '日志主题ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetName',\n enDescriptor: 'logsetName',\n cnDescriptor: '日志集名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'logsetId',\n enDescriptor: 'logsetId',\n cnDescriptor: '日志集ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'tag:tagKey',\n enDescriptor: 'tag - tagKey',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'storageType',\n enDescriptor: 'storageType',\n cnDescriptor: '日志主题的存储类型',\n link: '',\n type: 'select',\n list: [\n { text: '实时存储', value: 'hot' },\n { text: '离线存储', value: 'cold' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/614/56454',\n namespace,\n fieldDescriptor: CLSFilterFieldsDescriptor,\n};\n\nconst CLS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicId',\n uin: '',\n queries: CLSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-bangkok' },\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-jakarta' },\n { value: 'ap-mumbai' },\n { value: 'ap-seoul' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'eu-moscow' },\n { value: 'na-ashburn' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = item.Dimensions.map((v) => CLSInvalidDemensions[v] || v);\n item.Dimensions = ['uin', 'TopicId'];\n });\n return metricTmp;\n}\nexport default CLS_STATE;\nexport {\n CLSFilterFieldsDescriptor,\n templateQueryIdMap,\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // queryMonitorExtraConfg,\n // fleetId,\n // keyInStorage,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CLSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/SQLSERVER';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'sqlserverQuery';\n\nconst SQLSERVERInvalidDemensions = {\n resourceId: 'InstanceId',\n};\n\nconst SQLSERVERInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst SQLSERVERNETFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: null,\n Status: {},\n InstanceIdSet: [],\n PayMode: {},\n VpcId: '',\n SubnetId: '',\n VipSet: [],\n InstanceNameSet: [],\n VersionSet: [],\n Zone: '',\n};\n\nconst SQLSERVERNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: [\n { text: '申请中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '受限运行中 (主备切换中)', value: 3 },\n { text: '已隔离', value: 4 },\n { text: '回收中', value: 5 },\n { text: '已回收', value: 6 },\n { text: '任务执行中', value: 7 },\n { text: '已下线', value: 8 },\n { text: '实例扩容中', value: 9 },\n { text: '实例迁移中', value: 10 },\n { text: '只读', value: 11 },\n { text: '重启中', value: 12 },\n ],\n },\n {\n key: 'InstanceIdSet',\n enDescriptor: 'InstanceIdSet',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '包年包月', value: 1 },\n { text: '按量计费', value: 0 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属VPC的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '实例所属子网的唯一字符串ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VipSet',\n enDescriptor: 'VipSet',\n cnDescriptor: '实例内网地址列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNameSet',\n enDescriptor: 'InstanceNameSet',\n cnDescriptor: '实例名称列表, 模糊查询',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VersionSet',\n enDescriptor: 'VersionSet',\n cnDescriptor: '实例版本代号列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Zone',\n enDescriptor: 'Zone',\n cnDescriptor: '实例可用区',\n link: '',\n type: 'dropdown',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/238/19969',\n namespace,\n fieldDescriptor: SQLSERVERNETFilterFieldsDescriptor,\n};\n\n// regions for dropdown\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-moscow' },\n { value: 'na-siliconvalley' },\n];\nconst SQLSERVER_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: SQLSERVERNETFilterFields,\n};\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default SQLSERVER_STATE;\nexport {\n SQLSERVERNETFilterFieldsDescriptor,\n templateQueryIdMap,\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regionSupported,\n modifyDimensons,\n // 对应产品的service的全大写拼接InstanceQueryParams\n GetInstanceQueryParams as SQLSERVERGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_INTRA_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmIntraLbQuery';\n\nconst BMINTRALBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n vpcId: 'VpcId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMINTRALBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMINTRALBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst BMINTRALBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: BMINTRALBFilterFieldsDescriptor,\n};\n\nconst BMINTRALB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: BMINTRALBFilterFields,\n};\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default BMINTRALB_STATE;\nexport {\n BMINTRALBFilterFieldsDescriptor,\n templateQueryIdMap,\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMINTRALBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_LB';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmLbQuery';\n\nconst CPMInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerVips', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1027/33280',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nconst BMLBValidMetricsT = ['Inpkg', 'Outpkg', 'Intraffic', 'Outtraffic', 'Connum', 'Req'];\nfunction isValidMetric(metric) {\n const validMetrics = _.map(BMLBValidMetricsT, _.toUpper);\n return _.indexOf(validMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n BMLBInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMLBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/BM_PCX';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'bmPcxQuery';\n\nconst BMPCXInvalidDemensions = {\n peeringConnectionId: 'VpcPeerConnectionId',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst BMPCXInstanceAliasList = ['VpcPeerConnectionId', 'VpcPeerConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpcPeerConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst BMPCXFilterFields = {\n Limit: 20,\n Offset: 0,\n VpcPeerConnectionIds: [],\n};\n\nconst BMPCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'VpcPeerConnectionIds',\n enDescriptor: 'VpcPeerConnectionIds',\n cnDescriptor: '对等连接实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/product/1024/36903',\n namespace,\n fieldDescriptor: BMPCXFilterFieldsDescriptor,\n};\n\nconst BMPCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpcPeerConnectionId',\n queries: BMPCXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['peeringConnectionId'];\n });\n return metricTmp;\n}\nexport default BMPCX_STATE;\nexport {\n BMPCXFilterFieldsDescriptor,\n templateQueryIdMap,\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as BMPCXGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/BLOCK_STORAGE';\nconst queryEditorName = 'cbsQuery';\n\nconst CBSInvalidDemensions = {\n diskId: 'DiskId',\n InstanceId: 'InstanceId',\n diskname: 'DiskName',\n unInstanceId: 'InstanceId',\n};\n\nconst CBSInstanceAliasList = ['DiskId', 'DiskName'];\n\nconst templateQueryIdMap = {\n instance: 'DiskId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CBSFilterFields = {\n Limit: 20,\n Offset: 0,\n DiskIds: [],\n OrderField: [],\n Order: [],\n ReturnBindAutoSnapshotPolicy: false,\n};\n\nconst CBSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DiskIds',\n enDescriptor: 'DiskIds',\n cnDescriptor: '云硬盘ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Order',\n enDescriptor: 'Order',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'select',\n list: [\n { text: '升序排列', value: 'ASC' },\n { text: '降序排列', value: 'DESC' },\n ],\n },\n {\n key: 'OrderField',\n enDescriptor: 'OrderField',\n cnDescriptor: '排序的依据字段',\n link: '',\n type: 'select',\n list: [\n { text: '云盘的创建时间排序', value: 'CREATE_TIME' },\n { text: '云盘的到期时间排序', value: 'DEADLINE' },\n ],\n },\n {\n key: 'ReturnBindAutoSnapshotPolicy',\n enDescriptor: 'ReturnBindAutoSnapshotPolicy',\n cnDescriptor: '否需要返回云盘绑定的定期快照策略ID',\n link: '',\n type: 'switch',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/362/16315',\n namespace,\n fieldDescriptor: CBSFilterFieldsDescriptor,\n};\n\nconst CBS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DiskId',\n queries: CBSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n return dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1;\n}\nexport default CBS_STATE;\nexport {\n CBSFilterFieldsDescriptor,\n templateQueryIdMap,\n CBSInstanceAliasList,\n CBSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n isValidMetric,\n GetInstanceQueryParams as CBSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CDN_LOG_DATA';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cdnProvinceQuery';\n\nconst CDNPROVINCEInvalidDemensions = {\n domain: 'Domain',\n // isp: 'Isp',\n projectid: 'ProjectId',\n province: 'district',\n appid: 'AppId',\n};\n\n// 需和文件名对应\nconst CDNPROVINCEInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CDNPROVINCEFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNPROVINCEFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst CDNPROVINCE_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n // Isp Province分别在两个接口,单独保存在state\n isp: '',\n district: '',\n queries: CDNPROVINCEFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default CDNPROVINCE_STATE;\nexport {\n CDNPROVINCEFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNPROVINCEInstanceAliasList,\n CDNPROVINCEInvalidDemensions,\n namespace,\n queryEditorName,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CDNPROVINCEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CEIP_SUMMARY';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'ceipSummaryQuery';\n\nconst CEIPInvalidDemensions = {\n vip: 'AddressIp',\n eip: 'AddressIp',\n};\n\n// 要和文件名方式一致,ceip_summary=>CEIPSUMMARY\nconst CEIPSUMMARYInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst CEIPFilterFields = {\n Limit: 20,\n Offset: 0,\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status': {},\n 'is-arrears': {},\n 'address-isp': {},\n 'instance-id': [],\n 'private-ip-address': [],\n 'network-interface-id': [],\n};\n\nconst CEIPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'address-id',\n enDescriptor: 'address-id',\n cnDescriptor: ' EIP 的唯一 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'address-name',\n cnDescriptor: 'EIP 名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'address-ip',\n cnDescriptor: 'EIP 的 IP 地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'address-status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'CREATING', value: 'CREATING' },\n { text: 'BINDING', value: 'BINDING' },\n { text: 'BIND', value: 'BIND' },\n { text: 'UNBINDING', value: 'UNBINDING' },\n { text: 'UNBIND', value: 'UNBIND' },\n { text: 'OFFLINING', value: 'OFFLINING' },\n { text: 'BIND_ENI', value: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: 'EIP 绑定的实例 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'private-ip-address',\n cnDescriptor: 'EIP 绑定的内网 IP ',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'network-interface-id',\n cnDescriptor: ' EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'is-arrears',\n cnDescriptor: 'EIP 是否欠费',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '欠费状态', value: 'TRUE' },\n { text: '费用状态正常', value: 'FALSE' },\n ],\n },\n {\n key: 'address-isp',\n enDescriptor: 'address-isp',\n cnDescriptor: '运营商类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'BGP', value: 'BGP' },\n { text: 'CMCC', value: 'CMCC' },\n { text: 'CUCC', value: 'CUCC' },\n { text: 'CTCC', value: 'CTCC' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/16702',\n namespace,\n fieldDescriptor: CEIPFilterFieldsDescriptor,\n};\n\nconst CEIP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n queries: CEIPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['eip'];\n });\n return metricTmp;\n}\nexport default CEIP_STATE;\nexport {\n CEIPFilterFieldsDescriptor,\n templateQueryIdMap,\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n queryEditorName,\n modifyDimensons,\n queryEditorConfig,\n GetInstanceQueryParams as CEIPSUMMARYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'TopicName',\n enDescriptor: 'TopicName',\n cnDescriptor: '精确匹配TopicName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n topicId: 'TopicId',\n};\n\n// 因为cmq那边,以TopciName为主键\nexport const templateQueryIdMap = {\n instance: 'TopicName',\n subscription: 'SubscriptionId',\n};\n\n// 需要缓存到storage的内容的key列表\nconst keyInStorage = {\n subscriptionId: 'subscriptionId',\n};\n/*\n如果有InstanceId额外的维度,原则上都需要传入此map结构配置\nkey的含义:\n 经过InvalidDemensions处理后的string。topicId =》TopicId。\n 否则认为指标中维度正确,和指标中维度字段保持一致,即topicId\nvalue的含义:\n 1 dim_KeyInStorage 指标中维度dimension对应的storage中的key,获取缓存列表,sourceMapList、\n 2 dim_KeyInTarget 通过getVariable方法获取变量中选中项。比如ListnerId为Lis-xxxx;即:STATE中的key。\n 默认取通过InvalidDemsion处理后的key\n 3 dim_KeyInMap 保存在模板变量value比如(监听器ID)源自sourceMapList(接口返回内容)的哪个key(ListenerId)。\n 即:templateQueryIdMap中内容。\n 联合上面2的内容筛选出原始sourceMap\n*/\nconst queryMonitorExtraConfg = {\n subscriptionId: {\n dim_KeyInStorage: keyInStorage.subscriptionId,\n dim_KeyInTarget: 'subscriptionId',\n dim_KeyInMap: templateQueryIdMap.subscription,\n },\n};\n// 与名称挂钩的变量\nconst InstanceAliasList = ['TopicName', 'TopicId'];\nexport { InstanceAliasList, GetInstanceQueryParams, queryMonitorExtraConfg, keyInStorage };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TopicName',\n subscriptionId: '',\n queries: {\n Offset: 0,\n Limit: 20,\n TopicName: '',\n TagKey: '',\n },\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/CPM';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cpmQuery';\n\nconst CPMInvalidDemensions = {\n instanceId: 'InstanceId',\n // uniqid: 'InstanceId',\n};\n\nconst CPMInstanceAliasList = ['InstanceId', 'Name'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst CPMFilterFields = {\n Limit: 20,\n Offset: 0,\n DeviceClassCode: '',\n InstanceIds: [],\n WanIps: [],\n LanIps: [],\n Alias: '',\n VagueIp: '',\n AutoRenewFlag: {},\n VpcId: '',\n SubnetId: '',\n DeviceType: {},\n IsLuckyDevice: {},\n};\n\nconst CPMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DeviceClassCode',\n enDescriptor: 'DeviceClassCode',\n cnDescriptor: '机型ID',\n link: '',\n type: 'dropdown',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '设备ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'WanIps',\n enDescriptor: 'WanIps',\n cnDescriptor: '外网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LanIps',\n enDescriptor: 'LanIps',\n cnDescriptor: '内网IP数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'Alias',\n enDescriptor: 'Alias',\n cnDescriptor: '设备名称',\n link: '',\n type: 'input',\n },\n {\n key: 'VagueIp',\n enDescriptor: 'VagueIp',\n cnDescriptor: '模糊IP查询',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenewFlag',\n enDescriptor: 'AutoRenewFlag',\n cnDescriptor: '自动续费标志',\n link: '',\n type: 'select',\n list: [\n { text: '不自动续费', value: 0 },\n { text: '自动续费', value: 1 },\n ],\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网唯一ID',\n link: '',\n type: 'input',\n },\n {\n key: 'DeviceType',\n enDescriptor: 'DeviceType',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'select',\n list: [\n { text: '计算型', value: 'compute' },\n { text: '标准型', value: 'standard' },\n { text: '存储型', value: 'storage' },\n ],\n },\n {\n key: 'IsLuckyDevice',\n enDescriptor: 'IsLuckyDevice',\n cnDescriptor: '竞价实例机器过滤',\n link: '',\n type: 'select',\n list: [\n { text: '非竞价实例机器', value: 0 },\n { text: '竞价实例的机器', value: 1 },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/386/32904',\n namespace,\n fieldDescriptor: CPMFilterFieldsDescriptor,\n};\n\nconst CPM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CPMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['instanceId'];\n });\n return metricTmp;\n}\nexport default CPM_STATE;\nexport {\n CPMFilterFieldsDescriptor,\n templateQueryIdMap,\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CPMGetInstanceQueryParams,\n};\n","import { cloneDeep, compact, forEach, get, isArray, isEmpty, isObject, omit, uniq } from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\n\nconst namespace = 'QCE/DSA';\nconst queryEditorName = 'ecdnQuery';\n\nconst ECDNInstanceAliasList = ['Domain'];\n\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\n\nconst ECDNInvalidDemensions = {\n domain: 'Domain',\n projectid: 'ProjectId',\n};\n\nconst ECDN_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 100,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n disable: [],\n projectId: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n area: [],\n tagKey: [],\n },\n};\n\nconst ECDNFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'Origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'Domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'ResourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'Status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'disable',\n enDescriptor: 'Disable',\n cnDescriptor: '域名封禁状态',\n link: '',\n type: 'select',\n list: [\n { text: 'normal', value: 'normal' },\n { text: 'unlicensed', value: 'unlicensed' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'FullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'Https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'OriginPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'https', value: 'https' },\n { text: 'follow', value: 'follow' },\n ],\n },\n {\n key: 'area',\n enDescriptor: 'Area',\n cnDescriptor: '加速区域',\n link: '',\n type: 'select',\n list: [\n { text: 'mainland', value: 'mainland' },\n { text: 'overseas', value: 'overseas' },\n { text: 'global', value: 'global' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/570/42462',\n namespace,\n fieldDescriptor: ECDNFilterFieldsDescriptor,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!isEmpty(queries)) {\n params.Limit = get(queries, 'Limit', 20) || 20;\n params.Offset = get(queries, 'Offset', 0) || 0;\n const _queries = omit(queries, ['Offset', 'Limit']);\n const Filters: any[] = [];\n forEach(_queries, (item: any, key) => {\n if (isArray(item)) {\n item = compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: uniq(item).slice(0, 5) });\n }\n } else if (isObject(item)) {\n if (!isEmpty(get(item, 'value', []))) {\n Filters.push({ Name: key, Value: [get(item, 'value', [])].slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters.map((item) => {\n if (item.Name === 'domain') {\n return { ...item, Fuzzy: true };\n }\n return item;\n });\n return params;\n }\n }\n return params;\n}\n\nfunction modifyDimensons(metricItem) {\n const metricTmp = cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['domain', 'projectid'];\n });\n return metricTmp;\n}\n\nexport default ECDN_STATE;\n\nexport {\n ECDNFilterFieldsDescriptor,\n templateQueryIdMap,\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECDNGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM';\nconst queryEditorName = 'ecmQuery';\n\nconst ECMInvalidDemensions = {\n // diskId: 'InstanceId',\n uuid: 'UUID',\n // unInstanceId: 'InstanceId',\n};\n\nconst ECMInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMFilterFields = {\n Limit: 20,\n Offset: 0,\n zone: [],\n 'zone-name': [],\n 'module-id': [],\n 'module-name': [],\n 'instance-id': [],\n 'instance-name': [],\n 'ip-address': [],\n 'instance-uuid': [],\n 'instance-state': {},\n 'internet-service-provider': [],\n 'instance-family': [],\n 'image-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n};\n\nconst ECMFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: '可用区英文标识',\n link: '',\n type: 'dropdownMulti',\n },\n {\n key: 'zone-name',\n enDescriptor: 'zone-name',\n cnDescriptor: '排列顺序',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-id',\n enDescriptor: 'module-id',\n cnDescriptor: '模块ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'module-name',\n enDescriptor: 'module-name',\n cnDescriptor: '模块名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'instance-id',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'instance-name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ip-address',\n enDescriptor: 'ip-address',\n cnDescriptor: '内网/公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-uuid',\n enDescriptor: 'instance-uuid',\n cnDescriptor: '实例uuid',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'instance-state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n ],\n },\n {\n key: 'internet-service-provider',\n enDescriptor: 'internet-service-provider',\n cnDescriptor: '公网IP所属的运营商',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'instance-family',\n enDescriptor: 'instance-family',\n cnDescriptor: '机型family',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'image-id',\n enDescriptor: 'image-id',\n cnDescriptor: '镜像ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '实例的vpc id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '实例的subnet id',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/42565',\n namespace,\n fieldDescriptor: ECMFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: ECMFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\nconst namespace = 'QCE/POSTGRES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'postgresQuery';\n\nconst PostgresFields = {\n 'db-instance-id': [],\n 'db-instance-name': [],\n};\n\nconst PostgresFieldsDescriptor: FildDescriptorType = [\n {\n key: 'db-instance-id',\n enDescriptor: 'DB Instance ID',\n cnDescriptor: 'DB 实例ID',\n link: '',\n type: 'inputMulti',\n min: 0,\n },\n {\n key: 'db-instance-name',\n enDescriptor: 'DB Instance Name',\n cnDescriptor: 'DB 实例名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/409/16773',\n namespace,\n fieldDescriptor: PostgresFieldsDescriptor,\n};\nconst POSTGRESInstanceAliasList = ['DBInstanceId', 'DBInstanceName'];\n\nconst POSTGRES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DBInstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...PostgresFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['resourceId'];\n });\n return metricTmp;\n}\nconst PostgreInvalidDemensions = {\n uid: 'DBInstanceId',\n resourceId: 'DBInstanceId',\n};\nconst templateQueryIdMap = {\n instance: 'DBInstanceId',\n};\nexport default POSTGRES_STATE;\n\nexport {\n PostgresFieldsDescriptor,\n POSTGRESInstanceAliasList,\n templateQueryIdMap,\n modifyDimensons,\n namespace,\n queryEditorName,\n queryEditorConfig,\n PostgreInvalidDemensions,\n GetInstanceQueryParams as POSTGRESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPC_NET_DETECT';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vpcNetDetectQuery';\n\nconst VPCNETInvalidDemensions = {\n netdetectid: 'NetDetectId',\n netDetectId: 'NetDetectId',\n};\n\nconst VPCNETDETECTInstanceAliasList = ['NetDetectId', 'NetDetectName'];\n\nconst templateQueryIdMap = {\n instance: 'NetDetectId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPCNETFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'net-detect-id': [],\n 'subnet-id': [],\n 'net-detect-name': [],\n};\n\nconst VPCNETFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-id',\n enDescriptor: 'net-detect-id',\n cnDescriptor: '网络探测实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'subnet-id',\n cnDescriptor: '子网实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'net-detect-name',\n enDescriptor: 'net-detect-name',\n cnDescriptor: '网络探测名称',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/38696',\n namespace,\n fieldDescriptor: VPCNETFilterFieldsDescriptor,\n};\n\nconst VPCNET_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NetDetectId',\n queries: VPCNETFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['netDetectId'];\n });\n return metricTmp;\n}\nexport default VPCNET_STATE;\nexport {\n VPCNETFilterFieldsDescriptor,\n templateQueryIdMap,\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as VPCNETDETECTGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/WAF';\nconst queryEditorName = 'wafQuery';\nconst WAFFilterFields = {\n Limit: 20,\n Offset: 0,\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst WAFFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumberMulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/228/41118',\n namespace,\n fieldDescriptor: WAFFilterFieldsDescriptor,\n};\nconst WAF_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: WAFFilterFields,\n};\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-nanjing' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-seoul' },\n { value: 'ap-singapore' },\n];\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst WAFInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst WAFInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default WAF_STATE;\nexport {\n WAFFilterFieldsDescriptor,\n templateQueryIdMap,\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n namespace,\n regionSupported,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as WAFGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst InstanceTypes = [\n { text: '主实例', value: 1 },\n { text: '备灾实例', value: 2 },\n { text: '只读实例', value: 3 },\n];\n\nconst Status = [\n { text: '创建中', value: 0 },\n { text: '运行中', value: 1 },\n { text: '隔离中', value: 4 },\n { text: '已隔离', value: 5 },\n];\n\nconst PayTypes = [\n { text: '包年包月', value: 0 },\n { text: '小时计费', value: 1 },\n];\n\nconst TaskStatus = [\n { text: '没有任务', value: 0 },\n { text: '升级中', value: 1 },\n { text: '数据导入中', value: 2 },\n { text: '开放Slave中', value: 3 },\n { text: '外网访问开通中', value: 4 },\n { text: '批量操作执行中', value: 5 },\n { text: '回档中', value: 6 },\n { text: '外网访问关闭中', value: 7 },\n { text: '密码修改中', value: 8 },\n { text: '实例名修改中', value: 9 },\n { text: '重启中', value: 10 },\n { text: '自建迁移中', value: 12 },\n { text: '删除库表中', value: 13 },\n { text: '灾备实例创建同步中', value: 14 },\n { text: '升级待切换', value: 15 },\n { text: '升级切换中', value: 16 },\n { text: '升级切换完成', value: 17 },\n];\n\nconst EngineVersions = [\n { text: '5.1', value: '5.1' },\n { text: '5.5', value: '5.5' },\n { text: '5.6', value: '5.6' },\n { text: '5.7', value: '5.7' },\n];\n\nconst OrderBy = [\n { text: 'InstanceId', value: 'InstanceId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n { text: 'DeadlineTime', value: 'DeadlineTime' },\n];\n\nconst OrderDirection = [\n { text: 'ASC', value: 'ASC' },\n { text: 'DESC', value: 'DESC' },\n];\n\nconst InitFlag = [\n { text: '未初始化', value: 0 },\n { text: '初始化', value: 1 },\n];\n\nconst CdbErrors = [\n { text: '未锁定', value: 0 },\n { text: '锁定', value: 1 },\n];\n\nconst CDBFields = {\n ProjectId: '',\n InstanceTypes: {},\n Vips: [],\n Status: {},\n Offset: 0,\n Limit: 20,\n SecurityGroupId: '',\n PayTypes: {},\n InstanceNames: [],\n TaskStatus: {},\n EngineVersions: {},\n VpcIds: [],\n ZoneIds: [],\n SubnetIds: [],\n CdbErrors: {},\n OrderBy: {},\n OrderDirection: {},\n InstanceIds: [],\n InitFlag: {},\n};\n\nconst CDBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ZoneIds',\n enDescriptor: 'Zone ID',\n cnDescriptor: '可用区的ID',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'InstanceTypes',\n enDescriptor: 'Instance Type',\n cnDescriptor: '实例类型',\n link: '',\n multiple: true,\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'EngineVersions',\n enDescriptor: 'Engine Version',\n cnDescriptor: '实例数据库引擎版本',\n link: '',\n multiple: true,\n type: 'select',\n list: EngineVersions,\n },\n {\n key: 'TaskStatus',\n enDescriptor: 'Task Status',\n cnDescriptor: '实例任务',\n link: '',\n multiple: true,\n type: 'select',\n list: TaskStatus,\n },\n {\n key: 'InitFlag',\n enDescriptor: 'Init Flag',\n cnDescriptor: '实例初始化状态',\n link: '',\n multiple: true,\n type: 'select',\n list: InitFlag,\n },\n {\n key: 'PayTypes',\n enDescriptor: 'Pay Type',\n cnDescriptor: '付费类型',\n link: '',\n multiple: true,\n type: 'select',\n list: PayTypes,\n },\n {\n key: 'CdbErrors',\n enDescriptor: 'CDB Errors',\n cnDescriptor: '实例锁定标记',\n link: '',\n multiple: true,\n type: 'select',\n list: CdbErrors,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderDirection',\n enDescriptor: 'Order Direction',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderDirection,\n },\n {\n key: 'Vips',\n enDescriptor: 'Vip',\n cnDescriptor: '实例内网IP地址',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'VpcIds',\n enDescriptor: 'Vpc ID',\n cnDescriptor: '私有网络ID',\n link: 'https://cloud.tencent.com/document/api/215/15778',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: 'https://cloud.tencent.com/document/api/215/15784',\n type: 'inputmulti',\n },\n {\n key: 'ProjectId',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/product/378/4400',\n type: 'input',\n },\n {\n key: 'SecurityGroupId',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: 'https://cloud.tencent.com/document/api/236/15854',\n type: 'input',\n },\n];\n\nconst CDB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...CDBFields },\n};\n\nconst CDBInstanceAliasList = ['InstanceId', 'InstanceName', 'Vip'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return (\n dimension.length === 2 &&\n ((_.indexOf(dimension, 'instanceid') !== -1 && _.indexOf(dimension, 'insttype') !== -1) ||\n (_.indexOf(dimension, 'InstanceId') !== -1 && _.indexOf(dimension, 'InstanceType') !== -1))\n );\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = item.Dimensions.map((i) => CDBInvalidDemensions[i] || i);\n });\n return metricTmp;\n}\nconst CDBInvalidDemensions = {\n instanceid: 'InstanceId',\n insttype: 'InstanceType',\n region: 'Region',\n};\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CDB_STATE;\n\nexport {\n CDBFieldsDescriptor,\n CDBInstanceAliasList,\n templateQueryIdMap,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n GetInstanceQueryParams as CDBGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/CES';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'cesQuery';\n\nconst CESInvalidDemensions = {\n uInstanceId: 'InstanceId',\n};\n\nconst CESInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst CESFilterFields = {\n Limit: 20,\n Offset: 0,\n InstanceIds: [],\n InstanceNames: [],\n OrderByKey: {},\n OrderByType: {},\n IpList: [],\n};\n\nconst CESFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstanceIds',\n cnDescriptor: '集群实例ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'InstanceNames',\n enDescriptor: 'InstanceNames',\n cnDescriptor: '集群实例名称列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'OrderByKey',\n enDescriptor: 'OrderByKey',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: [\n { text: '实例ID', value: 1 },\n { text: '实例名称', value: 2 },\n { text: '可用区', value: 3 },\n { text: '创建时间', value: 4 },\n ],\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n ],\n },\n {\n key: 'IpList',\n enDescriptor: 'IpList',\n cnDescriptor: '私有网络vip列表',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/845/30631',\n namespace,\n fieldDescriptor: CESFilterFieldsDescriptor,\n};\n\nconst CES_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: CESFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\nexport default CES_STATE;\nexport {\n CESFilterFieldsDescriptor,\n templateQueryIdMap,\n CESInstanceAliasList,\n CESInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as CESGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DC';\nconst queryEditorName = 'dcQuery';\n\nconst DCFilterFields = {\n Limit: 20,\n Offset: 0,\n DirectConnectIds: [],\n};\n\nconst DCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'DirectConnectIds',\n enDescriptor: 'DirectConnectIds',\n cnDescriptor: '物理专线 ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/34826',\n namespace,\n fieldDescriptor: DCFilterFieldsDescriptor,\n};\n\nconst DC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectId',\n queries: DCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst DCInstanceAliasList = ['DirectConnectId', 'DirectConnectName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectId',\n};\n\nconst DCInvalidDemensions = {\n directConnectId: 'DirectConnectId',\n directconnectid: 'DirectConnectId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectId'];\n });\n return metricTmp;\n}\nexport default DC_STATE;\nexport {\n DCFilterFieldsDescriptor,\n templateQueryIdMap,\n DCInstanceAliasList,\n DCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCG';\nconst queryEditorName = 'dcgQuery';\n\nconst DCGInvalidDemensions = {\n directConnectGatewayId: 'DirectConnectGatewayId',\n};\n\nconst DCGInstanceAliasList = ['DirectConnectGatewayId', 'DirectConnectGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst DCGFilterFields = {\n Limit: 20,\n Offset: 0,\n 'direct-connect-gateway-id': [],\n 'direct-connect-gateway-name': [],\n 'direct-connect-gateway-ip': [],\n 'gateway-type': {},\n 'network-type': {},\n 'ccn-id': [],\n 'vpc-id': [],\n};\n\nconst DCGFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-gateway-id',\n enDescriptor: 'direct-connect-gateway-id',\n cnDescriptor: '专线网关唯一ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-name',\n enDescriptor: 'direct-connect-gateway-name',\n cnDescriptor: '专线网关名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-gateway-ip',\n enDescriptor: 'direct-connect-gateway-ip',\n cnDescriptor: '专线网关IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'gateway-type',\n enDescriptor: 'gateway-type',\n cnDescriptor: '网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '普通型', value: 'NORMAL' },\n { text: 'NAT型', value: 'NAT' },\n ],\n },\n {\n key: 'network-type',\n enDescriptor: 'network-type',\n cnDescriptor: '网络类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '私有网络类型', value: 'VPC' },\n { text: '云联网类型', value: 'CCN' },\n ],\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: '专线网关所在云联网ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: '专线网关所在私有网络ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/30644',\n namespace,\n fieldDescriptor: DCGFilterFieldsDescriptor,\n};\n\nconst DCG_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectGatewayId',\n queries: DCGFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default DCG_STATE;\nexport {\n DCGFilterFieldsDescriptor,\n templateQueryIdMap,\n DCGInstanceAliasList,\n DCGInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as DCGGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/DCX';\nconst queryEditorName = 'dcxQuery';\n\nconst DCXFilterFields = {\n 'direct-connect-tunnel-name': [],\n 'direct-connect-tunnel-id': [],\n 'direct-connect-id': [],\n};\n\nconst DCXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'direct-connect-tunnel-name',\n enDescriptor: 'direct-connect-tunnel-name',\n cnDescriptor: '专用通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-tunnel-id',\n enDescriptor: 'direct-connect-tunnel-id',\n cnDescriptor: '专用通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'direct-connect-id',\n enDescriptor: 'direct-connect-id',\n cnDescriptor: '物理专线实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/216/19819',\n namespace,\n fieldDescriptor: DCXFilterFieldsDescriptor,\n};\n\nconst DCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'DirectConnectTunnelId',\n queries: {\n Limit: 20,\n Offset: 0,\n ...DCXFilterFields,\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\n\nconst DCXInstanceAliasList = ['DirectConnectTunnelId', 'DirectConnectTunnelName'];\n\nconst templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n};\n\nconst DCXInvalidDemensions = {\n directconnectconnid: 'DirectConnectTunnelId',\n directConnectConnId: 'DirectConnectTunnelId',\n};\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['directConnectConnId'];\n });\n return metricTmp;\n}\nexport default DCX_STATE;\nexport {\n DCXFilterFieldsDescriptor,\n templateQueryIdMap,\n DCXInstanceAliasList,\n DCXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as DCXGetInstanceQueryParams,\n};\n","import * as _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/ECM_LB';\nconst queryEditorName = 'ecmLbQuery';\n\nconst ECMLBInvalidDemensions = {\n vip: 'LoadBalancerVips',\n};\n\nconst ECMLBInstanceAliasList = ['LoadBalancerId', 'LoadBalancerName'];\n\nconst templateQueryIdMap = {\n instance: 'LoadBalancerId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst ECMLBFilterFields = {\n Limit: 20,\n Offset: 0,\n LoadBalancerIds: [],\n LoadBalancerName: [],\n LoadBalancerVips: [],\n BackendPrivateIps: [],\n VpcId: '',\n};\n\nconst ECMLBFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'LoadBalancerIds',\n enDescriptor: 'LoadBalancerIds',\n cnDescriptor: '负载均衡器ID数组',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerName',\n enDescriptor: 'LoadBalancerName',\n cnDescriptor: '负载均衡器名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'LoadBalancerVips',\n enDescriptor: 'LoadBalancerVips',\n cnDescriptor: '负载均衡获得的公网IP地址',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'BackendPrivateIps',\n enDescriptor: 'BackendPrivateIps',\n cnDescriptor: '绑定的后端服务的内网 IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '实例所属私有网络唯一ID',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/1108/48459',\n namespace,\n fieldDescriptor: ECMLBFilterFieldsDescriptor,\n};\n\nconst ECM_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'LoadBalancerId',\n queries: ECMLBFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// function isValidMetric(metricObj: any = {}) {\n// const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n// // console.log('dimension', dimension, dimension.length === 1 && _.indexOf(dimension, 'diskId') !== -1);\n// return dimension.length === 1 &&( _.indexOf(dimension, 'UUID') !== -1 || _.indexOf(dimension, 'uuid') !== -1);\n// }\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['UUID'];\n });\n return metricTmp;\n}\nexport default ECM_STATE;\nexport {\n ECMLBFilterFieldsDescriptor,\n templateQueryIdMap,\n ECMLBInstanceAliasList,\n ECMLBInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as ECMLBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst InstanceTypes = [\n { text: '所有实例', value: 0 },\n { text: '正式实例', value: 1 },\n { text: '临时实例', value: 2 },\n { text: '只读实例', value: 3 },\n { text: '正式,只读,灾备实例', value: -1 },\n];\n\nconst ClusterTypes = [\n { text: '副本集实例', value: 0 },\n { text: '分片实例', value: 1 },\n { text: '所有实例', value: -1 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '实例有效', value: 2 },\n { text: '实例已过期', value: -2 },\n];\n\nconst PayMode = [\n { text: '按量计费', value: 0 },\n { text: '包年包月', value: 1 },\n { text: '按量包年包月计费', value: -1 },\n];\n\nconst OrderBy = [\n { text: 'ProjectId', value: 'ProjectId' },\n { text: 'InstanceName', value: 'InstanceName' },\n { text: 'CreateTime', value: 'CreateTime' },\n];\n\nconst OrderByType = [\n { text: '升序', value: 'ASC' },\n { text: '降序', value: 'DESC' },\n];\n\nconst MongoDBFields = {\n InstanceIds: [],\n InstanceType: {},\n ClusterType: {},\n Status: [],\n VpcId: '',\n SubnetId: '',\n PayMode: {},\n Limit: 20,\n Offset: 0,\n OrderBy: '',\n OrderByType: '',\n};\n\nconst MONGODBFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceIds',\n enDescriptor: 'InstancesIds',\n cnDescriptor: '实例名称',\n type: 'inputmulti',\n },\n {\n key: 'InstanceType',\n enDescriptor: 'InstanceType',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: InstanceTypes,\n },\n {\n key: 'ClusterType',\n enDescriptor: 'ClusterType',\n cnDescriptor: '集群类型',\n link: '',\n type: 'select',\n list: ClusterTypes,\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n link: '',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '私有网络的子网ID,基础网络则不传该参数。入参设置该参数的同时,必须设置相应的VpcId',\n link: '',\n type: 'input',\n },\n {\n key: 'PayMode',\n enDescriptor: 'PayMode',\n cnDescriptor: '付费类型',\n link: '',\n type: 'select',\n list: PayMode,\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderByType',\n enDescriptor: 'OrderByType',\n cnDescriptor: '排序方式',\n link: '',\n type: 'select',\n list: OrderByType,\n },\n];\n\nconst MONGODB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...MongoDBFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst MONGODBInstanceAliasList = ['InstanceId', 'InstanceName'];\n\nconst MONGODBInvalidDemensions = {\n target: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n replica: 'ReplicaSetId',\n};\n\nconst queryMonitorExtraConfg = {\n Replica: {\n dim_KeyInStorage: 'ReplicaSets',\n dim_KeyInTarget: 'replica',\n dim_KeyInMap: 'ReplicaSetId',\n dim_KeyInIns: 'ReplicaSetId',\n },\n Node: {\n dim_KeyInStorage: 'ReplicaNodeSets',\n dim_KeyInTarget: 'node',\n dim_KeyInMap: 'NodeId',\n dim_KeyInIns: 'NodeId',\n },\n};\nexport default MONGODB_STATE;\nexport {\n MONGODBFieldsDescriptor,\n MONGODBInvalidDemensions,\n MONGODBInstanceAliasList,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n GetInstanceQueryParams as MONGODBGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/QAAP';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'qaapQuery';\n\nconst QAAPInvalidDemensions = {\n channelId: 'InstanceId',\n};\n\nconst QAAPInstanceAliasList = ['InstanceId'];\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst QAAPFilterFields = {\n Limit: 20,\n Offset: 0,\n ProjectId: [],\n AccessRegion: [],\n RealServerRegion: [],\n GroupId: [],\n};\n\nconst QAAPFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ProjectId',\n enDescriptor: 'ProjectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'AccessRegion',\n enDescriptor: 'AccessRegion',\n cnDescriptor: '接入地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'RealServerRegion',\n enDescriptor: 'RealServerRegion',\n cnDescriptor: '源站地域',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'GroupId',\n enDescriptor: 'GroupId',\n cnDescriptor: '通道组ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/608/36963',\n namespace,\n fieldDescriptor: QAAPFilterFieldsDescriptor,\n};\n\nconst QAAP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: QAAPFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n // metricTmp.Dimensions.forEach((item) => {\n // item.Dimensions = ['netDetectId'];\n // });\n return metricTmp;\n}\nexport default QAAP_STATE;\nexport {\n QAAPFilterFieldsDescriptor,\n templateQueryIdMap,\n QAAPInstanceAliasList,\n QAAPInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n modifyDimensons,\n GetInstanceQueryParams as QAAPGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport _ from 'lodash';\n\nconst namespace = 'QCE/TCAPLUS';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'tcaplusQuery';\n\nconst TCAPLUSInvalidDemensions = {\n // TableInstanceId: 'TableInstanceId',\n // ClusterId: 'ClusterId',\n};\n\n// 需和文件名对应\nconst TCAPLUSInstanceAliasList = ['TableInstanceId', 'TableName'];\n\nconst templateQueryIdMap = {\n instance: 'TableInstanceId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是类型\nconst TCAPLUSFilterFields = {\n Limit: 20,\n Offset: 0,\n ClusterId: '',\n TableGroupIds: [],\n\n TableName: '',\n TableInstanceId: '',\n TableIdlType: {},\n TableType: {},\n ListElementNum: null,\n ReservedVolume: null,\n ReservedReadQps: null,\n ReservedWriteQps: null,\n Memo: '',\n FileName: '',\n FileExtType: '',\n FileSize: null,\n FileContent: '',\n};\n\nconst TCAPLUSFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ClusterId',\n enDescriptor: 'ClusterId',\n cnDescriptor: '表格所属集群ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableGroupIds',\n enDescriptor: 'TableGroupIds',\n cnDescriptor: '表格组ID列表',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'TableName',\n enDescriptor: 'TableName',\n cnDescriptor: '表格名称',\n link: '',\n type: 'input',\n },\n {\n key: 'TableInstanceId',\n enDescriptor: 'TableInstanceId',\n cnDescriptor: '表实例ID',\n link: '',\n type: 'input',\n },\n {\n key: 'TableIdlType',\n enDescriptor: 'TableIdlType',\n cnDescriptor: '表格描述语言类型',\n link: '',\n type: 'select',\n list: [\n { text: 'PROTO', value: 'PROTO' },\n { text: 'TDR', value: 'TDR' },\n ],\n },\n {\n key: 'TableType',\n enDescriptor: 'TableType',\n cnDescriptor: '表格数据结构类型',\n link: '',\n type: 'select',\n list: [\n { text: 'GENERIC', value: 'GENERIC' },\n { text: 'LIST', value: 'LIST' },\n ],\n },\n {\n key: 'ListElementNum',\n enDescriptor: 'ListElementNum',\n cnDescriptor: 'LIST表元素个数',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedVolume',\n enDescriptor: 'ReservedVolume',\n cnDescriptor: '表格预留容量(GB)',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedReadQps',\n enDescriptor: 'ReservedReadQps',\n cnDescriptor: '表格预留读CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'ReservedWriteQps',\n enDescriptor: 'ReservedWriteQps',\n cnDescriptor: '表格预留写CU',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'Memo',\n enDescriptor: 'Memo',\n cnDescriptor: '表格备注信息',\n link: '',\n type: 'input',\n },\n {\n key: 'FileName',\n enDescriptor: 'FileName',\n cnDescriptor: 'Key回档文件名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileExtType',\n enDescriptor: 'FileExtType',\n cnDescriptor: 'Key回档文件扩展名,回档专用',\n link: '',\n type: 'input',\n },\n {\n key: 'FileSize',\n enDescriptor: 'FileSize',\n cnDescriptor: 'Key回档文件大小,回档专用',\n link: '',\n type: 'inputNumber',\n },\n {\n key: 'FileContent',\n enDescriptor: 'FileContent',\n cnDescriptor: 'Key回档文件内容,回档专用',\n link: '',\n type: 'input',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/596/39664',\n namespace,\n fieldDescriptor: TCAPLUSFilterFieldsDescriptor,\n};\n\nconst TCAPLUS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'TableInstanceId',\n queries: TCAPLUSFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n params.ClusterId = _.get(queries, 'ClusterId', '') || '';\n params.TableGroupIds = _.get(queries, 'TableGroupIds', []) || [];\n queries = _.omit(queries, ['Offset', 'Limit', 'TableGroupIds', 'ClusterId']);\n const SelectedTables: any[] = [];\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n SelectedTables[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n SelectedTables[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n SelectedTables[key] = item;\n }\n });\n params.SelectedTables = SelectedTables;\n return params;\n}\n// 和其他产品的展示保持一致\nconst regonsMap = {\n 'ap-beijing': '华北地区(北京)',\n 'ap-guangzhou': '华南地区(广州)',\n 'ap-hongkong': '港澳台地区(中国香港)',\n 'ap-seoul': '亚太东北(首尔)',\n 'ap-shanghai': '华东地区(上海)',\n 'ap-singapore': '亚太东南(新加坡)',\n 'ap-tokyo': '亚太东北(东京)',\n 'eu-frankfurt': '欧洲地区(法兰克福)',\n 'na-ashburn': '美国东部(弗吉尼亚)',\n 'na-siliconvalley': '美国西部(硅谷)',\n};\nexport default TCAPLUS_STATE;\nexport {\n TCAPLUSFilterFieldsDescriptor,\n templateQueryIdMap,\n TCAPLUSInstanceAliasList,\n TCAPLUSInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n regonsMap,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as TCAPLUSGetInstanceQueryParams,\n};\n","// 产品目录名字和service名字匹配即 lb_private(目录名) => lbPrivate(service)\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VBC';\n\n// 组件名称。这里名字要和index.ts中的SERVICES对应,后面会根据SERVICES中service字段拼接这个query组件名称\nconst queryEditorName = 'vbcQuery';\n\nconst VBCInvalidDemensions = {\n // CcnId: 'CcnId',\n};\n\n// 需和文件名对应\nconst VBCInstanceAliasList = ['CcnId', 'CcnName'];\n\nconst templateQueryIdMap = {\n instance: 'CcnId',\n};\n\n// select类型需要注意是{},multi后缀是[],dropdown是''\nconst VBCFilterFields = {\n Limit: 20,\n Offset: 0,\n 'ccn-id': [],\n 'ccn-name': [],\n 'ccn-description': [],\n state: {},\n};\n\nconst VBCFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'ccn-id',\n enDescriptor: 'ccn-id',\n cnDescriptor: 'CCN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-name',\n enDescriptor: 'ccn-name',\n cnDescriptor: 'CCN名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'ccn-description',\n enDescriptor: 'ccn-description',\n cnDescriptor: 'CCN描述',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '隔离中', value: 'ISOLATED' },\n { text: '运行中', value: 'AVAILABLE' },\n ],\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/19199',\n namespace,\n fieldDescriptor: VBCFilterFieldsDescriptor,\n};\n\nconst VBC_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'CcnId',\n DRegion: '',\n SRegion: '',\n queries: VBCFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n// const regionSupported = [\n// { text: '华北地区(北京)', value: 'ap-beijing' },\n// { text: '西南地区(成都)', value: 'ap-chengdu' },\n// { text: '西南地区(重庆)', value: 'ap-chongqing' },\n// { text: '华南地区(广州)', value: 'ap-guangzhou' },\n// { text: '港澳台地区(中国香港)', value: 'ap-hongkong' },\n// { text: '亚太南部(孟买)', value: 'ap-mumbai' },\n// { text: '华东地区(南京)', value: 'ap-nanjing' },\n// { text: '华东地区(上海)', value: 'ap-shanghai' },\n// { text: '华东地区(上海金融)', value: 'ap-shanghai-fsi' },\n// { text: '华南地区(深圳金融)', value: 'ap-shenzhen-fsi' },\n// { text: '亚太东南(新加坡)', value: 'ap-singapore' },\n// { text: '亚太东北(东京)', value: 'ap-tokyo' },\n// { text: '欧洲地区(法兰克福)', value: 'eu-frankfurt' },\n// { text: '美国东部(弗吉尼亚)', value: 'na-ashburn' },\n// { text: '美国西部(硅谷)', value: 'na-siliconvalley' },\n// { text: '北美地区(多伦多)', value: 'na-toronto' },\n// ];\nexport default VBC_STATE;\nexport {\n VBCFilterFieldsDescriptor,\n templateQueryIdMap,\n VBCInstanceAliasList,\n VBCInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n // regionSupported,\n // 对应产品的service的全大写拼接GetInstanceQueryParams\n GetInstanceQueryParams as VBCGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNGW';\nconst queryEditorName = 'vpngwQuery';\n\nconst VPNGWInvalidDemensions = {\n vpnGwId: 'VpnGatewayId',\n};\n\nconst VPNGWInstanceAliasList = ['VpnGatewayId', 'VpnGatewayName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnGatewayId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNGWFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'vpn-gateway-name': [],\n type: {},\n 'public-ip-address': [],\n 'renew-flag': {},\n zone: [],\n};\n\nconst VPNGWFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-name',\n enDescriptor: 'vpn-gateway-name',\n cnDescriptor: 'VPN实例名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'type',\n enDescriptor: 'type',\n cnDescriptor: 'VPN网关类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: 'IPSEC', value: 'IPSEC' },\n { text: 'SSL', value: 'SSL' },\n ],\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'public-ip-address',\n cnDescriptor: '公网IP',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'renew-flag',\n enDescriptor: 'renew-flag',\n cnDescriptor: '网关续费类型',\n link: '',\n type: 'select',\n multiple: true,\n list: [\n { text: '手动续费', value: 'NOTIFY_AND_MANUAL_RENEW' },\n { text: '自动续费', value: 'NOTIFY_AND_AUTO_RENEW' },\n ],\n },\n {\n key: 'zone',\n enDescriptor: 'zone',\n cnDescriptor: 'VPN所在可用区',\n link: '',\n type: 'dropdownMulti',\n },\n];\n\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17514',\n namespace,\n fieldDescriptor: VPNGWFilterFieldsDescriptor,\n};\n\nconst VPNGW_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnGatewayId',\n queries: VPNGWFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNGW_STATE;\nexport {\n VPNGWFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNGWInstanceAliasList,\n VPNGWInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNGWGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nimport { DetailQueryConfig, FildDescriptorType } from '../_base/types';\nimport { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst namespace = 'QCE/VPNX';\nconst queryEditorName = 'vpnxQuery';\n\nconst VPNXInvalidDemensions = {\n vpnConnId: 'VpnConnectionId',\n};\n\nconst VPNXInstanceAliasList = ['VpnConnectionId', 'VpnConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'VpnConnectionId',\n};\n\n// select类型需要注意是{},multi后缀是[]\nconst VPNXFilterFields = {\n Limit: 20,\n Offset: 0,\n 'vpc-id': [],\n 'vpn-gateway-id': [],\n 'customer-gateway-id': [],\n 'vpn-connection-name': [],\n 'vpn-connection-id': [],\n};\n\nconst VPNXFilterFieldsDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 100,\n },\n {\n key: 'vpc-id',\n enDescriptor: 'vpc-id',\n cnDescriptor: 'VPC实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-gateway-id',\n enDescriptor: 'vpn-gateway-id',\n cnDescriptor: 'VPN实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'customer-gateway-id ',\n enDescriptor: 'customer-gateway-id ',\n cnDescriptor: '对端网关实例ID',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-name',\n enDescriptor: 'vpn-connection-name',\n cnDescriptor: '通道名称',\n link: '',\n type: 'inputMulti',\n },\n {\n key: 'vpn-connection-id',\n enDescriptor: 'vpn-connection-id',\n cnDescriptor: '通道实例ID',\n link: '',\n type: 'inputMulti',\n },\n];\n\n// 各产品实例列表detail配置\nconst queryEditorConfig: DetailQueryConfig = {\n instanceDocUrl: 'https://cloud.tencent.com/document/api/215/17515',\n namespace,\n fieldDescriptor: VPNXFilterFieldsDescriptor,\n};\n\nconst VPNX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'VpnConnectionId',\n queries: VPNXFilterFields,\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, true);\n}\nexport default VPNX_STATE;\nexport {\n VPNXFilterFieldsDescriptor,\n templateQueryIdMap,\n VPNXInstanceAliasList,\n VPNXInvalidDemensions,\n namespace,\n queryEditorName,\n queryEditorConfig,\n GetInstanceQueryParams as VPNXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nconst LighthouseStateType = [\n { text: '创建中', value: 'PENDING' },\n { text: '创建失败', value: 'LAUNCH_FAILED' },\n { text: '运行中', value: 'RUNNING' },\n { text: '关机', value: 'STOPPED' },\n { text: '开机中', value: 'STARTING' },\n { text: '关机中', value: 'STOPPING' },\n { text: '重启中', value: 'REBOOTING' },\n { text: '停止待销毁', value: 'SHUTDOWN' },\n { text: '销毁中', value: 'TERMINATING' },\n];\n\nconst LighthouseFilterFields = {\n zone: [],\n 'instance-name': [],\n 'instance-state': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n};\n\nconst LighthouseFilterFieldsDescriptor = [\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'instance-state',\n enDescriptor: 'Instance State',\n cnDescriptor: '实例状态',\n link: '',\n type: 'select',\n list: LighthouseStateType,\n },\n];\n\nconst LIGHTHOUSE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...LighthouseFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LIGHTHOUSEInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst LighthouseInvalidDemensions = {\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\n\nfunction modifyDimensons(metricItem: any) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\n\nexport default LIGHTHOUSE_STATE;\n\nexport {\n LighthouseFilterFieldsDescriptor,\n LIGHTHOUSEInstanceAliasList,\n LighthouseInvalidDemensions,\n templateQueryIdMap,\n modifyDimensons,\n GetInstanceQueryParams as LIGHTHOUSEGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\nexport const CFSQueryDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'FileSystemId',\n enDescriptor: 'File System Id',\n cnDescriptor: '文件系统 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'VpcId',\n enDescriptor: 'VpcId',\n cnDescriptor: '私有网络(VPC) ID',\n link: '',\n type: 'input',\n },\n {\n key: 'SubnetId',\n enDescriptor: 'SubnetId',\n cnDescriptor: '子网 ID',\n link: '',\n type: 'input',\n },\n];\n\nconst CFS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'FileSystemId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n FileSystemId: '',\n VpcId: '',\n SubnetId: '',\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nconst CFSInstanceAliasList = ['FileSystemId', 'FsName'];\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nconst CFSInvalidDemensions = {\n // functionName: 'FunctionName',\n // namespace: 'Namespace'\n};\n\nconst regionSupported = [\n { value: 'ap-beijing' },\n { value: 'ap-chengdu' },\n { value: 'ap-chongqing' },\n { value: 'ap-guangzhou' },\n { value: 'ap-hongkong' },\n { value: 'ap-mumbai' },\n { value: 'ap-nanjing' },\n { value: 'ap-seoul' },\n { value: 'ap-shanghai' },\n { value: 'ap-shanghai-fsi' },\n { value: 'ap-shenzhen-fsi' },\n { value: 'ap-singapore' },\n { value: 'ap-tokyo' },\n { value: 'eu-frankfurt' },\n { value: 'na-siliconvalley' },\n { value: 'na-toronto' },\n];\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default CFS_STATE;\nexport {\n CFSInstanceAliasList,\n CFSInvalidDemensions,\n templateQueryIdMap,\n regionSupported,\n GetInstanceQueryParams as CFSGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const SCFDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\nimport { FildDescriptorType } from '../_base/types';\n\nexport const InstanceQueryDescriptor: FildDescriptorType = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputNumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为10,最小值为1,最大值为100',\n link: '',\n type: 'inputNumber',\n min: 1,\n max: 50,\n },\n {\n key: 'QueueName',\n enDescriptor: 'QueueName',\n cnDescriptor: '精确匹配QueueName',\n link: '',\n type: 'input',\n },\n {\n key: 'TagKey',\n enDescriptor: 'TagKey',\n cnDescriptor: '标签搜索',\n link: '',\n type: 'input',\n },\n];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 向实例里面塞dimensions对应的值,dimension中的key对应到实例中的key\nexport const InvalidDemensions = {\n queueId: 'QueueId',\n queueName: 'QueueName',\n};\n\nexport const templateQueryIdMap = {\n instance: 'QueueName',\n};\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['QueueName', 'QueueId'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'QueueName',\n queries: {\n Offset: 0,\n Limit: 20,\n QueueName: '',\n TagKey: '',\n },\n};\n","import _ from 'lodash';\nconst instanceChargeTypes = [\n { text: '预付费', value: 'PREPAID' },\n { text: '后付费', value: 'POSTPAID_BY_HOUR' },\n { text: 'CDH付费', value: 'CDHPAID' },\n];\n\nconst CVMFilterFields = {\n zone: [],\n 'project-id': [],\n 'host-id': [],\n 'vpc-id': [],\n 'subnet-id': [],\n 'instance-id': [],\n 'security-group-id': [],\n 'instance-name': [],\n 'instance-charge-type': {},\n 'private-ip-address': [],\n 'public-ip-address': [],\n 'tag-key': [],\n};\n\nconst CVMFilterFieldsDescriptor = [\n {\n key: 'zone',\n enDescriptor: 'Zone',\n cnDescriptor: '可用区',\n link: '',\n type: 'dropdownmulti',\n },\n {\n key: 'project-id',\n enDescriptor: 'Project ID',\n cnDescriptor: '项目ID',\n link: 'https://cloud.tencent.com/document/api/378/4400',\n type: 'inputNumbermulti',\n },\n {\n key: 'host-id',\n enDescriptor: 'CDH ID',\n cnDescriptor: 'CDH ID',\n link: 'https://cloud.tencent.com/document/product/416/19730',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: 'VPC ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'subnet-id',\n enDescriptor: 'Subnet ID',\n cnDescriptor: '子网ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'security-group-id',\n enDescriptor: 'Security Group ID',\n cnDescriptor: '安全组ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-name',\n enDescriptor: 'Instance Name',\n cnDescriptor: '实例名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-key',\n enDescriptor: '标签简',\n cnDescriptor: '标签简',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'instance-charge-type',\n enDescriptor: 'Instance Charge Type',\n cnDescriptor: '实例计费模式',\n link: '',\n type: 'select',\n list: instanceChargeTypes,\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: '实例主网卡的内网IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'public-ip-address',\n enDescriptor: 'Public IP Address',\n cnDescriptor: '实例主网卡的公网IP,包含实例创建时自动分配的IP和实例创建后手动绑定的弹性IP',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CVM_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n InstanceIds: [''],\n Filters: { ...CVMFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst CVMInstanceAliasList = ['InstanceId', 'InstanceName', 'PrivateIpAddresses', 'PublicIpAddresses'];\n\nconst CVMValidMetricsT = [\n 'CPUUsage',\n 'CpuLoadavg',\n 'Cpuloadavg5m',\n 'Cpuloadavg15m',\n 'BaseCpuUsage',\n 'GpuMemTotal',\n 'GpuMemUsage',\n 'GpuMemUsed',\n 'GpuPowDraw',\n 'GpuPowLimit',\n 'GpuPowUsage',\n 'GpuTemp',\n 'GpuUtil',\n 'LanOuttraffic',\n 'LanIntraffic',\n 'LanOutpkg',\n 'LanInpkg',\n 'WanOuttraffic',\n 'WanIntraffic',\n 'WanOutpkg',\n 'WanInpkg',\n 'AccOuttraffic',\n 'TcpCurrEstab',\n 'TimeOffset',\n 'MemUsed',\n 'MemUsage',\n 'CvmDiskUsage',\n 'BaseCpuUsage',\n 'VmDiskReadIops',\n];\n// const CVMInvalidDemensions = {\n// 'vm_uuid': 'InstanceId',\n// 'vmUuid': 'InstanceId',\n// };\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nfunction isValidMetric(metric) {\n const CVMValidMetrics = _.map(CVMValidMetricsT, _.toUpper);\n return _.indexOf(CVMValidMetrics, _.toUpper(metric.MetricName)) !== -1;\n}\nfunction modifyDimensons(metricItem) {\n const metricTmp = _.cloneDeep(metricItem);\n metricTmp.Dimensions.forEach((item) => {\n item.Dimensions = ['InstanceId'];\n });\n return metricTmp;\n}\nexport default CVM_STATE;\nexport {\n CVMFilterFieldsDescriptor,\n CVMInstanceAliasList,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n // CVMInvalidDemensions,\n GetInstanceQueryParams as CVMGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst namespace = 'QCE/PCX';\n\nconst PCXFields = {\n limit: 20,\n offset: 0,\n peeringConnectionId: '',\n peeringConnectionName: '',\n vpcId: '',\n state: undefined,\n};\n\nconst PCX_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'peeringConnectionId',\n queries: { ...PCXFields },\n};\n\nconst StateTypes = [\n { text: '申请中', value: 0 },\n { text: '连接成功', value: 1 },\n { text: '已过期', value: 2 },\n { text: '对端已拒绝', value: 3 },\n { text: '对端已删除', value: 4 },\n];\n\nconst PCXFieldsDescriptor = [\n {\n key: 'offset',\n enDescriptor: 'offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'limit',\n enDescriptor: 'limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为50',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 50,\n },\n {\n key: 'peeringConnectionId',\n enDescriptor: 'PeeringConnection Id',\n cnDescriptor: '私有网络对等连接 ID',\n link: '',\n type: 'input',\n },\n {\n key: 'peeringConnectionName',\n enDescriptor: 'PeeringConnection Name',\n cnDescriptor: '对等连接名称',\n link: '',\n type: 'input',\n },\n {\n key: 'vpcId',\n enDescriptor: 'vpcId',\n cnDescriptor: '发起方私有网络 ID 值',\n link: 'https://cloud.tencent.com/document/api/215/1372',\n type: 'dropdown',\n },\n {\n key: 'state',\n enDescriptor: 'state',\n cnDescriptor: '连接状态',\n link: '',\n type: 'select',\n list: StateTypes,\n },\n];\n\nconst PCXInstanceAliasList = ['peeringConnectionId', 'peeringConnectionName'];\n\nconst templateQueryIdMap = {\n instance: 'peeringConnectionId',\n};\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.limit = _.get(queries, 'limit', 20) || 20;\n params.offset = _.get(queries, 'offset', 0) || 0;\n queries = _.omit(queries, ['offset', 'limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nexport default PCX_STATE;\n\nexport {\n PCXInstanceAliasList,\n PCXFieldsDescriptor,\n templateQueryIdMap,\n namespace,\n GetInstanceQueryParams as PCXGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst BillingMode = [\n { text: '按量计费', value: 'postpaid' },\n { text: '包年包月', value: 'prepaid' },\n];\n\nconst AutoRenew = [\n { text: '手动续费', value: 0 },\n { text: '自动续费', value: 1 },\n { text: '明确不自动续费', value: 2 },\n];\n\nconst Status = [\n { text: '待初始化', value: 0 },\n { text: '流程执行中', value: 1 },\n { text: '运行中', value: 2 },\n { text: '已隔离', value: -2 },\n { text: '待删除', value: -3 },\n];\n\nconst TypeVersion = [\n { text: '单机版', value: 1 },\n { text: '主从版', value: 2 },\n { text: '集群版', value: 3 },\n];\n\nconst OrderBy = [\n { text: 'projectId', value: 'projectId' },\n { text: 'instancename', value: 'instancename' },\n { text: 'createtime', value: 'createtime' },\n { text: 'type', value: 'type' },\n { text: 'curDeadline', value: 'curDeadline' },\n];\n\nconst OrderType = [\n { text: '升序', value: 0 },\n { text: '降序', value: 1 },\n];\nconst Type = [\n { text: 'Redis老集群版', value: 1 },\n { text: 'Redis 2.8主从版', value: 2 },\n { text: 'CKV主从版', value: 3 },\n { text: 'CKV集群版', value: 4 },\n { text: 'Redis 2.8单机版', value: 5 },\n { text: 'Redis 4.0主从版', value: 6 },\n { text: 'Redis 4.0集群版', value: 7 },\n { text: 'Redis5.0主从版', value: 8 },\n { text: 'Redis5.0集群版', value: 9 },\n];\n\nconst RedisFields = {\n InstanceId: '',\n OrderBy: '',\n OrderType: null,\n VpcIds: [],\n SubnetIds: [],\n ProjectIds: [],\n SearchKey: '',\n InstanceName: '',\n UniqVpcIds: [],\n UniqSubnetIds: [],\n Status: [],\n TypeVersion: null,\n EngineName: '',\n AutoRenew: null,\n BillingMode: '',\n Type: null,\n};\n\nconst RedisFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'InstanceId',\n enDescriptor: 'InstancesId',\n cnDescriptor: '实例id',\n type: 'input',\n },\n {\n key: 'OrderBy',\n enDescriptor: 'OrderBy',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderBy,\n },\n {\n key: 'OrderType',\n enDescriptor: 'OrderType',\n cnDescriptor: '排序字段',\n link: '',\n type: 'select',\n list: OrderType,\n },\n {\n key: 'VpcIds',\n enDescriptor: 'VpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:47525',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SubnetIds',\n enDescriptor: 'SubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:56854',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ProjectIds',\n enDescriptor: 'ProjectIds',\n cnDescriptor: '项目ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'SearchKey',\n enDescriptor: 'SearchKey',\n cnDescriptor: '查找实例的ID',\n link: '',\n type: 'input',\n },\n {\n key: 'InstanceName',\n enDescriptor: 'InstanceName',\n cnDescriptor: '实例名称',\n link: '',\n type: 'input',\n },\n {\n key: 'UniqVpcIds',\n enDescriptor: 'UniqVpcIds',\n cnDescriptor: '私有网络ID数组,数组下标从0开始,如果不传则默认选择基础网络,如:vpc-sad23jfdfk',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'UniqSubnetIds',\n enDescriptor: 'UniqSubnetIds',\n cnDescriptor: '子网ID数组,数组下标从0开始,如:subnet-fdj24n34j2',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Status',\n enDescriptor: 'Status',\n cnDescriptor: '实例状态',\n multiple: true,\n type: 'select',\n list: Status,\n },\n {\n key: 'TypeVersion',\n enDescriptor: 'TypeVersion',\n cnDescriptor: '类型版本',\n link: '',\n type: 'select',\n list: TypeVersion,\n },\n {\n key: 'EngineName',\n enDescriptor: 'EngineName',\n cnDescriptor: '引擎信息:Redis-2.8,Redis-4.0,CKV',\n link: '',\n type: 'input',\n },\n {\n key: 'AutoRenew',\n enDescriptor: 'AutoRenew',\n cnDescriptor: '续费模式',\n multiple: true,\n type: 'select',\n list: AutoRenew,\n },\n {\n key: 'BillingMode',\n enDescriptor: 'BillingMode',\n cnDescriptor: '计费模式:postpaid-按量计费;prepaid-包年包月',\n link: '',\n type: 'select',\n list: BillingMode,\n },\n {\n key: 'Type',\n enDescriptor: 'Type',\n cnDescriptor: '实例类型',\n link: '',\n type: 'select',\n list: Type,\n },\n];\n\nconst REDIS_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'InstanceId',\n queries: { ...RedisFields },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n // select 单选\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\nfunction isValidMetric(metricObj: any = {}) {\n const dimension = _.get(metricObj, 'Dimensions[0].Dimensions');\n return dimension.length === 1 && _.indexOf(dimension, 'instanceid') !== -1;\n}\n\nconst REDISInstanceAliasList = ['InstanceId', 'InstanceName', 'WanIp'];\n\nconst RedisInvalidDemensions = {\n redis_uuid: 'InstanceId',\n instanceid: 'InstanceId',\n};\n\nconst templateQueryIdMap = {\n instance: 'InstanceId',\n};\nexport default REDIS_STATE;\nexport {\n RedisFieldsDescriptor,\n RedisInvalidDemensions,\n templateQueryIdMap,\n REDISInstanceAliasList,\n isValidMetric,\n GetInstanceQueryParams as REDISGetInstanceQueryParams,\n};\n","import { instanceQueryParamsBaseParse } from '../../common/utils';\n\nconst ApplicationType = [\n { text: '所有', value: '' },\n { text: '容器应用', value: 'C' },\n { text: '普通应用/虚拟机应用', value: 'V' },\n];\n\nconst MicroserviceType = [\n { text: '所有', value: '' },\n { text: '普通应用', value: 'N' },\n { text: 'Mesh应用', value: 'M' },\n { text: '微服务网关应用', value: 'G' },\n { text: '原生应用', value: 'NATIVE' },\n];\n\nconst ApplicationResourceType = [\n { text: '默认资源类型', value: 'DEF' },\n { text: '微服务网关资源', value: 'GW' },\n];\n\nconst TSFFieldsDescriptor = [\n {\n key: 'Offset',\n enDescriptor: 'Offset',\n cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n link: '',\n type: 'inputnumber',\n min: 0,\n },\n {\n key: 'Limit',\n enDescriptor: 'Limit',\n cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为100',\n link: '',\n type: 'inputnumber',\n min: 1,\n max: 100,\n },\n {\n key: 'SearchWord',\n enDescriptor: 'SearchWord',\n cnDescriptor: '搜索关键字',\n link: '',\n type: 'input',\n },\n {\n key: 'ApplicationIdList',\n enDescriptor: 'ApplicationIdList',\n cnDescriptor: '应用ID 组成的数组',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ApplicationType',\n enDescriptor: 'ApplicationType',\n cnDescriptor: '应用类型',\n link: '',\n type: 'select',\n list: ApplicationType,\n },\n {\n key: 'MicroserviceType',\n enDescriptor: 'MicroserviceType',\n cnDescriptor: '应用的微服务类型',\n link: '',\n type: 'select',\n list: MicroserviceType,\n },\n {\n key: 'ApplicationResourceTypeList',\n enDescriptor: 'ApplicationResourceTypeList',\n cnDescriptor: '应用资源类型数组',\n link: '',\n type: 'select',\n multiple: true,\n list: ApplicationResourceType,\n },\n];\n\nconst TSF_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ApplicationId',\n queries: {\n Limit: 20,\n Offset: 0,\n SearchWord: '',\n OrderBy: '',\n OrderType: null,\n ApplicationType: '',\n MicroserviceType: '',\n ApplicationResourceTypeList: [],\n ApplicationIdList: [],\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n return instanceQueryParamsBaseParse(queries, false);\n}\n\nconst TSFInstanceAliasList = ['ApplicationId', 'ApplicationName'];\n\nconst TSFInvalidDemensions = {\n applicationid: 'ApplicationId',\n};\n\nconst templateQueryIdMap = {\n instance: 'ApplicationId',\n};\n\nexport default TSF_STATE;\nexport {\n TSFInvalidDemensions,\n templateQueryIdMap,\n TSFInstanceAliasList,\n TSFFieldsDescriptor,\n GetInstanceQueryParams as TSFGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst networkTypes = [\n { text: 'BGP', value: 'BGP' },\n { text: 'SINGLEISP', value: 'SINGLEISP' },\n { text: 'ANYCAST', value: 'ANYCAST' },\n];\n\nconst chargeTypes = [\n { text: 'top5计费', value: 'TOP5_POSTPAID_BY_MONTH' },\n { text: '月95计费', value: 'PERCENT95_POSTPAID_BY_MONTH' },\n];\nconst BWPFilterFields = {\n 'bandwidth-package_id': [],\n 'bandwidth-package-name': [],\n 'network-type': [],\n 'charge-type': [],\n};\n\nconst BWPFilterFieldsDescriptor = [\n {\n key: 'bandwidth-package_id',\n enDescriptor: 'BandwidthPackage Id',\n cnDescriptor: '带宽包ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'bandwidth-package-name',\n enDescriptor: 'BandwidthPackage Name',\n cnDescriptor: '带宽包名称',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-type',\n enDescriptor: 'network type',\n cnDescriptor: '带宽包类型',\n link: '',\n type: 'select',\n list: networkTypes,\n },\n {\n key: 'charge-type',\n enDescriptor: 'charge type',\n cnDescriptor: '带宽包计费类型',\n link: '',\n type: 'select',\n list: chargeTypes,\n },\n];\n\nconst BWP_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BandwidthPackageId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n BandwidthPackageIds: [''],\n Filters: { ...BWPFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.BandwidthPackageIds)) {\n const BandwidthPackageIds = _.compact(queries.BandwidthPackageIds);\n if (_.uniq(BandwidthPackageIds).length > 0) {\n params.BandwidthPackageIds = _.uniq(BandwidthPackageIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst BWPInstanceAliasList = ['BandwidthPackageId', 'BandwidthPackageName'];\n\nconst templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n};\n\nconst BWPInvalidDemensions = {\n bandwidthPackageId: 'BandwidthPackageId',\n};\nexport default BWP_STATE;\nexport {\n BWPFilterFieldsDescriptor,\n templateQueryIdMap,\n BWPInstanceAliasList,\n BWPInvalidDemensions,\n GetInstanceQueryParams as BWPGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: {},\n serviceType: {},\n projectId: [],\n domainType: {},\n fullUrlCache: {},\n https: {},\n originPullProtocol: {},\n tagKey: [],\n};\n\nconst CDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst CDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n // console.log('item', item, queries);\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst CDNInstanceAliasList = ['Domain', 'ProjectId'];\n\nconst CDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default CDN_STATE;\nexport {\n CDNFilterFieldsDescriptor,\n templateQueryIdMap,\n CDNInstanceAliasList,\n CDNInvalidDemensions,\n GetInstanceQueryParams as CDNGetInstanceQueryParams,\n};\n","import _ from 'lodash';\n\n// export const LBQueryDescriptor = [{\n// key: 'Offset',\n// enDescriptor: 'Offset',\n// cnDescriptor: '偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项',\n// link: '',\n// type: 'inputnumber',\n// min: 0,\n// },\n// {\n// key: 'Limit',\n// enDescriptor: 'Limit',\n// cnDescriptor: '单次请求返回的数量,默认为20,最小值为1,最大值为2000',\n// link: '',\n// type: 'inputnumber',\n// min: 1,\n// max: 2000,\n// },\n// {\n// key: 'AddressId',\n// enDescriptor: 'Address Id',\n// cnDescriptor: '标识 EIP 的唯一 ID ',\n// link: '',\n// type: 'inputmulti',\n// }\n// ];\n\nexport const LBFilterDescriptor = [\n {\n key: 'address-id',\n enDescriptor: 'Address ID',\n cnDescriptor: 'EIP 的唯一 ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-name',\n enDescriptor: 'Address Name',\n cnDescriptor: 'EIP 名称 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-ip',\n enDescriptor: 'Address IP',\n cnDescriptor: 'EIP 的 IP 地址 ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'address-status',\n enDescriptor: 'Address Status',\n cnDescriptor: 'EIP 的状态',\n link: '',\n type: 'select',\n list: [\n { value: 'CREATING', text: 'CREATING' },\n { value: 'BINDING', text: 'BINDING' },\n { value: 'BIND', text: 'BIND' },\n { value: 'UNBINDING', text: 'UNBINDING' },\n { value: 'UNBIND', text: 'UNBIND' },\n { value: 'OFFLINING', text: 'OFFLINING' },\n { value: 'BIND_ENI', text: 'BIND_ENI' },\n ],\n },\n {\n key: 'instance-id',\n enDescriptor: 'Instance ID',\n cnDescriptor: '实例ID ',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'private-ip-address',\n enDescriptor: 'Private IP Address',\n cnDescriptor: 'EIP 绑定的内网 IP',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'network-interface-id',\n enDescriptor: 'Network Interface ID',\n cnDescriptor: 'EIP 绑定的弹性网卡 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'is-arrears',\n enDescriptor: 'Arrears',\n cnDescriptor: 'EIP 是否欠费 ',\n link: '',\n type: 'select',\n list: [\n { text: '正常', value: 'FALSE' },\n { text: '欠费', value: 'TRUE' },\n ],\n },\n];\n\n// const LBFilterFields = {\n// \"address-id\": [],\n// \"address-name\": [],\n// \"address-ip\": [],\n// \"address-status \": [],\n// \"instance-id \": [],\n// \"private-ip-address\": [],\n// \"network-interface-id \": [],\n// \"is-arrears \": [],\n// };\n\nconst InstanceKey = 'AddressIds';\nconst LB_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'AddressId',\n version: '',\n queries: {\n Offset: 0,\n Limit: 20,\n [InstanceKey]: [''],\n Filters: {\n 'address-id': [],\n 'address-name': [],\n 'address-ip': [],\n 'address-status ': [],\n 'instance-id ': [],\n 'private-ip-address': [],\n 'network-interface-id ': [],\n 'is-arrears ': [],\n },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries[InstanceKey])) {\n const InstanceIds = _.compact(queries[InstanceKey]);\n if (_.uniq(InstanceIds).length > 0) {\n params[InstanceKey] = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst LBInstanceAliasList = ['AddressId', 'AddressName', 'AddressIp'];\n\n// 维度eip对应于实例中的哪个字段?映射\nconst LBInvalidDemensions = {\n eip: 'AddressIp',\n};\n\nconst templateQueryIdMap = {\n instance: 'AddressId',\n};\n// 从monitor维度到LB实例对应字段的映射\n// export const metric2Instance = {\n// functionName: 'FunctionName',\n// namespace: 'Namespace'\n// };\n\nexport default LB_STATE;\nexport {\n LBInstanceAliasList,\n LBInvalidDemensions,\n templateQueryIdMap,\n GetInstanceQueryParams as LBGetInstanceQueryParams,\n};\n\n// monitor监控数据默认支持的维度\n// export const LBDefaultDimensionList = ['functionName', 'namespace', 'version'];\n","import _ from 'lodash';\n\nconst NATGATEWAYInstanceAliasList = ['NatGatewayId', 'NatGatewayName'];\n\nconst NATGatewayFilterFields = {\n 'nat-gateway-id': [],\n 'nat-gateway-name': [],\n 'vpc-id': [],\n};\n\nconst NATGatewayFilterFieldsDescriptor = [\n {\n key: 'nat-gateway-id',\n enDescriptor: 'NatGateway ID',\n cnDescriptor: 'NAT网关统一 ID',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'nat-gateway-name',\n enDescriptor: 'NatGateway Name',\n cnDescriptor: 'NatGateway Name',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC ID',\n cnDescriptor: '私有网络 ID',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst NATGATEWAY_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'NatGatewayId',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: false,\n NatGatewayIds: [''],\n Filters: { ...NATGatewayFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.NatGatewayIds)) {\n const NatGatewayIds = _.compact(queries.NatGatewayIds);\n if (_.uniq(NatGatewayIds).length > 0) {\n params.InstanceIds = _.uniq(NatGatewayIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nconst templateQueryIdMap = {\n instance: 'NatGatewayId',\n};\n\nconst NATInvalidDemensions = {\n natId: 'NatGatewayId',\n};\n\nexport default NATGATEWAY_STATE;\nexport {\n NATGatewayFilterFieldsDescriptor,\n NATGATEWAYInstanceAliasList,\n templateQueryIdMap,\n NATInvalidDemensions,\n GetInstanceQueryParams as NATGATEWAYGetInstanceQueryParams,\n};\n","import _ from 'lodash';\nconst CDNFilterFields = {\n origin: [],\n domain: [],\n resourceId: [],\n status: [],\n serviceType: [],\n projectId: [],\n domainType: [],\n fullUrlCache: [],\n https: [],\n originPullProtocol: [],\n tagKey: [],\n};\n\nconst OVCDNFilterFieldsDescriptor = [\n {\n key: 'origin',\n enDescriptor: 'origin',\n cnDescriptor: '主源站',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'domain',\n enDescriptor: 'domain',\n cnDescriptor: '域名',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'resourceId',\n enDescriptor: 'resourceId',\n cnDescriptor: '域名id',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'status',\n enDescriptor: 'status',\n cnDescriptor: '域名状态',\n link: '',\n type: 'select',\n list: [\n { text: 'online', value: 'online' },\n { text: 'offline', value: 'offline' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'serviceType',\n enDescriptor: 'serviceType',\n cnDescriptor: '业务类型',\n link: '',\n type: 'select',\n list: [\n { text: 'web', value: 'web' },\n { text: 'download', value: 'download' },\n { text: 'media', value: 'media' },\n ],\n },\n {\n key: 'projectId',\n enDescriptor: 'projectId',\n cnDescriptor: '项目ID',\n link: '',\n type: 'inputNumbermulti',\n },\n {\n key: 'domainType',\n enDescriptor: 'domainType',\n cnDescriptor: '主源站类型',\n link: '',\n type: 'select',\n list: [\n { text: '自有源', value: 'cname' },\n { text: 'cos接入', value: 'cos' },\n ],\n },\n {\n key: 'fullUrlCache',\n enDescriptor: 'fullUrlCache',\n cnDescriptor: '全路径缓存',\n link: '',\n type: 'select',\n list: [\n { text: '打开', value: 'on' },\n { text: '关闭', value: 'off' },\n ],\n },\n {\n key: 'https',\n enDescriptor: 'https',\n cnDescriptor: '是否配置https',\n link: '',\n type: 'select',\n list: [\n { text: 'on', value: 'on' },\n { text: 'off', value: 'off' },\n { text: 'processing', value: 'processing' },\n ],\n },\n {\n key: 'originPullProtocol',\n enDescriptor: 'originPullProtocol',\n cnDescriptor: '回源协议类型',\n link: '',\n type: 'select',\n list: [\n { text: 'http', value: 'http' },\n { text: 'follow', value: 'follow' },\n { text: 'https', value: 'https' },\n ],\n },\n {\n key: 'tagKey',\n enDescriptor: 'tagKey',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst OVCDN_STATE = {\n region: 'ap-guangzhou',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'Domain',\n queries: {\n Limit: 20,\n Offset: 0,\n Filters: { ...CDNFilterFields },\n },\n};\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Value: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Value: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n return params;\n}\n\nconst OVCDNInstanceAliasList = ['Domain', 'ResourceId'];\n\nconst OVCDNInvalidDemensions = {\n projectId: 'ProjectId',\n domain: 'Domain',\n};\nconst templateQueryIdMap = {\n instance: 'Domain',\n};\nexport default OVCDN_STATE;\nexport {\n OVCDNFilterFieldsDescriptor,\n OVCDNInstanceAliasList,\n templateQueryIdMap,\n OVCDNInvalidDemensions,\n GetInstanceQueryParams as OVCDNGetInstanceQueryParams,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__69__;","import _ from 'lodash';\n\nconst TKE_STATE = {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'ClusterId',\n conditions: [],\n groupBys: '',\n queries: {\n Limit: 20,\n Offset: 0,\n instanceIdsChecked: false,\n filtersChecked: true,\n ClusterIds: [''],\n Filters: {\n ClusterName: [],\n ClusterType: [],\n ClusterStatus: [],\n 'tag-key': [],\n },\n },\n};\n\nconst TKEFilterFieldsDescriptor = [\n {\n key: 'ClusterName',\n enDescriptor: 'Cluster Name',\n cnDescriptor: '集群名',\n link: '',\n type: 'input',\n },\n {\n key: 'ClusterType',\n enDescriptor: 'Cluster Type',\n cnDescriptor: '集群类型',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'ClusterStatus',\n enDescriptor: 'Cluster Status',\n cnDescriptor: '集群状态',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'Tags',\n enDescriptor: 'Tags',\n cnDescriptor: '标签键值对',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'vpc-id',\n enDescriptor: 'VPC',\n cnDescriptor: 'VPC',\n link: '',\n type: 'input',\n },\n {\n key: 'tag-key',\n enDescriptor: 'Tag Key',\n cnDescriptor: '标签键',\n link: '',\n type: 'inputmulti',\n },\n {\n key: 'tag-value',\n enDescriptor: 'Tag Value',\n cnDescriptor: '标签值',\n link: '',\n type: 'inputmulti',\n },\n];\n\nconst TKEInstanceAliasList = ['ClusterId', 'ClusterName'];\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n if (queries.instanceIdsChecked) {\n if (_.isArray(queries.InstanceIds)) {\n const InstanceIds = _.compact(queries.InstanceIds);\n if (_.uniq(InstanceIds).length > 0) {\n params.InstanceIds = _.uniq(InstanceIds).slice(0, 100);\n }\n }\n } else if (queries.filtersChecked) {\n const Filters: any[] = [];\n _.forEach(queries.Filters, (item: any, key) => {\n if (Filters.length > 9) {\n return;\n }\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n Filters.push({ Name: key, Values: _.uniq(item).slice(0, 5) });\n }\n } else if (_.isObject(item)) {\n if (!_.isEmpty(_.get(item, 'value', []))) {\n Filters.push({ Name: key, Values: _.get(item, 'value', []).slice(0, 5) });\n }\n }\n });\n if (Filters.length > 0) {\n params.Filters = Filters;\n }\n }\n }\n return params;\n}\n\nexport default TKE_STATE;\n\nexport { TKEFilterFieldsDescriptor, TKEInstanceAliasList, GetInstanceQueryParams as TKEGetInstanceQueryParams };\n","import {\n APIGATEWAYInstanceAliasList,\n APIGATEWAYInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = APIGATEWAYInstanceAliasList;\n InvalidDimensions = APIGATEWAYInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'apigateway',\n action: 'DescribeServicesStatus',\n responseField: 'ServiceSet',\n };\n\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getEnvironmentNameList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeServiceEnvironmentList' }\n );\n },\n {\n ServiceId: instanceId,\n },\n 'EnvironmentList'\n );\n const [rs] = res;\n return rs;\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeServiceEnvironmentList') {\n const rs = await this.getEnvironmentNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.environmentName];\n return {\n text: o[this.templateQueryIdMap.environmentName],\n value: o[this.templateQueryIdMap.environmentName],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.environmentList, rs);\n return result;\n }\n return [];\n }\n}\n","import {\n BMINTRALBInstanceAliasList,\n BMINTRALBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n isValidMetric,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMINTRALBInstanceAliasList;\n InvalidDimensions = BMINTRALBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'internal',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n}\n","import { BMLBInstanceAliasList, CPMInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMLBInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmlb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n interceptor: {\n request: (params) => ({\n ...params,\n LoadBalancerType: 'open',\n }), // 设置一些请求参数的 默认值\n },\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return item;\n }\n return null;\n })\n );\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import {\n BMPCXInstanceAliasList,\n BMPCXInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = BMPCXInstanceAliasList;\n InvalidDimensions = BMPCXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bmvpc',\n action: 'DescribeVpcPeerConnections',\n responseField: 'VpcPeerConnectionSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n}\n","import { BWPInstanceAliasList, BWPInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class BWPDatasource extends BaseDatasource {\n Namespace = 'QCE/BWP';\n InstanceAliasList = BWPInstanceAliasList;\n InvalidDimensions = BWPInvalidDemensions;\n templateQueryIdMap = {\n instance: 'BandwidthPackageId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeBandwidthPackages',\n responseField: 'BandwidthPackageSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { CBSInstanceAliasList, CBSInvalidDemensions, namespace, templateQueryIdMap, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CBSInstanceAliasList;\n InvalidDimensions = CBSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cbs',\n action: 'DescribeDisks',\n responseField: 'DiskSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.filter(rawSet, isValidMetric);\n }\n}\n","import _ from 'lodash';\nimport {\n CDBInstanceAliasList,\n CDBInvalidDemensions,\n isValidMetric,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = 'QCE/CDB';\n InstanceAliasList = CDBInstanceAliasList;\n InvalidDimensions = CDBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cdb',\n action: 'DescribeDBInstances',\n responseField: 'Items',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n /**\n * 获取 可用区\n * @param region 地域信息\n */\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.ZoneId, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId和InstanceType的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n InstanceType: 1,\n };\n }\n}\n","import _ from 'lodash';\nimport { CDNInstanceAliasList, CDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = 'QCE/CDN';\n InstanceAliasList = CDNInstanceAliasList;\n InvalidDimensions = CDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import { CDNPROVINCEInstanceAliasList, CDNPROVINCEInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CDNPROVINCEInstanceAliasList;\n InvalidDimensions = CDNPROVINCEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n extrasAlias = ['isp', 'district'];\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n async getConsumerList(params: any) {\n const { region, field } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'cdn');\n\n // 从分页数据,获取全量数据\n const rs = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Name: field,\n },\n },\n serviceInfo.service,\n { action: 'DescribeMapInfo' }\n );\n return (rs.MapInfoList || []).map((o) => {\n return {\n text: o.Name,\n value: o.Name,\n };\n });\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeMapInfo') {\n const { name: field } = query;\n const rs = await this.getConsumerList({ region, field });\n return rs;\n }\n return [];\n }\n}\n","import {\n CEIPSUMMARYInstanceAliasList,\n CEIPInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CEIPSUMMARYInstanceAliasList;\n InvalidDimensions = CEIPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['AnycastEIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n // response: (data: unknown[]) =>[\n // {\n // AddressId: 'AddressId',\n // AddressIp: '111.22.3.4'\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'AnycastEIP');\n // }\n}\n","import { CESInstanceAliasList, CESInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CESInstanceAliasList;\n InvalidDimensions = CESInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'es',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { CFSInstanceAliasList, CFSInvalidDemensions, regionSupported } from './query_def';\nimport { t } from '../../../locale';\nexport default class CFSDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = {\n instance: 'FileSystemId',\n };\n extrasAlias = ['version'];\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/CFS';\n this.InstanceAliasList = CFSInstanceAliasList;\n this.InvalidDimensions = CFSInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'cfs',\n action: 'DescribeCfsFileSystems',\n responseField: 'FileSystems',\n };\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n}\n","import _, { flattenDeep } from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n CKAFKAInstanceAliasList,\n CKAFKATopicAliasList,\n CKAFKAInvalidDemensions,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\n\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CKFKADatasource extends BaseDatasource {\n Namespace = 'QCE/CKAFKA';\n InstanceAliasList = CKAFKAInstanceAliasList;\n TopicAliasList = CKAFKATopicAliasList;\n InvalidDimensions = CKAFKAInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ckafka',\n action: 'DescribeInstances',\n responseField: 'InstanceList',\n };\n extraMetricDims = ['topicId'];\n // extrasAlias = ['topicId', 'consumerGroup', 'partition'];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n consumerGroupCache = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getConsumerGroups(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'ckafka');\n let { InstanceId, groupname = '', topicid = '' } = params;\n groupname = this.getVariable(groupname); // 将模板转换为真实值\n topicid = this.getVariable(topicid); // 将模板转换为真实值\n try {\n groupname = JSON.parse(groupname)[templateQueryIdMap.groupName];\n topicid = JSON.parse(topicid)[templateQueryIdMap.topicId];\n } catch (e) {}\n let consumerGoup = this.consumerGroupCache[InstanceId];\n if (!consumerGoup) {\n // 从分页数据,获取全量数据\n consumerGoup = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeConsumerGroup' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['GroupListForMonitor', 'TopicListForMonitor', 'PartitionListForMonitor', 'GroupList']\n );\n // topick数据从DescribeTopic\n const topicList = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeTopic' }\n );\n },\n _.pick(params, 'InstanceId'),\n ['TopicList']\n );\n consumerGoup[1] = flattenDeep(topicList);\n console.log({ consumerGoup, topicList });\n this.consumerGroupCache[InstanceId] = consumerGoup;\n }\n\n let [GroupList, TopicList, PartitionList, GroupDetailList] = consumerGoup;\n // 无重复数组\n TopicList = _.uniqBy(TopicList, (item) => (item as any).TopicId);\n GroupList = _.uniqBy(GroupList, (item) => (item as any).GroupName);\n PartitionList = _.uniqBy(PartitionList, (item) => (item as any).PartitionId);\n GroupDetailList = _.uniqBy(GroupDetailList, (item) => (item as any).ConsumerGroupName);\n // 如果传入消费者信息,consumergroupname,获取该用户的订阅信息列表\n const SubscribedInfos = GroupDetailList.find((d) => d.ConsumerGroupName === groupname)?.SubscribedInfo || [];\n // 这里为了兼容PartitonList格式,最后转化为数组对象的方式\n const partitions =\n SubscribedInfos.find((sub) => sub.TopicId === topicid)?.Partition?.map((p) => ({\n [templateQueryIdMap.partition]: p,\n })) || [];\n return {\n GroupList,\n TopicList:\n SubscribedInfos.length > 0\n ? SubscribedInfos.map(({ TopicId, TopicName }) => ({ TopicId, TopicName }))\n : TopicList,\n PartitionList: partitions.length > 0 ? partitions : PartitionList,\n };\n }\n formatTopicVarDisplay(topic: Record, displayTpl: string | undefined, topicAlias: string) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !this.TopicAliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(topic, b);\n });\n }\n return this.getAliasValue(topic, topicAlias);\n }\n // 查询指标下的数据\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n let { topicalias, groupname, topicid } = query;\n const result = await this.getConsumerGroups(region, {\n InstanceId: instance.InstanceId,\n groupname,\n topicid,\n });\n let { display } = query;\n const { TopicList, GroupList, PartitionList } = result;\n topicalias = this.TopicAliasList.includes(topicalias) ? topicalias : this.templateQueryIdMap.topicId;\n\n const rs = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: group[templateQueryIdMap.groupName],\n };\n }),\n TopicList: TopicList.map((topic) => {\n const topicAlias = this.formatTopicVarDisplay(topic, display, topicalias);\n topic._InstanceAliasValue = topicAlias || topic[templateQueryIdMap.topicId];\n return {\n text: topicAlias || topic[templateQueryIdMap.topicId],\n value: topic[templateQueryIdMap.topicId], // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n TopicName: topic.TopicName,\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: par[templateQueryIdMap.partition],\n value: par[templateQueryIdMap.partition],\n };\n }),\n };\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.TopicList, TopicList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.GroupList, GroupList);\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.PartitionList, PartitionList);\n // console.log({ res1, res2, res3 });\n // console.log({rs});\n // 根据action返回指定的维度数据列表\n switch (action) {\n case 'DescribeTopicList':\n return rs.TopicList;\n case 'DescribeGroup':\n return rs.GroupList;\n case 'DescribePartion':\n return rs.PartitionList;\n default:\n return [];\n }\n }\n\n // async getOtherAlias(datapoints) {\n // let dimension;\n // for(let j = 0; j < datapoints.Dimensions.length; j++){\n // if(datapoints.Dimensions[j] !== 'InstanceName'){\n // dimension.push(datapoints.Dimensions[j])\n // }\n // }\n // console.log(dimension);\n\n // return dimension\n // }\n}\n","import {\n InstanceAliasList,\n LOADBALANCEListenerAliasList,\n LOADBALANCEServerAliasList,\n LOADBALANCEVALIDDIMENSIONS,\n templateQueryIdMap,\n keyInStorage,\n CANDIATEDIMENSIONS,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n // Namespace = namespace;\n InstanceAliasList = InstanceAliasList;\n ListenerAliasList = LOADBALANCEListenerAliasList;\n ServerAliasList = LOADBALANCEServerAliasList;\n CandiateDimensions = CANDIATEDIMENSIONS;\n // InvalidDimensions = LOADBALANCEVALIDDIMENSIONS;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n // InstanceReqConfig = {\n // service: 'clb',\n // action: 'DescribeLoadBalancers',\n // responseField: 'LoadBalancerSet',\n // };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getInvalidDimensions(selfIns: any, tagret: any) {\n if (selfIns.service === 'lbPrivate' || (selfIns.service === 'lbPublic' && tagret.servers))\n return { ...LOADBALANCEVALIDDIMENSIONS, vpcId: 'NumericalVpcId' };\n return LOADBALANCEVALIDDIMENSIONS;\n }\n getInstanceReqConfig(selfIns: any) {\n const res: any = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n if (selfIns.service === 'lbPrivate' || selfIns.service === 'loadBalance') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'INTERNAL' }),\n };\n }\n if (selfIns.service === 'lbPublic') {\n res.interceptor = {\n request: (param) => ({ ...param, LoadBalancerType: 'OPEN' }),\n };\n }\n return res;\n }\n async getListenerList(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeListeners' }\n );\n },\n {\n LoadBalancerId: instanceId,\n },\n 'Listeners'\n );\n const [rs] = res;\n return rs;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async getServerList(params: any) {\n const { region, instanceId, listenerId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'clb');\n\n const res = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { LoadBalancerId: instanceId, ListenerIds: [listenerId] },\n },\n serviceInfo.service,\n { region, action: 'DescribeTargets' }\n );\n const { Listeners } = res;\n const serversList = _.reduce(\n Listeners,\n (prev, item) => {\n const { Rules, Targets } = item;\n if (!_.isEmpty(Rules)) {\n return _.concat(prev, _.flatten(_.map(Rules, (elem) => (_.isEmpty(elem.Targets) ? [] : elem.Targets))));\n }\n if (!_.isEmpty(Targets)) {\n return _.concat(prev, Targets);\n }\n return prev;\n },\n []\n );\n return serversList;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeListeners') {\n const rs = await this.getListenerList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n let { listeneralias } = query;\n listeneralias = this.ListenerAliasList.includes(listeneralias) ? listeneralias : this.templateQueryIdMap.listener;\n const result = rs.flatMap((o) => {\n const listenAlias = this.formatVariableDisplay(o, display, listeneralias, this.ListenerAliasList);\n const lisId = o[this.templateQueryIdMap.listener];\n o._InstanceAliasValue = listenAlias || lisId;\n // if (!o[listeneralias]) return [];\n return {\n text: listenAlias || lisId,\n value: lisId,\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.listener, rs);\n return result;\n }\n if (action === 'DescribeServer' || action === 'DescribeServerPort') {\n const { listenerid, serverprivateip, serveralias } = query;\n const serverPrivateIp = this.getVariable(serverprivateip);\n const serversList = await this.getServerList({\n region,\n instanceId: instance[this.templateQueryIdMap.instance],\n listenerId: this.getVariable(listenerid),\n });\n const serverAlias = this.ServerAliasList.includes(serveralias) ? serveralias : this.templateQueryIdMap.servers;\n const result = _.chain(serversList)\n .filter((item) => {\n if (action === 'DescribeServer') {\n return true;\n }\n return serverPrivateIp === _.get(item, 'PrivateIpAddresses.0');\n })\n .map((item) => {\n const alias = this.formatVariableDisplay(item, display, serverAlias, this.ServerAliasList);\n const id = item[this.templateQueryIdMap.servers][0];\n item._InstanceAliasValue = alias || id;\n return action === 'DescribeServer'\n ? {\n text: alias || id,\n value: id,\n }\n : {\n text: `${_.get(item, 'Port')}`,\n value: _.get(item, 'Port'),\n };\n })\n .value();\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.servers, serversList);\n return action === 'DescribeServer' ? result : _.uniqBy(result, 'text');\n }\n return [];\n }\n}\n","import {\n CLSInstanceAliasList,\n CLSInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CLSInstanceAliasList;\n InvalidDimensions = CLSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cls',\n action: 'DescribeTopics',\n responseField: 'Topics',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n // async getInstances(region, params = {}) {\n // const superRes = await super.getInstances(region, params);\n // console.log({ superRes });\n // }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\nimport { InvalidDemensions, InstanceAliasList, templateQueryIdMap } from './query_def';\n\nexport default class CmqDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeQueueDetail',\n responseField: 'QueueSet',\n };\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims = Array.from(new Set([...dims, 'queueId', 'queueName']));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class CmqTopicDatasource extends BaseDatasource {\n Namespace = 'QCE/CMQTOPIC';\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'cmq',\n action: 'DescribeTopicDetail',\n responseField: 'TopicSet',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraMetricDims = ['subscriptionId']; // 多选\n\n async fetchAllSubscription(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'cmq');\n // console.log(serviceInfo, 'serviceinfo');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeSubscriptionDetail' }\n );\n },\n params,\n 'SubscriptionSet'\n );\n\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeSubscriptionDetail':\n result = await this.fetchAllSubscription(region, { TopicName: instance.TopicName });\n // eslint-disable-next-line no-case-declarations\n const rs = result.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: item[templateQueryIdMap.subscription] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.subscriptionId, result);\n return rs;\n default:\n return [];\n }\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawMetric = await super.getMetrics(region);\n return rawMetric.map((metric) => {\n let dims = metric.Dimensions[0].Dimensions;\n dims.push('topicId');\n if (['NumOfNotify', 'NumOfSuccNotify'].includes(metric.MetricName)) {\n dims.push('subscriptionId');\n }\n\n dims = Array.from(new Set(dims));\n metric.Dimensions[0].Dimensions = dims;\n return metric;\n });\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\n\ninterface BucketListResult {\n Owner: { ID: 'string'; DisplayName: 'string' };\n Buckets: { Name: string; Region: string }[];\n}\n\nexport default class CosDatasource extends BaseDatasource {\n InvalidDimensions: Record = {};\n InstanceAliasList: string[] = ['BucketName'];\n templateQueryIdMap = {\n instance: 'BucketName',\n };\n InstanceReqConfig = {} as any; // 不必要的配置\n cosURL: string;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n this.cosURL = `/api/datasources/${this.instanceSettings.id}/resources/tc_cos_list`;\n }\n async getInstances(region: string) {\n return this.backendSrv\n .datasourceRequest({\n url: this.cosURL,\n method: 'GET',\n params: { region },\n headers: { 'Content-Type': 'application/json' },\n })\n .then((res) => {\n let { data }: { data: BucketListResult } = res;\n data = data || ({} as any);\n let { Buckets } = data;\n Buckets = Buckets || [];\n\n // name contains appid,see detail https://cloud.tencent.com/document/product/436/8291\n return Buckets.map((item) => ({\n ...item,\n BucketName: item.Name,\n bucket: item.Name,\n appid: item.Name.split('-').slice(-1)[0],\n }));\n });\n }\n\n async getVariableInstances(region) {\n return this.getInstances(region);\n }\n}\n","import {\n CPMInstanceAliasList,\n CPMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CPMInstanceAliasList;\n InvalidDimensions = CPMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'bm',\n action: 'DescribeDevices',\n responseField: 'DeviceInfoSet',\n };\n RegionMap = {};\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/bm',\n },\n 'bm',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n // 缓存,后面获取可用区zone\n this.RegionMap = _.keyBy(response.RegionInfoSet, 'Region');\n return _.map(response.RegionInfoSet || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'DeviceClassCode') {\n const serviceInfo = GetServiceAPIInfo(region, 'bm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n 'bm',\n { region, action: 'DescribeDeviceClass' }\n ).then((response) => {\n return _.map(response.DeviceClassSet || [], (item) => {\n return { text: item.DeviceClassCode, value: item.DeviceClassCode };\n });\n });\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { CVMInstanceAliasList, isValidMetric, modifyDimensons } from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CVMDatasource extends BaseDatasource {\n Namespace = 'QCE/CVM';\n InstanceAliasList = CVMInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'cvm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n if (isValidMetric(item)) {\n return modifyDimensons(item);\n }\n return null;\n })\n );\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cvm' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'cvm' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n}\n","import {\n CYNOSDBMYSQLInstanceAliasList,\n CYNOSDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n checkKeys,\n} from './query_def';\nimport _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\n// import { t } from '../../../locale';\n\nexport default class CYNOSDBMYSQLDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = CYNOSDBMYSQLInstanceAliasList;\n InvalidDimensions = CYNOSDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n checkKeys = checkKeys;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'cynosdb',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n // getRegions() {\n // return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n // }\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'cynosdbmysql' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n // 仅对维度组合是InstanceId的指标,其他指标不支持\n getDefaultInsObj(ins: string) {\n return {\n [templateQueryIdMap.instance]: ins,\n };\n }\n}\n","import { DCInstanceAliasList, DCInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCInstanceAliasList;\n InvalidDimensions = DCInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnects',\n responseField: 'DirectConnectSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import {\n DCDBInstanceAliasList,\n DCDBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCDBInstanceAliasList;\n InvalidDimensions = DCDBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'dcdb',\n action: 'DescribeDCDBInstances',\n responseField: 'Instances',\n };\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n extraActionMap = {\n DescribeDCDBShards: {\n service: 'dcdb',\n action: 'DescribeDCDBShards',\n responseField: 'Shards',\n pickKey: 'ShardInstanceId',\n },\n DescribeDCDBInstanceNodeInfo: {\n service: 'dcdb',\n action: 'DescribeDCDBInstanceNodeInfo',\n responseField: 'NodesInfo',\n pickKey: 'NodeId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion, 入参的region用广州\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/dcdb',\n },\n 'dcdb',\n { action: 'DescribeDCDBSaleInfo', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionList || [], (item) => {\n return {\n text: t(item.Region),\n value: item.Region,\n RegionState: item.RegionState,\n };\n });\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance[this.templateQueryIdMap.instance],\n Limit: 100,\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import { DCGInstanceAliasList, DCGInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCGInstanceAliasList;\n InvalidDimensions = DCGInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeDirectConnectGateways',\n responseField: 'DirectConnectGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { DCXInstanceAliasList, DCXInvalidDemensions, namespace, modifyDimensons } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCXDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = DCXInstanceAliasList;\n InvalidDimensions = DCXInvalidDemensions;\n templateQueryIdMap = {\n instance: 'DirectConnectTunnelId',\n };\n InstanceReqConfig = {\n service: 'dc',\n action: 'DescribeDirectConnectTunnels',\n responseField: 'DirectConnectTunnelSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import { BaseDatasource } from '../_base/datasource';\nimport {\n ECDNInstanceAliasList,\n ECDNInvalidDemensions,\n modifyDimensons,\n namespace,\n templateQueryIdMap,\n} from './query_def';\n\nexport default class ECDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECDNInstanceAliasList;\n InvalidDimensions = ECDNInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'ecdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.map((item) => modifyDimensons(item));\n }\n}\n","import {\n ECMInstanceAliasList,\n ECMInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMInstanceAliasList;\n InvalidDimensions = ECMInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import {\n ECMBLOCKSTORAGEInstanceAliasList,\n ECMBLOCKSTORAGEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMBLOCKSTORAGEInstanceAliasList;\n InvalidDimensions = ECMBLOCKSTORAGEInvalidDemensions;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n templateQueryIdMap = templateQueryIdMap;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async getDiskList(params: any) {\n const { payload } = params;\n const { InstanceId } = payload;\n const instanceCache = await instanceStorage.getInstance(this.service);\n const instanceObj: any =\n _.cloneDeep(instanceCache.find((item) => item[this.templateQueryIdMap.instance] === InstanceId)) ?? {};\n const { DataDisks: dataDisks } = instanceObj;\n return dataDisks;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n InstanceId: instance,\n Limit: 100,\n };\n const rs = await this.getDiskList({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.diskId];\n return {\n text: o[this.templateQueryIdMap.diskId],\n value: o[this.templateQueryIdMap.diskId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.diskId, rs);\n return result;\n }\n}\n","import { ECMLBInstanceAliasList, ECMLBInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = ECMLBInstanceAliasList;\n InvalidDimensions = ECMLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'ecm',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import {\n GSEInstanceAliasList,\n GSEInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n keyInStorage,\n queryMonitorExtraConfg,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = GSEInstanceAliasList;\n InvalidDimensions = GSEInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gse',\n action: 'DescribeInstances',\n responseField: 'Instances',\n };\n\n keyInStorage = keyInStorage;\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n async getQueueNameList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeGameServerSessionQueues' }\n );\n },\n {},\n 'GameServerSessionQueues'\n );\n const [rs] = res;\n return rs;\n }\n async getFleetList(params: any) {\n const { region } = params;\n const serviceInfo = GetServiceAPIInfo(region, this.service);\n\n // 从分页数据,获取全量数据\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'ListFleets' }\n );\n },\n {},\n 'FleetIds'\n );\n const [rs] = res;\n return rs.map((r) => ({ [this.templateQueryIdMap.FleetId]: r }));\n }\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'DescribeGameServerSessionQueues') {\n const rs = await this.getQueueNameList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.Name];\n return {\n text: o[this.templateQueryIdMap.Name],\n value: o[this.templateQueryIdMap.Name],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.queue, rs);\n return result;\n }\n if (action === 'ListFleets') {\n const rs = await this.getFleetList({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.FleetId];\n return {\n text: o[this.templateQueryIdMap.FleetId],\n value: o[this.templateQueryIdMap.FleetId],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.fleet, rs);\n return result;\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { BaseDatasource } from '../_base/datasource';\nimport { LBInstanceAliasList, LBInvalidDemensions } from './query_def';\n\nexport default class SCFDatasource extends BaseDatasource {\n Namespace = 'QCE/LB';\n InstanceAliasList = LBInstanceAliasList;\n InvalidDimensions = LBInvalidDemensions;\n templateQueryIdMap = {\n instance: 'AddressId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeAddresses',\n responseField: 'AddressSet',\n interceptor: {\n request: (params) => {\n const { Filters } = params;\n if (!Filters) {\n params.Filters = [];\n }\n params.Filters.push({\n Name: 'address-type',\n Values: ['EIP'],\n });\n return params;\n }, // 设置一些请求参数的 默认值\n },\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('eip')\n );\n }\n\n // async getInstances(region, params = {}) {\n // const rawSet = await super.getInstances(region, params);\n // /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含eip的指标 */\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n\n // async getVariableInstances(region, query = {}) {\n // const rawSet = await super.getVariableInstances(region, query);\n // return rawSet.filter((item) => item.AddressType === 'EIP');\n // }\n}\n","import _ from 'lodash';\nimport {\n LIGHTHOUSEInstanceAliasList,\n templateQueryIdMap,\n LighthouseInvalidDemensions,\n modifyDimensons,\n} from './query_def';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class LighthouseDatasource extends BaseDatasource {\n Namespace = 'QCE/LIGHTHOUSE';\n InstanceAliasList = LIGHTHOUSEInstanceAliasList;\n InvalidDimensions = LighthouseInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'lighthouse',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/api',\n data: { Product: 'lighthouse' },\n },\n 'api',\n { action: 'DescribeRegions' }\n ).then((response) => {\n return _.filter(\n _.map(response.RegionSet || [], (item) => {\n return {\n text: item.RegionName,\n value: item.Region,\n RegionState: item.RegionState,\n };\n }),\n (item) => item.RegionState === 'AVAILABLE'\n );\n });\n }\n\n getZones(region) {\n const serviceInfo = GetServiceAPIInfo(region, 'api');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: { Product: 'lighthouse' },\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(\n rawSet.map((item) => {\n return modifyDimensons(item);\n })\n );\n }\n}\n","import _ from 'lodash';\nimport {\n MONGODBInstanceAliasList,\n MONGODBInvalidDemensions,\n templateQueryIdMap,\n queryMonitorExtraConfg,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MONGODBDatasource extends BaseDatasource {\n Namespace = 'QCE/CMONGO';\n InstanceAliasList = MONGODBInstanceAliasList;\n ReplicaAliasList = ['ReplicaSetId', 'ReplicaSetName'];\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n\n InstanceReqConfig = {\n service: 'mongodb',\n action: 'DescribeDBInstances',\n responseField: 'InstanceDetails',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getInvalidDimensions(selfIns: any, target: any) {\n if (target.node && target.node !== '') {\n return { target: 'Node' };\n }\n if (target.replica && target.replica !== '') {\n return { target: 'Replica' };\n }\n return MONGODBInvalidDemensions;\n }\n formatVariableDisplay(data: Record, displayTpl: string | undefined, alias: string, aliasList: string[]) {\n if (displayTpl) {\n return displayTpl.replace(/\\$\\{(\\w+)\\}/g, (a, b) => {\n if (!b || !aliasList.includes(b)) {\n return '';\n }\n return this.getAliasValue(data, b);\n });\n }\n return this.getAliasValue(data, alias);\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const { display } = query;\n if (action === 'DescribeReplicas') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n let { replicaalias } = query;\n replicaalias = this.ReplicaAliasList.includes(replicaalias) ? replicaalias : this.templateQueryIdMap.replica;\n const result = _.map(_.get(res, 'ReplicaSets', []), (item) => {\n const replicaAlias = this.formatVariableDisplay(item, display, replicaalias, this.ReplicaAliasList);\n item._InstanceAliasValue = replicaAlias || item[this.templateQueryIdMap.replica];\n return { text: item.ReplicaSetId, value: item.ReplicaSetId };\n });\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Replica.dim_KeyInStorage,\n _.get(res, 'ReplicaSets', [])\n );\n return result;\n }\n if (action === 'DescribeReplicaNodes') {\n const [res] = await this.getInstances(region, { InstanceIds: [instance[this.templateQueryIdMap.instance]] });\n const { replicasetid } = query;\n const targetReplica = _.find(_.get(res, 'ReplicaSets', []), { ReplicaSetId: this.getVariable(replicasetid) });\n let result = _.times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return { text: nodeId, value: nodeId };\n });\n if (targetReplica) {\n result = [\n { text: `${targetReplica.ReplicaSetId}-node-primary`, value: `${targetReplica.ReplicaSetId}-node-primary` },\n ...result,\n ];\n }\n await instanceStorage.setExtraStorage(\n this.service,\n this.queryMonitorExtraConfg.Node.dim_KeyInStorage,\n result.map((item) => ({ NodeId: item.value, _InstanceAliasValue: item.value }))\n );\n return result;\n }\n\n return [];\n }\n}\n","import { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n InvalidDemensions,\n InstanceAliasList,\n templateQueryIdMap,\n keyInStorage,\n queryMonitorExtraConfg,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\n\nexport default class MrHdfsDatasource extends BaseDatasource {\n InvalidDimensions: Record = InvalidDemensions;\n InstanceAliasList: string[] = InstanceAliasList;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [];\n keyInStorage = keyInStorage;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n InstanceReqConfig = {\n service: 'emr',\n action: 'DescribeInstances',\n responseField: 'ClusterList',\n interceptor: {\n request: (params) => ({\n ...params,\n DisplayStrategy: params.DisplayStrategy || 'monitorManage',\n ProjectId: params.ProjectId || -1,\n }), // 设置一些请求参数的 默认值\n response: (data: any[]) => data.map(({ ClusterId, ClusterName }) => ({ ClusterId, ClusterName })),\n },\n };\n\n async fetchAllNodes(region: string, params: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'emr');\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeClusterNodes' }\n );\n },\n { ...params, isOffsetPage: true },\n 'NodeList'\n );\n\n // return rs[0].map((item) => ({ text: item.Ip, value: item.Ip }));\n return rs[0];\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n let result;\n switch (action) {\n case 'DescribeClusterNodes': {\n const resultT = await this.fetchAllNodes(region, { InstanceId: instance.ClusterId, NodeFlag: 'all' });\n result = resultT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return { text: item[templateQueryIdMap.node], value: item[templateQueryIdMap.node] };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.node, resultT);\n\n return result;\n }\n default:\n return [];\n }\n }\n}\n","import _ from 'lodash';\nimport { NATGATEWAYInstanceAliasList, NATInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class NATGATEWAYDatasource extends BaseDatasource {\n Namespace = 'QCE/NAT_GATEWAY';\n InstanceAliasList = NATGATEWAYInstanceAliasList;\n InvalidDimensions = NATInvalidDemensions;\n templateQueryIdMap = {\n instance: 'NatGatewayId',\n };\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNatGateways',\n responseField: 'NatGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport { OVCDNInstanceAliasList, OVCDNInvalidDemensions } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class OVCDNDatasource extends BaseDatasource {\n Namespace = 'QCE/OV_CDN';\n InstanceAliasList = OVCDNInstanceAliasList;\n InvalidDimensions = OVCDNInvalidDemensions;\n templateQueryIdMap = {\n instance: 'Domain',\n };\n InstanceReqConfig = {\n service: 'cdn',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import { PCXInstanceAliasList, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo, GetRequestParamsV2, SliceLength } from '../../common/constants';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = PCXInstanceAliasList;\n InvalidDimensions = {};\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'xx',\n action: 'xx',\n responseField: 'xx',\n };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getInstances(region = 'ap-guangzhou', params = {}) {\n params = { offset: 0, limit: 50, ...params };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n return response.data || [];\n });\n }\n\n /**\n * 模板变量中获取全量的 PCX 实例列表\n * @param region 地域信息\n */\n getVariableInstances(region, query) {\n let result: any[] = [];\n const params = { Offset: 0, Limit: 50, ...query };\n const serviceInfo = GetServiceAPIInfo(region, 'pcx');\n return this.doRequestV2(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcPeeringConnections' }\n ).then((response) => {\n result = response.data || [];\n const total = response.totalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 50);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getInstances(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n getVpcId(region, params: any = {}) {\n params = { Offset: 0, Limit: 20, ...params };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n return _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n });\n }\n\n getVpcIds(region) {\n let result: any[] = [];\n const params: any = { Offset: 0, Limit: 100 };\n // TODO 等待腾讯云接口查问题\n params.Offset = String(params.Offset);\n params.Limit = String(params.Limit);\n const serviceInfo = GetServiceAPIInfo(region, 'vpc');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'DescribeVpcs' }\n ).then((response) => {\n result = _.map(response.VpcSet || [], (item) => ({ text: item.VpcId, value: item.VpcId }));\n const total = response.TotalCount || 0;\n if (result.length >= total) {\n return result;\n } else {\n const param = SliceLength(total, 100);\n const promises: any[] = [];\n _.forEach(param, (item) => {\n promises.push(this.getVpcId(region, item));\n });\n return Promise.all(promises)\n .then((responses) => {\n _.forEach(responses, (item) => {\n result = _.concat(result, item);\n });\n return result;\n })\n .catch((error) => {\n return result;\n });\n }\n });\n }\n\n /**\n * 腾讯云 API 2.0 请求接口\n * @param options\n * @param service\n * @param signObj\n */\n async doRequestV2(options, service, signObj: any = {}) {\n options = await GetRequestParamsV2(\n options,\n service,\n signObj,\n this.secretId,\n this.instanceSettings.id,\n this.backendSrv\n );\n return this.backendSrv\n .datasourceRequest(options)\n .then((response) => {\n return _.get(response, 'data', {});\n })\n .catch((error) => {\n throw error;\n });\n }\n}\n","import _ from 'lodash';\nimport {\n POSTGRESInstanceAliasList,\n PostgreInvalidDemensions,\n namespace,\n modifyDimensons,\n templateQueryIdMap,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class CDBDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = POSTGRESInstanceAliasList;\n InvalidDimensions = PostgreInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'postgres',\n action: 'DescribeDBInstances',\n responseField: 'DBInstanceSet',\n };\n\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { get } from 'lodash';\nimport { QAAPInstanceAliasList, QAAPInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class QAAPDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = QAAPInstanceAliasList;\n InvalidDimensions = QAAPInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'gaap',\n action: 'DescribeProxies',\n responseField: 'ProxySet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n // MetricReqConfig = {\n // resultFilter: modifyDimensons,\n // };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n get(item, 'Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions.length') === 1 &&\n get(item, 'Dimensions[0].Dimensions[0]') === 'channelId'\n );\n }\n}\n","import _ from 'lodash';\nimport { REDISInstanceAliasList, RedisInvalidDemensions, isValidMetric } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = 'QCE/REDIS';\n InstanceAliasList = REDISInstanceAliasList;\n InvalidDimensions = RedisInvalidDemensions;\n templateQueryIdMap = {\n instance: 'InstanceId',\n };\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '1m' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => isValidMetric(item));\n }\n}\n","import _ from 'lodash';\nimport {\n REDISMEMInstanceAliasList,\n namespace,\n RedisMemInvalidDemensions,\n templateQueryIdMap,\n NodeType,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\n\nexport default class REDISDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = REDISMEMInstanceAliasList;\n InvalidDimensions = RedisMemInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n extrasAlias = [RedisMemInvalidDemensions.pnodeid, RedisMemInvalidDemensions.rnodeid];\n InstanceReqConfig = {\n service: 'redis',\n action: 'DescribeInstances',\n responseField: 'InstanceSet',\n interceptor: {\n request: (params) => ({ ...params, MonitorVersion: '5s' }),\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getInstanceNodeInfo(params: any) {\n const { region, instanceId } = params;\n const serviceInfo = GetServiceAPIInfo(region, 'redis');\n\n const res = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action: 'DescribeInstanceNodeInfo' }\n );\n },\n {\n InstanceId: instanceId,\n },\n NodeType\n );\n\n return res;\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n if (action === 'DescribeInstanceNodeInfo') {\n const rs = await this.getInstanceNodeInfo({ region, instanceId: instance[this.templateQueryIdMap.instance] });\n const { nodetype } = query;\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1\n ? []\n : _.map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n }\n return [];\n }\n}\n","import _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { BaseDatasource } from '../_base/datasource';\nimport {\n SCFInstanceAliasList,\n SCFInvalidDemensions,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n templateQueryIdMap,\n} from './query_def';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class SCFDatasource extends BaseDatasource {\n InstanceKey: string;\n Namespace: string;\n InstanceAliasList: string[];\n InvalidDimensions: Record;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n InstanceReqConfig: { service?: string | undefined; action: string; responseField: string };\n\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n\n this.Namespace = 'QCE/SCF_V2';\n this.InstanceAliasList = SCFInstanceAliasList;\n this.InvalidDimensions = SCFInvalidDemensions;\n this.InstanceReqConfig = {\n service: 'scf',\n action: 'ListFunctions',\n responseField: 'Functions',\n };\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter(\n (item) =>\n /* hack:这里多加了筛选条件,是因为后端数据不准确,坑啊! 只拿取包含functionName的指标 */\n item.Dimensions?.[0]?.Dimensions?.includes('functionName') &&\n item.Dimensions?.[0]?.Dimensions?.includes('namespace') &&\n !item.MetricName.startsWith('Name')\n );\n }\n\n getVersions(region, params) {\n const serviceInfo = GetServiceAPIInfo(region, 'scf');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: params,\n },\n serviceInfo.service,\n { region, action: 'ListVersionByFunction' }\n ).then((response) => {\n return response.Versions;\n });\n }\n\n async fetchMetricData(action: string, region: string, instance: any) {\n // console.log({ action, region, instance });\n if (action === 'ListVersionByFunction') {\n const rs = await this.getVersions(region, { FunctionName: instance[this.templateQueryIdMap.instance] });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap.version];\n return {\n text: o[this.templateQueryIdMap.version],\n value: o[this.templateQueryIdMap.version],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage.version, rs);\n return result;\n }\n return [];\n }\n}\n","import {\n SQLSERVERInstanceAliasList,\n SQLSERVERInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = SQLSERVERInstanceAliasList;\n InvalidDimensions = SQLSERVERInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'sqlserver',\n action: 'DescribeDBInstances',\n responseField: 'DBInstances',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n getFilterDropdown({ field, region }) {\n if (field === 'Zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import { TCAPLUSInstanceAliasList, TCAPLUSInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TCAPLUSInstanceAliasList;\n InvalidDimensions = TCAPLUSInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tcaplusdb',\n action: 'DescribeTables',\n responseField: 'TableInfos',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // 重写getRegion\n getRegions() {\n return this.doRequest(\n {\n url: this.url + '/tcaplusdb',\n },\n 'tcaplusdb',\n { action: 'DescribeRegions', region: 'ap-guangzhou' }\n ).then((response) => {\n return _.map(response.RegionInfos || [], (item) => {\n return {\n text: t(item.RegionName),\n value: item.RegionName,\n };\n });\n });\n }\n}\n","import {\n TDMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n modifyDimensons,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeClusters',\n responseField: 'ClusterSet',\n };\n extraActionMap = {\n DescribeTopics: {\n service: 'tdmq',\n action: 'DescribeTopics',\n responseField: 'TopicSets',\n pickKey: 'TopicName',\n },\n DescribeEnvironments: {\n service: 'tdmq',\n action: 'DescribeEnvironments',\n responseField: 'EnvironmentSet',\n pickKey: 'EnvironmentId',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n // getFilterDropdown({ field }) {\n // return super.getRegions();\n // }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return _.compact(rawSet.map((item) => modifyDimensons(item)));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n // console.log({ rs });\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeTopics') {\n payload.EnvironmentId = this.getVariable(query['environmentid']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import {\n TDMQRABBITMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQRABBITMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRabbitMQVipInstances',\n responseField: 'Instances',\n };\n extraActionMap = {\n DescribeRabbitMQNodeList: {\n service: 'tdmq',\n action: 'DescribeRabbitMQNodeList',\n responseField: 'NodeList',\n pickKey: 'node',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n InstanceId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import {\n TDMQROCKETMQInstanceAliasList,\n TDMQInvalidDemensions,\n namespace,\n templateQueryIdMap,\n regionSupported,\n queryMonitorExtraConfg,\n keyInStorage,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { fetchAllFactory } from '../../common/utils';\nimport instanceStorage from '../../common/datasourceStorage';\nimport { t } from '../../../locale';\n\nexport default class TDMQDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = TDMQROCKETMQInstanceAliasList;\n InvalidDimensions = TDMQInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n queryMonitorExtraConfg = queryMonitorExtraConfg;\n keyInStorage = keyInStorage;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'tdmq',\n action: 'DescribeRocketMQClusters',\n responseField: 'ClusterList',\n interceptor: {\n response: (result) =>\n _.map(result, (item) => ({\n ...item,\n ClusterId: _.get(item, 'Info.ClusterId', ''),\n ClusterName: _.get(item, 'Info.ClusterName', ''),\n })),\n },\n };\n extraActionMap = {\n DescribeRocketMQNamespaces: {\n service: 'tdmq',\n action: 'DescribeRocketMQNamespaces',\n responseField: 'Namespaces',\n pickKey: 'namespace',\n },\n DescribeRocketMQGroups: {\n service: 'tdmq',\n action: 'DescribeRocketMQGroups',\n responseField: 'Groups',\n pickKey: 'group',\n },\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await super.getMetrics(region);\n return rawSet.filter((item) => !item.Dimensions?.[0]?.Dimensions?.includes('rmqcluster'));\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n\n async getConsumerList(params: any) {\n const { region, action: act, payload } = params;\n const { service, action, responseField } = this.extraActionMap[act];\n\n const serviceInfo = GetServiceAPIInfo(region, service);\n\n // 从分页数据,获取全量数据\n const rs = await fetchAllFactory(\n (data) => {\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data,\n },\n serviceInfo.service,\n { region, action }\n );\n },\n payload,\n responseField\n );\n return rs[0];\n }\n async fetchMetricData(action: string, region: string, instance: any, query: any) {\n const payload: any = {\n Limit: 100,\n ClusterId: instance[this.templateQueryIdMap.instance],\n };\n if (Object.keys(this.extraActionMap).indexOf(action) !== -1) {\n if (action === 'DescribeRocketMQGroups') {\n payload.NamespaceId = this.getVariable(query['clusternamespace']);\n }\n const rs = await this.getConsumerList({ region, action, payload });\n const { pickKey } = this.extraActionMap[action];\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[this.templateQueryIdMap[pickKey]];\n return {\n text: o[this.templateQueryIdMap[pickKey]],\n value: o[this.templateQueryIdMap[pickKey]],\n };\n });\n await instanceStorage.setExtraStorage(this.service, this.keyInStorage[pickKey], rs);\n return result;\n }\n return [];\n }\n}\n","import { map, flatten, reduce, isEmpty, filter, split, sortBy, findIndex, trim, isArray, isString } from 'lodash';\nimport { GetServiceAPIInfo, ReplaceVariable } from '../../common/constants';\nimport { getTimeShiftInMs } from '../../common/utils';\nimport { BaseDatasource } from '../_base/datasource';\n\nconst variableToArray = (variable) => {\n if (isEmpty(variable)) {\n return [];\n }\n if (isArray(variable)) {\n return variable;\n }\n if (isString(variable)) {\n return split(variable, ',').map((item) => trim(item));\n }\n return [];\n};\n\nexport default class TKEDatasource extends BaseDatasource {\n InstanceAliasList = ['ClusterId', 'ClusterName'];\n templateQueryIdMap = {\n instance: 'ClusterId',\n };\n InvalidDimensions = {\n tke_cluster_instance_id: 'ClusterId',\n };\n InstanceReqConfig = {\n service: 'tke',\n action: 'DescribeClusters',\n responseField: 'Clusters',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getMonitorData(params: any, region: any, instances: any, target: any, options: any) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const timeshift = getTimeShiftInMs(target.timeshift);\n const conditions = reduce(\n target.conditions,\n (prev, item) => {\n if (isEmpty(item.Key) || isEmpty(item.Operator) || isEmpty(item.Value)) {\n return prev;\n }\n return [\n ...filter(prev, (e) => e.Key !== item.Key),\n {\n Key: ReplaceVariable(this.templateSrv, options.scopedVars, item.Key, false),\n Operator: ReplaceVariable(this.templateSrv, options.scopedVars, item.Operator, false),\n Value: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, item.Value, true)),\n },\n ];\n },\n [{ Key: 'tke_cluster_instance_id', Operator: '=', Value: instances.map((item) => item['ClusterId']) }]\n );\n\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Period: params.Period,\n MetricNames: [params.MetricName],\n Module: 'monitor',\n Namespace: 'QCE/TKE',\n EndTime: params.EndTime,\n StartTime: params.StartTime,\n Conditions: conditions,\n GroupBys: variableToArray(ReplaceVariable(this.templateSrv, options.scopedVars, target.groupBys, true)),\n },\n },\n serviceInfo.service,\n { action: 'DescribeStatisticData', region }\n ).then((response) => {\n return flatten(\n map(response.Data, (data) => {\n return map(data.Points, (point) => {\n const dimensionSort = sortBy(point.Dimensions, ['Name']);\n const dimensionString = [\n ...dimensionSort.splice(findIndex(dimensionSort, { Name: 'tke_cluster_instance_id' }), 1),\n ...dimensionSort,\n ]\n .map((dimension) => dimension.Value)\n .join(' - ');\n const timeshiftString = timeshift > 0 ? `_${target.timeshift}` : '';\n return {\n target: `${data.MetricName} - ${dimensionString}${timeshiftString}`,\n datapoints: map(point.Values, (value) => [value.Value, value.Timestamp * 1000 + timeshift]),\n };\n });\n })\n );\n });\n }\n}\n","import _ from 'lodash';\nimport { TSFInvalidDemensions, TSFInstanceAliasList, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class TSFDatasource extends BaseDatasource {\n Namespace = 'QCE/TSF';\n InstanceAliasList = TSFInstanceAliasList;\n InvalidDimensions = TSFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n service: 'tsf',\n action: 'DescribeApplications',\n responseField: 'Content',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import {\n VCLBInstanceAliasList,\n VCLBInvalidDemensions,\n namespace,\n templateQueryIdMap,\n clbNamespaceMap,\n regionSupported,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport { t } from '../../../locale';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VCLBInstanceAliasList;\n InvalidDimensions = VCLBInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'clb',\n action: 'DescribeLoadBalancers',\n responseField: 'LoadBalancerSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async getAllMetrics(region: string) {\n const serviceInfo = GetServiceAPIInfo(region, 'monitor');\n const { MetricSet: public_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.public,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const { MetricSet: private_metrics } = await this.doRequest(\n {\n url: this.url + serviceInfo.path,\n data: {\n Namespace: clbNamespaceMap.private,\n },\n },\n serviceInfo.service,\n { region, action: 'DescribeBaseMetrics' }\n );\n const res = Object.values(_.keyBy(_.concat(private_metrics, public_metrics), 'MetricName'));\n return res.map((t) => modifyDimensons(t));\n }\n async getMetrics(region = 'ap-guangzhou') {\n const rawSet = await this.getAllMetrics(region);\n return _.compact(rawSet);\n }\n}\n","import { VBCInstanceAliasList, VBCInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VBCInstanceAliasList;\n InvalidDimensions = VBCInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeCcns',\n responseField: 'CcnSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getFilterDropdown({ field }) {\n return super.getRegions();\n }\n}\n","import {\n VPCNETDETECTInstanceAliasList,\n VPCNETInvalidDemensions,\n namespace,\n templateQueryIdMap,\n modifyDimensons,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPCNETDETECTInstanceAliasList;\n InvalidDimensions = VPCNETInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeNetDetects',\n responseField: 'NetDetectSet',\n interceptor: {\n // response: (data: unknown[]) =>[\n // {\n // \"NetDetectId\": \"netd-12345678\",\n // },\n // ],\n },\n };\n MetricReqConfig = {\n resultFilter: modifyDimensons,\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import { VPNGWInstanceAliasList, VPNGWInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { GetServiceAPIInfo } from '../../common/constants';\nimport _ from 'lodash';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNGWInstanceAliasList;\n InvalidDimensions = VPNGWInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnGateways',\n responseField: 'VpnGatewaySet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n\n getFilterDropdown({ field, region }) {\n if (field === 'zone') {\n const serviceInfo = GetServiceAPIInfo(region, 'cvm');\n return this.doRequest(\n {\n url: this.url + serviceInfo.path,\n },\n serviceInfo.service,\n { region, action: 'DescribeZones' }\n ).then((response) => {\n return _.filter(\n _.map(response.ZoneSet || [], (item) => {\n return { text: item.ZoneName, value: item.Zone, ZoneState: item.ZoneState, Zone: item.Zone };\n }),\n (item) => item.ZoneState === 'AVAILABLE'\n );\n });\n }\n return [];\n }\n}\n","import { VPNXInstanceAliasList, VPNXInvalidDemensions, namespace, templateQueryIdMap } from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\n\nexport default class DCDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = VPNXInstanceAliasList;\n InvalidDimensions = VPNXInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n // 此处service是接口的配置参数,需和plugin.json里一致,和constant.ts中SERVICES_API_INFO保持一致\n InstanceReqConfig = {\n service: 'vpc',\n action: 'DescribeVpnConnections',\n responseField: 'VpnConnectionSet',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n}\n","import _ from 'lodash';\nimport {\n WAFInstanceAliasList,\n WAFInvalidDemensions,\n templateQueryIdMap,\n namespace,\n regionSupported,\n} from './query_def';\nimport { BaseDatasource } from '../_base/datasource';\nimport { t } from '../../../locale';\n\nexport default class CDNDatasource extends BaseDatasource {\n Namespace = namespace;\n InstanceAliasList = WAFInstanceAliasList;\n InvalidDimensions = WAFInvalidDemensions;\n templateQueryIdMap = templateQueryIdMap;\n InstanceReqConfig = {\n // service: 'waf',\n action: 'DescribeDomains',\n responseField: 'Domains',\n };\n constructor(instanceSettings, backendSrv, templateSrv) {\n super(instanceSettings, backendSrv, templateSrv);\n }\n getRegions() {\n return Promise.resolve(regionSupported.map(({ value }) => ({ value, text: t(value) })));\n }\n async metricFindQuery(query: any, regex?: string) {\n return super.metricFindQuery({ ...query, ...{ region: 'ap-guangzhou' } }, regex);\n }\n}\n","import coreModule from 'grafana/app/core/core_module';\nimport { APIGATEWAYFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.APIGATEWAYFilterFieldsDescriptor = APIGATEWAYFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n\n const result = rs.map((o) => {\n return {\n text: o.EnvironmentName,\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { BWPFilterFieldsDescriptor } from './query_def';\n\nexport class BWPQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.BWPFilterFieldsDescriptor = BWPFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function bwpQuery() {\n return {\n template: template,\n controller: BWPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('bwpQuery', bwpQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDBFieldsDescriptor } from './query_def';\n\nexport class CDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDBFieldsDescriptor = CDBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'ZoneIds':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cdb', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function cdbQuery() {\n return {\n template: template,\n controller: CDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdbQuery', cdbQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNFilterFieldsDescriptor } from './query_def';\n\nexport class CDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNFilterFieldsDescriptor = CDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function cdnQuery() {\n return {\n template: template,\n controller: CDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cdnQuery', cdnQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CDNPROVINCEFilterFieldsDescriptor, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Isp',\n field: 'isp',\n },\n {\n label: 'Province',\n field: 'district',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CDNPROVINCEFilterFieldsDescriptor = CDNPROVINCEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, field });\n return rs;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CFSQueryDescriptor } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CFSQueryDescriptor = CFSQueryDescriptor;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n const { instance, region } = target;\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n if (!instance || !region) return [];\n\n return fetcher(region, { FunctionName: JSON.parse(instance).FunctionName }).then((res) => {\n // console.log(res, 'res');\n\n return res;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\ncoreModule.directive('cfsQuery', scfQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CKAFKAQueryDescriptor, templateQueryIdMap } from './query_def';\nimport { isTargetEqual } from '../../common/utils';\n\nconst ExtraFields = [\n {\n label: 'ConsumerGroup',\n field: 'consumerGroup',\n },\n {\n label: 'TopicId',\n field: 'topicId',\n },\n {\n label: 'Partition',\n field: 'partition',\n },\n];\n\nexport class CKAFKAQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CKAFKAQueryDescriptor = CKAFKAQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'LoadBalancerId')) return;\n $scope.target.consumerGroup = '';\n $scope.target.topicId = '';\n $scope.target.topicName = '';\n $scope.target.partition = '';\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('ckafka', 'getVariable')(instance);\n if (Array.isArray(instance)) instance = instance[0];\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).InstanceId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n const InstanceId = $scope.getInstanceId();\n const fetcher = $scope.datasource.getServiceFn('ckafka', 'getConsumerGroups');\n const region = $scope.datasource.getServiceFn('ckafka', 'getVariable')(target.region);\n const res = await fetcher(region, { InstanceId, groupname: target.consumerGroup, topicid: target.topicId });\n\n const { TopicList, GroupList, PartitionList } = res;\n const data = {\n GroupList: GroupList.map((group) => {\n group._InstanceAliasValue = group.GroupName;\n return {\n text: group.GroupName,\n value: JSON.stringify(group),\n };\n }),\n TopicList: TopicList.map((topic) => {\n topic._InstanceAliasValue = topic[templateQueryIdMap.topicId];\n return {\n text: topic[templateQueryIdMap.topicId],\n value: JSON.stringify(topic), // 为了获取多维度的值,这里完全可以使用JSON.stringify()将整个对象放进去\n };\n }),\n PartitionList: PartitionList.map((par) => {\n par._InstanceAliasValue = par[templateQueryIdMap.partition];\n return {\n text: String(par[templateQueryIdMap.partition]),\n value: JSON.stringify(par),\n };\n }),\n };\n\n switch (field) {\n case 'consumerGroup':\n return data.GroupList;\n case 'topicId':\n return data.TopicList;\n case 'partition':\n return data.PartitionList;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CKAFKAQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n instance: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('ckafkaQuery', scfQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { get, chain } from 'lodash';\nimport { LOADBALANCEFieldsDescriptor, templateQueryIdMap, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\nimport { isTargetEqual } from '../../common/utils';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LOADBALANCEFieldsDescriptor = LOADBALANCEFieldsDescriptor;\n $scope.serversList = [];\n };\n $scope.onFieldChange = (field) => {\n $scope.onRefresh();\n };\n $scope.onInstanceChange = (n, o) => {\n if (isTargetEqual(n, o, 'InstanceId')) return;\n $scope.target.listener = '';\n $scope.target.servers = '';\n $scope.target.serverPort = '';\n };\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n $scope.getExtraDropdown = async (target) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getListenerList')({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.listener];\n return {\n text: o[templateQueryIdMap.listener],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n $scope.getServersDropdown = async (target) => {\n const { instance, listener } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const listenerId = $scope.getVariableId(listener, 'listener');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const serversList = await $scope.datasource.getServiceFn(\n service,\n 'getServerList'\n )({ region, instanceId, listenerId });\n $scope.serversList = serversList;\n const res = chain(serversList)\n .map((item) => {\n item._InstanceAliasValue = get(item, 'PrivateIpAddresses.0');\n return {\n text: get(item, 'PrivateIpAddresses.0'),\n value: JSON.stringify(item),\n };\n })\n .uniqBy('text')\n .value();\n return res;\n };\n $scope.getServerPortDropdown = async (target) => {\n const { servers } = $scope.target;\n let serverPortList: any[] = [];\n try {\n const serversSource = JSON.parse(servers);\n serverPortList = chain($scope.serversList)\n .filter((item) => get(serversSource, 'PrivateIpAddresses.0') === get(item, 'PrivateIpAddresses.0'))\n .map((item) => {\n item._InstanceAliasValue = get(item, 'Port');\n return {\n text: `${get(item, 'Port')}`,\n value: JSON.stringify(item),\n };\n })\n .value();\n } catch (error) {}\n return serverPortList;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n\n\n\n\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n namespace: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\ncoreModule.directive('clbQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CLSFilterFieldsDescriptor, queryEditorName } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = CLSFilterFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import createQuery from '../_base/query';\nimport { InstanceQueryDescriptor } from './query_def';\n\ncreateQuery('cmqQuery', {\n fieldDescriptor: InstanceQueryDescriptor,\n instanceDocUrl: 'https://cloud.tencent.com/document/api/406/42624',\n namespace: 'QCE/CMQ',\n});\n","import coreModule from 'grafana/app/core/core_module';\nimport { InstanceQueryDescriptor } from './query_def';\n\nconst ExtraFields = [\n {\n label: 'Subscription(订阅)',\n field: 'subscriptionId',\n },\n];\n\nexport class CmqTopicQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getTopicName = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).TopicName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'subscriptionId') {\n const TopicName = $scope.getTopicName();\n let data = $scope.cacheMap[TopicName];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('cmqTopic', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('cmqTopic', 'fetchAllSubscription');\n const datas = await fetcher(region, { TopicName });\n data = datas.map((item) => {\n item._InstanceAliasValue = item.SubscriptionId;\n return { text: item.SubscriptionId, value: JSON.stringify(item) };\n });\n }\n\n // 缓存\n $scope.cacheMap[TopicName] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: CmqTopicQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('cmqTopicQuery', scfQuery);\n","import _ from 'lodash';\n\nfunction GetInstanceQueryParams(queries: any = {}) {\n const params: any = {};\n if (!_.isEmpty(queries)) {\n params.Limit = _.get(queries, 'Limit', 20) || 20;\n params.Offset = _.get(queries, 'Offset', 0) || 0;\n queries = _.omit(queries, ['Offset', 'Limit']);\n _.forEach(queries, (item: any, key) => {\n if (_.isArray(item)) {\n item = _.compact(item);\n if (item.length > 0) {\n params[key] = _.uniq(item);\n }\n } else if (_.isObject(item)) {\n if (_.isNumber(_.get(item, 'value', undefined)) || !_.isEmpty(_.get(item, 'value', undefined))) {\n params[key] = _.get(item, 'value');\n }\n } else if (_.isNumber(item) || !_.isEmpty(item)) {\n params[key] = item;\n }\n });\n }\n return params;\n}\n\n// 与名称挂钩的变量\nconst InstanceAliasList = ['BucketName'];\nexport { InstanceAliasList, GetInstanceQueryParams };\n\n// 界面状态模型,default\nexport default {\n region: '',\n metricName: '',\n metricUnit: '',\n period: undefined,\n dimensionObject: null,\n instance: '',\n instanceAlias: 'BucketName',\n queries: {},\n};\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { CVMFilterFieldsDescriptor } from './query_def';\n\nexport class CVMQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.CVMFilterFieldsDescriptor = CVMFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function cvmQuery() {\n return {\n template: template,\n controller: CVMQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('cvmQuery', cvmQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { DCDBFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'nodeid',\n field: 'NodeId',\n action: 'DescribeDCDBInstanceNodeInfo',\n },\n {\n label: 'shardid',\n field: 'ShardId',\n action: 'DescribeDCDBShards',\n },\n];\nconst dropdownTextConfig = {\n DescribeDCDBInstanceNodeInfo: 'NodeId',\n DescribeDCDBShards: 'ShardInstanceId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.DCDBFilterFieldsDescriptor = DCDBFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const instanceId = $scope.getInstanceId();\n const payload: any = {\n InstanceId: instanceId,\n Limit: 100,\n };\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { ECMBLOCKSTORAGEFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n // {\n // label: 'nodeid',\n // field: 'NodeId',\n // action: 'DescribeInstanceNodeInfo',\n // },\n {\n label: 'diskId',\n field: 'diskId',\n },\n];\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.ECMBLOCKSTORAGEFilterFieldsDescriptor = ECMBLOCKSTORAGEFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n // $scope.getInstanceId = () => {\n // let { instance } = $scope.target;\n // const service = GetServiceFromNamespace($scope.namespace);\n // instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n // if (!instance) {\n // return '';\n // }\n // try {\n // instance = JSON.parse(instance)[templateQueryIdMap.instance];\n // } catch (error) {\n // console.log();\n // }\n // return instance;\n // };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = (target, action) => {\n let { instance } = target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n try {\n instance = JSON.parse(instance);\n const { DataDisks: dataDisks } = instance;\n return dataDisks.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.diskId];\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n } catch (error) {\n // console.log('instance error', instance);\n const payload: any = {\n InstanceId: instance,\n };\n const rs = $scope.datasource.getServiceFn(service, 'getDiskList')({ payload });\n const result = rs.map((o) => {\n return {\n text: o[templateQueryIdMap.diskId],\n value: JSON.stringify(o),\n };\n });\n return result;\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { GSEFilterFieldsDescriptor, templateQueryIdMap, queryEditorName, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'fleetId',\n field: 'FleetId',\n },\n {\n label: 'queueName',\n field: 'Name',\n },\n];\nconst actionMaps = {\n FleetId: 'getFleetList',\n Name: 'getQueueNameList',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.GSEFilterFieldsDescriptor = GSEFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n // console.log({namespace, service});\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraDropdown = async (target, field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const instanceId = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n // const rs = await $scope.datasource.getServiceFn(service, 'getEnvironmentNameList')({ region, instanceId });\n let rs = await $scope.datasource.getServiceFn(service, actionMaps[field])({ region, instanceId });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[field]];\n return {\n text: o[templateQueryIdMap[field]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { LBFilterDescriptor } from './query_def';\n\nexport class LBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n // $scope.LBQueryDescriptor = LBQueryDescriptor;\n $scope.LBFilterDescriptor = LBFilterDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('cvm', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function lbQuery() {\n return {\n template: template,\n controller: LBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lbQuery', lbQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { LighthouseFilterFieldsDescriptor } from './query_def';\n\nexport class LighthouseQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.LighthouseFilterFieldsDescriptor = LighthouseFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'zone':\n return $scope.getZones();\n default:\n return [];\n }\n };\n\n $scope.getZones = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getZones('lighthouse', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function lighthouseQuery() {\n return {\n template: template,\n controller: LighthouseQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('lighthouseQuery', lighthouseQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { map, get, find, times } from 'lodash';\nimport { MONGODBFieldsDescriptor, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class MongoDBQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.MONGODBFieldsDescriptor = MONGODBFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.onInstanceChange = (n, o) => {\n if (n === o) {\n return;\n }\n $scope.target.replica = '';\n $scope.target.node = '';\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {\n // console.log();\n }\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, type) => {\n const { instance, replica } = $scope.target;\n const service = GetServiceFromNamespace('QCE/CMONGO');\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const [res] = await $scope.datasource.getServiceFn(service, 'getInstances')(region, {\n InstanceIds: [instanceId],\n });\n if (type === 'replica') {\n return map(get(res, 'ReplicaSets', []), (item) => {\n item._InstanceAliasValue = item.ReplicaSetId;\n return { text: item.ReplicaSetId, value: JSON.stringify(item) };\n });\n }\n if (type === 'node' && replica !== '') {\n const replicaId = $scope.getVariableId(replica, 'replica');\n const targetReplica = find(get(res, 'ReplicaSets', []), { ReplicaSetId: replicaId });\n const options = times(targetReplica.SecondaryNum, (index) => {\n const nodeId = `${targetReplica.ReplicaSetId}-node-slave${index}`;\n return {\n text: nodeId,\n value: JSON.stringify({ NodeId: nodeId, _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${nodeId}` }),\n };\n });\n return [\n {\n text: `${targetReplica.ReplicaSetId}-node-primary`,\n value: JSON.stringify({\n NodeId: `${targetReplica.ReplicaSetId}-node-primary`,\n _InstanceAliasValue: `${targetReplica.ReplicaSetId} - ${`${targetReplica.ReplicaSetId}-node-primary`}`,\n }),\n },\n ...options,\n ];\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n\n\n\n\n`;\n\nexport function mongodbQuery() {\n return {\n template: template,\n controller: MongoDBQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onRefresh: '&',\n onChange: '&',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', (newValue, oldValue) => {\n scope.onInstanceChange?.(newValue, oldValue);\n });\n },\n };\n}\n\ncoreModule.directive('mongodbQuery', mongodbQuery);\n","import { InstanceQueryDescriptor, templateQueryIdMap } from './query_def';\nimport coreModule from 'grafana/app/core/core_module';\n\nconst ExtraFields = [\n {\n label: 'NodeIP',\n field: 'nodeIP',\n },\n];\n\nexport class MrQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.InstanceQueryDescriptor = InstanceQueryDescriptor;\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n // 各个实例下的订阅,由于不想每次都重复发请求,所以这里做了一层缓存,数据结构为{ [instanceId]: { } }\n $scope.cacheMap = {};\n\n $scope.getExtraFields = () => {\n return Object.keys($scope.dims ?? {}).some((item: string) => item.startsWith('host4')) ? ExtraFields : [];\n // return ExtraFields;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).ClusterId;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.onExtraFieldChange = (field) => {\n $scope.onRefresh();\n };\n\n $scope.getExtraDropdown = async (target, field) => {\n if (field === 'nodeIP') {\n const InstanceId = $scope.getInstanceId();\n let data = $scope.cacheMap[InstanceId];\n\n if (!data) {\n const region = $scope.datasource.getServiceFn('mrHDFS', 'getVariable')(target.region);\n const fetcher = $scope.datasource.getServiceFn('mrHDFS', 'fetchAllNodes');\n const dataT = await fetcher(region, { InstanceId, NodeFlag: 'all' });\n data = dataT.map((item) => {\n item._InstanceAliasValue = item[templateQueryIdMap.node];\n return {\n text: item[templateQueryIdMap.node],\n value: JSON.stringify(item),\n };\n });\n }\n\n // 缓存\n $scope.cacheMap[InstanceId] = data;\n return data;\n }\n return [];\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function mrQuery() {\n return {\n template: template,\n controller: MrQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('mrQuery', mrQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { NATGatewayFilterFieldsDescriptor } from './query_def';\n\nexport class NatGatewayQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.NATGatewayFilterFieldsDescriptor = NATGatewayFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function natGatewayQuery() {\n return {\n template: template,\n controller: NatGatewayQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('natGatewayQuery', natGatewayQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { OVCDNFilterFieldsDescriptor } from './query_def';\n\nexport class OVCDNQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.OVCDNFilterFieldsDescriptor = OVCDNFilterFieldsDescriptor;\n };\n\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function ovCdnQuery() {\n return {\n template: template,\n controller: OVCDNQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('ovCdnQuery', ovCdnQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { PCXFieldsDescriptor } from './query_def';\n\nexport class PCXQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.PCXFieldsDescriptor = PCXFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n case 'vpcId':\n return $scope.getVpcIds();\n default:\n return [];\n }\n };\n\n $scope.getVpcIds = () => {\n if (!$scope.region) {\n return [];\n }\n return $scope.datasource.getVpcIds('pcx', $scope.region);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function pcxQuery() {\n return {\n template: template,\n controller: PCXQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('pcxQuery', pcxQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { RedisFieldsDescriptor } from './query_def';\n\nexport class RedisQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisFieldsDescriptor = RedisFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function redisQuery() {\n return {\n template: template,\n controller: RedisQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('redisQuery', redisQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { map } from 'lodash';\nimport { RedisMemFieldsDescriptor, templateQueryIdMap, NodeType, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nexport class RedisMemQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.RedisMemFieldsDescriptor = RedisMemFieldsDescriptor;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.rnodeid = '';\n $scope.target.pnodeid = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getDropdown = (field) => {\n switch (field) {\n default:\n return [];\n }\n };\n\n $scope.getVariableId = (data, type) => {\n let variableData = data;\n const service = GetServiceFromNamespace(namespace);\n\n variableData = $scope.datasource.getServiceFn(service, 'getVariable')(variableData);\n if (!variableData) {\n return '';\n }\n try {\n variableData = JSON.parse(variableData)[templateQueryIdMap[type]];\n } catch (error) {}\n return variableData;\n };\n\n $scope.getExtraDropdown = async (target, nodetype) => {\n const { instance } = $scope.target;\n const service = GetServiceFromNamespace(namespace);\n const instanceId = $scope.getVariableId(instance, 'instance');\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const rs = await $scope.datasource.getServiceFn(service, 'getInstanceNodeInfo')({ region, instanceId });\n\n const ndoeTypeIndex = NodeType.indexOf(nodetype);\n return ndoeTypeIndex === -1 ? [] : map(rs[ndoeTypeIndex], (item) => ({ text: item.NodeId, value: item.NodeId }));\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n\n\n\n`;\n\nexport function redisMemQuery() {\n return {\n template: template,\n controller: RedisMemQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\n\ncoreModule.directive('redisMemQuery', redisMemQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { SCFQueryDescriptor, templateQueryIdMap } from './query_def';\n\nexport class SCFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.SCFQueryDescriptor = SCFQueryDescriptor;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n instance = $scope.datasource.getServiceFn('scf', 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance).FunctionName;\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n\n $scope.getVersions = async (target) => {\n // console.log(2222);\n\n // return [{ text: 1, value: 1 }];\n // console.log(target, 'target');\n // let { instance, region } = target;\n const FunctionName = $scope.getInstanceId();\n const region = $scope.datasource.getServiceFn('scf', 'getVariable')(target.region);\n if (!FunctionName || !region) return [];\n\n const fetcher = $scope.datasource.getServiceFn('scf', 'getVersions');\n\n return fetcher(region, { FunctionName }).then((res) => {\n // console.log(res, 'res');\n const result = res.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap.version];\n return {\n text: o[templateQueryIdMap.version],\n value: JSON.stringify(o),\n };\n });\n return result;\n });\n };\n // $scope.onChecked = (srcField, dstField) => {\n // if ($scope.target.queries[srcField] === true) {\n // $scope.target.queries[dstField] = false;\n // }\n // $scope.onChange();\n // };\n\n // $scope.getDropdown = (field) => {\n // switch (field) {\n // case 'zone':\n // return $scope.getZones();\n // default:\n // return [];\n // }\n // };\n\n // $scope.getZones = () => {\n // if (!$scope.region) {\n // return [];\n // }\n // return $scope.datasource.getZones('cvm', $scope.region);\n // };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: SCFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n },\n };\n}\ncoreModule.directive('scfQuery', scfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, queryEditorName, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'environmentId',\n field: 'environmentId',\n action: 'DescribeEnvironments',\n },\n {\n label: 'topicName',\n field: 'topicName',\n action: 'DescribeTopics',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeTopics: 'topicName',\n DescribeEnvironments: 'environmentId',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeTopics') {\n let evId = $scope.target.environmentId;\n try {\n evId = JSON.parse(evId);\n evId = evId[templateQueryIdMap.environmentId];\n } catch (e) {}\n payload.EnvironmentId = evId;\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive(queryEditorName, sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Node',\n field: 'node',\n action: 'DescribeRabbitMQNodeList',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRabbitMQNodeList: 'node',\n};\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.node = '';\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n InstanceId: $scope.getInstanceId(),\n };\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n label: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRabbitmqQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TDMQFilterFieldsDescriptor, namespace, templateQueryIdMap } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields = [\n {\n label: 'Namespace',\n field: 'namespace',\n action: 'DescribeRocketMQNamespaces',\n },\n {\n label: 'Group',\n field: 'group',\n action: 'DescribeRocketMQGroups',\n },\n];\n\nconst dropdownTextConfig = {\n DescribeRocketMQNamespaces: 'namespace',\n DescribeRocketMQGroups: 'group',\n};\nexport class TdmqRocketmqQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TDMQFilterFieldsDescriptor = TDMQFilterFieldsDescriptor;\n $scope.ExtraFields = ExtraFields;\n $scope.namespace = namespace;\n };\n\n $scope.clearExtrasAlias = () => {\n $scope.target.namespace = '';\n $scope.target.group = '';\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.getInstanceId = () => {\n let { instance } = $scope.target;\n const service = GetServiceFromNamespace($scope.namespace);\n instance = $scope.datasource.getServiceFn(service, 'getVariable')(instance);\n if (!instance) {\n return '';\n }\n try {\n instance = JSON.parse(instance)[templateQueryIdMap.instance];\n } catch (error) {\n // console.log();\n }\n return instance;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}) || item.label in ($scope.dims ?? {}));\n };\n $scope.getExtraDropdown = async (target, action) => {\n const service = GetServiceFromNamespace($scope.namespace);\n const region = $scope.datasource.getServiceFn(service, 'getVariable')(target.region);\n const payload: any = {\n Limit: 100,\n ClusterId: $scope.getInstanceId(),\n };\n if (action === 'DescribeRocketMQGroups') {\n let namespace = $scope.target.namespace;\n try {\n namespace = JSON.parse(namespace)[templateQueryIdMap.namespace];\n } catch (e) {}\n payload.NamespaceId = $scope.datasource.getServiceFn(service, 'getVariable')(namespace);\n }\n\n const rs = await $scope.datasource.getServiceFn(service, 'getConsumerList')({ region, action, payload });\n const result = rs.map((o) => {\n o._InstanceAliasValue = o[templateQueryIdMap[dropdownTextConfig[action]]];\n return {\n text: o[templateQueryIdMap[dropdownTextConfig[action]]],\n value: JSON.stringify(o),\n };\n });\n return result;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function tdmqRocketmqQuery() {\n return {\n template: template,\n controller: TdmqRocketmqQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n link: (scope, element, attrs) => {\n scope.$watch('target.instance', () => {\n scope.clearExtrasAlias?.();\n });\n scope.$watch('target.metricName', () => {\n scope.clearExtrasAlias?.();\n });\n },\n };\n}\ncoreModule.directive('tdmqRocketmqQuery', tdmqRocketmqQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { isEmpty } from 'lodash';\nimport { TKEFilterFieldsDescriptor } from './query_def';\n\nexport class QueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TKEFilterFieldsDescriptor = TKEFilterFieldsDescriptor;\n };\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.addCondition = () => {\n $scope.target.conditions.push({ Key: '', Operator: '=', Value: '' });\n };\n\n $scope.deleteCondition = (index) => {\n const targetCondition = $scope.target.conditions[index];\n if (isEmpty(targetCondition.Key) || isEmpty(targetCondition.Operator) || isEmpty(targetCondition.Value)) {\n $scope.target.conditions.splice(index, 1);\n } else {\n $scope.target.conditions.splice(index, 1);\n $scope.onRefresh();\n }\n };\n\n $scope.getOperator = () => {\n return Promise.resolve([\n { text: '=', value: '=' },\n { text: 'in', value: 'in' },\n ]);\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function sQuery() {\n return {\n template: template,\n controller: QueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('tkeQuery', sQuery);\n","import coreModule from 'grafana/app/core/core_module';\nimport { TSFFieldsDescriptor } from './query_def';\n\nexport class TSFQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.TSFFieldsDescriptor = TSFFieldsDescriptor;\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function tsfQuery() {\n return {\n template: template,\n controller: TSFQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n onChange: '&',\n },\n };\n}\n\ncoreModule.directive('tsfQuery', tsfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import coreModule from 'grafana/app/core/core_module';\nimport { VBCFilterFieldsDescriptor, namespace } from './query_def';\nimport { GetServiceFromNamespace } from '../../common/constants';\n\nconst ExtraFields: any = [\n // {\n // label: 'SRegion',\n // field: 'SRegion',\n // },\n // {\n // label: 'DRegion',\n // field: 'DRegion',\n // },\n];\n\nexport class VBCQueryCtrl {\n /** @ngInject */\n constructor($scope, $rootScope) {\n $scope.init = () => {\n $scope.VBCFilterFieldsDescriptor = VBCFilterFieldsDescriptor;\n $scope.namespace = namespace;\n };\n $scope.getExtraFields = () => {\n return ExtraFields.filter((item) => item.field in ($scope.dims ?? {}));\n };\n\n $scope.getExtraDropdown = (field) => {\n const service = GetServiceFromNamespace($scope.namespace);\n // return $scope.datasource.getServiceFn(service, 'getFilterDropdown')({ field })\n return $scope.datasource.getFilterDropdown(service, { field });\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function scfQuery() {\n return {\n template: template,\n controller: VBCQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n onRefresh: '&',\n dims: '=',\n },\n };\n}\ncoreModule.directive('vbcQuery', scfQuery);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","import queryFactory from '../_base/query';\nimport { queryEditorConfig, queryEditorName } from './query_def';\nqueryFactory(queryEditorName, queryEditorConfig);\n","var map = {\n\t\".\": 20,\n\t\"./\": 20,\n\t\"./MonitorDatasource\": 188,\n\t\"./MonitorDatasource.ts\": 188,\n\t\"./_base/datasource\": 3,\n\t\"./_base/datasource.ts\": 3,\n\t\"./_base/query\": 7,\n\t\"./_base/query.ts\": 7,\n\t\"./_base/query_filter\": 195,\n\t\"./_base/query_filter.ts\": 195,\n\t\"./_base/types\": 196,\n\t\"./_base/types.ts\": 196,\n\t\"./apigateway/datasource\": 75,\n\t\"./apigateway/datasource.ts\": 75,\n\t\"./apigateway/query\": 131,\n\t\"./apigateway/query.ts\": 131,\n\t\"./apigateway/query_def\": 23,\n\t\"./apigateway/query_def.ts\": 23,\n\t\"./bmIntraLb/datasource\": 76,\n\t\"./bmIntraLb/datasource.ts\": 76,\n\t\"./bmIntraLb/query\": 132,\n\t\"./bmIntraLb/query.ts\": 132,\n\t\"./bmIntraLb/query_def\": 31,\n\t\"./bmIntraLb/query_def.ts\": 31,\n\t\"./bm_lb/datasource\": 77,\n\t\"./bm_lb/datasource.ts\": 77,\n\t\"./bm_lb/query\": 133,\n\t\"./bm_lb/query.ts\": 133,\n\t\"./bm_lb/query_def\": 32,\n\t\"./bm_lb/query_def.ts\": 32,\n\t\"./bm_pcx/datasource\": 78,\n\t\"./bm_pcx/datasource.ts\": 78,\n\t\"./bm_pcx/query\": 134,\n\t\"./bm_pcx/query.ts\": 134,\n\t\"./bm_pcx/query_def\": 33,\n\t\"./bm_pcx/query_def.ts\": 33,\n\t\"./bwp/datasource\": 79,\n\t\"./bwp/datasource.ts\": 79,\n\t\"./bwp/query\": 135,\n\t\"./bwp/query.ts\": 135,\n\t\"./bwp/query_def\": 63,\n\t\"./bwp/query_def.ts\": 63,\n\t\"./cbs/datasource\": 80,\n\t\"./cbs/datasource.ts\": 80,\n\t\"./cbs/query\": 136,\n\t\"./cbs/query.ts\": 136,\n\t\"./cbs/query_def\": 34,\n\t\"./cbs/query_def.ts\": 34,\n\t\"./cdb/datasource\": 81,\n\t\"./cdb/datasource.ts\": 81,\n\t\"./cdb/query\": 137,\n\t\"./cdb/query.ts\": 137,\n\t\"./cdb/query_def\": 44,\n\t\"./cdb/query_def.ts\": 44,\n\t\"./cdn/datasource\": 82,\n\t\"./cdn/datasource.ts\": 82,\n\t\"./cdn/query\": 138,\n\t\"./cdn/query.ts\": 138,\n\t\"./cdn/query_def\": 64,\n\t\"./cdn/query_def.ts\": 64,\n\t\"./cdn_province/datasource\": 83,\n\t\"./cdn_province/datasource.ts\": 83,\n\t\"./cdn_province/query\": 139,\n\t\"./cdn_province/query.ts\": 139,\n\t\"./cdn_province/query_def\": 35,\n\t\"./cdn_province/query_def.ts\": 35,\n\t\"./ceip_summary/datasource\": 84,\n\t\"./ceip_summary/datasource.ts\": 84,\n\t\"./ceip_summary/query\": 140,\n\t\"./ceip_summary/query.ts\": 140,\n\t\"./ceip_summary/query_def\": 36,\n\t\"./ceip_summary/query_def.ts\": 36,\n\t\"./ces/datasource\": 85,\n\t\"./ces/datasource.ts\": 85,\n\t\"./ces/query\": 141,\n\t\"./ces/query.ts\": 141,\n\t\"./ces/query_def\": 45,\n\t\"./ces/query_def.ts\": 45,\n\t\"./cfs/datasource\": 86,\n\t\"./cfs/datasource.ts\": 86,\n\t\"./cfs/query\": 142,\n\t\"./cfs/query.ts\": 142,\n\t\"./cfs/query_def\": 57,\n\t\"./cfs/query_def.ts\": 57,\n\t\"./ckafka/datasource\": 87,\n\t\"./ckafka/datasource.ts\": 87,\n\t\"./ckafka/query\": 143,\n\t\"./ckafka/query.ts\": 143,\n\t\"./ckafka/query_def\": 11,\n\t\"./ckafka/query_def.ts\": 11,\n\t\"./clb/datasource\": 88,\n\t\"./clb/datasource.ts\": 88,\n\t\"./clb/query\": 144,\n\t\"./clb/query.ts\": 144,\n\t\"./clb/query_def\": 12,\n\t\"./clb/query_def.ts\": 12,\n\t\"./cls/datasource\": 89,\n\t\"./cls/datasource.ts\": 89,\n\t\"./cls/query\": 145,\n\t\"./cls/query.ts\": 145,\n\t\"./cls/query_def\": 29,\n\t\"./cls/query_def.ts\": 29,\n\t\"./cmq/datasource\": 90,\n\t\"./cmq/datasource.ts\": 90,\n\t\"./cmq/query\": 146,\n\t\"./cmq/query.ts\": 146,\n\t\"./cmq/query_def\": 58,\n\t\"./cmq/query_def.ts\": 58,\n\t\"./cmq_topic/datasource\": 91,\n\t\"./cmq_topic/datasource.ts\": 91,\n\t\"./cmq_topic/query\": 147,\n\t\"./cmq_topic/query.ts\": 147,\n\t\"./cmq_topic/query_def\": 37,\n\t\"./cmq_topic/query_def.ts\": 37,\n\t\"./cos/datasource\": 92,\n\t\"./cos/datasource.ts\": 92,\n\t\"./cos/query_def\": 148,\n\t\"./cos/query_def.ts\": 148,\n\t\"./cpm/datasource\": 93,\n\t\"./cpm/datasource.ts\": 93,\n\t\"./cpm/query\": 149,\n\t\"./cpm/query.ts\": 149,\n\t\"./cpm/query_def\": 38,\n\t\"./cpm/query_def.ts\": 38,\n\t\"./cvm/datasource\": 94,\n\t\"./cvm/datasource.ts\": 94,\n\t\"./cvm/query\": 150,\n\t\"./cvm/query.ts\": 150,\n\t\"./cvm/query_def\": 59,\n\t\"./cvm/query_def.ts\": 59,\n\t\"./cynosdb_mysql/datasource\": 95,\n\t\"./cynosdb_mysql/datasource.ts\": 95,\n\t\"./cynosdb_mysql/query\": 151,\n\t\"./cynosdb_mysql/query.ts\": 151,\n\t\"./cynosdb_mysql/query_def\": 27,\n\t\"./cynosdb_mysql/query_def.ts\": 27,\n\t\"./dc/datasource\": 96,\n\t\"./dc/datasource.ts\": 96,\n\t\"./dc/query\": 152,\n\t\"./dc/query.ts\": 152,\n\t\"./dc/query_def\": 46,\n\t\"./dc/query_def.ts\": 46,\n\t\"./dcdb/datasource\": 97,\n\t\"./dcdb/datasource.ts\": 97,\n\t\"./dcdb/query\": 153,\n\t\"./dcdb/query.ts\": 153,\n\t\"./dcdb/query_def\": 16,\n\t\"./dcdb/query_def.ts\": 16,\n\t\"./dcg/datasource\": 98,\n\t\"./dcg/datasource.ts\": 98,\n\t\"./dcg/query\": 154,\n\t\"./dcg/query.ts\": 154,\n\t\"./dcg/query_def\": 47,\n\t\"./dcg/query_def.ts\": 47,\n\t\"./dcx/datasource\": 99,\n\t\"./dcx/datasource.ts\": 99,\n\t\"./dcx/query\": 155,\n\t\"./dcx/query.ts\": 155,\n\t\"./dcx/query_def\": 48,\n\t\"./dcx/query_def.ts\": 48,\n\t\"./ecdn/datasource\": 100,\n\t\"./ecdn/datasource.ts\": 100,\n\t\"./ecdn/query\": 156,\n\t\"./ecdn/query.ts\": 156,\n\t\"./ecdn/query_def\": 39,\n\t\"./ecdn/query_def.ts\": 39,\n\t\"./ecm/datasource\": 101,\n\t\"./ecm/datasource.ts\": 101,\n\t\"./ecm/query\": 157,\n\t\"./ecm/query.ts\": 157,\n\t\"./ecm/query_def\": 40,\n\t\"./ecm/query_def.ts\": 40,\n\t\"./ecm_block_storage/datasource\": 102,\n\t\"./ecm_block_storage/datasource.ts\": 102,\n\t\"./ecm_block_storage/query\": 158,\n\t\"./ecm_block_storage/query.ts\": 158,\n\t\"./ecm_block_storage/query_def\": 21,\n\t\"./ecm_block_storage/query_def.ts\": 21,\n\t\"./ecm_lb/datasource\": 103,\n\t\"./ecm_lb/datasource.ts\": 103,\n\t\"./ecm_lb/query\": 159,\n\t\"./ecm_lb/query.ts\": 159,\n\t\"./ecm_lb/query_def\": 49,\n\t\"./ecm_lb/query_def.ts\": 49,\n\t\"./gse/datasource\": 104,\n\t\"./gse/datasource.ts\": 104,\n\t\"./gse/query\": 160,\n\t\"./gse/query.ts\": 160,\n\t\"./gse/query_def\": 15,\n\t\"./gse/query_def.ts\": 15,\n\t\"./index\": 20,\n\t\"./index.ts\": 20,\n\t\"./lb/datasource\": 105,\n\t\"./lb/datasource.ts\": 105,\n\t\"./lb/query\": 161,\n\t\"./lb/query.ts\": 161,\n\t\"./lb/query_def\": 65,\n\t\"./lb/query_def.ts\": 65,\n\t\"./lighthouse/datasource\": 106,\n\t\"./lighthouse/datasource.ts\": 106,\n\t\"./lighthouse/query\": 162,\n\t\"./lighthouse/query.ts\": 162,\n\t\"./lighthouse/query_def\": 56,\n\t\"./lighthouse/query_def.ts\": 56,\n\t\"./mongodb/datasource\": 107,\n\t\"./mongodb/datasource.ts\": 107,\n\t\"./mongodb/query\": 163,\n\t\"./mongodb/query.ts\": 163,\n\t\"./mongodb/query_def\": 50,\n\t\"./mongodb/query_def.ts\": 50,\n\t\"./mr/datasource\": 108,\n\t\"./mr/datasource.ts\": 108,\n\t\"./mr/query\": 164,\n\t\"./mr/query.ts\": 164,\n\t\"./mr/query_def\": 24,\n\t\"./mr/query_def.ts\": 24,\n\t\"./nat_gateway/datasource\": 109,\n\t\"./nat_gateway/datasource.ts\": 109,\n\t\"./nat_gateway/query\": 165,\n\t\"./nat_gateway/query.ts\": 165,\n\t\"./nat_gateway/query_def\": 66,\n\t\"./nat_gateway/query_def.ts\": 66,\n\t\"./ov_cdn/datasource\": 110,\n\t\"./ov_cdn/datasource.ts\": 110,\n\t\"./ov_cdn/query\": 166,\n\t\"./ov_cdn/query.ts\": 166,\n\t\"./ov_cdn/query_def\": 67,\n\t\"./ov_cdn/query_def.ts\": 67,\n\t\"./pcx/datasource\": 111,\n\t\"./pcx/datasource.ts\": 111,\n\t\"./pcx/query\": 167,\n\t\"./pcx/query.ts\": 167,\n\t\"./pcx/query_def\": 60,\n\t\"./pcx/query_def.ts\": 60,\n\t\"./postgresql/datasource\": 112,\n\t\"./postgresql/datasource.ts\": 112,\n\t\"./postgresql/query\": 168,\n\t\"./postgresql/query.ts\": 168,\n\t\"./postgresql/query_def\": 41,\n\t\"./postgresql/query_def.ts\": 41,\n\t\"./qaap/datasource\": 113,\n\t\"./qaap/datasource.ts\": 113,\n\t\"./qaap/query\": 169,\n\t\"./qaap/query.ts\": 169,\n\t\"./qaap/query_def\": 51,\n\t\"./qaap/query_def.ts\": 51,\n\t\"./redis/datasource\": 114,\n\t\"./redis/datasource.ts\": 114,\n\t\"./redis/query\": 170,\n\t\"./redis/query.ts\": 170,\n\t\"./redis/query_def\": 61,\n\t\"./redis/query_def.ts\": 61,\n\t\"./redis_mem/datasource\": 115,\n\t\"./redis_mem/datasource.ts\": 115,\n\t\"./redis_mem/query\": 171,\n\t\"./redis_mem/query.ts\": 171,\n\t\"./redis_mem/query_def\": 17,\n\t\"./redis_mem/query_def.ts\": 17,\n\t\"./scf/datasource\": 116,\n\t\"./scf/datasource.ts\": 116,\n\t\"./scf/query\": 172,\n\t\"./scf/query.ts\": 172,\n\t\"./scf/query_def\": 28,\n\t\"./scf/query_def.ts\": 28,\n\t\"./sqlserver/datasource\": 117,\n\t\"./sqlserver/datasource.ts\": 117,\n\t\"./sqlserver/query\": 173,\n\t\"./sqlserver/query.ts\": 173,\n\t\"./sqlserver/query_def\": 30,\n\t\"./sqlserver/query_def.ts\": 30,\n\t\"./tcaplus/datasource\": 118,\n\t\"./tcaplus/datasource.ts\": 118,\n\t\"./tcaplus/query\": 174,\n\t\"./tcaplus/query.ts\": 174,\n\t\"./tcaplus/query_def\": 52,\n\t\"./tcaplus/query_def.ts\": 52,\n\t\"./tdmq/datasource\": 119,\n\t\"./tdmq/datasource.ts\": 119,\n\t\"./tdmq/query\": 175,\n\t\"./tdmq/query.ts\": 175,\n\t\"./tdmq/query_def\": 13,\n\t\"./tdmq/query_def.ts\": 13,\n\t\"./tdmq_rabbitmq/datasource\": 120,\n\t\"./tdmq_rabbitmq/datasource.ts\": 120,\n\t\"./tdmq_rabbitmq/query\": 176,\n\t\"./tdmq_rabbitmq/query.ts\": 176,\n\t\"./tdmq_rabbitmq/query_def\": 18,\n\t\"./tdmq_rabbitmq/query_def.ts\": 18,\n\t\"./tdmq_rocketmq/datasource\": 121,\n\t\"./tdmq_rocketmq/datasource.ts\": 121,\n\t\"./tdmq_rocketmq/query\": 177,\n\t\"./tdmq_rocketmq/query.ts\": 177,\n\t\"./tdmq_rocketmq/query_def\": 19,\n\t\"./tdmq_rocketmq/query_def.ts\": 19,\n\t\"./tke/datasource\": 122,\n\t\"./tke/datasource.ts\": 122,\n\t\"./tke/query\": 178,\n\t\"./tke/query.ts\": 178,\n\t\"./tke/query_def\": 74,\n\t\"./tke/query_def.ts\": 74,\n\t\"./tsf/datasource\": 123,\n\t\"./tsf/datasource.ts\": 123,\n\t\"./tsf/query\": 179,\n\t\"./tsf/query.ts\": 179,\n\t\"./tsf/query_def\": 62,\n\t\"./tsf/query_def.ts\": 62,\n\t\"./v_clb/datasource\": 124,\n\t\"./v_clb/datasource.ts\": 124,\n\t\"./v_clb/query\": 180,\n\t\"./v_clb/query.ts\": 180,\n\t\"./v_clb/query_def\": 25,\n\t\"./v_clb/query_def.ts\": 25,\n\t\"./vbc/datasource\": 125,\n\t\"./vbc/datasource.ts\": 125,\n\t\"./vbc/query\": 181,\n\t\"./vbc/query.ts\": 181,\n\t\"./vbc/query_def\": 53,\n\t\"./vbc/query_def.ts\": 53,\n\t\"./vpc_net_detect/datasource\": 126,\n\t\"./vpc_net_detect/datasource.ts\": 126,\n\t\"./vpc_net_detect/query\": 182,\n\t\"./vpc_net_detect/query.ts\": 182,\n\t\"./vpc_net_detect/query_def\": 42,\n\t\"./vpc_net_detect/query_def.ts\": 42,\n\t\"./vpngw/datasource\": 127,\n\t\"./vpngw/datasource.ts\": 127,\n\t\"./vpngw/query\": 183,\n\t\"./vpngw/query.ts\": 183,\n\t\"./vpngw/query_def\": 54,\n\t\"./vpngw/query_def.ts\": 54,\n\t\"./vpnx/datasource\": 128,\n\t\"./vpnx/datasource.ts\": 128,\n\t\"./vpnx/query\": 184,\n\t\"./vpnx/query.ts\": 184,\n\t\"./vpnx/query_def\": 55,\n\t\"./vpnx/query_def.ts\": 55,\n\t\"./waf/datasource\": 129,\n\t\"./waf/datasource.ts\": 129,\n\t\"./waf/query\": 185,\n\t\"./waf/query.ts\": 185,\n\t\"./waf/query_def\": 43,\n\t\"./waf/query_def.ts\": 43\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 186;","import _ from 'lodash';\nimport { Datasources, SERVICES } from './index';\nimport { GetServiceFromNamespace, ParseMetricQuery } from '../common/constants';\nimport { serviceGroupBy } from '../common/utils';\nimport { LoadingState } from '@grafana/data';\n\nexport default interface DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n query: (options: any) => any;\n testDatasource: () => any;\n metricFindQuery: (query: any) => any;\n getRegions?: (service: string) => any;\n getMetrics: (service: string, region: string) => any;\n getInstances: (service: string, region: string, params: any) => any;\n getZones?: (service: string, region: string) => any;\n}\n\nexport class TCMonitorDatasource implements DatasourceInterface {\n instanceSettings: any;\n backendSrv: any;\n templateSrv: any;\n\n /** @ngInject */\n constructor(instanceSettings, backendSrv, templateSrv) {\n this.instanceSettings = instanceSettings;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n _.forEach(Datasources, (_class: any, key) => {\n this[key] = new _class(this.instanceSettings, this.backendSrv, this.templateSrv);\n });\n }\n\n // 根据 Datasource Config 配置时勾选的监控服务项,获取相应的命名空间\n getNamespaces() {\n const namespaces: any[] = [];\n _.forEach(SERVICES, (service) => {\n if (this.instanceSettings.jsonData[service.service] === true) {\n // namespaces.push(service.namespace);\n namespaces.push(service);\n }\n });\n return namespaces;\n }\n\n getCascaderNamespaces() {\n const validServices = SERVICES.filter((service) => this.instanceSettings.jsonData[service.service]);\n return serviceGroupBy(validServices);\n }\n\n getSelectedServices() {\n const namespaces = this.getNamespaces();\n return _.map(namespaces, ({ namespace }) => {\n return GetServiceFromNamespace(namespace);\n });\n }\n\n /**\n * 根据 Panel 的配置项,获取相应的监控数据\n *\n * @param options Panel 的配置参数,示例如下\n * {\n * cacheTimeout: undefined,\n * dashboardId: 41,\n * interval: \"30s\",\n * intervalMs: 30000,\n * maxDataPoints: 554,\n * panelId: 2,\n * range: {\n * from: Moment,\n * to: Moment,\n * raw: {from: \"now-6h\", to: \"now\"}\n * },\n * rangeRaw: {from: \"now-6h\", to: \"now\"},\n * scopedVars: {__interval: {…}, __interval_ms: {…}}\n * targets: [\n * {\n * namespace: \"QCE/CVM\",\n * refId: \"A\",\n * service: \"cvm\",\n * showInstanceDetails: false,\n * cvm: {\n * dimensionObject: {InstanceId: {…}}\n * instance: \"\",\n * instanceAlias: \"InstanceId\",\n * metricName: \"AccOuttraffic\",\n * metricUnit: \"MB\",\n * period: 10,\n * queries: {Filters: {…}, InstanceIds: Array(1), Limit: 20, Offset: 0, filtersChecked: false, …},\n * region: \"ap-beijing\"\n * },\n * cdb: {},\n * },\n * ],\n * timezone: \"browser\"\n * }\n * @return 返回数据对象,示例如下\n * {\n * data: [\n * {\n * \"target\": \"AccOuttraffic - ins-123\",\n * \"datapoints\": [\n * [861, 1450754160000],\n * [767, 1450754220000]\n * ]\n * }\n * ]\n * }\n */\n query(options: any) {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n const optionsTemp = _.cloneDeep(options);\n const targets = _.filter(optionsTemp.targets, (item) => item.service === service);\n optionsTemp.targets = targets;\n if (optionsTemp.targets.length > 0) {\n const promiseTemp = this[`${_.toUpper(service)}Datasource`].query(optionsTemp);\n if (promiseTemp) {\n promises.push(promiseTemp);\n }\n }\n });\n if (promises.length === 0) {\n return Promise.resolve({ data: [], state: LoadingState.Done });\n }\n return Promise.all(promises).then((results) => {\n return { data: _.flatten(results), state: LoadingState.Done };\n });\n }\n\n /**\n * 获取模板变量的选择项列表\n *\n * @param query 模板变量配置填写的 Query 参数字符串\n */\n metricFindQuery(query: string, options?: any) {\n const queries = ParseMetricQuery(query);\n const service = GetServiceFromNamespace(queries['namespace'] || '');\n\n if (_.isEmpty(queries) || !queries['namespace'] || !queries['action'] || !service) {\n return Promise.resolve([]);\n }\n if (this[`${_.toUpper(service)}Datasource`].metricFindQuery) {\n const result = this[`${_.toUpper(service)}Datasource`].metricFindQuery(\n queries,\n _.get(options, 'variable.regex', undefined)\n );\n if (result) {\n return result;\n }\n }\n return Promise.resolve([]);\n }\n\n /**\n * 获取地域列表\n * @param service\n */\n getRegions(service) {\n if (this[`${_.toUpper(service)}Datasource`].getRegions) {\n return this[`${_.toUpper(service)}Datasource`].getRegions();\n }\n return [];\n }\n\n /**\n * 获取监控指标列表\n * @param service\n * @param region\n */\n getMetrics(service, region) {\n return this[`${_.toUpper(service)}Datasource`].getMetrics(region);\n }\n\n /**\n * 获取可用区列表\n * @param service\n * @param region\n */\n getZones(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getZones) {\n return this[`${_.toUpper(service)}Datasource`].getZones(region);\n }\n return [];\n }\n\n /**\n * 获取filter中dropdown列表\n * @param service\n * @param param\n */\n getFilterDropdown(service, param) {\n if (this[`${_.toUpper(service)}Datasource`].getFilterDropdown) {\n return this[`${_.toUpper(service)}Datasource`].getFilterDropdown(param);\n }\n return [];\n }\n\n /**\n * 获取实例列表\n * @param service\n * @param region\n * @param params\n */\n getInstances(service, region, params) {\n return this[`${_.toUpper(service)}Datasource`].getInstances(region, params);\n }\n\n /**\n * 获取监听器列表\n * @param service\n * @param region\n * @param params\n */\n getListeners(service, region, instance) {\n if (!this[`${_.toUpper(service)}Datasource`].getListeners) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`].getListeners(region, instance);\n }\n\n /**\n * 获取 私有网络列表\n * @param service\n */\n getVpcIds(service, region) {\n if (this[`${_.toUpper(service)}Datasource`].getVpcIds) {\n return this[`${_.toUpper(service)}Datasource`].getVpcIds(region);\n }\n }\n\n // 在 Datasource Config 配置时,验证 SerectId、SerectKey 的有效性,并测试勾选的监控服务项的对应 API 连通性\n testDatasource() {\n const promises: any[] = [];\n const services = this.getSelectedServices();\n _.forEach(services, (service) => {\n promises.push(this[`${_.toUpper(service)}Datasource`].testDatasource());\n });\n if (promises.length === 0) {\n return Promise.resolve(null);\n }\n\n return Promise.all(promises).then((results) => {\n let status = 'success';\n let message = 'DataSource Connection OK';\n\n const errorMsg = _.reduce(\n results,\n (acc, cur) => {\n if (cur.status === 'error') {\n if (acc === '') acc += 'Oops! Found an error in: ';\n acc += `${cur.service}: ${cur.message}; \\n`;\n }\n return acc;\n },\n ''\n );\n\n if (errorMsg) {\n status = 'error';\n message = errorMsg;\n }\n\n return {\n status,\n message,\n title: _.upperFirst(status),\n };\n });\n }\n\n getServiceFn(service, fnName) {\n return (...argu) => {\n if (!this[`${_.toUpper(service)}Datasource`][fnName]) {\n return [];\n }\n return this[`${_.toUpper(service)}Datasource`][fnName](...argu);\n };\n }\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","import coreModule from 'grafana/app/core/core_module';\nimport { DetailQueryConfig } from './types';\n\nclass SPQueryCtrl {\n static _config: DetailQueryConfig;\n\n /** @ngInject */\n constructor($scope, $rootScope) {\n Object.assign($scope, SPQueryCtrl._config);\n\n $scope.onChecked = (srcField, dstField) => {\n if ($scope.target.queries[srcField] === true) {\n $scope.target.queries[dstField] = false;\n }\n $scope.onChange();\n };\n\n $scope.init();\n }\n}\n\nconst template = `\n\n`;\n\nexport function queryDDO() {\n return {\n template: template,\n controller: SPQueryCtrl,\n restrict: 'E',\n scope: {\n target: '=',\n showDetail: '=',\n region: '=',\n datasource: '=',\n getDropdownOptions: '&',\n onChange: '&',\n },\n };\n}\n\nexport default (name: string, config: DetailQueryConfig) => {\n SPQueryCtrl._config = config;\n coreModule.directive(name, queryDDO);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","var map = {\n\t\"./_base/query.ts\": 7,\n\t\"./apigateway/datasource\": 75,\n\t\"./apigateway/datasource.ts\": 75,\n\t\"./apigateway/query.ts\": 131,\n\t\"./apigateway/query_def.ts\": 23,\n\t\"./bmIntraLb/datasource\": 76,\n\t\"./bmIntraLb/datasource.ts\": 76,\n\t\"./bmIntraLb/query.ts\": 132,\n\t\"./bmIntraLb/query_def.ts\": 31,\n\t\"./bm_lb/datasource\": 77,\n\t\"./bm_lb/datasource.ts\": 77,\n\t\"./bm_lb/query.ts\": 133,\n\t\"./bm_lb/query_def.ts\": 32,\n\t\"./bm_pcx/datasource\": 78,\n\t\"./bm_pcx/datasource.ts\": 78,\n\t\"./bm_pcx/query.ts\": 134,\n\t\"./bm_pcx/query_def.ts\": 33,\n\t\"./bwp/datasource\": 79,\n\t\"./bwp/datasource.ts\": 79,\n\t\"./bwp/query.ts\": 135,\n\t\"./bwp/query_def.ts\": 63,\n\t\"./cbs/datasource\": 80,\n\t\"./cbs/datasource.ts\": 80,\n\t\"./cbs/query.ts\": 136,\n\t\"./cbs/query_def.ts\": 34,\n\t\"./cdb/datasource\": 81,\n\t\"./cdb/datasource.ts\": 81,\n\t\"./cdb/query.ts\": 137,\n\t\"./cdb/query_def.ts\": 44,\n\t\"./cdn/datasource\": 82,\n\t\"./cdn/datasource.ts\": 82,\n\t\"./cdn/query.ts\": 138,\n\t\"./cdn/query_def.ts\": 64,\n\t\"./cdn_province/datasource\": 83,\n\t\"./cdn_province/datasource.ts\": 83,\n\t\"./cdn_province/query.ts\": 139,\n\t\"./cdn_province/query_def.ts\": 35,\n\t\"./ceip_summary/datasource\": 84,\n\t\"./ceip_summary/datasource.ts\": 84,\n\t\"./ceip_summary/query.ts\": 140,\n\t\"./ceip_summary/query_def.ts\": 36,\n\t\"./ces/datasource\": 85,\n\t\"./ces/datasource.ts\": 85,\n\t\"./ces/query.ts\": 141,\n\t\"./ces/query_def.ts\": 45,\n\t\"./cfs/datasource\": 86,\n\t\"./cfs/datasource.ts\": 86,\n\t\"./cfs/query.ts\": 142,\n\t\"./cfs/query_def.ts\": 57,\n\t\"./ckafka/datasource\": 87,\n\t\"./ckafka/datasource.ts\": 87,\n\t\"./ckafka/query.ts\": 143,\n\t\"./ckafka/query_def.ts\": 11,\n\t\"./clb/datasource\": 88,\n\t\"./clb/datasource.ts\": 88,\n\t\"./clb/query.ts\": 144,\n\t\"./clb/query_def.ts\": 12,\n\t\"./cls/datasource\": 89,\n\t\"./cls/datasource.ts\": 89,\n\t\"./cls/query.ts\": 145,\n\t\"./cls/query_def.ts\": 29,\n\t\"./cmq/datasource\": 90,\n\t\"./cmq/datasource.ts\": 90,\n\t\"./cmq/query.ts\": 146,\n\t\"./cmq/query_def.ts\": 58,\n\t\"./cmq_topic/datasource\": 91,\n\t\"./cmq_topic/datasource.ts\": 91,\n\t\"./cmq_topic/query.ts\": 147,\n\t\"./cmq_topic/query_def.ts\": 37,\n\t\"./cos/datasource\": 92,\n\t\"./cos/datasource.ts\": 92,\n\t\"./cos/query_def.ts\": 148,\n\t\"./cpm/datasource\": 93,\n\t\"./cpm/datasource.ts\": 93,\n\t\"./cpm/query.ts\": 149,\n\t\"./cpm/query_def.ts\": 38,\n\t\"./cvm/datasource\": 94,\n\t\"./cvm/datasource.ts\": 94,\n\t\"./cvm/query.ts\": 150,\n\t\"./cvm/query_def.ts\": 59,\n\t\"./cynosdb_mysql/datasource\": 95,\n\t\"./cynosdb_mysql/datasource.ts\": 95,\n\t\"./cynosdb_mysql/query.ts\": 151,\n\t\"./cynosdb_mysql/query_def.ts\": 27,\n\t\"./dc/datasource\": 96,\n\t\"./dc/datasource.ts\": 96,\n\t\"./dc/query.ts\": 152,\n\t\"./dc/query_def.ts\": 46,\n\t\"./dcdb/datasource\": 97,\n\t\"./dcdb/datasource.ts\": 97,\n\t\"./dcdb/query.ts\": 153,\n\t\"./dcdb/query_def.ts\": 16,\n\t\"./dcg/datasource\": 98,\n\t\"./dcg/datasource.ts\": 98,\n\t\"./dcg/query.ts\": 154,\n\t\"./dcg/query_def.ts\": 47,\n\t\"./dcx/datasource\": 99,\n\t\"./dcx/datasource.ts\": 99,\n\t\"./dcx/query.ts\": 155,\n\t\"./dcx/query_def.ts\": 48,\n\t\"./ecdn/datasource\": 100,\n\t\"./ecdn/datasource.ts\": 100,\n\t\"./ecdn/query.ts\": 156,\n\t\"./ecdn/query_def.ts\": 39,\n\t\"./ecm/datasource\": 101,\n\t\"./ecm/datasource.ts\": 101,\n\t\"./ecm/query.ts\": 157,\n\t\"./ecm/query_def.ts\": 40,\n\t\"./ecm_block_storage/datasource\": 102,\n\t\"./ecm_block_storage/datasource.ts\": 102,\n\t\"./ecm_block_storage/query.ts\": 158,\n\t\"./ecm_block_storage/query_def.ts\": 21,\n\t\"./ecm_lb/datasource\": 103,\n\t\"./ecm_lb/datasource.ts\": 103,\n\t\"./ecm_lb/query.ts\": 159,\n\t\"./ecm_lb/query_def.ts\": 49,\n\t\"./gse/datasource\": 104,\n\t\"./gse/datasource.ts\": 104,\n\t\"./gse/query.ts\": 160,\n\t\"./gse/query_def.ts\": 15,\n\t\"./lb/datasource\": 105,\n\t\"./lb/datasource.ts\": 105,\n\t\"./lb/query.ts\": 161,\n\t\"./lb/query_def.ts\": 65,\n\t\"./lighthouse/datasource\": 106,\n\t\"./lighthouse/datasource.ts\": 106,\n\t\"./lighthouse/query.ts\": 162,\n\t\"./lighthouse/query_def.ts\": 56,\n\t\"./mongodb/datasource\": 107,\n\t\"./mongodb/datasource.ts\": 107,\n\t\"./mongodb/query.ts\": 163,\n\t\"./mongodb/query_def.ts\": 50,\n\t\"./mr/datasource\": 108,\n\t\"./mr/datasource.ts\": 108,\n\t\"./mr/query.ts\": 164,\n\t\"./mr/query_def.ts\": 24,\n\t\"./nat_gateway/datasource\": 109,\n\t\"./nat_gateway/datasource.ts\": 109,\n\t\"./nat_gateway/query.ts\": 165,\n\t\"./nat_gateway/query_def.ts\": 66,\n\t\"./ov_cdn/datasource\": 110,\n\t\"./ov_cdn/datasource.ts\": 110,\n\t\"./ov_cdn/query.ts\": 166,\n\t\"./ov_cdn/query_def.ts\": 67,\n\t\"./pcx/datasource\": 111,\n\t\"./pcx/datasource.ts\": 111,\n\t\"./pcx/query.ts\": 167,\n\t\"./pcx/query_def.ts\": 60,\n\t\"./postgresql/datasource\": 112,\n\t\"./postgresql/datasource.ts\": 112,\n\t\"./postgresql/query.ts\": 168,\n\t\"./postgresql/query_def.ts\": 41,\n\t\"./qaap/datasource\": 113,\n\t\"./qaap/datasource.ts\": 113,\n\t\"./qaap/query.ts\": 169,\n\t\"./qaap/query_def.ts\": 51,\n\t\"./redis/datasource\": 114,\n\t\"./redis/datasource.ts\": 114,\n\t\"./redis/query.ts\": 170,\n\t\"./redis/query_def.ts\": 61,\n\t\"./redis_mem/datasource\": 115,\n\t\"./redis_mem/datasource.ts\": 115,\n\t\"./redis_mem/query.ts\": 171,\n\t\"./redis_mem/query_def.ts\": 17,\n\t\"./scf/datasource\": 116,\n\t\"./scf/datasource.ts\": 116,\n\t\"./scf/query.ts\": 172,\n\t\"./scf/query_def.ts\": 28,\n\t\"./sqlserver/datasource\": 117,\n\t\"./sqlserver/datasource.ts\": 117,\n\t\"./sqlserver/query.ts\": 173,\n\t\"./sqlserver/query_def.ts\": 30,\n\t\"./tcaplus/datasource\": 118,\n\t\"./tcaplus/datasource.ts\": 118,\n\t\"./tcaplus/query.ts\": 174,\n\t\"./tcaplus/query_def.ts\": 52,\n\t\"./tdmq/datasource\": 119,\n\t\"./tdmq/datasource.ts\": 119,\n\t\"./tdmq/query.ts\": 175,\n\t\"./tdmq/query_def.ts\": 13,\n\t\"./tdmq_rabbitmq/datasource\": 120,\n\t\"./tdmq_rabbitmq/datasource.ts\": 120,\n\t\"./tdmq_rabbitmq/query.ts\": 176,\n\t\"./tdmq_rabbitmq/query_def.ts\": 18,\n\t\"./tdmq_rocketmq/datasource\": 121,\n\t\"./tdmq_rocketmq/datasource.ts\": 121,\n\t\"./tdmq_rocketmq/query.ts\": 177,\n\t\"./tdmq_rocketmq/query_def.ts\": 19,\n\t\"./tke/datasource\": 122,\n\t\"./tke/datasource.ts\": 122,\n\t\"./tke/query.ts\": 178,\n\t\"./tke/query_def.ts\": 74,\n\t\"./tsf/datasource\": 123,\n\t\"./tsf/datasource.ts\": 123,\n\t\"./tsf/query.ts\": 179,\n\t\"./tsf/query_def.ts\": 62,\n\t\"./v_clb/datasource\": 124,\n\t\"./v_clb/datasource.ts\": 124,\n\t\"./v_clb/query.ts\": 180,\n\t\"./v_clb/query_def.ts\": 25,\n\t\"./vbc/datasource\": 125,\n\t\"./vbc/datasource.ts\": 125,\n\t\"./vbc/query.ts\": 181,\n\t\"./vbc/query_def.ts\": 53,\n\t\"./vpc_net_detect/datasource\": 126,\n\t\"./vpc_net_detect/datasource.ts\": 126,\n\t\"./vpc_net_detect/query.ts\": 182,\n\t\"./vpc_net_detect/query_def.ts\": 42,\n\t\"./vpngw/datasource\": 127,\n\t\"./vpngw/datasource.ts\": 127,\n\t\"./vpngw/query.ts\": 183,\n\t\"./vpngw/query_def.ts\": 54,\n\t\"./vpnx/datasource\": 128,\n\t\"./vpnx/datasource.ts\": 128,\n\t\"./vpnx/query.ts\": 184,\n\t\"./vpnx/query_def.ts\": 55,\n\t\"./waf/datasource\": 129,\n\t\"./waf/datasource.ts\": 129,\n\t\"./waf/query.ts\": 185,\n\t\"./waf/query_def.ts\": 43\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 209;","import { PluginMeta } from '@grafana/data';\nimport { config, getBackendSrv } from '@grafana/runtime';\nimport { TcDataSourceId } from '../datasource/common/constants';\n\nconst backendSrv = getBackendSrv();\n\nconst tcFolder = {\n uid: 'tencent-cloud-monitor',\n title: '腾讯云监控',\n folderId: null,\n};\n\nconst tcFolder_EN = {\n uid: 'tencent-cloud-monitor-english',\n title: 'Tencent Cloud Monitor',\n folderId: null,\n};\n\n/**\n * 生成腾讯云专用目录\n * @returns\n */\nasync function getFolderId() {\n if (tcFolder.folderId && tcFolder_EN.folderId) {\n return [tcFolder.folderId, tcFolder_EN.folderId];\n }\n const folders: any[] = await backendSrv.get('/api/folders');\n let folderId = folders.find((item) => item.uid === tcFolder.uid)?.id;\n let folderEnId = folders.find((item) => item.uid === tcFolder_EN.uid)?.id;\n if (!folderId) {\n const folder = await backendSrv.post('/api/folders', tcFolder);\n folderId = folder?.id || 0;\n }\n if (!folderEnId) {\n const folderEn = await backendSrv.post('/api/folders', tcFolder_EN);\n folderEnId = folderEn?.id || 0;\n }\n tcFolder.folderId = folderId;\n tcFolder_EN.folderId = folderEnId;\n return [folderId, folderEnId];\n}\n\n/**\n * 请求拦截器,拦截导入按钮的接口请求\n */\nfunction backendInterceptor() {\n const oldPost = backendSrv.post.bind(getBackendSrv());\n const pluginId = window.location.pathname.split('/').filter((item) => item)[1];\n backendSrv.post = async (url, data) => {\n // 拦截判断:拦截指定接口\n if (url === '/api/dashboards/import' && data.pluginId === pluginId) {\n const [folderId, folderEnId] = await getFolderId();\n data.folderId = data.path.endsWith('_en_dashboard.json') ? folderEnId : folderId;\n }\n return oldPost(url, data);\n };\n}\n\nbackendInterceptor();\n\nexport class MonitorAppConfigCtrl {\n static templateUrl = 'components/config.html';\n appEditCtrl: any;\n appModel?: PluginMeta;\n $q: any;\n configured: boolean;\n\n /** @ngInject */\n constructor($scope: any, $injector: any, $q: any) {\n this.appEditCtrl.setPostUpdateHook(this.postUpdate.bind(this));\n this.$q = $q;\n // Make sure it has a JSON Data spot\n if (!this.appModel) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n this.appModel = {} as PluginMeta;\n }\n\n // Required until we get the types sorted on appModel :(\n const appModel = this.appModel as any;\n if (!appModel.jsonData) {\n appModel.jsonData = {};\n }\n this.configured = false;\n if (this.appModel?.enabled) {\n const datasources = Object.values(config.datasources).filter((ds) => {\n return ds.type === TcDataSourceId;\n });\n if (datasources.length > 0) {\n this.configured = true;\n }\n }\n }\n\n async moveToFolder(dashbaordUid: string, folderId: number) {\n // 获取dashboard\n const { dashboard } = await backendSrv.get(`/api/dashboards/uid/${dashbaordUid}`);\n // 移动目录\n await backendSrv.post('/api/dashboards/db/', {\n dashboard,\n folderId,\n message: '',\n overwrite: true,\n });\n }\n\n async reviseDashboard() {\n // 1. 生成腾讯云目录\n const [folderId, folderEnId] = await getFolderId();\n // 2. 获取所有腾讯云插件下的dashboard\n const rs = await backendSrv.get(`/api/plugins/${this.appModel?.id}/dashboards`);\n\n // 3. 调用api更新dashboard\n const pmlist = rs.map((item) => {\n const { importedUrl, path } = item;\n const uid = importedUrl.split('/')[2];\n if (uid) {\n return this.moveToFolder(uid, path.endsWith('_en_dashboard.json') ? folderEnId : folderId);\n } else {\n return Promise.resolve();\n }\n });\n\n return Promise.all(pmlist);\n }\n\n async postUpdate() {\n if (!this.appModel?.enabled) {\n return;\n }\n // enable或者update时,对预设dashboard进行修改\n await this.reviseDashboard();\n return this.$q.resolve(true);\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/datasource/module.js b/dist/datasource/module.js
index bd90c5d..67476db 100644
--- a/dist/datasource/module.js
+++ b/dist/datasource/module.js
@@ -1,3 +1,3 @@
/*! For license information please see module.js.LICENSE.txt */
-define("TencentCloudMonitorGrafanaApp",["lodash","react","app/core/core_module","@grafana/data","@grafana/ui","@grafana/runtime","moment","emotion","rxjs","angular","app/core/utils/kbn","app/core/table_model","app/plugins/sdk","react-dom"],(function(e,t,n,r,i,o,a,c,s,u,l,p,d,f){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=209)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r={language:"语言",enable_intranet_API_mode:"开启内网API模式",cloud_database:"云数据库",cloud_load_balancer:"负载均衡",virtual_private_cloud:"私有网络",content_delivery_network:"内容分发网络",message_queue:"消息队列",direct_connect:"专线接入",cloud_physical_machine:"黑石物理服务器",elastic_mapReduce:"弹性 MapReduce",edge_computing_machine:"边缘计算机器",RUM:"前端性能监控(RUM)",CLS:"日志服务(CLS)",CVM:"云服务器(CVM)",CDB:"云数据库 MySQL(CDB)",CMONGO:"云数据库 MongoDB(CMONGO)",POSTGRES:"云数据库 PostgreSQL(POSTGRES)",REDIS:"云数据库 Redis(REDIS)",REDIS_MEM:"云数据库 Redis内存版(5s)(REDIS_MEM)",SQLSERVER:"云数据库 SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"云数据库 CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"云数据库 TcaplusDB(TCAPLUS)",TDMYSQL:"分布式数据库 TDSQL MySQL(TDMYSQL)",PCX:"私有网络-对等连接(PCX)",BWP:"私有网络-带宽包(BWP)",NAT_GATEWAY:"私有网络-NAT 网关(NAT_GATEWAY)",VPNGW:"私有网络-VPN 网关(VPNGW)",VPNX:"私有网络-VPN 通道(VPNX)",DCG:"私有网络-专线网关(DCG)",CEIP_SUMMARY:"私有网络-Anycast 弹性公网IP(CEIP_SUMMARY)",VPC_NET_DETECT:"私有网络-网络探测(VPC_NET_DETECT)",VBC:"私有网络-云联网(VBC)",LB:"私有网络-弹性公网IP(LB)",LB_PUBLIC:"公网负载均衡监控指标(LB_PUBLIC)",LB_PRIVATE:"内网负载均衡四层协议监控指标(LB_PRIVATE)",LOADBALANCE:"内网负载均衡七层协议监控指标(LOADBALANCE)",CDN:"国内域名(CDN)",CDN_LOG_DATA:"省份域名(CDN_LOG_DATA)",OV_CDN:"国外域名(OV_CDN)",SCF_V2:"云函数(SCF)",CFS:"文件存储(CFS)",COS:"对象存储(COS)",CKAFKA:"消息队列 CKafka(CKAFKA)",CMQ:"消息队列-队列服务监控(CMQ)",CMQTOPIC:"消息队列-主题订阅监控(CMQTOPIC)",TDMQ:"消息队列 Pulsar 版(TDMQ)",TDMQ_ROCKETMQ:"消息队列 RocketMQ 版(ROCKETMQ)",TDMQ_RABBITMQ:"消息队列 RabbitMQ 版(RABBITMQ)",DCX:"专线接入-专用通道(DCX)",DC:"专线接入-物理专线(DC)",CPM:"黑石物理服务器(CPM)",BM_PCX:"黑石对等连接(BM_PCX)",BM_LB:"黑石外网负载均衡(BM_LB)",BM_INTRA_LB:"黑石内网负载均衡(BM_INTRA_LB)",CES:"Elasticsearch指标(CES)",BLOCK_STORAGE:"云硬盘(BLOCK_STORAGE)",APIGATEWAY:"API 网关(APIGATEWAY)",QAAP:"全球应用加速(GAAP)",ECM:"边缘计算和网络监控(ECM)",ECM_BLOCK_STORAGE:"边缘计算存储监控(ECM_BLOCK_STORAGE)",ECM_LB:"边缘计算负载均衡(ECM_LB)",GSE:"游戏服务器伸缩(GSE)",TKE:"容器服务(TKE)",ECDN:"全站加速网络(ECDN)",WAF:"Web 应用防火墙(WAF)",multi_scene:"多场景版",lite:"精简版",cloud_monitor:"云监控",cloud_log_service:"日志服务",real_user_monitoring:"前端性能监控",region:"地域",log_topic:"日志主题",syntax_rule:"语法规则",max_result_num:"最大结果条数",search_statement:"检索语句",time_unit:"Time unit",seconds:"seconds",search_description:"按照具体的查询条件搜索实例,默认拉取前 20 条实例","ap-guangzhou":"华南地区(广州)","ap-shenzhen-fsi":"华南地区(深圳金融)","ap-guangzhou-open":"华南地区(广州OPEN)","ap-shenzhen":"华南地区(深圳)","ap-qingyuan":"华南地区(清远)","ap-shanghai":"华东地区(上海)","ap-shanghai-fsi":"华东地区(上海金融)","ap-jinan-ec":"华东地区(济南)","ap-hangzhou-ec":"华东地区(杭州)","ap-nanjing":"华东地区(南京)","ap-fuzhou-ec":"华东地区(福州)","ap-hefei-ec":"华东地区(合肥)","ap-beijing":"华北地区(北京)","ap-tianjin":"华北地区(天津)","ap-beijing-fsi":"华北地区(北京金融)","ap-shijiazhuang-ec":"华北地区(石家庄)","ap-wuhan-ec":"华中地区(武汉)","ap-changsha-ec":"华中地区(长沙)","ap-zhengzhou-ec":"华中地区(郑州)","ap-chengdu":"西南地区(成都)","ap-chongqing":"西南地区(重庆)","ap-xian-ec":"西北地区(西安)","ap-shenyang-ec":"东北地区(沈阳)","ap-taipei":"港澳台地区(中国台北)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-tokyo":"亚太东北(东京)","ap-singapore":"亚太东南(新加坡)","ap-bangkok":"亚太东南(曼谷)","ap-jakarta":"亚太东南(雅加达)","na-siliconvalley":"美国西部(硅谷)","eu-frankfurt":"欧洲地区(法兰克福)","eu-moscow":"欧洲地区(莫斯科)","ap-mumbai":"亚太南部(孟买)","na-ashburn":"美国东部(弗吉尼亚)","sa-saopaulo":"南美地区(圣保罗)","na-toronto":"北美地区(多伦多)"},i={language:"Language",enable_intranet_API_mode:"Enable Intranet API Mode",cloud_database:"Cloud Database",cloud_load_balancer:"Cloud Load Balancer",virtual_private_cloud:"Virtual Private Cloud",content_delivery_network:"Content Delivery Network",message_queue:"Message Queue",direct_connect:"Direct Connect",cloud_physical_machine:"Cloud Physical Machine",elastic_mapReduce:"Elastic MapReduce",edge_computing_machine:"Edge Computing Machine",RUM:"Real User Monitoring(RUM)",CLS:"Cloud Log Service(CLS)",CVM:"Cloud Virtual Machine(CVM)",CDB:"TencentDB for MySQL(CDB)",CMONGO:"TencentDB for MongoDB(CMONGO)",POSTGRES:"TencentDB for PostgreSQL(POSTGRES)",REDIS:"TencentDB for Redis(REDIS)",REDIS_MEM:"TencentDB for Redis(Memory Edition, 5-Second)(REDIS_MEM)",SQLSERVER:"TencentDB for SQL Server(SQLSERVER)",CYNOSDB_MYSQL:"TencentDB for CYNOSDB_MYSQL(CYNOSDB_MYSQL)",TCAPLUS:"TencentDB for TcaplusDB(TCAPLUS)",TDMYSQL:"TDSQL for MySQL(TDMYSQL)",PCX:"Peering Connection(PCX)",BWP:"Bandwidth Packet(BWP)",NAT_GATEWAY:"NAT Gateway(NAT_GATEWAY)",VPNGW:"VPN Gateway(VPNGW)",VPNX:"VPN Tunnel(VPNX)",DCG:"Direct Connect Gateway(DCG)",CEIP_SUMMARY:"Anycast EIP(CEIP_SUMMARY)",VPC_NET_DETECT:"Network Detection(VPC_NET_DETECT)",VBC:"Cloud Connect Network(VBC)",LB:"Elastic IP(LB)",LB_PUBLIC:"Public Network CLB(LB_PUBLIC)",LB_PRIVATE:"Private Network CLB Layer-4 Protocol(LB_PRIVATE)",LOADBALANCE:"Private Network CLB Layer-7 Protocol(LOADBALANCE)",CDN:"Chinese Mainland Domain(CDN)",CDN_LOG_DATA:"Province(CDN_LOG_DATA)",OV_CDN:"Overseas Domain(OV_CDN)",SCF_V2:"Serverless Cloud Function(SCF)",CFS:"Cloud File Storage(CFS)",COS:"Cloud Object Storage(COS)",CKAFKA:"Message Queue CKafka(CKAFKA)",CMQ:"Message Queue for Queue Service(CMQ)",CMQTOPIC:"Message Queue for Topic Subscription(CMQTOPIC)",TDMQ:"Tencent Distributed Message Queue for Pulsar(TDMQ)",TDMQ_ROCKETMQ:"Tencent Distributed Message Queue for RocketMQ(ROCKETMQ)",TDMQ_RABBITMQ:"Tencent Distributed Message Queue for RabbitMQ(RABBITMQ)",DCX:"Direct Connect for Dedicated Tunnel(DCX)",DC:"Direct Connect for Connection(DC)",CPM:"Cloud Physical Machine(CPM)",BM_PCX:"Cloud Physical Machine for Peering Connection(BM_PCX)",BM_LB:"Cloud Physical Machine for Public Network CLB(BM_LB)",BM_INTRA_LB:"Cloud Physical Machine for Private Network CLB(BM_INTRA_LB)",CES:"Elasticsearch Service(CES)",BLOCK_STORAGE:"Cloud Block Storage(BLOCK_STORAGE)",APIGATEWAY:"API Gateway(APIGATEWAY)",QAAP:"Global Application Acceleration Platform(GAAP)",ECM:"Edge Computing Machine for Computation and Networking(ECM)",ECM_BLOCK_STORAGE:"Edge Computing Machine for Block Storage(ECM_BLOCK_STORAGE)",ECM_LB:"Edge Computing Machine for Layer-4 CLB(ECM_LB)",GSE:"Game Server Elastic-scaling(GSE)",TKE:"Tencent Kubernetes Engine(TKE)",ECDN:"Enterprise Content Delivery Network(ECDN)",WAF:"Web Application Firewall(WAF)",multi_scene:"Multi-Scene",lite:"Lite",cloud_monitor:"Cloud Monitor",cloud_log_service:"Cloud Log Service",real_user_monitoring:"Real User Monitoring",region:"Region",log_topic:"Log Topic",syntax_rule:"Syntax Rule",max_result_num:"Maximum result number",search_statement:"Search Statement",time_unit:"Time unit",seconds:"seconds",search_description:"Search for instances according to specific query conditions, and pull the first 20 instances by default","ap-guangzhou":"South China(Guangzhou)","ap-shenzhen-fsi":"South China(Shenzhen Finance)","ap-guangzhou-open":"South China(Guangzhou OPEN)","ap-shenzhen":"South China(Shenzhen)","ap-qingyuan":"South China(Qingyuan)","ap-shanghai":"East China(Shanghai)","ap-shanghai-fsi":"East China(Shanghai Finance)","ap-jinan-ec":"East China(Jinan)","ap-hangzhou-ec":"East China(Hangzhou)","ap-nanjing":"East China(Nanjing)","ap-fuzhou-ec":"East China(Fuzhou)","ap-hefei-ec":"East China(Hefei)","ap-beijing":"North China region(Beijing)","ap-tianjin":"North China region(Tianjin)","ap-beijing-fsi":"North China region(Beijing Finance)","ap-shijiazhuang-ec":"North China region(Shijiazhuang)","ap-wuhan-ec":"Central China(Wuhan)","ap-changsha-ec":"Central China(Changsha)","ap-zhengzhou-ec":"Central China(Zhengzhou)","ap-chengdu":"Southwest China(Chengdu)","ap-chongqing":"Southwest China(Chongqing)","ap-xian-ec":"Northwest region(Xi'an)","ap-shenyang-ec":"Northeast China(Shenyang)","ap-taipei":"Hong Kong, Macau and Taiwan (China)(Taipei, China)","ap-hongkong":"Hong Kong, Macau and Taiwan (China)(Hong Kong, China)","ap-seoul":"Northeast Asia(Seoul)","ap-tokyo":"Northeast Asia(Tokyo)","ap-singapore":"Southeast Asia(Singapore)","ap-bangkok":"Southeast Asia(Bangkok)","ap-jakarta":"Southeast Asia(Jakarta)","na-siliconvalley":"US West(Silicon Valley)","eu-frankfurt":"Europe(Frankfurt)","eu-moscow":"Europe(Northeastern Europe)","ap-mumbai":"South Asia(Mumbai)","na-ashburn":"US East(Virginia)","sa-saopaulo":"South America(São Paulo)","na-toronto":"North America(Toronto)"};n.d(t,"a",(function(){return o})),n.d(t,"d",(function(){return c})),n.d(t,"c",(function(){return s})),n.d(t,"b",(function(){return u}));var o,a="zh-CN";!function(e){e.Chinese="zh-CN",e.English="en-US"}(o||(o={}));var c=function(e){return a===o.Chinese?r[e]:i[e]},s=function(e){a=e},u=function(){return a}},function(e,t,n){"use strict";var r=n(0),i=n.n(r),o=n(187),a=n.n(o),c=n(19),s=n(67),u=n.n(s),l=function(){return(l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&-1===t._InstanceAliasValue.indexOf(r[o].timeshift)&&(t._InstanceAliasValue+="_".concat(r[o].timeshift)),t[e]=d.getDimensionsVal(t,p,h),d.checkKeys.length>0&&d.checkKeys.forEach((function(n){t[n]=t[e]})),n[e]={Name:e,Value:t[e]},[2]}}))},d=this,m=0,h=e,g.label=1;case 1:return m0){var r=i.a.cloneDeep(t);return r[n].timeshift="",m(m([],e,!0),[r,t],!1)}return m(m([],e,!0),[t],!1)}),[]).map((function(r){return d(t,void 0,void 0,(function(){var t,o,l,p,d,m,h,y,g,v,b,I,D=this;return f(this,(function(f){switch(f.label){case 0:return t=Object(c.j)(this.templateSrv,e.scopedVars,r[n].instance,!0),[4,s.a.getInstance(this.service)];case 1:o=f.sent(),l=Object(u.c)(r[n].timeshift),t=[].concat(t).map((function(e){var t,n;try{return JSON.parse(e)}catch(r){return o?null!==(n=i.a.cloneDeep(o.find((function(t){return t[D.templateQueryIdMap.instance]===e}))))&&void 0!==n?n:{}:null===(t=D.getDefaultInsObj)||void 0===t?void 0:t.call(D,e)}})),p=Object(c.j)(this.templateSrv,e.scopedVars,r[n].region,!1),d=[],m=0,h=t,f.label=2;case 2:return m=g)return(null==f?void 0:f.response)?f.response(r):r;var v=Object(c.k)(g,(null==o?void 0:o.Limit)||100),b=[];return i.a.forEach(v,(function(r){b.push(n.getInstances(e,p(p({},r),t)))})),Promise.all(b).then((function(e){return i.a.forEach(e,(function(e){r=i.a.concat(r,e)})),(null==f?void 0:f.response)?f.response(r):r})).catch((function(e){return(null==f?void 0:f.response)?f.response(r):r}))}))},e.prototype.isValidConfigField=function(e){return e&&e.length>0},e.prototype.testDatasource=function(){var e=this;return this.isValidConfigField(this.secretId)?Promise.all([this.getRegions(),this.getMetrics(),this.getInstances("ap-guangzhou",{Offset:0,Limit:1})]).then((function(t){var n=i.a.get(t,"[0].Error",{}),r=i.a.get(t,"[1].Error",{}),o=i.a.get(t,"[2].Error",{}),a=i.a.get(n,"Code",""),c=i.a.get(r,"Code",""),s=i.a.get(o,"Code","");if(a||c||s){var u=[];a&&u.push(i.a.get(n,"Code")),c&&u.push(i.a.get(r,"Code")),s&&u.push(i.a.get(o,"Code"));var l=i.a.join(i.a.compact(i.a.uniq(u)),"; ");return{service:e.service,status:"error",message:l}}return{namespace:e.namespace,service:e.service,status:"success",message:"Successfully queried the ".concat(e.service," service."),title:"Success"}})).catch((function(t){var n="".concat(e.service," service:");return n+=t.statusText?t.statusText+"; ":"",i.a.get(t,"data.error.code","")?n+=t.data.error.code+". "+t.data.error.message:i.a.get(t,"data.error","")?n+=t.data.error:i.a.get(t,"data","")?n+=t.data:n+="Cannot connect to ".concat(e.service," service."),{service:e.service,status:"error",message:n}})):{service:this.service,status:"error",message:"The SecretId/SecretKey field is required."}},e.prototype.doRequest=function(e,t,n){return void 0===n&&(n={}),d(this,void 0,void 0,(function(){return f(this,(function(r){switch(r.label){case 0:return[4,Object(c.c)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return i.a.get(e,"data.Response",{})})).catch((function(e){throw e}))]}}))}))},e}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return d})),n.d(t,"f",(function(){return f})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return h}));var r=n(0),i=n.n(r),o=n(19),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t?r.push({Name:o,Values:i.a.uniq(e).slice(0,5)}):n[o]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t?r.push({Name:o,Values:i.a.get(e,"value",[]).slice(0,5)}):n[o]=i.a.get(e,"value")):null!=e&&""!==e&&(t?r.push({Name:o,Values:e}):n[o]=e)})),t&&r.length>0)return n.Filters=r,n}return n}function d(e){return i.a.get(i.a.find(o.SERVICES,(function(t){return t.service===e})),"namespace")}function f(e){return e.reduce((function(e,t){var n=t.namespace,r=t.label,i=t.groupName,o=void 0===i?r:i,a=e.find((function(e){return e.label===o}));return a?(a.items.push({label:r,value:n}),e):(e.push({label:o,value:o,items:[{label:r,value:n}]}),e)}),[]).map((function(e){return 1===e.items.length?{label:e.items[0].label,value:e.items[0].value}:e}))}var m=function(e,t,n){try{var r=JSON.parse(e),i=JSON.parse(t);return r[n]===i[n]}catch(n){return e===t}},h=function(e){var t=/^(\d+)([d|h|m|s])$/.exec(e);if(!t)return 0;var n=parseInt(t[1],10);switch(t[2]){case"d":return 86400*n*1e3;case"h":return 3600*n*1e3;case"m":return 60*n*1e3;case"s":return 1e3*n}return 0}},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(6),i=n.n(r),o=n(2);t.default=function(e,t){var n,r,a=(n=t,function(){function e(e,t){Object.assign(e,n),e.getDropdown=function(t){var n=Object(o.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t,region:e.region})}}return e.$inject=["$scope","$rootScope"],e}());i.a.directive(e,(r=a,function(){return{template:'\n\n',controller:r,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}))}},function(e,t,n){"use strict";var r=function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["InstanceId","InstanceName"],u=["TopicId","TopicName"],l={instance:"InstanceId",topicId:"TopicId",groupName:"GroupName",partition:"PartitionId"},p=new Proxy({topicId:"TopicId",topicName:"TopicName",consumerGroup:"GroupName",partition:"PartitionId"},{get:function(e,t){return"instanceid"===String(t).toLocaleLowerCase()?"InstanceId":e[t]}}),d={TopicList:"TopicList",GroupList:"GroupList",PartitionList:"PartitionList"},f={TopicId:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},TopicName:{dim_KeyInStorage:d.TopicList,dim_KeyInTarget:"topicId",dim_KeyInMap:l.topicId},GroupName:{dim_KeyInStorage:d.GroupList,dim_KeyInTarget:"consumerGroup",dim_KeyInMap:l.groupName},PartitionId:{dim_KeyInStorage:d.PartitionList,dim_KeyInTarget:"partition",dim_KeyInMap:l.partition}};t.default=a},function(e,t){e.exports=i},function(e,t,n){"use strict";n.r(t),n.d(t,"LOADBALANCEFieldsDescriptor",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return l})),n.d(t,"LOADBALANCEListenerAliasList",(function(){return p})),n.d(t,"LOADBALANCEServerAliasList",(function(){return d})),n.d(t,"LOADBALANCEVALIDDIMENSIONS",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return h})),n.d(t,"CANDIATEDIMENSIONS",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return y})),n.d(t,"queryEditorConfig",(function(){return c})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(4),i="QCE/LOADBALANCE",o="loadBalanceQuery",a=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],c={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:i,fieldDescriptor:a},s={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",servers:"",serverPort:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function u(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var l=["LoadBalancerId","LoadBalancerName","LoadBalancerVips"],p=["ListenerId","ListenerName","Port"],d=["PrivateIpAddresses","InstanceId"],f={vip:"LoadBalancerVips",loadBalancerPort:"Port",protocol:"Protocol",lanIp:"PrivateIpAddresses",port:"ServerPort"},m={LoadBalancerVips:"AddressIPv6"},h={instance:"LoadBalancerId",listener:"ListenerId",servers:"PrivateIpAddresses",port:"Port"},y={listener:"ListenerList",servers:"ServersList"},g={Port:{dim_KeyInStorage:y.listener,dim_KeyInTarget:"listener",dim_KeyInMap:h.listener},Protocol:{dim_KeyInStorage:y.listener,dim_KeyInTarget:"listener",dim_KeyInMap:h.listener},PrivateIpAddresses:{dim_KeyInStorage:y.servers,dim_KeyInTarget:"servers",dim_KeyInMap:h.servers},ServerPort:{dim_KeyInStorage:y.servers,dim_KeyInTarget:"serverPort",dim_KeyInIns:"Port",dim_KeyInMap:h.port}};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"TDMQInstanceAliasList",(function(){return u})),n.d(t,"TDMQInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"keyInStorage",(function(){return y})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"regionSupported",(function(){return m})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return f}));var r=n(4),i=n(0),o=n.n(i),a="QCE/TDMQ",c="tdmqQuery",s={tenantId:"ClusterId",tenant:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},u=["ClusterId","ClusterName"],l={instance:"ClusterId",topicName:"TopicName",environmentId:"EnvironmentId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",topicName:"",environmentId:"",queries:{Limit:20,Offset:0}};function f(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var m=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){-1!==e.Dimensions.indexOf("topicName")&&-1===e.Dimensions.indexOf("environmentId")&&e.Dimensions.push("environmentId")})),t}var y={topicName:"topicName",environmentId:"environmentId"},g={TopicName:{dim_KeyInStorage:y.topicName,dim_KeyInTarget:"topicName",dim_KeyInMap:l.topicName},EnvironmentId:{dim_KeyInStorage:y.environmentId,dim_KeyInTarget:"environmentId",dim_KeyInMap:l.environmentId}};t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"GSEFilterFieldsDescriptor",(function(){return m})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"GSEInstanceAliasList",(function(){return l})),n.d(t,"GSEInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return h})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"modifyDimensons",(function(){return b})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"fleetId",(function(){return c})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"GSEGetInstanceQueryParams",(function(){return g}));var r=n(4),i=n(0),o=n.n(i),a="QCE/GSE",c="FleetId",s="gseQuery",u={instanceid:"InstanceId",fleetid:"FleetId",queuename:"Name"},l=["InstanceId","PrivateIpAddress","IpAddress"],p={instance:"InstanceId",Name:"Name",FleetId:c},d={fleet:"fleet",queue:"queueName"},f={FleetId:{dim_KeyInStorage:d.fleet,dim_KeyInTarget:"FleetId",dim_KeyInMap:p.FleetId},Name:{dim_KeyInStorage:d.queue,dim_KeyInTarget:"Name",dim_KeyInMap:p.Name}},m=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceId",enDescriptor:"resourceName",cnDescriptor:"资源名称",link:"",type:"input"},{key:"FleetId",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"input"}],h={instanceDocUrl:"https://cloud.tencent.com/document/api/1165/42604",namespace:a,fieldDescriptor:m},y={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",FleetId:"",Name:"",queries:{Limit:20,Offset:0,InstanceId:"",FleetId:""}};function g(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var v=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-ashburn"},{value:"na-siliconvalley"}];function b(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return u[e]||e}))})),t}t.default=y},function(e,t,n){"use strict";n.r(t),n.d(t,"DCDBFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"DCDBInstanceAliasList",(function(){return s})),n.d(t,"DCDBInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regionSupported",(function(){return v})),n.d(t,"keyInStorage",(function(){return y})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"queryMonitorExtraConfg",(function(){return g})),n.d(t,"DCDBGetInstanceQueryParams",(function(){return h}));var r=n(0),i=n(4),o="QCE/TDMYSQL",a="dcdbQuery",c={nodeid:"NodeId",instanceid:"InstanceId",shardid:"ShardInstanceId",ShardId:"ShardInstanceId"},s=["InstanceId","InstanceName"],u={instance:"InstanceId",NodeId:"NodeId",ShardInstanceId:"ShardInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例 ID 查询",link:"",type:"inputMulti"},{key:"SearchName",enDescriptor:"SearchName",cnDescriptor:"搜索的字段名,当前支持的值有:instancename、vip、all",link:"",type:"input"},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"搜索的关键字",link:"",type:"input"},{key:"ProjectIds",enDescriptor:"ProjectIds",cnDescriptor:"按项目 ID 查询",link:"",type:"inputNumberMulti"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络 ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"私有网络的子网 ID",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"projectId",value:"projectId"},{text:"createtime",value:"createtime"},{text:"instancename",value:"instancename"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"私有网络 ID",link:"",type:"select",list:[{text:"desc",value:"desc"},{text:"asc",value:"asc"}]},{key:"ExclusterType",enDescriptor:"ExclusterType",cnDescriptor:"集群类型",link:"",type:"select",list:[{text:"非独享集群",value:1},{text:"独享集群",value:2},{text:"全部",value:0},{text:"asc",value:"asc"}]},{key:"ExclusterIds",enDescriptor:"ExclusterIds",cnDescriptor:"独享集群ID",link:"",type:"inputMulti"},{key:"FilterInstanceType",enDescriptor:"FilterInstanceType",cnDescriptor:"实例类型过滤",link:"",type:"select",multiple:!0,list:[{text:"独享实例",value:1},{text:"主实例",value:2},{text:"灾备实例",value:3}]}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/557/16140",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",ShardId:"",NodeId:"",queries:{Limit:20,Offset:0,InstanceIds:[],SearchName:"",SearchKey:"",ProjectIds:[],VpcId:"",SubnetId:"",OrderBy:{},OrderByType:{},ExclusterType:{},ExclusterIds:[],FilterInstanceType:{}}},f={shardid:"ShardId",instanceid:"InstanceId",nodeid:"NodeId"};function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return f[e]||e}))})),t}function h(e){void 0===e&&(e={});var t=Object(i.d)(e,!1);return t.IsFilterVpc=!1,t.IsFilterExcluster=!1,(t.VpcId||t.SubnetId)&&(t.IsFilterVpc=!0),t.ExclusterType&&(t.IsFilterExcluster=!0),Object(r.isArray)(t.FilterInstanceType)&&(t.FilterInstanceType=t.FilterInstanceType.join(",")),t}var y={NodeId:"NodeId",ShardInstanceId:"ShardId"},g={NodeId:{dim_KeyInStorage:y.NodeId,dim_KeyInTarget:"NodeId",dim_KeyInMap:u.NodeId},ShardInstanceId:{dim_KeyInStorage:y.ShardInstanceId,dim_KeyInTarget:"ShardId",dim_KeyInMap:u.ShardInstanceId}},v=[{text:"华北地区(北京)",value:"ap-beijing"},{text:"西南地区(成都)",value:"ap-chengdu"},{text:"西南地区(重庆)",value:"ap-chongqing"},{text:"华南地区(广州)",value:"ap-guangzhou"},{text:"港澳台地区(中国香港)",value:"ap-hongkong"},{text:"亚太南部(孟买)",value:"ap-mumbai"},{text:"华东地区(南京)",value:"ap-nanjing"},{text:"华东地区(上海)",value:"ap-shanghai"},{text:"华东地区(上海金融)",value:"ap-shanghai-fsi"},{text:"华南地区(深圳金融)",value:"ap-shenzhen-fsi"},{text:"亚太东南(新加坡)",value:"ap-singapore"},{text:"亚太东北(东京)",value:"ap-tokyo"},{text:"欧洲地区(法兰克福)",value:"eu-frankfurt"},{text:"美国东部(弗吉尼亚)",value:"na-ashburn"},{text:"美国西部(硅谷)",value:"na-siliconvalley"},{text:"北美地区(多伦多)",value:"na-toronto"}];t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemFieldsDescriptor",(function(){return c})),n.d(t,"RedisMemInvalidDemensions",(function(){return p})),n.d(t,"REDISMEMInstanceAliasList",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"namespace",(function(){return a})),n.d(t,"NodeType",(function(){return f})),n.d(t,"REDISMEMGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var l=["InstanceId","InstanceName","WanIp"],p={instanceid:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},d={instance:"InstanceId",rnodeid:"rnodeid",pnodeid:"pnodeid"},f=["Redis","Proxy"];t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQRABBITMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQGetInstanceQueryParams",(function(){return p}));var r=n(4),i="QCE/RABBITMQ",o="tdmqQuery",a={instanceid:"InstanceId",node:"NodeName"},c=["InstanceId","InstanceName"],s={instance:"InstanceId",node:"NodeName"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",node:"",queries:{Limit:20,Offset:0}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={node:"NodeName"},m={NodeName:{dim_KeyInStorage:f.node,dim_KeyInTarget:"node",dim_KeyInMap:s.node}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"TDMQFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"TDMQROCKETMQInstanceAliasList",(function(){return c})),n.d(t,"TDMQInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryMonitorExtraConfg",(function(){return m})),n.d(t,"keyInStorage",(function(){return f})),n.d(t,"regionSupported",(function(){return d})),n.d(t,"TDMQROCKETMQGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o="QCE/ROCKETMQ",a={tenant:"ClusterId",namespace:"NamespaceId",group:"Name"},c=["ClusterId","ClusterName"],s={instance:"ClusterId",namespace:"NamespaceId",group:"Name"},u=[{key:"includeVip",enDescriptor:"includeVip",cnDescriptor:"包含专享集群",link:"",type:"select",list:[{text:"是",value:"true"},{text:"否",value:"false"}]}],l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",namespace:"",group:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIdList:[""],Filters:{includeVip:{text:"是",value:"true"}}}};function p(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.ClusterIdList)){var n=i.a.compact(e.ClusterIdList);i.a.uniq(n).length>0&&(t.ClusterIdList=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:[i.a.get(e,"value",[])].slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var d=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-shenzhen-fsi"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-nanjing"},{value:"ap-hongkong"},{value:"ap-tokyo"},{value:"ap-seoul"},{value:"ap-singapore"},{value:"ap-bangkok"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],f={namespace:"NamespaceId",group:"Name"},m={NamespaceId:{dim_KeyInStorage:f.namespace,dim_KeyInTarget:"namespace",dim_KeyInMap:s.namespace},Name:{dim_KeyInStorage:f.group,dim_KeyInTarget:"group",dim_KeyInMap:s.group}};t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"InitServiceState",(function(){return c})),n.d(t,"SERVICES",(function(){return o})),n.d(t,"Datasources",(function(){return a})),n.d(t,"InstanceAliasList",(function(){return s})),n.d(t,"GetInstanceQueryParams",(function(){return u}));var r=n(1),i=function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c=new Proxy({},{get:function(e,t,n){if("string"==typeof t){if(t.startsWith("id4"))return"ClusterId";if(t.startsWith("host4"))return"Ip"}return Reflect.get(e,t,n)},has:function(e,t){return!0}}),s={instance:"ClusterId",node:"Ip"},u={node:"nodeIP"},l={Ip:{dim_KeyInStorage:u.node,dim_KeyInTarget:"nodeIP",dim_KeyInMap:s.node}},p=["ClusterId","ClusterName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",nodeIP:"",queries:{Offset:0,Limit:10,DisplayStrategy:"",OrderBy:{},Order:{},InstanceIds:[],ProjectId:-1,OrderField:"",Asc:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"VCLBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"VCLBInstanceAliasList",(function(){return u})),n.d(t,"VCLBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"clbNamespaceMap",(function(){return y})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"regionSupported",(function(){return h})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/V_CLB",c="vClbQuery",s={InstanceId:"LoadBalancerId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1",link:"",type:"inputNumber",min:1},{key:"LoadBalancerIds",enDescriptor:"LoadBalancer ID",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancer Name",cnDescriptor:"实例名称",link:"",type:"input"},{key:"Forward",enDescriptor:"Forward",cnDescriptor:"负载均衡实例类型",link:"",type:"select",list:[{text:"通用的负载均衡",value:1},{text:"传统的负载均衡",value:0}]},{key:"Domain",enDescriptor:"Domain",cnDescriptor:"域名,腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义",link:"",type:"input"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancer Vips",cnDescriptor:"负载均衡实例的 VIP 地址",link:"",type:"inputMulti"},{key:"BackendPrivateIps",enDescriptor:"BackendPrivate Ips",cnDescriptor:"负载均衡绑定的后端服务的内网 IP",link:"",type:"inputMulti"},{key:"BackendPublicIps",enDescriptor:"BackendPublic Ips",cnDescriptor:"负载均衡绑定的后端服务的外网 IP",link:"",type:"inputMulti"},{key:"ProjectId",enDescriptor:"Project ID",cnDescriptor:"负载均衡实例所属的项目 ID",link:"",type:"inputNumber"},{key:"VpcId",enDescriptor:"Vpc ID",cnDescriptor:"负载均衡实例所属私有网络",link:"",type:"input"},{key:"SecurityGroup",enDescriptor:"Security Group",cnDescriptor:"安全组ID",link:"",type:"input"},{key:"MasterZone",enDescriptor:"Master Zone",cnDescriptor:"主可用区ID",link:"",type:"input"},{key:"WithRs",enDescriptor:"WithRs",cnDescriptor:"负载均衡是否绑定后端服务",link:"",type:"select",list:[{text:"没有绑定后端服务",value:0},{text:"绑定后端服务",value:1},{text:"查询全部",value:-1}]},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"LoadBalancerName",value:"LoadBalancerName"},{text:"CreateTime",value:"CreateTime"},{text:"Domain",value:"Domain"},{text:"LoadBalancerType",value:"LoadBalancerType"}]},{key:"OrderType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/214/30685",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",Port:"",Protocol:"",listener:"",queries:{LoadBalancerIds:[],Forward:void 0,LoadBalancerName:"",Domain:"",LoadBalancerVips:[],BackendPublicIps:[],BackendPrivateIps:[],Limit:20,Offset:0,ProjectId:void 0,WithRs:{},VpcId:"",SecurityGroup:"",MasterZone:"",OrderBy:{},OrderType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var h=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}],y={public:"QCE/LB_PUBLIC",private:"QCE/LB_PRIVATE"};function g(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"cynosdbMysqlFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"CYNOSDBMYSQLInstanceAliasList",(function(){return f})),n.d(t,"CYNOSDBInvalidDemensions",(function(){return h})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"regionSupported",(function(){return u})),n.d(t,"modifyDimensons",(function(){return g})),n.d(t,"checkKeys",(function(){return y})),n.d(t,"CYNOSDBMYSQLGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(4),a="QCE/CYNOSDB_MYSQL",c="cynosdbMysqlQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:1e3},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"实例id列表",link:"",type:"inputMulti"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"创建时间",value:"CREATETIME"},{text:"过期时间",value:"PERIODENDTIME"}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序类型",link:"",type:"select",list:[{text:"升序",value:"ASC"},{text:"降序",value:"DESC"}]},{key:"DbType",enDescriptor:"DbType",cnDescriptor:"引擎类型",link:"",type:"select",list:[{text:"MYSQL",value:"MYSQL"},{text:"POSTGRESQL",value:"POSTGRESQL"}]}],u=[{value:"ap-beijing"},{value:"ap-guangzhou"},{value:"ap-nanjing"},{value:"ap-shanghai"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/1003/48334",namespace:a,fieldDescriptor:s},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,OrderBy:{},OrderByType:{},InstanceIds:[],DbType:{}}};function d(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var f=["InstanceId","InstanceName"],m={instance:"InstanceId"},h={instanceid:"InstanceId",instanceId:"InstanceId"},y=["instanceId"];function g(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryDescriptor",(function(){return o})),n.d(t,"SCFInstanceAliasList",(function(){return s})),n.d(t,"SCFInvalidDemensions",(function(){return u})),n.d(t,"queryMonitorExtraConfg",(function(){return f})),n.d(t,"regionSupported",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"keyInStorage",(function(){return d})),n.d(t,"SCFGetInstanceQueryParams",(function(){return c})),n.d(t,"SCFDefaultDimensionList",(function(){return m}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchKey",enDescriptor:"SearchKey",cnDescriptor:"支持FunctionName模糊匹配",link:"",type:"input"},{key:"Namespace",enDescriptor:"Namespace",cnDescriptor:"云函数命名空间",link:"",type:"input"},{key:"Description",enDescriptor:"Description",cnDescriptor:"函数描述,支持模糊搜索",link:"",type:"input"},{key:"OrderBy",enDescriptor:"OrderBy",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"AddTime",value:"AddTime"},{text:"ModTime",value:"ModTime"},{text:"FunctionName",value:"FunctionName"}]},{key:"Order",enDescriptor:"Order Direction",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"ASC",value:"ASC"},{text:"DESC",value:"DESC"}]}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FunctionName",version:"",queries:{Offset:0,Limit:20,OrderBy:{},Order:{},SearchKey:"",Namespace:"",Description:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FunctionId","FunctionName"],u={functionName:"FunctionName",namespace:"Namespace",version:"Version"},l={instance:"FunctionName",version:"Version"},p=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],d={version:"version"},f={Version:{dim_KeyInStorage:d.version,dim_KeyInTarget:"version",dim_KeyInMap:l.version}};t.default=a;var m=["functionName","namespace","version"]},function(e,t){e.exports=o},function(e,t,n){"use strict";n.r(t),n.d(t,"CLSFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CLSInstanceAliasList",(function(){return u})),n.d(t,"CLSInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return h})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"CLSGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/CLS",c="clsQuery",s={},u=["TopicId","TopicName"],l={instance:"TopicId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"topicName",enDescriptor:"topicName",cnDescriptor:"日志主题名称",link:"",type:"inputMulti"},{key:"topicId",enDescriptor:"topicId",cnDescriptor:"日志主题ID",link:"",type:"inputMulti"},{key:"logsetName",enDescriptor:"logsetName",cnDescriptor:"日志集名称",link:"",type:"inputMulti"},{key:"logsetId",enDescriptor:"logsetId",cnDescriptor:"日志集ID",link:"",type:"inputMulti"},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"},{key:"tag:tagKey",enDescriptor:"tag - tagKey",cnDescriptor:"标签键值对",link:"",type:"inputMulti"},{key:"storageType",enDescriptor:"storageType",cnDescriptor:"日志主题的存储类型",link:"",type:"select",list:[{text:"实时存储",value:"hot"},{text:"离线存储",value:"cold"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/614/56454",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicId",uin:"",queries:{Limit:20,Offset:0,topicName:[],topicId:[],logsetName:[],logsetId:[],tagKey:[],"tag:tagKey":[],storageType:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}var h=[{value:"ap-bangkok"},{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-jakarta"},{value:"ap-mumbai"},{value:"ap-seoul"},{value:"ap-nanjing"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"eu-moscow"},{value:"na-ashburn"},{value:"na-siliconvalley"},{value:"na-toronto"}];function y(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["uin","TopicId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"SQLSERVERNETFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"SQLSERVERInstanceAliasList",(function(){return u})),n.d(t,"SQLSERVERInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"regionSupported",(function(){return f})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"SQLSERVERGetInstanceQueryParams",(function(){return y}));var r=n(4),i=n(0),o=n.n(i),a="QCE/SQLSERVER",c="sqlserverQuery",s={resourceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputNumber"},{key:"Status",enDescriptor:"Status",cnDescriptor:"实例状态",link:"",type:"select",list:[{text:"申请中",value:1},{text:"运行中",value:2},{text:"受限运行中 (主备切换中)",value:3},{text:"已隔离",value:4},{text:"回收中",value:5},{text:"已回收",value:6},{text:"任务执行中",value:7},{text:"已下线",value:8},{text:"实例扩容中",value:9},{text:"实例迁移中",value:10},{text:"只读",value:11},{text:"重启中",value:12}]},{key:"InstanceIdSet",enDescriptor:"InstanceIdSet",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"PayMode",enDescriptor:"PayMode",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"包年包月",value:1},{text:"按量计费",value:0}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"实例所属VPC的唯一字符串ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"实例所属子网的唯一字符串ID",link:"",type:"input"},{key:"VipSet",enDescriptor:"VipSet",cnDescriptor:"实例内网地址列表",link:"",type:"inputMulti"},{key:"InstanceNameSet",enDescriptor:"InstanceNameSet",cnDescriptor:"实例名称列表, 模糊查询",link:"",type:"inputMulti"},{key:"VersionSet",enDescriptor:"VersionSet",cnDescriptor:"实例版本代号列表",link:"",type:"inputMulti"},{key:"Zone",enDescriptor:"Zone",cnDescriptor:"实例可用区",link:"",type:"dropdown"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/238/19969",namespace:a,fieldDescriptor:p},f=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-moscow"},{value:"na-siliconvalley"}],m={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:null,Status:{},InstanceIdSet:[],PayMode:{},VpcId:"",SubnetId:"",VipSet:[],InstanceNameSet:[],VersionSet:[],Zone:""}};function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["resourceId"]})),t}function y(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=m},function(e,t,n){"use strict";n.r(t),n.d(t,"BMINTRALBFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMINTRALBInstanceAliasList",(function(){return u})),n.d(t,"BMINTRALBInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return h})),n.d(t,"BMINTRALBGetInstanceQueryParams",(function(){return y}));var r=n(4),i=n(0),o=n.n(i),a="QCE/BM_INTRA_LB",c="bmIntraLbQuery",s={vip:"LoadBalancerVips",vpcId:"VpcId"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}},m=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function h(e){var t=o.a.map(m,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}function y(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMLBInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"isValidMetric",(function(){return y})),n.d(t,"BMLBGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/BM_LB",c="bmLbQuery",s={vip:"LoadBalancerVips"},u=["LoadBalancerId","LoadBalancerVips","LoadBalancerName"],l={instance:"LoadBalancerId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"LoadBalancerIds",enDescriptor:"LoadBalancerIds",cnDescriptor:"负载均衡器ID数组",link:"",type:"inputMulti"},{key:"LoadBalancerName",enDescriptor:"LoadBalancerName",cnDescriptor:"负载均衡器名称",link:"",type:"inputMulti"},{key:"LoadBalancerVips",enDescriptor:"LoadBalancerVips",cnDescriptor:"负载均衡获得的公网IP地址",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/1027/33280",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"LoadBalancerId",queries:{Limit:20,Offset:0,LoadBalancerIds:[],LoadBalancerName:[],LoadBalancerVips:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var h=["Inpkg","Outpkg","Intraffic","Outtraffic","Connum","Req"];function y(e){var t=o.a.map(h,o.a.toUpper);return-1!==o.a.indexOf(t,o.a.toUpper(e.MetricName))}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"BMPCXFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BMPCXInstanceAliasList",(function(){return u})),n.d(t,"BMPCXInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"BMPCXGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/BM_PCX",c="bmPcxQuery",s={peeringConnectionId:"VpcPeerConnectionId"},u=["VpcPeerConnectionId","VpcPeerConnectionName"],l={instance:"VpcPeerConnectionId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"VpcPeerConnectionIds",enDescriptor:"VpcPeerConnectionIds",cnDescriptor:"对等连接实例ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/product/1024/36903",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpcPeerConnectionId",queries:{Limit:20,Offset:0,VpcPeerConnectionIds:[]}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["peeringConnectionId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"CBSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"CBSInstanceAliasList",(function(){return s})),n.d(t,"CBSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"isValidMetric",(function(){return m})),n.d(t,"CBSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(4),o="QCE/BLOCK_STORAGE",a="cbsQuery",c={diskId:"DiskId",InstanceId:"InstanceId",diskname:"DiskName",unInstanceId:"InstanceId"},s=["DiskId","DiskName"],u={instance:"DiskId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DiskIds",enDescriptor:"DiskIds",cnDescriptor:"云硬盘ID",link:"",type:"inputMulti"},{key:"Order",enDescriptor:"Order",cnDescriptor:"排列顺序",link:"",type:"select",list:[{text:"升序排列",value:"ASC"},{text:"降序排列",value:"DESC"}]},{key:"OrderField",enDescriptor:"OrderField",cnDescriptor:"排序的依据字段",link:"",type:"select",list:[{text:"云盘的创建时间排序",value:"CREATE_TIME"},{text:"云盘的到期时间排序",value:"DEADLINE"}]},{key:"ReturnBindAutoSnapshotPolicy",enDescriptor:"ReturnBindAutoSnapshotPolicy",cnDescriptor:"否需要返回云盘绑定的定期快照策略ID",link:"",type:"switch"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/362/16315",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DiskId",queries:{Limit:20,Offset:0,DiskIds:[],OrderField:[],Order:[],ReturnBindAutoSnapshotPolicy:!1}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!1)}function m(e){void 0===e&&(e={});var t=r.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==r.indexOf(t,"diskId")}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNPROVINCEFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CDNPROVINCEInstanceAliasList",(function(){return c})),n.d(t,"CDNPROVINCEInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"CDNPROVINCEGetInstanceQueryParams",(function(){return p}));var r=n(4),i="QCE/CDN_LOG_DATA",o="cdnProvinceQuery",a={domain:"Domain",projectid:"ProjectId",province:"district",appid:"AppId"},c=["Domain","ProjectId"],s={instance:"Domain"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"origin",enDescriptor:"origin",cnDescriptor:"主源站",link:"",type:"inputMulti"},{key:"domain",enDescriptor:"domain",cnDescriptor:"域名",link:"",type:"inputMulti"},{key:"resourceId",enDescriptor:"resourceId",cnDescriptor:"域名id",link:"",type:"inputMulti"},{key:"status",enDescriptor:"status",cnDescriptor:"域名状态",link:"",type:"select",list:[{text:"online",value:"online"},{text:"offline",value:"offline"},{text:"processing",value:"processing"}]},{key:"serviceType",enDescriptor:"serviceType",cnDescriptor:"业务类型",link:"",type:"select",list:[{text:"web",value:"web"},{text:"download",value:"download"},{text:"media",value:"media"}]},{key:"projectId",enDescriptor:"projectId",cnDescriptor:"项目ID",link:"",type:"inputNumberMulti"},{key:"domainType",enDescriptor:"domainType",cnDescriptor:"主源站类型",link:"",type:"select",list:[{text:"自有源",value:"cname"},{text:"cos接入",value:"cos"}]},{key:"fullUrlCache",enDescriptor:"fullUrlCache",cnDescriptor:"全路径缓存",link:"",type:"select",list:[{text:"打开",value:"on"},{text:"关闭",value:"off"}]},{key:"https",enDescriptor:"https",cnDescriptor:"是否配置https",link:"",type:"select",list:[{text:"on",value:"on"},{text:"off",value:"off"},{text:"processing",value:"processing"}]},{key:"originPullProtocol",enDescriptor:"originPullProtocol",cnDescriptor:"回源协议类型",link:"",type:"select",list:[{text:"http",value:"http"},{text:"follow",value:"follow"},{text:"https",value:"https"}]},{key:"tagKey",enDescriptor:"tagKey",cnDescriptor:"标签键",link:"",type:"inputMulti"}],l={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"Domain",isp:"",district:"",queries:{Limit:20,Offset:0,origin:[],domain:[],resourceId:[],status:{},serviceType:{},projectId:[],domainType:{},fullUrlCache:{},https:{},originPullProtocol:{},tagKey:[]}};function p(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"CEIPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CEIPSUMMARYInstanceAliasList",(function(){return u})),n.d(t,"CEIPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"CEIPSUMMARYGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(4),a="QCE/CEIP_SUMMARY",c="ceipSummaryQuery",s={vip:"AddressIp",eip:"AddressIp"},u=["AddressId","AddressName","AddressIp"],l={instance:"AddressId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"address-id",enDescriptor:"address-id",cnDescriptor:" EIP 的唯一 ID",link:"",type:"inputMulti"},{key:"address-name",enDescriptor:"address-name",cnDescriptor:"EIP 名称",link:"",type:"inputMulti"},{key:"address-ip",enDescriptor:"address-ip",cnDescriptor:"EIP 的 IP 地址",link:"",type:"inputMulti"},{key:"address-status",enDescriptor:"address-status",cnDescriptor:"EIP 的状态",link:"",type:"select",multiple:!0,list:[{text:"CREATING",value:"CREATING"},{text:"BINDING",value:"BINDING"},{text:"BIND",value:"BIND"},{text:"UNBINDING",value:"UNBINDING"},{text:"UNBIND",value:"UNBIND"},{text:"OFFLINING",value:"OFFLINING"},{text:"BIND_ENI",value:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"EIP 绑定的实例 ID",link:"",type:"inputMulti"},{key:"private-ip-address",enDescriptor:"private-ip-address",cnDescriptor:"EIP 绑定的内网 IP ",link:"",type:"inputMulti"},{key:"network-interface-id",enDescriptor:"network-interface-id",cnDescriptor:" EIP 绑定的弹性网卡 ID",link:"",type:"inputMulti"},{key:"is-arrears",enDescriptor:"is-arrears",cnDescriptor:"EIP 是否欠费",link:"",type:"select",multiple:!0,list:[{text:"欠费状态",value:"TRUE"},{text:"费用状态正常",value:"FALSE"}]},{key:"address-isp",enDescriptor:"address-isp",cnDescriptor:"运营商类型",link:"",type:"select",multiple:!0,list:[{text:"BGP",value:"BGP"},{text:"CMCC",value:"CMCC"},{text:"CUCC",value:"CUCC"},{text:"CTCC",value:"CTCC"}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/215/16702",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",queries:{Limit:20,Offset:0,"address-id":[],"address-name":[],"address-ip":[],"address-status":{},"is-arrears":{},"address-isp":{},"instance-id":[],"private-ip-address":[],"network-interface-id":[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function h(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["eip"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return p})),n.d(t,"GetInstanceQueryParams",(function(){return a})),n.d(t,"queryMonitorExtraConfg",(function(){return l})),n.d(t,"keyInStorage",(function(){return u}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"TopicName",enDescriptor:"TopicName",cnDescriptor:"精确匹配TopicName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={topicId:"TopicId"},s={instance:"TopicName",subscription:"SubscriptionId"},u={subscriptionId:"subscriptionId"},l={subscriptionId:{dim_KeyInStorage:u.subscriptionId,dim_KeyInTarget:"subscriptionId",dim_KeyInMap:s.subscription}},p=["TopicName","TopicId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TopicName",subscriptionId:"",queries:{Offset:0,Limit:20,TopicName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CPMFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"CPMInstanceAliasList",(function(){return u})),n.d(t,"CPMInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"CPMGetInstanceQueryParams",(function(){return m}));var r=n(4),i=n(0),o=n.n(i),a="QCE/CPM",c="cpmQuery",s={instanceId:"InstanceId"},u=["InstanceId","Name"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DeviceClassCode",enDescriptor:"DeviceClassCode",cnDescriptor:"机型ID",link:"",type:"dropdown"},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"设备ID数组",link:"",type:"inputMulti"},{key:"WanIps",enDescriptor:"WanIps",cnDescriptor:"外网IP数组",link:"",type:"inputMulti"},{key:"LanIps",enDescriptor:"LanIps",cnDescriptor:"内网IP数组",link:"",type:"inputMulti"},{key:"Alias",enDescriptor:"Alias",cnDescriptor:"设备名称",link:"",type:"input"},{key:"VagueIp",enDescriptor:"VagueIp",cnDescriptor:"模糊IP查询",link:"",type:"input"},{key:"AutoRenewFlag",enDescriptor:"AutoRenewFlag",cnDescriptor:"自动续费标志",link:"",type:"select",list:[{text:"不自动续费",value:0},{text:"自动续费",value:1}]},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络唯一ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网唯一ID",link:"",type:"input"},{key:"DeviceType",enDescriptor:"DeviceType",cnDescriptor:"子网实例ID",link:"",type:"select",list:[{text:"计算型",value:"compute"},{text:"标准型",value:"standard"},{text:"存储型",value:"storage"}]},{key:"IsLuckyDevice",enDescriptor:"IsLuckyDevice",cnDescriptor:"竞价实例机器过滤",link:"",type:"select",list:[{text:"非竞价实例机器",value:0},{text:"竞价实例的机器",value:1}]}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/386/32904",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,DeviceClassCode:"",InstanceIds:[],WanIps:[],LanIps:[],Alias:"",VagueIp:"",AutoRenewFlag:{},VpcId:"",SubnetId:"",DeviceType:{},IsLuckyDevice:{}}};function m(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}function h(e){var t=o.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["instanceId"]})),t}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"ECDNFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"ECDNInstanceAliasList",(function(){return c})),n.d(t,"ECDNInvalidDemensions",(function(){return u})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECDNGetInstanceQueryParams",(function(){return f}));var r=n(0),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o.push({Name:t,Value:Object(r.uniq)(e).slice(0,5)}):Object(r.isObject)(e)&&(Object(r.isEmpty)(Object(r.get)(e,"value",[]))||o.push({Name:t,Value:[Object(r.get)(e,"value",[])].slice(0,5)}))})),o.length>0)return t.Filters=o.map((function(e){return"domain"===e.Name?i(i({},e),{Fuzzy:!0}):e})),t}return t}function m(e){var t=Object(r.cloneDeep)(e);return t.Dimensions.forEach((function(e){e.Dimensions=["domain","projectid"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"ECMFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"ECMInstanceAliasList",(function(){return s})),n.d(t,"ECMInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"ECMGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n(4),o="QCE/ECM",a="ecmQuery",c={uuid:"UUID"},s=["InstanceId","InstanceName"],u={instance:"InstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"zone",enDescriptor:"zone",cnDescriptor:"可用区英文标识",link:"",type:"dropdownMulti"},{key:"zone-name",enDescriptor:"zone-name",cnDescriptor:"排列顺序",link:"",type:"inputMulti"},{key:"module-id",enDescriptor:"module-id",cnDescriptor:"模块ID",link:"",type:"inputMulti"},{key:"module-name",enDescriptor:"module-name",cnDescriptor:"模块名称",link:"",type:"inputMulti"},{key:"instance-id",enDescriptor:"instance-id",cnDescriptor:"实例ID",link:"",type:"inputMulti"},{key:"instance-name",enDescriptor:"instance-name",cnDescriptor:"实例名称",link:"",type:"inputMulti"},{key:"ip-address",enDescriptor:"ip-address",cnDescriptor:"内网/公网IP",link:"",type:"inputMulti"},{key:"instance-uuid",enDescriptor:"instance-uuid",cnDescriptor:"实例uuid",link:"",type:"inputMulti"},{key:"instance-state",enDescriptor:"instance-state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"创建中",value:"PENDING"},{text:"创建失败",value:"LAUNCH_FAILED"},{text:"运行中",value:"RUNNING"},{text:"关机",value:"STOPPED"},{text:"开机中",value:"STARTING"},{text:"关机中",value:"STOPPING"},{text:"重启中",value:"REBOOTING"},{text:"停止待销毁",value:"SHUTDOWN"},{text:"销毁中",value:"TERMINATING"}]},{key:"internet-service-provider",enDescriptor:"internet-service-provider",cnDescriptor:"公网IP所属的运营商",link:"",type:"inputMulti"},{key:"instance-family",enDescriptor:"instance-family",cnDescriptor:"机型family",link:"",type:"inputMulti"},{key:"image-id",enDescriptor:"image-id",cnDescriptor:"镜像ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"实例的vpc id",link:"",type:"inputMulti"},{key:"subnet-id",enDescriptor:"subnet-id",cnDescriptor:"实例的subnet id",link:"",type:"inputMulti"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/1108/42565",namespace:o,fieldDescriptor:l},d={region:"ap-guangzhou",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,zone:[],"zone-name":[],"module-id":[],"module-name":[],"instance-id":[],"instance-name":[],"ip-address":[],"instance-uuid":[],"instance-state":{},"internet-service-provider":[],"instance-family":[],"image-id":[],"vpc-id":[],"subnet-id":[]}};function f(e){return void 0===e&&(e={}),Object(i.d)(e,!0)}function m(e){var t=r.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["UUID"]})),t}t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"PostgresFieldsDescriptor",(function(){return u})),n.d(t,"POSTGRESInstanceAliasList",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return y})),n.d(t,"modifyDimensons",(function(){return m})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"PostgreInvalidDemensions",(function(){return h})),n.d(t,"POSTGRESGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o=n(4),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function l(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 2===t.length&&(-1!==i.a.indexOf(t,"instanceid")&&-1!==i.a.indexOf(t,"insttype")||-1!==i.a.indexOf(t,"InstanceId")&&-1!==i.a.indexOf(t,"InstanceType"))}function p(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=e.Dimensions.map((function(e){return d[e]||e}))})),t}var d={instanceid:"InstanceId",insttype:"InstanceType",region:"Region"},f={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CESFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"CESInstanceAliasList",(function(){return c})),n.d(t,"CESInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"CESGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/CES",o="cesQuery",a={uInstanceId:"InstanceId"},c=["InstanceId","InstanceName"],s={instance:"InstanceId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"InstanceIds",enDescriptor:"InstanceIds",cnDescriptor:"集群实例ID列表",link:"",type:"inputMulti"},{key:"InstanceNames",enDescriptor:"InstanceNames",cnDescriptor:"集群实例名称列表",link:"",type:"inputMulti"},{key:"OrderByKey",enDescriptor:"OrderByKey",cnDescriptor:"排序字段",link:"",type:"select",list:[{text:"实例ID",value:1},{text:"实例名称",value:2},{text:"可用区",value:3},{text:"创建时间",value:4}]},{key:"OrderByType",enDescriptor:"OrderByType",cnDescriptor:"排序方式",link:"",type:"select",list:[{text:"升序",value:0},{text:"降序",value:1}]},{key:"IpList",enDescriptor:"IpList",cnDescriptor:"私有网络vip列表",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/845/30631",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,InstanceIds:[],InstanceNames:[],OrderByKey:{},OrderByType:{},IpList:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCFilterFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return f})),n.d(t,"DCInstanceAliasList",(function(){return d})),n.d(t,"DCInvalidDemensions",(function(){return m})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return u})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"DCGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=n(4),a="QCE/DC",c="dcQuery",s=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"DirectConnectIds",enDescriptor:"DirectConnectIds",cnDescriptor:"物理专线 ID",link:"",type:"inputMulti"}],u={instanceDocUrl:"https://cloud.tencent.com/document/api/216/34826",namespace:a,fieldDescriptor:s},l={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectId",queries:{Limit:20,Offset:0,DirectConnectIds:[]}};function p(e){return void 0===e&&(e={}),Object(o.d)(e,!1)}var d=["DirectConnectId","DirectConnectName"],f={instance:"DirectConnectId"},m={directConnectId:"DirectConnectId",directconnectid:"DirectConnectId"};function h(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["directConnectId"]})),t}t.default=l},function(e,t,n){"use strict";n.r(t),n.d(t,"DCGFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"DCGInstanceAliasList",(function(){return c})),n.d(t,"DCGInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"DCGGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/DCG",o="dcgQuery",a={directConnectGatewayId:"DirectConnectGatewayId"},c=["DirectConnectGatewayId","DirectConnectGatewayName"],s={instance:"DirectConnectGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"direct-connect-gateway-id",enDescriptor:"direct-connect-gateway-id",cnDescriptor:"专线网关唯一ID",link:"",type:"inputMulti"},{key:"direct-connect-gateway-name",enDescriptor:"direct-connect-gateway-name",cnDescriptor:"专线网关名称",link:"",type:"inputMulti"},{key:"direct-connect-gateway-ip",enDescriptor:"direct-connect-gateway-ip",cnDescriptor:"专线网关IP",link:"",type:"inputMulti"},{key:"gateway-type",enDescriptor:"gateway-type",cnDescriptor:"网关类型",link:"",type:"select",multiple:!0,list:[{text:"普通型",value:"NORMAL"},{text:"NAT型",value:"NAT"}]},{key:"network-type",enDescriptor:"network-type",cnDescriptor:"网络类型",link:"",type:"select",multiple:!0,list:[{text:"私有网络类型",value:"VPC"},{text:"云联网类型",value:"CCN"}]},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"专线网关所在云联网ID",link:"",type:"inputMulti"},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"专线网关所在私有网络ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/30644",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"DirectConnectGatewayId",queries:{Limit:20,Offset:0,"direct-connect-gateway-id":[],"direct-connect-gateway-name":[],"direct-connect-gateway-ip":[],"gateway-type":{},"network-type":{},"ccn-id":[],"vpc-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"DCXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return m})),n.d(t,"DCXInstanceAliasList",(function(){return f})),n.d(t,"DCXInvalidDemensions",(function(){return h})),n.d(t,"namespace",(function(){return c})),n.d(t,"queryEditorName",(function(){return s})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"modifyDimensons",(function(){return y})),n.d(t,"DCXGetInstanceQueryParams",(function(){return d}));var r=n(0),i=n.n(r),o=n(4),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var u=["InstanceId","InstanceName"],l={target:"InstanceId"},p={instance:"InstanceId",replica:"ReplicaSetId"},d={Replica:{dim_KeyInStorage:"ReplicaSets",dim_KeyInTarget:"replica",dim_KeyInMap:"ReplicaSetId",dim_KeyInIns:"ReplicaSetId"},Node:{dim_KeyInStorage:"ReplicaNodeSets",dim_KeyInTarget:"node",dim_KeyInMap:"NodeId",dim_KeyInIns:"NodeId"}};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"QAAPFilterFieldsDescriptor",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"QAAPInstanceAliasList",(function(){return u})),n.d(t,"QAAPInvalidDemensions",(function(){return s})),n.d(t,"namespace",(function(){return a})),n.d(t,"queryEditorName",(function(){return c})),n.d(t,"queryEditorConfig",(function(){return d})),n.d(t,"modifyDimensons",(function(){return h})),n.d(t,"QAAPGetInstanceQueryParams",(function(){return m}));var r=n(0),i=n.n(r),o=n(4),a="QCE/QAAP",c="qaapQuery",s={channelId:"InstanceId"},u=["InstanceId"],l={instance:"InstanceId"},p=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ProjectId",enDescriptor:"ProjectId",cnDescriptor:"项目ID",link:"",type:"inputMulti"},{key:"AccessRegion",enDescriptor:"AccessRegion",cnDescriptor:"接入地域",link:"",type:"inputMulti"},{key:"RealServerRegion",enDescriptor:"RealServerRegion",cnDescriptor:"源站地域",link:"",type:"inputMulti"},{key:"GroupId",enDescriptor:"GroupId",cnDescriptor:"通道组ID",link:"",type:"inputMulti"}],d={instanceDocUrl:"https://cloud.tencent.com/document/api/608/36963",namespace:a,fieldDescriptor:p},f={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"InstanceId",queries:{Limit:20,Offset:0,ProjectId:[],AccessRegion:[],RealServerRegion:[],GroupId:[]}};function m(e){return void 0===e&&(e={}),Object(o.d)(e,!0)}function h(e){return i.a.cloneDeep(e)}t.default=f},function(e,t,n){"use strict";n.r(t),n.d(t,"TCAPLUSFilterFieldsDescriptor",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TCAPLUSInstanceAliasList",(function(){return s})),n.d(t,"TCAPLUSInvalidDemensions",(function(){return c})),n.d(t,"namespace",(function(){return o})),n.d(t,"queryEditorName",(function(){return a})),n.d(t,"queryEditorConfig",(function(){return p})),n.d(t,"regonsMap",(function(){return m})),n.d(t,"TCAPLUSGetInstanceQueryParams",(function(){return f}));var r=n(0),i=n.n(r),o="QCE/TCAPLUS",a="tcaplusQuery",c={},s=["TableInstanceId","TableName"],u={instance:"TableInstanceId"},l=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ClusterId",enDescriptor:"ClusterId",cnDescriptor:"表格所属集群ID",link:"",type:"input"},{key:"TableGroupIds",enDescriptor:"TableGroupIds",cnDescriptor:"表格组ID列表",link:"",type:"inputMulti"},{key:"TableName",enDescriptor:"TableName",cnDescriptor:"表格名称",link:"",type:"input"},{key:"TableInstanceId",enDescriptor:"TableInstanceId",cnDescriptor:"表实例ID",link:"",type:"input"},{key:"TableIdlType",enDescriptor:"TableIdlType",cnDescriptor:"表格描述语言类型",link:"",type:"select",list:[{text:"PROTO",value:"PROTO"},{text:"TDR",value:"TDR"}]},{key:"TableType",enDescriptor:"TableType",cnDescriptor:"表格数据结构类型",link:"",type:"select",list:[{text:"GENERIC",value:"GENERIC"},{text:"LIST",value:"LIST"}]},{key:"ListElementNum",enDescriptor:"ListElementNum",cnDescriptor:"LIST表元素个数",link:"",type:"inputNumber"},{key:"ReservedVolume",enDescriptor:"ReservedVolume",cnDescriptor:"表格预留容量(GB)",link:"",type:"inputNumber"},{key:"ReservedReadQps",enDescriptor:"ReservedReadQps",cnDescriptor:"表格预留读CU",link:"",type:"inputNumber"},{key:"ReservedWriteQps",enDescriptor:"ReservedWriteQps",cnDescriptor:"表格预留写CU",link:"",type:"inputNumber"},{key:"Memo",enDescriptor:"Memo",cnDescriptor:"表格备注信息",link:"",type:"input"},{key:"FileName",enDescriptor:"FileName",cnDescriptor:"Key回档文件名,回档专用",link:"",type:"input"},{key:"FileExtType",enDescriptor:"FileExtType",cnDescriptor:"Key回档文件扩展名,回档专用",link:"",type:"input"},{key:"FileSize",enDescriptor:"FileSize",cnDescriptor:"Key回档文件大小,回档专用",link:"",type:"inputNumber"},{key:"FileContent",enDescriptor:"FileContent",cnDescriptor:"Key回档文件内容,回档专用",link:"",type:"input"}],p={instanceDocUrl:"https://cloud.tencent.com/document/api/596/39664",namespace:o,fieldDescriptor:l},d={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"TableInstanceId",queries:{Limit:20,Offset:0,ClusterId:"",TableGroupIds:[],TableName:"",TableInstanceId:"",TableIdlType:{},TableType:{},ListElementNum:null,ReservedVolume:null,ReservedReadQps:null,ReservedWriteQps:null,Memo:"",FileName:"",FileExtType:"",FileSize:null,FileContent:""}};function f(e){void 0===e&&(e={});var t={};t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,t.ClusterId=i.a.get(e,"ClusterId","")||"",t.TableGroupIds=i.a.get(e,"TableGroupIds",[])||[],e=i.a.omit(e,["Offset","Limit","TableGroupIds","ClusterId"]);var n=[];return i.a.forEach(e,(function(e,t){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(n[t]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(n[t]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(n[t]=e)})),t.SelectedTables=n,t}var m={"ap-beijing":"华北地区(北京)","ap-guangzhou":"华南地区(广州)","ap-hongkong":"港澳台地区(中国香港)","ap-seoul":"亚太东北(首尔)","ap-shanghai":"华东地区(上海)","ap-singapore":"亚太东南(新加坡)","ap-tokyo":"亚太东北(东京)","eu-frankfurt":"欧洲地区(法兰克福)","na-ashburn":"美国东部(弗吉尼亚)","na-siliconvalley":"美国西部(硅谷)"};t.default=d},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VBCInstanceAliasList",(function(){return c})),n.d(t,"VBCInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VBCGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/VBC",o="vbcQuery",a={},c=["CcnId","CcnName"],s={instance:"CcnId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"ccn-id",enDescriptor:"ccn-id",cnDescriptor:"CCN实例ID",link:"",type:"inputMulti"},{key:"ccn-name",enDescriptor:"ccn-name",cnDescriptor:"CCN名称",link:"",type:"inputMulti"},{key:"ccn-description",enDescriptor:"ccn-description",cnDescriptor:"CCN描述",link:"",type:"inputMulti"},{key:"state",enDescriptor:"state",cnDescriptor:"实例状态",link:"",type:"select",multiple:!0,list:[{text:"隔离中",value:"ISOLATED"},{text:"运行中",value:"AVAILABLE"}]}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/19199",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"CcnId",DRegion:"",SRegion:"",queries:{Limit:20,Offset:0,"ccn-id":[],"ccn-name":[],"ccn-description":[],state:{}}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNGWFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNGWInstanceAliasList",(function(){return c})),n.d(t,"VPNGWInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNGWGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/VPNGW",o="vpngwQuery",a={vpnGwId:"VpnGatewayId"},c=["VpnGatewayId","VpnGatewayName"],s={instance:"VpnGatewayId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-name",enDescriptor:"vpn-gateway-name",cnDescriptor:"VPN实例名称",link:"",type:"inputMulti"},{key:"type",enDescriptor:"type",cnDescriptor:"VPN网关类型",link:"",type:"select",multiple:!0,list:[{text:"IPSEC",value:"IPSEC"},{text:"SSL",value:"SSL"}]},{key:"public-ip-address",enDescriptor:"public-ip-address",cnDescriptor:"公网IP",link:"",type:"inputMulti"},{key:"renew-flag",enDescriptor:"renew-flag",cnDescriptor:"网关续费类型",link:"",type:"select",multiple:!0,list:[{text:"手动续费",value:"NOTIFY_AND_MANUAL_RENEW"},{text:"自动续费",value:"NOTIFY_AND_AUTO_RENEW"}]},{key:"zone",enDescriptor:"zone",cnDescriptor:"VPN所在可用区",link:"",type:"dropdownMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17514",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnGatewayId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"vpn-gateway-name":[],type:{},"public-ip-address":[],"renew-flag":{},zone:[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"VPNXFilterFieldsDescriptor",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"VPNXInstanceAliasList",(function(){return c})),n.d(t,"VPNXInvalidDemensions",(function(){return a})),n.d(t,"namespace",(function(){return i})),n.d(t,"queryEditorName",(function(){return o})),n.d(t,"queryEditorConfig",(function(){return l})),n.d(t,"VPNXGetInstanceQueryParams",(function(){return d}));var r=n(4),i="QCE/VPNX",o="vpnxQuery",a={vpnConnId:"VpnConnectionId"},c=["VpnConnectionId","VpnConnectionName"],s={instance:"VpnConnectionId"},u=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:100},{key:"vpc-id",enDescriptor:"vpc-id",cnDescriptor:"VPC实例ID",link:"",type:"inputMulti"},{key:"vpn-gateway-id",enDescriptor:"vpn-gateway-id",cnDescriptor:"VPN实例ID",link:"",type:"inputMulti"},{key:"customer-gateway-id ",enDescriptor:"customer-gateway-id ",cnDescriptor:"对端网关实例ID",link:"",type:"inputMulti"},{key:"vpn-connection-name",enDescriptor:"vpn-connection-name",cnDescriptor:"通道名称",link:"",type:"inputMulti"},{key:"vpn-connection-id",enDescriptor:"vpn-connection-id",cnDescriptor:"通道实例ID",link:"",type:"inputMulti"}],l={instanceDocUrl:"https://cloud.tencent.com/document/api/215/17515",namespace:i,fieldDescriptor:u},p={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"VpnConnectionId",queries:{Limit:20,Offset:0,"vpc-id":[],"vpn-gateway-id":[],"customer-gateway-id":[],"vpn-connection-name":[],"vpn-connection-id":[]}};function d(e){return void 0===e&&(e={}),Object(r.d)(e,!0)}t.default=p},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseFilterFieldsDescriptor",(function(){return a})),n.d(t,"LIGHTHOUSEInstanceAliasList",(function(){return u})),n.d(t,"LighthouseInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"modifyDimensons",(function(){return d})),n.d(t,"LIGHTHOUSEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l={instanceid:"InstanceId"},p={instance:"InstanceId"};function d(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CFSQueryDescriptor",(function(){return o})),n.d(t,"CFSInstanceAliasList",(function(){return s})),n.d(t,"CFSInvalidDemensions",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"regionSupported",(function(){return l})),n.d(t,"CFSGetInstanceQueryParams",(function(){return c}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"FileSystemId",enDescriptor:"File System Id",cnDescriptor:"文件系统 ID",link:"",type:"input"},{key:"VpcId",enDescriptor:"VpcId",cnDescriptor:"私有网络(VPC) ID",link:"",type:"input"},{key:"SubnetId",enDescriptor:"SubnetId",cnDescriptor:"子网 ID",link:"",type:"input"}],a={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"FileSystemId",version:"",queries:{Offset:0,Limit:20,FileSystemId:"",VpcId:"",SubnetId:""}};function c(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var s=["FileSystemId","FsName"],u={},l=[{value:"ap-beijing"},{value:"ap-chengdu"},{value:"ap-chongqing"},{value:"ap-guangzhou"},{value:"ap-hongkong"},{value:"ap-mumbai"},{value:"ap-nanjing"},{value:"ap-seoul"},{value:"ap-shanghai"},{value:"ap-shanghai-fsi"},{value:"ap-shenzhen-fsi"},{value:"ap-singapore"},{value:"ap-tokyo"},{value:"eu-frankfurt"},{value:"na-siliconvalley"},{value:"na-toronto"}],p={instance:"InstanceId"};t.default=a},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceQueryDescriptor",(function(){return o})),n.d(t,"InvalidDemensions",(function(){return c})),n.d(t,"templateQueryIdMap",(function(){return s})),n.d(t,"InstanceAliasList",(function(){return u})),n.d(t,"GetInstanceQueryParams",(function(){return a}));var r=n(0),i=n.n(r),o=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputNumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为10,最小值为1,最大值为100",link:"",type:"inputNumber",min:1,max:50},{key:"QueueName",enDescriptor:"QueueName",cnDescriptor:"精确匹配QueueName",link:"",type:"input"},{key:"TagKey",enDescriptor:"TagKey",cnDescriptor:"标签搜索",link:"",type:"input"}];function a(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var c={queueId:"QueueId",queueName:"QueueName"},s={instance:"QueueName"},u=["QueueName","QueueId"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"QueueName",queries:{Offset:0,Limit:20,QueueName:"",TagKey:""}}},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMFilterFieldsDescriptor",(function(){return a})),n.d(t,"CVMInstanceAliasList",(function(){return u})),n.d(t,"isValidMetric",(function(){return d})),n.d(t,"modifyDimensons",(function(){return f})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CVMGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["InstanceId","InstanceName","PrivateIpAddresses","PublicIpAddresses"],l=["CPUUsage","CpuLoadavg","Cpuloadavg5m","Cpuloadavg15m","BaseCpuUsage","GpuMemTotal","GpuMemUsage","GpuMemUsed","GpuPowDraw","GpuPowLimit","GpuPowUsage","GpuTemp","GpuUtil","LanOuttraffic","LanIntraffic","LanOutpkg","LanInpkg","WanOuttraffic","WanIntraffic","WanOutpkg","WanInpkg","AccOuttraffic","TcpCurrEstab","TimeOffset","MemUsed","MemUsage","CvmDiskUsage","BaseCpuUsage","VmDiskReadIops"],p={instance:"InstanceId"};function d(e){var t=i.a.map(l,i.a.toUpper);return-1!==i.a.indexOf(t,i.a.toUpper(e.MetricName))}function f(e){var t=i.a.cloneDeep(e);return t.Dimensions.forEach((function(e){e.Dimensions=["InstanceId"]})),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXInstanceAliasList",(function(){return u})),n.d(t,"PCXFieldsDescriptor",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"namespace",(function(){return a})),n.d(t,"PCXGetInstanceQueryParams",(function(){return p}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisFieldsDescriptor",(function(){return a})),n.d(t,"RedisInvalidDemensions",(function(){return p})),n.d(t,"templateQueryIdMap",(function(){return d})),n.d(t,"REDISInstanceAliasList",(function(){return l})),n.d(t,"isValidMetric",(function(){return u})),n.d(t,"REDISGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}function u(e){void 0===e&&(e={});var t=i.a.get(e,"Dimensions[0].Dimensions");return 1===t.length&&-1!==i.a.indexOf(t,"instanceid")}var l=["InstanceId","InstanceName","WanIp"],p={redis_uuid:"InstanceId",instanceid:"InstanceId"},d={instance:"InstanceId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFInvalidDemensions",(function(){return s})),n.d(t,"templateQueryIdMap",(function(){return u})),n.d(t,"TSFInstanceAliasList",(function(){return c})),n.d(t,"TSFFieldsDescriptor",(function(){return i})),n.d(t,"TSFGetInstanceQueryParams",(function(){return a}));var r=n(4),i=[{key:"Offset",enDescriptor:"Offset",cnDescriptor:"偏移量, 例如Offset=20&Limit=20 返回第 20 到 40 项",link:"",type:"inputnumber",min:0},{key:"Limit",enDescriptor:"Limit",cnDescriptor:"单次请求返回的数量,默认为20,最小值为1,最大值为100",link:"",type:"inputnumber",min:1,max:100},{key:"SearchWord",enDescriptor:"SearchWord",cnDescriptor:"搜索关键字",link:"",type:"input"},{key:"ApplicationIdList",enDescriptor:"ApplicationIdList",cnDescriptor:"应用ID 组成的数组",link:"",type:"inputmulti"},{key:"ApplicationType",enDescriptor:"ApplicationType",cnDescriptor:"应用类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"容器应用",value:"C"},{text:"普通应用/虚拟机应用",value:"V"}]},{key:"MicroserviceType",enDescriptor:"MicroserviceType",cnDescriptor:"应用的微服务类型",link:"",type:"select",list:[{text:"所有",value:""},{text:"普通应用",value:"N"},{text:"Mesh应用",value:"M"},{text:"微服务网关应用",value:"G"},{text:"原生应用",value:"NATIVE"}]},{key:"ApplicationResourceTypeList",enDescriptor:"ApplicationResourceTypeList",cnDescriptor:"应用资源类型数组",link:"",type:"select",multiple:!0,list:[{text:"默认资源类型",value:"DEF"},{text:"微服务网关资源",value:"GW"}]}],o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ApplicationId",queries:{Limit:20,Offset:0,SearchWord:"",OrderBy:"",OrderType:null,ApplicationType:"",MicroserviceType:"",ApplicationResourceTypeList:[],ApplicationIdList:[]}};function a(e){return void 0===e&&(e={}),Object(r.d)(e,!1)}var c=["ApplicationId","ApplicationName"],s={applicationid:"ApplicationId"},u={instance:"ApplicationId"};t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"BWPInstanceAliasList",(function(){return u})),n.d(t,"BWPInvalidDemensions",(function(){return p})),n.d(t,"BWPGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.BandwidthPackageIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["BandwidthPackageId","BandwidthPackageName"],l={instance:"BandwidthPackageId"},p={bandwidthPackageId:"BandwidthPackageId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"CDNInstanceAliasList",(function(){return u})),n.d(t,"CDNInvalidDemensions",(function(){return l})),n.d(t,"CDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ProjectId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"LBFilterDescriptor",(function(){return a})),n.d(t,"LBInstanceAliasList",(function(){return u})),n.d(t,"LBInvalidDemensions",(function(){return l})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"LBGetInstanceQueryParams",(function(){return s}));var r,i=n(0),o=n.n(i),a=[{key:"address-id",enDescriptor:"Address ID",cnDescriptor:"EIP 的唯一 ID ",link:"",type:"inputmulti"},{key:"address-name",enDescriptor:"Address Name",cnDescriptor:"EIP 名称 ",link:"",type:"inputmulti"},{key:"address-ip",enDescriptor:"Address IP",cnDescriptor:"EIP 的 IP 地址 ",link:"",type:"inputmulti"},{key:"address-status",enDescriptor:"Address Status",cnDescriptor:"EIP 的状态",link:"",type:"select",list:[{value:"CREATING",text:"CREATING"},{value:"BINDING",text:"BINDING"},{value:"BIND",text:"BIND"},{value:"UNBINDING",text:"UNBINDING"},{value:"UNBIND",text:"UNBIND"},{value:"OFFLINING",text:"OFFLINING"},{value:"BIND_ENI",text:"BIND_ENI"}]},{key:"instance-id",enDescriptor:"Instance ID",cnDescriptor:"实例ID ",link:"",type:"inputmulti"},{key:"private-ip-address",enDescriptor:"Private IP Address",cnDescriptor:"EIP 绑定的内网 IP",link:"",type:"inputmulti"},{key:"network-interface-id",enDescriptor:"Network Interface ID",cnDescriptor:"EIP 绑定的弹性网卡 ID",link:"",type:"inputmulti"},{key:"is-arrears",enDescriptor:"Arrears",cnDescriptor:"EIP 是否欠费 ",link:"",type:"select",list:[{text:"正常",value:"FALSE"},{text:"欠费",value:"TRUE"}]}],c={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"AddressId",version:"",queries:(r={Offset:0,Limit:20},r.AddressIds=[""],r.Filters={"address-id":[],"address-name":[],"address-ip":[],"address-status ":[],"instance-id ":[],"private-ip-address":[],"network-interface-id ":[],"is-arrears ":[]},r)};function s(e){void 0===e&&(e={});var t={};if(!o.a.isEmpty(e))if(t.Limit=o.a.get(e,"Limit",20)||20,t.Offset=o.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(o.a.isArray(e.AddressIds)){var n=o.a.compact(e.AddressIds);o.a.uniq(n).length>0&&(t.AddressIds=o.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];o.a.forEach(e.Filters,(function(e,t){r.length>9||(o.a.isArray(e)?(e=o.a.compact(e)).length>0&&r.push({Name:t,Values:o.a.uniq(e).slice(0,5)}):o.a.isObject(e)&&(o.a.isEmpty(o.a.get(e,"value",[]))||r.push({Name:t,Values:o.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var u=["AddressId","AddressName","AddressIp"],l={eip:"AddressIp"},p={instance:"AddressId"};t.default=c},function(e,t,n){"use strict";n.r(t),n.d(t,"NATGatewayFilterFieldsDescriptor",(function(){return c})),n.d(t,"NATGATEWAYInstanceAliasList",(function(){return a})),n.d(t,"templateQueryIdMap",(function(){return l})),n.d(t,"NATInvalidDemensions",(function(){return p})),n.d(t,"NATGATEWAYGetInstanceQueryParams",(function(){return u}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}var l={instance:"NatGatewayId"},p={natId:"NatGatewayId"};t.default=s},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNFilterFieldsDescriptor",(function(){return a})),n.d(t,"OVCDNInstanceAliasList",(function(){return u})),n.d(t,"templateQueryIdMap",(function(){return p})),n.d(t,"OVCDNInvalidDemensions",(function(){return l})),n.d(t,"OVCDNGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&n.push({Name:t,Value:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||n.push({Name:t,Value:i.a.get(e,"value",[]).slice(0,5)}))})),n.length>0&&(t.Filters=n)}return t}var u=["Domain","ResourceId"],l={projectId:"ProjectId",domain:"Domain"},p={instance:"Domain"};t.default=c},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}},function(e,t){e.exports=a},function(e,t){e.exports=c},function(e,t,n){"use strict";n.r(t),n.d(t,"TKEFilterFieldsDescriptor",(function(){return a})),n.d(t,"TKEInstanceAliasList",(function(){return c})),n.d(t,"TKEGetInstanceQueryParams",(function(){return s}));var r=n(0),i=n.n(r),o={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"ClusterId",conditions:[],groupBys:"",queries:{Limit:20,Offset:0,instanceIdsChecked:!1,filtersChecked:!0,ClusterIds:[""],Filters:{ClusterName:[],ClusterType:[],ClusterStatus:[],"tag-key":[]}}},a=[{key:"ClusterName",enDescriptor:"Cluster Name",cnDescriptor:"集群名",link:"",type:"input"},{key:"ClusterType",enDescriptor:"Cluster Type",cnDescriptor:"集群类型",link:"",type:"inputmulti"},{key:"ClusterStatus",enDescriptor:"Cluster Status",cnDescriptor:"集群状态",link:"",type:"inputmulti"},{key:"Tags",enDescriptor:"Tags",cnDescriptor:"标签键值对",link:"",type:"inputmulti"},{key:"vpc-id",enDescriptor:"VPC",cnDescriptor:"VPC",link:"",type:"input"},{key:"tag-key",enDescriptor:"Tag Key",cnDescriptor:"标签键",link:"",type:"inputmulti"},{key:"tag-value",enDescriptor:"Tag Value",cnDescriptor:"标签值",link:"",type:"inputmulti"}],c=["ClusterId","ClusterName"];function s(e){void 0===e&&(e={});var t={};if(!i.a.isEmpty(e))if(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e.instanceIdsChecked){if(i.a.isArray(e.InstanceIds)){var n=i.a.compact(e.InstanceIds);i.a.uniq(n).length>0&&(t.InstanceIds=i.a.uniq(n).slice(0,100))}}else if(e.filtersChecked){var r=[];i.a.forEach(e.Filters,(function(e,t){r.length>9||(i.a.isArray(e)?(e=i.a.compact(e)).length>0&&r.push({Name:t,Values:i.a.uniq(e).slice(0,5)}):i.a.isObject(e)&&(i.a.isEmpty(i.a.get(e,"value",[]))||r.push({Name:t,Values:i.a.get(e,"value",[]).slice(0,5)})))})),r.length>0&&(t.Filters=r)}return t}t.default=o},function(e,t,n){"use strict";n.r(t);var r,i=n(21),o=n(3),a=n(2),c=n(4),s=n(8),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?k.map((function(e){return{TopicId:e.TopicId,TopicName:e.TopicName}})):I,PartitionList:C.length>0?C:D}]}}))}))},t.prototype.formatTopicVarDisplay=function(e,t,n){var r=this;return t?t.replace(/\$\{(\w+)\}/g,(function(t,n){return n&&r.TopicAliasList.includes(n)?r.getAliasValue(e,n):""})):this.getAliasValue(e,n)},t.prototype.fetchMetricData=function(e,t,n,r){return d(this,void 0,void 0,(function(){var i,o,a,c,s,p,d,m,h,y=this;return f(this,(function(f){switch(f.label){case 0:return i=r.topicalias,o=r.groupname,a=r.topicid,[4,this.getConsumerGroups(t,{InstanceId:n.InstanceId,groupname:o,topicid:a})];case 1:return c=f.sent(),s=r.display,p=c.TopicList,d=c.GroupList,m=c.PartitionList,i=this.TopicAliasList.includes(i)?i:this.templateQueryIdMap.topicId,h={GroupList:d.map((function(e){return e._InstanceAliasValue=e.GroupName,{text:e.GroupName,value:e[u.templateQueryIdMap.groupName]}})),TopicList:p.map((function(e){var t=y.formatTopicVarDisplay(e,s,i);return e._InstanceAliasValue=t||e[u.templateQueryIdMap.topicId],{text:t||e[u.templateQueryIdMap.topicId],value:e[u.templateQueryIdMap.topicId],TopicName:e.TopicName}})),PartitionList:m.map((function(e){return e._InstanceAliasValue=e[u.templateQueryIdMap.partition],{text:e[u.templateQueryIdMap.partition],value:e[u.templateQueryIdMap.partition]}}))},[4,l.a.setExtraStorage(this.service,this.keyInStorage.TopicList,p)];case 2:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.GroupList,d)];case 3:return f.sent(),[4,l.a.setExtraStorage(this.service,this.keyInStorage.PartitionList,m)];case 4:switch(f.sent(),e){case"DescribeTopicList":return[2,h.TopicList];case"DescribeGroup":return[2,h.GroupList];case"DescribePartion":return[2,h.PartitionList];default:return[2,[]]}return[2]}}))}))},t}(s.BaseDatasource);t.default=m},function(e,t,n){"use strict";n.r(t);var r,i=n(12),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(4),l=n(8),p=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=i)return r;var o=Object(s.k)(i,50),a=[];return c.a.forEach(o,(function(t){a.push(n.getInstances(e,t))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){r=c.a.concat(r,e)})),r})).catch((function(e){return r}))}))},t.prototype.getVpcId=function(e,t){void 0===t&&(t={}),(t=l({Offset:0,Limit:20},t)).Offset=String(t.Offset),t.Limit=String(t.Limit);var n=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+n.path,data:t},n.service,{region:e,action:"DescribeVpcs"}).then((function(e){return c.a.map(e.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}))}))},t.prototype.getVpcIds=function(e){var t=this,n=[],r={Offset:0,Limit:100};r.Offset=String(r.Offset),r.Limit=String(r.Limit);var i=Object(s.e)(e,"vpc");return this.doRequest({url:this.url+i.path,data:r},i.service,{region:e,action:"DescribeVpcs"}).then((function(r){n=c.a.map(r.VpcSet||[],(function(e){return{text:e.VpcId,value:e.VpcId}}));var i=r.TotalCount||0;if(n.length>=i)return n;var o=Object(s.k)(i,100),a=[];return c.a.forEach(o,(function(n){a.push(t.getVpcId(e,n))})),Promise.all(a).then((function(e){return c.a.forEach(e,(function(e){n=c.a.concat(n,e)})),n})).catch((function(e){return n}))}))},t.prototype.doRequestV2=function(e,t,n){return void 0===n&&(n={}),p(this,void 0,void 0,(function(){return d(this,(function(r){switch(r.label){case 0:return[4,Object(s.d)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return c.a.get(e,"data",{})})).catch((function(e){throw e}))]}}))}))},t}(o.BaseDatasource);t.default=f},function(e,t,n){"use strict";n.r(t);var r,i=n(39),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace=i.namespace,o.InstanceAliasList=i.POSTGRESInstanceAliasList,o.InvalidDimensions=i.PostgreInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"postgres",action:"DescribeDBInstances",responseField:"DBInstanceSet"},o.MetricReqConfig={resultFilter:i.modifyDimensons},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(0),o=n(49),a=n(3),c=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?"_".concat(r.timeshift):"";return{target:"".concat(e.MetricName," - ").concat(o).concat(a),datapoints:Object(i.map)(t.Values,(function(e){return[e.Value,1e3*e.Timestamp+d]}))}}))})))}))},t}(c.BaseDatasource);t.default=p},function(e,t,n){"use strict";n.r(t);var r,i=n(60),o=n(3),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.Namespace="QCE/TSF",o.InstanceAliasList=i.TSFInstanceAliasList,o.InvalidDimensions=i.TSFInvalidDemensions,o.templateQueryIdMap=i.templateQueryIdMap,o.InstanceReqConfig={service:"tsf",action:"DescribeApplications",responseField:"Content"},o}return a(t,e),t}(o.BaseDatasource);t.default=c},function(e,t,n){"use strict";n.r(t);var r,i=n(23),o=n(3),a=n(0),c=n.n(a),s=n(2),u=n(1),l=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,l)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(29);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(30);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(31);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"BWPQueryCtrl",(function(){return a})),n.d(t,"bwpQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(61),a=function(){function e(e,t){e.init=function(){e.BWPFilterFieldsDescriptor=o.BWPFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("bwpQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(32);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDBQueryCtrl",(function(){return a})),n.d(t,"cdbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(42),a=function(){function e(e,t){e.init=function(){e.CDBFieldsDescriptor=o.CDBFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"ZoneIds":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cdb",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"CDNQueryCtrl",(function(){return a})),n.d(t,"cdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(62),a=function(){function e(e,t){e.init=function(){e.CDNFilterFieldsDescriptor=o.CDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return l})),n.d(t,"sQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(33),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,p)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(34);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(43);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(55),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cfsQuery",u)},function(e,t,n){"use strict";n.r(t),n.d(t,"CKAFKAQueryCtrl",(function(){return l})),n.d(t,"scfQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(10),a=n(4),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 主题,消费分组,分区 --\x3e\n \n\n \n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"=",instance:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("ckafkaQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return f}));var r=n(6),i=n.n(r),o=n(0),a=n(12),c=n(2),s=n(4),u=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},l=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\n\x3c!--Listener维度部分--\x3e\n\n\n\n');function f(){return{template:d,controller:p,restrict:"E",scope:{target:"=",namespace:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("clbQuery",f)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return a})),n.d(t,"sQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(27),a=function(){function e(e,t){e.init=function(){e.GSEFilterFieldsDescriptor=o.CLSFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(56);Object(r.default)("cmqQuery",{fieldDescriptor:i.InstanceQueryDescriptor,instanceDocUrl:"https://cloud.tencent.com/document/api/406/42624",namespace:"QCE/CMQ"})},function(e,t,n){"use strict";n.r(t),n.d(t,"CmqTopicQueryCtrl",(function(){return u})),n.d(t,"scfQuery",(function(){return l}));var r=n(6),i=n.n(r),o=n(35),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 主题的ui --\x3e\n \n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("cmqTopicQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"InstanceAliasList",(function(){return a})),n.d(t,"GetInstanceQueryParams",(function(){return o}));var r=n(0),i=n.n(r);function o(e){void 0===e&&(e={});var t={};return i.a.isEmpty(e)||(t.Limit=i.a.get(e,"Limit",20)||20,t.Offset=i.a.get(e,"Offset",0)||0,e=i.a.omit(e,["Offset","Limit"]),i.a.forEach(e,(function(e,n){i.a.isArray(e)?(e=i.a.compact(e)).length>0&&(t[n]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t[n]=i.a.get(e,"value")):!i.a.isNumber(e)&&i.a.isEmpty(e)||(t[n]=e)}))),t}var a=["BucketName"];t.default={region:"",metricName:"",metricUnit:"",period:void 0,dimensionObject:null,instance:"",instanceAlias:"BucketName",queries:{}}},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(36);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"CVMQueryCtrl",(function(){return a})),n.d(t,"cvmQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(57),a=function(){function e(e,t){e.init=function(){e.CVMFilterFieldsDescriptor=o.CVMFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("cvmQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(24);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(44);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(15),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(45);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(46);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(37);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(38);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return s})),n.d(t,"sQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(20),a=n(2),c=[{label:"diskId",field:"diskId"}],s=function(){function e(e,t){e.init=function(){e.ECMBLOCKSTORAGEFilterFieldsDescriptor=o.ECMBLOCKSTORAGEFilterFieldsDescriptor,e.ExtraFields=c,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n,r;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})||t.label in(null!==(r=e.dims)&&void 0!==r?r:{})}))},e.getExtraDropdown=function(t,n){var r=t.instance,i=Object(a.f)(e.namespace);r=e.datasource.getServiceFn(i,"getVariable")(r);try{return(r=JSON.parse(r)).DataDisks.map((function(e){return e._InstanceAliasValue=e[o.templateQueryIdMap.diskId],{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}catch(t){var c={InstanceId:r};return e.datasource.getServiceFn(i,"getDiskList")({payload:c}).map((function(e){return{text:e[o.templateQueryIdMap.diskId],value:JSON.stringify(e)}}))}},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(47);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(14),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"LBQueryCtrl",(function(){return a})),n.d(t,"lbQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(63),a=function(){function e(e,t){e.init=function(){e.LBFilterDescriptor=o.LBFilterDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("cvm",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n
\n\n
\n
\n
\n
\n \n \n
\n
\n\n\x3c!--Filters部分--\x3e\n
\n\n
\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lbQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"LighthouseQueryCtrl",(function(){return a})),n.d(t,"lighthouseQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(54),a=function(){function e(e,t){e.init=function(){e.LighthouseFilterFieldsDescriptor=o.LighthouseFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"zone":return e.getZones();default:return[]}},e.getZones=function(){return e.region?e.datasource.getZones("lighthouse",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("lighthouseQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"MongoDBQueryCtrl",(function(){return p})),n.d(t,"mongodbQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(0),a=n(48),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n \n\n\n\n\n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onRefresh:"&",onChange:"&"},link:function(e,t,n){e.$watch("target.instance",(function(t,n){var r;null===(r=e.onInstanceChange)||void 0===r||r.call(e,t,n)}))}}}i.a.directive("mongodbQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"MrQueryCtrl",(function(){return u})),n.d(t,"mrQuery",(function(){return l}));var r=n(22),i=n(6),o=n.n(i),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\x3c!-- 主题的ui --\x3e\n \n\n \n',controller:u,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}o.a.directive("mrQuery",l)},function(e,t,n){"use strict";n.r(t),n.d(t,"NatGatewayQueryCtrl",(function(){return a})),n.d(t,"natGatewayQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(64),a=function(){function e(e,t){e.init=function(){e.NATGatewayFilterFieldsDescriptor=o.NATGatewayFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("natGatewayQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"OVCDNQueryCtrl",(function(){return a})),n.d(t,"ovCdnQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(65),a=function(){function e(e,t){e.init=function(){e.OVCDNFilterFieldsDescriptor=o.OVCDNFilterFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}i.a.directive("ovCdnQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"PCXQueryCtrl",(function(){return a})),n.d(t,"pcxQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(58),a=function(){function e(e,t){e.init=function(){e.PCXFieldsDescriptor=o.PCXFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(t){switch(t){case"vpcId":return e.getVpcIds();default:return[]}},e.getVpcIds=function(){return e.region?e.datasource.getVpcIds("pcx",e.region):[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("pcxQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(39);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(49);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisQueryCtrl",(function(){return a})),n.d(t,"redisQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(59),a=function(){function e(e,t){e.init=function(){e.RedisFieldsDescriptor=o.RedisFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.getDropdown=function(e){return[]},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("redisQuery",c)},function(e,t,n){"use strict";n.r(t),n.d(t,"RedisMemQueryCtrl",(function(){return l})),n.d(t,"redisMemQuery",(function(){return p}));var r=n(6),i=n.n(r),o=n(0),a=n(16),c=n(2),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n \n\n\n\n\n\n',controller:l,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("redisMemQuery",p)},function(e,t,n){"use strict";n.r(t),n.d(t,"SCFQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(25),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n\n\n\n\x3c!-- version部分 --\x3e\n\n\n \n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&"}}}i.a.directive("scfQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(28);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(50);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(13),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive(o.queryEditorName,d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return p})),n.d(t,"sQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(17),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRabbitmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"TdmqRocketmqQueryCtrl",(function(){return p})),n.d(t,"tdmqRocketmqQuery",(function(){return d}));var r=n(6),i=n.n(r),o=n(18),a=n(2),c=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]\n \n\n\x3c!-- 起始区域 目的区域等 --\x3e\n \n\n',controller:p,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="},link:function(e,t,n){e.$watch("target.instance",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)})),e.$watch("target.metricName",(function(){var t;null===(t=e.clearExtrasAlias)||void 0===t||t.call(e)}))}}}i.a.directive("tdmqRocketmqQuery",d)},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryCtrl",(function(){return c})),n.d(t,"sQuery",(function(){return s}));var r=n(6),i=n.n(r),o=n(0),a=n(69),c=function(){function e(e,t){e.init=function(){e.TKEFilterFieldsDescriptor=a.TKEFilterFieldsDescriptor},e.onChecked=function(t,n){!0===e.target.queries[t]&&(e.target.queries[n]=!1),e.onChange()},e.addCondition=function(){e.target.conditions.push({Key:"",Operator:"=",Value:""})},e.deleteCondition=function(t){var n=e.target.conditions[t];Object(o.isEmpty)(n.Key)||Object(o.isEmpty)(n.Operator)||Object(o.isEmpty)(n.Value)?e.target.conditions.splice(t,1):(e.target.conditions.splice(t,1),e.onRefresh())},e.getOperator=function(){return Promise.resolve([{text:"=",value:"="},{text:"in",value:"in"}])},e.init()}return e.$inject=["$scope","$rootScope"],e}();function s(){return{template:'\n\n',controller:c,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("tkeQuery",s)},function(e,t,n){"use strict";n.r(t),n.d(t,"TSFQueryCtrl",(function(){return a})),n.d(t,"tsfQuery",(function(){return c}));var r=n(6),i=n.n(r),o=n(60),a=function(){function e(e,t){e.init=function(){e.TSFFieldsDescriptor=o.TSFFieldsDescriptor},e.init()}return e.$inject=["$scope","$rootScope"],e}();function c(){return{template:'\n\n',controller:a,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",onChange:"&"}}}i.a.directive("tsfQuery",c)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(23);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t),n.d(t,"VBCQueryCtrl",(function(){return s})),n.d(t,"scfQuery",(function(){return u}));var r=n(6),i=n.n(r),o=n(51),a=n(2),c=[],s=function(){function e(e,t){e.init=function(){e.VBCFilterFieldsDescriptor=o.VBCFilterFieldsDescriptor,e.namespace=o.namespace},e.getExtraFields=function(){return c.filter((function(t){var n;return t.field in(null!==(n=e.dims)&&void 0!==n?n:{})}))},e.getExtraDropdown=function(t){var n=Object(a.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t})},e.init()}return e.$inject=["$scope","$rootScope"],e}();function u(){return{template:'\n\n
\n\n\x3c!-- 起始区域 目的区域等 --\x3e\n
\n
\n',controller:s,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&",onRefresh:"&",dims:"="}}}i.a.directive("vbcQuery",u)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(40);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(52);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(53);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){"use strict";n.r(t);var r=n(7),i=n(41);Object(r.default)(i.queryEditorName,i.queryEditorConfig)},function(e,t,n){var r={".":19,"./":19,"./MonitorDatasource":182,"./MonitorDatasource.ts":182,"./_base/datasource":3,"./_base/datasource.ts":3,"./_base/query":7,"./_base/query.ts":7,"./_base/query_filter":185,"./_base/query_filter.ts":185,"./_base/types":186,"./_base/types.ts":186,"./apigateway/datasource":70,"./apigateway/datasource.ts":70,"./apigateway/query":126,"./apigateway/query.ts":126,"./apigateway/query_def":21,"./apigateway/query_def.ts":21,"./bmIntraLb/datasource":71,"./bmIntraLb/datasource.ts":71,"./bmIntraLb/query":127,"./bmIntraLb/query.ts":127,"./bmIntraLb/query_def":29,"./bmIntraLb/query_def.ts":29,"./bm_lb/datasource":72,"./bm_lb/datasource.ts":72,"./bm_lb/query":128,"./bm_lb/query.ts":128,"./bm_lb/query_def":30,"./bm_lb/query_def.ts":30,"./bm_pcx/datasource":73,"./bm_pcx/datasource.ts":73,"./bm_pcx/query":129,"./bm_pcx/query.ts":129,"./bm_pcx/query_def":31,"./bm_pcx/query_def.ts":31,"./bwp/datasource":74,"./bwp/datasource.ts":74,"./bwp/query":130,"./bwp/query.ts":130,"./bwp/query_def":61,"./bwp/query_def.ts":61,"./cbs/datasource":75,"./cbs/datasource.ts":75,"./cbs/query":131,"./cbs/query.ts":131,"./cbs/query_def":32,"./cbs/query_def.ts":32,"./cdb/datasource":76,"./cdb/datasource.ts":76,"./cdb/query":132,"./cdb/query.ts":132,"./cdb/query_def":42,"./cdb/query_def.ts":42,"./cdn/datasource":77,"./cdn/datasource.ts":77,"./cdn/query":133,"./cdn/query.ts":133,"./cdn/query_def":62,"./cdn/query_def.ts":62,"./cdn_province/datasource":78,"./cdn_province/datasource.ts":78,"./cdn_province/query":134,"./cdn_province/query.ts":134,"./cdn_province/query_def":33,"./cdn_province/query_def.ts":33,"./ceip_summary/datasource":79,"./ceip_summary/datasource.ts":79,"./ceip_summary/query":135,"./ceip_summary/query.ts":135,"./ceip_summary/query_def":34,"./ceip_summary/query_def.ts":34,"./ces/datasource":80,"./ces/datasource.ts":80,"./ces/query":136,"./ces/query.ts":136,"./ces/query_def":43,"./ces/query_def.ts":43,"./cfs/datasource":81,"./cfs/datasource.ts":81,"./cfs/query":137,"./cfs/query.ts":137,"./cfs/query_def":55,"./cfs/query_def.ts":55,"./ckafka/datasource":82,"./ckafka/datasource.ts":82,"./ckafka/query":138,"./ckafka/query.ts":138,"./ckafka/query_def":10,"./ckafka/query_def.ts":10,"./clb/datasource":83,"./clb/datasource.ts":83,"./clb/query":139,"./clb/query.ts":139,"./clb/query_def":12,"./clb/query_def.ts":12,"./cls/datasource":84,"./cls/datasource.ts":84,"./cls/query":140,"./cls/query.ts":140,"./cls/query_def":27,"./cls/query_def.ts":27,"./cmq/datasource":85,"./cmq/datasource.ts":85,"./cmq/query":141,"./cmq/query.ts":141,"./cmq/query_def":56,"./cmq/query_def.ts":56,"./cmq_topic/datasource":86,"./cmq_topic/datasource.ts":86,"./cmq_topic/query":142,"./cmq_topic/query.ts":142,"./cmq_topic/query_def":35,"./cmq_topic/query_def.ts":35,"./cos/datasource":87,"./cos/datasource.ts":87,"./cos/query_def":143,"./cos/query_def.ts":143,"./cpm/datasource":88,"./cpm/datasource.ts":88,"./cpm/query":144,"./cpm/query.ts":144,"./cpm/query_def":36,"./cpm/query_def.ts":36,"./cvm/datasource":89,"./cvm/datasource.ts":89,"./cvm/query":145,"./cvm/query.ts":145,"./cvm/query_def":57,"./cvm/query_def.ts":57,"./cynosdb_mysql/datasource":90,"./cynosdb_mysql/datasource.ts":90,"./cynosdb_mysql/query":146,"./cynosdb_mysql/query.ts":146,"./cynosdb_mysql/query_def":24,"./cynosdb_mysql/query_def.ts":24,"./dc/datasource":91,"./dc/datasource.ts":91,"./dc/query":147,"./dc/query.ts":147,"./dc/query_def":44,"./dc/query_def.ts":44,"./dcdb/datasource":92,"./dcdb/datasource.ts":92,"./dcdb/query":148,"./dcdb/query.ts":148,"./dcdb/query_def":15,"./dcdb/query_def.ts":15,"./dcg/datasource":93,"./dcg/datasource.ts":93,"./dcg/query":149,"./dcg/query.ts":149,"./dcg/query_def":45,"./dcg/query_def.ts":45,"./dcx/datasource":94,"./dcx/datasource.ts":94,"./dcx/query":150,"./dcx/query.ts":150,"./dcx/query_def":46,"./dcx/query_def.ts":46,"./ecdn/datasource":95,"./ecdn/datasource.ts":95,"./ecdn/query":151,"./ecdn/query.ts":151,"./ecdn/query_def":37,"./ecdn/query_def.ts":37,"./ecm/datasource":96,"./ecm/datasource.ts":96,"./ecm/query":152,"./ecm/query.ts":152,"./ecm/query_def":38,"./ecm/query_def.ts":38,"./ecm_block_storage/datasource":97,"./ecm_block_storage/datasource.ts":97,"./ecm_block_storage/query":153,"./ecm_block_storage/query.ts":153,"./ecm_block_storage/query_def":20,"./ecm_block_storage/query_def.ts":20,"./ecm_lb/datasource":98,"./ecm_lb/datasource.ts":98,"./ecm_lb/query":154,"./ecm_lb/query.ts":154,"./ecm_lb/query_def":47,"./ecm_lb/query_def.ts":47,"./gse/datasource":99,"./gse/datasource.ts":99,"./gse/query":155,"./gse/query.ts":155,"./gse/query_def":14,"./gse/query_def.ts":14,"./index":19,"./index.ts":19,"./lb/datasource":100,"./lb/datasource.ts":100,"./lb/query":156,"./lb/query.ts":156,"./lb/query_def":63,"./lb/query_def.ts":63,"./lighthouse/datasource":101,"./lighthouse/datasource.ts":101,"./lighthouse/query":157,"./lighthouse/query.ts":157,"./lighthouse/query_def":54,"./lighthouse/query_def.ts":54,"./mongodb/datasource":102,"./mongodb/datasource.ts":102,"./mongodb/query":158,"./mongodb/query.ts":158,"./mongodb/query_def":48,"./mongodb/query_def.ts":48,"./mr/datasource":103,"./mr/datasource.ts":103,"./mr/query":159,"./mr/query.ts":159,"./mr/query_def":22,"./mr/query_def.ts":22,"./nat_gateway/datasource":104,"./nat_gateway/datasource.ts":104,"./nat_gateway/query":160,"./nat_gateway/query.ts":160,"./nat_gateway/query_def":64,"./nat_gateway/query_def.ts":64,"./ov_cdn/datasource":105,"./ov_cdn/datasource.ts":105,"./ov_cdn/query":161,"./ov_cdn/query.ts":161,"./ov_cdn/query_def":65,"./ov_cdn/query_def.ts":65,"./pcx/datasource":106,"./pcx/datasource.ts":106,"./pcx/query":162,"./pcx/query.ts":162,"./pcx/query_def":58,"./pcx/query_def.ts":58,"./postgresql/datasource":107,"./postgresql/datasource.ts":107,"./postgresql/query":163,"./postgresql/query.ts":163,"./postgresql/query_def":39,"./postgresql/query_def.ts":39,"./qaap/datasource":108,"./qaap/datasource.ts":108,"./qaap/query":164,"./qaap/query.ts":164,"./qaap/query_def":49,"./qaap/query_def.ts":49,"./redis/datasource":109,"./redis/datasource.ts":109,"./redis/query":165,"./redis/query.ts":165,"./redis/query_def":59,"./redis/query_def.ts":59,"./redis_mem/datasource":110,"./redis_mem/datasource.ts":110,"./redis_mem/query":166,"./redis_mem/query.ts":166,"./redis_mem/query_def":16,"./redis_mem/query_def.ts":16,"./scf/datasource":111,"./scf/datasource.ts":111,"./scf/query":167,"./scf/query.ts":167,"./scf/query_def":25,"./scf/query_def.ts":25,"./sqlserver/datasource":112,"./sqlserver/datasource.ts":112,"./sqlserver/query":168,"./sqlserver/query.ts":168,"./sqlserver/query_def":28,"./sqlserver/query_def.ts":28,"./tcaplus/datasource":113,"./tcaplus/datasource.ts":113,"./tcaplus/query":169,"./tcaplus/query.ts":169,"./tcaplus/query_def":50,"./tcaplus/query_def.ts":50,"./tdmq/datasource":114,"./tdmq/datasource.ts":114,"./tdmq/query":170,"./tdmq/query.ts":170,"./tdmq/query_def":13,"./tdmq/query_def.ts":13,"./tdmq_rabbitmq/datasource":115,"./tdmq_rabbitmq/datasource.ts":115,"./tdmq_rabbitmq/query":171,"./tdmq_rabbitmq/query.ts":171,"./tdmq_rabbitmq/query_def":17,"./tdmq_rabbitmq/query_def.ts":17,"./tdmq_rocketmq/datasource":116,"./tdmq_rocketmq/datasource.ts":116,"./tdmq_rocketmq/query":172,"./tdmq_rocketmq/query.ts":172,"./tdmq_rocketmq/query_def":18,"./tdmq_rocketmq/query_def.ts":18,"./tke/datasource":117,"./tke/datasource.ts":117,"./tke/query":173,"./tke/query.ts":173,"./tke/query_def":69,"./tke/query_def.ts":69,"./tsf/datasource":118,"./tsf/datasource.ts":118,"./tsf/query":174,"./tsf/query.ts":174,"./tsf/query_def":60,"./tsf/query_def.ts":60,"./v_clb/datasource":119,"./v_clb/datasource.ts":119,"./v_clb/query":175,"./v_clb/query.ts":175,"./v_clb/query_def":23,"./v_clb/query_def.ts":23,"./vbc/datasource":120,"./vbc/datasource.ts":120,"./vbc/query":176,"./vbc/query.ts":176,"./vbc/query_def":51,"./vbc/query_def.ts":51,"./vpc_net_detect/datasource":121,"./vpc_net_detect/datasource.ts":121,"./vpc_net_detect/query":177,"./vpc_net_detect/query.ts":177,"./vpc_net_detect/query_def":40,"./vpc_net_detect/query_def.ts":40,"./vpngw/datasource":122,"./vpngw/datasource.ts":122,"./vpngw/query":178,"./vpngw/query.ts":178,"./vpngw/query_def":52,"./vpngw/query_def.ts":52,"./vpnx/datasource":123,"./vpnx/datasource.ts":123,"./vpnx/query":179,"./vpnx/query.ts":179,"./vpnx/query_def":53,"./vpnx/query_def.ts":53,"./waf/datasource":124,"./waf/datasource.ts":124,"./waf/query":180,"./waf/query.ts":180,"./waf/query_def":41,"./waf/query_def.ts":41};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=181},function(e,t,n){"use strict";n.r(t),n.d(t,"TCMonitorDatasource",(function(){return u}));var r=n(0),i=n.n(r),o=n(19),a=n(2),c=n(4),s=n(9),u=function(){function e(e,t,n){var r=this;this.instanceSettings=e,this.backendSrv=t,this.templateSrv=n,i.a.forEach(o.Datasources,(function(e,t){r[t]=new e(r.instanceSettings,r.backendSrv,r.templateSrv)}))}return e.$inject=["instanceSettings","backendSrv","templateSrv"],e.prototype.getNamespaces=function(){var e=this,t=[];return i.a.forEach(o.SERVICES,(function(n){!0===e.instanceSettings.jsonData[n.service]&&t.push(n)})),t},e.prototype.getCascaderNamespaces=function(){var e=this,t=o.SERVICES.filter((function(t){return e.instanceSettings.jsonData[t.service]}));return Object(c.f)(t)},e.prototype.getSelectedServices=function(){var e=this.getNamespaces();return i.a.map(e,(function(e){var t=e.namespace;return Object(a.f)(t)}))},e.prototype.query=function(e){var t=this,n=[],r=this.getSelectedServices();return i.a.forEach(r,(function(r){var o=i.a.cloneDeep(e),a=i.a.filter(o.targets,(function(e){return e.service===r}));if(o.targets=a,o.targets.length>0){var c=t["".concat(i.a.toUpper(r),"Datasource")].query(o);c&&n.push(c)}})),0===n.length?Promise.resolve({data:[],state:s.LoadingState.Done}):Promise.all(n).then((function(e){return{data:i.a.flatten(e),state:s.LoadingState.Done}}))},e.prototype.metricFindQuery=function(e,t){var n=Object(a.h)(e),r=Object(a.f)(n.namespace||"");if(i.a.isEmpty(n)||!n.namespace||!n.action||!r)return Promise.resolve([]);if(this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery){var o=this["".concat(i.a.toUpper(r),"Datasource")].metricFindQuery(n,i.a.get(t,"variable.regex",void 0));if(o)return o}return Promise.resolve([])},e.prototype.getRegions=function(e){return this["".concat(i.a.toUpper(e),"Datasource")].getRegions?this["".concat(i.a.toUpper(e),"Datasource")].getRegions():[]},e.prototype.getMetrics=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getMetrics(t)},e.prototype.getZones=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getZones?this["".concat(i.a.toUpper(e),"Datasource")].getZones(t):[]},e.prototype.getFilterDropdown=function(e,t){return this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown?this["".concat(i.a.toUpper(e),"Datasource")].getFilterDropdown(t):[]},e.prototype.getInstances=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getInstances(t,n)},e.prototype.getListeners=function(e,t,n){return this["".concat(i.a.toUpper(e),"Datasource")].getListeners?this["".concat(i.a.toUpper(e),"Datasource")].getListeners(t,n):[]},e.prototype.getVpcIds=function(e,t){if(this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds)return this["".concat(i.a.toUpper(e),"Datasource")].getVpcIds(t)},e.prototype.testDatasource=function(){var e=this,t=[],n=this.getSelectedServices();return i.a.forEach(n,(function(n){t.push(e["".concat(i.a.toUpper(n),"Datasource")].testDatasource())})),0===t.length?Promise.resolve(null):Promise.all(t).then((function(e){var t="success",n="DataSource Connection OK",r=i.a.reduce(e,(function(e,t){return"error"===t.status&&(""===e&&(e+="Oops! Found an error in: "),e+="".concat(t.service,": ").concat(t.message,"; \n")),e}),"");return r&&(t="error",n=r),{status:t,message:n,title:i.a.upperFirst(t)}}))},e.prototype.getServiceFn=function(e,t){var n=this;return function(){for(var r,o=[],a=0;a=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(e){return null!=e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(Array.isArray(t))t.push(n);else{if("object"!=typeof t)return[t,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if("object"!=typeof t)return[t].concat(n);var a=t;return Array.isArray(t)&&!Array.isArray(n)&&(a=o(t,i)),Array.isArray(t)&&Array.isArray(n)?(n.forEach((function(n,o){r.call(t,o)?t[o]&&"object"==typeof t[o]?t[o]=e(t[o],n,i):t.push(n):t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),a)}}},function(e,t,n){"use strict";var r=String.prototype.replace,i=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,i,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";n.r(t),n.d(t,"queryDDO",(function(){return a}));var r=n(6),i=n.n(r),o=function(){function e(t,n){Object.assign(t,e._config),t.onChecked=function(e,n){!0===t.target.queries[e]&&(t.target.queries[n]=!1),t.onChange()},t.init()}return e.$inject=["$scope","$rootScope"],e}();function a(){return{template:'\n\n',controller:o,restrict:"E",scope:{target:"=",showDetail:"=",region:"=",datasource:"=",getDropdownOptions:"&",onChange:"&"}}}t.default=function(e,t){o._config=t,i.a.directive(e,a)}},function(e,t,n){"use strict";n.r(t)},function(e,t,n){"use strict";var r=n(189),i=n(190),o=n(184);e.exports={formats:o,parse:i,stringify:r}},function(e){e.exports=JSON.parse('{"type":"datasource","name":"Tencent Cloud Monitoring","id":"tencentcloud-monitor-datasource","backend":true,"alerting":true,"logs":true,"metrics":true,"annotations":false,"executable":"tencentcloud-monitor-app-backend","queryOptions":{"maxDataPoints":true},"routes":[{"path":"cls-internal","url":"https://cls.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region-internal","url":"https://region.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api-internal","url":"https://api.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq-internal","url":"https://cmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai-internal","url":"https://cmq.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen-internal","url":"https://cmq.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr-internal","url":"https://emr.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai-internal","url":"https://emr.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen-internal","url":"https://emr.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf-internal","url":"https://scf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai-internal","url":"https://scf.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen-internal","url":"https://scf.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs-internal","url":"https://cfs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai-internal","url":"https://cfs.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen-internal","url":"https://cfs.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka-internal","url":"https://ckafka.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai-internal","url":"https://ckafka.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen-internal","url":"https://ckafka.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb-internal","url":"https://clb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai-internal","url":"https://clb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen-internal","url":"https://clb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb-internal","url":"https://mongodb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai-internal","url":"https://mongodb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen-internal","url":"https://mongodb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc-internal","url":"https://vpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai-internal","url":"https://vpc.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen-internal","url":"https://vpc.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx-internal","url":"https://vpc.api.qcloud.com.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm-internal","url":"https://cvm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai-internal","url":"https://cvm.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen-internal","url":"https://cvm.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor-internal","url":"https://monitor.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai-internal","url":"https://monitor.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen-internal","url":"https://monitor.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb-internal","url":"https://cdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai-internal","url":"https://cdb.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen-internal","url":"https://cdb.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres-internal","url":"https://postgres.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai-internal","url":"https://postgres.ap-shanghai-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen-internal","url":"https://postgres.ap-shenzhen-fsi.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn-internal","url":"https://cdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis-internal","url":"https://redis.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb-internal","url":"https://dcdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc-internal","url":"https://dc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb-internal","url":"https://cynosdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver-internal","url":"https://sqlserver.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip-internal","url":"https://bmeip.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc-internal","url":"https://bmvpc.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb-internal","url":"https://bmlb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm-internal","url":"https://bm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es-internal","url":"https://es.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs-internal","url":"https://cbs.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb-internal","url":"https://tcaplusdb.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway-internal","url":"https://apigateway.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq-internal","url":"https://tdmq.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap-internal","url":"https://gaap.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm-internal","url":"https://ecm.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse-internal","url":"https://gse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse-internal","url":"https://lighthouse.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf-internal","url":"https://tsf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum-internal","url":"https://rum.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke-internal","url":"https://tke.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn-internal","url":"https://ecdn.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf-internal","url":"https://waf.internal.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"apigateway","url":"https://apigateway.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"api","url":"https://api.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cmq","url":"https://cmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shanghai","url":"https://cmq.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cmq/shenzhen","url":"https://cmq.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"emr","url":"https://emr.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shanghai","url":"https://emr.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/emr/shenzhen","url":"https://emr.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"scf","url":"https://scf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shanghai","url":"https://scf.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/scf/shenzhen","url":"https://scf.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cfs","url":"https://cfs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shanghai","url":"https://cfs.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cfs/shenzhen","url":"https://cfs.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ckafka","url":"https://ckafka.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shanghai","url":"https://ckafka.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/ckafka/shenzhen","url":"https://ckafka.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"clb","url":"https://clb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shanghai","url":"https://clb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/clb/shenzhen","url":"https://clb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"mongodb","url":"https://mongodb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shanghai","url":"https://mongodb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/mongodb/shenzhen","url":"https://mongodb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"vpc","url":"https://vpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shanghai","url":"https://vpc.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/vpc/shenzhen","url":"https://vpc.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"pcx","url":"https://vpc.api.qcloud.com","headers":[{"name":"Content-Type","content":"application/x-www-form-urlencoded"}]},{"path":"cvm","url":"https://cvm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shanghai","url":"https://cvm.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cvm/shenzhen","url":"https://cvm.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"monitor","url":"https://monitor.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shanghai","url":"https://monitor.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/monitor/shenzhen","url":"https://monitor.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdb","url":"https://cdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shanghai","url":"https://cdb.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cdb/shenzhen","url":"https://cdb.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"postgres","url":"https://postgres.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shanghai","url":"https://postgres.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/postgres/shenzhen","url":"https://postgres.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cdn","url":"https://cdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"redis","url":"https://redis.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dcdb","url":"https://dcdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"dc","url":"https://dc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cynosdb","url":"https://cynosdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"sqlserver","url":"https://sqlserver.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmeip","url":"https://bmeip.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmvpc","url":"https://bmvpc.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bmlb","url":"https://bmlb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"bm","url":"https://bm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"es","url":"https://es.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cbs","url":"https://cbs.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tcaplusdb","url":"https://tcaplusdb.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tdmq","url":"https://tdmq.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gaap","url":"https://gaap.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecm","url":"https://ecm.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"gse","url":"https://gse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"cls","url":"https://cls.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shanghai","url":"https://cls.ap-shanghai-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"fsi/cls/shenzhen","url":"https://cls.ap-shenzhen-fsi.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"region","url":"https://region.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"lighthouse","url":"https://lighthouse.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tsf","url":"https://tsf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"rum","url":"https://rum.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"tke","url":"https://tke.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"ecdn","url":"https://ecdn.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]},{"path":"waf","url":"https://waf.tencentcloudapi.com","headers":[{"name":"Content-Type","content":"application/json"}]}],"info":{"author":{"name":"Tencent Cloud"},"logos":{"small":"img/tencent-cloud.svg","large":"img/tencent-cloud.svg"},"description":"Data source for Tencent Cloud monitoring service"}}')},function(e,t,n){"use strict";var r=n(183),i=n(184),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(e){return a.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,n,i,o,a,s,u,l,p,d,f,m){var h=t;if("function"==typeof u)h=u(n,h);else if(h instanceof Date)h=d(h);else if(null===h){if(o)return s&&!m?s(n,c.encoder):n;h=""}if("string"==typeof h||"number"==typeof h||"boolean"==typeof h||r.isBuffer(h))return s?[f(m?n:s(n,c.encoder))+"="+f(s(h,c.encoder))]:[f(n)+"="+f(String(h))];var y,g=[];if(void 0===h)return g;if(Array.isArray(u))y=u;else{var v=Object.keys(h);y=l?v.sort(l):v}for(var b=0;b0?S+x:""}},function(e,t,n){"use strict";var r=n(183),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),c=a?r.slice(0,a.index):r,s=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;s.push(c)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=e[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,s=parseInt(c,10);!isNaN(s)&&a!==c&&String(s)===c&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(o=[])[s]=r:o[c]=r}r=o}return r}(s,t,n)}};e.exports=function(e,t){var n=t?r.assign({},t):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===e||null==e)return n.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var n={},r=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,a=t.parameterLimit===1/0?void 0:t.parameterLimit,c=r.split(t.delimiter,a),s=0;s\n \n\n \n\n \n\n \n\n \n\n \n\n'},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i="~";function o(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function c(e,t,n,r,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var c=new a(n,r||e,o),s=i?i+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],c]:e._events[s].push(c):(e._events[s]=c,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),u.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)r.call(e,t)&&n.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},u.prototype.listeners=function(e){var t=i?i+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,o=n.length,a=new Array(o);ra{margin-left:10px}.tc-switch{border-left:1px solid #262628;margin-bottom:0 !important}.tc-condition-block{margin-right:10px;display:inline-block}.tc-condition-block .tc-condition-input{border-radius:0}.tc-condition-block .tc-condition-minus{vertical-align:top;border-radius:0 3px 3px 0}.tc-condition-block .tc-condition-dropdown{display:inline-block}.tc-condition-block>input{display:inline-block;margin-right:0}.tc-condition-block>label{display:inline-block}.tc-condition-add{display:inline-block;vertical-align:top}.tc-condition-add>label{border-radius:3px}.filtered-color{color:#ff851b}.secret-tips{position:absolute;right:-25px;border-radius:2px;background:#1b1b1b;padding:10px;top:-35px;width:300px;border:1px solid #2c3235}.secret-tips-tri{position:absolute;width:15px;height:15px;left:-8px;top:60px;background:#1b1b1b;border:1px solid #2c3235;border-top:0;border-right:0;transform:rotate(45deg)}.rc-cascader-menu-item{min-width:160px;font-size:14px}","",{version:3,sources:["query_editor.css"],names:[],mappings:"AAAA,eAAe,cAAc,CAAC,iBAAiB,CAAC,+BAA+B,eAAe,CAAC,8CAA8C,iBAAiB,CAAC,8BAA8B,iBAAiB,CAAC,gCAAgC,gBAAgB,CAAC,WAAW,6BAA6B,CAAC,0BAA0B,CAAC,oBAAoB,iBAAiB,CAAC,oBAAoB,CAAC,wCAAwC,eAAe,CAAC,wCAAwC,kBAAkB,CAAC,yBAAyB,CAAC,2CAA2C,oBAAoB,CAAC,0BAA0B,oBAAoB,CAAC,cAAc,CAAC,0BAA0B,oBAAoB,CAAC,kBAAkB,oBAAoB,CAAC,kBAAkB,CAAC,wBAAwB,iBAAiB,CAAC,gBAAgB,aAAa,CAAC,aAAa,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,iBAAiB,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,YAAY,CAAC,cAAc,CAAC,uBAAuB,CAAC,uBAAuB,eAAe,CAAC,cAAc",file:"query_editor.css",sourcesContent:[".tc-sub-params{margin-top:4px;margin-left:125px}.tc-sub-params .gf-form-inline{min-height:42px}.tc-sub-params .gf-form-inline .gf-form-label{margin-bottom:2px}.tc-sub-params .tc-info-label{margin-bottom:6px}.tc-sub-params .tc-info-label>a{margin-left:10px}.tc-switch{border-left:1px solid #262628;margin-bottom:0 !important}.tc-condition-block{margin-right:10px;display:inline-block}.tc-condition-block .tc-condition-input{border-radius:0}.tc-condition-block .tc-condition-minus{vertical-align:top;border-radius:0 3px 3px 0}.tc-condition-block .tc-condition-dropdown{display:inline-block}.tc-condition-block>input{display:inline-block;margin-right:0}.tc-condition-block>label{display:inline-block}.tc-condition-add{display:inline-block;vertical-align:top}.tc-condition-add>label{border-radius:3px}.filtered-color{color:#ff851b}.secret-tips{position:absolute;right:-25px;border-radius:2px;background:#1b1b1b;padding:10px;top:-35px;width:300px;border:1px solid #2c3235}.secret-tips-tri{position:absolute;width:15px;height:15px;left:-8px;top:60px;background:#1b1b1b;border:1px solid #2c3235;border-top:0;border-right:0;transform:rotate(45deg)}.rc-cascader-menu-item{min-width:160px;font-size:14px}"]}]),e.exports=t},function(e,t,n){var r=n(198),i=n(208);"string"==typeof(i=i.__esModule?i.default:i)&&(i=[[e.i,i,""]]);var o={insert:"head",singleton:!1},a=(r(i,o),i.locals?i.locals:{});e.exports=a},function(e,t,n){(t=n(199)(!0)).push([e.i,".log-service-monospaced-font-family {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n.log-service-monospaced-font-family button,\n.log-service-monospaced-font-family input,\n.log-service-monospaced-font-family select,\n.log-service-monospaced-font-family textarea {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n","",{version:3,sources:["index.less"],names:[],mappings:"AAAA;EACE,8DAA8D;AAChE;AACA;;;;EAIE,8DAA8D;AAChE",file:"index.less",sourcesContent:[".log-service-monospaced-font-family {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n.log-service-monospaced-font-family button,\n.log-service-monospaced-font-family input,\n.log-service-monospaced-font-family select,\n.log-service-monospaced-font-family textarea {\n font-family: RobotoMono-Regular, monospace, Roboto, sans-serif;\n}\n"]}]),e.exports=t},function(e,t,n){"use strict";n.r(t);var r=n(9),i=n(5),o=n.n(i),a=n(200),c=n(0),s=n.n(c),u=n(2),l=n(19),p=n(6),d=n.n(p),f=n(192),m=n.n(f),h=function(){function e(e,t){e.init=function(){e.type=e.type||"input",e.placeholder=Object(f.isDefined)(e.placeholder)?e.placeholder:"",e.value=Object(f.isDefined)(e.value)?e.value:[],e.maxCond=s.a.toInteger(e.maxCond)>0?s.a.toInteger(e.maxCond):-1},e.onInputBlur=function(){e.onChangeInternal()},e.deleteCondition=function(t){e.value.splice(t,1),e.onChangeInternal()},e.addCondition=function(t){e.value.push(t),e.onChangeInternal()},e.onChangeInternal=function(){e.onChange({value:e.value})},e.onSelectChange=function(t){e.onChange({value:t})},e.getSelectedOptions=function(){var t=s.a.filter(e.options,(function(t){return-1!==s.a.get(e.value,"value",[]).indexOf(t.value)}));return t.length>0?s.a.map(t,(function(e){return"".concat(e.text,": ").concat(e.value)})).join("; "):void 0},e.init()}return e.$inject=["$scope","$rootScope"],e}();d.a.directive("multiCondition",(function(){return{template:'\n\n\n\n\n\n \n \n
\n\n\n\n\x3c!-- \n \n \n
--\x3e\n',controller:h,restrict:"E",scope:{type:"=",value:"=",maxCond:"=?",placeholder:"=?",options:"=?",maxNum:"=?",minNum:"=?",multiple:"=?",onChange:"&",getOptions:"&"}}})),g.$inject=["$compile","$window","$timeout","$rootScope"];var y=function(){function e(){}return e.prototype.show=function(){var e=this;this.oldVariableText=s.a.get(this.value,"text",""),this.highlightIndex=-1,this.selectOptions=s.a.cloneDeep(this.options),s.a.map(this.selectOptions,(function(t){var n=s.a.get(e.value,"value");n?s.a.isArray(n)?t.selected=-1!==s.a.indexOf(n,t.value):t.selected=n===t.value:t.selected=!1})),this.selectedValues=s.a.filter(this.selectOptions,{selected:!0}),this.search={query:"",options:this.selectOptions.slice(0,Math.min(this.selectOptions.length,1e3))},this.dropdownVisible=!0},e.prototype.updateLinkText=function(){this.linkText=s.a.get(this.value,"text","")},e.prototype.clearSelections=function(){s.a.each(this.selectOptions,(function(e){e.selected=!1})),this.selectionsChanged(!1)},e.prototype.keyDown=function(e){27===e.keyCode&&this.hide(),40===e.keyCode&&this.moveHighlight(1),38===e.keyCode&&this.moveHighlight(-1),13===e.keyCode&&(0===this.search.options.length?this.commitChanges():this.selectValue(this.search.options[this.highlightIndex],{},!0,!1)),32===e.keyCode&&this.selectValue(this.search.options[this.highlightIndex],{},!1,!1)},e.prototype.moveHighlight=function(e){this.highlightIndex=(this.highlightIndex+e)%this.search.options.length},e.prototype.selectValue=function(e,t,n,r){var i=this;if(e){e.selected=!this.multiple||!e.selected,r=r||!1;var o=function(t){s.a.each(i.selectOptions,(function(n){e!==n&&(n.selected=t)}))};(n=n||!1)&&(e.selected=!0),r?(o(!1),n=!0):this.multiple?(t.ctrlKey||t.metaKey||t.shiftKey)&&(n=!0,o(!1)):(o(!1),n=!0),this.selectionsChanged(n)}},e.prototype.selectionsChanged=function(e){this.selectedValues=s.a.filter(this.selectOptions,{selected:!0}),this.value.value=s.a.map(this.selectedValues,"value"),this.value.text=s.a.map(this.selectedValues,"text").join(" + "),this.multiple||(this.value.value=s.a.get(this.selectedValues,"0.value","")),e&&this.commitChanges()},e.prototype.commitChanges=function(){this.dropdownVisible=!1,this.updateLinkText(),this.value.text!==this.oldVariableText&&this.onChange({value:this.value})},e.prototype.queryChanged=function(){var e=this;this.highlightIndex=-1,this.search.options=s.a.filter(this.selectOptions,(function(t){return-1!==t.text.toLowerCase().indexOf(e.search.query.toLowerCase())})),this.search.options=this.search.options.slice(0,Math.min(this.search.options.length,1e3))},e.prototype.init=function(){s.a.isEmpty(this.value)&&(this.value={text:"",value:this.multiple?[]:""}),this.updateLinkText()},e}();function g(e,t,n,r){return{restrict:"E",scope:{options:"=",multiple:"=",value:"=",onChange:"&"},template:'\n\n',controller:"CustomSelectDropdownCtrl",controllerAs:"vm",bindToController:!0,link:function(e,r){var i=m.a.element(t.document.body),o=r.find(".variable-value-link"),a=r.find("input");function c(t){0===r.has(t.target).length&&e.$apply((function(){e.vm.commitChanges()}))}e.$watch("vm.dropdownVisible",(function(e){e?(a.css("width",Math.max(o.width(),136)+"px"),a.show(),o.hide(),a.focus(),n((function(){i.on("click",c)}),0,!1)):(a.hide(),o.show(),i.off("click",c))})),e.vm.init()}}}d.a.controller("CustomSelectDropdownCtrl",y),d.a.directive("customSelectDropdown",g);var v,b,I,D=n(11),w=n(201),k=n.n(w);v=D.Cascader,b="gfCascader",I={separator:"@?",placeholder:"@?",options:"<",changeOnSelect:"",onSelect:"&",width:"@?",initialValue:"@?",allowCustomValue:"",formatCreateLabel:"&?",displayAllSelectedLevels:""},d.a.directive(b,(function(){return{template:''),controller:(e=v,function(){function t(e,t){this._$scope=e,this._$element=t}return t.$inject=["$scope","$element"],t.prototype.$onInit=function(){var t=this,n=Object.entries(this._$scope).reduce((function(e,t){var n=t[0],r=t[1];return n.startsWith("$")||(e[n]="function"==typeof r?function(){for(var e=[],t=0;t').concat(r,"-query>")}));return e+'\n \n '}(),A=n(1),j=(C=function(e,t){return(C=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}C(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),q=function(){return(q=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(d.target.namespace=null!==(c=null!==(i=d.target.namespace)&&void 0!==i?i:null===(a=null===(o=d.cascaderOptions[0])||void 0===o?void 0:o.items)||void 0===a?void 0:a[0].value)&&void 0!==c?c:d.cascaderOptions[0].value,d.target.service=Object(u.f)(d.target.namespace)||""),d.hideRegion=!!(null===(p=l.SERVICES.find((function(e){return e.service===d.target.service})))||void 0===p?void 0:p.hideRegion),s.a.defaultsDeep(d.target,d.defaults),d.instanceAliasList=d.getInstanceAliasList(d.target.service),d.panelCtrl.events.on("data-received",d.onDataReceived.bind(d),t),d.panelCtrl.events.on("data-error",d.onDataError.bind(d),t),d}return t.$inject=["$scope","$injector","templateSrv"],j(t,e),Object.defineProperty(t.prototype,"sortedPeriodList",{get:function(){return this.periodList.sort((function(e,t){return e-t}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isCascader",{get:function(){return this.cascaderOptions.length>1},enumerable:!1,configurable:!0}),t.prototype.cascaderChange=function(e){this.target.namespace=e,this.onNamespaceChange()},t.prototype.onDataReceived=function(e){this.lastQueryError=void 0,this.lastQuery="";var t=s.a.find(e,{refId:this.target.refId});t&&(this.lastQuery=t.query)},t.prototype.onDataError=function(e){this.handleQueryCtrlError(e)},t.prototype.handleQueryCtrlError=function(e){var t;s.a.get(e,"query.refId")===this.target.refId&&(s.a.get(e,"error.data.error.innererror",void 0)?s.a.get(e,"error.data.error.innererror.innererror",void 0)?this.lastQueryError=s.a.get(e,"error.data.error.innererror.innererror.message"):this.lastQueryError=s.a.get(e,"error.data.error.innererror.message"):s.a.get(e,"error.data.error",void 0)?this.lastQueryError=s.a.get(e,"error.data.error.message"):s.a.get(e,"error.data",void 0)?this.lastQueryError=s.a.get(e,"error.data.message"):s.a.get(e,"data.error",void 0)?this.lastQueryError=s.a.get(e,"data.error.message"):(null===(t=e.data)||void 0===t?void 0:t.message)||(s.a.get(e,"data.message",void 0)?this.lastQueryError=s.a.get(e,"data.message"):this.lastQueryError=e))},t.prototype.getInstanceAliasList=function(e){return e?s.a.map(l.InstanceAliasList["".concat(s.a.toUpper(e),"InstanceAliasList")]||[],(function(e){return{text:"As ".concat(e),value:e}})):[]},t.prototype.getNamespaces=function(e){return s.a.map(this.namespaces,(function(e){return{text:e.label,value:e.namespace}}))},t.prototype.onNamespaceChange=function(){var e,t=Object(u.f)(this.target.namespace)||"";this.hideRegion=!!(null===(e=l.SERVICES.find((function(e){return e.service===t})))||void 0===e?void 0:e.hideRegion),this.regions=[],this.metricList=[],this.periodList=[],this.dimensionList=[],this.instanceList=[];var n=l.InitServiceState[t];this.target[t]=s.a.cloneDeep(n),this.target.service=t,this.instanceAliasList=this.getInstanceAliasList(t),this.refresh(),this.isCascader&&this.$scope.$apply()},t.prototype.getRegions=function(e){var t=this,n=this.target.service;return!n||s.a.startsWith("$")?[]:this.regions.length?this.regions:this.datasource.getRegions(n).then((function(e){return t.regions=e,e})).catch(this.handleQueryCtrlError.bind(this))},t.prototype.onRegionChange=function(){var e=this,t=this.target.service;this.target[t].instance="",this.instanceList=[],this.isMetricsNeedUpdate=!0,s.a.forEach(this.target[t].dimensionObject,(function(n,r){e.target[t].dimensionObject[r]={Name:r,Value:""}})),this.target[t].queries=s.a.cloneDeep(l.InitServiceState[t].queries),this.getInstances(),this.refresh()},t.prototype.getVariable=function(e,t){return Object(u.j)(this.templateSrv,this.panelCtrl.panel.scopedVars,e,t)},t.prototype.getMetricNameDesc=function(){var e=this,t=this.target.service,n=s.a.findIndex(this.metricList,(function(n){return n.MetricName===e.target[t].metricName}));return-1===n?"":Object(A.b)()===A.a.Chinese?this.metricList[n].Meaning.Zh:this.metricList[n].Meaning.En},t.prototype.getMetrics=function(e){var t=this,n=this.target.service,r=this.getVariable(s.a.get(this.target[n],"region",""),!1);return n&&r?!this.isMetricsNeedUpdate&&this.metricList.length>0?s.a.map(this.metricList,(function(e){return{text:e.MetricName,value:e.MetricName}})):this.datasource.getMetrics(n,r).then((function(e){t.metricList=e,t.isMetricsNeedUpdate=!1;var r=s.a.findIndex(t.metricList,(function(e){return e.MetricName===t.target[n].metricName}));return-1!==r&&(t.periodList=s.a.get(t.metricList[r],"Period",[]),t.dimensionList=s.a.get(t.metricList[r],"Dimensions.0.Dimensions",[])),s.a.map(e,(function(e){return{text:e.MetricName,value:e.MetricName}}))})).catch(this.handleQueryCtrlError.bind(this)):[]},t.prototype.onMetricChange=function(){var e=this,t=this.target.service,n=[],r=[],i={},o="",a=s.a.findIndex(this.metricList,(function(n){return n.MetricName===e.target[t].metricName}));-1!==a&&(n=s.a.get(this.metricList[a],"Period",[]),r=s.a.get(this.metricList[a],"Dimensions.0.Dimensions",[]),o=s.a.get(this.metricList[a],"Unit","")),s.a.forEach(r,(function(e){i[e]={Name:e,Value:""}})),this.periodList=n,this.dimensionList=r,this.target[t].period=n.length>0?-1===s.a.indexOf(n,300)?n[0]:300:void 0,this.target[t].dimensionObject=i,this.target[t].metricUnit=o,this.refresh()},t.prototype.getInstances=function(){var e=this,t=this.target.service,n=this.getVariable(s.a.get(this.target[t],"region",""),!1);if(!t||!n)return[];var r=this.getInstanceQueryParams(t);return this.datasource.getInstances(t,n,r).then((function(n){e.instanceList=n;var r=e.target[t].instanceAlias,i=[];return s.a.forEach(n,(function(e){var t=s.a.get(e,r);t&&("string"==typeof t?(e._InstanceAliasValue=t,i.push({text:t,value:JSON.stringify(e)})):s.a.isArray(t)&&s.a.forEach(t,(function(t){e._InstanceAliasValue=t,i.push({text:t,value:JSON.stringify(e)})})))})),i})).catch(this.handleQueryCtrlError.bind(this))},t.prototype.onInstanceChange=function(e){this.refresh()},t.prototype.getInstanceQueryParams=function(e){var t=this.target[e].queries;return l.GetInstanceQueryParams["".concat(s.a.toUpper(e),"GetInstanceQueryParams")]?l.GetInstanceQueryParams["".concat(s.a.toUpper(e),"GetInstanceQueryParams")](t):{}},t.prototype.onInstanceAliasChange=function(){if(!this.isVariable("instance")){var e=this.target.service;this.target[e].instance="",this.refresh()}},t.prototype.onInstanceQueryChange=function(){var e=this;if(!this.isVariable("instance")){var t=this.target.service;this.target[t].instance="",this.instanceList=[],s.a.forEach(this.target[t].dimensionObject,(function(n,r){e.target[t].dimensionObject[r]={Name:r,Value:""}})),this.refresh()}},t.prototype.isVariable=function(e){var t,n=this.target.service,r=null===(t=this.target[n])||void 0===t?void 0:t[e];return Object(u.m)(r)},t.prototype.checkShowDetail=function(e){return!this.isVariable(e)&&this.target.showInstanceDetails},t.prototype.getTimeDesc=function(){return"".concat(Object(A.d)("time_unit"),": ").concat(Object(A.d)("seconds"))},t.prototype.getSearchDesc=function(){return Object(A.d)("search_description")},t.template=N,t}(a.QueryCtrl),M=n(26),L=n(203),P=n.n(L),F=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),R=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.angularScope=null,t.angularQueryEditor=null,t.events=new P.a,t.renderAngularQueryEditor=function(){if(t.element){t.angularQueryEditor&&(t.angularQueryEditor.destroy(),t.angularQueryEditor=null);var e=Object(M.getAngularLoader)(),n={ctrl:t.getAngularQueryComponentScope()};t.angularQueryEditor=e.load(t.element,n,''),t.angularScope=n.ctrl}},t}return F(t,e),t.prototype.componentDidMount=function(){var e=this;setTimeout((function(){e.forceUpdate()}))},t.prototype.componentDidUpdate=function(e){var t=this.props,n=t.data,i=t.range;if(n!==e.data&&n){if(n.state===r.LoadingState.Done){var o=n.series.map((function(e){return Object(r.toLegacyResponseData)(e)}));this.events.emit("data-received",o)}else n.state===r.LoadingState.Error&&this.events.emit("data-error",n.error);this.angularScope&&(this.angularScope.range=i)}this.element&&!this.angularQueryEditor&&this.renderAngularQueryEditor()},t.prototype.getAngularQueryComponentScope=function(){var e=this,t=this.props,n=t.query,r=t.queries,i=t.range,o=t.datasource,a=t.queryCtrl;o.components={QueryCtrl:a};return{datasource:o,target:n,panel:{scopedVars:{},targets:r||[]},dashboard:{},refresh:function(){e.props.onChange(n),e.props.onRunQuery()},render:function(){return function(){}},events:this.events,range:i}},t.prototype.render=function(){var e=this;return o.a.createElement("div",{ref:function(t){e.element=t}})},t}(i.PureComponent),Q=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;!function(e){e[e.LUCENE=0]="LUCENE",e[e.CQL=1]="CQL"}(O||(O={})),function(e){e.monitor="monitor",e.logService="logService",e.RUMService="RUMService"}(x||(x={}));var B=[{value:x.monitor,get label(){return Object(A.d)("cloud_monitor")}},{value:x.logService,get label(){return Object(A.d)("cloud_log_service")}},{value:x.RUMService,get label(){return Object(A.d)("real_user_monitoring")}}],V={serviceType:x.logService,logServiceParams:{region:"",TopicId:"",Query:"",SyntaxRule:O.CQL},RUMServiceParams:{policy:"default",resultFormat:"time_series",orderByTime:"ASC",tags:[],groupBy:[{type:"time",params:["$__interval"]},{type:"fill",params:["null"]}],select:[[{type:"field",params:["value"]},{type:"mean",params:[]}]]}},G={refId:"",hide:!1,key:"",queryType:"",dataTopic:null,datasource:"",serviceType:V.serviceType,logServiceParams:V.logServiceParams,RUMServiceParams:V.RUMServiceParams},U=function(e){var t=Object(i.useRef)(e);return t.current=e,t},K=function(){return(K=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1e3,error:"仅支持返回1~1000条日志"},o.a.createElement(D.Input,{type:"number",min:1,max:1e3,value:t,onChange:r,width:25,className:"log-service-monospaced-font-family"}))})),pe=n(68),de=n(193),fe=n.n(de);var me=function(){function e(e,t){this.target=e,this.database=t}return e.prototype.buildExploreQuery=function(e,t,n){var r,i,o="";if("TAG_KEYS"===e)o="show tag keys",r=this.target.measurement,i=this.target.policy;else if("TAG_VALUES"===e)o="show tag values",r=this.target.measurement,i=this.target.policy;else if("MEASUREMENTS"===e)o="show measurements",n&&(o+=" with measurement =~ /(?i)"+fe.a.regexEscape(n)+"/");else{if("FIELDS"===e)return r=this.target.measurement,i=this.target.policy,r.match("^/.*/")||(r='"'+r+'"',i&&"default"!==i&&(r=(i='"'+i+'"')+"."+r)),"show field keys from "+r;if("RETENTION POLICIES"===e)return o='show retention policies on "'+this.database+'"'}if(r&&(r.match("^/.*/")||r.match(/^merge\(.*\)/)||(r='"'+r+'"'),i&&"default"!==i&&(r=(i='"'+i+'"')+"."+r),o+=" from "+r),t&&(o+=' with key = "'+t+'"'),this.target.tags&&this.target.tags.length>0){var a=Object(c.reduce)(this.target.tags,(function(n,r){return"MEASUREMENTS"===e&&"id"===r.key||r.key===t||">"===r.operator||"<"===r.operator||n.push(function(e,t){var n="",r=e.operator,i=e.value;return t>0&&(n=(e.condition.toLowerCase()||"AND")+" "),r||(r=/^\/.*\/$/.test(e.value)?"=~":"="),(""===i||"=~"!==r&&"!~"!==r)&&(i="'"+i.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'"),n+'"'+e.key+'" '+r+" "+i}(r,n.length)),n}),[]);a.length>0&&(o+=" where "+a.join(" "))}return"MEASUREMENTS"===e&&(o+=" limit 100"),o},e}(),he=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},ye=function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function c(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=n+2;if("count"!==t.def.type&&i)e[n+1].def.category===ke.Aggregations&&e.splice(n+1,1);else if("count"===t.def.type)return void(i&&"count"===e[n+1].def.type||e.splice(n+1,0,t))}return void(e[n]=t)}if(r.def.category===ke.Selectors)return void(e[n]=t)}e.splice(1,0,t)}function Ee(e,t){var n;for(n=0;n0){if("math"===e[n-1].def.type)return void(e[n-1]=t);if(n>1&&"math"===e[n-2].def.type)return void(e[n-2]=t);if("alias"===e[n-1].def.type)return void e.splice(n-1,0,t)}e.push(t)},category:ke.Math,params:[{name:"expr",type:"string"}],defaultParams:[" / 100"],renderer:function(e,t){return t+" "+e.params[0]}}),Oe({type:"alias",addStrategy:function(e,t){var n=e.length;n>0&&"alias"===e[n-1].def.type?e[n-1]=t:e.push(t)},category:ke.Aliasing,params:[{name:"name",type:"string",quote:"double"}],defaultParams:["alias"],renderMode:"suffix",renderer:function(e,t){return t+' AS "'+e.params[0]+'"'}});var Ne={create:Ce,getCategories:function(){return ke},replaceAggregationAdd:_e},Ae=function(){function e(e,t,n){this.selectModels=[],this.target=e,this.templateSrv=t,this.scopedVars=n,e.policy=e.policy||V.RUMServiceParams.policy,e.resultFormat=e.resultFormat||V.RUMServiceParams.resultFormat,e.orderByTime=e.orderByTime||V.RUMServiceParams.orderByTime,e.tags=e.tags||Object(c.cloneDeep)(V.RUMServiceParams.tags),e.groupBy=e.groupBy||Object(c.cloneDeep)(V.RUMServiceParams.groupBy),e.select=e.select||Object(c.cloneDeep)(V.RUMServiceParams.select),this.updateProjection()}return e.$inject=["target","templateSrv","scopedVars"],e.prototype.updateProjection=function(){this.selectModels=Object(c.map)(this.target.select,(function(e){return Object(c.map)(e,Ne.create)})),this.groupByParts=Object(c.map)(this.target.groupBy,Ne.create)},e.prototype.updatePersistedParts=function(){this.target.select=Object(c.map)(this.selectModels,(function(e){return Object(c.map)(e,(function(e){return{type:e.def.type,params:e.params}}))}))},e.prototype.hasGroupByTime=function(){return Object(c.find)(this.target.groupBy,(function(e){return"time"===e.type}))},e.prototype.hasFill=function(){return Object(c.find)(this.target.groupBy,(function(e){return"fill"===e.type}))},e.prototype.addGroupBy=function(e){var t=e.match(/^(\w+)\((.*)\)$/);if(t&&this.target.groupBy){var n=t[1],r=t[2],i=Ne.create({type:n,params:[r]}),o=this.target.groupBy.length;0===o?this.target.groupBy.push(i.part):"time"===n?this.target.groupBy.splice(0,0,i.part):"tag"===n&&"fill"===this.target.groupBy[o-1].type?this.target.groupBy.splice(o-1,0,i.part):this.target.groupBy.push(i.part),this.updateProjection()}},e.prototype.removeGroupByPart=function(e,t){var n=Ne.getCategories();"time"===e.def.type&&(this.target.groupBy=Object(c.filter)(this.target.groupBy,(function(e){return"fill"!==e.type})),this.target.select=Object(c.map)(this.target.select,(function(e){return Object(c.filter)(e,(function(e){var t=Ne.create(e);return t.def.category!==n.Aggregations&&t.def.category!==n.Selectors}))}))),this.target.groupBy.splice(t,1),this.updateProjection()},e.prototype.removeSelect=function(e){this.target.select.splice(e,1),this.updateProjection()},e.prototype.removeSelectPart=function(e,t){if("field"===t.def.type){if(this.selectModels.length>1){var n=Object(c.indexOf)(this.selectModels,e);this.selectModels.splice(n,1)}}else{var r=Object(c.indexOf)(e,t);e.splice(r,1)}this.updatePersistedParts()},e.prototype.addSelectPart=function(e,t){var n=Ne.create({type:t});n.def.addStrategy(e,n,this),this.updatePersistedParts()},e.prototype.getMeasurementAndPolicy=function(e){var t=this.target.policy,n=this.target.measurement||"measurement";return n.match("^/.*/$")?e&&(n=this.templateSrv.replace(n,this.scopedVars,"regex")):n='"'+n+'"',(t="default"!==t?'"'+this.target.policy+'".':"")+n},e.prototype.interpolateQueryStr=function(e,t,n){return t.multi||t.includeAll?"string"==typeof e?fe.a.regexEscape(e):"("+Object(c.map)(e,fe.a.regexEscape).join("|")+")":e},e.prototype.render=function(e){var t=this,n=this.target;if(n.rawQuery)return e?this.templateSrv.replace(n.query,this.scopedVars,this.interpolateQueryStr):n.query;var r,i,o="select ";for(r=0;r0&&(o+=", "),o+=s}o+=" from "+this.getMeasurementAndPolicy(e)+" where ";var u=Object(c.map)(n.tags,(function(n,r){return t.renderTagCondition(n,r,e)}));u.length>0&&(o+="("+u.join(" ")+") and "),o+="$timeFilter";var l="";for(r=0;r0&&(l+="fill"===p.def.type?" ":", "),l+=p.render("")}return l.length&&(o+=" group by "+l),n.fill&&(o+=" fill("+n.fill+")"),"DESC"===n.orderByTime&&(o+=" order by time desc"),n.limit&&(o+=" limit "+n.limit),n.slimit&&(o+=" slimit "+n.slimit),n.tz&&(o+=" tz('"+n.tz+"')"),o},e.prototype.renderAdhocFilters=function(e){var t=this;return Object(c.map)(e,(function(e,n){return t.renderTagCondition(e,n,!0)})).join(" ")},e.prototype.renderTagCondition=function(e,t,n){var r="",i=e.operator,o=e.value;return t>0&&(r=(e.condition.toLowerCase()||"and")+" "),i||(i=/^\/.*\/$/.test(o)?"=~":"="),"=~"!==i&&"!~"!==i?(n&&(o=this.templateSrv.replace(o,this.scopedVars)),">"!==i&&"<"!==i&&(o="'"+o.replace(/\\/g,"\\\\").replace(/\'/g,"\\'")+"'")):n&&(o=this.templateSrv.replace(o,this.scopedVars,"regex")),r+'"'+e.key+'" '+i+" "+o},e}(),je=function(){return(je=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]","<",">","=~","!~"].map(Me),mt=["AND","OR"].map(Me),ht=function(){return Promise.resolve(mt)},yt=function(){return Promise.resolve(ft)},gt=function(e){var t=e.tag,n=e.isFirst,r=e.onRemove,i=e.onChange,a=e.getTagKeyOptions,c=e.getTagValueOptions,s=st(t),u=ut(t,n);return o.a.createElement("div",{className:"gf-form"},void 0!==u&&o.a.createElement(nt,{value:u,loadOptions:ht,disabled:!0,onChange:function(e){i(pt(pt({},t),{condition:e.value}))}}),o.a.createElement(nt,{allowCustomValue:!0,value:t.key,loadOptions:function(){return a().catch((function(e){return[]})).then((function(e){return dt([{label:"-- remove filter --",value:void 0}],e.map(Me),!0)}))},onChange:function(e){var n=e.value;void 0===n?r():i(pt(pt({},t),{key:null!=n?n:""}))}}),o.a.createElement(nt,{value:s,loadOptions:yt,onChange:function(e){i(pt(pt({},t),{operator:e.value}))}}),o.a.createElement(nt,{allowCustomValue:!0,value:t.value,loadOptions:function(){return c(t.key).then((function(e){return e.map(Me)}))},onChange:function(e){var n,r,o,a,c=null!==(n=e.value)&&void 0!==n?n:"";i(pt(pt({},t),{value:c,operator:(r=s,o=c,a="=~"===r||"!~"===r,ct(o)?a?r:"=~":a?"=":r)}))}}))},vt=function(e){var t=e.tags,n=e.onChange,r=e.getTagKeyOptions,i=e.getTagValueOptions,a=function(e,r){var i=t.map((function(t,n){return r===n?e:t}));n(i)};return o.a.createElement(o.a.Fragment,null,t.map((function(e,c){return o.a.createElement(gt,{tag:e,isFirst:0===c,key:c,onChange:function(e){a(e,c)},onRemove:function(){var e,r;e=c,r=t.filter((function(t,n){return n!==e})),n(r)},getTagKeyOptions:r,getTagValueOptions:i})})),o.a.createElement(lt,{allowCustomValue:!0,loadOptions:function(){return r().then((function(e){return e.map(Me)}))},onAdd:function(e){var r,i,o,a;r=e,i=0===t.length,a={key:(o={key:r,value:"select tag value"}).key,value:o.value,operator:st(o),condition:ut(o,i)},n(dt(dt([],t,!0),[a],!1))}}))},bt=Object(pe.css)({paddingRight:"0",marginRight:"0"}),It=function(e){var t=e.name,n=e.onRemove;return o.a.createElement(D.WithContextMenu,{getContextMenuItems:function(){return[{items:[{label:"remove",onClick:n}]}]}},(function(e){var n=e.openMenu;return o.a.createElement("button",{className:Object(pe.cx)("gf-form-label",bt),onClick:n},t)}))},Dt=Object(pe.css)({paddingLeft:"0",paddingRight:"0",marginLeft:"0",marginRight:"0"}),wt=function(e){var t=e.name,n=e.params,r=e.onChange,a=e.onRemove,c=Object(D.useTheme)(),s=Object(i.useMemo)((function(){return function(e){return Object(pe.cx)("gf-form-label",Object(pe.css)({paddingLeft:"0",lineHeight:e.typography.lineHeight.md,fontSize:e.typography.size.base}))}(c)}),[c]),u=function(e,t){var i=n.map((function(e){return e.value}));i[t]=e,r(i)};return o.a.createElement("div",{className:s},o.a.createElement(It,{name:t,onRemove:a}),"(",n.map((function(e,t){var r=e.value,i=e.options,a=t===n.length-1,c=null!==i?function(){return i().then((function(e){return e.map(Me)}))}:void 0;return o.a.createElement(o.a.Fragment,{key:t},o.a.createElement(nt,{allowCustomValue:!0,value:r,buttonClassName:Dt,loadOptions:c,onChange:function(e){u(Te(e.value),t)}}),!a&&",")})),")")},kt=function(e){var t=e.parts,n=e.getNewPartOptions,r=e.onAddNewPart,i=e.onRemovePart,a=e.onChange;return o.a.createElement(o.a.Fragment,null,t.map((function(e,t){return o.a.createElement(wt,{key:t,name:e.name,params:e.params,onRemove:function(){i(t)},onChange:function(e){a(t,e)}})})),o.a.createElement(lt,{loadOptions:n,onAdd:r}))},Ct=Object(pe.css)({paddingRight:"4px"}),Ot=function(e){var t=e.value,n=e.onChange,r=e.isWide,i=e.placeholder,a=We(t),c=a[0],s=a[1];return o.a.createElement(D.Input,{placeholder:i,className:Object(pe.cx)(null!=r&&r?"width-14":"width-8",Ct),type:"text",spellCheck:!1,onBlur:function(){n(""===c?void 0:c)},onChange:function(e){s(e.currentTarget.value)},value:null!=c?c:""})},xt=[{label:"ascending",value:"ASC"},{label:"descending",value:"DESC"}],St=Object(pe.cx)("width-9",Ct),_t=function(e){var t=e.value,n=e.onChange,r=e.inputId;return o.a.createElement(D.Select,{inputId:r,className:St,onChange:function(e){n(Te(e.value))},value:t,options:xt})},Et=[{label:"Time series",value:"time_series"},{label:"Table",value:"table"},{label:"Logs",value:"logs"}],Nt=["log_url_statistics","event_url_statistics","pv_url_statistics","user_event_user_event_unique","uv_project_unique","uv_page_unique","custom_url_info","custom_url_statistics","fetch_url_info","fetch_url_statistics","fetch_project_statistics","set_data_url_statistics","performance_page_statistics","performance_project_statistics","static_url_source","static_resource_statistics","static_project_statistics","webvitals_page_statistics","webvitals_project_statistics"],At=Object(pe.cx)("width-8",Ct),jt=function(e){var t=e.format,n=e.inputId,r=e.onChange;return o.a.createElement(D.Select,{inputId:n,className:At,onChange:function(e){r(Te(e.value))},value:t,options:Et})};var qt=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Tt=function(){return(Tt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0,n=Boolean(null==e?void 0:e.instanceSettings.jsonData.logServiceEnabled),r=Boolean(null==e?void 0:e.instanceSettings.jsonData.RUMServiceEnabled);return[t&&x.monitor,n&&x.logService,r&&x.RUMService].filter(Boolean)},enumerable:!1,configurable:!0}),t.prototype.render=function(){var e=this,t=this.props,n=t.datasource,r=t.query,i=this.state.isAlertVisiable;return n?o.a.createElement("div",null,this.enabledServices.length>1&&o.a.createElement(D.TabsBar,null,B.filter((function(t){return e.enabledServices.includes(t.value)})).map((function(t){return o.a.createElement(D.Tab,{key:t.value,label:t.label,active:r.serviceType===t.value,onChangeTab:function(){e.partialOnChange({serviceType:t.value})}})}))),o.a.createElement(D.TabContent,null,r.serviceType===x.monitor&&this.renderMonitorQueryEditor(),r.serviceType===x.logService&&this.renderLogServiceQueryEditor(),r.serviceType===x.RUMService&&this.renderRUMServiceQueryEditor()),i&&o.a.createElement(D.Alert,{title:"目前仅 CLS日志服务 数据源支持告警"})):o.a.createElement("div",null,"loading")},t.prototype.renderMonitorQueryEditor=function(){var e=this.props.datasource.monitorDataSource;return e&&o.a.createElement(R,Vt({},this.props,{queryCtrl:T,datasource:e}))},t.prototype.renderLogServiceQueryEditor=function(){return o.a.createElement(ue,Vt({},this.props))},t.prototype.renderRUMServiceQueryEditor=function(){var e=this.props,t=e.query,n=e.onChange,r=e.onRunQuery,i=e.datasource;return o.a.createElement(Rt,{query:t,onChange:n,onRunQuery:r,datasource:i})},t}(i.PureComponent),Ut=function(){return o.a.createElement("a",{target:"_blank",href:"https://cloud.tencent.com/document/product/248/54510"},"Click here for more information of query")},Kt=function(e){var t=U(e),n=e.query,r=e.datasource,a=Object(i.useCallback)((function(e){var n,r,i=t.current.onChange;r=e.serviceType===x.logService?"SQL: ".concat(null===(n=e.logServiceParams)||void 0===n?void 0:n.Query):e.queryString,null==i||i(e,r)}),[t]);return o.a.createElement(o.a.Fragment,null,o.a.createElement(D.InlineFieldRow,null,o.a.createElement(D.InlineField,{label:"服务类型",labelWidth:20},o.a.createElement(D.RadioButtonGroup,{options:B,value:Object(c.isString)(n)?x.monitor:n.serviceType,onChange:function(e){e===x.monitor&&a({serviceType:e,queryString:""}),e===x.logService&&a({serviceType:e,queryString:"",logServiceParams:Object(c.clone)(V.logServiceParams)}),e===x.RUMService&&a({serviceType:e,queryString:""})}}))),n.serviceType===x.logService&&o.a.createElement(o.a.Fragment,null,o.a.createElement(ue,{datasource:r,query:n,onRunQuery:function(){},onChange:function(e){a({serviceType:x.logService,queryString:"",logServiceParams:e.logServiceParams})}})),n.serviceType===x.RUMService&&o.a.createElement(D.InlineFieldRow,null,o.a.createElement(D.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:Ut},o.a.createElement(D.Input,{name:"query",required:!0,placeholder:"metric name or tags query",onChange:function(e){return a({serviceType:x.RUMService,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))),(Object(c.isString)(n)||n.serviceType===x.monitor)&&o.a.createElement(D.InlineFieldRow,null,o.a.createElement(D.InlineField,{label:"查询语句",labelWidth:20,grow:!0,tooltip:Ut},o.a.createElement(D.Input,{name:"query",required:!0,onChange:function(e){return a({serviceType:x.monitor,queryString:e.currentTarget.value})},value:Object(c.isString)(n)?n:n.queryString}))))};Kt.displayName="VariableQueryEditor";var zt=n(125),$t=n(66);function Wt(e){return"function"==typeof e}var Yt=!1,Zt={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e);Yt=e},get useDeprecatedSynchronousErrorHandling(){return Yt}};function Jt(e){setTimeout((function(){throw e}),0)}var Ht={closed:!0,next:function(e){},error:function(e){if(Zt.useDeprecatedSynchronousErrorHandling)throw e;Jt(e)},complete:function(){}},Xt=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function en(e){return null!==e&&"object"==typeof e}var tn=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),nn=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this._parentOrParents,r=this._ctorUnsubscribe,i=this._unsubscribe,o=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var a=0;a1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},t}(an),On=function(e){function t(t,n){var r=e.call(this)||this;return r.source=t,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return $t.a(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new nn).add(this.source.subscribe(new Sn(this.getSubject(),this))),e.closed&&(this._connection=null,e=nn.EMPTY)),e},t.prototype.refCount=function(){return wn()(this)},t}(hn),xn=function(){var e=On.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),Sn=function(e){function t(t,n){var r=e.call(this,t)||this;return r.connectable=n,r}return $t.a(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(bn);var _n=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var n=this.selector,r=this.subjectFactory(),i=n(r).subscribe(e);return i.add(t.subscribe(r)),i},e}();function En(){return new In}function Nn(){return function(e){return wn()((t=En,function(e){var r;if(r="function"==typeof t?t:function(){return t},"function"==typeof n)return e.lift(new _n(r,n));var i=Object.create(e,xn);return i.source=e,i.subjectFactory=r,i})(e));var t,n}}var An=n(67),jn=n.n(An),qn=/(\w+)\[[\w/]+]/g,Tn=[{prestoTypeRegex:/^timestamp with time zone$/,fieldType:r.FieldType.time,processor:function(e){var t=String(e).replace(qn,"$1");return jn()(t).isValid()?t:e}},{prestoTypeRegex:/^timestamp$|^date$|^datetime$/,fieldType:r.FieldType.time},{prestoTypeRegex:/^time$/,fieldType:r.FieldType.time},{prestoTypeRegex:/^tinyint$|^samllint$|^integer$|^bigint$|^long$/,fieldType:r.FieldType.number},{prestoTypeRegex:/^real$|^double$|^decimal$/,fieldType:r.FieldType.number},{prestoTypeRegex:/^varchar$|^char$|^text$|^keyword$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^boolean$/,fieldType:r.FieldType.boolean},{prestoTypeRegex:/^uuid$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^ipaddress$/,fieldType:r.FieldType.string},{prestoTypeRegex:/^array\(.*\)$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^json$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^map\(.*\)$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^varbinary$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^interval$/,fieldType:r.FieldType.other},{prestoTypeRegex:/^row$/,fieldType:r.FieldType.other}];var Mn,Ln=function(){return(Ln=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=2))return"";n=t[0]}return n}function zn(e,t){void 0===t&&(t={});var n=Kn(null!=e?e:""),r=(null!=e?e:"").slice(n.length);return Object(M.getTemplateSrv)().replace(n,t,"lucene")+Object(M.getTemplateSrv)().replace(r,t,"raw")}function $n(e,t){var n=Kn(null!=e?e:""),r=(null!=e?e:"").slice(n.length),i=t.MaxResultNum;return i&&r?/limit/.test(r)?e:e+" limit "+i:e}var Wn=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Yn=function(){return(Yn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&s.length>0)return l=c[0],[2,s.map((function(e){return{text:e[l.Name],value:e[l.Name]}}))];p.label=2;case 2:return[2,[]]}}))}))},t.prototype.testDatasource=function(){return Zn(this,void 0,void 0,(function(){var e;return Jn(this,(function(t){switch(t.label){case 0:if(!this.instanceSettings.jsonData.logServiceEnabled)return[2,null];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,J({TopicId:"",Query:"",From:jn()().subtract(1,"h").valueOf(),To:jn()().valueOf()},"ap-shanghai",{instanceSettings:this.instanceSettings})];case 2:return t.sent(),[2,{status:"success",message:"DatSource Connection OK"}];case 3:return(null==(e=t.sent())?void 0:e.code)&&"AuthFailure.SignatureFailure"!==e.code?[2,{status:"success",message:"DatSource Connection OK"}]:[2,{status:"error",title:e.code,message:e.message}];case 4:return[2]}}))}))},t.prototype.getLogsVolumeDataProvider=function(e){},t}(r.DataSourceApi);function er(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var tr=er(),nr=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function rr(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var ir=function(e){if(e&&"function"==typeof e[dn])return i=e,function(e){var t=i[dn]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(nr(e))return r=e,function(e){for(var t=0,n=r.length;t0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(cr);var dr=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new fr(e,this.selector,this.caught))},e}(),fr=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.selector=n,i.caught=r,i}return $t.a(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var r=new ar(this);this.add(r);var i=sr(n,r);i!==r&&this.add(i)}},t}(cr),mr=n(196),hr=n.n(mr),yr=function(){function e(e){this.series=e.series,this.alias=e.alias,this.annotation=e.annotation,this.meta=e.meta,this.refId=e.refId}return e.prototype.getTimeSeries=function(){var e,t,n=this,r=[];return 0===this.series.length||Object(c.each)(this.series,(function(i){var o=i.columns.length,a=Object(c.map)(i.tags,(function(e,t){return t+": "+e}));for(t=1;t0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0||r.indexOf("show retention policies")>=0,o=r.indexOf("show measurements")>=0,a=new Set;return Object(c.each)(n.series,(function(e){Object(c.each)(e.values,(function(e){Object(c.isArray)(e)?i?kr(a,e[0]):void 0!==e[1]?kr(a,e[1]):kr(a,e[0]):kr(a,e)}))})),o?Array.from(a).filter((function(e){return Nt.includes(e)})).map((function(e){return{text:e}})):Array.from(a).map((function(e){return{text:e}}))},e.prototype.getTable=function(e,t,n){var i,o,a=new hr.a;if(e.length>0)if(a.meta=gr(gr({},n),{executedQueryString:null===(i=e[0].meta)||void 0===i?void 0:i.executedQueryString}),a.refId=t.refId,a=function(e,t,n){var i=function(e){var t,n=[];null===(t=e.select)||void 0===t||t.forEach((function(e){var t,r,i=e.filter((function(e){return"field"!==e.type}));i.length>0?n.push(i[0].type):(null===(r=null===(t=e[0])||void 0===t?void 0:t.params)||void 0===r?void 0:r[0])&&n.push(e[0].params[0].toString())}));var r=[];return n.forEach((function(e){r.push(function e(t,n,r,i){if(r.indexOf(n)>-1)return i++,e(t,t+"_"+i,r,i);return n}(e,e,r,0))})),r}(n);e[0].fields.forEach((function(e){"time"===e.name?t.columns.push({text:"Time",type:r.FieldType.time}):"value"===e.name&&e.labels&&Object.keys(e.labels).forEach((function(e){t.columns.push({text:e})}))})),"metricFindQuery"===e[0].refId&&e.forEach((function(e){e.name&&t.columns.push({text:e.name})}));for(var o=0;o0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(o+=" AND "+new Ae({},this.templateSrv,a).renderAdhocFilters(p));return a.timeFilter={value:o},l=this.templateSrv.replace(l,a),this._seriesQuery(l,e).pipe(sn((function(o){if(!o||!o.results)return{data:[]};var a=[];for(t=0;t0)throw{message:"RUM Error: "+i[0].error,data:r}}}return r})),(r=function(e){return e.cancelled?Object(zt.of)(e):Object(zt.throwError)(t.handleErrors(e))},function(e){var t=new dr(r),n=e.lift(t);return t.caught=n}));var r})))},t.prototype.handleErrors=function(e){var t,n={message:(null==e?void 0:e.status)||(null==e?void 0:e.message)||"Unknown error during query transaction. Please check JS console logs."};return(Number.isInteger(e.status)&&0!==e.status||e.status>=300)&&((null===(t=e.data)||void 0===t?void 0:t.error)?(n.message="RUM Error: "+e.data.error,n.data=e.data,n.config=e.config):(n.message="Network Error: "+e.statusText+"("+e.status+")",n.data=e.data,n.config=e.config)),n},t.prototype.getTimeFilter=function(e){return"time >= "+this.getRUMTime(e.rangeRaw.from,!1,e.timezone)+" and time <= "+this.getRUMTime(e.rangeRaw.to,!0,e.timezone)},t.prototype.getRUMTime=function(e,t,n){if(Object(c.isString)(e)){if("now"===e)return"now()";var i=/^now-(\d+)([dhms])$/.exec(e);if(i)return"now() - "+parseInt(i[1],10)+i[2];e=r.dateMath.parse(e,t,n)}return e.valueOf()+"ms"},t.prototype.fixTimePeriod=function(e,t){var n,r=this,i=this.getTimePeriod(t.rangeRaw,t.timezone);return null===(n=e.groupBy)||void 0===n||n.forEach((function(t){"time"===t.type&&"1d"!==t.params[0]&&(e=r.modifyTime(e,i))})),e},t.prototype.getTimePeriod=function(e,t){var n,i,o=null===(n=r.dateMath.parse(e.from,!1,t))||void 0===n?void 0:n.valueOf(),a=null===(i=r.dateMath.parse(e.to,!0,t))||void 0===i?void 0:i.valueOf(),c=0;return o&&a&&(c=a-o),c<=432e5?"1m":c<=2592e5?"30m":c<=6048e5?"1h":"1d"},t.prototype.modifyTime=function(e,t){var n;if(!e.groupBy)return e;for(var r=0,i=e.groupBy;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&-1===t._InstanceAliasValue.indexOf(r[o].timeshift)&&(t._InstanceAliasValue+="_".concat(r[o].timeshift)),t[e]=f.getDimensionsVal(t,p,h),f.checkKeys.length>0&&f.checkKeys.forEach((function(n){t[n]=t[e]})),n[e]={Name:e,Value:t[e]},[2]}}))},f=this,m=0,h=e,y.label=1;case 1:return m0){var r=i.a.cloneDeep(t);return r[n].timeshift="",m(m([],e,!0),[r,t],!1)}return m(m([],e,!0),[t],!1)}),[]).map((function(r){return f(t,void 0,void 0,(function(){var t,o,l,p,f,m,h,g,y,v,b,I,w=this;return d(this,(function(d){switch(d.label){case 0:return t=Object(c.j)(this.templateSrv,e.scopedVars,r[n].instance,!0),[4,s.a.getInstance(this.service)];case 1:o=d.sent(),l=Object(u.c)(r[n].timeshift),t=[].concat(t).map((function(e){var t,n;try{return JSON.parse(e)}catch(r){return o?null!==(n=i.a.cloneDeep(o.find((function(t){return t[w.templateQueryIdMap.instance]===e}))))&&void 0!==n?n:{}:null===(t=w.getDefaultInsObj)||void 0===t?void 0:t.call(w,e)}})),p=Object(c.j)(this.templateSrv,e.scopedVars,r[n].region,!1),f=[],m=0,h=t,d.label=2;case 2:return m=y)return(null==d?void 0:d.response)?d.response(r):r;var v=Object(c.k)(y,(null==o?void 0:o.Limit)||100),b=[];return i.a.forEach(v,(function(r){b.push(n.getInstances(e,p(p({},r),t)))})),Promise.all(b).then((function(e){return i.a.forEach(e,(function(e){r=i.a.concat(r,e)})),(null==d?void 0:d.response)?d.response(r):r})).catch((function(e){return(null==d?void 0:d.response)?d.response(r):r}))}))},e.prototype.isValidConfigField=function(e){return e&&e.length>0},e.prototype.testDatasource=function(){var e=this;return this.isValidConfigField(this.secretId)?Promise.all([this.getRegions(),this.getMetrics(),this.getInstances("ap-guangzhou",{Offset:0,Limit:1})]).then((function(t){var n=i.a.get(t,"[0].Error",{}),r=i.a.get(t,"[1].Error",{}),o=i.a.get(t,"[2].Error",{}),a=i.a.get(n,"Code",""),c=i.a.get(r,"Code",""),s=i.a.get(o,"Code","");if(a||c||s){var u=[];a&&u.push(i.a.get(n,"Code")),c&&u.push(i.a.get(r,"Code")),s&&u.push(i.a.get(o,"Code"));var l=i.a.join(i.a.compact(i.a.uniq(u)),"; ");return{service:e.service,status:"error",message:l}}return{namespace:e.namespace,service:e.service,status:"success",message:"Successfully queried the ".concat(e.service," service."),title:"Success"}})).catch((function(t){var n="".concat(e.service," service:");return n+=t.statusText?t.statusText+"; ":"",i.a.get(t,"data.error.code","")?n+=t.data.error.code+". "+t.data.error.message:i.a.get(t,"data.error","")?n+=t.data.error:i.a.get(t,"data","")?n+=t.data:n+="Cannot connect to ".concat(e.service," service."),{service:e.service,status:"error",message:n}})):{service:this.service,status:"error",message:"The SecretId/SecretKey field is required."}},e.prototype.doRequest=function(e,t,n){return void 0===n&&(n={}),f(this,void 0,void 0,(function(){return d(this,(function(r){switch(r.label){case 0:return[4,Object(c.c)(e,t,n,this.secretId,this.instanceSettings.id,this.backendSrv)];case 1:return e=r.sent(),[2,this.backendSrv.datasourceRequest(e).then((function(e){return i.a.get(e,"data.Response",{})})).catch((function(e){throw e}))]}}))}))},e}()},function(e,n){e.exports=t},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return f})),n.d(t,"f",(function(){return d})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return h}));var r=n(0),i=n.n(r),o=n(20),a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t?r.push({Name:o,Values:i.a.uniq(e).slice(0,5)}):n[o]=i.a.uniq(e)):i.a.isObject(e)?!i.a.isNumber(i.a.get(e,"value",void 0))&&i.a.isEmpty(i.a.get(e,"value",void 0))||(t?r.push({Name:o,Values:i.a.get(e,"value",[]).slice(0,5)}):n[o]=i.a.get(e,"value")):null!=e&&""!==e&&(t?r.push({Name:o,Values:e}):n[o]=e)})),t&&r.length>0)return n.Filters=r,n}return n}function f(e){return i.a.get(i.a.find(o.SERVICES,(function(t){return t.service===e})),"namespace")}function d(e){return e.reduce((function(e,t){var n=t.namespace,r=t.label,i=t.groupName,o=void 0===i?r:i,a=e.find((function(e){return e.label===o}));return a?(a.items.push({label:r,value:n}),e):(e.push({label:o,value:o,items:[{label:r,value:n}]}),e)}),[]).map((function(e){return 1===e.items.length?{label:e.items[0].label,value:e.items[0].value}:e}))}var m=function(e,t,n){try{var r=JSON.parse(e),i=JSON.parse(t);return r[n]===i[n]}catch(n){return e===t}},h=function(e){var t=/^(\d+)([d|h|m|s])$/.exec(e);if(!t)return 0;var n=parseInt(t[1],10);switch(t[2]){case"d":return 86400*n*1e3;case"h":return 3600*n*1e3;case"m":return 60*n*1e3;case"s":return 1e3*n}return 0}},function(e,t){e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(6),i=n.n(r),o=n(2);t.default=function(e,t){var n,r,a=(n=t,function(){function e(e,t){Object.assign(e,n),e.getDropdown=function(t){var n=Object(o.f)(e.namespace);return e.datasource.getFilterDropdown(n,{field:t,region:e.region})}}return e.$inject=["$scope","$rootScope"],e}());i.a.directive(e,(r=a,function(){return{template:'\n