@fortawesome/vue-fontawesome 2.0.5 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +8 -803
  3. package/index.es.js +288 -229
  4. package/index.js +636 -577
  5. package/package.json +41 -24
  6. package/src/components/FontAwesomeIcon.js +15 -3
  7. package/src/utils.js +5 -1
  8. package/.babelrc +0 -3
  9. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -24
  10. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  11. package/.github/workflows/ci.yml +0 -31
  12. package/.npmrc.proregistry +0 -2
  13. package/.tool-versions +0 -2
  14. package/CODE_OF_CONDUCT.md +0 -74
  15. package/CONTRIBUTING.md +0 -57
  16. package/DEVELOPMENT.md +0 -44
  17. package/bin/dev +0 -3
  18. package/bin/setup +0 -8
  19. package/examples/vue-cli-webpack/.babelrc +0 -12
  20. package/examples/vue-cli-webpack/.editorconfig +0 -9
  21. package/examples/vue-cli-webpack/.eslintignore +0 -4
  22. package/examples/vue-cli-webpack/.eslintrc.js +0 -29
  23. package/examples/vue-cli-webpack/.postcssrc.js +0 -10
  24. package/examples/vue-cli-webpack/README.md +0 -21
  25. package/examples/vue-cli-webpack/build/build.js +0 -41
  26. package/examples/vue-cli-webpack/build/check-versions.js +0 -54
  27. package/examples/vue-cli-webpack/build/logo.png +0 -0
  28. package/examples/vue-cli-webpack/build/utils.js +0 -101
  29. package/examples/vue-cli-webpack/build/vue-loader.conf.js +0 -22
  30. package/examples/vue-cli-webpack/build/webpack.base.conf.js +0 -91
  31. package/examples/vue-cli-webpack/build/webpack.dev.conf.js +0 -95
  32. package/examples/vue-cli-webpack/build/webpack.prod.conf.js +0 -145
  33. package/examples/vue-cli-webpack/config/dev.env.js +0 -7
  34. package/examples/vue-cli-webpack/config/index.js +0 -76
  35. package/examples/vue-cli-webpack/config/prod.env.js +0 -4
  36. package/examples/vue-cli-webpack/index.html +0 -13
  37. package/examples/vue-cli-webpack/package-lock.json +0 -11632
  38. package/examples/vue-cli-webpack/package.json +0 -77
  39. package/examples/vue-cli-webpack/src/App.vue +0 -66
  40. package/examples/vue-cli-webpack/src/assets/logo.png +0 -0
  41. package/examples/vue-cli-webpack/src/components/HelloWorld.vue +0 -113
  42. package/examples/vue-cli-webpack/src/main.js +0 -28
  43. package/examples/vue-cli-webpack/static/.gitkeep +0 -0
  44. package/rollup.config.js +0 -54
  45. package/src/components/__fixtures__/helpers.js +0 -40
  46. package/src/components/__fixtures__/icons.js +0 -35
  47. package/src/components/__tests__/FontAwesomeIcon.test.js +0 -337
  48. package/src/components/__tests__/FontAwesomeLayers.test.js +0 -55
  49. package/src/components/__tests__/FontAwesomeLayersText.test.js +0 -52
