@sankei-arc-shared-components/element_icon 0.4.1 → 0.4.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/build/index.js CHANGED
@@ -1,44 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.SITE_KEYS = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
-
16
11
  var _react = _interopRequireDefault(require("react"));
17
-
18
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
-
20
13
  var _fusionContext = require("fusion:context");
21
-
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
23
-
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
-
14
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
16
  var IconImg = function IconImg(name) {
27
17
  return function (props) {
28
18
  var _useFusionContext = (0, _fusionContext.useFusionContext)(),
29
- contextPath = _useFusionContext.contextPath,
30
- deployment = _useFusionContext.deployment;
31
-
19
+ contextPath = _useFusionContext.contextPath,
20
+ deployment = _useFusionContext.deployment;
32
21
  return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
33
22
  src: deployment("".concat(contextPath, "/resources/icons/").concat(name, ".svg"))
34
23
  }));
35
24
  };
36
25
  };
37
-
38
26
  var Bars = function Bars(_ref) {
39
27
  var fillColor = _ref.fillColor,
40
- alt = _ref.alt,
41
- props = (0, _objectWithoutProperties2["default"])(_ref, ["fillColor", "alt"]);
28
+ alt = _ref.alt,
29
+ props = (0, _objectWithoutProperties2["default"])(_ref, ["fillColor", "alt"]);
42
30
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
43
31
  "data-name": "Group 16",
44
32
  xmlns: "http://www.w3.org/2000/svg",
@@ -56,13 +44,12 @@ var Bars = function Bars(_ref) {
56
44
  d: "M0 24h32v-2.67H0z"
57
45
  })));
58
46
  };
59
-
60
47
  var BorderArrowLeft = function BorderArrowLeft(_ref2) {
61
48
  var fillColor = _ref2.fillColor,
62
- backgroundColor = _ref2.backgroundColor,
63
- strokeColor = _ref2.strokeColor,
64
- alt = _ref2.alt,
65
- props = (0, _objectWithoutProperties2["default"])(_ref2, ["fillColor", "backgroundColor", "strokeColor", "alt"]);
49
+ backgroundColor = _ref2.backgroundColor,
50
+ strokeColor = _ref2.strokeColor,
51
+ alt = _ref2.alt,
52
+ props = (0, _objectWithoutProperties2["default"])(_ref2, ["fillColor", "backgroundColor", "strokeColor", "alt"]);
66
53
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
67
54
  viewBox: "0 0 44 44",
68
55
  fill: "none",
@@ -81,13 +68,12 @@ var BorderArrowLeft = function BorderArrowLeft(_ref2) {
81
68
  fill: fillColor || '#06517B'
82
69
  }));
83
70
  };
84
-
85
71
  var BorderArrowRight = function BorderArrowRight(_ref3) {
86
72
  var fillColor = _ref3.fillColor,
87
- backgroundColor = _ref3.backgroundColor,
88
- strokeColor = _ref3.strokeColor,
89
- alt = _ref3.alt,
90
- props = (0, _objectWithoutProperties2["default"])(_ref3, ["fillColor", "backgroundColor", "strokeColor", "alt"]);
73
+ backgroundColor = _ref3.backgroundColor,
74
+ strokeColor = _ref3.strokeColor,
75
+ alt = _ref3.alt,
76
+ props = (0, _objectWithoutProperties2["default"])(_ref3, ["fillColor", "backgroundColor", "strokeColor", "alt"]);
91
77
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
92
78
  viewBox: "0 0 44 44",
93
79
  fill: "none",
@@ -105,11 +91,10 @@ var BorderArrowRight = function BorderArrowRight(_ref3) {
105
91
  fill: fillColor || '#06517B'
106
92
  }));
107
93
  };
108
-
109
94
  var Chevron = function Chevron(_ref4) {
110
95
  var fillColor = _ref4.fillColor,
111
- alt = _ref4.alt,
112
- props = (0, _objectWithoutProperties2["default"])(_ref4, ["fillColor", "alt"]);
96
+ alt = _ref4.alt,
97
+ props = (0, _objectWithoutProperties2["default"])(_ref4, ["fillColor", "alt"]);
113
98
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
114
99
  "data-name": "Group 16",
115
100
  xmlns: "http://www.w3.org/2000/svg",
@@ -124,11 +109,10 @@ var Chevron = function Chevron(_ref4) {
124
109
  fill: fillColor || '#999'
125
110
  }));
126
111
  };
127
-
128
112
  var ChevronUp = function ChevronUp(_ref5) {
129
113
  var fillColor = _ref5.fillColor,
130
- alt = _ref5.alt,
131
- props = (0, _objectWithoutProperties2["default"])(_ref5, ["fillColor", "alt"]);
114
+ alt = _ref5.alt,
115
+ props = (0, _objectWithoutProperties2["default"])(_ref5, ["fillColor", "alt"]);
132
116
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
133
117
  "data-name": "Group 16",
134
118
  xmlns: "http://www.w3.org/2000/svg",
@@ -143,11 +127,10 @@ var ChevronUp = function ChevronUp(_ref5) {
143
127
  fill: fillColor || '#06517b'
144
128
  }));
145
129
  };
146
-
147
130
  var ChevronDown = function ChevronDown(_ref6) {
148
131
  var fillColor = _ref6.fillColor,
149
- alt = _ref6.alt,
150
- props = (0, _objectWithoutProperties2["default"])(_ref6, ["fillColor", "alt"]);
132
+ alt = _ref6.alt,
133
+ props = (0, _objectWithoutProperties2["default"])(_ref6, ["fillColor", "alt"]);
151
134
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
152
135
  "data-name": "Group 16",
153
136
  xmlns: "http://www.w3.org/2000/svg",
@@ -162,11 +145,10 @@ var ChevronDown = function ChevronDown(_ref6) {
162
145
  fill: fillColor || '#06517b'
163
146
  }));
164
147
  };
165
-
166
148
  var ChevronRight = function ChevronRight(_ref7) {
167
149
  var fillColor = _ref7.fillColor,
168
- alt = _ref7.alt,
169
- props = (0, _objectWithoutProperties2["default"])(_ref7, ["fillColor", "alt"]);
150
+ alt = _ref7.alt,
151
+ props = (0, _objectWithoutProperties2["default"])(_ref7, ["fillColor", "alt"]);
170
152
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
171
153
  "data-name": "Group 16",
172
154
  xmlns: "http://www.w3.org/2000/svg",
@@ -181,11 +163,10 @@ var ChevronRight = function ChevronRight(_ref7) {
181
163
  fill: fillColor || '#06517b'
182
164
  }));
183
165
  };
184
-
185
166
  var Lock = function Lock(_ref8) {
186
167
  var fillColor = _ref8.fillColor,
187
- alt = _ref8.alt,
188
- props = (0, _objectWithoutProperties2["default"])(_ref8, ["fillColor", "alt"]);
168
+ alt = _ref8.alt,
169
+ props = (0, _objectWithoutProperties2["default"])(_ref8, ["fillColor", "alt"]);
189
170
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
190
171
  viewBox: "0 0 19 16",
191
172
  xmlns: "http://www.w3.org/2000/svg"
@@ -200,10 +181,9 @@ var Lock = function Lock(_ref8) {
200
181
  fill: "#fff"
201
182
  }));
