@sankei-arc-shared-components/element_icon 0.1.9 → 0.3.1

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
@@ -5,7 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports["default"] = exports.SITE_KEYS = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
11
 
10
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
13
 
@@ -17,142 +19,25 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
19
 
18
20
  var _fusionContext = require("fusion:context");
19
21
 
20
- var GQ = function GQ(props) {
21
- var _useFusionContext = (0, _fusionContext.useFusionContext)(),
22
- contextPath = _useFusionContext.contextPath,
23
- deployment = _useFusionContext.deployment;
24
-
25
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
26
- src: deployment("".concat(contextPath, "/resources/icons/gq.svg"))
27
- }));
28
- };
29
-
30
- var Ironna = function Ironna(props) {
31
- var _useFusionContext2 = (0, _fusionContext.useFusionContext)(),
32
- contextPath = _useFusionContext2.contextPath,
33
- deployment = _useFusionContext2.deployment;
34
-
35
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
36
- src: deployment("".concat(contextPath, "/resources/icons/ironna.svg"))
37
- }));
38
- };
39
-
40
- var JapanForward = function JapanForward(props) {
41
- var _useFusionContext3 = (0, _fusionContext.useFusionContext)(),
42
- contextPath = _useFusionContext3.contextPath,
43
- deployment = _useFusionContext3.deployment;
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; }
44
23
 
45
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
46
- src: deployment("".concat(contextPath, "/resources/icons/japanforward.svg"))
47
- }));
48
- };
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; }
49
25
 
50
- var Sankei = function Sankei(props) {
51
- var _useFusionContext4 = (0, _fusionContext.useFusionContext)(),
52
- contextPath = _useFusionContext4.contextPath,
53
- deployment = _useFusionContext4.deployment;
26
+ var IconImg = function IconImg(name) {
27
+ return function (props) {
28
+ var _useFusionContext = (0, _fusionContext.useFusionContext)(),
29
+ contextPath = _useFusionContext.contextPath,
30
+ deployment = _useFusionContext.deployment;
54
31
 
55
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
56
- src: deployment("".concat(contextPath, "/resources/icons/sankei.svg"))
57
- }));
32
+ return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
33
+ src: deployment("".concat(contextPath, "/resources/icons/").concat(name, ".svg"))
34
+ }));
35
+ };
58
36
  };
59
37
 
60
- var Member = function Member(props) {
61
- var _useFusionContext5 = (0, _fusionContext.useFusionContext)(),
62
- contextPath = _useFusionContext5.contextPath,
63
- deployment = _useFusionContext5.deployment;
64
-
65
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
66
- src: deployment("".concat(contextPath, "/resources/icons/member.svg"))
67
- }));
68
- };
69
-
70
- var Naniwa = function Naniwa(props) {
71
- var _useFusionContext6 = (0, _fusionContext.useFusionContext)(),
72
- contextPath = _useFusionContext6.contextPath,
73
- deployment = _useFusionContext6.deployment;
74
-
75
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
76
- src: deployment("".concat(contextPath, "/resources/icons/naniwa.svg"))
77
- }));
78
- };
79
-
80
- var Sankeisyo = function Sankeisyo(props) {
81
- var _useFusionContext7 = (0, _fusionContext.useFusionContext)(),
82
- contextPath = _useFusionContext7.contextPath,
83
- deployment = _useFusionContext7.deployment;
84
-
85
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
86
- src: deployment("".concat(contextPath, "/resources/icons/sankeisyo.svg"))
87
- }));
88
- };
89
-
90
- var Seiron = function Seiron(props) {
91
- var _useFusionContext8 = (0, _fusionContext.useFusionContext)(),
92
- contextPath = _useFusionContext8.contextPath,
93
- deployment = _useFusionContext8.deployment;
94
-
95
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
96
- src: deployment("".concat(contextPath, "/resources/icons/seiron.svg"))
97
- }));
98
- };
99
-
100
- var Wired = function Wired(props) {
101
- var _useFusionContext9 = (0, _fusionContext.useFusionContext)(),
102
- contextPath = _useFusionContext9.contextPath,
103
- deployment = _useFusionContext9.deployment;
104
-
105
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
106
- src: deployment("".concat(contextPath, "/resources/icons/wired.svg"))
107
- }));
108
- };
109
-
110
- var Facebook = function Facebook(_ref) {
38
+ var Bars = function Bars(_ref) {
111
39
  var fillColor = _ref.fillColor,
112
40
  props = (0, _objectWithoutProperties2["default"])(_ref, ["fillColor"]);
113
-
114
- var _useFusionContext10 = (0, _fusionContext.useFusionContext)(),
115
- contextPath = _useFusionContext10.contextPath,
116
- deployment = _useFusionContext10.deployment;
117
-
118
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
119
- src: deployment("".concat(contextPath, "/resources/icons/facebook.svg"))
120
- }));
121
- };
122
-
123
- var Line = function Line(props) {
124
- var _useFusionContext11 = (0, _fusionContext.useFusionContext)(),
125
- contextPath = _useFusionContext11.contextPath,
126
- deployment = _useFusionContext11.deployment;
127
-
128
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
129
- src: deployment("".concat(contextPath, "/resources/icons/line.svg"))
130
- }));
131
- };
132
-
133
- var Twitter = function Twitter(props) {
134
- var _useFusionContext12 = (0, _fusionContext.useFusionContext)(),
135
- contextPath = _useFusionContext12.contextPath,
136
- deployment = _useFusionContext12.deployment;
137
-
138
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
139
- src: deployment("".concat(contextPath, "/resources/icons/twitter.svg"))
140
- }));
141
- };
142
-
143
- var Youtube = function Youtube(props) {
144
- var _useFusionContext13 = (0, _fusionContext.useFusionContext)(),
145
- contextPath = _useFusionContext13.contextPath,
146
- deployment = _useFusionContext13.deployment;
147
-
148
- return /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, props, {
149
- src: deployment("".concat(contextPath, "/resources/icons/youtube.svg"))
150
- }));
151
- };
152
-
153
- var Bars = function Bars(_ref2) {
154
- var fillColor = _ref2.fillColor,
155
- props = (0, _objectWithoutProperties2["default"])(_ref2, ["fillColor"]);
156
41
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
157
42
  "data-name": "Group 16",
158
43
  xmlns: "http://www.w3.org/2000/svg",
@@ -171,9 +56,56 @@ var Bars = function Bars(_ref2) {
171
56
  })));
172
57
  };
173
58
 
174
- var Chevron = function Chevron(_ref3) {
59
+ var BorderArrowLeft = function BorderArrowLeft(_ref2) {
60
+ var fillColor = _ref2.fillColor,
61
+ backgroundColor = _ref2.backgroundColor,
62
+ strokeColor = _ref2.strokeColor,
63
+ props = (0, _objectWithoutProperties2["default"])(_ref2, ["fillColor", "backgroundColor", "strokeColor"]);
64
+ return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
65
+ viewBox: "0 0 44 44",
66
+ fill: "none",
67
+ xmlns: "http://www.w3.org/2000/svg"
68
+ }), /*#__PURE__*/_react["default"].createElement("rect", {
69
+ x: "43.5",
70
+ y: "43.5",
71
+ width: "43",
72
+ height: "43",
73
+ rx: "3.5",
74
+ transform: "rotate(-180 43.5 43.5)",
75
+ fill: backgroundColor || 'white',
76
+ stroke: strokeColor || 'none'
77
+ }), /*#__PURE__*/_react["default"].createElement("path", {
78
+ d: "M24 28L25.41 26.59L20.83 22L25.41 17.41L24 16L18 22L24 28Z",
79
+ fill: fillColor || '#06517B'
80
+ }));
81
+ };
82
+
83
+ var BorderArrowRight = function BorderArrowRight(_ref3) {
175
84
  var fillColor = _ref3.fillColor,
176
- props = (0, _objectWithoutProperties2["default"])(_ref3, ["fillColor"]);
85
+ backgroundColor = _ref3.backgroundColor,
86
+ strokeColor = _ref3.strokeColor,
87
+ props = (0, _objectWithoutProperties2["default"])(_ref3, ["fillColor", "backgroundColor", "strokeColor"]);
88
+ return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
89
+ viewBox: "0 0 44 44",
90
+ fill: "none",
91
+ xmlns: "http://www.w3.org/2000/svg"
92
+ }), /*#__PURE__*/_react["default"].createElement("rect", {
93
+ x: "0.5",
94
+ y: "0.5",
95
+ width: "43",
96
+ height: "43",
97
+ rx: "3.5",
98
+ fill: backgroundColor || 'white',
99
+ stroke: strokeColor || 'none'
100
+ }), /*#__PURE__*/_react["default"].createElement("path", {
101
+ d: "M20 16L18.59 17.41L23.17 22L18.59 26.59L20 28L26 22L20 16Z",
102
+ fill: fillColor || '#06517B'
103
+ }));
104
+ };
105
+
106
+ var Chevron = function Chevron(_ref4) {
107
+ var fillColor = _ref4.fillColor,
108
+ props = (0, _objectWithoutProperties2["default"])(_ref4, ["fillColor"]);
177
109
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
178
110
  "data-name": "Group 16",
179
111
  xmlns: "http://www.w3.org/2000/svg",
@@ -189,9 +121,9 @@ var Chevron = function Chevron(_ref3) {
189
121
  }));
190
122
  };
191
123
 
192
- var ChevronUp = function ChevronUp(_ref4) {
193
- var fillColor = _ref4.fillColor,
194
- props = (0, _objectWithoutProperties2["default"])(_ref4, ["fillColor"]);
124
+ var ChevronUp = function ChevronUp(_ref5) {
125
+ var fillColor = _ref5.fillColor,
126
+ props = (0, _objectWithoutProperties2["default"])(_ref5, ["fillColor"]);
195
127
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
196
128
  "data-name": "Group 16",
197
129
  xmlns: "http://www.w3.org/2000/svg",
@@ -207,9 +139,9 @@ var ChevronUp = function ChevronUp(_ref4) {
207
139
  }));
208
140
  };
209
141
 
