@carbon/charts-vue 1.2.1 → 1.3.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.
package/charts-vue.umd.js CHANGED
@@ -11263,8 +11263,8 @@ Selection.prototype = selection_selection.prototype = {
11263
11263
  // EXTERNAL MODULE: /home/runner/work/carbon-charts/carbon-charts/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
11264
11264
  var ResizeObserver_es = __webpack_require__("2da1");
11265
11265
 
11266
- // EXTERNAL MODULE: /home/runner/work/carbon-charts/carbon-charts/node_modules/dom-to-image/src/dom-to-image.js
11267
- var dom_to_image = __webpack_require__("eeea");
11266
+ // EXTERNAL MODULE: ./node_modules/@carbon/charts/services/essentials/dom-to-image.js
11267
+ var dom_to_image = __webpack_require__("b1b0");
11268
11268
  var dom_to_image_default = /*#__PURE__*/__webpack_require__.n(dom_to_image);
11269
11269
 
11270
11270
  // CONCATENATED MODULE: ./node_modules/@carbon/charts/services/essentials/dom-utils.js
@@ -25769,6 +25769,8 @@ var bar_grouped_GroupedBar = /** @class */ (function (_super) {
25769
25769
  _this.type = 'grouped-bar';
25770
25770
  _this.renderType = RenderTypes.SVG;
25771
25771
  _this.padding = 5;
25772
+ // A factor to normalize padding between bars regardless of bar group density.
25773
+ _this.defaultStepFactor = 70;
25772
25774
  // Highlight elements that match the hovered legend item
25773
25775
  _this.handleLegendOnHover = function (event) {
25774
25776
  var hoveredElement = event.detail.hoveredElement;
@@ -25888,7 +25890,7 @@ var bar_grouped_GroupedBar = /** @class */ (function (_super) {
25888
25890
  });
25889
25891
  })
25890
25892
  .style('fill', function (d) { return _this.model.getFillColor(d[groupMapsTo]); })
25891
- .attr('d', function (d) {
25893
+ .attr('d', function (d, i) {
25892
25894
  /*
25893
25895
  * Orientation support for horizontal/vertical bar charts
25894
25896
  * Determine coordinates needed for a vertical set of paths
@@ -25902,8 +25904,11 @@ var bar_grouped_GroupedBar = /** @class */ (function (_super) {
25902
25904
  var rangeAxis = _this.services.cartesianScales.getRangeAxisPosition({ datum: d });
25903
25905
  var y0 = _this.services.cartesianScales.getValueThroughAxisPosition(rangeAxis, 0);
25904
25906
  var y1 = _this.services.cartesianScales.getRangeValue(d);
25905
- // don't show if part of bar is out of zoom domain
25906
- if (_this.isOutsideZoomedDomain(x0, x1)) {
25907
+ // don't show if part of bar is out of zoom domain - test zoom on bar pos, not group
25908
+ var zoomx0 = _this.services.cartesianScales.getDomainValue(d, i) -
25909
+ barWidth / 2;
25910
+ var zoomx1 = zoomx0 + barWidth;
25911
+ if (_this.isOutsideZoomedDomain(zoomx0, zoomx1)) {
25907
25912
  return;
25908
25913
  }
25909
25914
  return tools_Tools.generateSVGPathString({ x0: x0, x1: x1, y0: y0, y1: y1 }, _this.services.cartesianScales.getOrientation());
@@ -25988,7 +25993,7 @@ var bar_grouped_GroupedBar = /** @class */ (function (_super) {
25988
25993
  var displayData = this.model.getDisplayData(this.configs.groups);
25989
25994
  return displayData.filter(function (datum) {
25990
25995
  var domainIdentifier = _this.services.cartesianScales.getDomainIdentifier(datum);
25991
- return datum[domainIdentifier] === label;
25996
+ return datum[domainIdentifier].toString() === label;
25992
25997
  });
25993
25998
  };
25994
25999
  GroupedBar.prototype.getGroupWidth = function () {
@@ -25996,13 +26001,29 @@ var bar_grouped_GroupedBar = /** @class */ (function (_super) {
25996
26001
  var totalGroupPadding = this.getTotalGroupPadding();
25997
26002
  return this.getBarWidth() * activeData.length + totalGroupPadding;
25998
26003
  };
26004
+ GroupedBar.prototype.getDomainScaleStep = function () {
26005
+ var domainScale = this.services.cartesianScales.getDomainScale();
26006
+ var activeData = this.model.getGroupedData(this.configs.groups);
26007
+ var step = this.defaultStepFactor;
26008
+ if (typeof domainScale.step === 'function') {
26009
+ step = domainScale.step();
26010
+ }
26011
+ else if (activeData.length > 0) {
26012
+ // as a fallback use distance between first bars of adjacent bar groups
26013
+ var ref = activeData.find(function (d) { var _a; return ((_a = d.data) === null || _a === void 0 ? void 0 : _a.length) > 1; });
26014
+ if (ref) {
26015
+ var domainIdentifier = this.services.cartesianScales.getDomainIdentifier(ref.data[0]);
26016
+ step = Math.abs(domainScale(ref.data[1][domainIdentifier]) - domainScale(ref.data[0][domainIdentifier]));
26017
+ }
26018
+ }
26019
+ return step;
26020
+ };
25999
26021
  GroupedBar.prototype.getTotalGroupPadding = function () {
26000
26022
  var activeData = this.model.getGroupedData(this.configs.groups);
26001
26023
  if (activeData.length === 1) {
26002
26024
  return 0;
26003
26025
  }
26004
- var domainScale = this.services.cartesianScales.getDomainScale();
26005
- var padding = Math.min(5, 5 * (domainScale.step() / 70));
26026
+ var padding = Math.min(5, 5 * (this.getDomainScaleStep() / this.defaultStepFactor));
26006
26027
  return padding * (activeData.length - 1);
26007
26028
  };
26008
26029
  // Gets the correct width for bars based on options & configurations
@@ -26021,8 +26042,7 @@ var bar_grouped_GroupedBar = /** @class */ (function (_super) {
26021
26042
  var activeData = this.model.getGroupedData(this.configs.groups);
26022
26043
  var numOfActiveDataGroups = activeData.length;
26023
26044
  var totalGroupPadding = this.getTotalGroupPadding();
26024
- var domainScale = this.services.cartesianScales.getDomainScale();
26025
- return Math.min(providedMaxWidth, (domainScale.step() - totalGroupPadding) / numOfActiveDataGroups);
26045
+ return Math.min(providedMaxWidth, (this.getDomainScaleStep() - totalGroupPadding) / numOfActiveDataGroups);
26026
26046
  };
26027
26047
  GroupedBar.prototype.setGroupScale = function () {
26028
26048
  var activeData = this.model.getActiveDataGroupNames(this.configs.groups);
@@ -36267,6 +36287,8 @@ var axis_Axis = /** @class */ (function (_super) {
36267
36287
  }
36268
36288
  lastStartPosition_1 = xTransformation;
36269
36289
  });
36290
+ // Cleanup mock text piece
36291
+ mockTextPiece.remove();
36270
36292
  }
36271
36293
  }
36272
36294
  if (shouldRotateTicks_1) {
@@ -49425,436 +49447,1162 @@ module.exports = [
49425
49447
 
49426
49448
  /***/ }),
49427
49449
 
49428
- /***/ "b489":
49450
+ /***/ "b1b0":
49429
49451
  /***/ (function(module, exports, __webpack_require__) {
49430
49452
 
49431
- "use strict";
49432
-
49453
+ /**
49454
+ The MIT License (MIT)
49433
49455
 
49434
- Object.defineProperty(exports, "__esModule", {
49435
- value: true
49436
- });
49437
- exports.default = buildLocalizeFn;
49456
+ Copyright 2015 Anatolii Saienko
49457
+ https://github.com/tsayen
49438
49458
 
49439
- function buildLocalizeFn(args) {
49440
- return function (dirtyIndex, dirtyOptions) {
49441
- var options = dirtyOptions || {};
49442
- var context = options.context ? String(options.context) : 'standalone';
49443
- var valuesArray;
49459
+ Copyright 2012 Paul Bakaus
49460
+ http://paulbakaus.com/
49444
49461
 
49445
- if (context === 'formatting' && args.formattingValues) {
49446
- var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
49447
- var width = options.width ? String(options.width) : defaultWidth;
49448
- valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
49449
- } else {
49450
- var _defaultWidth = args.defaultWidth;
49462
+ Permission is hereby granted, free of charge, to any person obtaining
49463
+ a copy of this software and associated documentation files (the
49464
+ "Software"), to deal in the Software without restriction, including
49465
+ without limitation the rights to use, copy, modify, merge, publish,
49466
+ distribute, sublicense, and/or sell copies of the Software, and to
49467
+ permit persons to whom the Software is furnished to do so, subject to
49468
+ the following conditions:
49451
49469
 
49452
- var _width = options.width ? String(options.width) : args.defaultWidth;
49470
+ The above copyright notice and this permission notice shall be
49471
+ included in all copies or substantial portions of the Software.
49453
49472
 
49454
- valuesArray = args.values[_width] || args.values[_defaultWidth];
49473
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
49474
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
49475
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
49476
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
49477
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
49478
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
49479
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
49480
+ */
49481
+ (function (global) {
49482
+ 'use strict';
49483
+ var util = newUtil();
49484
+ var inliner = newInliner();
49485
+ var fontFaces = newFontFaces();
49486
+ var images = newImages();
49487
+ // Default impl options
49488
+ var defaultOptions = {
49489
+ // Default is to fail on error, no placeholder
49490
+ imagePlaceholder: undefined,
49491
+ // Default cache bust is false, it will use the cache
49492
+ cacheBust: false,
49493
+ };
49494
+ var domtoimage = {
49495
+ toSvg: toSvg,
49496
+ toPng: toPng,
49497
+ toJpeg: toJpeg,
49498
+ toBlob: toBlob,
49499
+ toPixelData: toPixelData,
49500
+ impl: {
49501
+ fontFaces: fontFaces,
49502
+ images: images,
49503
+ util: util,
49504
+ inliner: inliner,
49505
+ options: {},
49506
+ },
49507
+ };
49508
+ if (true)
49509
+ module.exports = domtoimage;
49510
+ else
49511
+ {}
49512
+ /**
49513
+ * @param {Node} node - The DOM Node object to render
49514
+ * @param {Object} options - Rendering options
49515
+ * @param {Function} options.filter - Should return true if passed node should be included in the output
49516
+ * (excluding node means excluding it's children as well). Not called on the root node.
49517
+ * @param {String} options.bgcolor - color for the background, any valid CSS color value.
49518
+ * @param {Number} options.width - width to be applied to node before rendering.
49519
+ * @param {Number} options.height - height to be applied to node before rendering.
49520
+ * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.
49521
+ * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),
49522
+ defaults to 1.0.
49523
+ * @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
49524
+ * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url
49525
+ * @return {Promise} - A promise that is fulfilled with a SVG image data URL
49526
+ * */
49527
+ function toSvg(node, options) {
49528
+ options = options || {};
49529
+ copyOptions(options);
49530
+ return Promise.resolve(node)
49531
+ .then(function (node) {
49532
+ return cloneNode(node, options.filter, true);
49533
+ })
49534
+ .then(embedFonts)
49535
+ .then(inlineImages)
49536
+ .then(applyOptions)
49537
+ .then(function (clone) {
49538
+ return makeSvgDataUri(clone, options.width || util.width(node), options.height || util.height(node));
49539
+ });
49540
+ function applyOptions(clone) {
49541
+ if (options.bgcolor)
49542
+ clone.style.backgroundColor = options.bgcolor;
49543
+ if (options.width)
49544
+ clone.style.width = options.width + 'px';
49545
+ if (options.height)
49546
+ clone.style.height = options.height + 'px';
49547
+ if (options.style)
49548
+ Object.keys(options.style).forEach(function (property) {
49549
+ clone.style[property] = options.style[property];
49550
+ });
49551
+ return clone;
49552
+ }
49455
49553
  }
49456
-
49457
- var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
49458
- return valuesArray[index];
49459
- };
49460
- }
49461
-
49462
- module.exports = exports.default;
49463
-
49464
- /***/ }),
49465
-
49466
- /***/ "b495":
49467
- /***/ (function(module, exports, __webpack_require__) {
49468
-
49469
- var toInteger = __webpack_require__("8bb2");
49470
-
49471
- var min = Math.min;
49472
-
49473
- // `ToLength` abstract operation
49474
- // https://tc39.github.io/ecma262/#sec-tolength
49475
- module.exports = function (argument) {
49476
- return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
49477
- };
49478
-
49479
-
49480
- /***/ }),
49481
-
49482
- /***/ "b634":
49483
- /***/ (function(module, exports, __webpack_require__) {
49484
-
49485
- var has = __webpack_require__("f1a7");
49486
- var ownKeys = __webpack_require__("a03e");
49487
- var getOwnPropertyDescriptorModule = __webpack_require__("185a");
49488
- var definePropertyModule = __webpack_require__("abdf");
49489
-
49490
- module.exports = function (target, source) {
49491
- var keys = ownKeys(source);
49492
- var defineProperty = definePropertyModule.f;
49493
- var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
49494
- for (var i = 0; i < keys.length; i++) {
49495
- var key = keys[i];
49496
- if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
49497
- }
49498
- };
49499
-
49500
-
49501
- /***/ }),
49502
-
49503
- /***/ "b7fb":
49504
- /***/ (function(module, exports, __webpack_require__) {
49505
-
49506
- var toInteger = __webpack_require__("8bb2");
49507
- var requireObjectCoercible = __webpack_require__("730c");
49508
-
49509
- // `String.prototype.{ codePointAt, at }` methods implementation
49510
- var createMethod = function (CONVERT_TO_STRING) {
49511
- return function ($this, pos) {
49512
- var S = String(requireObjectCoercible($this));
49513
- var position = toInteger(pos);
49514
- var size = S.length;
49515
- var first, second;
49516
- if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
49517
- first = S.charCodeAt(position);
49518
- return first < 0xD800 || first > 0xDBFF || position + 1 === size
49519
- || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
49520
- ? CONVERT_TO_STRING ? S.charAt(position) : first
49521
- : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
49522
- };
49523
- };
49524
-
49525
- module.exports = {
49526
- // `String.prototype.codePointAt` method
49527
- // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
49528
- codeAt: createMethod(false),
49529
- // `String.prototype.at` method
49530
- // https://github.com/mathiasbynens/String.prototype.at
49531
- charAt: createMethod(true)
49532
- };
49533
-
49534
-
49535
- /***/ }),
49536
-
49537
- /***/ "b8ba":
49538
- /***/ (function(module, exports, __webpack_require__) {
49539
-
49540
- var global = __webpack_require__("f498");
49541
- var createNonEnumerableProperty = __webpack_require__("5b12");
49542
- var has = __webpack_require__("f1a7");
49543
- var setGlobal = __webpack_require__("3e34");
49544
- var inspectSource = __webpack_require__("df6f");
49545
- var InternalStateModule = __webpack_require__("cdcd");
49546
-
49547
- var getInternalState = InternalStateModule.get;
49548
- var enforceInternalState = InternalStateModule.enforce;
49549
- var TEMPLATE = String(String).split('String');
49550
-
49551
- (module.exports = function (O, key, value, options) {
49552
- var unsafe = options ? !!options.unsafe : false;
49553
- var simple = options ? !!options.enumerable : false;
49554
- var noTargetGet = options ? !!options.noTargetGet : false;
49555
- if (typeof value == 'function') {
49556
- if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);
49557
- enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
49558
- }
49559
- if (O === global) {
49560
- if (simple) O[key] = value;
49561
- else setGlobal(key, value);
49562
- return;
49563
- } else if (!unsafe) {
49564
- delete O[key];
49565
- } else if (!noTargetGet && O[key]) {
49566
- simple = true;
49567
- }
49568
- if (simple) O[key] = value;
49569
- else createNonEnumerableProperty(O, key, value);
49570
- // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
49571
- })(Function.prototype, 'toString', function toString() {
49572
- return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
49573
- });
49574
-
49575
-
49576
- /***/ }),
49577
-
49578
- /***/ "b99b":
49579
- /***/ (function(module, exports, __webpack_require__) {
49580
-
49581
- var DESCRIPTORS = __webpack_require__("d4cb");
49582
- var definePropertyModule = __webpack_require__("abdf");
49583
- var anObject = __webpack_require__("157c");
49584
- var objectKeys = __webpack_require__("0c47");
49585
-
49586
- // `Object.defineProperties` method
49587
- // https://tc39.github.io/ecma262/#sec-object.defineproperties
49588
- module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
49589
- anObject(O);
49590
- var keys = objectKeys(Properties);
49591
- var length = keys.length;
49592
- var index = 0;
49593
- var key;
49594
- while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
49595
- return O;
49596
- };
49597
-
49598
-
49599
- /***/ }),
49600
-
49601
- /***/ "c1a2":
49602
- /***/ (function(module, exports, __webpack_require__) {
49603
-
49604
- var anObject = __webpack_require__("157c");
49605
- var aPossiblePrototype = __webpack_require__("f3e4");
49606
-
49607
- // `Object.setPrototypeOf` method
49608
- // https://tc39.github.io/ecma262/#sec-object.setprototypeof
49609
- // Works with __proto__ only. Old v8 can't work with null proto objects.
49610
- /* eslint-disable no-proto */
49611
- module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
49612
- var CORRECT_SETTER = false;
49613
- var test = {};
49614
- var setter;
49615
- try {
49616
- setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
49617
- setter.call(test, []);
49618
- CORRECT_SETTER = test instanceof Array;
49619
- } catch (error) { /* empty */ }
49620
- return function setPrototypeOf(O, proto) {
49621
- anObject(O);
49622
- aPossiblePrototype(proto);
49623
- if (CORRECT_SETTER) setter.call(O, proto);
49624
- else O.__proto__ = proto;
49625
- return O;
49626
- };
49627
- }() : undefined);
49628
-
49629
-
49630
- /***/ }),
49631
-
49632
- /***/ "c607":
49633
- /***/ (function(module, exports, __webpack_require__) {
49634
-
49635
- var global = __webpack_require__("f498");
49636
- var setGlobal = __webpack_require__("3e34");
49637
-
49638
- var SHARED = '__core-js_shared__';
49639
- var store = global[SHARED] || setGlobal(SHARED, {});
49640
-
49641
- module.exports = store;
49642
-
49643
-
49644
- /***/ }),
49645
-
49646
- /***/ "c6de":
49647
- /***/ (function(module, exports, __webpack_require__) {
49648
-
49649
- var classof = __webpack_require__("6a61");
49650
-
49651
- // `IsArray` abstract operation
49652
- // https://tc39.github.io/ecma262/#sec-isarray
49653
- module.exports = Array.isArray || function isArray(arg) {
49654
- return classof(arg) == 'Array';
49655
- };
49656
-
49657
-
49658
- /***/ }),
49659
-
49660
- /***/ "c78b":
49661
- /***/ (function(module, exports, __webpack_require__) {
49662
-
49663
- "use strict";
49664
-
49665
- var $ = __webpack_require__("6b1d");
49666
- var notARegExp = __webpack_require__("9eea");
49667
- var requireObjectCoercible = __webpack_require__("730c");
49668
- var correctIsRegExpLogic = __webpack_require__("3e32");
49669
-
49670
- // `String.prototype.includes` method
49671
- // https://tc39.github.io/ecma262/#sec-string.prototype.includes
49672
- $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
49673
- includes: function includes(searchString /* , position = 0 */) {
49674
- return !!~String(requireObjectCoercible(this))
49675
- .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
49676
- }
49677
- });
49678
-
49679
-
49680
- /***/ }),
49681
-
49682
- /***/ "c91c":
49683
- /***/ (function(module, exports, __webpack_require__) {
49684
-
49685
- var has = __webpack_require__("f1a7");
49686
- var toIndexedObject = __webpack_require__("378c");
49687
- var indexOf = __webpack_require__("1f5e").indexOf;
49688
- var hiddenKeys = __webpack_require__("d687");
49689
-
49690
- module.exports = function (object, names) {
49691
- var O = toIndexedObject(object);
49692
- var i = 0;
49693
- var result = [];
49694
- var key;
49695
- for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
49696
- // Don't enum bug & hidden keys
49697
- while (names.length > i) if (has(O, key = names[i++])) {
49698
- ~indexOf(result, key) || result.push(key);
49699
- }
49700
- return result;
49701
- };
49702
-
49703
-
49704
- /***/ }),
49705
-
49706
- /***/ "c9c9":
49707
- /***/ (function(module, exports, __webpack_require__) {
49708
-
49709
- "use strict";
49710
-
49711
-
49712
- Object.defineProperty(exports, "__esModule", {
49713
- value: true
49714
- });
49715
- exports.default = void 0;
49716
-
49717
- var _index = _interopRequireDefault(__webpack_require__("5ae7"));
49718
-
49719
- var _index2 = _interopRequireDefault(__webpack_require__("3606"));
49720
-
49721
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
49722
-
49723
- var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
49724
- var parseOrdinalNumberPattern = /\d+/i;
49725
- var matchEraPatterns = {
49726
- narrow: /^(b|a)/i,
49727
- abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
49728
- wide: /^(before christ|before common era|anno domini|common era)/i
49729
- };
49730
- var parseEraPatterns = {
49731
- any: [/^b/i, /^(a|c)/i]
49732
- };
49733
- var matchQuarterPatterns = {
49734
- narrow: /^[1234]/i,
49735
- abbreviated: /^q[1234]/i,
49736
- wide: /^[1234](th|st|nd|rd)? quarter/i
49737
- };
49738
- var parseQuarterPatterns = {
49739
- any: [/1/i, /2/i, /3/i, /4/i]
49740
- };
49741
- var matchMonthPatterns = {
49742
- narrow: /^[jfmasond]/i,
49743
- abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
49744
- wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
49745
- };
49746
- var parseMonthPatterns = {
49747
- narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
49748
- any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
49749
- };
49750
- var matchDayPatterns = {
49751
- narrow: /^[smtwf]/i,
49752
- short: /^(su|mo|tu|we|th|fr|sa)/i,
49753
- abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
49754
- wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
49755
- };
49756
- var parseDayPatterns = {
49757
- narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
49758
- any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
49759
- };
49760
- var matchDayPeriodPatterns = {
49761
- narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
49762
- any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
49763
- };
49764
- var parseDayPeriodPatterns = {
49765
- any: {
49766
- am: /^a/i,
49767
- pm: /^p/i,
49768
- midnight: /^mi/i,
49769
- noon: /^no/i,
49770
- morning: /morning/i,
49771
- afternoon: /afternoon/i,
49772
- evening: /evening/i,
49773
- night: /night/i
49774
- }
49775
- };
49776
- var match = {
49777
- ordinalNumber: (0, _index.default)({
49778
- matchPattern: matchOrdinalNumberPattern,
49779
- parsePattern: parseOrdinalNumberPattern,
49780
- valueCallback: function (value) {
49781
- return parseInt(value, 10);
49554
+ /**
49555
+ * @param {Node} node - The DOM Node object to render
49556
+ * @param {Object} options - Rendering options, @see {@link toSvg}
49557
+ * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.
49558
+ * */
49559
+ function toPixelData(node, options) {
49560
+ return draw(node, options || {}).then(function (canvas) {
49561
+ return canvas
49562
+ .getContext('2d')
49563
+ .getImageData(0, 0, util.width(node), util.height(node)).data;
49564
+ });
49782
49565
  }
49783
- }),
49784
- era: (0, _index2.default)({
49785
- matchPatterns: matchEraPatterns,
49786
- defaultMatchWidth: 'wide',
49787
- parsePatterns: parseEraPatterns,
49788
- defaultParseWidth: 'any'
49789
- }),
49790
- quarter: (0, _index2.default)({
49791
- matchPatterns: matchQuarterPatterns,
49792
- defaultMatchWidth: 'wide',
49793
- parsePatterns: parseQuarterPatterns,
49794
- defaultParseWidth: 'any',
49795
- valueCallback: function (index) {
49796
- return index + 1;
49566
+ /**
49567
+ * @param {Node} node - The DOM Node object to render
49568
+ * @param {Object} options - Rendering options, @see {@link toSvg}
49569
+ * @return {Promise} - A promise that is fulfilled with a PNG image data URL
49570
+ * */
49571
+ function toPng(node, options) {
49572
+ return draw(node, options || {}).then(function (canvas) {
49573
+ return canvas.toDataURL();
49574
+ });
49797
49575
  }
49798
- }),
49799
- month: (0, _index2.default)({
49800
- matchPatterns: matchMonthPatterns,
49801
- defaultMatchWidth: 'wide',
49802
- parsePatterns: parseMonthPatterns,
49803
- defaultParseWidth: 'any'
49804
- }),
49805
- day: (0, _index2.default)({
49806
- matchPatterns: matchDayPatterns,
49807
- defaultMatchWidth: 'wide',
49808
- parsePatterns: parseDayPatterns,
49809
- defaultParseWidth: 'any'
49810
- }),
49811
- dayPeriod: (0, _index2.default)({
49812
- matchPatterns: matchDayPeriodPatterns,
49813
- defaultMatchWidth: 'any',
49814
- parsePatterns: parseDayPeriodPatterns,
49815
- defaultParseWidth: 'any'
49816
- })
49817
- };
49818
- var _default = match;
49819
- exports.default = _default;
49820
- module.exports = exports.default;
49821
-
49822
- /***/ }),
49823
-
49824
- /***/ "cdcd":
49825
- /***/ (function(module, exports, __webpack_require__) {
49826
-
49827
- var NATIVE_WEAK_MAP = __webpack_require__("7297");
49828
- var global = __webpack_require__("f498");
49829
- var isObject = __webpack_require__("7526");
49830
- var createNonEnumerableProperty = __webpack_require__("5b12");
49831
- var objectHas = __webpack_require__("f1a7");
49832
- var sharedKey = __webpack_require__("332c");
49833
- var hiddenKeys = __webpack_require__("d687");
49834
-
49835
- var WeakMap = global.WeakMap;
49836
- var set, get, has;
49837
-
49838
- var enforce = function (it) {
49839
- return has(it) ? get(it) : set(it, {});
49840
- };
49841
-
49842
- var getterFor = function (TYPE) {
49843
- return function (it) {
49844
- var state;
49845
- if (!isObject(it) || (state = get(it)).type !== TYPE) {
49846
- throw TypeError('Incompatible receiver, ' + TYPE + ' required');
49847
- } return state;
49848
- };
49849
- };
49850
-
49851
- if (NATIVE_WEAK_MAP) {
49852
- var store = new WeakMap();
49853
- var wmget = store.get;
49854
- var wmhas = store.has;
49855
- var wmset = store.set;
49856
- set = function (it, metadata) {
49857
- wmset.call(store, it, metadata);
49576
+ /**
49577
+ * @param {Node} node - The DOM Node object to render
49578
+ * @param {Object} options - Rendering options, @see {@link toSvg}
49579
+ * @return {Promise} - A promise that is fulfilled with a JPEG image data URL
49580
+ * */
49581
+ function toJpeg(node, options) {
49582
+ options = options || {};
49583
+ return draw(node, options).then(function (canvas) {
49584
+ return canvas.toDataURL('image/jpeg', options.quality || 1.0);
49585
+ });
49586
+ }
49587
+ /**
49588
+ * @param {Node} node - The DOM Node object to render
49589
+ * @param {Object} options - Rendering options, @see {@link toSvg}
49590
+ * @return {Promise} - A promise that is fulfilled with a PNG image blob
49591
+ * */
49592
+ function toBlob(node, options) {
49593
+ return draw(node, options || {}).then(util.canvasToBlob);
49594
+ }
49595
+ function copyOptions(options) {
49596
+ // Copy options to impl options for use in impl
49597
+ if (typeof options.imagePlaceholder === 'undefined') {
49598
+ domtoimage.impl.options.imagePlaceholder =
49599
+ defaultOptions.imagePlaceholder;
49600
+ }
49601
+ else {
49602
+ domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;
49603
+ }
49604
+ if (typeof options.cacheBust === 'undefined') {
49605
+ domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;
49606
+ }
49607
+ else {
49608
+ domtoimage.impl.options.cacheBust = options.cacheBust;
49609
+ }
49610
+ }
49611
+ function draw(domNode, options) {
49612
+ return toSvg(domNode, options)
49613
+ .then(util.makeImage)
49614
+ .then(util.delay(100))
49615
+ .then(function (image) {
49616
+ var canvas = newCanvas(domNode);
49617
+ canvas.getContext('2d').drawImage(image, 0, 0);
49618
+ return canvas;
49619
+ });
49620
+ function newCanvas(domNode) {
49621
+ var canvas = document.createElement('canvas');
49622
+ canvas.width = options.width || util.width(domNode);
49623
+ canvas.height = options.height || util.height(domNode);
49624
+ if (options.bgcolor) {
49625
+ var ctx = canvas.getContext('2d');
49626
+ ctx.fillStyle = options.bgcolor;
49627
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
49628
+ }
49629
+ return canvas;
49630
+ }
49631
+ }
49632
+ function cloneNode(node, filter, root) {
49633
+ if (!root && filter && !filter(node))
49634
+ return Promise.resolve();
49635
+ return Promise.resolve(node)
49636
+ .then(makeNodeCopy)
49637
+ .then(function (clone) {
49638
+ return cloneChildren(node, clone, filter);
49639
+ })
49640
+ .then(function (clone) {
49641
+ return processClone(node, clone);
49642
+ });
49643
+ function makeNodeCopy(node) {
49644
+ if (node instanceof HTMLCanvasElement)
49645
+ return util.makeImage(node.toDataURL());
49646
+ return node.cloneNode(false);
49647
+ }
49648
+ function cloneChildren(original, clone, filter) {
49649
+ var children = original.childNodes;
49650
+ if (children.length === 0)
49651
+ return Promise.resolve(clone);
49652
+ return cloneChildrenInOrder(clone, util.asArray(children), filter).then(function () {
49653
+ return clone;
49654
+ });
49655
+ function cloneChildrenInOrder(parent, children, filter) {
49656
+ var done = Promise.resolve();
49657
+ children.forEach(function (child) {
49658
+ done = done
49659
+ .then(function () {
49660
+ return cloneNode(child, filter);
49661
+ })
49662
+ .then(function (childClone) {
49663
+ if (childClone)
49664
+ parent.appendChild(childClone);
49665
+ });
49666
+ });
49667
+ return done;
49668
+ }
49669
+ }
49670
+ function processClone(original, clone) {
49671
+ if (!(clone instanceof Element))
49672
+ return clone;
49673
+ return Promise.resolve()
49674
+ .then(cloneStyle)
49675
+ .then(clonePseudoElements)
49676
+ .then(copyUserInput)
49677
+ .then(fixSvg)
49678
+ .then(function () {
49679
+ return clone;
49680
+ });
49681
+ function cloneStyle() {
49682
+ copyStyle(window.getComputedStyle(original), clone.style);
49683
+ function copyStyle(source, target) {
49684
+ if (source.cssText)
49685
+ target.cssText = source.cssText;
49686
+ else
49687
+ copyProperties(source, target);
49688
+ function copyProperties(source, target) {
49689
+ util.asArray(source).forEach(function (name) {
49690
+ target.setProperty(name, source.getPropertyValue(name), source.getPropertyPriority(name));
49691
+ });
49692
+ }
49693
+ }
49694
+ }
49695
+ function clonePseudoElements() {
49696
+ [':before', ':after'].forEach(function (element) {
49697
+ clonePseudoElement(element);
49698
+ });
49699
+ function clonePseudoElement(element) {
49700
+ var style = window.getComputedStyle(original, element);
49701
+ var content = style.getPropertyValue('content');
49702
+ if (content === '' || content === 'none')
49703
+ return;
49704
+ var className = util.uid();
49705
+ clone.className = clone.className + ' ' + className;
49706
+ var styleElement = document.createElement('style');
49707
+ styleElement.appendChild(formatPseudoElementStyle(className, element, style));
49708
+ clone.appendChild(styleElement);
49709
+ function formatPseudoElementStyle(className, element, style) {
49710
+ var selector = '.' + className + ':' + element;
49711
+ var cssText = style.cssText
49712
+ ? formatCssText(style)
49713
+ : formatCssProperties(style);
49714
+ return document.createTextNode(selector + '{' + cssText + '}');
49715
+ function formatCssText(style) {
49716
+ var content = style.getPropertyValue('content');
49717
+ return style.cssText + ' content: ' + content + ';';
49718
+ }
49719
+ function formatCssProperties(style) {
49720
+ return (util
49721
+ .asArray(style)
49722
+ .map(formatProperty)
49723
+ .join('; ') + ';');
49724
+ function formatProperty(name) {
49725
+ return (name +
49726
+ ': ' +
49727
+ style.getPropertyValue(name) +
49728
+ (style.getPropertyPriority(name)
49729
+ ? ' !important'
49730
+ : ''));
49731
+ }
49732
+ }
49733
+ }
49734
+ }
49735
+ }
49736
+ function copyUserInput() {
49737
+ if (original instanceof HTMLTextAreaElement)
49738
+ clone.innerHTML = original.value;
49739
+ if (original instanceof HTMLInputElement)
49740
+ clone.setAttribute('value', original.value);
49741
+ }
49742
+ function fixSvg() {
49743
+ if (!(clone instanceof SVGElement))
49744
+ return;
49745
+ clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
49746
+ if (!(clone instanceof SVGRectElement))
49747
+ return;
49748
+ ['width', 'height'].forEach(function (attribute) {
49749
+ var value = clone.getAttribute(attribute);
49750
+ if (!value)
49751
+ return;
49752
+ clone.style.setProperty(attribute, value);
49753
+ });
49754
+ }
49755
+ }
49756
+ }
49757
+ function embedFonts(node) {
49758
+ return fontFaces.resolveAll().then(function (cssText) {
49759
+ var styleNode = document.createElement('style');
49760
+ node.appendChild(styleNode);
49761
+ styleNode.appendChild(document.createTextNode(cssText));
49762
+ return node;
49763
+ });
49764
+ }
49765
+ function inlineImages(node) {
49766
+ return images.inlineAll(node).then(function () {
49767
+ return node;
49768
+ });
49769
+ }
49770
+ function makeSvgDataUri(node, width, height) {
49771
+ return Promise.resolve(node)
49772
+ .then(function (node) {
49773
+ node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
49774
+ return new XMLSerializer().serializeToString(node);
49775
+ })
49776
+ .then(util.escapeXhtml)
49777
+ .then(function (xhtml) {
49778
+ return ('<foreignObject x="0" y="0" width="100%" height="100%">' +
49779
+ xhtml +
49780
+ '</foreignObject>');
49781
+ })
49782
+ .then(function (foreignObject) {
49783
+ return ('<svg xmlns="http://www.w3.org/2000/svg" width="' +
49784
+ width +
49785
+ '" height="' +
49786
+ height +
49787
+ '">' +
49788
+ foreignObject +
49789
+ '</svg>');
49790
+ })
49791
+ .then(function (svg) {
49792
+ return 'data:image/svg+xml;charset=utf-8,' + svg;
49793
+ });
49794
+ }
49795
+ function newUtil() {
49796
+ return {
49797
+ escape: escape,
49798
+ parseExtension: parseExtension,
49799
+ mimeType: mimeType,
49800
+ dataAsUrl: dataAsUrl,
49801
+ isDataUrl: isDataUrl,
49802
+ canvasToBlob: canvasToBlob,
49803
+ resolveUrl: resolveUrl,
49804
+ getAndEncode: getAndEncode,
49805
+ uid: uid(),
49806
+ delay: delay,
49807
+ asArray: asArray,
49808
+ escapeXhtml: escapeXhtml,
49809
+ makeImage: makeImage,
49810
+ width: width,
49811
+ height: height,
49812
+ };
49813
+ function mimes() {
49814
+ /*
49815
+ * Only WOFF and EOT mime types for fonts are 'real'
49816
+ * see http://www.iana.org/assignments/media-types/media-types.xhtml
49817
+ */
49818
+ var WOFF = 'application/font-woff';
49819
+ var JPEG = 'image/jpeg';
49820
+ return {
49821
+ woff: WOFF,
49822
+ woff2: WOFF,
49823
+ ttf: 'application/font-truetype',
49824
+ eot: 'application/vnd.ms-fontobject',
49825
+ png: 'image/png',
49826
+ jpg: JPEG,
49827
+ jpeg: JPEG,
49828
+ gif: 'image/gif',
49829
+ tiff: 'image/tiff',
49830
+ svg: 'image/svg+xml',
49831
+ };
49832
+ }
49833
+ function parseExtension(url) {
49834
+ var match = /\.([^\.\/]*?)$/g.exec(url);
49835
+ if (match)
49836
+ return match[1];
49837
+ else
49838
+ return '';
49839
+ }
49840
+ function mimeType(url) {
49841
+ var extension = parseExtension(url).toLowerCase();
49842
+ return mimes()[extension] || '';
49843
+ }
49844
+ function isDataUrl(url) {
49845
+ return url.search(/^(data:)/) !== -1;
49846
+ }
49847
+ function toBlob(canvas) {
49848
+ return new Promise(function (resolve) {
49849
+ var binaryString = window.atob(canvas.toDataURL().split(',')[1]);
49850
+ var length = binaryString.length;
49851
+ var binaryArray = new Uint8Array(length);
49852
+ for (var i = 0; i < length; i++)
49853
+ binaryArray[i] = binaryString.charCodeAt(i);
49854
+ resolve(new Blob([binaryArray], {
49855
+ type: 'image/png',
49856
+ }));
49857
+ });
49858
+ }
49859
+ function canvasToBlob(canvas) {
49860
+ if (canvas.toBlob)
49861
+ return new Promise(function (resolve) {
49862
+ canvas.toBlob(resolve);
49863
+ });
49864
+ return toBlob(canvas);
49865
+ }
49866
+ function resolveUrl(url, baseUrl) {
49867
+ var doc = document.implementation.createHTMLDocument();
49868
+ var base = doc.createElement('base');
49869
+ doc.head.appendChild(base);
49870
+ var a = doc.createElement('a');
49871
+ doc.body.appendChild(a);
49872
+ base.href = baseUrl;
49873
+ a.href = url;
49874
+ return a.href;
49875
+ }
49876
+ function uid() {
49877
+ var index = 0;
49878
+ return function () {
49879
+ return 'u' + fourRandomChars() + index++;
49880
+ function fourRandomChars() {
49881
+ /* see http://stackoverflow.com/a/6248722/2519373 */
49882
+ return ('0000' +
49883
+ ((Math.random() * Math.pow(36, 4)) << 0).toString(36)).slice(-4);
49884
+ }
49885
+ };
49886
+ }
49887
+ function makeImage(uri) {
49888
+ return new Promise(function (resolve, reject) {
49889
+ var image = new Image();
49890
+ image.onload = function () {
49891
+ resolve(image);
49892
+ };
49893
+ image.onerror = reject;
49894
+ image.src = uri;
49895
+ });
49896
+ }
49897
+ function getAndEncode(url) {
49898
+ var TIMEOUT = 30000;
49899
+ if (domtoimage.impl.options.cacheBust) {
49900
+ // Cache bypass so we dont have CORS issues with cached images
49901
+ // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
49902
+ url += (/\?/.test(url) ? '&' : '?') + new Date().getTime();
49903
+ }
49904
+ return new Promise(function (resolve) {
49905
+ var request = new XMLHttpRequest();
49906
+ request.onreadystatechange = done;
49907
+ request.ontimeout = timeout;
49908
+ request.responseType = 'blob';
49909
+ request.timeout = TIMEOUT;
49910
+ request.open('GET', url, true);
49911
+ request.send();
49912
+ var placeholder;
49913
+ if (domtoimage.impl.options.imagePlaceholder) {
49914
+ var split = domtoimage.impl.options.imagePlaceholder.split(/,/);
49915
+ if (split && split[1]) {
49916
+ placeholder = split[1];
49917
+ }
49918
+ }
49919
+ function done() {
49920
+ if (request.readyState !== 4)
49921
+ return;
49922
+ if (request.status !== 200) {
49923
+ if (placeholder) {
49924
+ resolve(placeholder);
49925
+ }
49926
+ else {
49927
+ fail('cannot fetch resource: ' +
49928
+ url +
49929
+ ', status: ' +
49930
+ request.status);
49931
+ }
49932
+ return;
49933
+ }
49934
+ var encoder = new FileReader();
49935
+ encoder.onloadend = function () {
49936
+ var content = encoder.result.split(/,/)[1];
49937
+ resolve(content);
49938
+ };
49939
+ encoder.readAsDataURL(request.response);
49940
+ }
49941
+ function timeout() {
49942
+ if (placeholder) {
49943
+ resolve(placeholder);
49944
+ }
49945
+ else {
49946
+ fail('timeout of ' +
49947
+ TIMEOUT +
49948
+ 'ms occured while fetching resource: ' +
49949
+ url);
49950
+ }
49951
+ }
49952
+ function fail(message) {
49953
+ console.error(message);
49954
+ resolve('');
49955
+ }
49956
+ });
49957
+ }
49958
+ function dataAsUrl(content, type) {
49959
+ return 'data:' + type + ';base64,' + content;
49960
+ }
49961
+ function escape(string) {
49962
+ return string.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
49963
+ }
49964
+ function delay(ms) {
49965
+ return function (arg) {
49966
+ return new Promise(function (resolve) {
49967
+ setTimeout(function () {
49968
+ resolve(arg);
49969
+ }, ms);
49970
+ });
49971
+ };
49972
+ }
49973
+ function asArray(arrayLike) {
49974
+ var array = [];
49975
+ var length = arrayLike.length;
49976
+ for (var i = 0; i < length; i++)
49977
+ array.push(arrayLike[i]);
49978
+ return array;
49979
+ }
49980
+ function escapeXhtml(string) {
49981
+ return string.replace(/#/g, '%23').replace(/\n/g, '%0A');
49982
+ }
49983
+ function width(node) {
49984
+ var leftBorder = px(node, 'border-left-width');
49985
+ var rightBorder = px(node, 'border-right-width');
49986
+ return node.scrollWidth + leftBorder + rightBorder;
49987
+ }
49988
+ function height(node) {
49989
+ var topBorder = px(node, 'border-top-width');
49990
+ var bottomBorder = px(node, 'border-bottom-width');
49991
+ return node.scrollHeight + topBorder + bottomBorder;
49992
+ }
49993
+ function px(node, styleProperty) {
49994
+ var value = window
49995
+ .getComputedStyle(node)
49996
+ .getPropertyValue(styleProperty);
49997
+ return parseFloat(value.replace('px', ''));
49998
+ }
49999
+ }
50000
+ function newInliner() {
50001
+ var URL_REGEX = /url\(['"]?([^'"]+?)['"]?\)/g;
50002
+ return {
50003
+ inlineAll: inlineAll,
50004
+ shouldProcess: shouldProcess,
50005
+ impl: {
50006
+ readUrls: readUrls,
50007
+ inline: inline,
50008
+ },
50009
+ };
50010
+ function shouldProcess(string) {
50011
+ return string.search(URL_REGEX) !== -1;
50012
+ }
50013
+ function readUrls(string) {
50014
+ var result = [];
50015
+ var match;
50016
+ while ((match = URL_REGEX.exec(string)) !== null) {
50017
+ result.push(match[1]);
50018
+ }
50019
+ return result.filter(function (url) {
50020
+ return !util.isDataUrl(url);
50021
+ });
50022
+ }
50023
+ function inline(string, url, baseUrl, get) {
50024
+ return Promise.resolve(url)
50025
+ .then(function (url) {
50026
+ return baseUrl ? util.resolveUrl(url, baseUrl) : url;
50027
+ })
50028
+ .then(get || util.getAndEncode)
50029
+ .then(function (data) {
50030
+ return util.dataAsUrl(data, util.mimeType(url));
50031
+ })
50032
+ .then(function (dataUrl) {
50033
+ return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3');
50034
+ });
50035
+ function urlAsRegex(url) {
50036
+ return new RegExp('(url\\([\'"]?)(' + util.escape(url) + ')([\'"]?\\))', 'g');
50037
+ }
50038
+ }
50039
+ function inlineAll(string, baseUrl, get) {
50040
+ if (nothingToInline())
50041
+ return Promise.resolve(string);
50042
+ return Promise.resolve(string)
50043
+ .then(readUrls)
50044
+ .then(function (urls) {
50045
+ var done = Promise.resolve(string);
50046
+ urls.forEach(function (url) {
50047
+ done = done.then(function (string) {
50048
+ return inline(string, url, baseUrl, get);
50049
+ });
50050
+ });
50051
+ return done;
50052
+ });
50053
+ function nothingToInline() {
50054
+ return !shouldProcess(string);
50055
+ }
50056
+ }
50057
+ }
50058
+ function newFontFaces() {
50059
+ return {
50060
+ resolveAll: resolveAll,
50061
+ impl: {
50062
+ readAll: readAll,
50063
+ },
50064
+ };
50065
+ function resolveAll() {
50066
+ return readAll(document)
50067
+ .then(function (webFonts) {
50068
+ return Promise.all(webFonts.map(function (webFont) {
50069
+ return webFont.resolve();
50070
+ }));
50071
+ })
50072
+ .then(function (cssStrings) {
50073
+ return cssStrings.join('\n');
50074
+ });
50075
+ }
50076
+ function readAll() {
50077
+ return Promise.resolve(util.asArray(document.styleSheets))
50078
+ .then(getCssRules)
50079
+ .then(selectWebFontRules)
50080
+ .then(function (rules) {
50081
+ return rules.map(newWebFont);
50082
+ });
50083
+ function selectWebFontRules(cssRules) {
50084
+ return cssRules
50085
+ .filter(function (rule) {
50086
+ return rule.type === CSSRule.FONT_FACE_RULE;
50087
+ })
50088
+ .filter(function (rule) {
50089
+ return inliner.shouldProcess(rule.style.getPropertyValue('src'));
50090
+ });
50091
+ }
50092
+ function getCssRules(styleSheets) {
50093
+ var cssRules = [];
50094
+ styleSheets.forEach(function (sheet) {
50095
+ try {
50096
+ util.asArray(sheet.cssRules || []).forEach(cssRules.push.bind(cssRules));
50097
+ }
50098
+ catch (e) {
50099
+ console.log('Error while reading CSS rules from ' + sheet.href, e.toString());
50100
+ }
50101
+ });
50102
+ return cssRules;
50103
+ }
50104
+ function newWebFont(webFontRule) {
50105
+ return {
50106
+ resolve: function resolve() {
50107
+ var baseUrl = (webFontRule.parentStyleSheet || {}).href;
50108
+ return inliner.inlineAll(webFontRule.cssText, baseUrl);
50109
+ },
50110
+ src: function () {
50111
+ return webFontRule.style.getPropertyValue('src');
50112
+ },
50113
+ };
50114
+ }
50115
+ }
50116
+ }
50117
+ function newImages() {
50118
+ return {
50119
+ inlineAll: inlineAll,
50120
+ impl: {
50121
+ newImage: newImage,
50122
+ },
50123
+ };
50124
+ function newImage(element) {
50125
+ return {
50126
+ inline: inline,
50127
+ };
50128
+ function inline(get) {
50129
+ if (util.isDataUrl(element.src))
50130
+ return Promise.resolve();
50131
+ return Promise.resolve(element.src)
50132
+ .then(get || util.getAndEncode)
50133
+ .then(function (data) {
50134
+ return util.dataAsUrl(data, util.mimeType(element.src));
50135
+ })
50136
+ .then(function (dataUrl) {
50137
+ return new Promise(function (resolve, reject) {
50138
+ element.onload = resolve;
50139
+ element.onerror = reject;
50140
+ element.src = dataUrl;
50141
+ });
50142
+ });
50143
+ }
50144
+ }
50145
+ function inlineAll(node) {
50146
+ if (!(node instanceof Element))
50147
+ return Promise.resolve(node);
50148
+ return inlineBackground(node).then(function () {
50149
+ if (node instanceof HTMLImageElement)
50150
+ return newImage(node).inline();
50151
+ else
50152
+ return Promise.all(util.asArray(node.childNodes).map(function (child) {
50153
+ return inlineAll(child);
50154
+ }));
50155
+ });
50156
+ function inlineBackground(node) {
50157
+ var background = node.style.getPropertyValue('background');
50158
+ if (!background)
50159
+ return Promise.resolve(node);
50160
+ return inliner
50161
+ .inlineAll(background)
50162
+ .then(function (inlined) {
50163
+ node.style.setProperty('background', inlined, node.style.getPropertyPriority('background'));
50164
+ })
50165
+ .then(function () {
50166
+ return node;
50167
+ });
50168
+ }
50169
+ }
50170
+ }
50171
+ })(this);
50172
+ //# sourceMappingURL=../../../src/services/essentials/dom-to-image.js.map
50173
+
50174
+ /***/ }),
50175
+
50176
+ /***/ "b489":
50177
+ /***/ (function(module, exports, __webpack_require__) {
50178
+
50179
+ "use strict";
50180
+
50181
+
50182
+ Object.defineProperty(exports, "__esModule", {
50183
+ value: true
50184
+ });
50185
+ exports.default = buildLocalizeFn;
50186
+
50187
+ function buildLocalizeFn(args) {
50188
+ return function (dirtyIndex, dirtyOptions) {
50189
+ var options = dirtyOptions || {};
50190
+ var context = options.context ? String(options.context) : 'standalone';
50191
+ var valuesArray;
50192
+
50193
+ if (context === 'formatting' && args.formattingValues) {
50194
+ var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
50195
+ var width = options.width ? String(options.width) : defaultWidth;
50196
+ valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
50197
+ } else {
50198
+ var _defaultWidth = args.defaultWidth;
50199
+
50200
+ var _width = options.width ? String(options.width) : args.defaultWidth;
50201
+
50202
+ valuesArray = args.values[_width] || args.values[_defaultWidth];
50203
+ }
50204
+
50205
+ var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
50206
+ return valuesArray[index];
50207
+ };
50208
+ }
50209
+
50210
+ module.exports = exports.default;
50211
+
50212
+ /***/ }),
50213
+
50214
+ /***/ "b495":
50215
+ /***/ (function(module, exports, __webpack_require__) {
50216
+
50217
+ var toInteger = __webpack_require__("8bb2");
50218
+
50219
+ var min = Math.min;
50220
+
50221
+ // `ToLength` abstract operation
50222
+ // https://tc39.github.io/ecma262/#sec-tolength
50223
+ module.exports = function (argument) {
50224
+ return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
50225
+ };
50226
+
50227
+
50228
+ /***/ }),
50229
+
50230
+ /***/ "b634":
50231
+ /***/ (function(module, exports, __webpack_require__) {
50232
+
50233
+ var has = __webpack_require__("f1a7");
50234
+ var ownKeys = __webpack_require__("a03e");
50235
+ var getOwnPropertyDescriptorModule = __webpack_require__("185a");
50236
+ var definePropertyModule = __webpack_require__("abdf");
50237
+
50238
+ module.exports = function (target, source) {
50239
+ var keys = ownKeys(source);
50240
+ var defineProperty = definePropertyModule.f;
50241
+ var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
50242
+ for (var i = 0; i < keys.length; i++) {
50243
+ var key = keys[i];
50244
+ if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
50245
+ }
50246
+ };
50247
+
50248
+
50249
+ /***/ }),
50250
+
50251
+ /***/ "b7fb":
50252
+ /***/ (function(module, exports, __webpack_require__) {
50253
+
50254
+ var toInteger = __webpack_require__("8bb2");
50255
+ var requireObjectCoercible = __webpack_require__("730c");
50256
+
50257
+ // `String.prototype.{ codePointAt, at }` methods implementation
50258
+ var createMethod = function (CONVERT_TO_STRING) {
50259
+ return function ($this, pos) {
50260
+ var S = String(requireObjectCoercible($this));
50261
+ var position = toInteger(pos);
50262
+ var size = S.length;
50263
+ var first, second;
50264
+ if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
50265
+ first = S.charCodeAt(position);
50266
+ return first < 0xD800 || first > 0xDBFF || position + 1 === size
50267
+ || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
50268
+ ? CONVERT_TO_STRING ? S.charAt(position) : first
50269
+ : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
50270
+ };
50271
+ };
50272
+
50273
+ module.exports = {
50274
+ // `String.prototype.codePointAt` method
50275
+ // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
50276
+ codeAt: createMethod(false),
50277
+ // `String.prototype.at` method
50278
+ // https://github.com/mathiasbynens/String.prototype.at
50279
+ charAt: createMethod(true)
50280
+ };
50281
+
50282
+
50283
+ /***/ }),
50284
+
50285
+ /***/ "b8ba":
50286
+ /***/ (function(module, exports, __webpack_require__) {
50287
+
50288
+ var global = __webpack_require__("f498");
50289
+ var createNonEnumerableProperty = __webpack_require__("5b12");
50290
+ var has = __webpack_require__("f1a7");
50291
+ var setGlobal = __webpack_require__("3e34");
50292
+ var inspectSource = __webpack_require__("df6f");
50293
+ var InternalStateModule = __webpack_require__("cdcd");
50294
+
50295
+ var getInternalState = InternalStateModule.get;
50296
+ var enforceInternalState = InternalStateModule.enforce;
50297
+ var TEMPLATE = String(String).split('String');
50298
+
50299
+ (module.exports = function (O, key, value, options) {
50300
+ var unsafe = options ? !!options.unsafe : false;
50301
+ var simple = options ? !!options.enumerable : false;
50302
+ var noTargetGet = options ? !!options.noTargetGet : false;
50303
+ if (typeof value == 'function') {
50304
+ if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);
50305
+ enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
50306
+ }
50307
+ if (O === global) {
50308
+ if (simple) O[key] = value;
50309
+ else setGlobal(key, value);
50310
+ return;
50311
+ } else if (!unsafe) {
50312
+ delete O[key];
50313
+ } else if (!noTargetGet && O[key]) {
50314
+ simple = true;
50315
+ }
50316
+ if (simple) O[key] = value;
50317
+ else createNonEnumerableProperty(O, key, value);
50318
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
50319
+ })(Function.prototype, 'toString', function toString() {
50320
+ return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
50321
+ });
50322
+
50323
+
50324
+ /***/ }),
50325
+
50326
+ /***/ "b99b":
50327
+ /***/ (function(module, exports, __webpack_require__) {
50328
+
50329
+ var DESCRIPTORS = __webpack_require__("d4cb");
50330
+ var definePropertyModule = __webpack_require__("abdf");
50331
+ var anObject = __webpack_require__("157c");
50332
+ var objectKeys = __webpack_require__("0c47");
50333
+
50334
+ // `Object.defineProperties` method
50335
+ // https://tc39.github.io/ecma262/#sec-object.defineproperties
50336
+ module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
50337
+ anObject(O);
50338
+ var keys = objectKeys(Properties);
50339
+ var length = keys.length;
50340
+ var index = 0;
50341
+ var key;
50342
+ while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
50343
+ return O;
50344
+ };
50345
+
50346
+
50347
+ /***/ }),
50348
+
50349
+ /***/ "c1a2":
50350
+ /***/ (function(module, exports, __webpack_require__) {
50351
+
50352
+ var anObject = __webpack_require__("157c");
50353
+ var aPossiblePrototype = __webpack_require__("f3e4");
50354
+
50355
+ // `Object.setPrototypeOf` method
50356
+ // https://tc39.github.io/ecma262/#sec-object.setprototypeof
50357
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
50358
+ /* eslint-disable no-proto */
50359
+ module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
50360
+ var CORRECT_SETTER = false;
50361
+ var test = {};
50362
+ var setter;
50363
+ try {
50364
+ setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
50365
+ setter.call(test, []);
50366
+ CORRECT_SETTER = test instanceof Array;
50367
+ } catch (error) { /* empty */ }
50368
+ return function setPrototypeOf(O, proto) {
50369
+ anObject(O);
50370
+ aPossiblePrototype(proto);
50371
+ if (CORRECT_SETTER) setter.call(O, proto);
50372
+ else O.__proto__ = proto;
50373
+ return O;
50374
+ };
50375
+ }() : undefined);
50376
+
50377
+
50378
+ /***/ }),
50379
+
50380
+ /***/ "c607":
50381
+ /***/ (function(module, exports, __webpack_require__) {
50382
+
50383
+ var global = __webpack_require__("f498");
50384
+ var setGlobal = __webpack_require__("3e34");
50385
+
50386
+ var SHARED = '__core-js_shared__';
50387
+ var store = global[SHARED] || setGlobal(SHARED, {});
50388
+
50389
+ module.exports = store;
50390
+
50391
+
50392
+ /***/ }),
50393
+
50394
+ /***/ "c6de":
50395
+ /***/ (function(module, exports, __webpack_require__) {
50396
+
50397
+ var classof = __webpack_require__("6a61");
50398
+
50399
+ // `IsArray` abstract operation
50400
+ // https://tc39.github.io/ecma262/#sec-isarray
50401
+ module.exports = Array.isArray || function isArray(arg) {
50402
+ return classof(arg) == 'Array';
50403
+ };
50404
+
50405
+
50406
+ /***/ }),
50407
+
50408
+ /***/ "c78b":
50409
+ /***/ (function(module, exports, __webpack_require__) {
50410
+
50411
+ "use strict";
50412
+
50413
+ var $ = __webpack_require__("6b1d");
50414
+ var notARegExp = __webpack_require__("9eea");
50415
+ var requireObjectCoercible = __webpack_require__("730c");
50416
+ var correctIsRegExpLogic = __webpack_require__("3e32");
50417
+
50418
+ // `String.prototype.includes` method
50419
+ // https://tc39.github.io/ecma262/#sec-string.prototype.includes
50420
+ $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
50421
+ includes: function includes(searchString /* , position = 0 */) {
50422
+ return !!~String(requireObjectCoercible(this))
50423
+ .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
50424
+ }
50425
+ });
50426
+
50427
+
50428
+ /***/ }),
50429
+
50430
+ /***/ "c91c":
50431
+ /***/ (function(module, exports, __webpack_require__) {
50432
+
50433
+ var has = __webpack_require__("f1a7");
50434
+ var toIndexedObject = __webpack_require__("378c");
50435
+ var indexOf = __webpack_require__("1f5e").indexOf;
50436
+ var hiddenKeys = __webpack_require__("d687");
50437
+
50438
+ module.exports = function (object, names) {
50439
+ var O = toIndexedObject(object);
50440
+ var i = 0;
50441
+ var result = [];
50442
+ var key;
50443
+ for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
50444
+ // Don't enum bug & hidden keys
50445
+ while (names.length > i) if (has(O, key = names[i++])) {
50446
+ ~indexOf(result, key) || result.push(key);
50447
+ }
50448
+ return result;
50449
+ };
50450
+
50451
+
50452
+ /***/ }),
50453
+
50454
+ /***/ "c9c9":
50455
+ /***/ (function(module, exports, __webpack_require__) {
50456
+
50457
+ "use strict";
50458
+
50459
+
50460
+ Object.defineProperty(exports, "__esModule", {
50461
+ value: true
50462
+ });
50463
+ exports.default = void 0;
50464
+
50465
+ var _index = _interopRequireDefault(__webpack_require__("5ae7"));
50466
+
50467
+ var _index2 = _interopRequireDefault(__webpack_require__("3606"));
50468
+
50469
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50470
+
50471
+ var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
50472
+ var parseOrdinalNumberPattern = /\d+/i;
50473
+ var matchEraPatterns = {
50474
+ narrow: /^(b|a)/i,
50475
+ abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
50476
+ wide: /^(before christ|before common era|anno domini|common era)/i
50477
+ };
50478
+ var parseEraPatterns = {
50479
+ any: [/^b/i, /^(a|c)/i]
50480
+ };
50481
+ var matchQuarterPatterns = {
50482
+ narrow: /^[1234]/i,
50483
+ abbreviated: /^q[1234]/i,
50484
+ wide: /^[1234](th|st|nd|rd)? quarter/i
50485
+ };
50486
+ var parseQuarterPatterns = {
50487
+ any: [/1/i, /2/i, /3/i, /4/i]
50488
+ };
50489
+ var matchMonthPatterns = {
50490
+ narrow: /^[jfmasond]/i,
50491
+ abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
50492
+ wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
50493
+ };
50494
+ var parseMonthPatterns = {
50495
+ narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
50496
+ any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
50497
+ };
50498
+ var matchDayPatterns = {
50499
+ narrow: /^[smtwf]/i,
50500
+ short: /^(su|mo|tu|we|th|fr|sa)/i,
50501
+ abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
50502
+ wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
50503
+ };
50504
+ var parseDayPatterns = {
50505
+ narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
50506
+ any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
50507
+ };
50508
+ var matchDayPeriodPatterns = {
50509
+ narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
50510
+ any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
50511
+ };
50512
+ var parseDayPeriodPatterns = {
50513
+ any: {
50514
+ am: /^a/i,
50515
+ pm: /^p/i,
50516
+ midnight: /^mi/i,
50517
+ noon: /^no/i,
50518
+ morning: /morning/i,
50519
+ afternoon: /afternoon/i,
50520
+ evening: /evening/i,
50521
+ night: /night/i
50522
+ }
50523
+ };
50524
+ var match = {
50525
+ ordinalNumber: (0, _index.default)({
50526
+ matchPattern: matchOrdinalNumberPattern,
50527
+ parsePattern: parseOrdinalNumberPattern,
50528
+ valueCallback: function (value) {
50529
+ return parseInt(value, 10);
50530
+ }
50531
+ }),
50532
+ era: (0, _index2.default)({
50533
+ matchPatterns: matchEraPatterns,
50534
+ defaultMatchWidth: 'wide',
50535
+ parsePatterns: parseEraPatterns,
50536
+ defaultParseWidth: 'any'
50537
+ }),
50538
+ quarter: (0, _index2.default)({
50539
+ matchPatterns: matchQuarterPatterns,
50540
+ defaultMatchWidth: 'wide',
50541
+ parsePatterns: parseQuarterPatterns,
50542
+ defaultParseWidth: 'any',
50543
+ valueCallback: function (index) {
50544
+ return index + 1;
50545
+ }
50546
+ }),
50547
+ month: (0, _index2.default)({
50548
+ matchPatterns: matchMonthPatterns,
50549
+ defaultMatchWidth: 'wide',
50550
+ parsePatterns: parseMonthPatterns,
50551
+ defaultParseWidth: 'any'
50552
+ }),
50553
+ day: (0, _index2.default)({
50554
+ matchPatterns: matchDayPatterns,
50555
+ defaultMatchWidth: 'wide',
50556
+ parsePatterns: parseDayPatterns,
50557
+ defaultParseWidth: 'any'
50558
+ }),
50559
+ dayPeriod: (0, _index2.default)({
50560
+ matchPatterns: matchDayPeriodPatterns,
50561
+ defaultMatchWidth: 'any',
50562
+ parsePatterns: parseDayPeriodPatterns,
50563
+ defaultParseWidth: 'any'
50564
+ })
50565
+ };
50566
+ var _default = match;
50567
+ exports.default = _default;
50568
+ module.exports = exports.default;
50569
+
50570
+ /***/ }),
50571
+
50572
+ /***/ "cdcd":
50573
+ /***/ (function(module, exports, __webpack_require__) {
50574
+
50575
+ var NATIVE_WEAK_MAP = __webpack_require__("7297");
50576
+ var global = __webpack_require__("f498");
50577
+ var isObject = __webpack_require__("7526");
50578
+ var createNonEnumerableProperty = __webpack_require__("5b12");
50579
+ var objectHas = __webpack_require__("f1a7");
50580
+ var sharedKey = __webpack_require__("332c");
50581
+ var hiddenKeys = __webpack_require__("d687");
50582
+
50583
+ var WeakMap = global.WeakMap;
50584
+ var set, get, has;
50585
+
50586
+ var enforce = function (it) {
50587
+ return has(it) ? get(it) : set(it, {});
50588
+ };
50589
+
50590
+ var getterFor = function (TYPE) {
50591
+ return function (it) {
50592
+ var state;
50593
+ if (!isObject(it) || (state = get(it)).type !== TYPE) {
50594
+ throw TypeError('Incompatible receiver, ' + TYPE + ' required');
50595
+ } return state;
50596
+ };
50597
+ };
50598
+
50599
+ if (NATIVE_WEAK_MAP) {
50600
+ var store = new WeakMap();
50601
+ var wmget = store.get;
50602
+ var wmhas = store.has;
50603
+ var wmset = store.set;
50604
+ set = function (it, metadata) {
50605
+ wmset.call(store, it, metadata);
49858
50606
  return metadata;
49859
50607
  };
49860
50608
  get = function (it) {
@@ -50290,1039 +51038,263 @@ $({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymb
50290
51038
  });
50291
51039
 
50292
51040
  // `JSON.stringify` method behavior with symbols
50293
- // https://tc39.github.io/ecma262/#sec-json.stringify
50294
- if ($stringify) {
50295
- var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
50296
- var symbol = $Symbol();
50297
- // MS Edge converts symbol values to JSON as {}
50298
- return $stringify([symbol]) != '[null]'
50299
- // WebKit converts symbol values to JSON as null
50300
- || $stringify({ a: symbol }) != '{}'
50301
- // V8 throws on boxed symbols
50302
- || $stringify(Object(symbol)) != '{}';
50303
- });
50304
-
50305
- $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
50306
- // eslint-disable-next-line no-unused-vars
50307
- stringify: function stringify(it, replacer, space) {
50308
- var args = [it];
50309
- var index = 1;
50310
- var $replacer;
50311
- while (arguments.length > index) args.push(arguments[index++]);
50312
- $replacer = replacer;
50313
- if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
50314
- if (!isArray(replacer)) replacer = function (key, value) {
50315
- if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
50316
- if (!isSymbol(value)) return value;
50317
- };
50318
- args[1] = replacer;
50319
- return $stringify.apply(null, args);
50320
- }
50321
- });
50322
- }
50323
-
50324
- // `Symbol.prototype[@@toPrimitive]` method
50325
- // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive
50326
- if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
50327
- createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
50328
- }
50329
- // `Symbol.prototype[@@toStringTag]` property
50330
- // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag
50331
- setToStringTag($Symbol, SYMBOL);
50332
-
50333
- hiddenKeys[HIDDEN] = true;
50334
-
50335
-
50336
- /***/ }),
50337
-
50338
- /***/ "d6f0":
50339
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
50340
-
50341
- "use strict";
50342
- /* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7f0d");
50343
-
50344
-
50345
- /** Detect free variable `exports`. */
50346
- var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
50347
-
50348
- /** Detect free variable `module`. */
50349
- var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
50350
-
50351
- /** Detect the popular CommonJS extension `module.exports`. */
50352
- var moduleExports = freeModule && freeModule.exports === freeExports;
50353
-
50354
- /** Built-in value references. */
50355
- var Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].Buffer : undefined,
50356
- allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
50357
-
50358
- /**
50359
- * Creates a clone of `buffer`.
50360
- *
50361
- * @private
50362
- * @param {Buffer} buffer The buffer to clone.
50363
- * @param {boolean} [isDeep] Specify a deep clone.
50364
- * @returns {Buffer} Returns the cloned buffer.
50365
- */
50366
- function cloneBuffer(buffer, isDeep) {
50367
- if (isDeep) {
50368
- return buffer.slice();
50369
- }
50370
- var length = buffer.length,
50371
- result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
50372
-
50373
- buffer.copy(result);
50374
- return result;
50375
- }
50376
-
50377
- /* harmony default export */ __webpack_exports__["a"] = (cloneBuffer);
50378
-
50379
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("7326")(module)))
50380
-
50381
- /***/ }),
50382
-
50383
- /***/ "da06":
50384
- /***/ (function(module, exports, __webpack_require__) {
50385
-
50386
- var TO_STRING_TAG_SUPPORT = __webpack_require__("3cec");
50387
- var classofRaw = __webpack_require__("6a61");
50388
- var wellKnownSymbol = __webpack_require__("7d53");
50389
-
50390
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
50391
- // ES3 wrong here
50392
- var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
50393
-
50394
- // fallback for IE11 Script Access Denied error
50395
- var tryGet = function (it, key) {
50396
- try {
50397
- return it[key];
50398
- } catch (error) { /* empty */ }
50399
- };
50400
-
50401
- // getting tag from ES6+ `Object.prototype.toString`
50402
- module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
50403
- var O, tag, result;
50404
- return it === undefined ? 'Undefined' : it === null ? 'Null'
50405
- // @@toStringTag case
50406
- : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
50407
- // builtinTag case
50408
- : CORRECT_ARGUMENTS ? classofRaw(O)
50409
- // ES3 arguments fallback
50410
- : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
50411
- };
50412
-
50413
-
50414
- /***/ }),
50415
-
50416
- /***/ "df6f":
50417
- /***/ (function(module, exports, __webpack_require__) {
50418
-
50419
- var store = __webpack_require__("c607");
50420
-
50421
- var functionToString = Function.toString;
50422
-
50423
- // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
50424
- if (typeof store.inspectSource != 'function') {
50425
- store.inspectSource = function (it) {
50426
- return functionToString.call(it);
50427
- };
50428
- }
50429
-
50430
- module.exports = store.inspectSource;
50431
-
50432
-
50433
- /***/ }),
50434
-
50435
- /***/ "e129":
50436
- /***/ (function(module, exports, __webpack_require__) {
50437
-
50438
- "use strict";
50439
-
50440
- var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
50441
- var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
50442
-
50443
- // Nashorn ~ JDK8 bug
50444
- var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
50445
-
50446
- // `Object.prototype.propertyIsEnumerable` method implementation
50447
- // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
50448
- exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
50449
- var descriptor = getOwnPropertyDescriptor(this, V);
50450
- return !!descriptor && descriptor.enumerable;
50451
- } : nativePropertyIsEnumerable;
50452
-
50453
-
50454
- /***/ }),
50455
-
50456
- /***/ "e7a0":
50457
- /***/ (function(module, exports, __webpack_require__) {
50458
-
50459
- var fails = __webpack_require__("72df");
50460
-
50461
- module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
50462
- // Chrome 38 Symbol has incorrect toString conversion
50463
- // eslint-disable-next-line no-undef
50464
- return !String(Symbol());
50465
- });
50466
-
50467
-
50468
- /***/ }),
50469
-
50470
- /***/ "ebac":
50471
- /***/ (function(module, exports, __webpack_require__) {
50472
-
50473
- var fails = __webpack_require__("72df");
50474
-
50475
- var replacement = /#|\.prototype\./;
50476
-
50477
- var isForced = function (feature, detection) {
50478
- var value = data[normalize(feature)];
50479
- return value == POLYFILL ? true
50480
- : value == NATIVE ? false
50481
- : typeof detection == 'function' ? fails(detection)
50482
- : !!detection;
50483
- };
50484
-
50485
- var normalize = isForced.normalize = function (string) {
50486
- return String(string).replace(replacement, '.').toLowerCase();
50487
- };
50488
-
50489
- var data = isForced.data = {};
50490
- var NATIVE = isForced.NATIVE = 'N';
50491
- var POLYFILL = isForced.POLYFILL = 'P';
50492
-
50493
- module.exports = isForced;
50494
-
50495
-
50496
- /***/ }),
50497
-
50498
- /***/ "ed2b":
50499
- /***/ (function(module, exports, __webpack_require__) {
50500
-
50501
- var wellKnownSymbol = __webpack_require__("7d53");
50502
- var create = __webpack_require__("82e8");
50503
- var definePropertyModule = __webpack_require__("abdf");
50504
-
50505
- var UNSCOPABLES = wellKnownSymbol('unscopables');
50506
- var ArrayPrototype = Array.prototype;
50507
-
50508
- // Array.prototype[@@unscopables]
50509
- // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
50510
- if (ArrayPrototype[UNSCOPABLES] == undefined) {
50511
- definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
50512
- configurable: true,
50513
- value: create(null)
50514
- });
50515
- }
50516
-
50517
- // add a key to Array.prototype[@@unscopables]
50518
- module.exports = function (key) {
50519
- ArrayPrototype[UNSCOPABLES][key] = true;
50520
- };
50521
-
50522
-
50523
- /***/ }),
50524
-
50525
- /***/ "ee58":
50526
- /***/ (function(module, exports, __webpack_require__) {
50527
-
50528
- var toIndexedObject = __webpack_require__("378c");
50529
- var nativeGetOwnPropertyNames = __webpack_require__("65d0").f;
50530
-
50531
- var toString = {}.toString;
50532
-
50533
- var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
50534
- ? Object.getOwnPropertyNames(window) : [];
50535
-
50536
- var getWindowNames = function (it) {
50537
- try {
50538
- return nativeGetOwnPropertyNames(it);
50539
- } catch (error) {
50540
- return windowNames.slice();
50541
- }
50542
- };
50543
-
50544
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
50545
- module.exports.f = function getOwnPropertyNames(it) {
50546
- return windowNames && toString.call(it) == '[object Window]'
50547
- ? getWindowNames(it)
50548
- : nativeGetOwnPropertyNames(toIndexedObject(it));
50549
- };
50550
-
50551
-
50552
- /***/ }),
50553
-
50554
- /***/ "eeea":
50555
- /***/ (function(module, exports, __webpack_require__) {
50556
-
50557
- (function (global) {
50558
- 'use strict';
50559
-
50560
- var util = newUtil();
50561
- var inliner = newInliner();
50562
- var fontFaces = newFontFaces();
50563
- var images = newImages();
50564
-
50565
- // Default impl options
50566
- var defaultOptions = {
50567
- // Default is to fail on error, no placeholder
50568
- imagePlaceholder: undefined,
50569
- // Default cache bust is false, it will use the cache
50570
- cacheBust: false
50571
- };
50572
-
50573
- var domtoimage = {
50574
- toSvg: toSvg,
50575
- toPng: toPng,
50576
- toJpeg: toJpeg,
50577
- toBlob: toBlob,
50578
- toPixelData: toPixelData,
50579
- impl: {
50580
- fontFaces: fontFaces,
50581
- images: images,
50582
- util: util,
50583
- inliner: inliner,
50584
- options: {}
50585
- }
50586
- };
50587
-
50588
- if (true)
50589
- module.exports = domtoimage;
50590
- else
50591
- {}
50592
-
50593
-
50594
- /**
50595
- * @param {Node} node - The DOM Node object to render
50596
- * @param {Object} options - Rendering options
50597
- * @param {Function} options.filter - Should return true if passed node should be included in the output
50598
- * (excluding node means excluding it's children as well). Not called on the root node.
50599
- * @param {String} options.bgcolor - color for the background, any valid CSS color value.
50600
- * @param {Number} options.width - width to be applied to node before rendering.
50601
- * @param {Number} options.height - height to be applied to node before rendering.
50602
- * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.
50603
- * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),
50604
- defaults to 1.0.
50605
- * @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
50606
- * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url
50607
- * @return {Promise} - A promise that is fulfilled with a SVG image data URL
50608
- * */
50609
- function toSvg(node, options) {
50610
- options = options || {};
50611
- copyOptions(options);
50612
- return Promise.resolve(node)
50613
- .then(function (node) {
50614
- return cloneNode(node, options.filter, true);
50615
- })
50616
- .then(embedFonts)
50617
- .then(inlineImages)
50618
- .then(applyOptions)
50619
- .then(function (clone) {
50620
- return makeSvgDataUri(clone,
50621
- options.width || util.width(node),
50622
- options.height || util.height(node)
50623
- );
50624
- });
50625
-
50626
- function applyOptions(clone) {
50627
- if (options.bgcolor) clone.style.backgroundColor = options.bgcolor;
50628
-
50629
- if (options.width) clone.style.width = options.width + 'px';
50630
- if (options.height) clone.style.height = options.height + 'px';
50631
-
50632
- if (options.style)
50633
- Object.keys(options.style).forEach(function (property) {
50634
- clone.style[property] = options.style[property];
50635
- });
50636
-
50637
- return clone;
50638
- }
50639
- }
50640
-
50641
- /**
50642
- * @param {Node} node - The DOM Node object to render
50643
- * @param {Object} options - Rendering options, @see {@link toSvg}
50644
- * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.
50645
- * */
50646
- function toPixelData(node, options) {
50647
- return draw(node, options || {})
50648
- .then(function (canvas) {
50649
- return canvas.getContext('2d').getImageData(
50650
- 0,
50651
- 0,
50652
- util.width(node),
50653
- util.height(node)
50654
- ).data;
50655
- });
50656
- }
50657
-
50658
- /**
50659
- * @param {Node} node - The DOM Node object to render
50660
- * @param {Object} options - Rendering options, @see {@link toSvg}
50661
- * @return {Promise} - A promise that is fulfilled with a PNG image data URL
50662
- * */
50663
- function toPng(node, options) {
50664
- return draw(node, options || {})
50665
- .then(function (canvas) {
50666
- return canvas.toDataURL();
50667
- });
50668
- }
50669
-
50670
- /**
50671
- * @param {Node} node - The DOM Node object to render
50672
- * @param {Object} options - Rendering options, @see {@link toSvg}
50673
- * @return {Promise} - A promise that is fulfilled with a JPEG image data URL
50674
- * */
50675
- function toJpeg(node, options) {
50676
- options = options || {};
50677
- return draw(node, options)
50678
- .then(function (canvas) {
50679
- return canvas.toDataURL('image/jpeg', options.quality || 1.0);
50680
- });
50681
- }
50682
-
50683
- /**
50684
- * @param {Node} node - The DOM Node object to render
50685
- * @param {Object} options - Rendering options, @see {@link toSvg}
50686
- * @return {Promise} - A promise that is fulfilled with a PNG image blob
50687
- * */
50688
- function toBlob(node, options) {
50689
- return draw(node, options || {})
50690
- .then(util.canvasToBlob);
50691
- }
50692
-
50693
- function copyOptions(options) {
50694
- // Copy options to impl options for use in impl
50695
- if(typeof(options.imagePlaceholder) === 'undefined') {
50696
- domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder;
50697
- } else {
50698
- domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;
50699
- }
50700
-
50701
- if(typeof(options.cacheBust) === 'undefined') {
50702
- domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;
50703
- } else {
50704
- domtoimage.impl.options.cacheBust = options.cacheBust;
50705
- }
50706
- }
50707
-
50708
- function draw(domNode, options) {
50709
- return toSvg(domNode, options)
50710
- .then(util.makeImage)
50711
- .then(util.delay(100))
50712
- .then(function (image) {
50713
- var canvas = newCanvas(domNode);
50714
- canvas.getContext('2d').drawImage(image, 0, 0);
50715
- return canvas;
50716
- });
50717
-
50718
- function newCanvas(domNode) {
50719
- var canvas = document.createElement('canvas');
50720
- canvas.width = options.width || util.width(domNode);
50721
- canvas.height = options.height || util.height(domNode);
50722
-
50723
- if (options.bgcolor) {
50724
- var ctx = canvas.getContext('2d');
50725
- ctx.fillStyle = options.bgcolor;
50726
- ctx.fillRect(0, 0, canvas.width, canvas.height);
50727
- }
50728
-
50729
- return canvas;
50730
- }
50731
- }
50732
-
50733
- function cloneNode(node, filter, root) {
50734
- if (!root && filter && !filter(node)) return Promise.resolve();
50735
-
50736
- return Promise.resolve(node)
50737
- .then(makeNodeCopy)
50738
- .then(function (clone) {
50739
- return cloneChildren(node, clone, filter);
50740
- })
50741
- .then(function (clone) {
50742
- return processClone(node, clone);
50743
- });
50744
-
50745
- function makeNodeCopy(node) {
50746
- if (node instanceof HTMLCanvasElement) return util.makeImage(node.toDataURL());
50747
- return node.cloneNode(false);
50748
- }
50749
-
50750
- function cloneChildren(original, clone, filter) {
50751
- var children = original.childNodes;
50752
- if (children.length === 0) return Promise.resolve(clone);
50753
-
50754
- return cloneChildrenInOrder(clone, util.asArray(children), filter)
50755
- .then(function () {
50756
- return clone;
50757
- });
50758
-
50759
- function cloneChildrenInOrder(parent, children, filter) {
50760
- var done = Promise.resolve();
50761
- children.forEach(function (child) {
50762
- done = done
50763
- .then(function () {
50764
- return cloneNode(child, filter);
50765
- })
50766
- .then(function (childClone) {
50767
- if (childClone) parent.appendChild(childClone);
50768
- });
50769
- });
50770
- return done;
50771
- }
50772
- }
50773
-
50774
- function processClone(original, clone) {
50775
- if (!(clone instanceof Element)) return clone;
50776
-
50777
- return Promise.resolve()
50778
- .then(cloneStyle)
50779
- .then(clonePseudoElements)
50780
- .then(copyUserInput)
50781
- .then(fixSvg)
50782
- .then(function () {
50783
- return clone;
50784
- });
50785
-
50786
- function cloneStyle() {
50787
- copyStyle(window.getComputedStyle(original), clone.style);
50788
-
50789
- function copyStyle(source, target) {
50790
- if (source.cssText) target.cssText = source.cssText;
50791
- else copyProperties(source, target);
50792
-
50793
- function copyProperties(source, target) {
50794
- util.asArray(source).forEach(function (name) {
50795
- target.setProperty(
50796
- name,
50797
- source.getPropertyValue(name),
50798
- source.getPropertyPriority(name)
50799
- );
50800
- });
50801
- }
50802
- }
50803
- }
50804
-
50805
- function clonePseudoElements() {
50806
- [':before', ':after'].forEach(function (element) {
50807
- clonePseudoElement(element);
50808
- });
50809
-
50810
- function clonePseudoElement(element) {
50811
- var style = window.getComputedStyle(original, element);
50812
- var content = style.getPropertyValue('content');
50813
-
50814
- if (content === '' || content === 'none') return;
50815
-
50816
- var className = util.uid();
50817
- clone.className = clone.className + ' ' + className;
50818
- var styleElement = document.createElement('style');
50819
- styleElement.appendChild(formatPseudoElementStyle(className, element, style));
50820
- clone.appendChild(styleElement);
50821
-
50822
- function formatPseudoElementStyle(className, element, style) {
50823
- var selector = '.' + className + ':' + element;
50824
- var cssText = style.cssText ? formatCssText(style) : formatCssProperties(style);
50825
- return document.createTextNode(selector + '{' + cssText + '}');
50826
-
50827
- function formatCssText(style) {
50828
- var content = style.getPropertyValue('content');
50829
- return style.cssText + ' content: ' + content + ';';
50830
- }
50831
-
50832
- function formatCssProperties(style) {
50833
-
50834
- return util.asArray(style)
50835
- .map(formatProperty)
50836
- .join('; ') + ';';
50837
-
50838
- function formatProperty(name) {
50839
- return name + ': ' +
50840
- style.getPropertyValue(name) +
50841
- (style.getPropertyPriority(name) ? ' !important' : '');
50842
- }
50843
- }
50844
- }
50845
- }
50846
- }
51041
+ // https://tc39.github.io/ecma262/#sec-json.stringify
51042
+ if ($stringify) {
51043
+ var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
51044
+ var symbol = $Symbol();
51045
+ // MS Edge converts symbol values to JSON as {}
51046
+ return $stringify([symbol]) != '[null]'
51047
+ // WebKit converts symbol values to JSON as null
51048
+ || $stringify({ a: symbol }) != '{}'
51049
+ // V8 throws on boxed symbols
51050
+ || $stringify(Object(symbol)) != '{}';
51051
+ });
50847
51052
 
50848
- function copyUserInput() {
50849
- if (original instanceof HTMLTextAreaElement) clone.innerHTML = original.value;
50850
- if (original instanceof HTMLInputElement) clone.setAttribute("value", original.value);
50851
- }
51053
+ $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
51054
+ // eslint-disable-next-line no-unused-vars
51055
+ stringify: function stringify(it, replacer, space) {
51056
+ var args = [it];
51057
+ var index = 1;
51058
+ var $replacer;
51059
+ while (arguments.length > index) args.push(arguments[index++]);
51060
+ $replacer = replacer;
51061
+ if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
51062
+ if (!isArray(replacer)) replacer = function (key, value) {
51063
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
51064
+ if (!isSymbol(value)) return value;
51065
+ };
51066
+ args[1] = replacer;
51067
+ return $stringify.apply(null, args);
51068
+ }
51069
+ });
51070
+ }
50852
51071
 
50853
- function fixSvg() {
50854
- if (!(clone instanceof SVGElement)) return;
50855
- clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
51072
+ // `Symbol.prototype[@@toPrimitive]` method
51073
+ // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive
51074
+ if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
51075
+ createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
51076
+ }
51077
+ // `Symbol.prototype[@@toStringTag]` property
51078
+ // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag
51079
+ setToStringTag($Symbol, SYMBOL);
50856
51080
 
50857
- if (!(clone instanceof SVGRectElement)) return;
50858
- ['width', 'height'].forEach(function (attribute) {
50859
- var value = clone.getAttribute(attribute);
50860
- if (!value) return;
51081
+ hiddenKeys[HIDDEN] = true;
50861
51082
 
50862
- clone.style.setProperty(attribute, value);
50863
- });
50864
- }
50865
- }
50866
- }
50867
51083
 
