grevlingui 0.1.11 → 0.1.13

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.
@@ -0,0 +1,26 @@
1
+
2
+ @-moz-keyframes spin {
3
+ 100% { -moz-transform: rotate(360deg); }
4
+ }
5
+ @-webkit-keyframes spin {
6
+ 100% { -webkit-transform: rotate(360deg); }
7
+ }
8
+ @keyframes spin {
9
+ 100% {
10
+ -webkit-transform: rotate(360deg);
11
+ transform:rotate(360deg);
12
+ }
13
+ }
14
+
15
+ @-moz-keyframes spinCC {
16
+ 100% { -moz-transform: rotate(-360deg); }
17
+ }
18
+ @-webkit-keyframes spinCC {
19
+ 100% { -webkit-transform: rotate(-360deg); }
20
+ }
21
+ @keyframes spinCC {
22
+ 100% {
23
+ -webkit-transform: rotate(-360deg);
24
+ transform:rotate(-360deg);
25
+ }
26
+ }
package/Loader/Loader.js CHANGED
@@ -5,63 +5,39 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Loader = void 0;
7
7
 
8
- require("core-js/modules/web.dom-collections.iterator.js");
8
+ var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _UseEffectOnce = _interopRequireDefault(require("../utils/UseEffectOnce"));
10
+ require("./Loader.css");
13
11
 
14
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
 
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
17
 
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
19
 
