@kepler.gl/utils 3.0.0-alpha.0 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/aggregate-utils.js +1 -21
  2. package/dist/arrow-data-container.d.ts +54 -0
  3. package/dist/arrow-data-container.js +360 -0
  4. package/dist/color-utils.d.ts +8 -0
  5. package/dist/color-utils.js +38 -22
  6. package/dist/data-container-interface.d.ts +18 -0
  7. package/dist/data-container-interface.js +0 -20
  8. package/dist/data-container-utils.d.ts +1 -0
  9. package/dist/data-container-utils.js +10 -22
  10. package/dist/data-row.js +7 -22
  11. package/dist/data-scale-utils.js +7 -22
  12. package/dist/data-utils.d.ts +10 -12
  13. package/dist/data-utils.js +121 -63
  14. package/dist/dataset-utils.d.ts +13 -2
  15. package/dist/dataset-utils.js +85 -33
  16. package/dist/dom-to-image.d.ts +14 -14
  17. package/dist/dom-to-image.js +28 -89
  18. package/dist/dom-utils.d.ts +3 -0
  19. package/dist/dom-utils.js +33 -23
  20. package/dist/effect-utils.d.ts +23 -0
  21. package/dist/effect-utils.js +196 -0
  22. package/dist/export-map-html.js +7 -23
  23. package/dist/export-utils.js +12 -23
  24. package/dist/filter-utils.d.ts +11 -9
  25. package/dist/filter-utils.js +70 -55
  26. package/dist/format.d.ts +1 -0
  27. package/dist/format.js +17 -0
  28. package/dist/gl-utils.js +1 -21
  29. package/dist/h3-utils.d.ts +2 -1
  30. package/dist/h3-utils.js +9 -24
  31. package/dist/index.d.ts +16 -10
  32. package/dist/index.js +250 -558
  33. package/dist/indexed-data-container.js +1 -21
  34. package/dist/locale-utils.js +1 -21
  35. package/dist/map-info-utils.js +6 -22
  36. package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +2 -1
  37. package/dist/map-style-utils/mapbox-gl-style-editor.js +8 -22
  38. package/dist/map-style-utils/mapbox-utils.js +7 -22
  39. package/dist/map-utils.d.ts +8 -2
  40. package/dist/map-utils.js +23 -26
  41. package/dist/mapbox-utils.js +7 -22
  42. package/dist/noop.d.ts +1 -0
  43. package/dist/noop.js +11 -0
  44. package/dist/notifications-utils.d.ts +14 -26
  45. package/dist/notifications-utils.js +8 -30
  46. package/dist/observe-dimensions.d.ts +1 -1
  47. package/dist/observe-dimensions.js +13 -29
  48. package/dist/plot.d.ts +6 -0
  49. package/dist/plot.js +31 -0
  50. package/dist/projection-utils.d.ts +9 -0
  51. package/dist/projection-utils.js +40 -22
  52. package/dist/row-data-container.js +1 -21
  53. package/dist/searcher-utils.js +7 -22
  54. package/dist/split-map-utils.d.ts +4 -1
  55. package/dist/split-map-utils.js +9 -23
  56. package/dist/time.d.ts +16 -0
  57. package/dist/time.js +89 -0
  58. package/dist/utils.d.ts +42 -10
  59. package/dist/utils.js +64 -26
  60. package/package.json +14 -13
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -28,9 +8,12 @@ Object.defineProperty(exports, "__esModule", {
28
8
  exports.findDefaultColorField = findDefaultColorField;
29
9
  exports.validateInputData = validateInputData;
30
10
  exports.getSampleForTypeAnalyze = getSampleForTypeAnalyze;
11
+ exports.isHexWkb = isHexWkb;
31
12
  exports.getFieldsFromData = getFieldsFromData;
32
13
  exports.renameDuplicateFields = renameDuplicateFields;
33
14
  exports.analyzerTypeToFieldType = analyzerTypeToFieldType;
15
+ exports.getFieldFormatLabels = getFieldFormatLabels;
16
+ exports.getFormatLabels = getFormatLabels;
34
17
  exports.ACCEPTED_ANALYZER_TYPES = exports.datasetColorMaker = void 0;
35
18
 
36
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -47,8 +30,12 @@ var _typeAnalyzer = require("type-analyzer");
47
30
 
48
31
  var _assert = _interopRequireDefault(require("assert"));
49
32
 
33
+ var _utils = require("./utils");
34
+
50
35
  var _dataUtils = require("./data-utils");
51
36
 
37
+ var _format = require("./format");
38
+
52
39
  var _d3Array = require("d3-array");
53
40
 
54
41
  var _colorUtils = require("./color-utils");
@@ -238,7 +225,7 @@ var IGNORE_DATA_TYPES = Object.keys(_typeAnalyzer.DATA_TYPES).filter(function (t
238
225
  */
239
226
 
240
227
  function validateInputData(data) {
241
- if (!(0, _dataUtils.isPlainObject)(data)) {
228
+ if (!(0, _utils.isPlainObject)(data)) {
242
229
  (0, _assert["default"])('addDataToMap Error: dataset.data cannot be null');
243
230
  return null;
244
231
  } else if (!Array.isArray(data.fields)) {
@@ -250,12 +237,15 @@ function validateInputData(data) {
250
237
  }
251
238
 
252
239
  var fields = data.fields,
253
- rows = data.rows; // check if all fields has name, format and type
240
+ rows = data.rows,
241
+ cols = data.cols; // check if all fields has name, format and type
254
242
 
255
243
  var allValid = fields.every(function (f, i) {
256
- if (!(0, _dataUtils.isPlainObject)(f)) {
244
+ if (!(0, _utils.isPlainObject)(f)) {
257
245
  (0, _assert["default"])("fields needs to be an array of object, but find ".concat((0, _typeof2["default"])(f)));
258
- fields[i] = {};
246
+ fields[i] = {
247
+ name: "column_".concat(i)
248
+ };
259
249
  }
260
250
 
261
251
  if (!f.name) {
@@ -264,7 +254,7 @@ function validateInputData(data) {
264
254
  fields[i].name = "column_".concat(i);
265
255
  }
266
256
 
267
- if (!_constants.ALL_FIELD_TYPES[f.type]) {
257
+ if (!f.type || !_constants.ALL_FIELD_TYPES[f.type]) {
268
258
  (0, _assert["default"])("unknown field type ".concat(f.type));
269
259
  return false;
270
260
  }
@@ -295,7 +285,8 @@ function validateInputData(data) {
295
285
  if (allValid) {
296
286
  return {
297
287
  rows: rows,
298
- fields: fields
288
+ fields: fields,
289
+ cols: cols
299
290
  };
300
291
  } // if any field has missing type, recalculate it for everyone
301
292
  // because we simply lost faith in humanity
@@ -379,6 +370,30 @@ function getSampleForTypeAnalyze(_ref2) {
379
370
  });
380
371
  return sample;
381
372
  }
373
+ /**
374
+ * Check if string is a valid Well-known binary (WKB) in HEX format
375
+ * https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry
376
+ *
377
+ * @param str input string
378
+ * @returns true if string is a valid WKB in HEX format
379
+ */
380
+
381
+
382
+ function isHexWkb(str) {
383
+ if (!str) return false; // check if the length of the string is even and is at least 10 characters long
384
+
385
+ if (str.length < 10 || str.length % 2 !== 0) {
386
+ return false;
387
+ } // check if first two characters are 00 or 01
388
+
389
+
390
+ if (!str.startsWith('00') && !str.startsWith('01')) {
391
+ return false;
392
+ } // check if the rest of the string is a valid hex
393
+
394
+
395
+ return /^[0-9a-fA-F]+$/.test(str.slice(2));
396
+ }
382
397
  /**
383
398
  * Analyze field types from data in `string` format, e.g. uploaded csv.
384
399
  * Assign `type`, `fieldIdx` and `format` (timestamp only) to each field
@@ -441,11 +456,18 @@ function getFieldsFromData(data, fieldOrder) {
441
456
  var name = fieldByIndex[index];
442
457
  var fieldMeta = metadata.find(function (m) {
443
458
  return m.key === field;
444
- });
459
+ }); // fieldMeta could be undefined if the field has no data and Analyzer.computeColMeta
460
+ // will ignore the field. In this case, we will simply assign the field type to STRING
461
+ // since dropping the column in the RowData could be expensive
462
+
463
+ var type = (fieldMeta === null || fieldMeta === void 0 ? void 0 : fieldMeta.type) || 'STRING';
464
+ var format = (fieldMeta === null || fieldMeta === void 0 ? void 0 : fieldMeta.format) || ''; // check if string is hex wkb
445
465
 
446
- var _ref3 = fieldMeta || {},
447
- type = _ref3.type,
448
- format = _ref3.format;
466
+ if (type === _typeAnalyzer.DATA_TYPES.STRING) {
467
+ type = data.some(function (d) {
468
+ return isHexWkb(d[name]);
469
+ }) ? _typeAnalyzer.DATA_TYPES.GEOMETRY : type;
470
+ }
449
471
 
450
472
  return {
451
473
  name: name,
@@ -543,10 +565,13 @@ function analyzerTypeToFieldType(aType) {
543
565
  case GEOMETRY:
544
566
  case GEOMETRY_FROM_STRING:
545
567
  case PAIR_GEOMETRY_FROM_STRING:
568
+ return _constants.ALL_FIELD_TYPES.geojson;
569
+
546
570
  case ARRAY:
571
+ return _constants.ALL_FIELD_TYPES.array;
572
+
547
573
  case OBJECT:
548
- // TODO: create a new data type for objects and arrays
549
- return _constants.ALL_FIELD_TYPES.geojson;
574
+ return _constants.ALL_FIELD_TYPES.object;
550
575
 
551
576
  case NUMBER:
552
577
  case STRING:
@@ -559,4 +584,31 @@ function analyzerTypeToFieldType(aType) {
559
584
  return _constants.ALL_FIELD_TYPES.string;
560
585
  }
561
586
  }
562
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc2V0LXV0aWxzLnRzIl0sIm5hbWVzIjpbImdlbmVyYXRlQ29sb3IiLCJkYXRhc2V0Q29sb3JzIiwibWFwIiwiaGV4VG9SZ2IiLCJpbmRleCIsImxlbmd0aCIsImRhdGFzZXRDb2xvck1ha2VyIiwiRVhDTFVERURfREVGQVVMVF9GSUVMRFMiLCJNRVRSSUNfREVGQVVMVF9GSUVMRFMiLCJmaW5kRGVmYXVsdENvbG9yRmllbGQiLCJmaWVsZHMiLCJmaWVsZFBhaXJzIiwiZmllbGRzV2l0aG91dEV4Y2x1ZGVkIiwiZmlsdGVyIiwiZmllbGQiLCJ0eXBlIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJmaW5kIiwicGFpciIsImxhdCIsInZhbHVlIiwibmFtZSIsImxuZyIsIm5vcm1hbGl6ZWRGaWVsZE5hbWUiLCJ0b0xvd2VyQ2FzZSIsImhhc0V4Y2x1ZGVkIiwiZiIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsImhhc0luY2x1c2lvbiIsInNvcnRlZEZpZWxkcyIsInNvcnQiLCJsZWZ0IiwicmlnaHQiLCJub3JtYWxpemVkTGVmdCIsIm5vcm1hbGl6ZWRSaWdodCIsImxlZnRIYXNJbmNsdXNpb24iLCJmaW5kSW5kZXgiLCJyaWdodEhhc0luY2x1c2lvbiIsIkFDQ0VQVEVEX0FOQUxZWkVSX1RZUEVTIiwiQW5hbHl6ZXJEQVRBX1RZUEVTIiwiREFURSIsIlRJTUUiLCJEQVRFVElNRSIsIk5VTUJFUiIsIklOVCIsIkZMT0FUIiwiQk9PTEVBTiIsIlNUUklORyIsIkdFT01FVFJZIiwiR0VPTUVUUllfRlJPTV9TVFJJTkciLCJQQUlSX0dFT01FVFJZX0ZST01fU1RSSU5HIiwiWklQQ09ERSIsIkFSUkFZIiwiT0JKRUNUIiwiSUdOT1JFX0RBVEFfVFlQRVMiLCJPYmplY3QiLCJrZXlzIiwiaW5jbHVkZXMiLCJ2YWxpZGF0ZUlucHV0RGF0YSIsImRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwiYWxsVmFsaWQiLCJldmVyeSIsImkiLCJKU09OIiwic3RyaW5naWZ5IiwiYW5hbHl6ZXJUeXBlIiwidGltZXN0YW1wIiwic2FtcGxlIiwiZmluZE5vbkVtcHR5Um93c0F0RmllbGQiLCJyIiwidHMiLCJhbmFseXplZFR5cGUiLCJBbmFseXplciIsImNvbXB1dGVDb2xNZXRhIiwiY2F0ZWdvcnkiLCJmb3JtYXQiLCJzYW1wbGVEYXRhIiwiZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUiLCJmaWVsZE9yZGVyIiwibWV0YSIsImdldEZpZWxkc0Zyb21EYXRhIiwidXBkYXRlZEZpZWxkcyIsImZpZWxkSWR4IiwidG90YWwiLCJwdXNoIiwic2FtcGxlQ291bnQiLCJNYXRoIiwibWluIiwiZCIsImZvckVhY2giLCJqIiwidHJpbSIsIm1ldGFkYXRhIiwicmVnZXgiLCJkYXRhVHlwZSIsImlnbm9yZWREYXRhVHlwZXMiLCJyZW5hbWVEdXBsaWNhdGVGaWVsZHMiLCJmaWVsZEJ5SW5kZXgiLCJyZXN1bHQiLCJmaWVsZE1ldGEiLCJtIiwia2V5IiwiaWQiLCJkaXNwbGF5TmFtZSIsImFuYWx5emVyVHlwZVRvRmllbGRUeXBlIiwidmFsdWVBY2Nlc3NvciIsImRjIiwidmFsdWVBdCIsInJlZHVjZSIsImFjY3UiLCJhbGxOYW1lcyIsImZpZWxkTmFtZSIsImNvdW50ZXIiLCJhVHlwZSIsImRhdGUiLCJnZW9qc29uIiwic3RyaW5nIiwiZ2xvYmFsQ29uc29sZSIsIndhcm4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7Ozs7O3dEQWlCVUEsYTs7QUFmVjtBQUNBO0FBQ0EsSUFBTUMsYUFBYSxHQUFHLENBQ3BCLFNBRG9CLEVBRXBCLFNBRm9CLEVBR3BCLFNBSG9CLEVBSXBCLFNBSm9CLEVBS3BCLFNBTG9CLEVBTXBCLFNBTm9CLEVBT3BCLFNBUG9CLEVBUXBCQyxHQVJvQixDQVFoQkMsb0JBUmdCLENBQXRCO0FBVUE7QUFDQTtBQUNBOztBQUNBLFNBQVVI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QU92RywyQkFBZ0IwRyxNQUF2QjtBQXpCSjtBQTJCRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7Y29uc29sZSBhcyBnbG9iYWxDb25zb2xlfSBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0FuYWx5emVyLCBEQVRBX1RZUEVTIGFzIEFuYWx5emVyREFUQV9UWVBFU30gZnJvbSAndHlwZS1hbmFseXplcic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7UHJvY2Vzc29yUmVzdWx0LCBSR0JDb2xvciwgUm93RGF0YSwgRmllbGQsIEZpZWxkUGFpcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkLCBpc1BsYWluT2JqZWN0fSBmcm9tICcuL2RhdGEtdXRpbHMnO1xuaW1wb3J0IHtyYW5nZX0gZnJvbSAnZDMtYXJyYXknO1xuaW1wb3J0IHtoZXhUb1JnYn0gZnJvbSAnLi9jb2xvci11dGlscyc7XG5cbi8vIGFwcGx5IGEgY29sb3IgZm9yIGVhY2ggZGF0YXNldFxuLy8gdG8gdXNlIGFzIGxhYmVsIGNvbG9yc1xuY29uc3QgZGF0YXNldENvbG9ycyA9IFtcbiAgJyM4RjJGQkYnLFxuICAnIzAwNUNGRicsXG4gICcjQzA2Qzg0JyxcbiAgJyNGOEIxOTUnLFxuICAnIzU0N0E4MicsXG4gICcjM0VBQ0E4JyxcbiAgJyNBMkQ0QUInXG5dLm1hcChoZXhUb1JnYik7XG5cbi8qKlxuICogUmFuZG9tIGNvbG9yIGdlbmVyYXRvclxuICovXG5mdW5jdGlvbiogZ2VuZXJhdGVDb2xvcigpOiBHZW5lcmF0b3I8UkdCQ29sb3I+IHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgd2hpbGUgKGluZGV4IDwgZGF0YXNldENvbG9ycy5sZW5ndGggKyAxKSB7XG4gICAgaWYgKGluZGV4ID09PSBkYXRhc2V0Q29sb3JzLmxlbmd0aCkge1xuICAgICAgaW5kZXggPSAwO1xuICAgIH1cbiAgICB5aWVsZCBkYXRhc2V0Q29sb3JzW2luZGV4KytdO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0Q29sb3JNYWtlciA9IGdlbmVyYXRlQ29sb3IoKTtcblxuLyoqXG4gKiBGaWVsZCBuYW1lIHByZWZpeGVzIGFuZCBzdWZmaXhlcyB3aGljaCBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWRcbiAqIGFzIG1ldHJpY3MuIEZpZWxkcyB3aWxsIHN0aWxsIGJlIGluY2x1ZGVkIGlmIGEgJ21ldHJpYyB3b3JkJ1xuICogaXMgZm91bmQgb24gdGhlIGZpZWxkIG5hbWUsIGhvd2V2ZXIuXG4gKi9cbmNvbnN0IEVYQ0xVREVEX0RFRkFVTFRfRklFTERTID0gW1xuICAvLyBTZXJpYWwgbnVtYmVycyBhbmQgaWRlbnRpZmljYXRpb24gbnVtYmVyc1xuICAnX2lkJyxcbiAgJ2lkJyxcbiAgJ2luZGV4JyxcbiAgJ3V1aWQnLFxuICAnZ3VpZCcsXG4gICd1aWQnLFxuICAnZ2lkJyxcbiAgJ3NlcmlhbCcsXG4gIC8vIEdlb2dyYXBoaWMgSURzIGFyZSB1bmxpa2VseSB0byBiZSBpbnRlcmVzdGluZyB0byBjb2xvclxuICAnemlwJyxcbiAgJ2NvZGUnLFxuICAncG9zdCcsXG4gICdyZWdpb24nLFxuICAnZmlwcycsXG4gICdjYmdzJyxcbiAgJ2gzJyxcbiAgJ3MyJyxcbiAgLy8gR2VvZ3JhcGhpYyBjb29yZHMgKGJ1dCBub3Qgei9lbGV2YXRpb24vYWx0aXR1ZGVcbiAgLy8gc2luY2UgdGhhdCBtaWdodCBiZSBhIG1ldHJpYylcbiAgJ2xhdCcsXG4gICdsb24nLFxuICAnbG5nJyxcbiAgJ2xhdGl0dWRlJyxcbiAgJ2xvbmdpdHVkZScsXG4gICdfeCcsXG4gICdfeSdcbl07XG5cbi8qKlxuICogUHJlZml4ZXMgYW5kIHN1ZmZpeGVzIHRoYXQgaW5kaWNhdGUgYSBmaWVsZCBpcyBhIG1ldHJpYy5cbiAqXG4gKiBOb3RlIHRoYXQgdGhlc2UgYXJlIGluIG9yZGVyIG9mIHByZWZlcmVuY2UsIGZpcnN0IGJlaW5nXG4gKiBtb3N0IHByZWZlcnJlZC5cbiAqL1xuY29uc3QgTUVUUklDX0RFRkFVTFRfRklFTERTID0gW1xuICAnbWV0cmljJyxcbiAgJ3ZhbHVlJyxcbiAgJ3N1bScsXG4gICdjb3VudCcsXG4gICd1bmlxdWUnLFxuICAnbWVhbicsXG4gICdtb2RlJyxcbiAgJ21lZGlhbicsXG4gICdtYXgnLFxuICAnbWluJyxcbiAgJ2RldmlhdGlvbicsXG4gICd2YXJpYW5jZScsXG4gICdwOTknLFxuICAncDk1JyxcbiAgJ3A3NScsXG4gICdwNTAnLFxuICAncDI1JyxcbiAgJ3AwNScsXG4gIC8vIEFiYnJldmlhdGlvbnMgYXJlIGxlc3MgcHJlZmVycmVkXG4gICdjbnQnLFxuICAndmFsJ1xuXTtcblxuLyoqXG4gKiBDaG9vc2UgYSBmaWVsZCB0byB1c2UgYXMgdGhlIGRlZmF1bHQgY29sb3IgZmllbGQgb2YgYSBsYXllci5cbiAqXG4gKiBUaGUgaGV1cmlzdGljIGlzOlxuICpcbiAqIEZpcnN0LCBleGNsdWRlIGZpZWxkcyB0aGF0IGFyZSBvbiB0aGUgZXhjbHVzaW9uIGxpc3QgYW5kIGRvbid0XG4gKiBoYXZlIG5hbWVzIHRoYXQgc3VnZ2VzdCB0aGV5IGNvbnRhaW4gbWV0cmljcy4gQWxzbyBleGNsdWRlXG4gKiBmaWVsZCBuYW1lcyB0aGF0IGFyZSBibGFuay5cbiAqXG4gKiBOZXh0LCBsb29rIGZvciBhIGZpZWxkIHRoYXQgaXMgb2YgcmVhbCB0eXBlIGFuZCBjb250YWlucyBvbmVcbiAqIG9mIHRoZSBwcmVmZXJyZWQgbmFtZXMgKGluIG9yZGVyIG9mIHRoZSBwcmVmZXJyZWQgbmFtZXMpLlxuICpcbiAqIE5leHQsIGxvb2sgZm9yIGEgZmllbGQgdGhhdCBpcyBvZiBpbnRlZ2VyIHR5cGUgYW5kIGNvbnRhaW5zXG4gKiBvbmUgb2YgdGhlIHByZWZlcnJlZCBuYW1lcyAoaW4gb3JkZXIgb2YgdGhlIHByZWZlcnJlZCBuYW1lcykuXG4gKlxuICogTmV4dCwgbG9vayBmb3IgdGhlIGZpcnN0IGZpZWxkIHRoYXQgaXMgb2YgcmVhbCB0eXBlIChpbiBvcmRlclxuICogb2YgZmllbGQgaW5kZXgpLlxuICpcbiAqIE5leHQsIGxvb2sgZm9yIHRoZSBmaXJzdCBmaWVsZCB0aGF0IGlzIG9mIGludGVnZXIgdHlwZSAoaW5cbiAqIG9yZGVyIG9mIGZpZWxkIGluZGV4KS5cbiAqXG4gKiBJdCdzIHBvc3NpYmxlIG5vIGZpZWxkIHdpbGwgYmUgY2hvc2VuIChpLmUuIGJlY2F1c2UgYWxsIGZpZWxkc1xuICogYXJlIHN0cmluZ3MuKVxuICpcbiAqIEBwYXJhbSBkYXRhc2V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRGVmYXVsdENvbG9yRmllbGQoe1xuICBmaWVsZHMsXG4gIGZpZWxkUGFpcnMgPSBbXVxufToge1xuICBmaWVsZHM6IEZpZWxkW107XG4gIGZpZWxkUGFpcnM6IEZpZWxkUGFpcltdO1xufSk6IG51bGwgfCBGaWVsZCB7XG4gIGNvbnN0IGZpZWxkc1dpdGhvdXRFeGNsdWRlZCA9IGZpZWxkcy5maWx0ZXIoZmllbGQgPT4ge1xuICAgIGlmIChmaWVsZC50eXBlICE9PSBBTExfRklFTERfVFlQRVMucmVhbCAmJiBmaWVsZC50eXBlICE9PSBBTExfRklFTERfVFlQRVMuaW50ZWdlcikge1xuICAgICAgLy8gT25seSBzZWxlY3QgbnVtZXJpYyBmaWVsZHMuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGZpZWxkUGFpcnMuZmluZChcbiAgICAgICAgcGFpciA9PiBwYWlyLnBhaXIubGF0LnZhbHVlID09PSBmaWVsZC5uYW1lIHx8IHBhaXIucGFpci5sbmcudmFsdWUgPT09IGZpZWxkLm5hbWVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIC8vIERvIG5vdCBwZXJtaXQgbGF0LCBsb24gZmllbGRzXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZEZpZWxkTmFtZSA9IGZpZWxkLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9ybWFsaXplZEZpZWxkTmFtZSA9PT0gJycpIHtcbiAgICAgIC8vIFNwZWNpYWwgY2FzZSBleGNsdWRlZCBuYW1lIHdoZW4gdGhlIG5hbWUgaXMgYmxhbmsuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGhhc0V4Y2x1ZGVkID0gRVhDTFVERURfREVGQVVMVF9GSUVMRFMuZmluZChcbiAgICAgIGYgPT4gbm9ybWFsaXplZEZpZWxkTmFtZS5zdGFydHNXaXRoKGYpIHx8IG5vcm1hbGl6ZWRGaWVsZE5hbWUuZW5kc1dpdGgoZilcbiAgICApO1xuICAgIGNvbnN0IGhhc0luY2x1c2lvbiA9IE1FVFJJQ19ERUZBVUxUX0ZJRUxEUy5maW5kKFxuICAgICAgZiA9PiBub3JtYWxpemVkRmllbGROYW1lLnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZEZpZWxkTmFtZS5lbmRzV2l0aChmKVxuICAgICk7XG4gICAgcmV0dXJuICFoYXNFeGNsdWRlZCB8fCBoYXNJbmNsdXNpb247XG4gIH0pO1xuXG4gIGNvbnN0IHNvcnRlZEZpZWxkcyA9IGZpZWxkc1dpdGhvdXRFeGNsdWRlZC5zb3J0KChsZWZ0LCByaWdodCkgPT4ge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRMZWZ0ID0gbGVmdC5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFJpZ2h0ID0gcmlnaHQubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGxlZnRIYXNJbmNsdXNpb24gPSBNRVRSSUNfREVGQVVMVF9GSUVMRFMuZmluZEluZGV4KFxuICAgICAgZiA9PiBub3JtYWxpemVkTGVmdC5zdGFydHNXaXRoKGYpIHx8IG5vcm1hbGl6ZWRMZWZ0LmVuZHNXaXRoKGYpXG4gICAgKTtcbiAgICBjb25zdCByaWdodEhhc0luY2x1c2lvbiA9IE1FVFJJQ19ERUZBVUxUX0ZJRUxEUy5maW5kSW5kZXgoXG4gICAgICBmID0+IG5vcm1hbGl6ZWRSaWdodC5zdGFydHNXaXRoKGYpIHx8IG5vcm1hbGl6ZWRSaWdodC5lbmRzV2l0aChmKVxuICAgICk7XG4gICAgaWYgKGxlZnRIYXNJbmNsdXNpb24gIT09IHJpZ2h0SGFzSW5jbHVzaW9uKSB7XG4gICAgICBpZiAobGVmdEhhc0luY2x1c2lvbiA9PT0gLTEpIHtcbiAgICAgICAgLy8gRWxlbWVudHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgaW5jbHVzaW9uIGxpc3Qgc2hvdWxkIGdvIGFmdGVyIHRob3NlIHRoYXQgZG8uXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIGlmIChyaWdodEhhc0luY2x1c2lvbiA9PT0gLTEpIHtcbiAgICAgICAgLy8gRWxlbWVudHMgdGhhdCBkbyBoYXZlIHRoZSBpbmNsdXNpb24gbGlzdCBzaG91bGQgZ28gYmVmb3JlIHRob3NlIHRoYXQgZG9uJ3QuXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIC8vIENvbXBhcmUgYmFzZWQgb24gb3JkZXIgaW4gdGhlIGluY2x1c2lvbiBsaXN0XG4gICAgICByZXR1cm4gbGVmdEhhc0luY2x1c2lvbiAtIHJpZ2h0SGFzSW5jbHVzaW9uO1xuICAgIH1cblxuICAgIC8vIENvbXBhcmUgYmFzZWQgb24gdHlwZVxuICAgIGlmIChsZWZ0LnR5cGUgIT09IHJpZ2h0LnR5cGUpIHtcbiAgICAgIGlmIChsZWZ0LnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5yZWFsKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIC8vIGxlZnQgaXMgYW4gaW50ZWdlciBhbmQgcmlnaHQgaXMgbm90XG4gICAgICAvLyBhbmQgcmVhbHMgY29tZSBiZWZvcmUgaW50ZWdlcnNcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIC8vIEZpbmFsbHksIG9yZGVyIGJhc2VkIG9uIHRoZSBvcmRlciBpbiB0aGUgZGF0YXNldHMgY29sdW1uc1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICByZXR1cm4gbGVmdC5pbmRleCAtIHJpZ2h0LmluZGV4O1xuICB9KTtcblxuICBpZiAoc29ydGVkRmllbGRzLmxlbmd0aCkge1xuICAgIC8vIFRoZXJlIHdhcyBhIGJlc3QgbWF0Y2hcbiAgICByZXR1cm4gc29ydGVkRmllbGRzWzBdO1xuICB9XG4gIC8vIE5vIG1hdGNoZXNcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBBQ0NFUFRFRF9BTkFMWVpFUl9UWVBFUyA9IFtcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLkRBVEUsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5USU1FLFxuICBBbmFseXplckRBVEFfVFlQRVMuREFURVRJTUUsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5OVU1CRVIsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5JTlQsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5GTE9BVCxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLkJPT0xFQU4sXG4gIEFuYWx5emVyREFUQV9UWVBFUy5TVFJJTkcsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5HRU9NRVRSWSxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLkdFT01FVFJZX0ZST01fU1RSSU5HLFxuICBBbmFseXplckRBVEFfVFlQRVMuUEFJUl9HRU9NRVRSWV9GUk9NX1NUUklORyxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLlpJUENPREUsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5BUlJBWSxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLk9CSkVDVFxuXTtcblxuY29uc3QgSUdOT1JFX0RBVEFfVFlQRVMgPSBPYmplY3Qua2V5cyhBbmFseXplckRBVEFfVFlQRVMpLmZpbHRlcihcbiAgdHlwZSA9PiAhQUNDRVBURURfQU5BTFlaRVJfVFlQRVMuaW5jbHVkZXModHlwZSlcbik7XG5cbi8qKlxuICogVmFsaWRhdGUgaW5wdXQgZGF0YSwgYWRkaW5nIG1pc3NpbmcgZmllbGQgdHlwZXMsIHJlbmFtZSBkdXBsaWNhdGUgY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVJbnB1dERhdGEoZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9jZXNzb3JSZXN1bHQge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoZGF0YSkpIHtcbiAgICBhc3NlcnQoJ2FkZERhdGFUb01hcCBFcnJvcjogZGF0YXNldC5kYXRhIGNhbm5vdCBiZSBudWxsJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YS5maWVsZHMpKSB7XG4gICAgYXNzZXJ0KCdhZGREYXRhVG9NYXAgRXJyb3I6IGV4cGVjdCBkYXRhc2V0LmRhdGEuZmllbGRzIHRvIGJlIGFuIGFycmF5Jyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YS5yb3dzKSkge1xuICAgIGFzc2VydCgnYWRkRGF0YVRvTWFwIEVycm9yOiBleHBlY3QgZGF0YXNldC5kYXRhLnJvd3MgdG8gYmUgYW4gYXJyYXknKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHtmaWVsZHMsIHJvd3N9ID0gZGF0YTtcblxuICAvLyBjaGVjayBpZiBhbGwgZmllbGRzIGhhcyBuYW1lLCBmb3JtYXQgYW5kIHR5cGVcbiAgY29uc3QgYWxsVmFsaWQgPSBmaWVsZHMuZXZlcnkoKGYsIGkpID0+IHtcbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoZikpIHtcbiAgICAgIGFzc2VydChgZmllbGRzIG5lZWRzIHRvIGJlIGFuIGFycmF5IG9mIG9iamVjdCwgYnV0IGZpbmQgJHt0eXBlb2YgZn1gKTtcbiAgICAgIGZpZWxkc1tpXSA9IHt9O1xuICAgIH1cblxuICAgIGlmICghZi5uYW1lKSB7XG4gICAgICBhc3NlcnQoYGZpZWxkLm5hbWUgaXMgcmVxdWlyZWQgYnV0IG1pc3NpbmcgaW4gJHtKU09OLnN0cmluZ2lmeShmKX1gKTtcbiAgICAgIC8vIGFzc2lnbiBhIG5hbWVcbiAgICAgIGZpZWxkc1tpXS5uYW1lID0gYGNvbHVtbl8ke2l9YDtcbiAgICB9XG5cbiAgICBpZiAoIUFMTF9GSUVMRF9UWVBFU1tmLnR5cGVdKSB7XG4gICAgICBhc3NlcnQoYHVua25vd24gZmllbGQgdHlwZSAke2YudHlwZX1gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWZpZWxkcy5ldmVyeShmaWVsZCA9PiBmaWVsZC5hbmFseXplclR5cGUpKSB7XG4gICAgICBhc3NlcnQoJ2ZpZWxkIG1pc3NpbmcgYW5hbHl6ZXJUeXBlJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgdGltZSBmb3JtYXQgaXMgY29ycmVjdCBiYXNlZCBvbiBmaXJzdCAxMCBub3QgZW1wdHkgZWxlbWVudFxuICAgIGlmIChmLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXApIHtcbiAgICAgIGNvbnN0IHNhbXBsZSA9IGZpbmROb25FbXB0eVJvd3NBdEZpZWxkKHJvd3MsIGksIDEwKS5tYXAociA9PiAoe3RzOiByW2ldfSkpO1xuICAgICAgY29uc3QgYW5hbHl6ZWRUeXBlID0gQW5hbHl6ZXIuY29tcHV0ZUNvbE1ldGEoc2FtcGxlKVswXTtcbiAgICAgIHJldHVybiBhbmFseXplZFR5cGUgJiYgYW5hbHl6ZWRUeXBlLmNhdGVnb3J5ID09PSAnVElNRScgJiYgYW5hbHl6ZWRUeXBlLmZvcm1hdCA9PT0gZi5mb3JtYXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIGlmIChhbGxWYWxpZCkge1xuICAgIHJldHVybiB7cm93cywgZmllbGRzfTtcbiAgfVxuXG4gIC8vIGlmIGFueSBmaWVsZCBoYXMgbWlzc2luZyB0eXBlLCByZWNhbGN1bGF0ZSBpdCBmb3IgZXZlcnlvbmVcbiAgLy8gYmVjYXVzZSB3ZSBzaW1wbHkgbG9zdCBmYWl0aCBpbiBodW1hbml0eVxuICBjb25zdCBzYW1wbGVEYXRhID0gZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUoe1xuICAgIGZpZWxkczogZmllbGRzLm1hcChmID0+IGYubmFtZSksXG4gICAgcm93c1xuICB9KTtcbiAgY29uc3QgZmllbGRPcmRlciA9IGZpZWxkcy5tYXAoZiA9PiBmLm5hbWUpO1xuICBjb25zdCBtZXRhID0gZ2V0RmllbGRzRnJvbURhdGEoc2FtcGxlRGF0YSwgZmllbGRPcmRlcik7XG4gIGNvbnN0IHVwZGF0ZWRGaWVsZHMgPSBmaWVsZHMubWFwKChmLCBpKSA9PiAoe1xuICAgIC4uLmYsXG4gICAgdHlwZTogbWV0YVtpXS50eXBlLFxuICAgIGZvcm1hdDogbWV0YVtpXS5mb3JtYXQsXG4gICAgYW5hbHl6ZXJUeXBlOiBtZXRhW2ldLmFuYWx5emVyVHlwZVxuICB9KSk7XG5cbiAgcmV0dXJuIHtmaWVsZHM6IHVwZGF0ZWRGaWVsZHMsIHJvd3N9O1xufVxuXG5mdW5jdGlvbiBmaW5kTm9uRW1wdHlSb3dzQXRGaWVsZChyb3dzOiB1bmtub3duW11bXSwgZmllbGRJZHg6IG51bWJlciwgdG90YWw6IG51bWJlcik6IGFueVtdIHtcbiAgY29uc3Qgc2FtcGxlOiBhbnlbXSA9IFtdO1xuICBsZXQgaSA9IDA7XG4gIHdoaWxlIChzYW1wbGUubGVuZ3RoIDwgdG90YWwgJiYgaSA8IHJvd3MubGVuZ3RoKSB7XG4gICAgaWYgKG5vdE51bGxvclVuZGVmaW5lZChyb3dzW2ldPy5bZmllbGRJZHhdKSkge1xuICAgICAgc2FtcGxlLnB1c2gocm93c1tpXSk7XG4gICAgfVxuICAgIGkrKztcbiAgfVxuICByZXR1cm4gc2FtcGxlO1xufVxuLyoqXG4gKiBHZXR0aW5nIHNhbXBsZSBkYXRhIGZvciBhbmFseXppbmcgZmllbGQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNhbXBsZUZvclR5cGVBbmFseXplKHtcbiAgZmllbGRzLFxuICByb3dzLFxuICBzYW1wbGVDb3VudCA9IDUwXG59OiB7XG4gIGZpZWxkczogc3RyaW5nW107XG4gIHJvd3M6IHVua25vd25bXVtdO1xuICBzYW1wbGVDb3VudD86IG51bWJlcjtcbn0pOiBSb3dEYXRhIHtcbiAgY29uc3QgdG90YWwgPSBNYXRoLm1pbihzYW1wbGVDb3VudCwgcm93cy5sZW5ndGgpO1xuICAvLyBjb25zdCBmaWVsZE9yZGVyID0gZmllbGRzLm1hcChmID0+IGYubmFtZSk7XG4gIGNvbnN0IHNhbXBsZSA9IHJhbmdlKDAsIHRvdGFsLCAxKS5tYXAoZCA9PiAoe30pKTtcblxuICAvLyBjb2xsZWN0IHNhbXBsZSBkYXRhIGZvciBlYWNoIGZpZWxkXG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCwgZmllbGRJZHgpID0+IHtcbiAgICAvLyBkYXRhIGNvdW50ZXJcbiAgICBsZXQgaSA9IDA7XG4gICAgLy8gc2FtcGxlIGNvdW50ZXJcbiAgICBsZXQgaiA9IDA7XG5cbiAgICB3aGlsZSAoaiA8IHRvdGFsKSB7XG4gICAgICBpZiAoaSA+PSByb3dzLmxlbmd0aCkge1xuICAgICAgICAvLyBpZiBkZXBsZXRlZCBkYXRhIHBvb2xcbiAgICAgICAgc2FtcGxlW2pdW2ZpZWxkXSA9IG51bGw7XG4gICAgICAgIGorKztcbiAgICAgIH0gZWxzZSBpZiAobm90TnVsbG9yVW5kZWZpbmVkKHJvd3NbaV1bZmllbGRJZHhdKSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJvd3NbaV1bZmllbGRJZHhdO1xuICAgICAgICBzYW1wbGVbal1bZmllbGRdID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuICAgICAgICBqKys7XG4gICAgICAgIGkrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBzYW1wbGU7XG59XG5cbi8qKlxuICogQW5hbHl6ZSBmaWVsZCB0eXBlcyBmcm9tIGRhdGEgaW4gYHN0cmluZ2AgZm9ybWF0LCBlLmcuIHVwbG9hZGVkIGNzdi5cbiAqIEFzc2lnbiBgdHlwZWAsIGBmaWVsZElkeGAgYW5kIGBmb3JtYXRgICh0aW1lc3RhbXAgb25seSkgdG8gZWFjaCBmaWVsZFxuICpcbiAqIEBwYXJhbSBkYXRhIGFycmF5IG9mIHJvdyBvYmplY3RcbiAqIEBwYXJhbSBmaWVsZE9yZGVyIGFycmF5IG9mIGZpZWxkIG5hbWVzIGFzIHN0cmluZ1xuICogQHJldHVybnMgZm9ybWF0dGVkIGZpZWxkc1xuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBpbXBvcnQge2dldEZpZWxkc0Zyb21EYXRhfSBmcm9tICdrZXBsZXIuZ2wvcHJvY2Vzc29ycyc7XG4gKiBjb25zdCBkYXRhID0gW3tcbiAqICAgdGltZTogJzIwMTYtMDktMTcgMDA6MDk6NTUnLFxuICogICB2YWx1ZTogJzQnLFxuICogICBzdXJnZTogJzEuMicsXG4gKiAgIGlzVHJpcDogJ3RydWUnLFxuICogICB6ZXJvT25lczogJzAnXG4gKiB9LCB7XG4gKiAgIHRpbWU6ICcyMDE2LTA5LTE3IDAwOjMwOjA4JyxcbiAqICAgdmFsdWU6ICczJyxcbiAqICAgc3VyZ2U6IG51bGwsXG4gKiAgIGlzVHJpcDogJ2ZhbHNlJyxcbiAqICAgemVyb09uZXM6ICcxJ1xuICogfSwge1xuICogICB0aW1lOiBudWxsLFxuICogICB2YWx1ZTogJzInLFxuICogICBzdXJnZTogJzEuMycsXG4gKiAgIGlzVHJpcDogbnVsbCxcbiAqICAgemVyb09uZXM6ICcxJ1xuICogfV07XG4gKlxuICogY29uc3QgZmllbGRPcmRlciA9IFsndGltZScsICd2YWx1ZScsICdzdXJnZScsICdpc1RyaXAnLCAnemVyb09uZXMnXTtcbiAqIGNvbnN0IGZpZWxkcyA9IGdldEZpZWxkc0Zyb21EYXRhKGRhdGEsIGZpZWxkT3JkZXIpO1xuICogLy8gZmllbGRzID0gW1xuICogLy8ge25hbWU6ICd0aW1lJywgZm9ybWF0OiAnWVlZWS1NLUQgSDptOnMnLCBmaWVsZElkeDogMSwgdHlwZTogJ3RpbWVzdGFtcCd9LFxuICogLy8ge25hbWU6ICd2YWx1ZScsIGZvcm1hdDogJycsIGZpZWxkSWR4OiA0LCB0eXBlOiAnaW50ZWdlcid9LFxuICogLy8ge25hbWU6ICdzdXJnZScsIGZvcm1hdDogJycsIGZpZWxkSWR4OiA1LCB0eXBlOiAncmVhbCd9LFxuICogLy8ge25hbWU6ICdpc1RyaXAnLCBmb3JtYXQ6ICcnLCBmaWVsZElkeDogNiwgdHlwZTogJ2Jvb2xlYW4nfSxcbiAqIC8vIHtuYW1lOiAnemVyb09uZXMnLCBmb3JtYXQ6ICcnLCBmaWVsZElkeDogNywgdHlwZTogJ2ludGVnZXInfV07XG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRzRnJvbURhdGEoZGF0YTogUm93RGF0YSwgZmllbGRPcmRlcjogc3RyaW5nW10pOiBGaWVsZFtdIHtcbiAgLy8gYWRkIGEgY2hlY2sgZm9yIGVwb2NoIHRpbWVzdGFtcFxuICBjb25zdCBtZXRhZGF0YSA9IEFuYWx5emVyLmNvbXB1dGVDb2xNZXRhKFxuICAgIGRhdGEsXG4gICAgW1xuICAgICAge3JlZ2V4OiAvLipnZW9qc29ufGFsbF9wb2ludHMvZywgZGF0YVR5cGU6ICdHRU9NRVRSWSd9LFxuICAgICAge3JlZ2V4OiAvLipjZW5zdXMvZywgZGF0YVR5cGU6ICdTVFJJTkcnfVxuICAgIF0sXG4gICAge2lnbm9yZWREYXRhVHlwZXM6IElHTk9SRV9EQVRBX1RZUEVTfVxuICApO1xuXG4gIGNvbnN0IHtmaWVsZEJ5SW5kZXh9ID0gcmVuYW1lRHVwbGljYXRlRmllbGRzKGZpZWxkT3JkZXIpO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGZpZWxkT3JkZXIubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBuYW1lID0gZmllbGRCeUluZGV4W2luZGV4XTtcblxuICAgIGNvbnN0IGZpZWxkTWV0YSA9IG1ldGFkYXRhLmZpbmQobSA9PiBtLmtleSA9PT0gZmllbGQpO1xuICAgIGNvbnN0IHt0eXBlLCBmb3JtYXR9ID0gZmllbGRNZXRhIHx8IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBpZDogbmFtZSxcbiAgICAgIGRpc3BsYXlOYW1lOiBuYW1lLFxuICAgICAgZm9ybWF0LFxuICAgICAgZmllbGRJZHg6IGluZGV4LFxuICAgICAgdHlwZTogYW5hbHl6ZXJUeXBlVG9GaWVsZFR5cGUodHlwZSksXG4gICAgICBhbmFseXplclR5cGU6IHR5cGUsXG4gICAgICB2YWx1ZUFjY2Vzc29yOiBkYyA9PiBkID0+IHtcbiAgICAgICAgcmV0dXJuIGRjLnZhbHVlQXQoZC5pbmRleCwgaW5kZXgpO1xuICAgICAgfVxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogcGFzcyBpbiBhbiBhcnJheSBvZiBmaWVsZCBuYW1lcywgcmVuYW1lIGR1cGxpY2F0ZWQgb25lXG4gKiBhbmQgcmV0dXJuIGEgbWFwIGZyb20gb2xkIGZpZWxkIGluZGV4IHRvIG5ldyBuYW1lXG4gKlxuICogQHBhcmFtIGZpZWxkT3JkZXJcbiAqIEByZXR1cm5zIG5ldyBmaWVsZCBuYW1lIGJ5IGluZGV4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5hbWVEdXBsaWNhdGVGaWVsZHMoXG4gIGZpZWxkT3JkZXI6IHN0cmluZ1tdXG4pOiB7YWxsTmFtZXM6IHN0cmluZ1tdOyBmaWVsZEJ5SW5kZXg6IHN0cmluZ1tdfSB7XG4gIHJldHVybiBmaWVsZE9yZGVyLnJlZHVjZTx7YWxsTmFtZXM6IHN0cmluZ1tdOyBmaWVsZEJ5SW5kZXg6IHN0cmluZ1tdfT4oXG4gICAgKGFjY3UsIGZpZWxkLCBpKSA9PiB7XG4gICAgICBjb25zdCB7YWxsTmFtZXN9ID0gYWNjdTtcbiAgICAgIGxldCBmaWVsZE5hbWUgPSBmaWVsZDtcblxuICAgICAgLy8gYWRkIGEgY291bnRlciB0byBkdXBsaWNhdGVkIG5hbWVzXG4gICAgICBpZiAoYWxsTmFtZXMuaW5jbHVkZXMoZmllbGQpKSB7XG4gICAgICAgIGxldCBjb3VudGVyID0gMDtcbiAgICAgICAgd2hpbGUgKGFsbE5hbWVzLmluY2x1ZGVzKGAke2ZpZWxkfS0ke2NvdW50ZXJ9YCkpIHtcbiAgICAgICAgICBjb3VudGVyKys7XG4gICAgICAgIH1cbiAgICAgICAgZmllbGROYW1lID0gYCR7ZmllbGR9LSR7Y291bnRlcn1gO1xuICAgICAgfVxuXG4gICAgICBhY2N1LmZpZWxkQnlJbmRleFtpXSA9IGZpZWxkTmFtZTtcbiAgICAgIGFjY3UuYWxsTmFtZXMucHVzaChmaWVsZE5hbWUpO1xuXG4gICAgICByZXR1cm4gYWNjdTtcbiAgICB9LFxuICAgIHthbGxOYW1lczogW10sIGZpZWxkQnlJbmRleDogW119XG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCB0eXBlLWFuYWx5emVyIG91dHB1dCB0byBrZXBsZXIuZ2wgZmllbGQgdHlwZXNcbiAqXG4gKiBAcGFyYW0gYVR5cGVcbiAqIEByZXR1cm5zIGNvcnJlc3BvbmRpbmcgdHlwZSBpbiBgQUxMX0ZJRUxEX1RZUEVTYFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gYW5hbHl6ZXJUeXBlVG9GaWVsZFR5cGUoYVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBEQVRFLFxuICAgIFRJTUUsXG4gICAgREFURVRJTUUsXG4gICAgTlVNQkVSLFxuICAgIElOVCxcbiAgICBGTE9BVCxcbiAgICBCT09MRUFOLFxuICAgIFNUUklORyxcbiAgICBHRU9NRVRSWSxcbiAgICBHRU9NRVRSWV9GUk9NX1NUUklORyxcbiAgICBQQUlSX0dFT01FVFJZX0ZST01fU1RSSU5HLFxuICAgIFpJUENPREUsXG4gICAgQVJSQVksXG4gICAgT0JKRUNUXG4gIH0gPSBBbmFseXplckRBVEFfVFlQRVM7XG5cbiAgLy8gVE9ETzogdW4gcmVjb2duaXplZCB0eXBlc1xuICAvLyBDVVJSRU5DWSBQRVJDRU5UIE5PTkVcbiAgc3dpdGNoIChhVHlwZSkge1xuICAgIGNhc2UgREFURTpcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuZGF0ZTtcbiAgICBjYXNlIFRJTUU6XG4gICAgY2FzZSBEQVRFVElNRTpcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMudGltZXN0YW1wO1xuICAgIGNhc2UgRkxPQVQ6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLnJlYWw7XG4gICAgY2FzZSBJTlQ6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLmludGVnZXI7XG4gICAgY2FzZSBCT09MRUFOOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5ib29sZWFuO1xuICAgIGNhc2UgR0VPTUVUUlk6XG4gICAgY2FzZSBHRU9NRVRSWV9GUk9NX1NUUklORzpcbiAgICBjYXNlIFBBSVJfR0VPTUVUUllfRlJPTV9TVFJJTkc6XG4gICAgY2FzZSBBUlJBWTpcbiAgICBjYXNlIE9CSkVDVDpcbiAgICAgIC8vIFRPRE86IGNyZWF0ZSBhIG5ldyBkYXRhIHR5cGUgZm9yIG9iamVjdHMgYW5kIGFycmF5c1xuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5nZW9qc29uO1xuICAgIGNhc2UgTlVNQkVSOlxuICAgIGNhc2UgU1RSSU5HOlxuICAgIGNhc2UgWklQQ09ERTpcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuc3RyaW5nO1xuICAgIGRlZmF1bHQ6XG4gICAgICBnbG9iYWxDb25zb2xlLndhcm4oYFVuc3VwcG9ydGVkIGFuYWx5emVyIHR5cGU6ICR7YVR5cGV9YCk7XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLnN0cmluZztcbiAgfVxufVxuIl19
587
+
588
+ var TIME_DISPLAY = '2020-05-11 14:00';
589
+
590
+ var addTimeLabel = function addTimeLabel(formats) {
591
+ return formats.map(function (f) {
592
+ return _objectSpread(_objectSpread({}, f), {}, {
593
+ label: f.type === _constants.TOOLTIP_FORMAT_TYPES.DATE_TIME || f.type === _constants.TOOLTIP_FORMAT_TYPES.DATE ? (0, _dataUtils.getFormatter)((0, _format.getFormatValue)(f))(TIME_DISPLAY) : f.label
594
+ });
595
+ });
596
+ };
597
+
598
+ function getFieldFormatLabels(fieldType) {
599
+ var tooltipTypes = fieldType && _constants.FIELD_OPTS[fieldType].format.tooltip || [];
600
+ var formatLabels = Object.values(_constants.TOOLTIP_FORMATS).filter(function (t) {
601
+ return tooltipTypes.includes(t.type);
602
+ });
603
+ return addTimeLabel(formatLabels);
604
+ }
605
+
606
+ function getFormatLabels(fields, fieldName) {
607
+ var _fields$find;
608
+
609
+ var fieldType = (_fields$find = fields.find(function (f) {
610
+ return f.name === fieldName;
611
+ })) === null || _fields$find === void 0 ? void 0 : _fields$find.type;
612
+ return getFieldFormatLabels(fieldType);
613
+ }
614
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc2V0LXV0aWxzLnRzIl0sIm5hbWVzIjpbImdlbmVyYXRlQ29sb3IiLCJkYXRhc2V0Q29sb3JzIiwibWFwIiwiaGV4VG9SZ2IiLCJpbmRleCIsImxlbmd0aCIsImRhdGFzZXRDb2xvck1ha2VyIiwiRVhDTFVERURfREVGQVVMVF9GSUVMRFMiLCJNRVRSSUNfREVGQVVMVF9GSUVMRFMiLCJmaW5kRGVmYXVsdENvbG9yRmllbGQiLCJmaWVsZHMiLCJmaWVsZFBhaXJzIiwiZmllbGRzV2l0aG91dEV4Y2x1ZGVkIiwiZmlsdGVyIiwiZmllbGQiLCJ0eXBlIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJmaW5kIiwicGFpciIsImxhdCIsInZhbHVlIiwibmFtZSIsImxuZyIsIm5vcm1hbGl6ZWRGaWVsZE5hbWUiLCJ0b0xvd2VyQ2FzZSIsImhhc0V4Y2x1ZGVkIiwiZiIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsImhhc0luY2x1c2lvbiIsInNvcnRlZEZpZWxkcyIsInNvcnQiLCJsZWZ0IiwicmlnaHQiLCJub3JtYWxpemVkTGVmdCIsIm5vcm1hbGl6ZWRSaWdodCIsImxlZnRIYXNJbmNsdXNpb24iLCJmaW5kSW5kZXgiLCJyaWdodEhhc0luY2x1c2lvbiIsIkFDQ0VQVEVEX0FOQUxZWkVSX1RZUEVTIiwiQW5hbHl6ZXJEQVRBX1RZUEVTIiwiREFURSIsIlRJTUUiLCJEQVRFVElNRSIsIk5VTUJFUiIsIklOVCIsIkZMT0FUIiwiQk9PTEVBTiIsIlNUUklORyIsIkdFT01FVFJZIiwiR0VPTUVUUllfRlJPTV9TVFJJTkciLCJQQUlSX0dFT01FVFJZX0ZST01fU1RSSU5HIiwiWklQQ09ERSIsIkFSUkFZIiwiT0JKRUNUIiwiSUdOT1JFX0RBVEFfVFlQRVMiLCJPYmplY3QiLCJrZXlzIiwiaW5jbHVkZXMiLCJ2YWxpZGF0ZUlucHV0RGF0YSIsImRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwiY29scyIsImFsbFZhbGlkIiwiZXZlcnkiLCJpIiwiSlNPTiIsInN0cmluZ2lmeSIsImFuYWx5emVyVHlwZSIsInRpbWVzdGFtcCIsInNhbXBsZSIsImZpbmROb25FbXB0eVJvd3NBdEZpZWxkIiwiciIsInRzIiwiYW5hbHl6ZWRUeXBlIiwiQW5hbHl6ZXIiLCJjb21wdXRlQ29sTWV0YSIsImNhdGVnb3J5IiwiZm9ybWF0Iiwic2FtcGxlRGF0YSIsImdldFNhbXBsZUZvclR5cGVBbmFseXplIiwiZmllbGRPcmRlciIsIm1ldGEiLCJnZXRGaWVsZHNGcm9tRGF0YSIsInVwZGF0ZWRGaWVsZHMiLCJmaWVsZElkeCIsInRvdGFsIiwicHVzaCIsInNhbXBsZUNvdW50IiwiTWF0aCIsIm1pbiIsImQiLCJmb3JFYWNoIiwiaiIsInRyaW0iLCJpc0hleFdrYiIsInN0ciIsInRlc3QiLCJzbGljZSIsIm1ldGFkYXRhIiwicmVnZXgiLCJkYXRhVHlwZSIsImlnbm9yZWREYXRhVHlwZXMiLCJyZW5hbWVEdXBsaWNhdGVGaWVsZHMiLCJmaWVsZEJ5SW5kZXgiLCJyZXN1bHQiLCJmaWVsZE1ldGEiLCJtIiwia2V5Iiwic29tZSIsImlkIiwiZGlzcGxheU5hbWUiLCJhbmFseXplclR5cGVUb0ZpZWxkVHlwZSIsInZhbHVlQWNjZXNzb3IiLCJkYyIsInZhbHVlQXQiLCJyZWR1Y2UiLCJhY2N1IiwiYWxsTmFtZXMiLCJmaWVsZE5hbWUiLCJjb3VudGVyIiwiYVR5cGUiLCJkYXRlIiwiZ2VvanNvbiIsImFycmF5Iiwib2JqZWN0Iiwic3RyaW5nIiwiZ2xvYmFsQ29uc29sZSIsIndhcm4iLCJUSU1FX0RJU1BMQVkiLCJhZGRUaW1lTGFiZWwiLCJmb3JtYXRzIiwibGFiZWwiLCJUT09MVElQX0ZPUk1BVF9UWVBFUyIsIkRBVEVfVElNRSIsImdldEZpZWxkRm9ybWF0TGFiZWxzIiwiZmllbGRUeXBlIiwidG9vbHRpcFR5cGVzIiwiRklFTERfT1BUUyIsInRvb2x0aXAiLCJmb3JtYXRMYWJlbHMiLCJ2YWx1ZXMiLCJUT09MVElQX0ZPUk1BVFMiLCJ0Iiwi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RixNQUFQLENBQWNDLDBCQUFkLEVBQStCckksTUFBL0IsQ0FBc0MsVUFBQXNJLENBQUM7QUFBQSxXQUM3RU4sWUFBWSxDQUFDakYsUUFBYixDQUFzQnVGLENBQUMsQ0FBQ3BJLElBQXhCLENBRDZFO0FBQUEsR0FBdkMsQ0FBeEM7QUFHQSxTQUFPdUgsWUFBWSxDQUFDVSxZQUFELENBQW5CO0FBQ0Q7O0FBRU0sU0FBU0ksZUFBVCxDQUF5QjFJLE1BQXpCLEVBQWtEaUgsU0FBbEQsRUFBcUU7QUFBQTs7QUFDMUUsTUFBTWlCLFNBQVMsbUJBQUdsSSxNQUFNLENBQUNTLElBQVAsQ0FBWSxVQUFBUyxDQUFDO0FBQUEsV0FBSUEsQ0FBQyxDQUFDTCxJQUFGLEtBQVdvRyxTQUFmO0FBQUEsR0FBYixDQUFILGlEQUFHLGFBQXdDNUcsSUFBMUQ7QUFDQSxTQUFPNEgsb0JBQW9CLENBQUNDLFNBQUQsQ0FBM0I7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Y29uc29sZSBhcyBnbG9iYWxDb25zb2xlfSBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCB7XG4gIEFMTF9GSUVMRF9UWVBFUyxcbiAgRklFTERfT1BUUyxcbiAgVE9PTFRJUF9GT1JNQVRTLFxuICBUT09MVElQX0ZPUk1BVF9UWVBFU1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0FuYWx5emVyLCBEQVRBX1RZUEVTIGFzIEFuYWx5emVyREFUQV9UWVBFU30gZnJvbSAndHlwZS1hbmFseXplcic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7XG4gIFByb2Nlc3NvclJlc3VsdCxcbiAgUkdCQ29sb3IsXG4gIFJvd0RhdGEsXG4gIEZpZWxkLFxuICBGaWVsZFBhaXIsXG4gIFRpbWVMYWJlbEZvcm1hdCxcbiAgVG9vbHRpcEZpZWxkcyxcbiAgUHJvdG9EYXRhc2V0XG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtUb29sdGlwRm9ybWF0fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7aXNQbGFpbk9iamVjdH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZCwgZ2V0Rm9ybWF0dGVyfSBmcm9tICcuL2RhdGEtdXRpbHMnO1xuaW1wb3J0IHtnZXRGb3JtYXRWYWx1ZX0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHtyYW5nZX0gZnJvbSAnZDMtYXJyYXknO1xuaW1wb3J0IHtoZXhUb1JnYn0gZnJvbSAnLi9jb2xvci11dGlscyc7XG5cbi8vIGFwcGx5IGEgY29sb3IgZm9yIGVhY2ggZGF0YXNldFxuLy8gdG8gdXNlIGFzIGxhYmVsIGNvbG9yc1xuY29uc3QgZGF0YXNldENvbG9ycyA9IFtcbiAgJyM4RjJGQkYnLFxuICAnIzAwNUNGRicsXG4gICcjQzA2Qzg0JyxcbiAgJyNGOEIxOTUnLFxuICAnIzU0N0E4MicsXG4gICcjM0VBQ0E4JyxcbiAgJyNBMkQ0QUInXG5dLm1hcChoZXhUb1JnYik7XG5cbi8qKlxuICogUmFuZG9tIGNvbG9yIGdlbmVyYXRvclxuICovXG5mdW5jdGlvbiogZ2VuZXJhdGVDb2xvcigpOiBHZW5lcmF0b3I8UkdCQ29sb3I+IHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgd2hpbGUgKGluZGV4IDwgZGF0YXNldENvbG9ycy5sZW5ndGggKyAxKSB7XG4gICAgaWYgKGluZGV4ID09PSBkYXRhc2V0Q29sb3JzLmxlbmd0aCkge1xuICAgICAgaW5kZXggPSAwO1xuICAgIH1cbiAgICB5aWVsZCBkYXRhc2V0Q29sb3JzW2luZGV4KytdO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0Q29sb3JNYWtlciA9IGdlbmVyYXRlQ29sb3IoKTtcblxuLyoqXG4gKiBGaWVsZCBuYW1lIHByZWZpeGVzIGFuZCBzdWZmaXhlcyB3aGljaCBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWRcbiAqIGFzIG1ldHJpY3MuIEZpZWxkcyB3aWxsIHN0aWxsIGJlIGluY2x1ZGVkIGlmIGEgJ21ldHJpYyB3b3JkJ1xuICogaXMgZm91bmQgb24gdGhlIGZpZWxkIG5hbWUsIGhvd2V2ZXIuXG4gKi9cbmNvbnN0IEVYQ0xVREVEX0RFRkFVTFRfRklFTERTID0gW1xuICAvLyBTZXJpYWwgbnVtYmVycyBhbmQgaWRlbnRpZmljYXRpb24gbnVtYmVyc1xuICAnX2lkJyxcbiAgJ2lkJyxcbiAgJ2luZGV4JyxcbiAgJ3V1aWQnLFxuICAnZ3VpZCcsXG4gICd1aWQnLFxuICAnZ2lkJyxcbiAgJ3NlcmlhbCcsXG4gIC8vIEdlb2dyYXBoaWMgSURzIGFyZSB1bmxpa2VseSB0byBiZSBpbnRlcmVzdGluZyB0byBjb2xvclxuICAnemlwJyxcbiAgJ2NvZGUnLFxuICAncG9zdCcsXG4gICdyZWdpb24nLFxuICAnZmlwcycsXG4gICdjYmdzJyxcbiAgJ2gzJyxcbiAgJ3MyJyxcbiAgLy8gR2VvZ3JhcGhpYyBjb29yZHMgKGJ1dCBub3Qgei9lbGV2YXRpb24vYWx0aXR1ZGVcbiAgLy8gc2luY2UgdGhhdCBtaWdodCBiZSBhIG1ldHJpYylcbiAgJ2xhdCcsXG4gICdsb24nLFxuICAnbG5nJyxcbiAgJ2xhdGl0dWRlJyxcbiAgJ2xvbmdpdHVkZScsXG4gICdfeCcsXG4gICdfeSdcbl07XG5cbi8qKlxuICogUHJlZml4ZXMgYW5kIHN1ZmZpeGVzIHRoYXQgaW5kaWNhdGUgYSBmaWVsZCBpcyBhIG1ldHJpYy5cbiAqXG4gKiBOb3RlIHRoYXQgdGhlc2UgYXJlIGluIG9yZGVyIG9mIHByZWZlcmVuY2UsIGZpcnN0IGJlaW5nXG4gKiBtb3N0IHByZWZlcnJlZC5cbiAqL1xuY29uc3QgTUVUUklDX0RFRkFVTFRfRklFTERTID0gW1xuICAnbWV0cmljJyxcbiAgJ3ZhbHVlJyxcbiAgJ3N1bScsXG4gICdjb3VudCcsXG4gICd1bmlxdWUnLFxuICAnbWVhbicsXG4gICdtb2RlJyxcbiAgJ21lZGlhbicsXG4gICdtYXgnLFxuICAnbWluJyxcbiAgJ2RldmlhdGlvbicsXG4gICd2YXJpYW5jZScsXG4gICdwOTknLFxuICAncDk1JyxcbiAgJ3A3NScsXG4gICdwNTAnLFxuICAncDI1JyxcbiAgJ3AwNScsXG4gIC8vIEFiYnJldmlhdGlvbnMgYXJlIGxlc3MgcHJlZmVycmVkXG4gICdjbnQnLFxuICAndmFsJ1xuXTtcblxuLyoqXG4gKiBDaG9vc2UgYSBmaWVsZCB0byB1c2UgYXMgdGhlIGRlZmF1bHQgY29sb3IgZmllbGQgb2YgYSBsYXllci5cbiAqXG4gKiBUaGUgaGV1cmlzdGljIGlzOlxuICpcbiAqIEZpcnN0LCBleGNsdWRlIGZpZWxkcyB0aGF0IGFyZSBvbiB0aGUgZXhjbHVzaW9uIGxpc3QgYW5kIGRvbid0XG4gKiBoYXZlIG5hbWVzIHRoYXQgc3VnZ2VzdCB0aGV5IGNvbnRhaW4gbWV0cmljcy4gQWxzbyBleGNsdWRlXG4gKiBmaWVsZCBuYW1lcyB0aGF0IGFyZSBibGFuay5cbiAqXG4gKiBOZXh0LCBsb29rIGZvciBhIGZpZWxkIHRoYXQgaXMgb2YgcmVhbCB0eXBlIGFuZCBjb250YWlucyBvbmVcbiAqIG9mIHRoZSBwcmVmZXJyZWQgbmFtZXMgKGluIG9yZGVyIG9mIHRoZSBwcmVmZXJyZWQgbmFtZXMpLlxuICpcbiAqIE5leHQsIGxvb2sgZm9yIGEgZmllbGQgdGhhdCBpcyBvZiBpbnRlZ2VyIHR5cGUgYW5kIGNvbnRhaW5zXG4gKiBvbmUgb2YgdGhlIHByZWZlcnJlZCBuYW1lcyAoaW4gb3JkZXIgb2YgdGhlIHByZWZlcnJlZCBuYW1lcykuXG4gKlxuICogTmV4dCwgbG9vayBmb3IgdGhlIGZpcnN0IGZpZWxkIHRoYXQgaXMgb2YgcmVhbCB0eXBlIChpbiBvcmRlclxuICogb2YgZmllbGQgaW5kZXgpLlxuICpcbiAqIE5leHQsIGxvb2sgZm9yIHRoZSBmaXJzdCBmaWVsZCB0aGF0IGlzIG9mIGludGVnZXIgdHlwZSAoaW5cbiAqIG9yZGVyIG9mIGZpZWxkIGluZGV4KS5cbiAqXG4gKiBJdCdzIHBvc3NpYmxlIG5vIGZpZWxkIHdpbGwgYmUgY2hvc2VuIChpLmUuIGJlY2F1c2UgYWxsIGZpZWxkc1xuICogYXJlIHN0cmluZ3MuKVxuICpcbiAqIEBwYXJhbSBkYXRhc2V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRGVmYXVsdENvbG9yRmllbGQoe1xuICBmaWVsZHMsXG4gIGZpZWxkUGFpcnMgPSBbXVxufToge1xuICBmaWVsZHM6IEZpZWxkW107XG4gIGZpZWxkUGFpcnM6IEZpZWxkUGFpcltdO1xufSk6IG51bGwgfCBGaWVsZCB7XG4gIGNvbnN0IGZpZWxkc1dpdGhvdXRFeGNsdWRlZCA9IGZpZWxkcy5maWx0ZXIoZmllbGQgPT4ge1xuICAgIGlmIChmaWVsZC50eXBlICE9PSBBTExfRklFTERfVFlQRVMucmVhbCAmJiBmaWVsZC50eXBlICE9PSBBTExfRklFTERfVFlQRVMuaW50ZWdlcikge1xuICAgICAgLy8gT25seSBzZWxlY3QgbnVtZXJpYyBmaWVsZHMuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGZpZWxkUGFpcnMuZmluZChcbiAgICAgICAgcGFpciA9PiBwYWlyLnBhaXIubGF0LnZhbHVlID09PSBmaWVsZC5uYW1lIHx8IHBhaXIucGFpci5sbmcudmFsdWUgPT09IGZpZWxkLm5hbWVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIC8vIERvIG5vdCBwZXJtaXQgbGF0LCBsb24gZmllbGRzXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZEZpZWxkTmFtZSA9IGZpZWxkLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9ybWFsaXplZEZpZWxkTmFtZSA9PT0gJycpIHtcbiAgICAgIC8vIFNwZWNpYWwgY2FzZSBleGNsdWRlZCBuYW1lIHdoZW4gdGhlIG5hbWUgaXMgYmxhbmsuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGhhc0V4Y2x1ZGVkID0gRVhDTFVERURfREVGQVVMVF9GSUVMRFMuZmluZChcbiAgICAgIGYgPT4gbm9ybWFsaXplZEZpZWxkTmFtZS5zdGFydHNXaXRoKGYpIHx8IG5vcm1hbGl6ZWRGaWVsZE5hbWUuZW5kc1dpdGgoZilcbiAgICApO1xuICAgIGNvbnN0IGhhc0luY2x1c2lvbiA9IE1FVFJJQ19ERUZBVUxUX0ZJRUxEUy5maW5kKFxuICAgICAgZiA9PiBub3JtYWxpemVkRmllbGROYW1lLnN0YXJ0c1dpdGgoZikgfHwgbm9ybWFsaXplZEZpZWxkTmFtZS5lbmRzV2l0aChmKVxuICAgICk7XG4gICAgcmV0dXJuICFoYXNFeGNsdWRlZCB8fCBoYXNJbmNsdXNpb247XG4gIH0pO1xuXG4gIGNvbnN0IHNvcnRlZEZpZWxkcyA9IGZpZWxkc1dpdGhvdXRFeGNsdWRlZC5zb3J0KChsZWZ0LCByaWdodCkgPT4ge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRMZWZ0ID0gbGVmdC5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFJpZ2h0ID0gcmlnaHQubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGxlZnRIYXNJbmNsdXNpb24gPSBNRVRSSUNfREVGQVVMVF9GSUVMRFMuZmluZEluZGV4KFxuICAgICAgZiA9PiBub3JtYWxpemVkTGVmdC5zdGFydHNXaXRoKGYpIHx8IG5vcm1hbGl6ZWRMZWZ0LmVuZHNXaXRoKGYpXG4gICAgKTtcbiAgICBjb25zdCByaWdodEhhc0luY2x1c2lvbiA9IE1FVFJJQ19ERUZBVUxUX0ZJRUxEUy5maW5kSW5kZXgoXG4gICAgICBmID0+IG5vcm1hbGl6ZWRSaWdodC5zdGFydHNXaXRoKGYpIHx8IG5vcm1hbGl6ZWRSaWdodC5lbmRzV2l0aChmKVxuICAgICk7XG4gICAgaWYgKGxlZnRIYXNJbmNsdXNpb24gIT09IHJpZ2h0SGFzSW5jbHVzaW9uKSB7XG4gICAgICBpZiAobGVmdEhhc0luY2x1c2lvbiA9PT0gLTEpIHtcbiAgICAgICAgLy8gRWxlbWVudHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgaW5jbHVzaW9uIGxpc3Qgc2hvdWxkIGdvIGFmdGVyIHRob3NlIHRoYXQgZG8uXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIGlmIChyaWdodEhhc0luY2x1c2lvbiA9PT0gLTEpIHtcbiAgICAgICAgLy8gRWxlbWVudHMgdGhhdCBkbyBoYXZlIHRoZSBpbmNsdXNpb24gbGlzdCBzaG91bGQgZ28gYmVmb3JlIHRob3NlIHRoYXQgZG9uJ3QuXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIC8vIENvbXBhcmUgYmFzZWQgb24gb3JkZXIgaW4gdGhlIGluY2x1c2lvbiBsaXN0XG4gICAgICByZXR1cm4gbGVmdEhhc0luY2x1c2lvbiAtIHJpZ2h0SGFzSW5jbHVzaW9uO1xuICAgIH1cblxuICAgIC8vIENvbXBhcmUgYmFzZWQgb24gdHlwZVxuICAgIGlmIChsZWZ0LnR5cGUgIT09IHJpZ2h0LnR5cGUpIHtcbiAgICAgIGlmIChsZWZ0LnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5yZWFsKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIC8vIGxlZnQgaXMgYW4gaW50ZWdlciBhbmQgcmlnaHQgaXMgbm90XG4gICAgICAvLyBhbmQgcmVhbHMgY29tZSBiZWZvcmUgaW50ZWdlcnNcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIC8vIEZpbmFsbHksIG9yZGVyIGJhc2VkIG9uIHRoZSBvcmRlciBpbiB0aGUgZGF0YXNldHMgY29sdW1uc1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICByZXR1cm4gbGVmdC5pbmRleCAtIHJpZ2h0LmluZGV4O1xuICB9KTtcblxuICBpZiAoc29ydGVkRmllbGRzLmxlbmd0aCkge1xuICAgIC8vIFRoZXJlIHdhcyBhIGJlc3QgbWF0Y2hcbiAgICByZXR1cm4gc29ydGVkRmllbGRzWzBdO1xuICB9XG4gIC8vIE5vIG1hdGNoZXNcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBBQ0NFUFRFRF9BTkFMWVpFUl9UWVBFUyA9IFtcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLkRBVEUsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5USU1FLFxuICBBbmFseXplckRBVEFfVFlQRVMuREFURVRJTUUsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5OVU1CRVIsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5JTlQsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5GTE9BVCxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLkJPT0xFQU4sXG4gIEFuYWx5emVyREFUQV9UWVBFUy5TVFJJTkcsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5HRU9NRVRSWSxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLkdFT01FVFJZX0ZST01fU1RSSU5HLFxuICBBbmFseXplckRBVEFfVFlQRVMuUEFJUl9HRU9NRVRSWV9GUk9NX1NUUklORyxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLlpJUENPREUsXG4gIEFuYWx5emVyREFUQV9UWVBFUy5BUlJBWSxcbiAgQW5hbHl6ZXJEQVRBX1RZUEVTLk9CSkVDVFxuXTtcblxuY29uc3QgSUdOT1JFX0RBVEFfVFlQRVMgPSBPYmplY3Qua2V5cyhBbmFseXplckRBVEFfVFlQRVMpLmZpbHRlcihcbiAgdHlwZSA9PiAhQUNDRVBURURfQU5BTFlaRVJfVFlQRVMuaW5jbHVkZXModHlwZSlcbik7XG5cbi8qKlxuICogVmFsaWRhdGUgaW5wdXQgZGF0YSwgYWRkaW5nIG1pc3NpbmcgZmllbGQgdHlwZXMsIHJlbmFtZSBkdXBsaWNhdGUgY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVJbnB1dERhdGEoZGF0YTogUHJvdG9EYXRhc2V0WydkYXRhJ10pOiBQcm9jZXNzb3JSZXN1bHQge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoZGF0YSkpIHtcbiAgICBhc3NlcnQoJ2FkZERhdGFUb01hcCBFcnJvcjogZGF0YXNldC5kYXRhIGNhbm5vdCBiZSBudWxsJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YS5maWVsZHMpKSB7XG4gICAgYXNzZXJ0KCdhZGREYXRhVG9NYXAgRXJyb3I6IGV4cGVjdCBkYXRhc2V0LmRhdGEuZmllbGRzIHRvIGJlIGFuIGFycmF5Jyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YS5yb3dzKSkge1xuICAgIGFzc2VydCgnYWRkRGF0YVRvTWFwIEVycm9yOiBleHBlY3QgZGF0YXNldC5kYXRhLnJvd3MgdG8gYmUgYW4gYXJyYXknKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHtmaWVsZHMsIHJvd3MsIGNvbHN9ID0gZGF0YTtcblxuICAvLyBjaGVjayBpZiBhbGwgZmllbGRzIGhhcyBuYW1lLCBmb3JtYXQgYW5kIHR5cGVcbiAgY29uc3QgYWxsVmFsaWQgPSBmaWVsZHMuZXZlcnkoKGYsIGkpID0+IHtcbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoZikpIHtcbiAgICAgIGFzc2VydChgZmllbGRzIG5lZWRzIHRvIGJlIGFuIGFycmF5IG9mIG9iamVjdCwgYnV0IGZpbmQgJHt0eXBlb2YgZn1gKTtcbiAgICAgIGZpZWxkc1tpXSA9IHtuYW1lOiBgY29sdW1uXyR7aX1gfTtcbiAgICB9XG5cbiAgICBpZiAoIWYubmFtZSkge1xuICAgICAgYXNzZXJ0KGBmaWVsZC5uYW1lIGlzIHJlcXVpcmVkIGJ1dCBtaXNzaW5nIGluICR7SlNPTi5zdHJpbmdpZnkoZil9YCk7XG4gICAgICAvLyBhc3NpZ24gYSBuYW1lXG4gICAgICBmaWVsZHNbaV0ubmFtZSA9IGBjb2x1bW5fJHtpfWA7XG4gICAgfVxuXG4gICAgaWYgKCFmLnR5cGUgfHwgIUFMTF9GSUVMRF9UWVBFU1tmLnR5cGVdKSB7XG4gICAgICBhc3NlcnQoYHVua25vd24gZmllbGQgdHlwZSAke2YudHlwZX1gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWZpZWxkcy5ldmVyeShmaWVsZCA9PiBmaWVsZC5hbmFseXplclR5cGUpKSB7XG4gICAgICBhc3NlcnQoJ2ZpZWxkIG1pc3NpbmcgYW5hbHl6ZXJUeXBlJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgdGltZSBmb3JtYXQgaXMgY29ycmVjdCBiYXNlZCBvbiBmaXJzdCAxMCBub3QgZW1wdHkgZWxlbWVudFxuICAgIGlmIChmLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXApIHtcbiAgICAgIGNvbnN0IHNhbXBsZSA9IGZpbmROb25FbXB0eVJvd3NBdEZpZWxkKHJvd3MsIGksIDEwKS5tYXAociA9PiAoe3RzOiByW2ldfSkpO1xuICAgICAgY29uc3QgYW5hbHl6ZWRUeXBlID0gQW5hbHl6ZXIuY29tcHV0ZUNvbE1ldGEoc2FtcGxlKVswXTtcbiAgICAgIHJldHVybiBhbmFseXplZFR5cGUgJiYgYW5hbHl6ZWRUeXBlLmNhdGVnb3J5ID09PSAnVElNRScgJiYgYW5hbHl6ZWRUeXBlLmZvcm1hdCA9PT0gZi5mb3JtYXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIGlmIChhbGxWYWxpZCkge1xuICAgIHJldHVybiB7cm93cywgZmllbGRzLCBjb2xzfTtcbiAgfVxuXG4gIC8vIGlmIGFueSBmaWVsZCBoYXMgbWlzc2luZyB0eXBlLCByZWNhbGN1bGF0ZSBpdCBmb3IgZXZlcnlvbmVcbiAgLy8gYmVjYXVzZSB3ZSBzaW1wbHkgbG9zdCBmYWl0aCBpbiBodW1hbml0eVxuICBjb25zdCBzYW1wbGVEYXRhID0gZ2V0U2FtcGxlRm9yVHlwZUFuYWx5emUoe1xuICAgIGZpZWxkczogZmllbGRzLm1hcChmID0+IGYubmFtZSksXG4gICAgcm93c1xuICB9KTtcbiAgY29uc3QgZmllbGRPcmRlciA9IGZpZWxkcy5tYXAoZiA9PiBmLm5hbWUpO1xuICBjb25zdCBtZXRhID0gZ2V0RmllbGRzRnJvbURhdGEoc2FtcGxlRGF0YSwgZmllbGRPcmRlcik7XG4gIGNvbnN0IHVwZGF0ZWRGaWVsZHMgPSBmaWVsZHMubWFwKChmLCBpKSA9PiAoe1xuICAgIC4uLmYsXG4gICAgdHlwZTogbWV0YVtpXS50eXBlLFxuICAgIGZvcm1hdDogbWV0YVtpXS5mb3JtYXQsXG4gICAgYW5hbHl6ZXJUeXBlOiBtZXRhW2ldLmFuYWx5emVyVHlwZVxuICB9KSk7XG5cbiAgcmV0dXJuIHtmaWVsZHM6IHVwZGF0ZWRGaWVsZHMsIHJvd3N9O1xufVxuXG5mdW5jdGlvbiBmaW5kTm9uRW1wdHlSb3dzQXRGaWVsZChyb3dzOiB1bmtub3duW11bXSwgZmllbGRJZHg6IG51bWJlciwgdG90YWw6IG51bWJlcik6IGFueVtdIHtcbiAgY29uc3Qgc2FtcGxlOiBhbnlbXSA9IFtdO1xuICBsZXQgaSA9IDA7XG4gIHdoaWxlIChzYW1wbGUubGVuZ3RoIDwgdG90YWwgJiYgaSA8IHJvd3MubGVuZ3RoKSB7XG4gICAgaWYgKG5vdE51bGxvclVuZGVmaW5lZChyb3dzW2ldPy5bZmllbGRJZHhdKSkge1xuICAgICAgc2FtcGxlLnB1c2gocm93c1tpXSk7XG4gICAgfVxuICAgIGkrKztcbiAgfVxuICByZXR1cm4gc2FtcGxlO1xufVxuLyoqXG4gKiBHZXR0aW5nIHNhbXBsZSBkYXRhIGZvciBhbmFseXppbmcgZmllbGQgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNhbXBsZUZvclR5cGVBbmFseXplKHtcbiAgZmllbGRzLFxuICByb3dzLFxuICBzYW1wbGVDb3VudCA9IDUwXG59OiB7XG4gIGZpZWxkczogc3RyaW5nW107XG4gIHJvd3M6IHVua25vd25bXVtdO1xuICBzYW1wbGVDb3VudD86IG51bWJlcjtcbn0pOiBSb3dEYXRhIHtcbiAgY29uc3QgdG90YWwgPSBNYXRoLm1pbihzYW1wbGVDb3VudCwgcm93cy5sZW5ndGgpO1xuICAvLyBjb25zdCBmaWVsZE9yZGVyID0gZmllbGRzLm1hcChmID0+IGYubmFtZSk7XG4gIGNvbnN0IHNhbXBsZSA9IHJhbmdlKDAsIHRvdGFsLCAxKS5tYXAoZCA9PiAoe30pKTtcblxuICAvLyBjb2xsZWN0IHNhbXBsZSBkYXRhIGZvciBlYWNoIGZpZWxkXG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCwgZmllbGRJZHgpID0+IHtcbiAgICAvLyBkYXRhIGNvdW50ZXJcbiAgICBsZXQgaSA9IDA7XG4gICAgLy8gc2FtcGxlIGNvdW50ZXJcbiAgICBsZXQgaiA9IDA7XG5cbiAgICB3aGlsZSAoaiA8IHRvdGFsKSB7XG4gICAgICBpZiAoaSA+PSByb3dzLmxlbmd0aCkge1xuICAgICAgICAvLyBpZiBkZXBsZXRlZCBkYXRhIHBvb2xcbiAgICAgICAgc2FtcGxlW2pdW2ZpZWxkXSA9IG51bGw7XG4gICAgICAgIGorKztcbiAgICAgIH0gZWxzZSBpZiAobm90TnVsbG9yVW5kZWZpbmVkKHJvd3NbaV1bZmllbGRJZHhdKSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJvd3NbaV1bZmllbGRJZHhdO1xuICAgICAgICBzYW1wbGVbal1bZmllbGRdID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuICAgICAgICBqKys7XG4gICAgICAgIGkrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBzYW1wbGU7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgc3RyaW5nIGlzIGEgdmFsaWQgV2VsbC1rbm93biBiaW5hcnkgKFdLQikgaW4gSEVYIGZvcm1hdFxuICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2VsbC1rbm93bl90ZXh0X3JlcHJlc2VudGF0aW9uX29mX2dlb21ldHJ5XG4gKlxuICogQHBhcmFtIHN0ciBpbnB1dCBzdHJpbmdcbiAqIEByZXR1cm5zIHRydWUgaWYgc3RyaW5nIGlzIGEgdmFsaWQgV0tCIGluIEhFWCBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSGV4V2tiKHN0cjogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICBpZiAoIXN0cikgcmV0dXJuIGZhbHNlO1xuICAvLyBjaGVjayBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgZXZlbiBhbmQgaXMgYXQgbGVhc3QgMTAgY2hhcmFjdGVycyBsb25nXG4gIGlmIChzdHIubGVuZ3RoIDwgMTAgfHwgc3RyLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gY2hlY2sgaWYgZmlyc3QgdHdvIGNoYXJhY3RlcnMgYXJlIDAwIG9yIDAxXG4gIGlmICghc3RyLnN0YXJ0c1dpdGgoJzAwJykgJiYgIXN0ci5zdGFydHNXaXRoKCcwMScpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGNoZWNrIGlmIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBoZXhcbiAgcmV0dXJuIC9eWzAtOWEtZkEtRl0rJC8udGVzdChzdHIuc2xpY2UoMikpO1xufVxuXG4vKipcbiAqIEFuYWx5emUgZmllbGQgdHlwZXMgZnJvbSBkYXRhIGluIGBzdHJpbmdgIGZvcm1hdCwgZS5nLiB1cGxvYWRlZCBjc3YuXG4gKiBBc3NpZ24gYHR5cGVgLCBgZmllbGRJZHhgIGFuZCBgZm9ybWF0YCAodGltZXN0YW1wIG9ubHkpIHRvIGVhY2ggZmllbGRcbiAqXG4gKiBAcGFyYW0gZGF0YSBhcnJheSBvZiByb3cgb2JqZWN0XG4gKiBAcGFyYW0gZmllbGRPcmRlciBhcnJheSBvZiBmaWVsZCBuYW1lcyBhcyBzdHJpbmdcbiAqIEByZXR1cm5zIGZvcm1hdHRlZCBmaWVsZHNcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKlxuICogaW1wb3J0IHtnZXRGaWVsZHNGcm9tRGF0YX0gZnJvbSAna2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuICogY29uc3QgZGF0YSA9IFt7XG4gKiAgIHRpbWU6ICcyMDE2LTA5LTE3IDAwOjA5OjU1JyxcbiAqICAgdmFsdWU6ICc0JyxcbiAqICAgc3VyZ2U6ICcxLjInLFxuICogICBpc1RyaXA6ICd0cnVlJyxcbiAqICAgemVyb09uZXM6ICcwJ1xuICogfSwge1xuICogICB0aW1lOiAnMjAxNi0wOS0xNyAwMDozMDowOCcsXG4gKiAgIHZhbHVlOiAnMycsXG4gKiAgIHN1cmdlOiBudWxsLFxuICogICBpc1RyaXA6ICdmYWxzZScsXG4gKiAgIHplcm9PbmVzOiAnMSdcbiAqIH0sIHtcbiAqICAgdGltZTogbnVsbCxcbiAqICAgdmFsdWU6ICcyJyxcbiAqICAgc3VyZ2U6ICcxLjMnLFxuICogICBpc1RyaXA6IG51bGwsXG4gKiAgIHplcm9PbmVzOiAnMSdcbiAqIH1dO1xuICpcbiAqIGNvbnN0IGZpZWxkT3JkZXIgPSBbJ3RpbWUnLCAndmFsdWUnLCAnc3VyZ2UnLCAnaXNUcmlwJywgJ3plcm9PbmVzJ107XG4gKiBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHNGcm9tRGF0YShkYXRhLCBmaWVsZE9yZGVyKTtcbiAqIC8vIGZpZWxkcyA9IFtcbiAqIC8vIHtuYW1lOiAndGltZScsIGZvcm1hdDogJ1lZWVktTS1EIEg6bTpzJywgZmllbGRJZHg6IDEsIHR5cGU6ICd0aW1lc3RhbXAnfSxcbiAqIC8vIHtuYW1lOiAndmFsdWUnLCBmb3JtYXQ6ICcnLCBmaWVsZElkeDogNCwgdHlwZTogJ2ludGVnZXInfSxcbiAqIC8vIHtuYW1lOiAnc3VyZ2UnLCBmb3JtYXQ6ICcnLCBmaWVsZElkeDogNSwgdHlwZTogJ3JlYWwnfSxcbiAqIC8vIHtuYW1lOiAnaXNUcmlwJywgZm9ybWF0OiAnJywgZmllbGRJZHg6IDYsIHR5cGU6ICdib29sZWFuJ30sXG4gKiAvLyB7bmFtZTogJ3plcm9PbmVzJywgZm9ybWF0OiAnJywgZmllbGRJZHg6IDcsIHR5cGU6ICdpbnRlZ2VyJ31dO1xuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkc0Zyb21EYXRhKGRhdGE6IFJvd0RhdGEsIGZpZWxkT3JkZXI6IHN0cmluZ1tdKTogRmllbGRbXSB7XG4gIC8vIGFkZCBhIGNoZWNrIGZvciBlcG9jaCB0aW1lc3RhbXBcbiAgY29uc3QgbWV0YWRhdGEgPSBBbmFseXplci5jb21wdXRlQ29sTWV0YShcbiAgICBkYXRhLFxuICAgIFtcbiAgICAgIHtyZWdleDogLy4qZ2VvanNvbnxhbGxfcG9pbnRzL2csIGRhdGFUeXBlOiAnR0VPTUVUUlknfSxcbiAgICAgIHtyZWdleDogLy4qY2Vuc3VzL2csIGRhdGFUeXBlOiAnU1RSSU5HJ31cbiAgICBdLFxuICAgIHtpZ25vcmVkRGF0YVR5cGVzOiBJR05PUkVfREFUQV9UWVBFU31cbiAgKTtcblxuICBjb25zdCB7ZmllbGRCeUluZGV4fSA9IHJlbmFtZUR1cGxpY2F0ZUZpZWxkcyhmaWVsZE9yZGVyKTtcblxuICBjb25zdCByZXN1bHQgPSBmaWVsZE9yZGVyLm1hcCgoZmllbGQsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGZpZWxkQnlJbmRleFtpbmRleF07XG5cbiAgICBjb25zdCBmaWVsZE1ldGEgPSBtZXRhZGF0YS5maW5kKG0gPT4gbS5rZXkgPT09IGZpZWxkKTtcblxuICAgIC8vIGZpZWxkTWV0YSBjb3VsZCBiZSB1bmRlZmluZWQgaWYgdGhlIGZpZWxkIGhhcyBubyBkYXRhIGFuZCBBbmFseXplci5jb21wdXRlQ29sTWV0YVxuICAgIC8vIHdpbGwgaWdub3JlIHRoZSBmaWVsZC4gSW4gdGhpcyBjYXNlLCB3ZSB3aWxsIHNpbXBseSBhc3NpZ24gdGhlIGZpZWxkIHR5cGUgdG8gU1RSSU5HXG4gICAgLy8gc2luY2UgZHJvcHBpbmcgdGhlIGNvbHVtbiBpbiB0aGUgUm93RGF0YSBjb3VsZCBiZSBleHBlbnNpdmVcbiAgICBsZXQgdHlwZSA9IGZpZWxkTWV0YT8udHlwZSB8fCAnU1RSSU5HJztcbiAgICBjb25zdCBmb3JtYXQgPSBmaWVsZE1ldGE/LmZvcm1hdCB8fCAnJztcblxuICAgIC8vIGNoZWNrIGlmIHN0cmluZyBpcyBoZXggd2tiXG4gICAgaWYgKHR5cGUgPT09IEFuYWx5emVyREFUQV9UWVBFUy5TVFJJTkcpIHtcbiAgICAgIHR5cGUgPSBkYXRhLnNvbWUoZCA9PiBpc0hleFdrYihkW25hbWVdKSkgPyBBbmFseXplckRBVEFfVFlQRVMuR0VPTUVUUlkgOiB0eXBlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgaWQ6IG5hbWUsXG4gICAgICBkaXNwbGF5TmFtZTogbmFtZSxcbiAgICAgIGZvcm1hdCxcbiAgICAgIGZpZWxkSWR4OiBpbmRleCxcbiAgICAgIHR5cGU6IGFuYWx5emVyVHlwZVRvRmllbGRUeXBlKHR5cGUpLFxuICAgICAgYW5hbHl6ZXJUeXBlOiB0eXBlLFxuICAgICAgdmFsdWVBY2Nlc3NvcjogZGMgPT4gZCA9PiB7XG4gICAgICAgIHJldHVybiBkYy52YWx1ZUF0KGQuaW5kZXgsIGluZGV4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIHBhc3MgaW4gYW4gYXJyYXkgb2YgZmllbGQgbmFtZXMsIHJlbmFtZSBkdXBsaWNhdGVkIG9uZVxuICogYW5kIHJldHVybiBhIG1hcCBmcm9tIG9sZCBmaWVsZCBpbmRleCB0byBuZXcgbmFtZVxuICpcbiAqIEBwYXJhbSBmaWVsZE9yZGVyXG4gKiBAcmV0dXJucyBuZXcgZmllbGQgbmFtZSBieSBpbmRleFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuYW1lRHVwbGljYXRlRmllbGRzKFxuICBmaWVsZE9yZGVyOiBzdHJpbmdbXVxuKToge2FsbE5hbWVzOiBzdHJpbmdbXTsgZmllbGRCeUluZGV4OiBzdHJpbmdbXX0ge1xuICByZXR1cm4gZmllbGRPcmRlci5yZWR1Y2U8e2FsbE5hbWVzOiBzdHJpbmdbXTsgZmllbGRCeUluZGV4OiBzdHJpbmdbXX0+KFxuICAgIChhY2N1LCBmaWVsZCwgaSkgPT4ge1xuICAgICAgY29uc3Qge2FsbE5hbWVzfSA9IGFjY3U7XG4gICAgICBsZXQgZmllbGROYW1lID0gZmllbGQ7XG5cbiAgICAgIC8vIGFkZCBhIGNvdW50ZXIgdG8gZHVwbGljYXRlZCBuYW1lc1xuICAgICAgaWYgKGFsbE5hbWVzLmluY2x1ZGVzKGZpZWxkKSkge1xuICAgICAgICBsZXQgY291bnRlciA9IDA7XG4gICAgICAgIHdoaWxlIChhbGxOYW1lcy5pbmNsdWRlcyhgJHtmaWVsZH0tJHtjb3VudGVyfWApKSB7XG4gICAgICAgICAgY291bnRlcisrO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkTmFtZSA9IGAke2ZpZWxkfS0ke2NvdW50ZXJ9YDtcbiAgICAgIH1cblxuICAgICAgYWNjdS5maWVsZEJ5SW5kZXhbaV0gPSBmaWVsZE5hbWU7XG4gICAgICBhY2N1LmFsbE5hbWVzLnB1c2goZmllbGROYW1lKTtcblxuICAgICAgcmV0dXJuIGFjY3U7XG4gICAgfSxcbiAgICB7YWxsTmFtZXM6IFtdLCBmaWVsZEJ5SW5kZXg6IFtdfVxuICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgdHlwZS1hbmFseXplciBvdXRwdXQgdG8ga2VwbGVyLmdsIGZpZWxkIHR5cGVzXG4gKlxuICogQHBhcmFtIGFUeXBlXG4gKiBAcmV0dXJucyBjb3JyZXNwb25kaW5nIHR5cGUgaW4gYEFMTF9GSUVMRF9UWVBFU2BcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFuYWx5emVyVHlwZVRvRmllbGRUeXBlKGFUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB7XG4gICAgREFURSxcbiAgICBUSU1FLFxuICAgIERBVEVUSU1FLFxuICAgIE5VTUJFUixcbiAgICBJTlQsXG4gICAgRkxPQVQsXG4gICAgQk9PTEVBTixcbiAgICBTVFJJTkcsXG4gICAgR0VPTUVUUlksXG4gICAgR0VPTUVUUllfRlJPTV9TVFJJTkcsXG4gICAgUEFJUl9HRU9NRVRSWV9GUk9NX1NUUklORyxcbiAgICBaSVBDT0RFLFxuICAgIEFSUkFZLFxuICAgIE9CSkVDVFxuICB9ID0gQW5hbHl6ZXJEQVRBX1RZUEVTO1xuXG4gIC8vIFRPRE86IHVuIHJlY29nbml6ZWQgdHlwZXNcbiAgLy8gQ1VSUkVOQ1kgUEVSQ0VOVCBOT05FXG4gIHN3aXRjaCAoYVR5cGUpIHtcbiAgICBjYXNlIERBVEU6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLmRhdGU7XG4gICAgY2FzZSBUSU1FOlxuICAgIGNhc2UgREFURVRJTUU6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcDtcbiAgICBjYXNlIEZMT0FUOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5yZWFsO1xuICAgIGNhc2UgSU5UOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyO1xuICAgIGNhc2UgQk9PTEVBTjpcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuYm9vbGVhbjtcbiAgICBjYXNlIEdFT01FVFJZOlxuICAgIGNhc2UgR0VPTUVUUllfRlJPTV9TVFJJTkc6XG4gICAgY2FzZSBQQUlSX0dFT01FVFJZX0ZST01fU1RSSU5HOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5nZW9qc29uO1xuICAgIGNhc2UgQVJSQVk6XG4gICAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLmFycmF5O1xuICAgIGNhc2UgT0JKRUNUOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5vYmplY3Q7XG4gICAgY2FzZSBOVU1CRVI6XG4gICAgY2FzZSBTVFJJTkc6XG4gICAgY2FzZSBaSVBDT0RFOlxuICAgICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5zdHJpbmc7XG4gICAgZGVmYXVsdDpcbiAgICAgIGdsb2JhbENvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgYW5hbHl6ZXIgdHlwZTogJHthVHlwZX1gKTtcbiAgICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuc3RyaW5nO1xuICB9XG59XG5cbmNvbnN0IFRJTUVfRElTUExBWSA9ICcyMDIwLTA1LTExIDE0OjAwJztcblxuY29uc3QgYWRkVGltZUxhYmVsID0gKGZvcm1hdHM6IFRpbWVMYWJlbEZvcm1hdFtdKSA9PlxuICBmb3JtYXRzLm1hcChmID0+ICh7XG4gICAgLi4uZixcbiAgICBsYWJlbDpcbiAgICAgIGYudHlwZSA9PT0gVE9PTFRJUF9GT1JNQVRfVFlQRVMuREFURV9USU1FIHx8IGYudHlwZSA9PT0gVE9PTFRJUF9GT1JNQVRfVFlQRVMuREFURVxuICAgICAgICA/IGdldEZvcm1hdHRlcihnZXRGb3JtYXRWYWx1ZShmKSkoVElNRV9ESVNQTEFZKVxuICAgICAgICA6IGYubGFiZWxcbiAgfSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRGb3JtYXRMYWJlbHMoZmllbGRUeXBlPzogc3RyaW5nKTogVG9vbHRpcEZvcm1hdFtdIHtcbiAgY29uc3QgdG9vbHRpcFR5cGVzID0gKGZpZWxkVHlwZSAmJiBGSUVMRF9PUFRTW2ZpZWxkVHlwZV0uZm9ybWF0LnRvb2x0aXApIHx8IFtdO1xuICBjb25zdCBmb3JtYXRMYWJlbHM6IFRpbWVMYWJlbEZvcm1hdFtdID0gT2JqZWN0LnZhbHVlcyhUT09MVElQX0ZPUk1BVFMpLmZpbHRlcih0ID0+XG4gICAgdG9vbHRpcFR5cGVzLmluY2x1ZGVzKHQudHlwZSlcbiAgKTtcbiAgcmV0dXJuIGFkZFRpbWVMYWJlbChmb3JtYXRMYWJlbHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0TGFiZWxzKGZpZWxkczogVG9vbHRpcEZpZWxkc1tdLCBmaWVsZE5hbWU6IHN0cmluZykge1xuICBjb25zdCBmaWVsZFR5cGUgPSBmaWVsZHMuZmluZChmID0+IGYubmFtZSA9PT0gZmllbGROYW1lKT8udHlwZTtcbiAgcmV0dXJuIGdldEZpZWxkRm9ybWF0TGFiZWxzKGZpZWxkVHlwZSk7XG59XG4iXX0=
@@ -31,20 +31,20 @@ declare const domtoimage: {
31
31
  };
32
32
  };
33
33
  /**
34
- * @param {Node} node - The DOM Node object to render
35
- * @param {Object} options - Rendering options
36
- * @param {Function} [options.filter] - Should return true if passed node should be included in the output
37
- * (excluding node means excluding it's children as well). Not called on the root node.
38
- * @param {String} [options.bgcolor] - color for the background, any valid CSS color value.
39
- * @param {Number} [options.width] - width to be applied to node before rendering.
40
- * @param {Number} [options.height] - height to be applied to node before rendering.
41
- * @param {Object} [options.style] - an object whose properties to be copied to node's style before rendering.
42
- * @param {Number} [options.quality] - a Number between 0 and 1 indicating image quality (applicable to JPEG only),
43
- defaults to 1.0.
44
- * @param {String} [options.imagePlaceholder] - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch
45
- * @param {Boolean} [options.cacheBust] - set to true to cache bust by appending the time to the request url
46
- * @return {Promise} - A promise that is fulfilled with a SVG image data URL
47
- * */
34
+ * @param {Node} node - The DOM Node object to render
35
+ * @param {Object} options - Rendering options
36
+ * @param {Function} [options.filter] - Should return true if passed node should be included in the output
37
+ * (excluding node means excluding it's children as well). Not called on the root node.
38
+ * @param {String} [options.bgcolor] - color for the background, any valid CSS color value.
39
+ * @param {Number} [options.width] - width to be applied to node before rendering.
40
+ * @param {Number} [options.height] - height to be applied to node before rendering.
41
+ * @param {Object} [options.style] - an object whose properties to be copied to node's style before rendering.
42
+ * @param {Number} [options.quality] - a Number between 0 and 1 indicating image quality (applicable to JPEG only), defaults to 1.0.
43
+ * @param {boolean} [options.escapeXhtmlForWebpack] - whether to apply fix for uglify error in dom-to-image (should be true for webpack builds), defaults to true.
44
+ * @param {String} [options.imagePlaceholder] - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch
45
+ * @param {Boolean} [options.cacheBust] - set to true to cache bust by appending the time to the request url
46
+ * @return {Promise} - A promise that is fulfilled with a SVG image data URL
47
+ * */
48
48
  declare function toSvg(node: any, options: any): Promise<string>;
49
49
  /**
50
50
  * @param {Node} node - The DOM Node object to render