50868
- function embedFonts(node) {
50869
- return fontFaces.resolveAll()
50870
- .then(function (cssText) {
50871
- var styleNode = document.createElement('style');
50872
- node.appendChild(styleNode);
50873
- styleNode.appendChild(document.createTextNode(cssText));
50874
- return node;
50875
- });
50876
- }
51084
+ /***/ }),
50877
51085
 
50878
- function inlineImages(node) {
50879
- return images.inlineAll(node)
50880
- .then(function () {
50881
- return node;
50882
- });
50883
- }
51086
+ /***/ "d6f0":
51087
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
50884
51088
 
50885
- function makeSvgDataUri(node, width, height) {
50886
- return Promise.resolve(node)
50887
- .then(function (node) {
50888
- node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
50889
- return new XMLSerializer().serializeToString(node);
50890
- })
50891
- .then(util.escapeXhtml)
50892
- .then(function (xhtml) {
50893
- return '<foreignObject x="0" y="0" width="100%" height="100%">' + xhtml + '</foreignObject>';
50894
- })
50895
- .then(function (foreignObject) {
50896
- return '<svg xmlns="http://www.w3.org/2000/svg" width="' + width + '" height="' + height + '">' +
50897
- foreignObject + '</svg>';
50898
- })
50899
- .then(function (svg) {
50900
- return 'data:image/svg+xml;charset=utf-8,' + svg;
50901
- });
50902
- }
51089
+ "use strict";
51090
+ /* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7f0d");
50903
51091
 
50904
- function newUtil() {
50905
- return {
50906
- escape: escape,
50907
- parseExtension: parseExtension,
50908
- mimeType: mimeType,
50909
- dataAsUrl: dataAsUrl,
50910
- isDataUrl: isDataUrl,
50911
- canvasToBlob: canvasToBlob,
50912
- resolveUrl: resolveUrl,
50913
- getAndEncode: getAndEncode,
50914
- uid: uid(),
50915
- delay: delay,
50916
- asArray: asArray,
50917
- escapeXhtml: escapeXhtml,
50918
- makeImage: makeImage,
50919
- width: width,
50920
- height: height
50921
- };
50922
51092
 
50923
- function mimes() {
50924
- /*
50925
- * Only WOFF and EOT mime types for fonts are 'real'
50926
- * see http://www.iana.org/assignments/media-types/media-types.xhtml
50927
- */
50928
- var WOFF = 'application/font-woff';
50929
- var JPEG = 'image/jpeg';
51093
+ /** Detect free variable `exports`. */
51094
+ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
50930
51095
 
