@elliemae/ds-circular-progress-indicator 2.3.0-alpha.8 → 2.3.0-next.10

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 (43) hide show
  1. package/cjs/DSCircularProgressIndicator.js +268 -0
  2. package/cjs/index.js +14 -0
  3. package/cjs/v2/DSCircularIndeterminateIndicator.js +113 -0
  4. package/cjs/v2/constants.js +37 -0
  5. package/cjs/v2/index.js +10 -0
  6. package/cjs/v2/react-desc-prop-types.js +39 -0
  7. package/cjs/v2/styled.js +51 -0
  8. package/esm/DSCircularProgressIndicator.js +258 -0
  9. package/esm/index.js +2 -0
  10. package/esm/v2/DSCircularIndeterminateIndicator.js +103 -0
  11. package/esm/v2/constants.js +30 -0
  12. package/esm/v2/index.js +1 -0
  13. package/esm/v2/react-desc-prop-types.js +30 -0
  14. package/esm/v2/styled.js +39 -0
  15. package/package.json +35 -29
  16. package/types/DSCircularProgressIndicator.d.ts +42 -0
  17. package/types/index.d.ts +2 -0
  18. package/types/tests/DSCircularProgressIndicator.test.d.ts +1 -0
  19. package/types/v2/DSCircularIndeterminateIndicator.d.ts +4 -0
  20. package/types/v2/constants.d.ts +28 -0
  21. package/types/v2/index.d.ts +1 -0
  22. package/types/v2/react-desc-prop-types.d.ts +14 -0
  23. package/types/v2/styled.d.ts +12 -0
  24. package/dist/cjs/DSCircularProgressIndicator.js +0 -246
  25. package/dist/cjs/DSCircularProgressIndicator.js.map +0 -7
  26. package/dist/cjs/index.js +0 -40
  27. package/dist/cjs/index.js.map +0 -7
  28. package/dist/cjs/v2/DSCircularIndeterminateIndicator.js +0 -149
  29. package/dist/cjs/v2/DSCircularIndeterminateIndicator.js.map +0 -7
  30. package/dist/cjs/v2/index.js +0 -36
  31. package/dist/cjs/v2/index.js.map +0 -7
  32. package/dist/cjs/v2/react-desc-prop-types.js +0 -56
  33. package/dist/cjs/v2/react-desc-prop-types.js.map +0 -7
  34. package/dist/esm/DSCircularProgressIndicator.js +0 -217
  35. package/dist/esm/DSCircularProgressIndicator.js.map +0 -7
  36. package/dist/esm/index.js +0 -15
  37. package/dist/esm/index.js.map +0 -7
  38. package/dist/esm/v2/DSCircularIndeterminateIndicator.js +0 -120
  39. package/dist/esm/v2/DSCircularIndeterminateIndicator.js.map +0 -7
  40. package/dist/esm/v2/index.js +0 -10
  41. package/dist/esm/v2/index.js.map +0 -7
  42. package/dist/esm/v2/react-desc-prop-types.js +0 -27
  43. package/dist/esm/v2/react-desc-prop-types.js.map +0 -7