20
20
  const Loader = _ref => {
21
21
  let {
22
22
  color = 'black',
23
- size = '100',
24
- slowness = 0
23
+ size = '10rem',
24
+ // size = 'min(80vw, 80vh)',
25
+ speed = 5000
25
26
  } = _ref;
26
27
 
27
- const getRandomStyle = (prevRotation, slower) => {
28
- const time = Math.random() * 500 + 1000 + slowness + (slower ? 1000 : 0);
29
- const rotationChange = (Math.random() * 150 + 50) * (Math.random() > 0.2 ? 1 : -1);
30
- const rotation = prevRotation + rotationChange;
31
- return {
32
- time,
33
- rotation,
34
- transform: "rotate(".concat(rotation, ", 50, 71.1)"),
35
- style: {
36
- transitionProperty: 'transform',
37
- transitionDuration: "".concat(time, "ms"),
38
- transitionTimingFunction: 'linear'
39
- }
40
- };
41
- };
28
+ const spin = cc => ({
29
+ WebkitAnimation: "spin".concat(cc ? 'CC' : '', " ").concat(speed, "ms linear infinite"),
30
+ MozAnimation: "spin".concat(cc ? 'CC' : '', " ").concat(speed, "ms linear infinite"),
31
+ animation: "spin".concat(cc ? 'CC' : '', " ").concat(speed, "ms linear infinite")
32
+ });
42
33
 
43
- const [innerState, setInnerState] = (0, _react.useState)();
44
- const [outerState, setOuterState] = (0, _react.useState)(getRandomStyle(0));
45
- (0, _UseEffectOnce.default)(() => {
46
- const boop = (func, prevRot, slower) => {
47
- const thing = getRandomStyle(prevRot, slower);
48
- func(thing);
49
- setTimeout(() => {
50
- boop(func, thing.rotation, slower);
51
- }, thing.time + 300);
52
- };
53
-
54
- boop(setInnerState, 0);
55
- boop(setOuterState, 0, true);
56
- }, []);
57
34
  return /*#__PURE__*/_react.default.createElement("svg", {
58
- className: 'icon',
35
+ className: "grevloadinger",
59
36
  xmlns: "http://www.w3.org/2000/svg",
60
- viewBox: "-2 -2 27.7 27.7",
37
+ viewBox: "-8.5 12.5 117 117",
61
38
  height: size,
62
- width: size
63
- }, /*#__PURE__*/_react.default.createElement("g", {
64
- transform: "scale(.2) translate(10, -11)"
39
+ width: size,
40
+ style: spin()
65
41
  }, /*#__PURE__*/_react.default.createElement("mask", {
66
42
  id: "spinnyMask1"
67
43
  }, /*#__PURE__*/_react.default.createElement("rect", {
@@ -72,23 +48,24 @@ const Loader = _ref => {
72
48
  fill: "white"
73
49
  }), /*#__PURE__*/_react.default.createElement("polygon", {
74
50
  points: "50 13.397, 100 100, 0 100",
75
- fill: "black",
76
- transform: outerState.transform,
77
- style: outerState.style
51
+ fill: "black"
78
52
  })), /*#__PURE__*/_react.default.createElement("circle", {
79
53
  cx: "50",
80
54
  cy: "71.1",
81
55
  r: "58",
82
56
  mask: "url(#spinnyMask1)",
83
57
  fill: color
84
- }), /*#__PURE__*/_react.default.createElement("rect", {
58
+ }), /*#__PURE__*/_react.default.createElement("g", {
59
+ transform: "rotate(45 50 71)"
60
+ }, /*#__PURE__*/_react.default.createElement("rect", {
85
61
  height: "40.8",
86
62
  width: "40.8",
87
63
  x: "29.6",
88
64
  y: "50.6",
89
65
  fill: color,
90
- transform: innerState === null || innerState === void 0 ? void 0 : innerState.transform,
91
- style: innerState === null || innerState === void 0 ? void 0 : innerState.style
66
+ style: _objectSpread({
67
+ transformOrigin: '50px 71px'
68
+ }, spin(true))
92
69
  })));
93
70
  };
94
71
 
@@ -13,8 +13,6 @@ require("./NumberSelect.css");
13
13
 
14
14
  var _UseEffectPartialDeps = _interopRequireDefault(require("../utils/UseEffectPartialDeps"));
15
15
 
16
- var _UseEffectOnce = _interopRequireDefault(require("../utils/UseEffectOnce"));
17
-
18
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
17
 
20
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -27,10 +25,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
27
25
 
28
26
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
27
 
30
- const scrollRef = /*#__PURE__*/_react.default.createRef();
31
-
32
- const refs = [];
33
- let timeout1, timeout2;
28
+ const cosmos = {};
34
29
 
35
30
  const NumberSelect = _ref => {
36
31
  let {
@@ -49,24 +44,34 @@ const NumberSelect = _ref => {
49
44
  pointerShadowColor = '#33333390',
50
45
  top = -16
51
46
  } = _ref;
47
+ const [id] = (0, _react.useState)("id-".concat(Math.random()));
48
+ const [rendered, setRendered] = (0, _react.useState)(false);
52
49
  const [showInput, setShowInput] = (0, _react.useState)(false);
53
50
  const [hidden, setHidden] = (0, _react.useState)(false);
54
- console.log('');
55
- console.log('showInput: ', showInput);
56
- console.log('hidden: ', hidden);
51
+ const [timeout1, setTimeout1] = (0, _react.useState)(0);
52
+ const [timeout2, setTimeout2] = (0, _react.useState)(0);
57
53
  const options = [...Array(Math.max(max - min + 1, 1)).keys()].map(v => v + min);
58
-
59
- const getExactValue = () => scrollRef.current.scrollLeft / size + min;
60
-
54
+ let cosmoState = cosmos[id];
55
+ (0, _react.useLayoutEffect)(() => {
56
+ cosmoState = cosmos[id] = {
57
+ refs: []
58
+ };
59
+ setRendered(true);
60
+ }, []);
61
61
  (0, _UseEffectPartialDeps.default)(() => {
62
62
  clearTimeout(timeout1);
63
- if (showInput) setHidden(false);else timeout1 = setTimeout(() => setHidden(true), 320);
63
+ if (showInput) setHidden(false);else setTimeout1(setTimeout(() => setHidden(true), 320));
64
64
  }, [showInput]);
65
- (0, _UseEffectOnce.default)(() => {
66
- const ref = refs[value + 2 - min];
65
+ (0, _UseEffectPartialDeps.default)(() => {
66
+ if (!rendered) return;
67
+ const ref = cosmoState.refs[value + 2 - min];
67
68
  if (!ref) return;
68
69
  ref.scrollIntoView();
69
- });
70
+ }, [rendered]);
71
+ if (!cosmoState) return /*#__PURE__*/_react.default.createElement("div", null);
72
+
73
+ const getExactValue = () => cosmoState.scrollRef.scrollLeft / size + min;
74
+
70
75
  if (max - min === 0) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
71
76
  const optionStyle = {
72
77
  width: "".concat(size, "px"),
@@ -103,7 +108,7 @@ const NumberSelect = _ref => {
103
108
  },
104
109
  onTouchEnd: () => {
105
110
  clearTimeout(timeout2);
106
- timeout2 = setTimeout(() => setShowInput(false), 800);
111
+ setTimeout2(setTimeout(() => setShowInput(false), 800));
107
112
  }
108
113
  }, renderFade('left', 'right'), renderFade('right', 'left'), /*#__PURE__*/_react.default.createElement("div", {
109
114
  className: "pointerContainer",
@@ -128,7 +133,7 @@ const NumberSelect = _ref => {
128
133
  }
129
134
  })), /*#__PURE__*/_react.default.createElement("div", {
130
135
  className: "scrollSelector ".concat(thin ? 'thin' : ''),
131
- ref: scrollRef,
136
+ ref: node => cosmoState.scrollRef = node,
132
137
  style: {
133
138
  width: "".concat(size * 3, "px")
134
139
  },
@@ -144,18 +149,18 @@ const NumberSelect = _ref => {
144
149
  }, /*#__PURE__*/_react.default.createElement("div", {
145
150
  className: "option",
146
151
  style: optionStyle,
147
- ref: node => refs[0] = node
152
+ ref: node => cosmoState.refs[0] = node
148
153
  }), options.map((n, i) => /*#__PURE__*/_react.default.createElement("div", {
149
154
  style: _objectSpread(_objectSpread({}, optionStyle), {}, {
150
155
  backgroundColor: value === n ? numberBgColor : ''
151
156
  }),
152
157
  key: n,
153
- ref: node => refs[i + 1] = node,
158
+ ref: node => cosmoState.refs[i + 1] = node,
154
159
  className: 'option'
155
160
  }, n)), /*#__PURE__*/_react.default.createElement("div", {
156
161
  className: "option",
157
162
  style: optionStyle,
158
- ref: node => refs[options.length + 1] = node
163
+ ref: node => cosmoState.refs[options.length + 1] = node
159
164
  }))));
160
165
 
161
166
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -0,0 +1,31 @@
1
+ .grevlingPaneView {
2
+ position: absolute;
3
+ top: 0;
4
+ left: 0;
5
+ right: 0;
6
+ bottom: 0;
7
+ overflow: auto;
8
+ scroll-snap-type: x mandatory;
9
+
10
+ -ms-overflow-style: none; /* for Internet Explorer, Edge */
11
+ scrollbar-width: none; /* for Firefox */
12
+ overflow-y: scroll;
13
+ }
14
+
15
+ .grevlingPaneView::-webkit-scrollbar {
16
+ display: none; /* for Chrome, Safari, and Opera */
17
+ }
18
+
19
+ .grevlingPaneViewScrollyContent {
20
+ height: 100%;
21
+ width: 100%;
22
+ display: flex;
23
+ }
24
+
25
+ .grevlingPaneViewPane {
26
+ scroll-snap-align: start;
27
+ scroll-snap-stop: always;
28
+
29
+ max-height: 100%;
30
+ min-width: 100%;
31
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PaneView = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ require("./PaneView.css");
11
+
12
+ var _UseEffectOnce = _interopRequireDefault(require("../utils/UseEffectOnce"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ let startPaneRef;
17
+
18
+ const PaneView = _ref => {
19
+ let {
20
+ children,
21
+ styleOverride,
22
+ startOnPane = 0
23
+ } = _ref;
24
+ (0, _UseEffectOnce.default)(() => {
25
+ setTimeout(() => startPaneRef && startPaneRef.scrollIntoView(), 1);
26
+ });
27
+
28
+ const renderPane = (content, i) => /*#__PURE__*/_react.default.createElement("div", {
29
+ ref: node => {
30
+ if (startOnPane === i) startPaneRef = node;
31
+ },
32
+ key: "pane".concat(i),
33
+ className: "grevlingPaneViewPane"
34
+ }, content);
35
+
36
+ return /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "grevlingPaneView",
38
+ style: styleOverride
39
+ }, /*#__PURE__*/_react.default.createElement("div", {
40
+ className: "grevlingPaneViewScrollyContent"
41
+ }, Array.isArray(children) ? children.map(renderPane) : renderPane(children)));
42
+ };
43
+
44
+ exports.PaneView = PaneView;
package/index.js CHANGED
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "NumberSelect", {
33
33
  return _NumberSelect.NumberSelect;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "PaneView", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _PaneView.PaneView;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "RadioButton", {
37
43
  enumerable: true,
38
44
  get: function get() {
@@ -106,4 +112,6 @@ var _ToggleSwitch = require("./ToggleSwitch");
106
112
 
107
113
  var _NumberSelect = require("./NumberSelect/NumberSelect");
108
114
 
115
+ var _PaneView = require("./PaneView/PaneView");
116
+
109
117
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grevlingui",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "GUI elements",
5
5
  "main": "index.jsx",
6
6
  "repository": {