50931
- return {
50932
- 'woff': WOFF,
50933
- 'woff2': WOFF,
50934
- 'ttf': 'application/font-truetype',
50935
- 'eot': 'application/vnd.ms-fontobject',
50936
- 'png': 'image/png',
50937
- 'jpg': JPEG,
50938
- 'jpeg': JPEG,
50939
- 'gif': 'image/gif',
50940
- 'tiff': 'image/tiff',
50941
- 'svg': 'image/svg+xml'
50942
- };
50943
- }
51096
+ /** Detect free variable `module`. */
51097
+ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
50944
51098
 
50945
- function parseExtension(url) {
50946
- var match = /\.([^\.\/]*?)$/g.exec(url);
50947
- if (match) return match[1];
50948
- else return '';
50949
- }
51099
+ /** Detect the popular CommonJS extension `module.exports`. */
51100
+ var moduleExports = freeModule && freeModule.exports === freeExports;
50950
51101
 
50951
- function mimeType(url) {
50952
- var extension = parseExtension(url).toLowerCase();
50953
- return mimes()[extension] || '';
50954
- }
51102
+ /** Built-in value references. */
51103
+ var Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].Buffer : undefined,
51104
+ allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
50955
51105
 
50956
- function isDataUrl(url) {
50957
- return url.search(/^(data:)/) !== -1;
50958
- }
51106
+ /**
51107
+ * Creates a clone of `buffer`.
51108
+ *
51109
+ * @private
51110
+ * @param {Buffer} buffer The buffer to clone.
51111
+ * @param {boolean} [isDeep] Specify a deep clone.
51112
+ * @returns {Buffer} Returns the cloned buffer.
51113
+ */
51114
+ function cloneBuffer(buffer, isDeep) {
51115
+ if (isDeep) {
51116
+ return buffer.slice();
51117
+ }
51118
+ var length = buffer.length,
51119
+ result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
50959
51120
 
50960
- function toBlob(canvas) {
50961
- return new Promise(function (resolve) {
50962
- var binaryString = window.atob(canvas.toDataURL().split(',')[1]);
50963
- var length = binaryString.length;
50964
- var binaryArray = new Uint8Array(length);
51121
+ buffer.copy(result);
51122
+ return result;
51123
+ }
50965
51124
 
50966
- for (var i = 0; i < length; i++)
50967
- binaryArray[i] = binaryString.charCodeAt(i);
51125
+ /* harmony default export */ __webpack_exports__["a"] = (cloneBuffer);
50968
51126
 
50969
- resolve(new Blob([binaryArray], {
50970
- type: 'image/png'
50971
- }));
50972
- });
50973
- }
51127
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("7326")(module)))
50974
51128
 