210
- var ChevronDown = function ChevronDown(_ref5) {
211
- var fillColor = _ref5.fillColor,
212
- props = (0, _objectWithoutProperties2["default"])(_ref5, ["fillColor"]);
142
+ var ChevronDown = function ChevronDown(_ref6) {
143
+ var fillColor = _ref6.fillColor,
144
+ props = (0, _objectWithoutProperties2["default"])(_ref6, ["fillColor"]);
213
145
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
214
146
  "data-name": "Group 16",
215
147
  xmlns: "http://www.w3.org/2000/svg",
@@ -225,9 +157,9 @@ var ChevronDown = function ChevronDown(_ref5) {
225
157
  }));
226
158
  };
227
159
 
228
- var ChevronRight = function ChevronRight(_ref6) {
229
- var fillColor = _ref6.fillColor,
230
- props = (0, _objectWithoutProperties2["default"])(_ref6, ["fillColor"]);
160
+ var ChevronRight = function ChevronRight(_ref7) {
161
+ var fillColor = _ref7.fillColor,
162
+ props = (0, _objectWithoutProperties2["default"])(_ref7, ["fillColor"]);
231
163
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
232
164
  "data-name": "Group 16",
233
165
  xmlns: "http://www.w3.org/2000/svg",
@@ -243,9 +175,9 @@ var ChevronRight = function ChevronRight(_ref6) {
243
175
  }));
244
176
  };
245
177
 