package/index.js CHANGED
@@ -1,578 +1,637 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fortawesome/fontawesome-svg-core')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@fortawesome/fontawesome-svg-core'], factory) :
4
- (factory((global['vue-fontawesome'] = {}),global.FontAwesome));
5
- }(this, (function (exports,fontawesomeSvgCore) { 'use strict';
6
-
7
- var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8
-
9
- function createCommonjsModule(fn, module) {
10
- return module = { exports: {} }, fn(module, module.exports), module.exports;
11
- }
12
-
13
- var humps = createCommonjsModule(function (module) {
14
- (function(global) {
15
-
16
- var _processKeys = function(convert, obj, options) {
17
- if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {
18
- return obj;
19
- }
20
-
21
- var output,
22
- i = 0,
23
- l = 0;
24
-
25
- if(_isArray(obj)) {
26
- output = [];
27
- for(l=obj.length; i<l; i++) {
28
- output.push(_processKeys(convert, obj[i], options));
29
- }
30
- }
31
- else {
32
- output = {};
33
- for(var key in obj) {
34
- if(Object.prototype.hasOwnProperty.call(obj, key)) {
35
- output[convert(key, options)] = _processKeys(convert, obj[key], options);
36
- }
37
- }
38
- }
39
- return output;
40
- };
41
-
42
- // String conversion methods
43
-
44
- var separateWords = function(string, options) {
45
- options = options || {};
46
- var separator = options.separator || '_';
47
- var split = options.split || /(?=[A-Z])/;
48
-
49
- return string.split(split).join(separator);
50
- };
51
-
52
- var camelize = function(string) {
53
- if (_isNumerical(string)) {
54
- return string;
55
- }
56
- string = string.replace(/[\-_\s]+(.)?/g, function(match, chr) {
57
- return chr ? chr.toUpperCase() : '';
58
- });
59
- // Ensure 1st char is always lowercase
60
- return string.substr(0, 1).toLowerCase() + string.substr(1);
61
- };
62
-
63
- var pascalize = function(string) {
64
- var camelized = camelize(string);
65
- // Ensure 1st char is always uppercase
66
- return camelized.substr(0, 1).toUpperCase() + camelized.substr(1);
67
- };
68
-
69
- var decamelize = function(string, options) {
70
- return separateWords(string, options).toLowerCase();
71
- };
72
-
73
- // Utilities
74
- // Taken from Underscore.js
75
-
76
- var toString = Object.prototype.toString;
77
-
78
- var _isFunction = function(obj) {
79
- return typeof(obj) === 'function';
80
- };
81
- var _isObject = function(obj) {
82
- return obj === Object(obj);
83
- };
84
- var _isArray = function(obj) {
85
- return toString.call(obj) == '[object Array]';
86
- };
87
- var _isDate = function(obj) {
88
- return toString.call(obj) == '[object Date]';
89
- };
90
- var _isRegExp = function(obj) {
91
- return toString.call(obj) == '[object RegExp]';
92
- };
93
- var _isBoolean = function(obj) {
94
- return toString.call(obj) == '[object Boolean]';
95
- };
96
-
97
- // Performant way to determine if obj coerces to a number
98
- var _isNumerical = function(obj) {
99
- obj = obj - 0;
100
- return obj === obj;
101
- };
102
-
103
- // Sets up function which handles processing keys
104
- // allowing the convert function to be modified by a callback
105
- var _processor = function(convert, options) {
106
- var callback = options && 'process' in options ? options.process : options;
107
-
108
- if(typeof(callback) !== 'function') {
109
- return convert;
110
- }
111
-
112
- return function(string, options) {
113
- return callback(string, convert, options);
114
- }
115
- };
116
-
117
- var humps = {
118
- camelize: camelize,
119
- decamelize: decamelize,
120
- pascalize: pascalize,
121
- depascalize: decamelize,
122
- camelizeKeys: function(object, options) {
123
- return _processKeys(_processor(camelize, options), object);
124
- },
125
- decamelizeKeys: function(object, options) {
126
- return _processKeys(_processor(decamelize, options), object, options);
127
- },
128
- pascalizeKeys: function(object, options) {
129
- return _processKeys(_processor(pascalize, options), object);
130
- },
131
- depascalizeKeys: function () {
132
- return this.decamelizeKeys.apply(this, arguments);
133
- }
134
- };
135
-
136
- if (typeof undefined === 'function' && undefined.amd) {
137
- undefined(humps);
138
- } else if ('object' !== 'undefined' && module.exports) {
139
- module.exports = humps;
140
- } else {
141
- global.humps = humps;
142
- }
143
-
144
- })(commonjsGlobal);
145
- });
146
-
147
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
148
- return typeof obj;
149
- } : function (obj) {
150
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
151
- };
152
-
153
- var defineProperty = function (obj, key, value) {
154
- if (key in obj) {
155
- Object.defineProperty(obj, key, {
156
- value: value,
157
- enumerable: true,
158
- configurable: true,
159
- writable: true
160
- });
161
- } else {
162
- obj[key] = value;
163
- }
164
-
165
- return obj;
166
- };
167
-
168
- var _extends = Object.assign || function (target) {
169
- for (var i = 1; i < arguments.length; i++) {
170
- var source = arguments[i];
171
-
172
- for (var key in source) {
173
- if (Object.prototype.hasOwnProperty.call(source, key)) {
174
- target[key] = source[key];
175
- }
176
- }
177
- }
178
-
179
- return target;
180
- };
181
-
182
- var objectWithoutProperties = function (obj, keys) {
183
- var target = {};
184
-
185
- for (var i in obj) {
186
- if (keys.indexOf(i) >= 0) continue;
187
- if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
188
- target[i] = obj[i];
189
- }
190
-
191
- return target;
192
- };
193
-
194
- var toConsumableArray = function (arr) {
195
- if (Array.isArray(arr)) {
196
- for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
197
-
198
- return arr2;
199
- } else {
200
- return Array.from(arr);
201
- }
202
- };
203
-
204
- function styleToObject(style) {
205
- return style.split(';').map(function (s) {
206
- return s.trim();
207
- }).filter(function (s) {
208
- return s;
209
- }).reduce(function (acc, pair) {
210
- var i = pair.indexOf(':');
211
- var prop = humps.camelize(pair.slice(0, i));
212
- var value = pair.slice(i + 1).trim();
213
-
214
- acc[prop] = value;
215
-
216
- return acc;
217
- }, {});
218
- }
219
-
220
- function classToObject(cls) {
221
- return cls.split(/\s+/).reduce(function (acc, c) {
222
- acc[c] = true;
223
-
224
- return acc;
225
- }, {});
226
- }
227
-
228
- function combineClassObjects() {
229
- for (var _len = arguments.length, objs = Array(_len), _key = 0; _key < _len; _key++) {
230
- objs[_key] = arguments[_key];
231
- }
232
-
233
- return objs.reduce(function (acc, obj) {
234
- if (Array.isArray(obj)) {
235
- acc = acc.concat(obj);
236
- } else {
237
- acc.push(obj);
238
- }
239
-
240
- return acc;
241
- }, []);
242
- }
243
-
244
- function convert(h, element) {
245
- var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
246
- var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
247
-
248
- var children = (element.children || []).map(convert.bind(null, h));
249
-
250
- var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {
251
- var val = element.attributes[key];
252
-
253
- switch (key) {
254
- case 'class':
255
- acc['class'] = classToObject(val);
256
- break;
257
- case 'style':
258
- acc['style'] = styleToObject(val);
259
- break;
260
- default:
261
- acc.attrs[key] = val;
262
- }
263
-
264
- return acc;
265
- }, { 'class': {}, style: {}, attrs: {} });
266
-
267
- var _data$class = data.class,
268
- dClass = _data$class === undefined ? {} : _data$class,
269
- _data$style = data.style,
270
- dStyle = _data$style === undefined ? {} : _data$style,
271
- _data$attrs = data.attrs,
272
- dAttrs = _data$attrs === undefined ? {} : _data$attrs,
273
- remainingData = objectWithoutProperties(data, ['class', 'style', 'attrs']);
274
-
275
-
276
- if (typeof element === 'string') {
277
- return element;
278
- } else {
279
- return h(element.tag, _extends({
280
- class: combineClassObjects(mixins.class, dClass),
281
- style: _extends({}, mixins.style, dStyle),
282
- attrs: _extends({}, mixins.attrs, dAttrs)
283
- }, remainingData, {
284
- props: props
285
- }), children);
286
- }
287
- }
288
-
289
- var PRODUCTION = false;
290
-
291
- try {
292
- PRODUCTION = process.env.NODE_ENV === 'production';
293
- } catch (e) {}
294
-
295
- function log () {
296
- if (!PRODUCTION && console && typeof console.error === 'function') {
297
- var _console;
298
-
299
- (_console = console).error.apply(_console, arguments);
300
- }
301
- }
302
-
303
- function objectWithKey(key, value) {
304
- return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? defineProperty({}, key, value) : {};
305
- }
306
-
307
- function classList(props) {
308
- var _classes;
309
-
310
- var classes = (_classes = {
311
- 'fa-spin': props.spin,
312
- 'fa-spin-pulse': props.spinPulse,
313
- 'fa-spin-reverse': props.spinReverse,
314
- 'fa-pulse': props.pulse,
315
- 'fa-beat': props.beat,
316
- 'fa-fade': props.fade,
317
- 'fa-flash': props.flash,
318
- 'fa-fw': props.fixedWidth,
319
- 'fa-border': props.border,
320
- 'fa-li': props.listItem,
321
- 'fa-inverse': props.inverse,
322
- 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',
323
- 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'
324
- }, defineProperty(_classes, 'fa-' + props.size, props.size !== null), defineProperty(_classes, 'fa-rotate-' + props.rotation, props.rotation !== null), defineProperty(_classes, 'fa-pull-' + props.pull, props.pull !== null), defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes);
325
-
326
- return Object.keys(classes).map(function (key) {
327
- return classes[key] ? key : null;
328
- }).filter(function (key) {
329
- return key;
330
- });
331
- }
332
-
333
- function addStaticClass(to, what) {
334
- var val = (to || '').length === 0 ? [] : [to];
335
-
336
- return val.concat(what).join(' ');
337
- }
338
-
339
- function normalizeIconArgs(icon) {
340
- // this has everything that it needs to be rendered which means it was probably imported
341
- // directly from an icon svg package
342
- if (icon && (typeof icon === 'undefined' ? 'undefined' : _typeof(icon)) === 'object' && icon.prefix && icon.iconName && icon.icon) {
343
- return icon;
344
- }
345
-
346
- if (fontawesomeSvgCore.parse.icon) {
347
- return fontawesomeSvgCore.parse.icon(icon);
348
- }
349
-
350
- if (icon === null) {
351
- return null;
352
- }
353
-
354
- if ((typeof icon === 'undefined' ? 'undefined' : _typeof(icon)) === 'object' && icon.prefix && icon.iconName) {
355
- return icon;
356
- }
357
-
358
- if (Array.isArray(icon) && icon.length === 2) {
359
- return { prefix: icon[0], iconName: icon[1] };
360
- }
361
-
362
- if (typeof icon === 'string') {
363
- return { prefix: 'fas', iconName: icon };
364
- }
365
- }
366
-
367
- var FontAwesomeIcon = {
368
- name: 'FontAwesomeIcon',
369
-
370
- functional: true,
371
-
372
- props: {
373
- beat: {
374
- type: Boolean,
375
- default: false
376
- },
377
- border: {
378
- type: Boolean,
379
- default: false
380
- },
381
- fade: {
382
- type: Boolean,
383
- default: false
384
- },
385
- fixedWidth: {
386
- type: Boolean,
387
- default: false
388
- },
389
- flash: {
390
- type: Boolean,
391
- default: false
392
- },
393
- flip: {
394
- type: String,
395
- default: null,
396
- validator: function validator(value) {
397
- return ['horizontal', 'vertical', 'both'].indexOf(value) > -1;
398
- }
399
- },
400
- icon: {
401
- type: [Object, Array, String],
402
- required: true
403
- },
404
- mask: {
405
- type: [Object, Array, String],
406
- default: null
407
- },
408
- listItem: {
409
- type: Boolean,
410
- default: false
411
- },
412
- pull: {
413
- type: String,
414
- default: null,
415
- validator: function validator(value) {
416
- return ['right', 'left'].indexOf(value) > -1;
417
- }
418
- },
419
- pulse: {
420
- type: Boolean,
421
- default: false
422
- },
423
- rotation: {
424
- type: [String, Number],
425
- default: null,
426
- validator: function validator(value) {
427
- return [90, 180, 270].indexOf(parseInt(value, 10)) > -1;
428
- }
429
- },
430
- swapOpacity: {
431
- type: Boolean,
432
- default: false
433
- },
434
- size: {
435
- type: String,
436
- default: null,
437
- validator: function validator(value) {
438
- return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;
439
- }
440
- },
441
- spin: {
442
- type: Boolean,
443
- default: false
444
- },
445
- spinPulse: {
446
- type: Boolean,
447
- default: false
448
- },
449
- spinReverse: {
450
- type: Boolean,
451
- default: false
452
- },
453
- transform: {
454
- type: [String, Object],
455
- default: null
456
- },
457
- symbol: {
458
- type: [Boolean, String],
459
- default: false
460
- },
461
- title: {
462
- type: String,
463
- default: null
464
- },
465
- inverse: {
466
- type: Boolean,
467
- default: false
468
- }
469
- },
470
-
471
- render: function render(createElement, context) {
472
- var props = context.props;
473
- var iconArgs = props.icon,
474
- maskArgs = props.mask,
475
- symbol = props.symbol,
476
- title = props.title;
477
-
478
- var icon = normalizeIconArgs(iconArgs);
479
- var classes = objectWithKey('classes', classList(props));
480
- var transform = objectWithKey('transform', typeof props.transform === 'string' ? fontawesomeSvgCore.parse.transform(props.transform) : props.transform);
481
- var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));
482
- var renderedIcon = fontawesomeSvgCore.icon(icon, _extends({}, classes, transform, mask, { symbol: symbol, title: title }));
483
-
484
- if (!renderedIcon) {
485
- return log('Could not find one or more icon(s)', icon, mask);
486
- }
487
-
488
- var abstract = renderedIcon.abstract;
489
-
490
- var convertCurry = convert.bind(null, createElement);
491
-
492
- return convertCurry(abstract[0], {}, context.data);
493
- }
494
- };
495
-
496
- var FontAwesomeLayers = {
497
- name: 'FontAwesomeLayers',
498
-
499
- functional: true,
500
-
501
- props: {
502
- fixedWidth: {
503
- type: Boolean,
504
- default: false
505
- }
506
- },
507
-
508
- render: function render(createElement, context) {
509
- var familyPrefix = fontawesomeSvgCore.config.familyPrefix;
510
- var staticClass = context.data.staticClass;
511
-
512
-
513
- var classes = [familyPrefix + '-layers'].concat(toConsumableArray(context.props.fixedWidth ? [familyPrefix + '-fw'] : []));
514
-
515
- return createElement('div', _extends({}, context.data, {
516
- staticClass: addStaticClass(staticClass, classes)
517
- }), context.children);
518
- }
519
- };
520
-
521
- var FontAwesomeLayersText = {
522
- name: 'FontAwesomeLayersText',
523
-
524
- functional: true,
525
-
526
- props: {
527
- value: {
528
- type: [String, Number],
529
- default: ''
530
- },
531
- transform: {
532
- type: [String, Object],
533
- default: null
534
- },
535
- counter: {
536
- type: Boolean,
537
- default: false
538
- },
539
- position: {
540
- type: String,
541
- default: null,
542
- validator: function validator(value) {
543
- return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;
544
- }
545
- }
546
- },
547
-
548
- render: function render(createElement, context) {
549
- var familyPrefix = fontawesomeSvgCore.config.familyPrefix;
550
- var props = context.props;
551
-
552
-
553
- var classes = objectWithKey('classes', [].concat(toConsumableArray(props.counter ? [familyPrefix + '-layers-counter'] : []), toConsumableArray(props.position ? [familyPrefix + '-layers-' + props.position] : [])));
554
-
555
- var transform = objectWithKey('transform', typeof props.transform === 'string' ? fontawesomeSvgCore.parse.transform(props.transform) : props.transform);
556
-
557
- var renderedText = fontawesomeSvgCore.text(props.value.toString(), _extends({}, transform, classes));
558
-
559
- var abstract = renderedText.abstract;
560
-
561
-
562
- if (props.counter) {
563
- abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');
564
- }
565
-
566
- var convertCurry = convert.bind(null, createElement);
567
-
568
- return convertCurry(abstract[0], {}, context.data);
569
- }
570
- };
571
-
572
- exports.FontAwesomeIcon = FontAwesomeIcon;
573
- exports.FontAwesomeLayers = FontAwesomeLayers;
574
- exports.FontAwesomeLayersText = FontAwesomeLayersText;
575
-
576
- Object.defineProperty(exports, '__esModule', { value: true });
577
-
578
- })));
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@fortawesome/fontawesome-svg-core')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@fortawesome/fontawesome-svg-core'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["vue-fontawesome"] = {}, global.FontAwesome));
5
+ })(this, (function (exports, fontawesomeSvgCore) { 'use strict';
6
+
7
+ function ownKeys(object, enumerableOnly) {
8
+ var keys = Object.keys(object);
9
+
10
+ if (Object.getOwnPropertySymbols) {
11
+ var symbols = Object.getOwnPropertySymbols(object);
12
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
13
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
14
+ })), keys.push.apply(keys, symbols);
15
+ }
16
+
17
+ return keys;
18
+ }
19
+
20
+ function _objectSpread2(target) {
21
+ for (var i = 1; i < arguments.length; i++) {
22
+ var source = null != arguments[i] ? arguments[i] : {};
23
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
24
+ _defineProperty(target, key, source[key]);
25
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
26
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
27
+ });
28
+ }
29
+
30
+ return target;
31
+ }
32
+
33
+ function _typeof(obj) {
34
+ "@babel/helpers - typeof";
35
+
36
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
37
+ return typeof obj;
38
+ } : function (obj) {
39
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
40
+ }, _typeof(obj);
41
+ }
42
+
43
+ function _defineProperty(obj, key, value) {
44
+ if (key in obj) {
45
+ Object.defineProperty(obj, key, {
46
+ value: value,
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true
50
+ });
51
+ } else {
52
+ obj[key] = value;
53
+ }
54
+
55
+ return obj;
56
+ }
57
+
58
+ function _objectWithoutPropertiesLoose(source, excluded) {
59
+ if (source == null) return {};
60
+ var target = {};
61
+ var sourceKeys = Object.keys(source);
62
+ var key, i;
63
+
64
+ for (i = 0; i < sourceKeys.length; i++) {
65
+ key = sourceKeys[i];
66
+ if (excluded.indexOf(key) >= 0) continue;
67
+ target[key] = source[key];
68
+ }
69
+
70
+ return target;
71
+ }
72
+
73
+ function _objectWithoutProperties(source, excluded) {
74
+ if (source == null) return {};
75
+
76
+ var target = _objectWithoutPropertiesLoose(source, excluded);
77
+
78
+ var key, i;
79
+
80
+ if (Object.getOwnPropertySymbols) {
81
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
82
+
83
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
84
+ key = sourceSymbolKeys[i];
85
+ if (excluded.indexOf(key) >= 0) continue;
86
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
87
+ target[key] = source[key];
88
+ }
89
+ }
90
+
91
+ return target;
92
+ }
93
+
94
+ function _toConsumableArray(arr) {
95
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
96
+ }
97
+
98
+ function _arrayWithoutHoles(arr) {
99
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
100
+ }
101
+
102
+ function _iterableToArray(iter) {
103
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
104
+ }
105
+
106
+ function _unsupportedIterableToArray(o, minLen) {
107
+ if (!o) return;
108
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
109
+ var n = Object.prototype.toString.call(o).slice(8, -1);
110
+ if (n === "Object" && o.constructor) n = o.constructor.name;
111
+ if (n === "Map" || n === "Set") return Array.from(o);
112
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
113
+ }
114
+
115
+ function _arrayLikeToArray(arr, len) {
116
+ if (len == null || len > arr.length) len = arr.length;
117
+
118
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
119
+
120
+ return arr2;
121
+ }
122
+
123
+ function _nonIterableSpread() {
124
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
125
+ }
126
+
127
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
128
+
129
+ var humps$1 = {exports: {}};
130
+
131
+ (function (module) {
132
+ (function(global) {
133
+
134
+ var _processKeys = function(convert, obj, options) {
135
+ if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {
136
+ return obj;
137
+ }
138
+
139
+ var output,
140
+ i = 0,
141
+ l = 0;
142
+
143
+ if(_isArray(obj)) {
144
+ output = [];
145
+ for(l=obj.length; i<l; i++) {
146
+ output.push(_processKeys(convert, obj[i], options));
147
+ }
148
+ }
149
+ else {
150
+ output = {};
151
+ for(var key in obj) {
152
+ if(Object.prototype.hasOwnProperty.call(obj, key)) {
153
+ output[convert(key, options)] = _processKeys(convert, obj[key], options);
154
+ }
155
+ }
156
+ }
157
+ return output;
158
+ };
159
+
160
+ // String conversion methods
161
+
162
+ var separateWords = function(string, options) {
163
+ options = options || {};
164
+ var separator = options.separator || '_';
165
+ var split = options.split || /(?=[A-Z])/;
166
+
167
+ return string.split(split).join(separator);
168
+ };
169
+
170
+ var camelize = function(string) {
171
+ if (_isNumerical(string)) {
172
+ return string;
173
+ }
174
+ string = string.replace(/[\-_\s]+(.)?/g, function(match, chr) {
175
+ return chr ? chr.toUpperCase() : '';
176
+ });
177
+ // Ensure 1st char is always lowercase
178
+ return string.substr(0, 1).toLowerCase() + string.substr(1);
179
+ };
180
+
181
+ var pascalize = function(string) {
182
+ var camelized = camelize(string);
183
+ // Ensure 1st char is always uppercase
184
+ return camelized.substr(0, 1).toUpperCase() + camelized.substr(1);
185
+ };
186
+
187
+ var decamelize = function(string, options) {
188
+ return separateWords(string, options).toLowerCase();
189
+ };
190
+
191
+ // Utilities
192
+ // Taken from Underscore.js
193
+
194
+ var toString = Object.prototype.toString;
195
+
196
+ var _isFunction = function(obj) {
197
+ return typeof(obj) === 'function';
198
+ };
199
+ var _isObject = function(obj) {
200
+ return obj === Object(obj);
201
+ };
202
+ var _isArray = function(obj) {
203
+ return toString.call(obj) == '[object Array]';
204
+ };
205
+ var _isDate = function(obj) {
206
+ return toString.call(obj) == '[object Date]';
207
+ };
208
+ var _isRegExp = function(obj) {
209
+ return toString.call(obj) == '[object RegExp]';
210
+ };
211
+ var _isBoolean = function(obj) {
212
+ return toString.call(obj) == '[object Boolean]';
213
+ };
214
+
215
+ // Performant way to determine if obj coerces to a number
216
+ var _isNumerical = function(obj) {
217
+ obj = obj - 0;
218
+ return obj === obj;
219
+ };
220
+
221
+ // Sets up function which handles processing keys
222
+ // allowing the convert function to be modified by a callback
223
+ var _processor = function(convert, options) {
224
+ var callback = options && 'process' in options ? options.process : options;
225
+
226
+ if(typeof(callback) !== 'function') {
227
+ return convert;
228
+ }
229
+
230
+ return function(string, options) {
231
+ return callback(string, convert, options);
232
+ }
233
+ };
234
+
235
+ var humps = {
236
+ camelize: camelize,
237
+ decamelize: decamelize,
238
+ pascalize: pascalize,
239
+ depascalize: decamelize,
240
+ camelizeKeys: function(object, options) {
241
+ return _processKeys(_processor(camelize, options), object);
242
+ },
243
+ decamelizeKeys: function(object, options) {
244
+ return _processKeys(_processor(decamelize, options), object, options);
245
+ },
246
+ pascalizeKeys: function(object, options) {
247
+ return _processKeys(_processor(pascalize, options), object);
248
+ },
249
+ depascalizeKeys: function () {
250
+ return this.decamelizeKeys.apply(this, arguments);
251
+ }
252
+ };
253
+
254
+ if (module.exports) {
255
+ module.exports = humps;
256
+ } else {
257
+ global.humps = humps;
258
+ }
259
+
260
+ })(commonjsGlobal);
261
+ } (humps$1));
262
+
263
+ var humps = humps$1.exports;
264
+
265
+ var _excluded = ["class", "style", "attrs"];
266
+
267
+ function styleToObject(style) {
268
+ return style.split(';').map(function (s) {
269
+ return s.trim();
270
+ }).filter(function (s) {
271
+ return s;
272
+ }).reduce(function (acc, pair) {
273
+ var i = pair.indexOf(':');
274
+ var prop = humps.camelize(pair.slice(0, i));
275
+ var value = pair.slice(i + 1).trim();
276
+ acc[prop] = value;
277
+ return acc;
278
+ }, {});
279
+ }
280
+
281
+ function classToObject(cls) {
282
+ return cls.split(/\s+/).reduce(function (acc, c) {
283
+ acc[c] = true;
284
+ return acc;
285
+ }, {});
286
+ }
287
+
288
+ function combineClassObjects() {
289
+ for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {
290
+ objs[_key] = arguments[_key];
291
+ }
292
+
293
+ return objs.reduce(function (acc, obj) {
294
+ if (Array.isArray(obj)) {
295
+ acc = acc.concat(obj);
296
+ } else {
297
+ acc.push(obj);
298
+ }
299
+
300
+ return acc;
301
+ }, []);
302
+ }
303
+
304
+ function convert(h, element) {
305
+ var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
306
+ var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
307
+ var children = (element.children || []).map(convert.bind(null, h));
308
+ var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {
309
+ var val = element.attributes[key];
310
+
311
+ switch (key) {
312
+ case 'class':
313
+ acc['class'] = classToObject(val);
314
+ break;
315
+
316
+ case 'style':
317
+ acc['style'] = styleToObject(val);
318
+ break;
319
+
320
+ default:
321
+ acc.attrs[key] = val;
322
+ }
323
+
324
+ return acc;
325
+ }, {
326
+ 'class': {},
327
+ style: {},
328
+ attrs: {}
329
+ });
330
+
331
+ var _data$class = data.class,
332
+ dClass = _data$class === void 0 ? {} : _data$class,
333
+ _data$style = data.style,
334
+ dStyle = _data$style === void 0 ? {} : _data$style,
335
+ _data$attrs = data.attrs,
336
+ dAttrs = _data$attrs === void 0 ? {} : _data$attrs,
337
+ remainingData = _objectWithoutProperties(data, _excluded);
338
+
339
+ if (typeof element === 'string') {
340
+ return element;
341
+ } else {
342
+ return h(element.tag, _objectSpread2(_objectSpread2({
343
+ class: combineClassObjects(mixins.class, dClass),
344
+ style: _objectSpread2(_objectSpread2({}, mixins.style), dStyle),
345
+ attrs: _objectSpread2(_objectSpread2({}, mixins.attrs), dAttrs)
346
+ }, remainingData), {}, {
347
+ props: props
348
+ }), children);
349
+ }
350
+ }
351
+
352
+ var PRODUCTION = false;
353
+
354
+ try {
355
+ PRODUCTION = process.env.NODE_ENV === 'production';
356
+ } catch (e) {}
357
+
358
+ function log () {
359
+ if (!PRODUCTION && console && typeof console.error === 'function') {
360
+ var _console;
361
+
362
+ (_console = console).error.apply(_console, arguments);
363
+ }
364
+ }
365
+
366
+ function objectWithKey(key, value) {
367
+ return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};
368
+ }
369
+ function classList(props) {
370
+ var _classes;
371
+
372
+ var classes = (_classes = {
373
+ 'fa-spin': props.spin,
374
+ 'fa-spin-pulse': props.spinPulse,
375
+ 'fa-spin-reverse': props.spinReverse,
376
+ 'fa-pulse': props.pulse,
377
+ 'fa-beat': props.beat,
378
+ 'fa-fade': props.fade,
379
+ 'fa-flash': props.flash,
380
+ 'fa-fw': props.fixedWidth,
381
+ 'fa-border': props.border,
382
+ 'fa-li': props.listItem,
383
+ 'fa-inverse': props.inverse,
384
+ 'fa-flip': props.flip === true,
385
+ 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',
386
+ 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'
387
+ }, _defineProperty(_classes, "fa-".concat(props.size), props.size !== null), _defineProperty(_classes, "fa-rotate-".concat(props.rotation), props.rotation !== null), _defineProperty(_classes, "fa-pull-".concat(props.pull), props.pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _defineProperty(_classes, 'fa-bounce', props.bounce), _defineProperty(_classes, 'fa-shake', props.shake), _defineProperty(_classes, 'fa-beat-fade', props.beatFade), _classes);
388
+ return Object.keys(classes).map(function (key) {
389
+ return classes[key] ? key : null;
390
+ }).filter(function (key) {
391
+ return key;
392
+ });
393
+ }
394
+ function addStaticClass(to, what) {
395
+ var val = (to || '').length === 0 ? [] : [to];
396
+ return val.concat(what).join(' ');
397
+ }
398
+
399
+ function normalizeIconArgs(icon) {
400
+ // this has everything that it needs to be rendered which means it was probably imported
401
+ // directly from an icon svg package
402
+ if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {
403
+ return icon;
404
+ }
405
+
406
+ if (fontawesomeSvgCore.parse.icon) {
407
+ return fontawesomeSvgCore.parse.icon(icon);
408
+ }
409
+
410
+ if (icon === null) {
411
+ return null;
412
+ }
413
+
414
+ if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {
415
+ return icon;
416
+ }
417
+
418
+ if (Array.isArray(icon) && icon.length === 2) {
419
+ return {
420
+ prefix: icon[0],
421
+ iconName: icon[1]
422
+ };
423
+ }
424
+
425
+ if (typeof icon === 'string') {
426
+ return {
427
+ prefix: 'fas',
428
+ iconName: icon
429
+ };
430
+ }
431
+ }
432
+
433
+ var FontAwesomeIcon = {
434
+ name: 'FontAwesomeIcon',
435
+ functional: true,
436
+ props: {
437
+ beat: {
438
+ type: Boolean,
439
+ default: false
440
+ },
441
+ border: {
442
+ type: Boolean,
443
+ default: false
444
+ },
445
+ fade: {
446
+ type: Boolean,
447
+ default: false
448
+ },
449
+ fixedWidth: {
450
+ type: Boolean,
451
+ default: false
452
+ },
453
+ flash: {
454
+ type: Boolean,
455
+ default: false
456
+ },
457
+ flip: {
458
+ type: [Boolean, String],
459
+ default: false,
460
+ validator: function validator(value) {
461
+ return [true, false, 'horizontal', 'vertical', 'both'].indexOf(value) > -1;
462
+ }
463
+ },
464
+ icon: {
465
+ type: [Object, Array, String],
466
+ required: true
467
+ },
468
+ mask: {
469
+ type: [Object, Array, String],
470
+ default: null
471
+ },
472
+ listItem: {
473
+ type: Boolean,
474
+ default: false
475
+ },
476
+ pull: {
477
+ type: String,
478
+ default: null,
479
+ validator: function validator(value) {
480
+ return ['right', 'left'].indexOf(value) > -1;
481
+ }
482
+ },
483
+ pulse: {
484
+ type: Boolean,
485
+ default: false
486
+ },
487
+ rotation: {
488
+ type: [String, Number],
489
+ default: null,
490
+ validator: function validator(value) {
491
+ return [90, 180, 270].indexOf(parseInt(value, 10)) > -1;
492
+ }
493
+ },
494
+ swapOpacity: {
495
+ type: Boolean,
496
+ default: false
497
+ },
498
+ size: {
499
+ type: String,
500
+ default: null,
501
+ validator: function validator(value) {
502
+ return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;
503
+ }
504
+ },
505
+ spin: {
506
+ type: Boolean,
507
+ default: false
508
+ },
509
+ spinPulse: {
510
+ type: Boolean,
511
+ default: false
512
+ },
513
+ spinReverse: {
514
+ type: Boolean,
515
+ default: false
516
+ },
517
+ transform: {
518
+ type: [String, Object],
519
+ default: null
520
+ },
521
+ symbol: {
522
+ type: [Boolean, String],
523
+ default: false
524
+ },
525
+ title: {
526
+ type: String,
527
+ default: null
528
+ },
529
+ inverse: {
530
+ type: Boolean,
531
+ default: false
532
+ },
533
+ bounce: {
534
+ type: Boolean,
535
+ default: false
536
+ },
537
+ shake: {
538
+ type: Boolean,
539
+ default: false
540
+ },
541
+ beatFade: {
542
+ type: Boolean,
543
+ default: false
544
+ }
545
+ },
546
+ render: function render(createElement, context) {
547
+ var props = context.props;
548
+ var iconArgs = props.icon,
549
+ maskArgs = props.mask,
550
+ symbol = props.symbol,
551
+ title = props.title;
552
+ var icon = normalizeIconArgs(iconArgs);
553
+ var classes = objectWithKey('classes', classList(props));
554
+ var transform = objectWithKey('transform', typeof props.transform === 'string' ? fontawesomeSvgCore.parse.transform(props.transform) : props.transform);
555
+ var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));
556
+ var renderedIcon = fontawesomeSvgCore.icon(icon, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {
557
+ symbol: symbol,
558
+ title: title
559
+ }));
560
+
561
+ if (!renderedIcon) {
562
+ return log('Could not find one or more icon(s)', icon, mask);
563
+ }
564
+
565
+ var abstract = renderedIcon.abstract;
566
+ var convertCurry = convert.bind(null, createElement);
567
+ return convertCurry(abstract[0], {}, context.data);
568
+ }
569
+ };
570
+
571
+ var FontAwesomeLayers = {
572
+ name: 'FontAwesomeLayers',
573
+ functional: true,
574
+ props: {
575
+ fixedWidth: {
576
+ type: Boolean,
577
+ default: false
578
+ }
579
+ },
580
+ render: function render(createElement, context) {
581
+ var familyPrefix = fontawesomeSvgCore.config.familyPrefix;
582
+ var staticClass = context.data.staticClass;
583
+ var classes = ["".concat(familyPrefix, "-layers")].concat(_toConsumableArray(context.props.fixedWidth ? ["".concat(familyPrefix, "-fw")] : []));
584
+ return createElement('div', _objectSpread2(_objectSpread2({}, context.data), {}, {
585
+ staticClass: addStaticClass(staticClass, classes)
586
+ }), context.children);
587
+ }
588
+ };
589
+
590
+ var FontAwesomeLayersText = {
591
+ name: 'FontAwesomeLayersText',
592
+ functional: true,
593
+ props: {
594
+ value: {
595
+ type: [String, Number],
596
+ default: ''
597
+ },
598
+ transform: {
599
+ type: [String, Object],
600
+ default: null
601
+ },
602
+ counter: {
603
+ type: Boolean,
604
+ default: false
605
+ },
606
+ position: {
607
+ type: String,
608
+ default: null,
609
+ validator: function validator(value) {
610
+ return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;
611
+ }
612
+ }
613
+ },
614
+ render: function render(createElement, context) {
615
+ var familyPrefix = fontawesomeSvgCore.config.familyPrefix;
616
+ var props = context.props;
617
+ var classes = objectWithKey('classes', [].concat(_toConsumableArray(props.counter ? ["".concat(familyPrefix, "-layers-counter")] : []), _toConsumableArray(props.position ? ["".concat(familyPrefix, "-layers-").concat(props.position)] : [])));
618
+ var transform = objectWithKey('transform', typeof props.transform === 'string' ? fontawesomeSvgCore.parse.transform(props.transform) : props.transform);
619
+ var renderedText = fontawesomeSvgCore.text(props.value.toString(), _objectSpread2(_objectSpread2({}, transform), classes));
620
+ var abstract = renderedText.abstract;
621
+
622
+ if (props.counter) {
623
+ abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');
624
+ }
625
+
626
+ var convertCurry = convert.bind(null, createElement);
627
+ return convertCurry(abstract[0], {}, context.data);
628
+ }
629
+ };
630
+
631
+ exports.FontAwesomeIcon = FontAwesomeIcon;
632
+ exports.FontAwesomeLayers = FontAwesomeLayers;
633
+ exports.FontAwesomeLayersText = FontAwesomeLayersText;
634
+
635
+ Object.defineProperty(exports, '__esModule', { value: true });
636
+
637
+ }));