50975
- function canvasToBlob(canvas) {
50976
- if (canvas.toBlob)
50977
- return new Promise(function (resolve) {
50978
- canvas.toBlob(resolve);
50979
- });
51129
+ /***/ }),
50980
51130
 
50981
- return toBlob(canvas);
50982
- }
51131
+ /***/ "da06":
51132
+ /***/ (function(module, exports, __webpack_require__) {
50983
51133
 
50984
- function resolveUrl(url, baseUrl) {
50985
- var doc = document.implementation.createHTMLDocument();
50986
- var base = doc.createElement('base');
50987
- doc.head.appendChild(base);
50988
- var a = doc.createElement('a');
50989
- doc.body.appendChild(a);
50990
- base.href = baseUrl;
50991
- a.href = url;
50992
- return a.href;
50993
- }
51134
+ var TO_STRING_TAG_SUPPORT = __webpack_require__("3cec");
51135
+ var classofRaw = __webpack_require__("6a61");
51136
+ var wellKnownSymbol = __webpack_require__("7d53");
50994
51137
 
50995
- function uid() {
50996
- var index = 0;
51138
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
51139
+ // ES3 wrong here
51140
+ var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
50997
51141
 
50998
- return function () {
50999
- return 'u' + fourRandomChars() + index++;
51142
+ // fallback for IE11 Script Access Denied error
51143
+ var tryGet = function (it, key) {
51144
+ try {
51145
+ return it[key];
51146
+ } catch (error) { /* empty */ }
51147
+ };
51000
51148
 
51001
- function fourRandomChars() {
51002
- /* see http://stackoverflow.com/a/6248722/2519373 */
51003
- return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);
51004
- }
51005
- };
51006
- }
51149
+ // getting tag from ES6+ `Object.prototype.toString`
51150
+ module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
51151
+ var O, tag, result;
51152
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
51153
+ // @@toStringTag case
51154
+ : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
51155
+ // builtinTag case
51156
+ : CORRECT_ARGUMENTS ? classofRaw(O)
51157
+ // ES3 arguments fallback
51158
+ : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
51159
+ };
51007
51160
 