246
- var Lock = function Lock(_ref7) {
247
- var fillColor = _ref7.fillColor,
248
- props = (0, _objectWithoutProperties2["default"])(_ref7, ["fillColor"]);
178
+ var Lock = function Lock(_ref8) {
179
+ var fillColor = _ref8.fillColor,
180
+ props = (0, _objectWithoutProperties2["default"])(_ref8, ["fillColor"]);
249
181
  return /*#__PURE__*/_react["default"].createElement("svg", (0, _extends2["default"])({}, props, {
250
182
  viewBox: "0 0 19 16",
251
183
  xmlns: "http://www.w3.org/2000/svg"
@@ -289,10 +221,19 @@ var Times = function Times(props) {
289
221
  }));
290
222
  };
291
223
 
292
- var icons = {
224
+ var SITE_KEYS = ['facebook', 'gq', 'ironna', 'japan-forward', 'line', 'sankei', 'member', 'twitter', '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'];
225
+ exports.SITE_KEYS = SITE_KEYS;
226
+
227
+ var icons = _objectSpread({
293
228
  bars: {
294
229
  Component: Bars
295
230
  },
231
+ 'border-arrow-left': {
232
+ Component: BorderArrowLeft
233
+ },
234
+ 'border-arrow-right': {
235
+ Component: BorderArrowRight
236
+ },
296
237
  chevron: {
297
238
  Component: Chevron
298
239
  },
@@ -305,61 +246,26 @@ var icons = {
305
246
  'chevron-right': {
306
247
  Component: ChevronRight
307
248
  },
308
- facebook: {
309
- Component: Facebook
310
- },
311
- gq: {
312
- Component: GQ
313
- },
314
- ironna: {
315
- Component: Ironna
316
- },
317
- 'japan-forward': {
318
- Component: JapanForward
319
- },
320
- line: {
321
- Component: Line
322
- },
323
249
  lock: {
324
250
  Component: Lock
325
251
  },
326
- sankei: {
327
- Component: Sankei
328
- },
329
- member: {
330
- Component: Member
331
- },
332
252
  search: {
333
253
  Component: Search
334
254
  },
335
255
  times: {
336
256
  Component: Times
337
- },
338
- twitter: {
339
- Component: Twitter
340
- },
341
- youtube: {
342
- Component: Youtube
343
- },
344
- wired: {
345
- Component: Wired
346
- },
347
- sankeisyo: {
348
- Component: Sankeisyo
349
- },
350
- naniwa: {
351
- Component: Naniwa
352
- },
353
- seiron: {
354
- Component: Seiron
355
257
  }
356
- };
258
+ }, SITE_KEYS.reduce(function (acc, cur) {
259
+ return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, cur, {
260
+ Component: IconImg(cur)
261
+ }));
262
+ }, {}));
357
263
 
358
- var Icon = function Icon(_ref8) {
359
- var name = _ref8.name,
360
- props = (0, _objectWithoutProperties2["default"])(_ref8, ["name"]);
264
+ var Icon = function Icon(_ref9) {
265
+ var name = _ref9.name,
266
+ props = (0, _objectWithoutProperties2["default"])(_ref9, ["name"]);
361
267
 
362
- if (icons[name]) {
268
+ if (typeof icons[name] !== 'undefined') {
363
269
  var Component = icons[name].Component;
364
270
  return /*#__PURE__*/_react["default"].createElement(Component, props);
365
271
  }
@@ -373,8 +279,15 @@ Icon.propTypes = {
373
279
  Bars.propTypes = {
374
280
  fillColor: _propTypes["default"].string
375
281
  };
376
- Facebook.propTypes = {
377
- fillColor: _propTypes["default"].string
282
+ BorderArrowLeft.propTypes = {
283
+ fillColor: _propTypes["default"].string,
284
+ backgroundColor: _propTypes["default"].string,
285
+ strokeColor: _propTypes["default"].string
286
+ };
287
+ BorderArrowRight.propTypes = {
288
+ fillColor: _propTypes["default"].string,
289
+ backgroundColor: _propTypes["default"].string,
290
+ strokeColor: _propTypes["default"].string
378
291
  };
379
292
  Chevron.propTypes = {
380
293
  fillColor: _propTypes["default"].string
@@ -391,18 +304,6 @@ ChevronRight.propTypes = {
391
304
  Lock.propTypes = {
392
305
  fillColor: _propTypes["default"].string
393
306
  };
394
- Ironna.propTypes = {
395
- className: _propTypes["default"].string
396
- };
397
- Sankeisyo.propTypes = {
398
- fillColor: _propTypes["default"].string
399
- };
400
- Naniwa.propTypes = {
401
- fillColor: _propTypes["default"].string
402
- };
403
- Seiron.propTypes = {
404
- fillColor: _propTypes["default"].string
405
- };
406
307
  var _default = Icon;
407
308
  exports["default"] = _default;
408
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVua25vd24iXSwibmFtZXMiOlsiR1EiLCJwcm9wcyIsImNvbnRleHRQYXRoIiwiZGVwbG95bWVudCIsIklyb25uYSIsIkphcGFuRm9yd2FyZCIsIlNhbmtlaSIsIk1lbWJlciIsIk5hbml3YSIsIlNhbmtlaXN5byIsIlNlaXJvbiIsIldpcmVkIiwiRmFjZWJvb2siLCJmaWxsQ29sb3IiLCJMaW5lIiwiVHdpdHRlciIsIllvdXR1YmUiLCJCYXJzIiwiQ2hldnJvbiIsIkNoZXZyb25VcCIsIkNoZXZyb25Eb3duIiwiQ2hldnJvblJpZ2h0IiwiTG9jayIsIlNlYXJjaCIsIlRpbWVzIiwiaWNvbnMiLCJiYXJzIiwiQ29tcG9uZW50IiwiY2hldnJvbiIsImZhY2Vib29rIiwiZ3EiLCJpcm9ubmEiLCJsaW5lIiwibG9jayIsInNhbmtlaSIsIm1lbWJlciIsInNlYXJjaCIsInRpbWVzIiwidHdpdHRlciIsInlvdXR1YmUiLCJ3aXJlZCIsInNhbmtlaXN5byIsIm5hbml3YSIsInNlaXJvbiIsIkljb24iLCJuYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLEVBQUUsR0FBRyxTQUFMQSxFQUFLLENBQUNDLEtBQUQsRUFBVztBQUFBLDBCQUNnQixzQ0FEaEI7QUFBQSxNQUNaQyxXQURZLHFCQUNaQSxXQURZO0FBQUEsTUFDQ0MsVUFERCxxQkFDQ0EsVUFERDs7QUFFcEIsc0JBQU8scUVBQVVGLEtBQVY7QUFBa0IsSUFBQSxHQUFHLEVBQUVFLFVBQVUsV0FBSUQsV0FBSjtBQUFqQyxLQUFQO0FBQ0QsQ0FIRDs7QUFLQSxJQUFNRSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDSCxLQUFELEVBQVc7QUFBQSwyQkFDWSxzQ0FEWjtBQUFBLE1BQ2hCQyxXQURnQixzQkFDaEJBLFdBRGdCO0FBQUEsTUFDSEMsVUFE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QUFJLENBQUN3QixTQUFMLEdBQWlCO0FBQ2ZqQyxFQUFBQSxTQUFTLEVBQUVrQyxzQkFBVUM7QUFETixDQUFqQjtBQUlBNUMsTUFBTSxDQUFDMEMsU0FBUCxHQUFtQjtBQUNqQkksRUFBQUEsU0FBUyxFQUFFSCxzQkFBVUM7QUFESixDQUFuQjtBQUlBdkMsU0FBUyxDQUFDcUMsU0FBVixHQUFzQjtBQUNwQmpDLEVBQUFBLFNBQVMsRUFBRWtDLHNCQUFVQztBQURELENBQXRCO0FBSUF4QyxNQUFNLENBQUNzQyxTQUFQLEdBQW1CO0FBQ2pCakMsRUFBQUEsU0FBUyxFQUFFa0Msc0JBQVVDO0FBREosQ0FBbkI7QUFJQXRDLE1BQU0sQ0FBQ29DLFNBQVAsR0FBbUI7QUFDakJqQyxFQUFBQSxTQUFTLEVBQUVrQyxzQkFBVUM7QUFESixDQUFuQjtlQUllSixJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB1c2VGdXNpb25Db250ZXh0IH0gZnJvbSAnZnVzaW9uOmNvbnRleHQnO1xuXG5jb25zdCBHUSA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHRQYXRoLCBkZXBsb3ltZW50IH0gPSB1c2VGdXNpb25Db250ZXh0KCk7XG4gIHJldHVybiA8aW1nIHsgLi4ucHJvcHMgfSBzcmM9e2RlcGxveW1lbnQoYCR7Y29udGV4dFBhdGh9L3Jlc291cmNlcy9pY29ucy9ncS5zdmdgKX0gLz47XG59O1xuXG5jb25zdCBJcm9ubmEgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0UGF0aCwgZGVwbG95bWVudCB9ID0gdXNlRnVzaW9uQ29udGV4dCgpO1xuICByZXR1cm4gPGltZyB7IC4uLnByb3BzIH0gc3JjPXtkZXBsb3ltZW50KGAke2NvbnRleHRQYXRofS9yZXNvdXJjZXMvaWNvbnMvaXJvbm5hLnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IEphcGFuRm9yd2FyZCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHRQYXRoLCBkZXBsb3ltZW50IH0gPSB1c2VGdXNpb25Db250ZXh0KCk7XG4gIHJldHVybiA8aW1nIHsgLi4ucHJvcHMgfSBzcmM9e2RlcGxveW1lbnQoYCR7Y29udGV4dFBhdGh9L3Jlc291cmNlcy9pY29ucy9qYXBhbmZvcndhcmQuc3ZnYCl9IC8+O1xufTtcblxuY29uc3QgU2Fua2VpID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dFBhdGgsIGRlcGxveW1lbnQgfSA9IHVzZUZ1c2lvbkNvbnRleHQoKTtcbiAgcmV0dXJuIDxpbWcgeyAuLi5wcm9wcyB9IHNyYz17ZGVwbG95bWVudChgJHtjb250ZXh0UGF0aH0vcmVzb3VyY2VzL2ljb25zL3NhbmtlaS5zdmdgKX0gLz47XG59O1xuXG5jb25zdCBNZW1iZXIgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0UGF0aCwgZGVwbG95bWVudCB9ID0gdXNlRnVzaW9uQ29udGV4dCgpO1xuICByZXR1cm4gPGltZyB7IC4uLnByb3BzIH0gc3JjPXtkZXBsb3ltZW50KGAke2NvbnRleHRQYXRofS9yZXNvdXJjZXMvaWNvbnMvbWVtYmVyLnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IE5hbml3YSA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHRQYXRoLCBkZXBsb3ltZW50IH0gPSB1c2VGdXNpb25Db250ZXh0KCk7XG4gIHJldHVybiA8aW1nIHsgLi4ucHJvcHMgfSBzcmM9e2RlcGxveW1lbnQoYCR7Y29udGV4dFBhdGh9L3Jlc291cmNlcy9pY29ucy9uYW5pd2Euc3ZnYCl9IC8+O1xufTtcblxuY29uc3QgU2Fua2Vpc3lvID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dFBhdGgsIGRlcGxveW1lbnQgfSA9IHVzZUZ1c2lvbkNvbnRleHQoKTtcbiAgcmV0dXJuIDxpbWcgeyAuLi5wcm9wcyB9IHNyYz17ZGVwbG95bWVudChgJHtjb250ZXh0UGF0aH0vcmVzb3VyY2VzL2ljb25zL3NhbmtlaXN5by5zdmdgKX0gLz47XG59O1xuXG5jb25zdCBTZWlyb24gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0UGF0aCwgZGVwbG95bWVudCB9ID0gdXNlRnVzaW9uQ29udGV4dCgpO1xuICByZXR1cm4gPGltZyB7IC4uLnByb3BzIH0gc3JjPXtkZXBsb3ltZW50KGAke2NvbnRleHRQYXRofS9yZXNvdXJjZXMvaWNvbnMvc2Vpcm9uLnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IFdpcmVkID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dFBhdGgsIGRlcGxveW1lbnQgfSA9IHVzZUZ1c2lvbkNvbnRleHQoKTtcbiAgcmV0dXJuIDxpbWcgeyAuLi5wcm9wcyB9IHNyYz17ZGVwbG95bWVudChgJHtjb250ZXh0UGF0aH0vcmVzb3VyY2VzL2ljb25zL3dpcmVkLnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IEZhY2Vib29rID0gKHsgZmlsbENvbG9yLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dFBhdGgsIGRlcGxveW1lbnQgfSA9IHVzZUZ1c2lvbkNvbnRleHQoKTtcbiAgcmV0dXJuIDxpbWcgeyAuLi5wcm9wcyB9IHNyYz17ZGVwbG95bWVudChgJHtjb250ZXh0UGF0aH0vcmVzb3VyY2VzL2ljb25zL2ZhY2Vib29rLnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IExpbmUgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0UGF0aCwgZGVwbG95bWVudCB9ID0gdXNlRnVzaW9uQ29udGV4dCgpO1xuICByZXR1cm4gPGltZyB7IC4uLnByb3BzIH0gc3JjPXtkZXBsb3ltZW50KGAke2NvbnRleHRQYXRofS9yZXNvdXJjZXMvaWNvbnMvbGluZS5zdmdgKX0gLz47XG59O1xuXG5jb25zdCBUd2l0dGVyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dFBhdGgsIGRlcGxveW1lbnQgfSA9IHVzZUZ1c2lvbkNvbnRleHQoKTtcbiAgcmV0dXJuIDxpbWcgeyAuLi5wcm9wcyB9IHNyYz17ZGVwbG95bWVudChgJHtjb250ZXh0UGF0aH0vcmVzb3VyY2VzL2ljb25zL3R3aXR0ZXIuc3ZnYCl9IC8+O1xufTtcblxuY29uc3QgWW91dHViZSA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHRQYXRoLCBkZXBsb3ltZW50IH0gPSB1c2VGdXNpb25Db250ZXh0KCk7XG4gIHJldHVybiA8aW1nIHsgLi4ucHJvcHMgfSBzcmM9e2RlcGxveW1lbnQoYCR7Y29udGV4dFBhdGh9L3Jlc291cmNlcy9pY29ucy95b3V0dWJlLnN2Z2ApfSAvPjtcbn07XG5cbmNvbnN0IEJhcnMgPSAoeyBmaWxsQ29sb3IsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7IC4uLnByb3BzIH0gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxnIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzk5OSd9PlxuICAgICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAxXCIgZD1cIk0wIDIuNjdoMzJWMEgwelwiLz5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMCAxMy4zM2gzMnYtMi42NkgwelwiLz5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgM1wiIGQ9XCJNMCAyNGgzMnYtMi42N0gwelwiLz5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQ2hldnJvbiA9ICh7IGZpbGxDb2xvciwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsgLi4ucHJvcHMgfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xMy4yMyAxNmw3LjA3LTcuMDdhMSAxIDAgMDAwLTEuNDFsLS43LS43MWExIDEgMCAwMC0xLjQyIDBMOS43IDE1LjI5YTEgMSAwIDAwMCAxLjQybDguNDggOC40OGExIDEgMCAwMDEuNDIgMGwuNy0uN2ExIDEgMCAwMDAtMS40MnpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyM5OTknfS8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQ2hldnJvblVwID0gKHsgZmlsbENvbG9yLCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgeyAuLi5wcm9wcyB9IGRhdGEtbmFtZT1cIkdyb3VwIDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTMyIDMyVjBIMHYzMnpcIiBmaWxsPVwiI2ZmZlwiLz5cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDJcIiBkPVwiTTE2IDEzLjIzbDcuMDcgNy4wN2ExIDEgMCAwMDEuNDIgMGwuNy0uN2ExIDEgMCAwMDAtMS40MkwxNi43MSA5LjdhMSAxIDAgMDAtMS40MiAwbC04LjQ4IDguNDhhMSAxIDAgMDAwIDEuNDJsLjcuN2ExIDEgMCAwMDEuNDIgMHpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyMwNjUxN2InfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IENoZXZyb25Eb3duID0gKHsgZmlsbENvbG9yLCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgeyAuLi5wcm9wcyB9IGRhdGEtbmFtZT1cIkdyb3VwIDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTAgMzJoMzJWMEgwelwiIGZpbGw9XCIjZmZmXCIgLz5cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDJcIiBkPVwiTTE2IDE4Ljc3TDguOTMgMTEuN2ExIDEgMCAwMC0xLjQxIDBsLS43MS43YTEgMSAwIDAwMCAxLjQybDguNDggOC40OGExIDEgMCAwMDEuNDIgMGw4LjQ4LTguNDhhMSAxIDAgMDAwLTEuNDFsLS43LS43MWExIDEgMCAwMC0xLjQyIDB6XCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjMDY1MTdiJ30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uUmlnaHQgPSAoeyBmaWxsQ29sb3IsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7IC4uLnByb3BzIH0gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIi8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xOC43NyAxNmwtNy4wNyA3LjA3YTEgMSAwIDAwMCAxLjQybC43LjdhMSAxIDAgMDAxLjQyIDBsOC40OC04LjQ4YTEgMSAwIDAwMC0xLjQybC04LjQ4LTguNDhhMSAxIDAgMDAtMS40MiAwbC0uNy43YTEgMSAwIDAwMCAxLjQyelwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Yid9Lz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBMb2NrID0gKHsgZmlsbENvbG9yLCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgeyAuLi5wcm9wcyB9IHZpZXdCb3g9XCIwIDAgMTkgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGggZD1cIk0xOC4zOSwxNkgzLjYxQS42MS42MSwwLDAsMSwzLDE1LjM5Vi42MUEuNjEuNjEsMCwwLDEsMy42MSwwSDE4LjM5QS42MS42MSwwLDAsMSwxOSwuNjFWMTUuMzlhLjYxLjYxLDAsMCwxLS42MS42MVwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnI2RiYjQwMCd9Lz5cbiAgICA8cGF0aCBkPVwiTTE0LjcyLDcuNTFINy4yOGEuODMuODMsMCwwLDAtLjgzLjgzdjQuOTJhMS40MywxLjQzLDAsMCwwLDEuNDMsMS40M2g2LjI0YTEuNDMsMS40MywwLDAsMCwxLjQzLTEuNDNWOC4zNGEuODMuODMsMCwwLDAtLjgzLS44M1ptLTIuNjcsNS4zM2EuMjQuMjQsMCwwLDEtLjE4LjI5SDEwLjE4YS4yNC4yNCwwLDAsMS0uMjQtLjI0LjEzLjEzLDAsMCwxLDAtLjA2bC40MS0xLjczYTEuMTMsMS4xMywwLDEsMSwxLjU3LS4yOSwxLjMzLDEuMzMsMCwwLDEtLjI5LjI5WlwiIGZpbGw9XCIjZmZmXCIvPlxuICAgIDxwYXRoIGQ9XCJNMTQuNzEsNi45NGgtMS42VjUuMDhhMi4xNiwyLjE2LDAsMCwwLTQuMzIsMFY2Ljk0SDcuMTlWNS4wOGEzLjc2LDMuNzYsMCwxLDEsNy41MiwwWlwiIGZpbGw9XCIjZmZmXCIvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IFNlYXJjaCA9IChwcm9wcykgPT4gKFxuICA8c3ZnIHsgLi4ucHJvcHMgfSB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxnIGRhdGEtbmFtZT1cIkdyb3VwIDNcIj5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkNsaXAgMlwiIGQ9XCJNMCAwaDMydjMySDB6XCIgZmlsbD1cIm5vbmVcIi8+XG4gICAgICA8ZyBkYXRhLW5hbWU9XCJHcm91cCAzXCI+XG4gICAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMzAgMzJhMS45OSAxLjk5IDAgMDEtMS40MS0uNTlsLTcuOTMtNy45MkExMi45OSAxMi45OSAwIDAxMCAxM2ExMyAxMyAwIDAxMjIuMi05LjIgMTIuOTcgMTIuOTcgMCAwMTEuMjkgMTYuODZsNy45MiA3LjkzQTIgMiAwIDAxMzAgMzJ6TTEzIDRhOSA5IDAgMTA5IDkgOS4wMSA5LjAxIDAgMDAtOS05elwiIGZpbGw9XCIjOTk5XCIvPlxuICAgICAgPC9nPlxuICAgIDwvZz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBUaW1lcyA9IChwcm9wcykgPT4gKFxuICA8c3ZnIHsgLi4ucHJvcHMgfSB2aWV3Qm94PVwiMCAwIDM1MiA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGggZD1cIk0yNDIuNzIgMjU2bDEwMC4wNy0xMDAuMDdhMzEuNDYgMzEuNDYgMCAwMDAtNDQuNDhsLTIyLjI0LTIyLjI0YTMxLjQ2IDMxLjQ2IDAgMDAtNDQuNDggMEwxNzYgMTg5LjI4IDc1LjkzIDg5LjIxYTMxLjQ2IDMxLjQ2IDAgMDAtNDQuNDggMEw5LjIxIDExMS40NWEzMS40NiAzMS40NiAwIDAwMCA0NC40OEwxMDkuMjggMjU2IDkuMjEgMzU2LjA3YTMxLjQ2IDMxLjQ2IDAgMDAwIDQ0LjQ4bDIyLjI0IDIyLjI0YTMxLjQ2IDMxLjQ2IDAgMDA0NC40OCAwTDE3NiAzMjIuNzJsMTAwLjA3IDEwMC4wN2EzMS40NiAzMS40NiAwIDAwNDQuNDggMGwyMi4yNC0yMi4yNGEzMS40NiAzMS40NiAwIDAwMC00NC40OEwyNDIuNzIgMjU2elwiLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBpY29ucyA9IHtcbiAgYmFyczoge1xuICAgIENvbXBvbmVudDogQmFycyxcbiAgfSxcbiAgY2hldnJvbjoge1xuICAgIENvbXBvbmVudDogQ2hldnJvbixcbiAgfSxcbiAgJ2NoZXZyb24tdXAnOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uVXAsXG4gIH0sXG4gICdjaGV2cm9uLWRvd24nOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uRG93bixcbiAgfSxcbiAgJ2NoZXZyb24tcmlnaHQnOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uUmlnaHQsXG4gIH0sXG4gIGZhY2Vib29rOiB7XG4gICAgQ29tcG9uZW50OiBGYWNlYm9vayxcbiAgfSxcbiAgZ3E6IHtcbiAgICBDb21wb25lbnQ6IEdRLFxuICB9LFxuICBpcm9ubmE6IHtcbiAgICBDb21wb25lbnQ6IElyb25uYSxcbiAgfSxcbiAgJ2phcGFuLWZvcndhcmQnOiB7XG4gICAgQ29tcG9uZW50OiBKYXBhbkZvcndhcmQsXG4gIH0sXG4gIGxpbmU6IHtcbiAgICBDb21wb25lbnQ6IExpbmUsXG4gIH0sXG4gIGxvY2s6IHtcbiAgICBDb21wb25lbnQ6IExvY2ssXG4gIH0sXG4gIHNhbmtlaToge1xuICAgIENvbXBvbmVudDogU2Fua2VpLFxuICB9LFxuICBtZW1iZXI6IHtcbiAgICBDb21wb25lbnQ6IE1lbWJlcixcbiAgfSxcbiAgc2VhcmNoOiB7XG4gICAgQ29tcG9uZW50OiBTZWFyY2gsXG4gIH0sXG4gIHRpbWVzOiB7XG4gICAgQ29tcG9uZW50OiBUaW1lcyxcbiAgfSxcbiAgdHdpdHRlcjoge1xuICAgIENvbXBvbmVudDogVHdpdHRlcixcbiAgfSxcbiAgeW91dHViZToge1xuICAgIENvbXBvbmVudDogWW91dHViZSxcbiAgfSxcbiAgd2lyZWQ6IHtcbiAgICBDb21wb25lbnQ6IFdpcmVkLFxuICB9LFxuICBzYW5rZWlzeW86IHtcbiAgICBDb21wb25lbnQ6IFNhbmtlaXN5byxcbiAgfSxcbiAgbmFuaXdhOiB7XG4gICAgQ29tcG9uZW50OiBOYW5pd2EsXG4gIH0sXG4gIHNlaXJvbjoge1xuICAgIENvbXBvbmVudDogU2Vpcm9uLFxuICB9LFxufTtcblxuY29uc3QgSWNvbiA9ICh7IG5hbWUsIC4uLnByb3BzIH0pID0+IHtcbiAgaWYgKGljb25zW25hbWVdKSB7XG4gICAgY29uc3QgeyBDb21wb25lbnQgfSA9IGljb25zW25hbWVdO1xuICAgIHJldHVybiA8Q29tcG9uZW50IHsgLi4ucHJvcHMgfSAvPjtcbiAgfVxuXG4gIHJldHVybiBuYW1lO1xufTtcblxuSWNvbi5wcm9wVHlwZXMgPSB7XG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbn07XG5cbkJhcnMucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5GYWNlYm9vay5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkNoZXZyb24ucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uVXAucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uRG93bi5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkNoZXZyb25SaWdodC5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkxvY2sucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Jcm9ubmEucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5TYW5rZWlzeW8ucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5OYW5pd2EucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5TZWlyb24ucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIl19
309
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVua25vd24iXSwibmFtZXMiOlsiSWNvbkltZyIsIm5hbWUiLCJwcm9wcyIsImNvbnRleHRQYXRoIiwiZGVwbG95bWVudCIsIkJhcnMiLCJmaWxsQ29sb3IiLCJCb3JkZXJBcnJvd0xlZnQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzdHJva2VDb2xvciIsIkJvcmRlckFycm93UmlnaHQiLCJDaGV2cm9uIiwiQ2hldnJvblVwIiwiQ2hldnJvbkRvd24iLCJDaGV2cm9uUmlnaHQiLCJMb2NrIiwiU2VhcmNoIiwiVGltZXMiLCJTSVRFX0tFWVMiLCJpY29ucyIsImJhcnMiLCJDb21wb25lbnQiLCJjaGV2cm9uIiwibG9jayIsInNlYXJjaCIsInRpbWVzIiwicmVkdWNlIiwiYWNjIiwiY3VyIiwiSWNvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxJQUFEO0FBQUEsU0FBVSxVQUFDQyxLQUFELEVBQVc7QUFBQSw0QkFDQyxzQ0FERDtBQUFBLFFBQzNCQyxXQUQyQixxQkFDM0JBLFdBRDJCO0FBQUEsUUFDZEMsVUFEYyxxQkFDZEEsVUFEYzs7QUFFbkMsd0JBQU8scUVBQVNGLEtBQVQ7QUFBZ0IsTUFBQSxHQUFHLEVBQUVFLFVBQVUsV0FBSUQsV0FBSiw4QkFBbUNGLElBQW5DO0FBQS9CLE9BQVA7QUFDRCxHQUhlO0FBQUEsQ0FBaEI7O0FBS0EsSUFBTUksSUFBSSxHQUFHLFNBQVBBLElBQU87QUFBQSxNQUFHQyxTQUFILFFBQUdBLFNBQUg7QUFBQSxNQUFpQkosS0FBakI7QUFBQSxzQkFDWCxxRUFBU0EsS0FBVDtBQUFnQixpQkFBVSxVQUExQjtBQUFxQyxJQUFBLEtBQUssRUFBQyw0QkFBM0M7QUFBd0UsSUFBQSxPQUFPLEVBQUM7QUFBaEYsbUJBQ0U7QUFBRyxJQUFB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QUZEO0FBRzFCdkIsRUFBQUEsV0FBVyxFQUFFc0Isc0JBQVVDO0FBSEcsQ0FBNUI7QUFNQXRCLGdCQUFnQixDQUFDb0IsU0FBakIsR0FBNkI7QUFDM0J4QixFQUFBQSxTQUFTLEVBQUV5QixzQkFBVUMsTUFETTtBQUUzQnhCLEVBQUFBLGVBQWUsRUFBRXVCLHNCQUFVQyxNQUZBO0FBRzNCdkIsRUFBQUEsV0FBVyxFQUFFc0Isc0JBQVVDO0FBSEksQ0FBN0I7QUFNQXJCLE9BQU8sQ0FBQ21CLFNBQVIsR0FBb0I7QUFDbEJ4QixFQUFBQSxTQUFTLEVBQUV5QixzQkFBVUM7QUFESCxDQUFwQjtBQUlBcEIsU0FBUyxDQUFDa0IsU0FBVixHQUFzQjtBQUNwQnhCLEVBQUFBLFNBQVMsRUFBRXlCLHNCQUFVQztBQURELENBQXRCO0FBSUFuQixXQUFXLENBQUNpQixTQUFaLEdBQXdCO0FBQ3RCeEIsRUFBQUEsU0FBUyxFQUFFeUIsc0JBQVVDO0FBREMsQ0FBeEI7QUFJQWxCLFlBQVksQ0FBQ2dCLFNBQWIsR0FBeUI7QUFDdkJ4QixFQUFBQSxTQUFTLEVBQUV5QixzQkFBVUM7QUFERSxDQUF6QjtBQUlBakIsSUFBSSxDQUFDZSxTQUFMLEdBQWlCO0FBQ2Z4QixFQUFBQSxTQUFTLEVBQUV5QixzQkFBVUM7QUFETixDQUFqQjtlQUllSCxJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB1c2VGdXNpb25Db250ZXh0IH0gZnJvbSAnZnVzaW9uOmNvbnRleHQnO1xuXG5jb25zdCBJY29uSW1nID0gKG5hbWUpID0+IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHRQYXRoLCBkZXBsb3ltZW50IH0gPSB1c2VGdXNpb25Db250ZXh0KCk7XG4gIHJldHVybiA8aW1nIHsuLi5wcm9wc30gc3JjPXtkZXBsb3ltZW50KGAke2NvbnRleHRQYXRofS9yZXNvdXJjZXMvaWNvbnMvJHtuYW1lfS5zdmdgKX0gLz47XG59O1xuXG5jb25zdCBCYXJzID0gKHsgZmlsbENvbG9yLCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPGcgZmlsbD17ZmlsbENvbG9yIHx8ICcjOTk5J30+XG4gICAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTAgMi42N2gzMlYwSDB6XCIgLz5cbiAgICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMCAxMy4zM2gzMnYtMi42NkgwelwiIC8+XG4gICAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDNcIiBkPVwiTTAgMjRoMzJ2LTIuNjdIMHpcIiAvPlxuICAgIDwvZz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBCb3JkZXJBcnJvd0xlZnQgPSAoe1xuICBmaWxsQ29sb3IsIGJhY2tncm91bmRDb2xvciwgc3Ryb2tlQ29sb3IsIC4uLnByb3BzXG59KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHJlY3QgeD1cIjQzLjVcIiB5PVwiNDMuNVwiIHdpZHRoPVwiNDNcIiBoZWlnaHQ9XCI0M1wiIHJ4PVwiMy41XCIgdHJhbnNmb3JtPVwicm90YXRlKC0xODAgNDMuNSA0My41KVwiIGZpbGw9e2JhY2tncm91bmRDb2xvciB8fCAnd2hpdGUnfSBzdHJva2U9e3N0cm9rZUNvbG9yIHx8ICdub25lJ30gLz5cbiAgICA8cGF0aCBkPVwiTTI0IDI4TDI1LjQxIDI2LjU5TDIwLjgzIDIyTDI1LjQxIDE3LjQxTDI0IDE2TDE4IDIyTDI0IDI4WlwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnIzA2NTE3Qid9IC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQm9yZGVyQXJyb3dSaWdodCA9ICh7XG4gIGZpbGxDb2xvciwgYmFja2dyb3VuZENvbG9yLCBzdHJva2VDb2xvciwgLi4ucHJvcHNcbn0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IHZpZXdCb3g9XCIwIDAgNDQgNDRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiNDNcIiBoZWlnaHQ9XCI0M1wiIHJ4PVwiMy41XCIgZmlsbD17YmFja2dyb3VuZENvbG9yIHx8ICd3aGl0ZSd9IHN0cm9rZT17c3Ryb2tlQ29sb3IgfHwgJ25vbmUnfSAvPlxuICAgIDxwYXRoIGQ9XCJNMjAgMTZMMTguNTkgMTcuNDFMMjMuMTcgMjJMMTguNTkgMjYuNTlMMjAgMjhMMjYgMjJMMjAgMTZaXCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjMDY1MTdCJ30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uID0gKHsgZmlsbENvbG9yLCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxzdmcgey4uLnByb3BzfSBkYXRhLW5hbWU9XCJHcm91cCAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMTMuMjMgMTZsNy4wNy03LjA3YTEgMSAwIDAwMC0xLjQxbC0uNy0uNzFhMSAxIDAgMDAtMS40MiAwTDkuNyAxNS4yOWExIDEgMCAwMDAgMS40Mmw4LjQ4IDguNDhhMSAxIDAgMDAxLjQyIDBsLjctLjdhMSAxIDAgMDAwLTEuNDJ6XCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjOTk5J30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uVXAgPSAoeyBmaWxsQ29sb3IsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IGRhdGEtbmFtZT1cIkdyb3VwIDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aCBkYXRhLW5hbWU9XCJGaWxsIDFcIiBkPVwiTTMyIDMyVjBIMHYzMnpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAyXCIgZD1cIk0xNiAxMy4yM2w3LjA3IDcuMDdhMSAxIDAgMDAxLjQyIDBsLjctLjdhMSAxIDAgMDAwLTEuNDJMMTYuNzEgOS43YTEgMSAwIDAwLTEuNDIgMGwtOC40OCA4LjQ4YTEgMSAwIDAwMCAxLjQybC43LjdhMSAxIDAgMDAxLjQyIDB6XCIgZmlsbD17ZmlsbENvbG9yIHx8ICcjMDY1MTdiJ30gLz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBDaGV2cm9uRG93biA9ICh7IGZpbGxDb2xvciwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMTYgMTguNzdMOC45MyAxMS43YTEgMSAwIDAwLTEuNDEgMGwtLjcxLjdhMSAxIDAgMDAwIDEuNDJsOC40OCA4LjQ4YTEgMSAwIDAwMS40MiAwbDguNDgtOC40OGExIDEgMCAwMDAtMS40MWwtLjctLjcxYTEgMSAwIDAwLTEuNDIgMHpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyMwNjUxN2InfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IENoZXZyb25SaWdodCA9ICh7IGZpbGxDb2xvciwgLi4ucHJvcHMgfSkgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gZGF0YS1uYW1lPVwiR3JvdXAgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMVwiIGQ9XCJNMCAzMmgzMlYwSDB6XCIgZmlsbD1cIiNmZmZcIiAvPlxuICAgIDxwYXRoIGRhdGEtbmFtZT1cIkZpbGwgMlwiIGQ9XCJNMTguNzcgMTZsLTcuMDcgNy4wN2ExIDEgMCAwMDAgMS40MmwuNy43YTEgMSAwIDAwMS40MiAwbDguNDgtOC40OGExIDEgMCAwMDAtMS40MmwtOC40OC04LjQ4YTEgMSAwIDAwLTEuNDIgMGwtLjcuN2ExIDEgMCAwMDAgMS40MnpcIiBmaWxsPXtmaWxsQ29sb3IgfHwgJyMwNjUxN2InfSAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IExvY2sgPSAoeyBmaWxsQ29sb3IsIC4uLnByb3BzIH0pID0+IChcbiAgPHN2ZyB7Li4ucHJvcHN9IHZpZXdCb3g9XCIwIDAgMTkgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGggZD1cIk0xOC4zOSwxNkgzLjYxQS42MS42MSwwLDAsMSwzLDE1LjM5Vi42MUEuNjEuNjEsMCwwLDEsMy42MSwwSDE4LjM5QS42MS42MSwwLDAsMSwxOSwuNjFWMTUuMzlhLjYxLjYxLDAsMCwxLS42MS42MVwiIGZpbGw9e2ZpbGxDb2xvciB8fCAnI2RiYjQwMCd9IC8+XG4gICAgPHBhdGggZD1cIk0xNC43Miw3LjUxSDcuMjhhLjgzLjgzLDAsMCwwLS44My44M3Y0LjkyYTEuNDMsMS40MywwLDAsMCwxLjQzLDEuNDNoNi4yNGExLjQzLDEuNDMsMCwwLDAsMS40My0xLjQzVjguMzRhLjgzLjgzLDAsMCwwLS44My0uODNabS0yLjY3LDUuMzNhLjI0LjI0LDAsMCwxLS4xOC4yOUgxMC4xOGEuMjQuMjQsMCwwLDEtLjI0LS4yNC4xMy4xMywwLDAsMSwwLS4wNmwuNDEtMS43M2ExLjEzLDEuMTMsMCwxLDEsMS41Ny0uMjksMS4zMywxLjMzLDAsMCwxLS4yOS4yOVpcIiBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgPHBhdGggZD1cIk0xNC43MSw2Ljk0aC0xLjZWNS4wOGEyLjE2LDIuMTYsMCwwLDAtNC4zMiwwVjYuOTRINy4xOVY1LjA4YTMuNzYsMy43NiwwLDEsMSw3LjUyLDBaXCIgZmlsbD1cIiNmZmZcIiAvPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IFNlYXJjaCA9IChwcm9wcykgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gdmlld0JveD1cIjAgMCAzMiAzMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8ZyBkYXRhLW5hbWU9XCJHcm91cCAzXCI+XG4gICAgICA8cGF0aCBkYXRhLW5hbWU9XCJDbGlwIDJcIiBkPVwiTTAgMGgzMnYzMkgwelwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgIDxnIGRhdGEtbmFtZT1cIkdyb3VwIDNcIj5cbiAgICAgICAgPHBhdGggZGF0YS1uYW1lPVwiRmlsbCAxXCIgZD1cIk0zMCAzMmExLjk5IDEuOTkgMCAwMS0xLjQxLS41OWwtNy45My03LjkyQTEyLjk5IDEyLjk5IDAgMDEwIDEzYTEzIDEzIDAgMDEyMi4yLTkuMiAxMi45NyAxMi45NyAwIDAxMS4yOSAxNi44Nmw3LjkyIDcuOTNBMiAyIDAgMDEzMCAzMnpNMTMgNGE5IDkgMCAxMDkgOSA5LjAxIDkuMDEgMCAwMC05LTl6XCIgZmlsbD1cIiM5OTlcIiAvPlxuICAgICAgPC9nPlxuICAgIDwvZz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBUaW1lcyA9IChwcm9wcykgPT4gKFxuICA8c3ZnIHsuLi5wcm9wc30gdmlld0JveD1cIjAgMCAzNTIgNTEyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoIGQ9XCJNMjQyLjcyIDI1NmwxMDAuMDctMTAwLjA3YTMxLjQ2IDMxLjQ2IDAgMDAwLTQ0LjQ4bC0yMi4yNC0yMi4yNGEzMS40NiAzMS40NiAwIDAwLTQ0LjQ4IDBMMTc2IDE4OS4yOCA3NS45MyA4OS4yMWEzMS40NiAzMS40NiAwIDAwLTQ0LjQ4IDBMOS4yMSAxMTEuNDVhMzEuNDYgMzEuNDYgMCAwMDAgNDQuNDhMMTA5LjI4IDI1NiA5LjIxIDM1Ni4wN2EzMS40NiAzMS40NiAwIDAwMCA0NC40OGwyMi4yNCAyMi4yNGEzMS40NiAzMS40NiAwIDAwNDQuNDggMEwxNzYgMzIyLjcybDEwMC4wNyAxMDAuMDdhMzEuNDYgMzEuNDYgMCAwMDQ0LjQ4IDBsMjIuMjQtMjIuMjRhMzEuNDYgMzEuNDYgMCAwMDAtNDQuNDhMMjQyLjcyIDI1NnpcIiAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBTSVRFX0tFWVMgPSBbXG4gICdmYWNlYm9vaycsXG4gICdncScsXG4gICdpcm9ubmEnLFxuICAnamFwYW4tZm9yd2FyZCcsXG4gICdsaW5lJyxcbiAgJ3NhbmtlaScsXG4gICdtZW1iZXInLFxuICAndHdpdHRlcicsXG4gICd5b3V0dWJlJyxcbiAgJ3dpcmVkJyxcbiAgJ3NhbmtlaXN5bycsXG4gICduYW5pd2EnLFxuICAnc2Vpcm9uJyxcbiAgJ2luc3RhZ3JhbScsXG4gICdpbWdfYmFyJyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1sZWZ0JyxcbiAgJ2ltZ19ib3JkZXJhcnJvdy1sZWZ0LWJpeicsXG4gICdpbWdfYm9yZGVyYXJyb3ctbGVmdC1kZWFjdGl2ZScsXG4gICdpbWdfYm9yZGVyYXJyb3ctcmlnaHQnLFxuICAnaW1nX2JvcmRlcmFycm93LXJpZ2h0LWJpeicsXG4gICdpbWdfYm9yZGVyYXJyb3ctcmlnaHQtZGVhY3RpdmUnLFxuICAnaW1nX2NoZXZyb24nLFxuICAnaW1nX2NoZXZyb24tZGVhY3RpdmUnLFxuICAnaW1nX2NoZXZyb24tdXAnLFxuICAnaW1nX2NoZXZyb24tZG93bicsXG4gICdpbWdfY2hldnJvbi1yaWdodCcsXG4gICdpbWdfY2hldnJvbi1yaWdodC1kZWFjdGl2ZScsXG4gICdpbWdfbG9jay1nb2xkJyxcbiAgJ2ltZ19sb2NrLXNpbHZlcicsXG4gICdpbWdfc2VhcmNoJyxcbiAgJ2ltZ190aW1lcycsXG5dO1xuXG5cbmNvbnN0IGljb25zID0ge1xuICBiYXJzOiB7XG4gICAgQ29tcG9uZW50OiBCYXJzLFxuICB9LFxuICAnYm9yZGVyLWFycm93LWxlZnQnOiB7XG4gICAgQ29tcG9uZW50OiBCb3JkZXJBcnJvd0xlZnQsXG4gIH0sXG4gICdib3JkZXItYXJyb3ctcmlnaHQnOiB7XG4gICAgQ29tcG9uZW50OiBCb3JkZXJBcnJvd1JpZ2h0LFxuICB9LFxuICBjaGV2cm9uOiB7XG4gICAgQ29tcG9uZW50OiBDaGV2cm9uLFxuICB9LFxuICAnY2hldnJvbi11cCc6IHtcbiAgICBDb21wb25lbnQ6IENoZXZyb25VcCxcbiAgfSxcbiAgJ2NoZXZyb24tZG93bic6IHtcbiAgICBDb21wb25lbnQ6IENoZXZyb25Eb3duLFxuICB9LFxuICAnY2hldnJvbi1yaWdodCc6IHtcbiAgICBDb21wb25lbnQ6IENoZXZyb25SaWdodCxcbiAgfSxcbiAgbG9jazoge1xuICAgIENvbXBvbmVudDogTG9jayxcbiAgfSxcbiAgc2VhcmNoOiB7XG4gICAgQ29tcG9uZW50OiBTZWFyY2gsXG4gIH0sXG4gIHRpbWVzOiB7XG4gICAgQ29tcG9uZW50OiBUaW1lcyxcbiAgfSxcbiAgLi4uU0lURV9LRVlTLnJlZHVjZSgoYWNjLCBjdXIpID0+IChcbiAgICB7IC4uLmFjYywgW2N1cl06IHsgQ29tcG9uZW50OiBJY29uSW1nKGN1cikgfSB9XG4gICksIHt9KSxcbn07XG5cbmNvbnN0IEljb24gPSAoeyBuYW1lLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGlmICh0eXBlb2YgaWNvbnNbbmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyBDb21wb25lbnQgfSA9IGljb25zW25hbWVdO1xuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz47XG4gIH1cblxuICByZXR1cm4gbmFtZTtcbn07XG5cbkljb24ucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59O1xuXG5CYXJzLnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQm9yZGVyQXJyb3dMZWZ0LnByb3BUeXBlcyA9IHtcbiAgZmlsbENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBiYWNrZ3JvdW5kQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0cm9rZUNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQm9yZGVyQXJyb3dSaWdodC5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdHJva2VDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkNoZXZyb24ucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uVXAucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5DaGV2cm9uRG93bi5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkNoZXZyb25SaWdodC5wcm9wVHlwZXMgPSB7XG4gIGZpbGxDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkxvY2sucHJvcFR5cGVzID0ge1xuICBmaWxsQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankei-arc-shared-components/element_icon",
3
- "version": "0.1.9",
3
+ "version": "0.3.1",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "repository": {
package/src/index.js CHANGED
@@ -2,138 +2,137 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useFusionContext } from 'fusion:context';
4
4
 
5
- const GQ = (props) => {
5
+ const IconImg = (name) => (props) => {
6
6
  const { contextPath, deployment } = useFusionContext();
7
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/gq.svg`)} />;
8
- };
9
-
10
- const Ironna = (props) => {
11
- const { contextPath, deployment } = useFusionContext();
12
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/ironna.svg`)} />;
13
- };
14
-
15
- const JapanForward = (props) => {
16
- const { contextPath, deployment } = useFusionContext();
17
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/japanforward.svg`)} />;
18
- };
19
-
20
- const Sankei = (props) => {
21
- const { contextPath, deployment } = useFusionContext();
22
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/sankei.svg`)} />;
23
- };
24
-
25
- const Member = (props) => {
26
- const { contextPath, deployment } = useFusionContext();
27
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/member.svg`)} />;
28
- };
29
-
30
- const Naniwa = (props) => {
31
- const { contextPath, deployment } = useFusionContext();
32
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/naniwa.svg`)} />;
33
- };
34
-
35
- const Sankeisyo = (props) => {
36
- const { contextPath, deployment } = useFusionContext();
37
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/sankeisyo.svg`)} />;
38
- };
39
-
40
- const Seiron = (props) => {
41
- const { contextPath, deployment } = useFusionContext();
42
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/seiron.svg`)} />;
43
- };
44
-
45
- const Wired = (props) => {
46
- const { contextPath, deployment } = useFusionContext();
47
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/wired.svg`)} />;
48
- };
49
-
50
- const Facebook = ({ fillColor, ...props }) => {
51
- const { contextPath, deployment } = useFusionContext();
52
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/facebook.svg`)} />;
53
- };
54
-
55
- const Line = (props) => {
56
- const { contextPath, deployment } = useFusionContext();
57
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/line.svg`)} />;
58
- };
59
-
60
- const Twitter = (props) => {
61
- const { contextPath, deployment } = useFusionContext();
62
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/twitter.svg`)} />;
63
- };
64
-
65
- const Youtube = (props) => {
66
- const { contextPath, deployment } = useFusionContext();
67
- return <img { ...props } src={deployment(`${contextPath}/resources/icons/youtube.svg`)} />;
7
+ return <img {...props} src={deployment(`${contextPath}/resources/icons/${name}.svg`)} />;
68
8
  };