202
183
  };
203
-
204
184
  var Search = function Search(_ref9) {
205
185
  var alt = _ref9.alt,
206
- props = (0, _objectWithoutProperties2["default"])(_ref9, ["alt"]);
186
+ props = (0, _objectWithoutProperties2["default"])(_ref9, ["alt"]);
207
187
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
208
188
  viewBox: "0 0 32 32",
209
189
  xmlns: "http://www.w3.org/2000/svg"
@@ -222,10 +202,9 @@ var Search = function Search(_ref9) {
222
202
  fill: "#999"
223
203
  }))));
224
204
  };
225
-
226
- var Times = function Times(_ref10) {
227
- var alt = _ref10.alt,
228
- props = (0, _objectWithoutProperties2["default"])(_ref10, ["alt"]);
205
+ var Times = function Times(_ref0) {
206
+ var alt = _ref0.alt,
207
+ props = (0, _objectWithoutProperties2["default"])(_ref0, ["alt"]);
229
208
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
230
209
  viewBox: "0 0 352 512",
231
210
  xmlns: "http://www.w3.org/2000/svg"
@@ -233,10 +212,8 @@ var Times = function Times(_ref10) {
233
212
  d: "M242.72 256l100.07-100.07a31.46 31.46 0 000-44.48l-22.24-22.24a31.46 31.46 0 00-44.48 0L176 189.28 75.93 89.21a31.46 31.46 0 00-44.48 0L9.21 111.45a31.46 31.46 0 000 44.48L109.28 256 9.21 356.07a31.46 31.46 0 000 44.48l22.24 22.24a31.46 31.46 0 0044.48 0L176 322.72l100.07 100.07a31.46 31.46 0 0044.48 0l22.24-22.24a31.46 31.46 0 000-44.48L242.72 256z"
234
213
  }));
235
214
  };
236
-
237
215
  var SITE_KEYS = ['chain', 'chain_text', 'hatena', 'hatena_square', 'hatena_text', 'facebook', 'facebook_text', 'gq', 'ironna', 'japan-forward', 'line', 'line_text', 'sankei', 'member', 'twitter', 'twitter_blue', 'twitter_text', 'twitter_text_white', 'x', 'x_black', 'x_text', 'x_text_white', 'threads', 'bluesky', 'linkedin', 'note', 'youtube', 'wired', 'sankeisyo', 'naniwa', 'seiron', 'instagram', 'img_bar', 'img_borderarrow-left', 'img_borderarrow-left-biz', 'img_borderarrow-left-deactive', 'img_borderarrow-right', 'img_borderarrow-right-biz', 'img_borderarrow-right-deactive', 'img_chevron', 'img_chevron-deactive', 'img_chevron-up', 'img_chevron-down', 'img_chevron-right', 'img_chevron-right-deactive', 'img_lock-gold', 'img_lock-silver', 'img_search', 'img_times', 'monthly_seiron'];
238
216
  exports.SITE_KEYS = SITE_KEYS;
239
-
240
217
  var icons = _objectSpread({
241
218
  bars: {
242
219
  Component: Bars
@@ -273,19 +250,15 @@ var icons = _objectSpread({
273
250
  Component: IconImg(cur)
274
251
  }));
275
252
  }, {}));