51008
- function makeImage(uri) {
51009
- return new Promise(function (resolve, reject) {
51010
- var image = new Image();
51011
- image.onload = function () {
51012
- resolve(image);
51013
- };
51014
- image.onerror = reject;
51015
- image.src = uri;
51016
- });
51017
- }
51018
51161
 
51019
- function getAndEncode(url) {
51020
- var TIMEOUT = 30000;
51021
- if(domtoimage.impl.options.cacheBust) {
51022
- // Cache bypass so we dont have CORS issues with cached images
51023
- // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
51024
- url += ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime();
51025
- }
51162
+ /***/ }),
51026
51163
 
51027
- return new Promise(function (resolve) {
51028
- var request = new XMLHttpRequest();
51164
+ /***/ "df6f":
51165
+ /***/ (function(module, exports, __webpack_require__) {
51029
51166
 
51030
- request.onreadystatechange = done;
51031
- request.ontimeout = timeout;
51032
- request.responseType = 'blob';
51033
- request.timeout = TIMEOUT;
51034
- request.open('GET', url, true);
51035
- request.send();
51167
+ var store = __webpack_require__("c607");
51036
51168
 
51037
- var placeholder;
51038
- if(domtoimage.impl.options.imagePlaceholder) {
51039
- var split = domtoimage.impl.options.imagePlaceholder.split(/,/);
51040
- if(split && split[1]) {
51041
- placeholder = split[1];
51042
- }
51043
- }
51169
+ var functionToString = Function.toString;
51044
51170
 
51045
- function done() {
51046
- if (request.readyState !== 4) return;
51171
+ // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
51172
+ if (typeof store.inspectSource != 'function') {
51173
+ store.inspectSource = function (it) {
51174
+ return functionToString.call(it);
51175
+ };
51176
+ }
51047
51177
 
51048
- if (request.status !== 200) {
51049
- if(placeholder) {
51050
- resolve(placeholder);
51051
- } else {
51052
- fail('cannot fetch resource: ' + url + ', status: ' + request.status);
51053
- }
51178
+ module.exports = store.inspectSource;
51054
51179
 
51055
- return;
51056
- }
51057
51180
 
51058
- var encoder = new FileReader();
51059
- encoder.onloadend = function () {
51060
- var content = encoder.result.split(/,/)[1];
51061
- resolve(content);
51062
- };
51063
- encoder.readAsDataURL(request.response);
51064
- }
51181
+ /***/ }),
51065
51182
 
51066
- function timeout() {
51067
- if(placeholder) {
51068
- resolve(placeholder);
51069
- } else {
51070
- fail('timeout of ' + TIMEOUT + 'ms occured while fetching resource: ' + url);
51071
- }
51072
- }
51183
+ /***/ "e129":
51184
+ /***/ (function(module, exports, __webpack_require__) {
51073
51185
 
51074
- function fail(message) {
51075
- console.error(message);
51076
- resolve('');
51077
- }
51078
- });
51079
- }
51186
+ "use strict";
51080
51187
 
51081
- function dataAsUrl(content, type) {
51082
- return 'data:' + type + ';base64,' + content;
51083
- }
51188
+ var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
51189
+ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
51084
51190
 
51085
- function escape(string) {
51086
- return string.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
51087
- }
51191
+ // Nashorn ~ JDK8 bug
51192
+ var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
51088
51193
 
51089
- function delay(ms) {
51090
- return function (arg) {
51091
- return new Promise(function (resolve) {
51092
- setTimeout(function () {
51093
- resolve(arg);
51094
- }, ms);
51095
- });
51096
- };
51097
- }
51194
+ // `Object.prototype.propertyIsEnumerable` method implementation
51195
+ // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
51196
+ exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
51197
+ var descriptor = getOwnPropertyDescriptor(this, V);
51198
+ return !!descriptor && descriptor.enumerable;
51199
+ } : nativePropertyIsEnumerable;
51098
51200
 