69
9
 
70
10
  const Bars = ({ fillColor, ...props }) => (
71
- <svg { ...props } data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
11
+ <svg {...props} data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
72
12
  <g fill={fillColor || '#999'}>
73
- <path data-name="Fill 1" d="M0 2.67h32V0H0z"/>
74
- <path data-name="Fill 2" d="M0 13.33h32v-2.66H0z"/>
75
- <path data-name="Fill 3" d="M0 24h32v-2.67H0z"/>
13
+ <path data-name="Fill 1" d="M0 2.67h32V0H0z" />
14
+ <path data-name="Fill 2" d="M0 13.33h32v-2.66H0z" />
15
+ <path data-name="Fill 3" d="M0 24h32v-2.67H0z" />
76
16
  </g>
77
17
  </svg>
78
18
  );
79
19
 
20
+ const BorderArrowLeft = ({
21
+ fillColor, backgroundColor, strokeColor, ...props
22
+ }) => (
23
+ <svg {...props} viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
24
+ <rect x="43.5" y="43.5" width="43" height="43" rx="3.5" transform="rotate(-180 43.5 43.5)" fill={backgroundColor || 'white'} stroke={strokeColor || 'none'} />
25
+ <path d="M24 28L25.41 26.59L20.83 22L25.41 17.41L24 16L18 22L24 28Z" fill={fillColor || '#06517B'} />
26
+ </svg>
27
+ );
28
+
29
+ const BorderArrowRight = ({
30
+ fillColor, backgroundColor, strokeColor, ...props
31
+ }) => (
32
+ <svg {...props} viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
33
+ <rect x="0.5" y="0.5" width="43" height="43" rx="3.5" fill={backgroundColor || 'white'} stroke={strokeColor || 'none'} />
34
+ <path d="M20 16L18.59 17.41L23.17 22L18.59 26.59L20 28L26 22L20 16Z" fill={fillColor || '#06517B'} />
35
+ </svg>
36
+ );
37
+
80
38
  const Chevron = ({ fillColor, ...props }) => (
81
- <svg { ...props } data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" >
82
- <path data-name="Fill 1" d="M0 32h32V0H0z" fill="#fff"/>
83
- <path data-name="Fill 2" d="M13.23 16l7.07-7.07a1 1 0 000-1.41l-.7-.71a1 1 0 00-1.42 0L9.7 15.29a1 1 0 000 1.42l8.48 8.48a1 1 0 001.42 0l.7-.7a1 1 0 000-1.42z" fill={fillColor || '#999'}/>
39
+ <svg {...props} data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" >
40
+ <path data-name="Fill 1" d="M0 32h32V0H0z" fill="#fff" />
41
+ <path data-name="Fill 2" d="M13.23 16l7.07-7.07a1 1 0 000-1.41l-.7-.71a1 1 0 00-1.42 0L9.7 15.29a1 1 0 000 1.42l8.48 8.48a1 1 0 001.42 0l.7-.7a1 1 0 000-1.42z" fill={fillColor || '#999'} />
84
42
  </svg>
85
43
  );