276
-
277
- var Icon = function Icon(_ref11) {
278
- var name = _ref11.name,
279
- props = (0, _objectWithoutProperties2["default"])(_ref11, ["name"]);
280
-
253
+ var Icon = function Icon(_ref1) {
254
+ var name = _ref1.name,
255
+ props = (0, _objectWithoutProperties2["default"])(_ref1, ["name"]);
281
256
  if (typeof icons[name] !== 'undefined') {
282
257
  var Component = icons[name].Component;
283
258
  return /*#__PURE__*/_react["default"].createElement(Component, props);
284
259
  }
285
-
286
260
  return name;
287
261
  };
288
-
289
262
  Icon.propTypes = {
290
263
  name: _propTypes["default"].string.isRequired
291
264
  };
@@ -333,4 +306,4 @@ Times.propTypes = {
333
306
  };
334
307
  var _default = Icon;
335
308
  exports["default"] = _default;
336
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVua25vd24iXSwibmFtZXMiOlsiSWNvbkltZyIsIm5hbWUiLCJwcm9wcyIsImNvbnRleHRQYXRoIiwiZGVwbG95bWVudCIsIkJhcnMiLCJmaWxsQ29sb3IiLCJhbHQiLCJCb3JkZXJBcnJvd0xlZnQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzdHJva2VDb2xvciIsIkJvcmRlckFycm93UmlnaHQiLCJDaGV2cm9uIiwiQ2hldnJvblVwIiwiQ2hldnJvbkRvd24iLCJDaGV2cm9uUmlnaHQiLCJMb2NrIiwiU2VhcmNoIiwiVGltZXMiLCJTSVRFX0tFWVMiLCJpY29ucyIsImJhcnMiLCJDb21wb25lbnQiLCJjaGV2cm9uIiwibG9jayIsInNlYXJjaCIsInRpbWVzIiwicmVkdWNlIiwiYWNjIiwiY3VyIiwiSWNvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxJQUFEO0FBQUEsU0FBVSxVQUFDQyxLQUFELEVBQVc7QUFBQSw0QkFDQyxzQ0FERDtBQUFBLFFBQzNCQyxXQUQyQixxQkFDM0JBLFdBRDJCO0FBQUEsUUFDZEMsVUFEYyxxQkFDZEEsVUFEYzs7QUFFbkMsd0JBQU8scUVBQVNGLEtBQVQ7QUFBZ0IsTUFBQSxHQUFHLEVBQUVFLFVBQVUsV0FBSUQsV0FBSiw4QkFBbUNGLElBQW5DO0FBQS9CLE9BQVA7QUFDRCxHQUhlO0FBQUEsQ0FBaEI7O0FBS0EsSUFBTUksSUFBSSxHQUFHLFNBQVBBLElBQU87QUFBQSxNQUFHQyxTQUFILFFBQUdBLFNBQUg7QUFBQSxNQUFjQyxHQUFkLFFBQWNBLEdBQWQ7QUFBQSxNQUFzQkwsS0FBdEI7QUFBQSxzQkFDWCxxRUFBU0EsS0FBVDtBQUFnQixpQkFBVSxVQUExQjtBQUFxQyxJQUFBLEtBQUssRUFBQyw0QkFBM0M7QUFBd0UsSUFB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TSxDQUFDYyxTQUFQLEdBQW1CO0FBQ2pCeEIsRUFBQUEsR0FBRyxFQUFFeUIsc0JBQVVDO0FBREUsQ0FBbkI7QUFJQWYsS0FBSyxDQUFDYSxTQUFOLEdBQWtCO0FBQ2hCeEIsRUFBQUEsR0FBRyxFQUFFeUIsc0JBQVVDO0FBREMsQ0FBbEI7ZUFJZUgsSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdXNlRnVzaW9uQ29udGV4dCB9IGZyb20gJ2Z1c2lvbjpjb250ZXh0JztcblxuY29uc3QgSWNvbkltZyA9IChuYW1lKSA9PiAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0UGF0aCwgZGVwbG95bWVudCB9ID0gdXNlRnVzaW9uQ29udGV4dCgpO1xuICByZXR1cm4gPGltZyB7Li4ucHJvcHN9IHNyYz17ZGVwbG95bWVudChgJHtjb250ZXh0UGF0aH0vcmVzb3VyY2VzL2ljb25zLyR7bmFtZX0uc3ZnYCl9IC8+O1xufTtcblxuY29uc3QgQmFycyA9ICh7IGZpbGxDb2xvciwgYWx0LCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAge2FsdCAmJiA8dGl0bGU+e2FsdH08L3RpdGxlPn1cbiAgICA8ZyBmaWxsPXtmaWxsQ29sb3IgfHwgJyM5OTknfT5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAyLjY3aDMyVjBIMHpcIiAvPlxuICAgICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0wIDEzLjMzaDMydi0yLjY2SDB6XCIgLz5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgM1wiIGQ9XCJNMCAyNGgzMnYtMi42N0gwelwiIC8+XG4gICAgPC9nPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IEJvcmRlckFycm93TGVmdCA9ICh7XG4gIGZpbGxDb2xvciwgYmFja2dyb3VuZENvbG9yLCBzdHJva2VDb2xvciwgYWx0LCAuLi5wcm9wc1xufSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gdmlld0JveD1cIjAgMCA0NCA0NFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHJlY3QgeD1cIjQzLjVcIiB5PVwiNDMuNVwiIHdpZHRoPVwiNDNcIiBoZWlnaHQ9XCI0M1wiIHJ4PVwiMy41XCIgdHJhbnNmb3JtPVwicm90YXRlKC0xODAgNDMuNSA0My41KVwiIGZpbGw9e2JhY2tncm91bmRDb2xvciB8fCAnd2hpdGUnfSBzdHJva2U9e3N0cm9rZUNvbG9yIHx8ICdub25lJ30gLz5cbiAgICA8cGF0aCBkPVwiTTI0IDI4TDI1LjQxIDI2LjU5TDIwLjgzIDIyTDI1LjQxIDE3LjQxTDI0IDE2TDE4IDIyTDI0IDI4WlwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Qid9IC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQm9yZGVyQXJyb3dSaWdodCA9ICh7XG4gIGZpbGxDb2xvciwgYmFja2dyb3VuZENvbG9yLCBzdHJva2VDb2xvciwgYWx0LCAuLi5wcm9wc1xufSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gdmlld0JveD1cIjAgMCA0NCA0NFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjQzXCIgaGVpZ2h0PVwiNDNcIiByeD1cIjMuNVwiIGZpbGw9e2JhY2tncm91bmRDb2xvciB8fCAnd2hpdGUnfSBzdHJva2U9e3N0cm9rZUNvbG9yIHx8ICdub25lJ30gLz5cbiAgICA8cGF0aCBkPVwiTTIwIDE2TDE4LjU5IDE3LjQxTDIzLjE3IDIyTDE4LjU5IDI2LjU5TDIwIDI4TDI2IDIyTDIwIDE2WlwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Qid9IC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQ2hldnJvbiA9ICh7IGZpbGxDb2xvciwgYWx0LCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAxXCIgZD1cIk0wIDMyaDMyVjBIMHpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xMy4yMyAxNmw3LjA3LTcuMDdhMSAxIDAgMDAwLTEuNDFsLS43LS43MWExIDEgMCAwMC0xLjQyIDBMOS43IDE1LjI5YTEgMSAwIDAwMCAxLjQybDguNDggOC40OGExIDEgMCAwMDEuNDIgMGwuNy0uN2ExIDEgMCAwMDAtMS40MnpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyM5OTknfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IENoZXZyb25VcCA9ICh7IGZpbGxDb2xvciwgYWx0LCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAge2FsdCAmJiA8dGl0bGU+e2FsdH08L3RpdGxlPn1cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTMyIDMyVjBIMHYzMnpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xNiAxMy4yM2w3LjA3IDcuMDdhMSAxIDAgMDAxLjQyIDBsLjctLjdhMSAxIDAgMDAwLTEuNDJMMTYuNzEgOS43YTEgMSAwIDAwLTEuNDIgMGwtOC40OCA4LjQ4YTEgMSAwIDAwMCAxLjQybC43LjdhMSAxIDAgMDAxLjQyIDB6XCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjMDY1MTdiJ30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uRG93biA9ICh7IGZpbGxDb2xvciwgYWx0LCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAge2FsdCAmJiA8dGl0bGU+e2FsdH08L3RpdGxlPn1cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTAgMzJoMzJWMEgwelwiIGZpbGw9XCIjZmZmXCIgLz5cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDJcIiBkPVwiTTE2IDE4Ljc3TDguOTMgMTEuN2ExIDEgMCAwMC0xLjQxIDBsLS43MS43YTEgMSAwIDAwMCAxLjQybDguNDggOC40OGExIDEgMCAwMDEuNDIgMGw4LjQ4LTguNDhhMSAxIDAgMDAwLTEuNDFsLS43LS43MWExIDEgMCAwMC0xLjQyIDB6XCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjMDY1MTdiJ30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uUmlnaHQgPSAoeyBmaWxsQ29sb3IsIGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAxXCIgZD1cIk0wIDMyaDMyVjBIMHpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xOC43NyAxNmwtNy4wNyA3LjA3YTEgMSAwIDAwMCAxLjQybC43LjdhMSAxIDAgMDAxLjQyIDBsOC40OC04LjQ4YTEgMSAwIDAwMC0xLjQybC04LjQ4LTguNDhhMSAxIDAgMDAtMS40MiAwbC0uNy43YTEgMSAwIDAwMCAxLjQyelwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Yid9IC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgTG9jayA9ICh7IGZpbGxDb2xvciwgYWx0LCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSB2aWV3Qm94PVwiMCAwIDE5IDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHBhdGggZD1cIk0xOC4zOSwxNkgzLjYxQS42MS42MSwwLDAsMSwzLDE1LjM5Vi42MUEuNjEuNjEsMCwwLDEsMy42MSwwSDE4LjM5QS42MS42MSwwLDAsMSwxOSwuNjFWMTUuMzlhLjYxLjYxLDAsMCwxLS42MS42MVwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnI2RiYjQwMCd9IC8+XG4gICAgPHBhdGggZD1cIk0xNC43Miw3LjUxSDcuMjhhLjgzLjgzLDAsMCwwLS44My44M3Y0LjkyYTEuNDMsMS40MywwLDAsMCwxLjQzLDEuNDNoNi4yNGExLjQzLDEuNDMsMCwwLDAsMS40My0xLjQzVjguMzRhLjgzLjgzLDAsMCwwLS44My0uODNabS0yLjY3LDUuMzNhLjI0LjI0LDAsMCwxLS4xOC4yOUgxMC4xOGEuMjQuMjQsMCwwLDEtLjI0LS4yNC4xMy4xMywwLDAsMSwwLS4wNmwuNDEtMS43M2ExLjEzLDEuMTMsMCwxLDEsMS41Ny0uMjksMS4zMywxLjMzLDAsMCwxLS4yOS4yOVpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZD1cIk0xNC43MSw2Ljk0aC0xLjZWNS4wOGEyLjE2LDIuMTYsMCwwLDAtNC4zMiwwVjYuOTRINy4xOVY1LjA4YTMuNzYsMy43NiwwLDEsMSw3LjUyLDBaXCIgZmlsbD1cIiNmZmZcIiAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IFNlYXJjaCA9ICh7IGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gdmlld0JveD1cIjAgMCAzMiAzMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxnIGRhdGEtbmFtZT1cIkdyb3VwIDNcIj5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkNsaXAgMlwiIGQ9XCJNMCAwaDMydjMySDB6XCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgPGcgZGF0YS1uYW1lPVwiR3JvdXAgM1wiPlxuICAgICAgICA8cGF0aCBjbGFzc05hbWU9XCJzZWFyY2gtaWNvbi1jb2xvclwiIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMzAgMzJhMS45OSAxLjk5IDAgMDEtMS40MS0uNTlsLTcuOTMtNy45MkExMi45OSAxMi45OSAwIDAxMCAxM2ExMyAxMyAwIDAxMjIuMi05LjIgMTIuOTcgMTIuOTcgMCAwMTEuMjkgMTYuODZsNy45MiA3LjkzQTIgMiAwIDAxMzAgMzJ6TTEzIDRhOSA5IDAgMTA5IDkgOS4wMSA5LjAxIDAgMDAtOS05elwiIGZpbGw9XCIjOTk5XCIgLz5cbiAgICAgIDwvZz5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgVGltZXMgPSAoeyBhbHQsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IHZpZXdCb3g9XCIwIDAgMzUyIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxwYXRoIGQ9XCJNMjQyLjcyIDI1NmwxMDAuMDctMTAwLjA3YTMxLjQ2IDMxLjQ2IDAgMDAwLTQ0LjQ4bC0yMi4yNC0yMi4yNGEzMS40NiAzMS40NiAwIDAwLTQ0LjQ4IDBMMTc2IDE4OS4yOCA3NS45MyA4OS4yMWEzMS40NiAzMS40NiAwIDAwLTQ0LjQ4IDBMOS4yMSAxMTEuNDVhMzEuNDYgMzEuNDYgMCAwMDAgNDQuNDhMMTA5LjI4IDI1NiA5LjIxIDM1Ni4wN2EzMS40NiAzMS40NiAwIDAwMCA0NC40OGwyMi4yNCAyMi4yNGEzMS40NiAzMS40NiAwIDAwNDQuNDggMEwxNzYgMzIyLjcybDEwMC4wNyAxMDAuMDdhMzEuNDYgMzEuNDYgMCAwMDQ0LjQ4IDBsMjIuMjQtMjIuMjRhMzEuNDYgMzEuNDYgMCAwMDAtNDQuNDhMMjQyLjcyIDI1NnpcIiAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBTSVRFX0tFWVMgPSBbXG4gICdjaGFpbicsXG4gICdjaGFpbl90ZXh0JyxcbiAgJ2hhdGVuYScsXG4gICdoYXRlbmFfc3F1YXJlJyxcbiAgJ2hhdGVuYV90ZXh0JyxcbiAgJ2ZhY2Vib29rJyxcbiAgJ2ZhY2Vib29rX3RleHQnLFxuICAnZ3EnLFxuICAnaXJvbm5hJyxcbiAgJ2phcGFuLWZvcndhcmQnLFxuICAnbGluZScsXG4gICdsaW5lX3RleHQnLFxuICAnc2Fua2VpJyxcbiAgJ21lbWJlcicsXG4gICd0d2l0dGVyJyxcbiAgJ3R3aXR0ZXJfYmx1ZScsXG4gICd0d2l0dGVyX3RleHQnLFxuICAndHdpdHRlcl90ZXh0X3doaXRlJyxcbiAgJ3gnLFxuICAneF9ibGFjaycsXG4gICd4X3RleHQnLFxuICAneF90ZXh0X3doaXRlJyxcbiAgJ3RocmVhZHMnLFxuICAnYmx1ZXNreScsXG4gICdsaW5rZWRpbicsXG4gICdub3RlJyxcbiAgJ3lvdXR1YmUnLFxuICAnd2lyZWQnLFxuICAnc2Fua2Vpc3lvJyxcbiAgJ25hbml3YScsXG4gICdzZWlyb24nLFxuICAnaW5zdGFncmFtJyxcbiAgJ2ltZ19iYXInLFxuICAnaW1nX2JvcmRlcmFycm93LWxlZnQnLFxuICAnaW1nX2JvcmRlcmFycm93LWxlZnQtYml6JyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1sZWZ0LWRlYWN0aXZlJyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1yaWdodCcsXG4gICdpbWdfYm9yZGVyYXJyb3ctcmlnaHQtYml6JyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1yaWdodC1kZWFjdGl2ZScsXG4gICdpbWdfY2hldnJvbicsXG4gICdpbWdfY2hldnJvbi1kZWFjdGl2ZScsXG4gICdpbWdfY2hldnJvbi11cCcsXG4gICdpbWdfY2hldnJvbi1kb3duJyxcbiAgJ2ltZ19jaGV2cm9uLXJpZ2h0JyxcbiAgJ2ltZ19jaGV2cm9uLXJpZ2h0LWRlYWN0aXZlJyxcbiAgJ2ltZ19sb2NrLWdvbGQnLFxuICAnaW1nX2xvY2stc2lsdmVyJyxcbiAgJ2ltZ19zZWFyY2gnLFxuICAnaW1nX3RpbWVzJyxcbiAgJ21vbnRobHlfc2Vpcm9uJyxcbl07XG5cblxuY29uc3QgaWNvbnMgPSB7XG4gIGJhcnM6IHtcbiAgICBDb21wb25lbnQ6IEJhcnMsXG4gIH0sXG4gICdib3JkZXItYXJyb3ctbGVmdCc6IHtcbiAgICBDb21wb25lbnQ6IEJvcmRlckFycm93TGVmdCxcbiAgfSxcbiAgJ2JvcmRlci1hcnJvdy1yaWdodCc6IHtcbiAgICBDb21wb25lbnQ6IEJvcmRlckFycm93UmlnaHQsXG4gIH0sXG4gIGNoZXZyb246IHtcbiAgICBDb21wb25lbnQ6IENoZXZyb24sXG4gIH0sXG4gICdjaGV2cm9uLXVwJzoge1xuICAgIENvbXBvbmVudDogQ2hldnJvblVwLFxuICB9LFxuICAnY2hldnJvbi1kb3duJzoge1xuICAgIENvbXBvbmVudDogQ2hldnJvbkRvd24sXG4gIH0sXG4gICdjaGV2cm9uLXJpZ2h0Jzoge1xuICAgIENvbXBvbmVudDogQ2hldnJvblJpZ2h0LFxuICB9LFxuICBsb2NrOiB7XG4gICAgQ29tcG9uZW50OiBMb2NrLFxuICB9LFxuICBzZWFyY2g6IHtcbiAgICBDb21wb25lbnQ6IFNlYXJjaCxcbiAgfSxcbiAgdGltZXM6IHtcbiAgICBDb21wb25lbnQ6IFRpbWVzLFxuICB9LFxuICAuLi5TSVRFX0tFWVMucmVkdWNlKChhY2MsIGN1cikgPT4gKFxuICAgIHsgLi4uYWNjLCBbY3VyXTogeyBDb21wb25lbnQ6IEljb25JbWcoY3VyKSB9IH1cbiAgKSwge30pLFxufTtcblxuY29uc3QgSWNvbiA9ICh7IG5hbWUsIC4uLnByb3BzIH0pID0+IHtcbiAgaWYgKHR5cGVvZiBpY29uc1tuYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zdCB7IENvbXBvbmVudCB9ID0gaWNvbnNbbmFtZV07XG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnByb3BzfSAvPjtcbiAgfVxuXG4gIHJldHVybiBuYW1lO1xufTtcblxuSWNvbi5wcm9wVHlwZXMgPSB7XG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbn07XG5cbkJhcnMucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkJvcmRlckFycm93TGVmdC5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdHJva2VDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQm9yZGVyQXJyb3dSaWdodC5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdHJva2VDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hldnJvbi5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hldnJvblVwLnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uRG93bi5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hldnJvblJpZ2h0LnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Mb2NrLnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5TZWFyY2gucHJvcFR5cGVzID0ge1xuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5UaW1lcy5wcm9wVHlwZXMgPSB7XG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iXX0=
309
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfZnVzaW9uQ29udGV4dCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiSWNvbkltZyIsIm5hbWUiLCJwcm9wcyIsIl91c2VGdXNpb25Db250ZXh0IiwidXNlRnVzaW9uQ29udGV4dCIsImNvbnRleHRQYXRoIiwiZGVwbG95bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJzcmMiLCJjb25jYXQiLCJCYXJzIiwiX3JlZiIsImZpbGxDb2xvciIsImFsdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJ4bWxucyIsInZpZXdCb3giLCJmaWxsIiwiZCIsIkJvcmRlckFycm93TGVmdCIsIl9yZWYyIiwiYmFja2dyb3VuZENvbG9yIiwic3Ryb2tlQ29sb3IiLCJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0IiwicngiLCJ0cmFuc2Zvcm0iLCJzdHJva2UiLCJCb3JkZXJBcnJvd1JpZ2h0IiwiX3JlZjMiLCJDaGV2cm9uIiwiX3JlZjQiLCJDaGV2cm9uVXAiLCJfcmVmNSIsIkNoZXZyb25Eb3duIiwiX3JlZjYiLCJDaGV2cm9uUmlnaHQiLCJfcmVmNyIsIkxvY2siLCJfcmVmOCIsIlNlYXJjaCIsIl9yZWY5IiwiY2xhc3NOYW1lIiwiVGltZXMiLCJfcmVmMCIsIlNJVEVfS0VZUyIsImV4cG9ydHMiLCJpY29ucyIsImJhcnMiLCJDb21wb25lbnQiLCJjaGV2cm9uIiwibG9jayIsInNlYXJjaCIsInRpbWVzIiwicmVkdWNlIiwiYWNjIiwiY3VyIiwiSWNvbiIsIl9yZWYxIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsidW5rbm93biJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHVzZUZ1c2lvbkNvbnRleHQgfSBmcm9tICdmdXNpb246Y29udGV4dCc7XG5cbmNvbnN0IEljb25JbWcgPSAobmFtZSkgPT4gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dFBhdGgsIGRlcGxveW1lbnQgfSA9IHVzZUZ1c2lvbkNvbnRleHQoKTtcbiAgcmV0dXJuIDxpbWcgey4uLnByb3BzfSBzcmM9e2RlcGxveW1lbnQoYCR7Y29udGV4dFBhdGh9L3Jlc291cmNlcy9pY29ucy8ke25hbWV9LnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IEJhcnMgPSAoeyBmaWxsQ29sb3IsIGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPGcgZmlsbD17ZmlsbENvbG9yIHx8ICcjOTk5J30+XG4gICAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTAgMi42N2gzMlYwSDB6XCIgLz5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMCAxMy4zM2gzMnYtMi42NkgwelwiIC8+XG4gICAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDNcIiBkPVwiTTAgMjRoMzJ2LTIuNjdIMHpcIiAvPlxuICAgIDwvZz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBCb3JkZXJBcnJvd0xlZnQgPSAoe1xuICBmaWxsQ29sb3IsIGJhY2tncm91bmRDb2xvciwgc3Ryb2tlQ29sb3IsIGFsdCwgLi4ucHJvcHNcbn0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IHZpZXdCb3g9XCIwIDAgNDQgNDRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxyZWN0IHg9XCI0My41XCIgeT1cIjQzLjVcIiB3aWR0aD1cIjQzXCIgaGVpZ2h0PVwiNDNcIiByeD1cIjMuNVwiIHRyYW5zZm9ybT1cInJvdGF0ZSgtMTgwIDQzLjUgNDMuNSlcIiBmaWxsPXtiYWNrZ3JvdW5kQ29sb3IgfHwgJ3doaXRlJ30gc3Ryb2tlPXtzdHJva2VDb2xvciB8fCAnbm9uZSd9IC8+XG4gICAgPHBhdGggZD1cIk0yNCAyOEwyNS40MSAyNi41OUwyMC44MyAyMkwyNS40MSAxNy40MUwyNCAxNkwxOCAyMkwyNCAyOFpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyMwNjUxN0InfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IEJvcmRlckFycm93UmlnaHQgPSAoe1xuICBmaWxsQ29sb3IsIGJhY2tncm91bmRDb2xvciwgc3Ryb2tlQ29sb3IsIGFsdCwgLi4ucHJvcHNcbn0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IHZpZXdCb3g9XCIwIDAgNDQgNDRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCI0M1wiIGhlaWdodD1cIjQzXCIgcng9XCIzLjVcIiBmaWxsPXtiYWNrZ3JvdW5kQ29sb3IgfHwgJ3doaXRlJ30gc3Ryb2tlPXtzdHJva2VDb2xvciB8fCAnbm9uZSd9IC8+XG4gICAgPHBhdGggZD1cIk0yMCAxNkwxOC41OSAxNy40MUwyMy4xNyAyMkwxOC41OSAyNi41OUwyMCAyOEwyNiAyMkwyMCAxNlpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyMwNjUxN0InfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IENoZXZyb24gPSAoeyBmaWxsQ29sb3IsIGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiID5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMTMuMjMgMTZsNy4wNy03LjA3YTEgMSAwIDAwMC0xLjQxbC0uNy0uNzFhMSAxIDAgMDAtMS40MiAwTDkuNyAxNS4yOWExIDEgMCAwMDAgMS40Mmw4LjQ4IDguNDhhMSAxIDAgMDAxLjQyIDBsLjctLjdhMSAxIDAgMDAwLTEuNDJ6XCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjOTk5J30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uVXAgPSAoeyBmaWxsQ29sb3IsIGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAxXCIgZD1cIk0zMiAzMlYwSDB2MzJ6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMTYgMTMuMjNsNy4wNyA3LjA3YTEgMSAwIDAwMS40MiAwbC43LS43YTEgMSAwIDAwMC0xLjQyTDE2LjcxIDkuN2ExIDEgMCAwMC0xLjQyIDBsLTguNDggOC40OGExIDEgMCAwMDAgMS40MmwuNy43YTEgMSAwIDAwMS40MiAwelwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Yid9IC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQ2hldnJvbkRvd24gPSAoeyBmaWxsQ29sb3IsIGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIHthbHQgJiYgPHRpdGxlPnthbHR9PC90aXRsZT59XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAxXCIgZD1cIk0wIDMyaDMyVjBIMHpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xNiAxOC43N0w4LjkzIDExLjdhMSAxIDAgMDAtMS40MSAwbC0uNzEuN2ExIDEgMCAwMDAgMS40Mmw4LjQ4IDguNDhhMSAxIDAgMDAxLjQyIDBsOC40OC04LjQ4YTEgMSAwIDAwMC0xLjQxbC0uNy0uNzFhMSAxIDAgMDAtMS40MiAwelwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Yid9IC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQ2hldnJvblJpZ2h0ID0gKHsgZmlsbENvbG9yLCBhbHQsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IGRhdGEtbmFtZT1cIkdyb3VwIDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMTguNzcgMTZsLTcuMDcgNy4wN2ExIDEgMCAwMDAgMS40MmwuNy43YTEgMSAwIDAwMS40MiAwbDguNDgtOC40OGExIDEgMCAwMDAtMS40MmwtOC40OC04LjQ4YTEgMSAwIDAwLTEuNDIgMGwtLjcuN2ExIDEgMCAwMDAgMS40MnpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyMwNjUxN2InfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IExvY2sgPSAoeyBmaWxsQ29sb3IsIGFsdCwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gdmlld0JveD1cIjAgMCAxOSAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICB7YWx0ICYmIDx0aXRsZT57YWx0fTwvdGl0bGU+fVxuICAgIDxwYXRoIGQ9XCJNMTguMzksMTZIMy42MUEuNjEuNjEsMCwwLDEsMywxNS4zOVYuNjFBLjYxLjYxLDAsMCwxLDMuNjEsMEgxOC4zOUEuNjEuNjEsMCwwLDEsMTksLjYxVjE1LjM5YS42MS42MSwwLDAsMS0uNjEuNjFcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyNkYmI0MDAnfSAvPlxuICAgIDxwYXRoIGQ9XCJNMTQuNzIsNy41MUg3LjI4YS44My44MywwLDAsMC0uODMuODN2NC45MmExLjQzLDEuNDMsMCwwLDAsMS40MywxLjQzaDYuMjRhMS40MywxLjQzLDAsMCwwLDEuNDMtMS40M1Y4LjM0YS44My44MywwLDAsMC0uODMtLjgzWm0tMi42Nyw1LjMzYS4yNC4yNCwwLDAsMS0uMTguMjlIMTAuMThhLjI0LjI0LDAsMCwxLS4yNC0uMjQuMTMuMTMsMCwwLDEsMC0uMDZsLjQxLTEuNzNhMS4xMywxLjEzLDAsMSwxLDEuNTctLjI5LDEuMzMsMS4zMywwLDAsMS0uMjkuMjlaXCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGQ9XCJNMTQuNzEsNi45NGgtMS42VjUuMDhhMi4xNiwyLjE2LDAsMCwwLTQuMzIsMFY2Ljk0SDcuMTlWNS4wOGEzLjc2LDMuNzYsMCwxLDEsNy41MiwwWlwiIGZpbGw9XCIjZmZmXCIgLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBTZWFyY2ggPSAoeyBhbHQsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IHZpZXdCb3g9XCIwIDAgMzIgMzJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAge2FsdCAmJiA8dGl0bGU+e2FsdH08L3RpdGxlPn1cbiAgICA8ZyBkYXRhLW5hbWU9XCJHcm91cCAzXCI+XG4gICAgICA8cGF0aCBkYXRhLW5hbWU9XCJDbGlwIDJcIiBkPVwiTTAgMGgzMnYzMkgwelwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgIDxnIGRhdGEtbmFtZT1cIkdyb3VwIDNcIj5cbiAgICAgICAgPHBhdGggY2xhc3NOYW1lPVwic2VhcmNoLWljb24tY29sb3JcIiBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTMwIDMyYTEuOTkgMS45OSAwIDAxLTEuNDEtLjU5bC03LjkzLTcuOTJBMTIuOTkgMTIuOTkgMCAwMTAgMTNhMTMgMTMgMCAwMTIyLjItOS4yIDEyLjk3IDEyLjk3IDAgMDExLjI5IDE2Ljg2bDcuOTIgNy45M0EyIDIgMCAwMTMwIDMyek0xMyA0YTkgOSAwIDEwOSA5IDkuMDEgOS4wMSAwIDAwLTktOXpcIiBmaWxsPVwiIzk5OVwiIC8+XG4gICAgICA8L2c+XG4gICAgPC9nPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IFRpbWVzID0gKHsgYWx0LCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSB2aWV3Qm94PVwiMCAwIDM1MiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAge2FsdCAmJiA8dGl0bGU+e2FsdH08L3RpdGxlPn1cbiAgICA8cGF0aCBkPVwiTTI0Mi43MiAyNTZsMTAwLjA3LTEwMC4wN2EzMS40NiAzMS40NiAwIDAwMC00NC40OGwtMjIuMjQtMjIuMjRhMzEuNDYgMzEuNDYgMCAwMC00NC40OCAwTDE3NiAxODkuMjggNzUuOTMgODkuMjFhMzEuNDYgMzEuNDYgMCAwMC00NC40OCAwTDkuMjEgMTExLjQ1YTMxLjQ2IDMxLjQ2IDAgMDAwIDQ0LjQ4TDEwOS4yOCAyNTYgOS4yMSAzNTYuMDdhMzEuNDYgMzEuNDYgMCAwMDAgNDQuNDhsMjIuMjQgMjIuMjRhMzEuNDYgMzEuNDYgMCAwMDQ0LjQ4IDBMMTc2IDMyMi43MmwxMDAuMDcgMTAwLjA3YTMxLjQ2IDMxLjQ2IDAgMDA0NC40OCAwbDIyLjI0LTIyLjI0YTMxLjQ2IDMxLjQ2IDAgMDAwLTQ0LjQ4TDI0Mi43MiAyNTZ6XCIgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgY29uc3QgU0lURV9LRVlTID0gW1xuICAnY2hhaW4nLFxuICAnY2hhaW5fdGV4dCcsXG4gICdoYXRlbmEnLFxuICAnaGF0ZW5hX3NxdWFyZScsXG4gICdoYXRlbmFfdGV4dCcsXG4gICdmYWNlYm9vaycsXG4gICdmYWNlYm9va190ZXh0JyxcbiAgJ2dxJyxcbiAgJ2lyb25uYScsXG4gICdqYXBhbi1mb3J3YXJkJyxcbiAgJ2xpbmUnLFxuICAnbGluZV90ZXh0JyxcbiAgJ3NhbmtlaScsXG4gICdtZW1iZXInLFxuICAndHdpdHRlcicsXG4gICd0d2l0dGVyX2JsdWUnLFxuICAndHdpdHRlcl90ZXh0JyxcbiAgJ3R3aXR0ZXJfdGV4dF93aGl0ZScsXG4gICd4JyxcbiAgJ3hfYmxhY2snLFxuICAneF90ZXh0JyxcbiAgJ3hfdGV4dF93aGl0ZScsXG4gICd0aHJlYWRzJyxcbiAgJ2JsdWVza3knLFxuICAnbGlua2VkaW4nLFxuICAnbm90ZScsXG4gICd5b3V0dWJlJyxcbiAgJ3dpcmVkJyxcbiAgJ3NhbmtlaXN5bycsXG4gICduYW5pd2EnLFxuICAnc2Vpcm9uJyxcbiAgJ2luc3RhZ3JhbScsXG4gICdpbWdfYmFyJyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1sZWZ0JyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1sZWZ0LWJpeicsXG4gICdpbWdfYm9yZGVyYXJyb3ctbGVmdC1kZWFjdGl2ZScsXG4gICdpbWdfYm9yZGVyYXJyb3ctcmlnaHQnLFxuICAnaW1nX2JvcmRlcmFycm93LXJpZ2h0LWJpeicsXG4gICdpbWdfYm9yZGVyYXJyb3ctcmlnaHQtZGVhY3RpdmUnLFxuICAnaW1nX2NoZXZyb24nLFxuICAnaW1nX2NoZXZyb24tZGVhY3RpdmUnLFxuICAnaW1nX2NoZXZyb24tdXAnLFxuICAnaW1nX2NoZXZyb24tZG93bicsXG4gICdpbWdfY2hldnJvbi1yaWdodCcsXG4gICdpbWdfY2hldnJvbi1yaWdodC1kZWFjdGl2ZScsXG4gICdpbWdfbG9jay1nb2xkJyxcbiAgJ2ltZ19sb2NrLXNpbHZlcicsXG4gICdpbWdfc2VhcmNoJyxcbiAgJ2ltZ190aW1lcycsXG4gICdtb250aGx5X3NlaXJvbicsXG5dO1xuXG5jb25zdCBpY29ucyA9IHtcbiAgYmFyczoge1xuICAgIENvbXBvbmVudDogQmFycyxcbiAgfSxcbiAgJ2JvcmRlci1hcnJvdy1sZWZ0Jzoge1xuICAgIENvbXBvbmVudDogQm9yZGVyQXJyb3dMZWZ0LFxuICB9LFxuICAnYm9yZGVyLWFycm93LXJpZ2h0Jzoge1xuICAgIENvbXBvbmVudDogQm9yZGVyQXJyb3dSaWdodCxcbiAgfSxcbiAgY2hldnJvbjoge1xuICAgIENvbXBvbmVudDogQ2hldnJvbixcbiAgfSxcbiAgJ2NoZXZyb24tdXAnOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uVXAsXG4gIH0sXG4gICdjaGV2cm9uLWRvd24nOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uRG93bixcbiAgfSxcbiAgJ2NoZXZyb24tcmlnaHQnOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uUmlnaHQsXG4gIH0sXG4gIGxvY2s6IHtcbiAgICBDb21wb25lbnQ6IExvY2ssXG4gIH0sXG4gIHNlYXJjaDoge1xuICAgIENvbXBvbmVudDogU2VhcmNoLFxuICB9LFxuICB0aW1lczoge1xuICAgIENvbXBvbmVudDogVGltZXMsXG4gIH0sXG4gIC4uLlNJVEVfS0VZUy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoXG4gICAgeyAuLi5hY2MsIFtjdXJdOiB7IENvbXBvbmVudDogSWNvbkltZyhjdXIpIH0gfVxuICApLCB7fSksXG59O1xuXG5jb25zdCBJY29uID0gKHsgbmFtZSwgLi4ucHJvcHMgfSkgPT4ge1xuICBpZiAodHlwZW9mIGljb25zW25hbWVdICE9PSAndW5kZWZpbmVkJykge1xuICAgIGNvbnN0IHsgQ29tcG9uZW50IH0gPSBpY29uc1tuYW1lXTtcbiAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucHJvcHN9IC8+O1xuICB9XG5cbiAgcmV0dXJuIG5hbWU7XG59O1xuXG5JY29uLnByb3BUeXBlcyA9IHtcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufTtcblxuQmFycy5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQm9yZGVyQXJyb3dMZWZ0LnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBiYWNrZ3JvdW5kQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0cm9rZUNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Cb3JkZXJBcnJvd1JpZ2h0LnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBiYWNrZ3JvdW5kQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0cm9rZUNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uLnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uVXAucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkNoZXZyb25Eb3duLnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbHQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uUmlnaHQucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkxvY2sucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblNlYXJjaC5wcm9wVHlwZXMgPSB7XG4gIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblRpbWVzLnByb3BUeXBlcyA9IHtcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSWNvbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUFrRCxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankei-arc-shared-components/element_icon",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "repository": {
@@ -8,7 +8,6 @@
8
8
  "url": "https://github.com/wapopartners/sankei-shimbun-shared-components/packages/element_icon"
9
9
  },