51099
- function asArray(arrayLike) {
51100
- var array = [];
51101
- var length = arrayLike.length;
51102
- for (var i = 0; i < length; i++) array.push(arrayLike[i]);
51103
- return array;
51104
- }
51105
51201
 
51106
- function escapeXhtml(string) {
51107
- return string.replace(/#/g, '%23').replace(/\n/g, '%0A');
51108
- }
51202
+ /***/ }),
51109
51203
 
51110
- function width(node) {
51111
- var leftBorder = px(node, 'border-left-width');
51112
- var rightBorder = px(node, 'border-right-width');
51113
- return node.scrollWidth + leftBorder + rightBorder;
51114
- }
51204
+ /***/ "e7a0":
51205
+ /***/ (function(module, exports, __webpack_require__) {
51115
51206
 
51116
- function height(node) {
51117
- var topBorder = px(node, 'border-top-width');
51118
- var bottomBorder = px(node, 'border-bottom-width');
51119
- return node.scrollHeight + topBorder + bottomBorder;
51120
- }
51207
+ var fails = __webpack_require__("72df");
51121
51208
 
51122
- function px(node, styleProperty) {
51123
- var value = window.getComputedStyle(node).getPropertyValue(styleProperty);
51124
- return parseFloat(value.replace('px', ''));
51125
- }
51126
- }
51209
+ module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
51210
+ // Chrome 38 Symbol has incorrect toString conversion
51211
+ // eslint-disable-next-line no-undef
51212
+ return !String(Symbol());
51213
+ });
51127
51214
 