86
44
 
87
45
  const ChevronUp = ({ fillColor, ...props }) => (
88
- <svg { ...props } data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
89
- <path data-name="Fill 1" d="M32 32V0H0v32z" fill="#fff"/>
46
+ <svg {...props} data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
47
+ <path data-name="Fill 1" d="M32 32V0H0v32z" fill="#fff" />
90
48
  <path data-name="Fill 2" d="M16 13.23l7.07 7.07a1 1 0 001.42 0l.7-.7a1 1 0 000-1.42L16.71 9.7a1 1 0 00-1.42 0l-8.48 8.48a1 1 0 000 1.42l.7.7a1 1 0 001.42 0z" fill={fillColor || '#06517b'} />
91
49
  </svg>
92
50
  );
93
51
 
94
52
  const ChevronDown = ({ fillColor, ...props }) => (
95
- <svg { ...props } data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
53
+ <svg {...props} data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
96
54
  <path data-name="Fill 1" d="M0 32h32V0H0z" fill="#fff" />
97
55
  <path data-name="Fill 2" d="M16 18.77L8.93 11.7a1 1 0 00-1.41 0l-.71.7a1 1 0 000 1.42l8.48 8.48a1 1 0 001.42 0l8.48-8.48a1 1 0 000-1.41l-.7-.71a1 1 0 00-1.42 0z" fill={fillColor || '#06517b'} />
98
56
  </svg>
99
57
  );