@@ -0,0 +1,268 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var reactDesc = require('react-desc');
8
+ var dsClassnames = require('@elliemae/ds-classnames');
9
+ var DSTooltip = require('@elliemae/ds-tooltip');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
14
+ var DSTooltip__default = /*#__PURE__*/_interopDefaultLegacy(DSTooltip);
15
+
16
+ var _path, _path2;
17
+ const {
18
+ classNameBlock,
19
+ classNameElement
20
+ } = dsClassnames.convertPropToCssClassName('circular-progress-indicator');
21
+
22
+ const CircularProgressIndicator = _ref => {
23
+ let {
24
+ size,
25
+ showLabel,
26
+ showTooltip,
27
+ waiting,
28
+ loading
29
+ } = _ref;
30
+ const waitingLabel = 'Waiting...';
31
+ const loadingLabel = 'Loading...';
32
+ const currentLabel = waiting && !loading ? waitingLabel : loadingLabel;
33
+ let sizePx;
34
+ let sizeLabel;
35
+ let strokeWidth;
36
+ let trackWidth;
37
+ let markerHeight = '0.7';
38
+ let markerRefY = '4.8';
39
+ let grayArcStrokeDasharray = '45 170';
40
+ let grayArcStrokeDashoffset = '127.5';
41
+
42
+ switch (size.toUpperCase()) {
43
+ case 'XS':
44
+ sizePx = 8;
45
+ sizeLabel = 12;
46
+ strokeWidth = 10;
47
+ trackWidth = 3;
48
+ markerHeight = '1';
49
+ grayArcStrokeDasharray = '46 174';
50
+ grayArcStrokeDashoffset = '133';
51
+ break;
52
+
53
+ case 'S':
54
+ sizePx = 16;
55
+ sizeLabel = 12;
56
+ strokeWidth = 8;
57
+ trackWidth = 3;
58
+ markerHeight = '1';
59
+ grayArcStrokeDasharray = '46 174';
60
+ grayArcStrokeDashoffset = '133';
61
+ break;
62
+
63
+ case 'M':
64
+ sizePx = 24;
65
+ sizeLabel = 12;
66
+ strokeWidth = 7;
67
+ trackWidth = 3;
68
+ markerHeight = '1';
69
+ markerRefY = '5.5';
70
+ grayArcStrokeDasharray = '46 174';
71
+ grayArcStrokeDashoffset = '133';
72
+ break;
73
+
74
+ case 'L':
75
+ sizePx = 32;
76
+ sizeLabel = 13;
77
+ strokeWidth = 6;
78
+ trackWidth = 3;
79
+ markerRefY = '5';
80
+ break;
81
+
82
+ case 'XL':
83
+ sizePx = 48;
84
+ sizeLabel = 14;
85
+ strokeWidth = 5;
86
+ trackWidth = 1;
87
+ break;
88
+
89
+ case 'XXL':
90
+ sizePx = 56;
91
+ sizeLabel = 16;
92
+ strokeWidth = 4;
93
+ trackWidth = 1;
94
+ break;
95
+
96
+ case 'XXXL':
97
+ sizePx = 64;
98
+ sizeLabel = 16;
99
+ strokeWidth = 5;
100
+ trackWidth = 2;
101
+ break;
102
+ }
103
+
104
+ const labelText = /*#__PURE__*/_jsx__default["default"]("p", {
105
+ "data-testid": "circular-indicator-label",
106
+ className: classNameElement('label'),
107
+ style: {
108
+ fontSize: "".concat(sizeLabel, "px")
109
+ }
110
+ }, void 0, currentLabel); // Only adds the tooltip if sizePx < 17 or showTooltip is true
111
+
112
+
113
+ const buildIndicator = Component => sizePx < 17 || showTooltip ? /*#__PURE__*/_jsx__default["default"](DSTooltip__default["default"], {
114
+ containerProps: {
115
+ id: 'ds-circular-progress-indicator',
116
+ 'data-testid': 'circular-indicator-title'
117
+ },
118
+ interactionType: "hover",
119
+ title: currentLabel,
120
+ triggerComponent: Component,
121
+ placement: "bottom"
122
+ }) : Component;
123
+
124
+ const grayTrack = /*#__PURE__*/_jsx__default["default"]("circle", {
125
+ className: classNameElement('track'),
126
+ cx: "50%",
127
+ cy: "50%",
128
+ fill: "none",
129
+ r: "28",
130
+ strokeWidth: "".concat(trackWidth, "px")
131
+ });
132
+
133
+ const grayArc = /*#__PURE__*/_jsx__default["default"]("circle", {
134
+ className: classNameElement('arc-gray'),
135
+ stroke: "#E0E3E8",
136
+ strokeDasharray: "".concat(grayArcStrokeDasharray),
137
+ strokeDashoffset: "".concat(grayArcStrokeDashoffset),
138
+ cx: "50%",
139
+ cy: "50%",
140
+ fill: "none",
141
+ r: "28",
142
+ strokeWidth: "".concat(trackWidth, "px")
143
+ });
144
+
145
+ const indicator = /*#__PURE__*/_jsx__default["default"]("svg", {
146
+ height: "".concat(sizePx, "px"),
147
+ version: "1.1",
148
+ viewBox: "0 0 66 66",
149
+ width: "".concat(sizePx, "px"),
150
+ "data-testid": "circular-indicator"
151
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("defs", {}, void 0, /*#__PURE__*/_jsx__default["default"]("linearGradient", {
152
+ id: "grad1",
153
+ x1: "0%",
154
+ x2: "100%",
155
+ y1: "100%",
156
+ y2: "0%"
157
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("stop", {
158
+ offset: "0%",
159
+ style: {
160
+ stopColor: '#E0E3E8',
161
+ stopOpacity: 1
162
+ }
163
+ }), /*#__PURE__*/_jsx__default["default"]("stop", {
164
+ offset: "89%",
165
+ style: {
166
+ stopColor: '#5594e2',
167
+ stopOpacity: 1
168
+ }
169
+ }), /*#__PURE__*/_jsx__default["default"]("stop", {
170
+ offset: "100%",
171
+ style: {
172
+ stopColor: '#5594e2',
173
+ stopOpacity: 1
174
+ }
175
+ })), /*#__PURE__*/_jsx__default["default"]("linearGradient", {
176
+ id: "grad2",
177
+ x1: "0%",
178
+ x2: "100%",
179
+ y1: "100%",
180
+ y2: "0%"
181
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("stop", {
182
+ offset: "0%",
183
+ style: {
184
+ stopColor: '#5594e2',
185
+ stopOpacity: 1
186
+ }
187
+ }), /*#__PURE__*/_jsx__default["default"]("stop", {
188
+ offset: "11%",
189
+ style: {
190
+ stopColor: '#5594e2',
191
+ stopOpacity: 1
192
+ }
193
+ }), /*#__PURE__*/_jsx__default["default"]("stop", {
194
+ offset: "100%",
195
+ style: {
196
+ stopColor: '#E0E3E8',
197
+ stopOpacity: 1
198
+ }
199
+ })), /*#__PURE__*/_jsx__default["default"]("marker", {
200
+ id: "inverseL",
201
+ viewBox: "0 0 5 10",
202
+ refX: "0.5",
203
+ refY: "".concat(markerRefY),
204
+ markerUnits: "strokeWidth",
205
+ markerWidth: "0.5",
206
+ markerHeight: "".concat(markerHeight),
207
+ orient: "auto"
208
+ }, void 0, _path || (_path = /*#__PURE__*/_jsx__default["default"]("path", {
209
+ d: "M 0 0 L 6 0 A 5 5 0 0 0 6 10 L 0 10 z",
210
+ fill: "#FFF"
211
+ }))), /*#__PURE__*/_jsx__default["default"]("marker", {
212
+ id: "inverseR",
213
+ viewBox: "0 0 5 10",
214
+ refX: "0",
215
+ refY: "5",
216
+ markerUnits: "strokeWidth",
217
+ markerWidth: "0.7",
218
+ markerHeight: "".concat(markerHeight)
219
+ }, void 0, _path2 || (_path2 = /*#__PURE__*/_jsx__default["default"]("path", {
220
+ d: "M 0 0 L 6 0 A 5 5 0 0 0 6 10 L 0 10 z",
221
+ fill: "#FFF"
222
+ })))), grayTrack, !waiting && /*#__PURE__*/_jsx__default["default"]("g", {
223
+ fill: "none",
224
+ fillRule: "evenodd",
225
+ stroke: "none",
226
+ strokeWidth: "1"
227
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("path", {
228
+ className: classNameElement('arc-blue'),
229
+ d: "M30,5 C17.536025,6 6,17.536027 5,31",
230
+ stroke: "#5594e2",
231
+ strokeWidth: "".concat(strokeWidth - 0.5, "px"),
232
+ strokeLinecap: "round",
233
+ "data-testid": "circular-indicator-blue-arc"
234
+ }), /*#__PURE__*/_jsx__default["default"]("path", {
235
+ className: classNameElement('arc-white'),
236
+ d: "M33,5 C17.536027,5 5,17.536027 5,33",
237
+ stroke: "#FFF",
238
+ strokeWidth: "".concat(strokeWidth + 2, "px"),
239
+ markerStart: "url(#inverseR)",
240
+ markerEnd: "url(#inverseL)"
241
+ }), grayArc));
242
+
243
+ return /*#__PURE__*/_jsx__default["default"]("div", {
244
+ className: classNameBlock('wrapper'),
245
+ role: "status",
246
+ "aria-hidden": waiting || loading ? 'false' : 'true'
247
+ }, void 0, buildIndicator(indicator), showLabel && labelText);
248
+ };
249
+
250
+ CircularProgressIndicator.defaultProps = {
251
+ size: 'm',
252
+ showLabel: false,
253
+ showTooltip: false,
254
+ waiting: false,
255
+ loading: false
256
+ };
257
+ const circularProgressIndicatorProps = {
258
+ size: reactDesc.PropTypes.oneOf(['xs', 's', 'm', 'l', 'xl', 'xxl', 'xxxl']).description('Defines the size of the indicator').defaultValue('m'),
259
+ showLabel: reactDesc.PropTypes.bool.description('Wheter the indicator displays its state on a label or not').defaultValue(false),
260
+ showTooltip: reactDesc.PropTypes.bool.description('Wheter the indicator displays its state on a tooltip or not').defaultValue(false),
261
+ waiting: reactDesc.PropTypes.bool.description('Defines the state of the indicator as Waiting and only displays the gray track').defaultValue(false),
262
+ loading: reactDesc.PropTypes.bool.description('Defines the state of the indicator as Loading and displays a blue spinner animation').defaultValue(false)
263
+ };
264
+ const CircularProgressIndicatorWithSchema = reactDesc.describe(CircularProgressIndicator);
265
+ CircularProgressIndicatorWithSchema.propTypes = circularProgressIndicatorProps;
266
+
267
+ exports.CircularProgressIndicatorWithSchema = CircularProgressIndicatorWithSchema;
268
+ exports["default"] = CircularProgressIndicator;
package/cjs/index.js ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var DSCircularProgressIndicator = require('./DSCircularProgressIndicator.js');
6
+ var DSCircularIndeterminateIndicator = require('./v2/DSCircularIndeterminateIndicator.js');
7
+
8
+
9
+
10
+ exports.CircularProgressIndicatorWithSchema = DSCircularProgressIndicator.CircularProgressIndicatorWithSchema;
11
+ exports.DSCircularProgressIndicator = DSCircularProgressIndicator["default"];
12
+ exports["default"] = DSCircularProgressIndicator["default"];
13
+ exports.DSCircularIndeterminateIndicator = DSCircularIndeterminateIndicator.DSCircularIndeterminateIndicator;
14
+ exports.DSCircularIndeterminateIndicatorWithSchema = DSCircularIndeterminateIndicator.DSCircularIndeterminateIndicatorWithSchema;
@@ -0,0 +1,113 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var _jsx = require('@babel/runtime/helpers/jsx');
12
+ var react = require('react');
13
+ var dsGrid = require('@elliemae/ds-grid');
14
+ var DSTooltip = require('@elliemae/ds-tooltip');
15
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
16
+ var uid = require('uid');
17
+ var reactDescPropTypes = require('./react-desc-prop-types.js');
18
+ var constants = require('./constants.js');
19
+ var styled = require('./styled.js');
20
+ var jsxRuntime = require('react/jsx-runtime');
21
+
22
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
+
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
25
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
26
+
27
+ 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; }
28
+
29
+ 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__default["default"](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; }
30
+ const DSCircularIndeterminateIndicator = props => {
31
+ const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props, reactDescPropTypes.defaultProps);
32
+ const globalAttributes = dsPropsHelpers.useGetGlobalAttributes(propsWithDefault);
33
+ const {
34
+ size,
35
+ color,
36
+ text,
37
+ showText,
38
+ withTooltip,
39
+ tooltipStartPlacementPreference,
40
+ __duration
41
+ } = propsWithDefault;
42
+ const Wrapper = react.useMemo(() => withTooltip ? DSTooltip.DSTooltipV3 : _ref => {
43
+ let {
44
+ children
45
+ } = _ref;
46
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
47
+ children: children
48
+ });
49
+ }, [withTooltip]);
50
+ const uniqueId = react.useMemo(() => uid.uid(16), []);
51
+ const circleRadius = react.useMemo(() => (constants.sizeToPx[size] - Number.parseInt(constants.sizeToWeight[size], 10)) / 2, [size]);
52
+ return /*#__PURE__*/jsxRuntime.jsx(dsGrid.Grid, _objectSpread(_objectSpread({
53
+ gutter: "xs",
54
+ justifyContent: "center",
55
+ role: "status"
56
+ }, globalAttributes), {}, {
57
+ children: /*#__PURE__*/_jsx__default["default"](Wrapper, {
58
+ text: text,
59
+ textAlign: "center",
60
+ startPlacementPreference: tooltipStartPlacementPreference
61
+ }, void 0, /*#__PURE__*/_jsx__default["default"](styled.StyledSvg, {
62
+ width: constants.sizeToPx[size],
63
+ height: constants.sizeToPx[size]
64
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("defs", {}, void 0, /*#__PURE__*/_jsx__default["default"]("clipPath", {
65
+ id: "not-gradient-clip-".concat(uniqueId)
66
+ }, void 0, /*#__PURE__*/_jsx__default["default"](styled.StyledRect, {
67
+ x: "0%",
68
+ y: "0%",
69
+ width: "52%",
70
+ height: "100%",
71
+ __duration: __duration
72
+ })), /*#__PURE__*/_jsx__default["default"]("linearGradient", {
73
+ id: "gradient-color-".concat(uniqueId),
74
+ x1: "0%",
75
+ x2: "0%",
76
+ y1: "0%",
77
+ y2: "100%"
78
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("stop", {
79
+ offset: "10%",
80
+ stopColor: "".concat(constants.colorToHex[color], "00")
81
+ }), /*#__PURE__*/_jsx__default["default"]("stop", {
82
+ offset: "90%",
83
+ stopColor: "".concat(constants.colorToHex[color], "FF")
84
+ }))), /*#__PURE__*/_jsx__default["default"](styled.StyledCircle, {
85
+ cx: "50%",
86
+ cy: "50%",
87
+ r: circleRadius,
88
+ strokeWidth: constants.sizeToWeight[size],
89
+ stroke: constants.colorToHex[color],
90
+ strokeLinecap: "round",
91
+ clipPath: "url(#not-gradient-clip-".concat(uniqueId, ")"),
92
+ __duration: __duration
93
+ }), /*#__PURE__*/_jsx__default["default"](styled.StyledPath, {
94
+ d: "M ".concat(constants.sizeToPx[size] / 2, " ").concat(constants.sizeToPx[size] / 2, "\n m ").concat(circleRadius, ", 0\n a ").concat(circleRadius, ", ").concat(circleRadius, " 0 0, 1 -").concat(circleRadius, ", ").concat(circleRadius),
95
+ strokeWidth: constants.sizeToWeight[size],
96
+ fill: "transparent",
97
+ stroke: "url(#gradient-color-".concat(uniqueId, ")"),
98
+ strokeLinecap: "round",
99
+ r: circleRadius,
100
+ __duration: __duration
101
+ })), text !== '' && showText && /*#__PURE__*/_jsx__default["default"]("span", {
102
+ style: {
103
+ color: color === 'light' ? '#FFFFFF' : '#25292F99',
104
+ fontSize: constants.sizeToTextSize[size]
105
+ }
106
+ }, void 0, text))
107
+ }));
108
+ };
109
+ const DSCircularIndeterminateIndicatorWithSchema = dsPropsHelpers.describe(DSCircularIndeterminateIndicator);
110
+ DSCircularIndeterminateIndicatorWithSchema.propTypes = reactDescPropTypes.CircularIndeterminateIndicatorPropTypes;
111
+
112
+ exports.DSCircularIndeterminateIndicator = DSCircularIndeterminateIndicator;
113
+ exports.DSCircularIndeterminateIndicatorWithSchema = DSCircularIndeterminateIndicatorWithSchema;
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const sizeToPx = {
6
+ xs: 16,
7
+ s: 24,
8
+ m: 32,
9
+ l: 48,
10
+ xl: 56,
11
+ xxl: 64
12
+ };
13
+ const sizeToWeight = {
14
+ xs: '3px',
15
+ s: '3px',
16
+ m: '3px',
17
+ l: '4px',
18
+ xl: '5px',
19
+ xxl: '6px'
20
+ };
21
+ const colorToHex = {
22
+ light: '#EBF6FF',
23
+ dark: '#1394E5'
24
+ };
25
+ const sizeToTextSize = {
26
+ xs: '12px',
27
+ s: '12px',
28
+ m: '12px',
29
+ l: '13px',
30
+ xl: '14px',
31
+ xxl: '16px'
32
+ };
33
+
34
+ exports.colorToHex = colorToHex;
35
+ exports.sizeToPx = sizeToPx;
36
+ exports.sizeToTextSize = sizeToTextSize;
37
+ exports.sizeToWeight = sizeToWeight;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var DSCircularIndeterminateIndicator = require('./DSCircularIndeterminateIndicator.js');
6
+
7
+
8
+
9
+ exports.DSCircularIndeterminateIndicator = DSCircularIndeterminateIndicator.DSCircularIndeterminateIndicator;
10
+ exports.DSCircularIndeterminateIndicatorWithSchema = DSCircularIndeterminateIndicator.DSCircularIndeterminateIndicatorWithSchema;
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
16
+
17
+ 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; }
18
+
19
+ 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__default["default"](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; }
20
+ const CircularIndeterminateIndicatorPropTypes = _objectSpread(_objectSpread({}, dsPropsHelpers.globalAttributesPropTypes), {}, {
21
+ size: dsPropsHelpers.PropTypes.oneOf(['xs', 's', 'm', 'l', 'xl', 'xxl']).description('Size of the indicator').defaultValue('m'),
22
+ color: dsPropsHelpers.PropTypes.oneOf(['light', 'dark']).description('Color mode for the indicator').defaultValue('dark'),
23
+ text: dsPropsHelpers.PropTypes.string.description('Optional text to show under the indicator').defaultValue(''),
24
+ showText: dsPropsHelpers.PropTypes.bool.description('Whether to show the optional text or not').defaultValue(true),
25
+ withTooltip: dsPropsHelpers.PropTypes.bool.description('Whether to include a tooltip that shows the optional text on hover').defaultValue(false),
26
+ tooltipStartPlacementPreference: dsPropsHelpers.PropTypes.oneOf(['top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']).description('start placement preference for the tooltip').defaultValue('center')
27
+ });
28
+ const defaultProps = {
29
+ size: 'm',
30
+ color: 'dark',
31
+ text: '',
32
+ showText: true,
33
+ withTooltip: false,
34
+ tooltipStartPlacementPreference: 'bottom',
35
+ __duration: 4
36
+ };
37
+
38
+ exports.CircularIndeterminateIndicatorPropTypes = CircularIndeterminateIndicatorPropTypes;
39
+ exports.defaultProps = defaultProps;
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
6
+ var styled = require('styled-components');
7
+ var dsSystem = require('@elliemae/ds-system');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
12
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
13
+
14
+ var _templateObject, _templateObject2, _templateObject3;
15
+ const {
16
+ PI
17
+ } = Math;
18
+
19
+ const getArcLength = (percentage, radius) => 2 * PI * radius / 100 * percentage;
20
+
21
+ const strokeTailAnimation = r => {
22
+ const miniDash = "".concat(getArcLength(0, r), " ").concat(getArcLength(100, r));
23
+ const fullDash = "".concat(getArcLength(75, r), " ").concat(getArcLength(25, r));
24
+ return dsSystem.kfrm(_templateObject || (_templateObject = _taggedTemplateLiteral__default["default"](["\n 0% {\n stroke-dasharray: ", ";\n }\n 50% {\n stroke-dasharray: ", ";\n }\n 100% {\n stroke-dasharray: ", ";\n }\n"])), miniDash, fullDash, miniDash);
25
+ };
26
+
27
+ const rotateAnimation = dsSystem.kfrm(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral__default["default"](["\n 0%, 12.5% {\n transform: rotate(0);\n }\n 25%, 37.5% {\n transform: rotate(270deg);\n }\n 50%, 62.5% {\n transform: rotate(540deg);\n }\n 75%, 87.5% {\n transform: rotate(810deg);\n }\n 100% {\n transform: rotate(1080deg);\n }\n"])));
28
+
29
+ const dashAnimation = r => {
30
+ const miniDash = "".concat(getArcLength(0, r), " ").concat(getArcLength(100, r));
31
+ const fullDash = "".concat(getArcLength(75, r), " ").concat(getArcLength(25, r));
32
+ return dsSystem.kfrm(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral__default["default"](["\n 0% {\n stroke-dasharray: ", ";\n stroke-dashoffset: 0;\n }\n 12.5% {\n stroke-dasharray: ", ";\n stroke-dashoffset: 0;\n }\n 25% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n 37.5% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n 50% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n 62.5% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n 75% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n 87.5% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n 100% {\n stroke-dasharray: ", ";\n stroke-dashoffset: ", ";\n }\n"])), miniDash, fullDash, miniDash, getArcLength(-75, r), fullDash, getArcLength(-75, r), miniDash, getArcLength(-150, r), fullDash, getArcLength(-150, r), miniDash, getArcLength(-225, r), fullDash, getArcLength(-225, r), miniDash, getArcLength(-300, r));
33
+ };
34
+
35
+ const StyledSvg = /*#__PURE__*/styled__default["default"].svg.withConfig({
36
+ componentId: "sc-bvvh5i-0"
37
+ })(["display:block;margin:auto;transform-origin:center center;transform:rotate(-90deg);"]);
38
+ const StyledPath = /*#__PURE__*/styled__default["default"].path.withConfig({
39
+ componentId: "sc-bvvh5i-1"
40
+ })(["transform-origin:center center;animation:", " ", "s linear infinite,", " ", "s linear infinite;"], rotateAnimation, props => props.__duration, props => strokeTailAnimation(props.r), props => props.__duration / 4);
41
+ const StyledRect = /*#__PURE__*/styled__default["default"].rect.withConfig({
42
+ componentId: "sc-bvvh5i-2"
43
+ })(["transform-origin:center center;animation:", " ", "s linear infinite;"], rotateAnimation, props => props.__duration);
44
+ const StyledCircle = /*#__PURE__*/styled__default["default"].circle.withConfig({
45
+ componentId: "sc-bvvh5i-3"
46
+ })(["stroke-dashoffset:0;fill:none;animation:", " ", "s linear infinite;clip-path:", ";-webkit-clip-path:", ";"], props => dashAnimation(props.r), props => props.__duration, props => props.clipPath, props => props.clipPath);
47
+
48
+ exports.StyledCircle = StyledCircle;
49
+ exports.StyledPath = StyledPath;
50
+ exports.StyledRect = StyledRect;
51
+ exports.StyledSvg = StyledSvg;