51128
- function newInliner() {
51129
- var URL_REGEX = /url\(['"]?([^'"]+?)['"]?\)/g;
51130
51215
 
51131
- return {
51132
- inlineAll: inlineAll,
51133
- shouldProcess: shouldProcess,
51134
- impl: {
51135
- readUrls: readUrls,
51136
- inline: inline
51137
- }
51138
- };
51216
+ /***/ }),
51139
51217
 
51140
- function shouldProcess(string) {
51141
- return string.search(URL_REGEX) !== -1;
51142
- }
51218
+ /***/ "ebac":
51219
+ /***/ (function(module, exports, __webpack_require__) {
51143
51220
 
51144
- function readUrls(string) {
51145
- var result = [];
51146
- var match;
51147
- while ((match = URL_REGEX.exec(string)) !== null) {
51148
- result.push(match[1]);
51149
- }
51150
- return result.filter(function (url) {
51151
- return !util.isDataUrl(url);
51152
- });
51153
- }
51221
+ var fails = __webpack_require__("72df");
51154
51222
 
51155
- function inline(string, url, baseUrl, get) {
51156
- return Promise.resolve(url)
51157
- .then(function (url) {
51158
- return baseUrl ? util.resolveUrl(url, baseUrl) : url;
51159
- })
51160
- .then(get || util.getAndEncode)
51161
- .then(function (data) {
51162
- return util.dataAsUrl(data, util.mimeType(url));
51163
- })
51164
- .then(function (dataUrl) {
51165
- return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3');
51166
- });
51223
+ var replacement = /#|\.prototype\./;
51167
51224
 
51168
- function urlAsRegex(url) {
51169
- return new RegExp('(url\\([\'"]?)(' + util.escape(url) + ')([\'"]?\\))', 'g');
51170
- }
51171
- }
51225
+ var isForced = function (feature, detection) {
51226
+ var value = data[normalize(feature)];
51227
+ return value == POLYFILL ? true
51228
+ : value == NATIVE ? false
51229
+ : typeof detection == 'function' ? fails(detection)
51230
+ : !!detection;
51231
+ };
51172
51232
 
51173
- function inlineAll(string, baseUrl, get) {
51174
- if (nothingToInline()) return Promise.resolve(string);
51233
+ var normalize = isForced.normalize = function (string) {
51234
+ return String(string).replace(replacement, '.').toLowerCase();
51235
+ };
51175
51236
 
51176
- return Promise.resolve(string)
51177
- .then(readUrls)
51178
- .then(function (urls) {
51179
- var done = Promise.resolve(string);
51180
- urls.forEach(function (url) {
51181
- done = done.then(function (string) {
51182
- return inline(string, url, baseUrl, get);
51183
- });
51184
- });
51185
- return done;
51186
- });
51237
+ var data = isForced.data = {};
51238
+ var NATIVE = isForced.NATIVE = 'N';
51239
+ var POLYFILL = isForced.POLYFILL = 'P';
51187
51240
 
51188
- function nothingToInline() {
51189
- return !shouldProcess(string);
51190
- }
51191
- }
51192
- }
51241
+ module.exports = isForced;
51193
51242
 
51194
- function newFontFaces() {
51195
- return {
51196
- resolveAll: resolveAll,
51197
- impl: {
51198
- readAll: readAll
51199
- }
51200
- };
51201
51243
 
51202
- function resolveAll() {
51203
- return readAll(document)
51204
- .then(function (webFonts) {
51205
- return Promise.all(
51206
- webFonts.map(function (webFont) {
51207
- return webFont.resolve();
51208
- })
51209
- );
51210
- })
51211
- .then(function (cssStrings) {
51212
- return cssStrings.join('\n');
51213
- });
51214
- }
51244
+ /***/ }),
51215
51245
 