100
58
 
101
59
  const ChevronRight = ({ fillColor, ...props }) => (
102
- <svg { ...props } data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
103
- <path data-name="Fill 1" d="M0 32h32V0H0z" fill="#fff"/>
104
- <path data-name="Fill 2" d="M18.77 16l-7.07 7.07a1 1 0 000 1.42l.7.7a1 1 0 001.42 0l8.48-8.48a1 1 0 000-1.42l-8.48-8.48a1 1 0 00-1.42 0l-.7.7a1 1 0 000 1.42z" fill={fillColor || '#06517b'}/>
60
+ <svg {...props} data-name="Group 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
61
+ <path data-name="Fill 1" d="M0 32h32V0H0z" fill="#fff" />
62
+ <path data-name="Fill 2" d="M18.77 16l-7.07 7.07a1 1 0 000 1.42l.7.7a1 1 0 001.42 0l8.48-8.48a1 1 0 000-1.42l-8.48-8.48a1 1 0 00-1.42 0l-.7.7a1 1 0 000 1.42z" fill={fillColor || '#06517b'} />
105
63
  </svg>
106
64
  );
107
65
 
108
66
  const Lock = ({ fillColor, ...props }) => (
109
- <svg { ...props } viewBox="0 0 19 16" xmlns="http://www.w3.org/2000/svg">
110
- <path d="M18.39,16H3.61A.61.61,0,0,1,3,15.39V.61A.61.61,0,0,1,3.61,0H18.39A.61.61,0,0,1,19,.61V15.39a.61.61,0,0,1-.61.61" fill={fillColor || '#dbb400'}/>
111
- <path d="M14.72,7.51H7.28a.83.83,0,0,0-.83.83v4.92a1.43,1.43,0,0,0,1.43,1.43h6.24a1.43,1.43,0,0,0,1.43-1.43V8.34a.83.83,0,0,0-.83-.83Zm-2.67,5.33a.24.24,0,0,1-.18.29H10.18a.24.24,0,0,1-.24-.24.13.13,0,0,1,0-.06l.41-1.73a1.13,1.13,0,1,1,1.57-.29,1.33,1.33,0,0,1-.29.29Z" fill="#fff"/>
112
- <path d="M14.71,6.94h-1.6V5.08a2.16,2.16,0,0,0-4.32,0V6.94H7.19V5.08a3.76,3.76,0,1,1,7.52,0Z" fill="#fff"/>
67
+ <svg {...props} viewBox="0 0 19 16" xmlns="http://www.w3.org/2000/svg">
68
+ <path d="M18.39,16H3.61A.61.61,0,0,1,3,15.39V.61A.61.61,0,0,1,3.61,0H18.39A.61.61,0,0,1,19,.61V15.39a.61.61,0,0,1-.61.61" fill={fillColor || '#dbb400'} />
69
+ <path d="M14.72,7.51H7.28a.83.83,0,0,0-.83.83v4.92a1.43,1.43,0,0,0,1.43,1.43h6.24a1.43,1.43,0,0,0,1.43-1.43V8.34a.83.83,0,0,0-.83-.83Zm-2.67,5.33a.24.24,0,0,1-.18.29H10.18a.24.24,0,0,1-.24-.24.13.13,0,0,1,0-.06l.41-1.73a1.13,1.13,0,1,1,1.57-.29,1.33,1.33,0,0,1-.29.29Z" fill="#fff" />
70
+ <path d="M14.71,6.94h-1.6V5.08a2.16,2.16,0,0,0-4.32,0V6.94H7.19V5.08a3.76,3.76,0,1,1,7.52,0Z" fill="#fff" />
113
71
  </svg>
114
72
  );
