@startlibs/utils 1.0.4 → 1.1.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/lib/ActionUtils.mjs +117 -0
- package/lib/ActionUtils.mjs.map +1 -0
- package/lib/FetchUtils.mjs +100 -0
- package/lib/FetchUtils.mjs.map +1 -0
- package/lib/createPressEvent.mjs +74 -0
- package/lib/createPressEvent.mjs.map +1 -0
- package/lib/fixMediaQuery.mjs +64 -0
- package/lib/fixMediaQuery.mjs.map +1 -0
- package/lib/formatDate.mjs +110 -0
- package/lib/formatDate.mjs.map +1 -0
- package/lib/formatUtils.mjs +64 -0
- package/lib/formatUtils.mjs.map +1 -0
- package/lib/getClosestOffsetScroll.mjs +15 -0
- package/lib/getClosestOffsetScroll.mjs.map +1 -0
- package/lib/hooks/useEventListener.mjs +27 -0
- package/lib/hooks/useEventListener.mjs.map +1 -0
- package/lib/index.cjs +1811 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.mjs +19 -0
- package/lib/index.mjs.map +1 -0
- package/lib/lodashUtils.mjs +131 -0
- package/lib/lodashUtils.mjs.map +1 -0
- package/lib/promiseUtils.mjs +92 -0
- package/lib/promiseUtils.mjs.map +1 -0
- package/lib/reactUtils.mjs +12 -0
- package/lib/reactUtils.mjs.map +1 -0
- package/lib/reduceUtils.mjs +14 -0
- package/lib/reduceUtils.mjs.map +1 -0
- package/lib/smoothScroll.mjs +59 -0
- package/lib/smoothScroll.mjs.map +1 -0
- package/lib/styled.mjs +234 -0
- package/lib/styled.mjs.map +1 -0
- package/lib/timeUtils.mjs +81 -0
- package/lib/timeUtils.mjs.map +1 -0
- package/lib/timerUtils.mjs +11 -0
- package/lib/timerUtils.mjs.map +1 -0
- package/lib/utils.mjs +386 -0
- package/lib/utils.mjs.map +1 -0
- package/lib/wrapLazy.mjs +132 -0
- package/lib/wrapLazy.mjs.map +1 -0
- package/package.json +46 -31
- package/src/ActionUtils.js +90 -0
- package/src/FetchUtils.js +87 -0
- package/src/createPressEvent.jsx +79 -0
- package/src/fixMediaQuery.js +71 -0
- package/src/formatDate.js +121 -0
- package/src/formatUtils.jsx +63 -0
- package/src/getClosestOffsetScroll.js +12 -0
- package/src/hooks/useEventListener.js +26 -0
- package/src/index.js +19 -0
- package/src/lodashUtils.jsx +110 -0
- package/src/promiseUtils.jsx +75 -0
- package/src/reactUtils.jsx +7 -0
- package/src/reduceUtils.jsx +6 -0
- package/src/smoothScroll.js +58 -0
- package/src/styled.js +177 -0
- package/src/timeUtils.jsx +57 -0
- package/src/timerUtils.jsx +10 -0
- package/src/utils.jsx +342 -0
- package/src/wrapLazy.jsx +122 -0
- package/.babelrc +0 -26
- package/lib/index.js +0 -2399
- package/rollup.config.js +0 -44
- package/yarn-error.log +0 -3643
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import _awaitAsyncGenerator from '@babel/runtime/helpers/awaitAsyncGenerator';
|
|
2
|
+
import _wrapAsyncGenerator from '@babel/runtime/helpers/wrapAsyncGenerator';
|
|
3
|
+
import _times from 'lodash/fp/times';
|
|
4
|
+
import _identity from 'lodash/fp/identity';
|
|
5
|
+
import 'react';
|
|
6
|
+
|
|
7
|
+
const createPromiseResolverPair = () => {
|
|
8
|
+
let res, rej;
|
|
9
|
+
const promise = new Promise((res2, rej2) => {
|
|
10
|
+
res = res2;
|
|
11
|
+
rej = rej2;
|
|
12
|
+
});
|
|
13
|
+
return [promise, [res, rej]];
|
|
14
|
+
};
|
|
15
|
+
const createSimplePromiseLock = () => {
|
|
16
|
+
let promiseQueue = Promise.resolve();
|
|
17
|
+
return () => {
|
|
18
|
+
let resolve = _identity;
|
|
19
|
+
const nextPromise = new Promise(res => {
|
|
20
|
+
resolve = res;
|
|
21
|
+
});
|
|
22
|
+
const prevPromise = promiseQueue;
|
|
23
|
+
promiseQueue = nextPromise;
|
|
24
|
+
return prevPromise.then(() => resolve);
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
function createSinglePromiseQueue() {
|
|
28
|
+
return _createSinglePromiseQueue.apply(this, arguments);
|
|
29
|
+
}
|
|
30
|
+
function _createSinglePromiseQueue() {
|
|
31
|
+
_createSinglePromiseQueue = _wrapAsyncGenerator(function* () {
|
|
32
|
+
let lastPromise = Promise.resolve();
|
|
33
|
+
/* eslint-disable no-await-in-loop */
|
|
34
|
+
while (true) {
|
|
35
|
+
yield _awaitAsyncGenerator(lastPromise);
|
|
36
|
+
let resolve = _identity;
|
|
37
|
+
lastPromise = new Promise(res => {
|
|
38
|
+
resolve = res;
|
|
39
|
+
});
|
|
40
|
+
yield resolve;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return _createSinglePromiseQueue.apply(this, arguments);
|
|
44
|
+
}
|
|
45
|
+
function createPromiseQueue() {
|
|
46
|
+
return _createPromiseQueue.apply(this, arguments);
|
|
47
|
+
}
|
|
48
|
+
function _createPromiseQueue() {
|
|
49
|
+
_createPromiseQueue = _wrapAsyncGenerator(function () {
|
|
50
|
+
let parallel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
51
|
+
return function* () {
|
|
52
|
+
const queues = _times(createSinglePromiseQueue, parallel);
|
|
53
|
+
const promises = queues.map(q => q.next());
|
|
54
|
+
const locks = yield _awaitAsyncGenerator(Promise.all(promises));
|
|
55
|
+
const getNextAvailableLock = async () => {
|
|
56
|
+
const index = locks.findIndex(Boolean);
|
|
57
|
+
if (index >= 0) {
|
|
58
|
+
const lock = locks[index];
|
|
59
|
+
locks[index] = null;
|
|
60
|
+
promises[index] = queues[index].next().then(result => {
|
|
61
|
+
locks[index] = result;
|
|
62
|
+
});
|
|
63
|
+
return [lock.value, locks.filter(Boolean).length];
|
|
64
|
+
}
|
|
65
|
+
await Promise.race(promises);
|
|
66
|
+
return getNextAvailableLock();
|
|
67
|
+
};
|
|
68
|
+
while (true) {
|
|
69
|
+
const lock = yield _awaitAsyncGenerator(getNextAvailableLock());
|
|
70
|
+
yield lock;
|
|
71
|
+
}
|
|
72
|
+
}();
|
|
73
|
+
});
|
|
74
|
+
return _createPromiseQueue.apply(this, arguments);
|
|
75
|
+
}
|
|
76
|
+
const promiseMapReduce = (arr, callback) => arr.reduce((acc, item) => acc.then(seq => callback(item).then(res => [...seq, res])), Promise.resolve([]));
|
|
77
|
+
const asyncDebounce = function (fn) {
|
|
78
|
+
let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;
|
|
79
|
+
let timeout;
|
|
80
|
+
return function () {
|
|
81
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
82
|
+
args[_key] = arguments[_key];
|
|
83
|
+
}
|
|
84
|
+
clearTimeout(timeout);
|
|
85
|
+
return new Promise(res => {
|
|
86
|
+
timeout = setTimeout(() => res(fn(...args)), delay);
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export { asyncDebounce, createPromiseQueue, createPromiseResolverPair, createSimplePromiseLock, promiseMapReduce };
|
|
92
|
+
//# sourceMappingURL=promiseUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promiseUtils.mjs","sources":["../src/promiseUtils.jsx"],"sourcesContent":["import React from 'react'\nimport _ from \"lodash/fp\";\n\nexport const createPromiseResolverPair = () => {\n let res, rej;\n const promise = new Promise((res2,rej2) => {\n res = res2;\n rej = rej2;\n })\n return [promise,[res,rej]]\n}\n\n\nexport const createSimplePromiseLock = () => {\n let promiseQueue = Promise.resolve()\n return () => {\n let resolve = _.identity\n const nextPromise = new Promise(res => {\n resolve = res\n })\n const prevPromise = promiseQueue\n promiseQueue = nextPromise\n return prevPromise.then(() => resolve)\n }\n}\nasync function* createSinglePromiseQueue() {\n let lastPromise = Promise.resolve()\n /* eslint-disable no-await-in-loop */\n while (true) {\n await lastPromise\n let resolve = _.identity\n lastPromise = new Promise(res => {\n resolve = res\n })\n yield resolve\n }\n}\n\n\nexport async function* createPromiseQueue(parallel = 1) {\n const queues = _.times(createSinglePromiseQueue, parallel)\n const promises = queues.map(q => q.next())\n const locks = await Promise.all(promises)\n\n const getNextAvailableLock = async () => {\n const index = locks.findIndex(Boolean)\n if (index >= 0) {\n const lock = locks[index]\n locks[index] = null\n promises[index] = queues[index].next().then(result => {\n locks[index] = result\n })\n return [lock.value, locks.filter(Boolean).length]\n }\n await Promise.race(promises)\n return getNextAvailableLock()\n }\n while (true) {\n const lock = await getNextAvailableLock()\n yield lock\n }\n}\n\nexport const promiseMapReduce = (arr, callback) =>\n arr.reduce((acc, item) => acc.then(seq => callback(item).then(res => [...seq, res])), Promise.resolve([]))\n\nexport const asyncDebounce = (fn, delay = 200) => {\n let timeout\n return (...args) => {\n clearTimeout(timeout)\n return new Promise(res => {\n timeout = setTimeout(() => res(fn(...args)), delay)\n })\n }\n}"],"names":["createPromiseResolverPair","res","rej","promise","Promise","res2","rej2","createSimplePromiseLock","promiseQueue","resolve","_identity","nextPromise","prevPromise","then","createSinglePromiseQueue","_createSinglePromiseQueue","apply","arguments","_wrapAsyncGenerator","lastPromise","_awaitAsyncGenerator","createPromiseQueue","_createPromiseQueue","parallel","length","undefined","queues","_times","promises","map","q","next","locks","all","getNextAvailableLock","index","findIndex","Boolean","lock","result","value","filter","race","promiseMapReduce","arr","callback","reduce","acc","item","seq","asyncDebounce","fn","delay","timeout","_len","args","Array","_key","clearTimeout","setTimeout"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
const addExtraProp = function (element, extra) {
|
|
7
|
+
let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
8
|
+
return /*#__PURE__*/React.cloneElement(element, override ? _objectSpread(_objectSpread({}, element.props), extra) : _objectSpread(_objectSpread({}, extra), element.props), element.props.children);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { addExtraProp };
|
|
12
|
+
//# sourceMappingURL=reactUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactUtils.mjs","sources":["../src/reactUtils.jsx"],"sourcesContent":["import React from 'react'\n\nexport const addExtraProp = (element, extra, override = true) => React.cloneElement(\n element,\n override ? {...element.props,...extra} : {...extra,...element.props},\n element.props.children\n)\n"],"names":["addExtraProp","element","extra","override","arguments","length","undefined","React","cloneElement","_objectSpread","props","children"],"mappings":";;;;;MAEaA,YAAY,GAAG,UAACC,OAAO,EAAEC,KAAK,EAAA;AAAA,EAAA,IAAEC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAAA,EAAA,oBAAKG,KAAK,CAACC,YAAY,CACjFP,OAAO,EACPE,QAAQ,GAAAM,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAOR,OAAO,CAACS,KAAK,CAAIR,EAAAA,KAAK,CAAAO,GAAAA,aAAA,CAAAA,aAAA,CAAQP,EAAAA,EAAAA,KAAK,GAAID,OAAO,CAACS,KAAK,CAAC,EACpET,OAAO,CAACS,KAAK,CAACC,QAChB,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import _identity from 'lodash/fp/identity';
|
|
2
|
+
|
|
3
|
+
const compareBest = compare => (best, next) => best ? compare(best, next) ? next : best : next;
|
|
4
|
+
const toLowest = function () {
|
|
5
|
+
let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity;
|
|
6
|
+
return compareBest((best, next) => getValue(next) < getValue(best));
|
|
7
|
+
};
|
|
8
|
+
const toHighest = function () {
|
|
9
|
+
let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity;
|
|
10
|
+
return compareBest((best, next) => getValue(next) > getValue(best));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { compareBest, toHighest, toLowest };
|
|
14
|
+
//# sourceMappingURL=reduceUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduceUtils.mjs","sources":["../src/reduceUtils.jsx"],"sourcesContent":["import _ from 'lodash/fp'\n\nexport const compareBest = (compare) => (best,next) => best ? (compare(best,next) ? next : best) : next\n\nexport const toLowest = (getValue = _.identity) => compareBest((best,next) => (getValue(next) < getValue(best)))\nexport const toHighest = (getValue = _.identity) => compareBest((best,next) => (getValue(next) > getValue(best)))\n"],"names":["compareBest","compare","best","next","toLowest","getValue","arguments","length","undefined","_identity","toHighest"],"mappings":";;AAEO,MAAMA,WAAW,GAAIC,OAAO,IAAK,CAACC,IAAI,EAACC,IAAI,KAAKD,IAAI,GAAID,OAAO,CAACC,IAAI,EAACC,IAAI,CAAC,GAAGA,IAAI,GAAGD,IAAI,GAAIC,KAAI;AAE1FC,MAAAA,QAAQ,GAAG,YAAA;AAAA,EAAA,IAACC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAAG,SAAA,CAAA;AAAA,EAAA,OAAkBT,WAAW,CAAC,CAACE,IAAI,EAACC,IAAI,KAAME,QAAQ,CAACF,IAAI,CAAC,GAAGE,QAAQ,CAACH,IAAI,CAAE,CAAC,CAAA;AAAA,EAAA;AACnGQ,MAAAA,SAAS,GAAG,YAAA;AAAA,EAAA,IAACL,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAAG,SAAA,CAAA;AAAA,EAAA,OAAkBT,WAAW,CAAC,CAACE,IAAI,EAACC,IAAI,KAAME,QAAQ,CAACF,IAAI,CAAC,GAAGE,QAAQ,CAACH,IAAI,CAAE,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Get the top position of an element in the document
|
|
2
|
+
const getTop = function (element, start) {
|
|
3
|
+
// return value of html.getBoundingClientRect().top ... IE : 0, other browsers : -pageYOffset
|
|
4
|
+
if (!element || element.nodeName === 'HTML') return -start;
|
|
5
|
+
return element.getBoundingClientRect().top + start;
|
|
6
|
+
};
|
|
7
|
+
// ease in out function thanks to:
|
|
8
|
+
// http://blog.greweb.fr/2012/02/bezier-curve-based-easing-functions-from-concept-to-implementation/
|
|
9
|
+
const easeInOutCubic = function (t) {
|
|
10
|
+
return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// calculate the scroll position we should be in
|
|
14
|
+
// given the start and end point of the scroll
|
|
15
|
+
// the time elapsed from the beginning of the scroll
|
|
16
|
+
// and the total duration of the scroll (default 500ms)
|
|
17
|
+
const position = function (start, end, elapsed, duration) {
|
|
18
|
+
if (elapsed > duration) return end;
|
|
19
|
+
return start + (end - start) * easeInOutCubic(elapsed / duration); // <-- you can change the easing funtion there
|
|
20
|
+
// return start + (end - start) * (elapsed / duration); // <-- this would give a linear scroll
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// we use requestAnimationFrame to be called by the browser before every repaint
|
|
24
|
+
// if the first argument is an element then scroll to the top of this element
|
|
25
|
+
// if the first argument is numeric then scroll to this location
|
|
26
|
+
// if the callback exist, it is called when the scrolling is finished
|
|
27
|
+
// if context is set then scroll that element, else scroll window
|
|
28
|
+
const smoothScroll = function (el) {
|
|
29
|
+
let duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
|
|
30
|
+
let callback = arguments.length > 2 ? arguments[2] : undefined;
|
|
31
|
+
let ctx = arguments.length > 3 ? arguments[3] : undefined;
|
|
32
|
+
const context = ctx || window;
|
|
33
|
+
const start = context.scrollTop || window.pageYOffset;
|
|
34
|
+
const offset = el instanceof HTMLElement ? 0 : el.offset || 0;
|
|
35
|
+
const end = offset + (typeof el === 'number' ? Math.round(el) : el instanceof HTMLElement ? getTop(el, start) : getTop(el.target, start));
|
|
36
|
+
const clock = Date.now();
|
|
37
|
+
const requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) {
|
|
38
|
+
window.setTimeout(fn, 15);
|
|
39
|
+
};
|
|
40
|
+
const step = () => {
|
|
41
|
+
const elapsed = Date.now() - clock;
|
|
42
|
+
if (context !== window) {
|
|
43
|
+
context.scrollTop = position(start, end, elapsed, duration);
|
|
44
|
+
} else {
|
|
45
|
+
window.scroll(window.pageXOffset, position(start, end, elapsed, duration));
|
|
46
|
+
}
|
|
47
|
+
if (elapsed > duration) {
|
|
48
|
+
if (typeof callback === 'function') {
|
|
49
|
+
callback(el);
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
requestAnimationFrame(step);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
step();
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export { smoothScroll };
|
|
59
|
+
//# sourceMappingURL=smoothScroll.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoothScroll.mjs","sources":["../src/smoothScroll.js"],"sourcesContent":["// @flow\n// Get the top position of an element in the document\nconst getTop = function(element, start) {\n // return value of html.getBoundingClientRect().top ... IE : 0, other browsers : -pageYOffset\n if(!element || element.nodeName === 'HTML') return -start\n return element.getBoundingClientRect().top + start\n}\n// ease in out function thanks to:\n// http://blog.greweb.fr/2012/02/bezier-curve-based-easing-functions-from-concept-to-implementation/\nconst easeInOutCubic = function (t) { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 }\n\n// calculate the scroll position we should be in\n// given the start and end point of the scroll\n// the time elapsed from the beginning of the scroll\n// and the total duration of the scroll (default 500ms)\nconst position = function(start, end, elapsed, duration) {\n if (elapsed > duration) return end;\n return start + (end - start) * easeInOutCubic(elapsed / duration); // <-- you can change the easing funtion there\n // return start + (end - start) * (elapsed / duration); // <-- this would give a linear scroll\n}\n\n// we use requestAnimationFrame to be called by the browser before every repaint\n// if the first argument is an element then scroll to the top of this element\n// if the first argument is numeric then scroll to this location\n// if the callback exist, it is called when the scrolling is finished\n// if context is set then scroll that element, else scroll window\nexport const smoothScroll = (el, duration = 500, callback, ctx) => {\n const context = ctx || window;\n const start = context.scrollTop || window.pageYOffset;\n const offset = el instanceof HTMLElement ? 0 : el.offset||0\n\n const end = offset + (typeof el === 'number' ? Math.round(el) :\n el instanceof HTMLElement ? getTop(el, start) : getTop(el.target,start))\n\n const clock = Date.now();\n const requestAnimationFrame = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||\n function(fn){window.setTimeout(fn, 15);};\n\n const step = () => {\n const elapsed = Date.now() - clock;\n if (context !== window) {\n context.scrollTop = position(start, end, elapsed, duration);\n }\n else {\n window.scroll(window.pageXOffset, position(start, end, elapsed, duration));\n }\n\n if (elapsed > duration) {\n if (typeof callback === 'function') {\n callback(el);\n }\n } else {\n requestAnimationFrame(step);\n }\n }\n step();\n}"],"names":["getTop","element","start","nodeName","getBoundingClientRect","top","easeInOutCubic","t","position","end","elapsed","duration","smoothScroll","el","arguments","length","undefined","callback","ctx","context","window","scrollTop","pageYOffset","offset","HTMLElement","Math","round","target","clock","Date","now","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","step","scroll","pageXOffset"],"mappings":"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"}
|
package/lib/styled.mjs
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
|
+
import _find from 'lodash/fp/find';
|
|
6
|
+
import _reverse from 'lodash/fp/reverse';
|
|
7
|
+
import _isEqual from 'lodash/fp/isEqual';
|
|
8
|
+
import _identity from 'lodash/fp/identity';
|
|
9
|
+
import _isFunction from 'lodash/fp/isFunction';
|
|
10
|
+
import _get from 'lodash/fp/get';
|
|
11
|
+
import _unset from 'lodash/fp/unset';
|
|
12
|
+
import { darken } from 'polished';
|
|
13
|
+
import 'react';
|
|
14
|
+
import styled, { css } from 'styled-components';
|
|
15
|
+
import createEmotion from 'create-emotion';
|
|
16
|
+
import { scrollWidth } from './fixMediaQuery.mjs';
|
|
17
|
+
import { _s } from './lodashUtils.mjs';
|
|
18
|
+
import { callIfFunction } from './utils.mjs';
|
|
19
|
+
|
|
20
|
+
var _templateObject;
|
|
21
|
+
const _excluded = ["theme"];
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
const getColor = (propsOrColor, hover) => {
|
|
25
|
+
if (propsOrColor === undefined) {
|
|
26
|
+
return _ref => {
|
|
27
|
+
let theme = _ref.theme;
|
|
28
|
+
return theme.colors.gray150;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (typeof propsOrColor === 'string') {
|
|
32
|
+
return _ref2 => {
|
|
33
|
+
let theme = _ref2.theme;
|
|
34
|
+
return theme.colors[propsOrColor] || propsOrColor;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const theme = propsOrColor.theme,
|
|
38
|
+
props = _objectWithoutProperties(propsOrColor, _excluded);
|
|
39
|
+
if (props.dark) {
|
|
40
|
+
return darken(0.1, getColor(_objectSpread({
|
|
41
|
+
theme
|
|
42
|
+
}, _unset('dark', props))));
|
|
43
|
+
} else if (hover && props.hover) {
|
|
44
|
+
return getColor({
|
|
45
|
+
theme,
|
|
46
|
+
color: props.hover
|
|
47
|
+
});
|
|
48
|
+
} else if (props.color) {
|
|
49
|
+
return theme.colors[props.color] || props.color;
|
|
50
|
+
} else if (props.highlight) {
|
|
51
|
+
return theme.colors.main;
|
|
52
|
+
} else if (props.alert) {
|
|
53
|
+
return theme.colors.alert;
|
|
54
|
+
} else if (props.success) {
|
|
55
|
+
return theme.colors.success;
|
|
56
|
+
} else {
|
|
57
|
+
return theme.colors.gray150;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const getMargin = enumeratedMargins => props => enumeratedMargins[props.margin] || props.margin || enumeratedMargins['default'] || 0;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Returns the value of `props[path]` or `defaultValue`
|
|
64
|
+
* @example
|
|
65
|
+
* const Button = styled.button`
|
|
66
|
+
* color: ${prop('color', 'red')};
|
|
67
|
+
* `
|
|
68
|
+
*/
|
|
69
|
+
const prop = (path, defaultValue) => function () {
|
|
70
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
71
|
+
return _get(path.trim(), props) || defaultValue;
|
|
72
|
+
};
|
|
73
|
+
const customTheme = type => function () {
|
|
74
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
+
return _get(["theme", "startlibs", type], props) || '';
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Returns `pass` if prop is truthy. Otherwise returns `fail`
|
|
80
|
+
* @example
|
|
81
|
+
* // usage with styled-theme
|
|
82
|
+
* import styled from 'styled-components'
|
|
83
|
+
* import { ifProp } from 'styled-tools'
|
|
84
|
+
* import { palette } from 'styled-theme'
|
|
85
|
+
*
|
|
86
|
+
* const Button = styled.button`
|
|
87
|
+
* background-color: ${ifProp('transparent', 'transparent', palette(0))};
|
|
88
|
+
* color: ${ifProp(['transparent', 'accent'], palette('secondary', 0))};
|
|
89
|
+
* font-size: ${ifProp({ size: 'large' }, '20px', ifProp({ size: 'medium' }, '16px', '12px'))};
|
|
90
|
+
*`
|
|
91
|
+
*/
|
|
92
|
+
const ifProp = (path, pass, fail) => {
|
|
93
|
+
if (pass && !_isFunction(pass)) {
|
|
94
|
+
// old version
|
|
95
|
+
return function () {
|
|
96
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
97
|
+
let result = false;
|
|
98
|
+
if (Array.isArray(path)) {
|
|
99
|
+
result = path.every(p => testSinglePath(props, p));
|
|
100
|
+
} else if (typeof path === 'object') {
|
|
101
|
+
result = !Object.entries(path).find(_ref3 => {
|
|
102
|
+
let _ref4 = _slicedToArray(_ref3, 2),
|
|
103
|
+
k = _ref4[0],
|
|
104
|
+
v = _ref4[1];
|
|
105
|
+
return props[k] !== v;
|
|
106
|
+
});
|
|
107
|
+
} else {
|
|
108
|
+
result = testSinglePath(props, path);
|
|
109
|
+
}
|
|
110
|
+
return result ? pass : fail;
|
|
111
|
+
};
|
|
112
|
+
} else {
|
|
113
|
+
return function () {
|
|
114
|
+
for (var _len = arguments.length, argsTrue = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
115
|
+
argsTrue[_key] = arguments[_key];
|
|
116
|
+
}
|
|
117
|
+
const check = pass || _identity;
|
|
118
|
+
const fn = props => check(_get(path, props)) ? css(...argsTrue) : '';
|
|
119
|
+
fn.orElse = function () {
|
|
120
|
+
for (var _len2 = arguments.length, argsFalse = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
121
|
+
argsFalse[_key2] = arguments[_key2];
|
|
122
|
+
}
|
|
123
|
+
return props => check(_get(path, props)) ? css(...argsTrue) : css(...argsFalse);
|
|
124
|
+
};
|
|
125
|
+
return fn;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const ifPropEquals = (path, str) => ifProp(path, _isEqual(str));
|
|
130
|
+
const ifNotProp = path => ifProp(path, v => !v);
|
|
131
|
+
const checkCustomScreenWidth = (sizeParis, customWidth) => {
|
|
132
|
+
const currentWidth = callIfFunction(customWidth);
|
|
133
|
+
return !sizeParis.find(_ref5 => {
|
|
134
|
+
let _ref6 = _slicedToArray(_ref5, 2),
|
|
135
|
+
size = _ref6[0],
|
|
136
|
+
type = _ref6[1];
|
|
137
|
+
if (type === "min-width") {
|
|
138
|
+
return currentWidth < size;
|
|
139
|
+
}
|
|
140
|
+
if (type === "max-width") {
|
|
141
|
+
return currentWidth > size;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
const media = function () {
|
|
146
|
+
for (var _len3 = arguments.length, sizePairs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
147
|
+
sizePairs[_key3] = arguments[_key3];
|
|
148
|
+
}
|
|
149
|
+
return function () {
|
|
150
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
151
|
+
args[_key4] = arguments[_key4];
|
|
152
|
+
}
|
|
153
|
+
return css(["", ""], props => {
|
|
154
|
+
var _props$theme, _props$theme2;
|
|
155
|
+
return (_props$theme = props.theme) !== null && _props$theme !== void 0 && _props$theme.overrideMediaWidth ? checkCustomScreenWidth(sizePairs, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.overrideMediaWidth) ? css(...args) : "" : css(["@media ", "{", "}"], sizePairs.map(_ref7 => {
|
|
156
|
+
let _ref8 = _slicedToArray(_ref7, 2),
|
|
157
|
+
size = _ref8[0],
|
|
158
|
+
type = _ref8[1];
|
|
159
|
+
return "(".concat(type, ": ").concat(size + scrollWidth, "px)");
|
|
160
|
+
}).join(' and '), css(...args));
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
media.mobile = media([600, 'max-width']);
|
|
165
|
+
media.between = (min, max) => media([min, 'min-width'], [max, 'max-width']);
|
|
166
|
+
media.max = n => media([n, 'max-width']);
|
|
167
|
+
media.min = n => media([n, 'min-width']);
|
|
168
|
+
media.desktop = media([601, 'min-width']);
|
|
169
|
+
const vheight = (strings, size) => {
|
|
170
|
+
const propType = strings[0];
|
|
171
|
+
const calc = (strings[1] || "").replace(";", "").trim();
|
|
172
|
+
return "\n ".concat(propType, " ").concat(calc ? "calc(".concat(size, "vh ").concat(calc, ")") : "".concat(size, "vh"), ";\n ").concat(propType, " ").concat(calc ? "calc(calc(var(--vh, 1vh) * ".concat(size, ") ").concat(calc, ")") : "calc(var(--vh, 1vh) * ".concat(size, ")"), ";\n ");
|
|
173
|
+
};
|
|
174
|
+
function testSinglePath(props, path) {
|
|
175
|
+
if (typeof path === 'string') {
|
|
176
|
+
return !!_s.get(path, props);
|
|
177
|
+
} else if (typeof path === 'number') {
|
|
178
|
+
return !!props[path];
|
|
179
|
+
} else {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const getFrameOffset = (i, total) => Math.round(i * 100 / (total - 1));
|
|
184
|
+
const emotion = createEmotion({
|
|
185
|
+
nonce: typeof document !== 'undefined' && (document.querySelector('meta[property="csp-nonce"]') || {}).content || 'animation_nonce'
|
|
186
|
+
});
|
|
187
|
+
const oneWayAnimation = function () {
|
|
188
|
+
for (var _len5 = arguments.length, frames = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
189
|
+
frames[_key5] = arguments[_key5];
|
|
190
|
+
}
|
|
191
|
+
return emotion.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", ""])), frames.map((frame, i) => !frame ? '' : "".concat(getFrameOffset(i, frames.length), "% {\n ").concat(frame, "\n }")));
|
|
192
|
+
};
|
|
193
|
+
const twoWayAnimation = function () {
|
|
194
|
+
for (var _len6 = arguments.length, frames = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
|
195
|
+
frames[_key6] = arguments[_key6];
|
|
196
|
+
}
|
|
197
|
+
return [frames, _reverse(frames)].map(frames => oneWayAnimation(...frames));
|
|
198
|
+
};
|
|
199
|
+
const animationTiming = props => function () {
|
|
200
|
+
for (var _len7 = arguments.length, animations = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
|
201
|
+
animations[_key7] = arguments[_key7];
|
|
202
|
+
}
|
|
203
|
+
return animations.filter(_ => _).map(_ => _ + ' ' + props).join(',');
|
|
204
|
+
};
|
|
205
|
+
const identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);');
|
|
206
|
+
const identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;');
|
|
207
|
+
const styledExtend = _ref9 => {
|
|
208
|
+
let target = _ref9.target,
|
|
209
|
+
componentStyle = _ref9.componentStyle;
|
|
210
|
+
return function () {
|
|
211
|
+
const wasStatic = !_find(_isFunction, componentStyle.rules);
|
|
212
|
+
for (var _len8 = arguments.length, template = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
213
|
+
template[_key8] = arguments[_key8];
|
|
214
|
+
}
|
|
215
|
+
const v = /*#__PURE__*/styled(target)(...template, ...(wasStatic ? [] : [() => ""]));
|
|
216
|
+
v.componentStyle.rules = [...componentStyle.rules, ...v.componentStyle.rules];
|
|
217
|
+
return v;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
const printerMedia = function () {
|
|
221
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
222
|
+
args[_key9] = arguments[_key9];
|
|
223
|
+
}
|
|
224
|
+
return props => props.theme.printMode ? css(...args) : css(["@media print{", "}"], css(...args));
|
|
225
|
+
};
|
|
226
|
+
const notPrinterMedia = function () {
|
|
227
|
+
for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
|
|
228
|
+
args[_key0] = arguments[_key0];
|
|
229
|
+
}
|
|
230
|
+
return props => props.theme.printMode ? '' : css(["@media screen{", "}"], css(...args));
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
export { animationTiming, customTheme, getColor, getMargin, identityOpacityFrames, identityTranslateFrames, ifNotProp, ifProp, ifPropEquals, media, notPrinterMedia, oneWayAnimation, printerMedia, prop, styledExtend, twoWayAnimation, vheight };
|
|
234
|
+
//# sourceMappingURL=styled.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styled.mjs","sources":["../src/styled.js"],"sourcesContent":["// @flow\nimport _ from 'lodash/fp'\nimport {darken} from 'polished'\nimport React from 'react'\nimport styled, {css} from 'styled-components'\nimport createEmotion from 'create-emotion'\nimport {scrollWidth} from './fixMediaQuery'\nimport {_s} from './lodashUtils'\nimport {callIfFunction} from './utils'\n\nexport const getColor = (propsOrColor, hover) => {\n if (propsOrColor === undefined) {\n return ({theme})=>theme.colors.gray150\n }\n if (typeof propsOrColor==='string') {\n return ({theme})=>theme.colors[propsOrColor] || propsOrColor\n }\n const {theme,...props} = propsOrColor\n if (props.dark) {\n return darken(0.1, getColor({theme, ..._.unset( 'dark', props)}))\n } else if (hover && props.hover) {\n return getColor({theme, color: props.hover})\n } else if (props.color) {\n return theme.colors[props.color] || props.color\n } else if (props.highlight) {\n return theme.colors.main\n } else if (props.alert) {\n return theme.colors.alert\n } else if (props.success) {\n return theme.colors.success\n } else {\n return theme.colors.gray150\n }\n}\n\nexport const getMargin = (enumeratedMargins) => (props) => enumeratedMargins[props.margin] || props.margin || enumeratedMargins['default'] || 0\n\n/**\n * Returns the value of `props[path]` or `defaultValue`\n * @example\n * const Button = styled.button`\n * color: ${prop('color', 'red')};\n * `\n */\nexport const prop = (path,defaultValue) =>\n (props = {}) => _.get(path.trim(), props) || defaultValue\n\nexport const customTheme = (type) =>\n (props = {}) => _.get([\"theme\",\"startlibs\",type], props) || ''\n\n/**\n * Returns `pass` if prop is truthy. Otherwise returns `fail`\n * @example\n * // usage with styled-theme\n * import styled from 'styled-components'\n * import { ifProp } from 'styled-tools'\n * import { palette } from 'styled-theme'\n *\n * const Button = styled.button`\n * background-color: ${ifProp('transparent', 'transparent', palette(0))};\n * color: ${ifProp(['transparent', 'accent'], palette('secondary', 0))};\n * font-size: ${ifProp({ size: 'large' }, '20px', ifProp({ size: 'medium' }, '16px', '12px'))};\n *`\n */\nexport const ifProp = (path, pass, fail) => {\n if (pass && !_.isFunction(pass)) { // old version\n return (props = {}) => {\n let result = false\n if (Array.isArray(path)) {\n result = path.every(p=> testSinglePath(props,p))\n } else if (typeof path === 'object') {\n result = !Object.entries(path).find(([k,v])=>props[k]!==v)\n } else {\n result = testSinglePath(props,path)\n }\n return result ? pass : fail\n }\n } else {\n return (...argsTrue) => {\n const check = pass || _.identity\n const fn = props => check(_.get(path,props)) ? css(...argsTrue) : ''\n fn.orElse = (...argsFalse) => (props) => check(_.get(path,props)) ? css(...argsTrue) : css(...argsFalse)\n return fn\n }\n }\n}\nexport const ifPropEquals = (path,str) => ifProp(path,_.isEqual(str))\nexport const ifNotProp = (path) => ifProp(path,v => !v)\n\nconst checkCustomScreenWidth = (sizeParis,customWidth) => {\n const currentWidth = callIfFunction(customWidth)\n return !sizeParis.find(([size,type]) => {\n if (type === \"min-width\") {\n return currentWidth < size\n }\n if (type === \"max-width\") {\n return currentWidth > size\n }\n })\n}\n\nexport const media = (...sizePairs) => (...args) => {\n return css`\n ${props => \n props.theme?.overrideMediaWidth\n ? (checkCustomScreenWidth(sizePairs,props.theme?.overrideMediaWidth) ? css(...args) : \"\") \n : css`@media ${sizePairs.map(([size,type]) => `(${type}: ${size+scrollWidth}px)`).join(' and ')} {\n ${ css(...args) }\n }`\n }`\n}\n\nmedia.mobile = media([600,'max-width'])\nmedia.between = (min,max) => media([min,'min-width'],[max,'max-width'])\nmedia.max = (n) => media([n,'max-width'])\nmedia.min = (n) => media([n,'min-width'])\nmedia.desktop = media([601,'min-width'])\n\nexport const vheight = (strings,size) => {\n const propType = strings[0]\n const calc = (strings[1]||\"\").replace(\";\",\"\").trim()\n return `\n ${propType} ${calc ? `calc(${size}vh ${calc})` : `${size}vh`};\n ${propType} ${calc ? `calc(calc(var(--vh, 1vh) * ${size}) ${calc})` : `calc(var(--vh, 1vh) * ${size})`};\n `\n}\n\nfunction testSinglePath(props,path) {\n if (typeof path === 'string') {\n return !!_s.get(path, props)\n } else if (typeof path === 'number') {\n return !!props[path]\n } else {\n return false\n }\n}\n\nconst getFrameOffset = (i,total) => Math.round(i*100/(total-1))\n\n\nconst emotion = createEmotion({\n nonce: (typeof document !== 'undefined' &&\n (document.querySelector('meta[property=\"csp-nonce\"]') || {}).content) || 'animation_nonce'\n})\n\nexport const oneWayAnimation = (...frames) => {\n return emotion.keyframes`\n ${frames.map((frame,i) =>\n !frame ? '' : `${getFrameOffset(i,frames.length)}% {\n ${frame}\n }`\n )}`\n}\n\nexport const twoWayAnimation = (...frames) => [frames,_.reverse(frames)].map((frames)=>oneWayAnimation(...frames))\n\nexport const animationTiming = (props) => (...animations) => animations.filter(_=>_).map(_=>_+' '+props).join(',')\n\nexport const identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);')\nexport const identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;')\n\nexport const styledExtend = ({target,componentStyle}) => (...template) => {\n const wasStatic = !_.find(_.isFunction,componentStyle.rules)\n const v = styled(target)(...template,...(wasStatic ? [] : [() => \"\"]))\n v.componentStyle.rules = [...componentStyle.rules,...v.componentStyle.rules]\n return v\n}\n\nexport const printerMedia = (...args) => (props) =>\n props.theme.printMode\n ? css(...args)\n : css`@media print { ${css(...args)} }`\n\nexport const notPrinterMedia = (...args) => (props) =>\n props.theme.printMode\n ? ''\n : css`@media screen { ${css(...args)} }`"],"names":["getColor","propsOrColor","hover","undefined","_ref","theme","colors","gray150","_ref2","props","_objectWithoutProperties","_excluded","dark","darken","_objectSpread","_unset","color","highlight","main","alert","success","getMargin","enumeratedMargins","margin","prop","path","defaultValue","arguments","length","_get","trim","customTheme","type","ifProp","pass","fail","_isFunction","result","Array","isArray","every","p","testSinglePath","Object","entries","find","_ref3","_ref4","_slicedToArray","k","v","_len","argsTrue","_key","check","_identity","fn","css","orElse","_len2","argsFalse","_key2","ifPropEquals","str","_isEqual","ifNotProp","checkCustomScreenWidth","sizeParis","customWidth","currentWidth","callIfFunction","_ref5","_ref6","size","media","_len3","sizePairs","_key3","_len4","args","_key4","_props$theme","_props$theme2","overrideMediaWidth","map","_ref7","_ref8","concat","scrollWidth","join","mobile","between","min","max","n","desktop","vheight","strings","propType","calc","replace","_s","get","getFrameOffset","i","total","Math","round","emotion","createEmotion","nonce","document","querySelector","content","oneWayAnimation","_len5","frames","_key5","keyframes","_templateObject","_taggedTemplateLiteral","frame","twoWayAnimation","_len6","_key6","_reverse","animationTiming","_len7","animations","_key7","filter","_","identityTranslateFrames","identityOpacityFrames","styledExtend","_ref9","target","componentStyle","wasStatic","_find","rules","_len8","template","_key8","styled","printerMedia","_len9","_key9","printMode","notPrinterMedia","_len0","_key0"],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import 'react';
|
|
3
|
+
|
|
4
|
+
const SECOND = 1000;
|
|
5
|
+
const MINUTE = SECOND * 60;
|
|
6
|
+
const HOUR = MINUTE * 60;
|
|
7
|
+
const DAY = HOUR * 24;
|
|
8
|
+
const WEEK = DAY * 7;
|
|
9
|
+
const MONTH = DAY * 31;
|
|
10
|
+
const YEAR = DAY * 366;
|
|
11
|
+
const getStartOfDay = function (d) {
|
|
12
|
+
let utc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
13
|
+
const date = new Date(d);
|
|
14
|
+
if (utc) {
|
|
15
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
16
|
+
} else {
|
|
17
|
+
date.setHours(0, 0, 0, 0);
|
|
18
|
+
}
|
|
19
|
+
return date;
|
|
20
|
+
};
|
|
21
|
+
const isSameDay = function (a, b) {
|
|
22
|
+
let utc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
23
|
+
return getStartOfDay(a, utc).getTime() === getStartOfDay(b, utc).getTime();
|
|
24
|
+
};
|
|
25
|
+
const intervalsIntersect = (_ref, _ref2) => {
|
|
26
|
+
let _ref3 = _slicedToArray(_ref, 2),
|
|
27
|
+
a1 = _ref3[0],
|
|
28
|
+
a2 = _ref3[1];
|
|
29
|
+
let _ref4 = _slicedToArray(_ref2, 2),
|
|
30
|
+
b1 = _ref4[0],
|
|
31
|
+
b2 = _ref4[1];
|
|
32
|
+
return b2 >= a1 && b1 <= a2;
|
|
33
|
+
};
|
|
34
|
+
const intervalsIntersectExclusive = (_ref5, _ref6) => {
|
|
35
|
+
let _ref7 = _slicedToArray(_ref5, 2),
|
|
36
|
+
a1 = _ref7[0],
|
|
37
|
+
a2 = _ref7[1];
|
|
38
|
+
let _ref8 = _slicedToArray(_ref6, 2),
|
|
39
|
+
b1 = _ref8[0],
|
|
40
|
+
b2 = _ref8[1];
|
|
41
|
+
return b2 > a1 && b1 < a2;
|
|
42
|
+
};
|
|
43
|
+
const intervalsIntersection = (a, b) => {
|
|
44
|
+
if (!intervalsIntersect(a, b)) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
return [[Math.max(a[0], b[0]), Math.min(a[1], b[1])]];
|
|
48
|
+
};
|
|
49
|
+
const diffIntervals = (_ref9, _ref0) => {
|
|
50
|
+
let _ref1 = _slicedToArray(_ref9, 2),
|
|
51
|
+
a1 = _ref1[0],
|
|
52
|
+
a2 = _ref1[1];
|
|
53
|
+
let _ref10 = _slicedToArray(_ref0, 2),
|
|
54
|
+
b1 = _ref10[0],
|
|
55
|
+
b2 = _ref10[1];
|
|
56
|
+
if (a1 >= b2 ||
|
|
57
|
+
// a after b
|
|
58
|
+
b1 >= a2 // a before b
|
|
59
|
+
) {
|
|
60
|
+
return [[a1, a2]];
|
|
61
|
+
} else if (a1 > b1 && a2 < b2) {
|
|
62
|
+
// a inside b
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
if (b1 > a1 && b2 < a2) {
|
|
66
|
+
// b inside a
|
|
67
|
+
return [[a1, b1], [b2, a2]];
|
|
68
|
+
}
|
|
69
|
+
if (b1 <= a1) {
|
|
70
|
+
// b intersecting left of a
|
|
71
|
+
return [[b2, a2]];
|
|
72
|
+
} else {
|
|
73
|
+
// b intersecting right of a
|
|
74
|
+
return [[a1, b1]];
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const blockDiffIntervals = (a, b) => intervalsIntersect(a, b) ? [] : [a];
|
|
78
|
+
const startBlockDiffIntervals = (a, b) => intervalsIntersectExclusive(a, b) && a[0] >= b[0] ? [] : [a];
|
|
79
|
+
|
|
80
|
+
export { DAY, HOUR, MINUTE, MONTH, SECOND, WEEK, YEAR, blockDiffIntervals, diffIntervals, getStartOfDay, intervalsIntersect, intervalsIntersectExclusive, intervalsIntersection, isSameDay, startBlockDiffIntervals };
|
|
81
|
+
//# sourceMappingURL=timeUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeUtils.mjs","sources":["../src/timeUtils.jsx"],"sourcesContent":["import React from 'react'\n\nexport const SECOND = 1000\nexport const MINUTE = SECOND * 60\nexport const HOUR = MINUTE * 60\nexport const DAY = HOUR * 24\nexport const WEEK = DAY * 7\nexport const MONTH = DAY * 31\nexport const YEAR = DAY * 366\n\nexport const getStartOfDay = (d,utc = false) => {\n const date = new Date(d)\n if (utc) {\n date.setUTCHours(0,0,0,0)\n } else {\n date.setHours(0,0,0,0)\n }\n return date\n}\nexport const isSameDay = (a,b,utc = false) => getStartOfDay(a,utc).getTime() === getStartOfDay(b,utc).getTime()\n\n\n\nexport const intervalsIntersect = ([a1, a2], [b1, b2]) =>\n (b2 >= a1) && (b1 <= a2)\n\nexport const intervalsIntersectExclusive = ([a1, a2], [b1, b2]) =>\n (b2 > a1) && (b1 < a2)\n\nexport const intervalsIntersection = (a, b) => {\n if (!intervalsIntersect(a,b)) {\n return []\n }\n return [[Math.max(a[0], b[0]), Math.min(a[1], b[1])]]\n}\n\nexport const diffIntervals = ([a1, a2], [b1, b2]) => {\n if (\n a1 >= b2 || // a after b\n b1 >= a2 // a before b\n ) {\n return [[a1, a2]]\n } else if (a1 > b1 && a2 < b2) { // a inside b\n return []\n }\n if (b1 > a1 && b2 < a2) { // b inside a\n return [[a1, b1], [b2, a2]]\n }\n if (b1 <= a1) { // b intersecting left of a\n return [[b2, a2]]\n } else { // b intersecting right of a\n return [[a1, b1]]\n }\n}\n\nexport const blockDiffIntervals = (a, b) => intervalsIntersect(a, b) ? [] : [a]\nexport const startBlockDiffIntervals = (a, b) => intervalsIntersectExclusive(a, b) && a[0] >= b[0] ? [] : [a]\n"],"names":["SECOND","MINUTE","HOUR","DAY","WEEK","MONTH","YEAR","getStartOfDay","d","utc","arguments","length","undefined","date","Date","setUTCHours","setHours","isSameDay","a","b","getTime","intervalsIntersect","_ref","_ref2","_ref3","_slicedToArray","a1","a2","_ref4","b1","b2","intervalsIntersectExclusive","_ref5","_ref6","_ref7","_ref8","intervalsIntersection","Math","max","min","diffIntervals","_ref9","_ref0","_ref1","_ref10","blockDiffIntervals","startBlockDiffIntervals"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import 'styled-components';
|
|
2
|
+
import 'react';
|
|
3
|
+
|
|
4
|
+
const timerPromise = time => new Promise(res => setTimeout(res, time));
|
|
5
|
+
const cancelableTimer = (res, time) => {
|
|
6
|
+
const v = setTimeout(res, time);
|
|
7
|
+
return () => clearTimeout(v);
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { cancelableTimer, timerPromise };
|
|
11
|
+
//# sourceMappingURL=timerUtils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timerUtils.mjs","sources":["../src/timerUtils.jsx"],"sourcesContent":["import React from 'react'\nimport styled from 'styled-components/macro'\n\nstyled\nexport const timerPromise = (time) => new Promise((res) => setTimeout(res,time))\n\nexport const cancelableTimer = (res,time) => {\n const v = setTimeout(res,time)\n return () => clearTimeout(v)\n}\n"],"names":["timerPromise","time","Promise","res","setTimeout","cancelableTimer","v","clearTimeout"],"mappings":";;;MAIaA,YAAY,GAAIC,IAAI,IAAK,IAAIC,OAAO,CAAEC,GAAG,IAAKC,UAAU,CAACD,GAAG,EAACF,IAAI,CAAC,EAAC;MAEnEI,eAAe,GAAGA,CAACF,GAAG,EAACF,IAAI,KAAK;AAC3C,EAAA,MAAMK,CAAC,GAAGF,UAAU,CAACD,GAAG,EAACF,IAAI,CAAC,CAAA;AAC9B,EAAA,OAAO,MAAMM,YAAY,CAACD,CAAC,CAAC,CAAA;AAC9B;;;;"}
|