10
10
  "peerDependencies": {
11
- "enzyme": "^3.7.0",
12
11
  "prop-types": ">=15.6.2",
13
12
  "react": ">=16"
14
13
  },
package/src/index.js CHANGED
@@ -151,7 +151,6 @@ export const SITE_KEYS = [
151
151
  'monthly_seiron',
152
152
  ];
153
153
 
154
-
155
154
  const icons = {
156
155
  bars: {
157
156
  Component: Bars,
package/src/index.test.js CHANGED
@@ -1,84 +1,73 @@
1
-
2
1
  import React from 'react';
3
- import { mount } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
4
3
  import Icon, { SITE_KEYS } from './index';
5
4
 
6
5
  describe('<Icon />', () => {
7
6
  it('should render bars', () => {
8
- const component = mount(<Icon name="bars" height="34px" width="34px" alt="bars" />);
9
- expect(component).toBeDefined();
10
- const titleElement = component.find('title');
11
- expect(titleElement.exists()).toBe(true);
12
- expect(titleElement.text()).toBe('bars');
7
+ const { container } = render(<Icon name="bars" height="34px" width="34px" alt="bars" />);
8
+ const titleElement = container.querySelector('title');
9
+ expect(titleElement).toBeInTheDocument();
10
+ expect(titleElement).toHaveTextContent('bars');
13
11
  });
14
12
  it('should render border-arrow-left', () => {
15
- const component = mount(<Icon name="border-arrow-left" height="34px" width="34px" alt="border-arrow-left" />);
16
- expect(component).toBeDefined();
17
- const titleElement = component.find('title');
18
- expect(titleElement.exists()).toBe(true);
19
- expect(titleElement.text()).toBe('border-arrow-left');
13
+ const { container } = render(<Icon name="border-arrow-left" height="34px" width="34px" alt="border-arrow-left" />);
14
+ const titleElement = container.querySelector('title');
15
+ expect(titleElement).toBeInTheDocument();
16
+ expect(titleElement).toHaveTextContent('border-arrow-left');
20
17
  });
21
18
  it('should render border-arrow-right', () => {
22
- const component = mount(<Icon name="border-arrow-right" height="34px" width="34px" alt="border-arrow-right" />);
23
- expect(component).toBeDefined();
24
- const titleElement = component.find('title');
25
- expect(titleElement.exists()).toBe(true);
26
- expect(titleElement.text()).toBe('border-arrow-right');
19
+ const { container } = render(<Icon name="border-arrow-right" height="34px" width="34px" alt="border-arrow-right" />);
20
+ const titleElement = container.querySelector('title');
21
+ expect(titleElement).toBeInTheDocument();
22
+ expect(titleElement).toHaveTextContent('border-arrow-right');
27
23
  });
28
24
  it('should render chevron', () => {
29
- const component = mount(<Icon name="chevron" height="34px" width="34px" alt="chevron" />);
30
- expect(component).toBeDefined();
31
- const titleElement = component.find('title');
32
- expect(titleElement.exists()).toBe(true);
33
- expect(titleElement.text()).toBe('chevron');
25
+ const { container } = render(<Icon name="chevron" height="34px" width="34px" alt="chevron" />);
26
+ const titleElement = container.querySelector('title');
27
+ expect(titleElement).toBeInTheDocument();
28
+ expect(titleElement).toHaveTextContent('chevron');
34
29
  });
35
30
  it('should render chevron-up', () => {
36
- const component = mount(<Icon name="chevron-up" height="34px" width="34px" alt="chevron-up" />);
37
- expect(component).toBeDefined();
38
- const titleElement = component.find('title');
39
- expect(titleElement.exists()).toBe(true);
40
- expect(titleElement.text()).toBe('chevron-up');
31
+ const { container } = render(<Icon name="chevron-up" height="34px" width="34px" alt="chevron-up" />);
32
+ const titleElement = container.querySelector('title');
33
+ expect(titleElement).toBeInTheDocument();
34
+ expect(titleElement).toHaveTextContent('chevron-up');
41
35
  });
42
36
  it('should render chevron-down', () => {
43
- const component = mount(<Icon name="chevron-down" height="34px" width="34px" alt="chevron-down" />);
44
- expect(component).toBeDefined();
45
- const titleElement = component.find('title');
46
- expect(titleElement.exists()).toBe(true);
47
- expect(titleElement.text()).toBe('chevron-down');
37
+ const { container } = render(<Icon name="chevron-down" height="34px" width="34px" alt="chevron-down" />);
38
+ const titleElement = container.querySelector('title');
39
+ expect(titleElement).toBeInTheDocument();
40
+ expect(titleElement).toHaveTextContent('chevron-down');
48
41
  });
49
42
  it('should render chevron-right', () => {
50
- const component = mount(<Icon name="chevron-right" height="34px" width="34px" alt="chevron-right" />);
51
- expect(component).toBeDefined();
52
- const titleElement = component.find('title');
53
- expect(titleElement.exists()).toBe(true);
54
- expect(titleElement.text()).toBe('chevron-right');
43
+ const { container } = render(<Icon name="chevron-right" height="34px" width="34px" alt="chevron-right" />);
44
+ const titleElement = container.querySelector('title');
45
+ expect(titleElement).toBeInTheDocument();
46
+ expect(titleElement).toHaveTextContent('chevron-right');
55
47
  });
56
48
 
57
49
  it('should render lock', () => {
58
- const component = mount(<Icon name="lock" height="34px" width="34px" alt="lock" />);
59
- expect(component).toBeDefined();
60
- const titleElement = component.find('title');
61
- expect(titleElement.exists()).toBe(true);
62
- expect(titleElement.text()).toBe('lock');
50
+ const { container } = render(<Icon name="lock" height="34px" width="34px" alt="lock" />);
51
+ const titleElement = container.querySelector('title');
52
+ expect(titleElement).toBeInTheDocument();
53
+ expect(titleElement).toHaveTextContent('lock');
63
54
  });
64
55
 
65
56
  it('should render search', () => {
66
- const component = mount(<Icon name="search" height="34px" width="34px" alt="search" />);
67
- expect(component).toBeDefined();
68
- const titleElement = component.find('title');
69
- expect(titleElement.exists()).toBe(true);
70
- expect(titleElement.text()).toBe('search');
57
+ const { container } = render(<Icon name="search" height="34px" width="34px" alt="search" />);
58
+ const titleElement = container.querySelector('title');
59
+ expect(titleElement).toBeInTheDocument();
60
+ expect(titleElement).toHaveTextContent('search');
71
61
  });
72
62
  it('should render times', () => {
73
- const component = mount(<Icon name="times" height="34px" width="34px" alt="times" />);
74
- expect(component).toBeDefined();
75
- const titleElement = component.find('title');
76
- expect(titleElement.exists()).toBe(true);
77
- expect(titleElement.text()).toBe('times');
63
+ const { container } = render(<Icon name="times" height="34px" width="34px" alt="times" />);
64
+ const titleElement = container.querySelector('title');
65
+ expect(titleElement).toBeInTheDocument();
66
+ expect(titleElement).toHaveTextContent('times');
78
67
  });
79
68
  it('should not render title element if alt is not exist', () => {
80
- const component = mount(<Icon name="bars" height="34px" width="34px" />);
81
- expect(component.find('title').exists()).toBe(false);
69
+ const { container } = render(<Icon name="bars" height="34px" width="34px" />);
70
+ expect(container.querySelector('title')).not.toBeInTheDocument();
82
71
  });
83
72
 
84
73
  it('has valid SITE_KEYS', () => {
@@ -146,18 +135,17 @@ describe('<Icon />', () => {
146
135
  height: '34px',
147
136
  className: 'some-class',
148
137
  };
149
- const component = mount(<Icon {...props} />);
150
- expect(component).toBeDefined();
151
- const img = component.find('img');
152
- expect(img.prop('src')).toMatch(new RegExp(`/resources/icons/${key}.svg`));
153
- expect(img.prop('width')).toEqual(props.width);
154
- expect(img.prop('height')).toEqual(props.height);
155
- expect(img.prop('className')).toMatch(new RegExp(props.className));
138
+ render(<Icon {...props} />);
139
+ const img = screen.getByRole('img');
140
+ expect(img).toHaveAttribute('src', expect.stringMatching(new RegExp(`/resources/icons/${key}.svg`)));
141
+ expect(img).toHaveAttribute('width', props.width);
142
+ expect(img).toHaveAttribute('height', props.height);
143
+ expect(img).toHaveClass(props.className);
156
144
  });
157
145
  });
158
146
 
159
147
  it('there is no icon', () => {
160
- const component = mount(<Icon name="noicon" height="34px" width="34px" />);
161
- expect(component.text()).toEqual('noicon');
148
+ render(<Icon name="noicon" height="34px" width="34px" />);
149
+ expect(screen.getByText('noicon')).toBeInTheDocument();
162
150
  });
163
151
  });