115
73
 
116
74
  const Search = (props) => (
117
- <svg { ...props } viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
75
+ <svg {...props} viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
118
76
  <g data-name="Group 3">
119
- <path data-name="Clip 2" d="M0 0h32v32H0z" fill="none"/>
77
+ <path data-name="Clip 2" d="M0 0h32v32H0z" fill="none" />
120
78
  <g data-name="Group 3">
121
- <path data-name="Fill 1" d="M30 32a1.99 1.99 0 01-1.41-.59l-7.93-7.92A12.99 12.99 0 010 13a13 13 0 0122.2-9.2 12.97 12.97 0 011.29 16.86l7.92 7.93A2 2 0 0130 32zM13 4a9 9 0 109 9 9.01 9.01 0 00-9-9z" fill="#999"/>
79
+ <path data-name="Fill 1" d="M30 32a1.99 1.99 0 01-1.41-.59l-7.93-7.92A12.99 12.99 0 010 13a13 13 0 0122.2-9.2 12.97 12.97 0 011.29 16.86l7.92 7.93A2 2 0 0130 32zM13 4a9 9 0 109 9 9.01 9.01 0 00-9-9z" fill="#999" />
122
80
  </g>
123
81
  </g>
124
82
  </svg>
125
83
  );
126
84
 
127
85
  const Times = (props) => (
128
- <svg { ...props } viewBox="0 0 352 512" xmlns="http://www.w3.org/2000/svg">
129
- <path 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"/>
86
+ <svg {...props} viewBox="0 0 352 512" xmlns="http://www.w3.org/2000/svg">
87
+ <path 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" />
130
88
  </svg>
131
89
  );
132
90
 
