UNPKG

10.6 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.getElement = exports.getContainerElement = exports.getClassName = exports.delay = exports.styleElement = exports.flippyTailClass = exports.callAll = exports.onUserInputChange = exports.lightenDarken = exports.capitalizeEveryWord = exports.flippyMultiTail = exports.flatten = exports.advancedMulti = exports.getDynamicColors = exports.compose = undefined;
7
8var _promise = require('babel-runtime/core-js/promise');
9
10var _promise2 = _interopRequireDefault(_promise);
11
12var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
13
14var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
15
16var _entries = require('babel-runtime/core-js/object/entries');
17
18var _entries2 = _interopRequireDefault(_entries);
19
20var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
21
22var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
23
24exports.flippyClass = flippyClass;
25
26var _tinycolor = require('tinycolor2');
27
28var _tinycolor2 = _interopRequireDefault(_tinycolor);
29
30function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
32var compose = exports.compose = function compose() {
33 for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
34 fns[_key] = arguments[_key];
35 }
36
37 return function (x) {
38 return fns.reduceRight(function (v, f) {
39 return f(v);
40 }, x);
41 };
42};
43
44function flippyClass(bool, base, truthy, falsy) {
45 return base + ' ' + (bool ? base + '--' + truthy : base + '--' + falsy);
46}
47
48var getDynamicColors = exports.getDynamicColors = function getDynamicColors(inputColors) {
49 return {
50 on: {
51 backgroundColorA: (0, _tinycolor2.default)(inputColors.on.backgroundColor).toString(),
52 backgroundColorB: (0, _tinycolor2.default)(inputColors.on.backgroundColor).darken(inputColors.intensityB).toString(),
53 backgroundColorC: (0, _tinycolor2.default)(inputColors.on.backgroundColor).darken(inputColors.intensityC).toString()
54 },
55 off: {
56 backgroundColorA: (0, _tinycolor2.default)(inputColors.off.backgroundColor).toString(),
57 backgroundColorB: (0, _tinycolor2.default)(inputColors.off.backgroundColor).darken(inputColors.intensityB).toString(),
58 backgroundColorC: (0, _tinycolor2.default)(inputColors.off.backgroundColor).darken(inputColors.intensityC).toString()
59 },
60 disabled: { backgroundColor: inputColors.disabled.backgroundColor }
61 };
62};
63
64// export const multiClass = (customNames, suffixes) => {
65// let output = []
66// customNames.forEach(customName => {
67// return suffixes.forEach(suffix => output.push(`${customName}${suffix}`))
68// })
69// output.join(' ')
70// return output
71// }
72
73// export const flippyMulti = (unflattenedBases, ...args) => {
74// const output = []
75
76// const run = bases => {
77// console.log(bases)
78// bases.forEach(base => {
79// if (base) {
80// if (Array.isArray(base)) {
81// run(base)
82// } else {
83// output.push(flippyMultiTail(base, ...args))
84// }
85// }
86// })
87// }
88// run(unflattenedBases)
89// return output.join(` `)
90// }
91
92// export const unflippyMultiBase = (bases, tail) => {
93// const output = []
94// bases.forEach(base => {
95// if (base) {
96// output.push(`${base} ${base}--${tail}`)
97// }
98// })
99// return output.join(` `)
100// }
101
102// export const flippyMultiBase = (bool, unflattenedBases, truthy = '', falsy = '') => {
103// const output = []
104// const run = bases => {
105// bases.forEach(base => {
106// if (base) {
107// if (Array.isArray(base)) {
108// run(base)
109// } else {
110// if (truthy.length > 0 && falsy.length > 0) {
111// output.push(flippyClass(bool, base, truthy, falsy))
112// } else {
113// output.push(base)
114// }
115// }
116// }
117// })
118// }
119// run(unflattenedBases)
120// return output.join(` `)
121// }
122
123var advancedMulti = exports.advancedMulti = function advancedMulti(_ref) {
124 var _ref$hideBase = _ref.hideBase,
125 hideBase = _ref$hideBase === undefined ? false : _ref$hideBase,
126 _ref$soloBase = _ref.soloBase,
127 soloBase = _ref$soloBase === undefined ? '' : _ref$soloBase,
128 _ref$unflattenedBases = _ref.unflattenedBases,
129 unflattenedBases = _ref$unflattenedBases === undefined ? [] : _ref$unflattenedBases,
130 _ref$suffixes = _ref.suffixes,
131 suffixes = _ref$suffixes === undefined ? [] : _ref$suffixes,
132 _ref$flipVars = _ref.flipVars,
133 flipVars = _ref$flipVars === undefined ? [] : _ref$flipVars;
134
135 var output = [];
136 var run = function run(bases) {
137 //console.log(bases)
138 bases.forEach(function (base) {
139 if (base) {
140 if (Array.isArray(base)) {
141 run(base);
142 } else {
143 output.push(convertBase({ base: base, suffixes: suffixes, flipVars: flipVars }));
144 }
145 }
146 });
147 };
148 var convertBase = function convertBase(_ref2) {
149 var base = _ref2.base,
150 suffixes = _ref2.suffixes,
151 flipVars = _ref2.flipVars;
152
153 if (suffixes) {
154 var suffixedBaseArray = hideBase ? [] : [base];
155 suffixes.forEach(function (suffix) {
156 return suffixedBaseArray.push('' + base + suffix);
157 });
158 var flippyBaseArray = [];
159 suffixedBaseArray.forEach(function (suffixedBase) {
160 return flippyBaseArray.push(flippyMultiTail.apply(undefined, [suffixedBase].concat((0, _toConsumableArray3.default)(flipVars))));
161 });
162 return flippyBaseArray;
163 } else {
164 return flippyMultiTail.apply(undefined, [base].concat((0, _toConsumableArray3.default)(flipVars)));
165 }
166 };
167 run(unflattenedBases);
168
169 var outputJoined = flatten(output).join(' ');
170 return outputJoined;
171};
172
173var flatten = exports.flatten = function flatten(arr) {
174 var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
175 return arr.reduce(function (a, v) {
176 return a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v);
177 }, []);
178};
179
180var flippyMultiTail = exports.flippyMultiTail = function flippyMultiTail(base) {
181 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
182 args[_key2 - 1] = arguments[_key2];
183 }
184
185 if (args) {
186 var modified = [base];
187 args.forEach(function (arr) {
188 var mod = void 0;
189 if (arr[2]) {
190 mod = '' + (arr[0] ? base + '--' + arr[1] : base + '--' + arr[2]);
191 modified.push(mod);
192 } else if (!arr[2] && arr[0]) {
193 mod = base + '--' + arr[1];
194 modified.push(mod);
195 }
196 });
197 return modified.join(' ');
198 } else {
199 return base;
200 }
201};
202
203var capitalizeEveryWord = exports.capitalizeEveryWord = function capitalizeEveryWord(str) {
204 return str ? str.replace(/\b[a-z]/g, function (char) {
205 return char.toUpperCase();
206 }) : 'error: string undefined';
207};
208
209var lightenDarken = exports.lightenDarken = function lightenDarken(color, amount) {
210 var usePound = false;
211
212 if (color[0] == '#') {
213 color = color.slice(1);
214 usePound = true;
215 }
216
217 var num = parseInt(color, 16);
218
219 var r = (num >> 16) + amount;
220
221 if (r > 255) r = 255;else if (r < 0) r = 0;
222
223 var b = (num >> 8 & 0x00ff) + amount;
224
225 if (b > 255) b = 255;else if (b < 0) b = 0;
226
227 var g = (num & 0x0000ff) + amount;
228
229 if (g > 255) g = 255;else if (g < 0) g = 0;
230
231 return (usePound ? '#' : '') + (g | b << 8 | r << 16).toString(16);
232};
233var onUserInputChange = exports.onUserInputChange = function onUserInputChange(callback) {
234 //console.log(`onUserInputChange`)
235 var type = 'mouse',
236 lastTime = 0;
237 var mousemoveHandler = function mousemoveHandler() {
238 var now = performance.now();
239 if (now - lastTime < 20) type = 'mouse', callback(type), document.removeEventListener('mousemove', mousemoveHandler);
240 lastTime = now;
241 };
242 document.addEventListener('touchstart', function () {
243 if (type === 'touch') return;type = 'touch', callback(type), document.addEventListener('mousemove', mousemoveHandler);
244 });
245};
246
247var callAll = exports.callAll = function callAll() {
248 for (var _len3 = arguments.length, fns = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
249 fns[_key3] = arguments[_key3];
250 }
251
252 return function () {
253 for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
254 args[_key4] = arguments[_key4];
255 }
256
257 return fns.forEach(function (fn) {
258 return fn && fn.apply(undefined, args);
259 });
260 };
261};
262
263var flippyTailClass = exports.flippyTailClass = function flippyTailClass(base) {
264 for (var _len5 = arguments.length, args = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
265 args[_key5 - 1] = arguments[_key5];
266 }
267
268 var tail = [];
269 args.forEach(function (arr) {
270 var mod = '' + (arr[0] ? '--' + arr[1] : '--' + arr[2]);
271 tail.push(mod);
272 });
273 return base + ' ' + base + tail.join('');
274};
275
276var styleElement = exports.styleElement = function styleElement(element, style) {
277 if (document.querySelector(element)) {
278 (0, _entries2.default)(style).map(function (valuePair) {
279 var _valuePair = (0, _slicedToArray3.default)(valuePair, 2),
280 key = _valuePair[0],
281 value = _valuePair[1];
282
283 document.querySelector(element).style[key] = value;
284 });
285 }
286};
287
288var delay = exports.delay = function delay(timeout) {
289 return new _promise2.default(function (resolve) {
290 setTimeout(resolve, timeout);
291 });
292};
293
294var getClassName = exports.getClassName = function getClassName(base, extra, override) {
295 return extra ? base + ' ' + extra : override ? override : base;
296};
297
298var getContainerElement = exports.getContainerElement = function getContainerElement(_ref3) {
299 var props = _ref3.props;
300 var containerClass = props.containerClass,
301 containerRef = props.containerRef;
302
303 return getElement({ ref: containerRef, className: containerClass });
304};
305var getElement = exports.getElement = function getElement(_ref4) {
306 var ref = _ref4.ref,
307 className = _ref4.className,
308 id = _ref4.id,
309 debug = _ref4.debug;
310
311 var element = void 0;
312 if (id) {
313 element = document.getElementById(id);
314 debug && console.log('element via id: ', element);
315 } else if (className) {
316 element = document.querySelector(className);
317 debug && console.log('element via class: ', element);
318 } else if (ref.current) {
319 element = ref.current;
320 debug && console.log('element via ref: ', element);
321 } else {
322 debug && console.error('must specify either className or ref');
323 }
324 return element;
325};
\No newline at end of file