51216
- function readAll() {
51217
- return Promise.resolve(util.asArray(document.styleSheets))
51218
- .then(getCssRules)
51219
- .then(selectWebFontRules)
51220
- .then(function (rules) {
51221
- return rules.map(newWebFont);
51222
- });
51246
+ /***/ "ed2b":
51247
+ /***/ (function(module, exports, __webpack_require__) {
51223
51248
 
51224
- function selectWebFontRules(cssRules) {
51225
- return cssRules
51226
- .filter(function (rule) {
51227
- return rule.type === CSSRule.FONT_FACE_RULE;
51228
- })
51229
- .filter(function (rule) {
51230
- return inliner.shouldProcess(rule.style.getPropertyValue('src'));
51231
- });
51232
- }
51249
+ var wellKnownSymbol = __webpack_require__("7d53");
51250
+ var create = __webpack_require__("82e8");
51251
+ var definePropertyModule = __webpack_require__("abdf");
51233
51252
 
51234
- function getCssRules(styleSheets) {
51235
- var cssRules = [];
51236
- styleSheets.forEach(function (sheet) {
51237
- try {
51238
- util.asArray(sheet.cssRules || []).forEach(cssRules.push.bind(cssRules));
51239
- } catch (e) {
51240
- console.log('Error while reading CSS rules from ' + sheet.href, e.toString());
51241
- }
51242
- });
51243
- return cssRules;
51244
- }
51253
+ var UNSCOPABLES = wellKnownSymbol('unscopables');
51254
+ var ArrayPrototype = Array.prototype;
51245
51255
 
51246
- function newWebFont(webFontRule) {
51247
- return {
51248
- resolve: function resolve() {
51249
- var baseUrl = (webFontRule.parentStyleSheet || {}).href;
51250
- return inliner.inlineAll(webFontRule.cssText, baseUrl);
51251
- },
51252
- src: function () {
51253
- return webFontRule.style.getPropertyValue('src');
51254
- }
51255
- };
51256
- }
51257
- }
51258
- }
51256
+ // Array.prototype[@@unscopables]
51257
+ // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
51258
+ if (ArrayPrototype[UNSCOPABLES] == undefined) {
51259
+ definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
51260
+ configurable: true,
51261
+ value: create(null)
51262
+ });
51263
+ }
51259
51264
 
51260
- function newImages() {
51261
- return {
51262
- inlineAll: inlineAll,
51263
- impl: {
51264
- newImage: newImage
51265
- }
51266
- };
51265
+ // add a key to Array.prototype[@@unscopables]
51266
+ module.exports = function (key) {
51267
+ ArrayPrototype[UNSCOPABLES][key] = true;
51268
+ };
51267
51269
 
51268
- function newImage(element) {
51269
- return {
51270
- inline: inline
51271
- };
51272
51270
 
51273
- function inline(get) {
51274
- if (util.isDataUrl(element.src)) return Promise.resolve();
51271
+ /***/ }),
51275
51272
 
51276
- return Promise.resolve(element.src)
51277
- .then(get || util.getAndEncode)
51278
- .then(function (data) {
51279
- return util.dataAsUrl(data, util.mimeType(element.src));
51280
- })
51281
- .then(function (dataUrl) {
51282
- return new Promise(function (resolve, reject) {
51283
- element.onload = resolve;
51284
- element.onerror = reject;
51285
- element.src = dataUrl;
51286
- });
51287
- });
51288
- }
51289
- }
51273
+ /***/ "ee58":
51274
+ /***/ (function(module, exports, __webpack_require__) {
51290
51275
 
51291
- function inlineAll(node) {
51292
- if (!(node instanceof Element)) return Promise.resolve(node);
51276
+ var toIndexedObject = __webpack_require__("378c");
51277
+ var nativeGetOwnPropertyNames = __webpack_require__("65d0").f;
51293
51278
 
51294
- return inlineBackground(node)
51295
- .then(function () {
51296
- if (node instanceof HTMLImageElement)
51297
- return newImage(node).inline();
51298
- else
51299
- return Promise.all(
51300
- util.asArray(node.childNodes).map(function (child) {
51301
- return inlineAll(child);
51302
- })
51303
- );
51304
- });
51279
+ var toString = {}.toString;
51305
51280
 
51306
- function inlineBackground(node) {
51307
- var background = node.style.getPropertyValue('background');
51281
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
51282
+ ? Object.getOwnPropertyNames(window) : [];
51308
51283
 
51309
- if (!background) return Promise.resolve(node);
51284
+ var getWindowNames = function (it) {
51285
+ try {
51286
+ return nativeGetOwnPropertyNames(it);
51287
+ } catch (error) {
51288
+ return windowNames.slice();
51289
+ }
51290
+ };
51310
51291
 
51311
- return inliner.inlineAll(background)
51312
- .then(function (inlined) {
51313
- node.style.setProperty(
51314
- 'background',
51315
- inlined,
51316
- node.style.getPropertyPriority('background')
51317
- );
51318
- })
51319
- .then(function () {
51320
- return node;
51321
- });
51322
- }
51323
- }
51324
- }
51325
- })(this);
51292
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
51293
+ module.exports.f = function getOwnPropertyNames(it) {
51294
+ return windowNames && toString.call(it) == '[object Window]'
51295
+ ? getWindowNames(it)
51296
+ : nativeGetOwnPropertyNames(toIndexedObject(it));
51297
+ };
51326
51298
 
51327
51299
 
51328
51300
  /***/ }),