91
+ export const SITE_KEYS = [
92
+ 'facebook',
93
+ 'gq',
94
+ 'ironna',
95
+ 'japan-forward',
96
+ 'line',
97
+ 'sankei',
98
+ 'member',
99
+ 'twitter',
100
+ 'youtube',
101
+ 'wired',
102
+ 'sankeisyo',
103
+ 'naniwa',
104
+ 'seiron',
105
+ 'instagram',
106
+ 'img_bar',
107
+ 'img_borderarrow-left',
108
+ 'img_borderarrow-left-biz',
109
+ 'img_borderarrow-left-deactive',
110
+ 'img_borderarrow-right',
111
+ 'img_borderarrow-right-biz',
112
+ 'img_borderarrow-right-deactive',
113
+ 'img_chevron',
114
+ 'img_chevron-deactive',
115
+ 'img_chevron-up',
116
+ 'img_chevron-down',
117
+ 'img_chevron-right',
118
+ 'img_chevron-right-deactive',
119
+ 'img_lock-gold',
120
+ 'img_lock-silver',
121
+ 'img_search',
122
+ 'img_times',
123
+ ];
124
+
125
+
133
126
  const icons = {
134
127
  bars: {
135
128
  Component: Bars,
136
129
  },
130
+ 'border-arrow-left': {
131
+ Component: BorderArrowLeft,
132
+ },
133
+ 'border-arrow-right': {
134
+ Component: BorderArrowRight,
135
+ },
137
136
  chevron: {
138
137
  Component: Chevron,
139
138
  },
@@ -146,60 +145,24 @@ const icons = {
146
145
  'chevron-right': {
147
146
  Component: ChevronRight,
148
147
  },
149
- facebook: {
150
- Component: Facebook,
151
- },
152
- gq: {
153
- Component: GQ,
154
- },
155
- ironna: {
156
- Component: Ironna,
157
- },
158
- 'japan-forward': {
159
- Component: JapanForward,
160
- },
161
- line: {
162
- Component: Line,
163
- },
164
148
  lock: {
165
149
  Component: Lock,
166
150
  },
167
- sankei: {
168
- Component: Sankei,
169
- },
170
- member: {
171
- Component: Member,
172
- },
173
151
  search: {
174
152
  Component: Search,
175
153
  },
176
154
  times: {
177
155
  Component: Times,
178
156
  },
179
- twitter: {
180
- Component: Twitter,
181
- },
182
- youtube: {
183
- Component: Youtube,
184
- },
185
- wired: {
186
- Component: Wired,
187
- },
188
- sankeisyo: {
189
- Component: Sankeisyo,
190
- },
191
- naniwa: {
192
- Component: Naniwa,
193
- },
194
- seiron: {
195
- Component: Seiron,
196
- },
157
+ ...SITE_KEYS.reduce((acc, cur) => (
158
+ { ...acc, [cur]: { Component: IconImg(cur) } }
159
+ ), {}),
197
160
  };
198
161
 
199
162
  const Icon = ({ name, ...props }) => {
200
- if (icons[name]) {
163
+ if (typeof icons[name] !== 'undefined') {
201
164
  const { Component } = icons[name];
202
- return <Component { ...props } />;
165
+ return <Component {...props} />;
203
166
  }
204
167
 
205
168
  return name;
@@ -213,8 +176,16 @@ Bars.propTypes = {
213
176
  fillColor: PropTypes.string,
214
177
  };
215
178
 
216
- Facebook.propTypes = {
179
+ BorderArrowLeft.propTypes = {
217
180
  fillColor: PropTypes.string,
181
+ backgroundColor: PropTypes.string,
182
+ strokeColor: PropTypes.string,
183
+ };
184
+
185
+ BorderArrowRight.propTypes = {
186
+ fillColor: PropTypes.string,
187
+ backgroundColor: PropTypes.string,
188
+ strokeColor: PropTypes.string,
218
189
  };
219
190
 
220
191
  Chevron.propTypes = {
@@ -237,20 +208,4 @@ Lock.propTypes = {
237
208
  fillColor: PropTypes.string,
238
209
  };
239
210
 
240
- Ironna.propTypes = {
241
- className: PropTypes.string,
242
- };
243
-
244
- Sankeisyo.propTypes = {
245
- fillColor: PropTypes.string,
246
- };
247
-
248
- Naniwa.propTypes = {
249
- fillColor: PropTypes.string,
250
- };
251
-
252
- Seiron.propTypes = {
253
- fillColor: PropTypes.string,
254
- };
255
-
256
211
  export default Icon;
package/src/index.test.js CHANGED
@@ -1,95 +1,110 @@
1
1
 
2
2
  import React from 'react';
3
3
  import { mount } from 'enzyme';
4
- import Icon from './index';
4
+ import Icon, { SITE_KEYS } from './index';
5
5
 
6
6
  describe('<Icon />', () => {
7
7
  it('should render bars', () => {
8
- const component = mount(<Icon name="bars" height="34px" width="34px"/>);
8
+ const component = mount(<Icon name="bars" height="34px" width="34px" />);
9
9
  expect(component).toBeDefined();
10
10
  });
11
- it('should render chevron', () => {
12
- const component = mount(<Icon name="chevron" height="34px" width="34px"/>);
11
+ it('should render border-arrow-left', () => {
12
+ const component = mount(<Icon name="border-arrow-left" height="34px" width="34px" />);
13
13
  expect(component).toBeDefined();
14
14
  });
15
- it('should render chevron-up', () => {
16
- const component = mount(<Icon name="chevron-up" height="34px" width="34px"/>);
17
- expect(component).toBeDefined();
18
- });
19
- it('should render chevron-down', () => {
20
- const component = mount(<Icon name="chevron-down" height="34px" width="34px"/>);
15
+ it('should render border-arrow-right', () => {
16
+ const component = mount(<Icon name="border-arrow-right" height="34px" width="34px" />);
21
17
  expect(component).toBeDefined();
22
18
  });
23
- it('should render chevron-right', () => {
24
- const component = mount(<Icon name="chevron-right" height="34px" width="34px"/>);
25
- expect(component).toBeDefined();
26
- });
27
- it('should render facebook', () => {
28
- const component = mount(<Icon name="facebook" height="34px" width="34px"/>);
29
- expect(component).toBeDefined();
30
- });
31
- it('should render gq', () => {
32
- const component = mount(<Icon name="gq" height="34px" width="34px"/>);
19
+ it('should render chevron', () => {
20
+ const component = mount(<Icon name="chevron" height="34px" width="34px" />);
33
21
  expect(component).toBeDefined();
34
22
  });
35
- it('should render ironna', () => {
36
- const component = mount(<Icon name="ironna" height="34px" width="34px"/>);
23
+ it('should render chevron-up', () => {
24
+ const component = mount(<Icon name="chevron-up" height="34px" width="34px" />);
37
25
  expect(component).toBeDefined();
38
26
  });
39
- it('should render japan-forward', () => {
40
- const component = mount(<Icon name="japan-forward" height="34px" width="34px"/>);
27
+ it('should render chevron-down', () => {
28
+ const component = mount(<Icon name="chevron-down" height="34px" width="34px" />);
41
29
  expect(component).toBeDefined();
42
30
  });
43
- it('should render line', () => {
44
- const component = mount(<Icon name="line" height="34px" width="34px"/>);
31
+ it('should render chevron-right', () => {
32
+ const component = mount(<Icon name="chevron-right" height="34px" width="34px" />);
45
33
  expect(component).toBeDefined();
46
34
  });
35
+
47
36
  it('should render lock', () => {
48
- const component = mount(<Icon name="lock" height="34px" width="34px"/>);
49
- expect(component).toBeDefined();
50
- });
51
- it('should render logo', () => {
52
- const component = mount(<Icon name="sankei" height="34px" width="34px"/>);
53
- expect(component).toBeDefined();
54
- });
55
- it('should render member', () => {
56
- const component = mount(<Icon name="member" height="34px" width="34px"/>);
37
+ const component = mount(<Icon name="lock" height="34px" width="34px" />);
57
38
  expect(component).toBeDefined();
58
39
  });
40
+
59
41
  it('should render search', () => {
60
- const component = mount(<Icon name="search" height="34px" width="34px"/>);
42
+ const component = mount(<Icon name="search" height="34px" width="34px" />);
61
43
  expect(component).toBeDefined();
62
44
  });
63
45
  it('should render times', () => {
64
- const component = mount(<Icon name="times" height="34px" width="34px"/>);
65
- expect(component).toBeDefined();
66
- });
67
- it('should render twitter', () => {
68
- const component = mount(<Icon name="twitter" height="34px" width="34px"/>);
69
- expect(component).toBeDefined();
70
- });
71
- it('should render youtube', () => {
72
- const component = mount(<Icon name="youtube" height="34px" width="34px"/>);
73
- expect(component).toBeDefined();
74
- });
75
- it('should render wired', () => {
76
- const component = mount(<Icon name="wired" height="34px" width="34px"/>);
77
- expect(component).toBeDefined();
78
- });
79
- it('should render sankeisho', () => {
80
- const component = mount(<Icon name="sankeisyo" height="34px" width="34px"/>);
46
+ const component = mount(<Icon name="times" height="34px" width="34px" />);
81
47
  expect(component).toBeDefined();
82
48
  });
83
- it('should render naniwa', () => {
84
- const component = mount(<Icon name="naniwa" height="34px" width="34px"/>);
85
- expect(component).toBeDefined();
49
+
50
+ it('has valid SITE_KEYS', () => {
51
+ const keys = [
52
+ 'facebook',
53
+ 'gq',
54
+ 'ironna',
55
+ 'japan-forward',
56
+ 'line',
57
+ 'sankei',
58
+ 'member',
59
+ 'twitter',
60
+ 'youtube',
61
+ 'wired',
62
+ 'sankeisyo',
63
+ 'naniwa',
64
+ 'seiron',
65
+ 'instagram',
66
+ 'img_bar',
67
+ 'img_borderarrow-left',
68
+ 'img_borderarrow-left-biz',
69
+ 'img_borderarrow-left-deactive',
70
+ 'img_borderarrow-right',
71
+ 'img_borderarrow-right-biz',
72
+ 'img_borderarrow-right-deactive',
73
+ 'img_chevron',
74
+ 'img_chevron-deactive',
75
+ 'img_chevron-up',
76
+ 'img_chevron-down',
77
+ 'img_chevron-right',
78
+ 'img_chevron-right-deactive',
79
+ 'img_lock-gold',
80
+ 'img_lock-silver',
81
+ 'img_search',
82
+ 'img_times',
83
+ ];
84
+ expect(SITE_KEYS).toHaveLength(keys.length);
85
+ expect(SITE_KEYS).toMatchObject(keys);
86
86
  });
87
- it('should render seiron', () => {
88
- const component = mount(<Icon name="seiron" height="34px" width="34px"/>);
89
- expect(component).toBeDefined();
87
+
88
+ SITE_KEYS.forEach((key) => {
89
+ it(`should render ${key}`, () => {
90
+ const props = {
91
+ name: key,
92
+ width: '34px',
93
+ height: '34px',
94
+ className: 'some-class',
95
+ };
96
+ const component = mount(<Icon {...props} />);
97
+ expect(component).toBeDefined();
98
+ const img = component.find('img');
99
+ expect(img.prop('src')).toMatch(new RegExp(`/resources/icons/${key}.svg`));
100
+ expect(img.prop('width')).toEqual(props.width);
101
+ expect(img.prop('height')).toEqual(props.height);
102
+ expect(img.prop('className')).toMatch(new RegExp(props.className));
103
+ });
90
104
  });
105
+
91
106
  it('there is no icon', () => {
92
- const component = mount(<Icon name="noicon" height="34px" width="34px"/>);
107
+ const component = mount(<Icon name="noicon" height="34px" width="34px" />);
93
108
  expect(component.text()).toEqual('noicon');
94
109
  });
95
110
  });