versacall-core-library-react 2.0.70 → 2.0.71

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 (142) hide show
  1. package/dist/components/CoreAlert/CoreAlert.js +85 -0
  2. package/dist/components/CoreAlert/index.js +13 -0
  3. package/dist/components/CoreAlert/readme.md +21 -0
  4. package/dist/components/CoreAppBar/CoreAppBar.js +364 -0
  5. package/dist/components/CoreAppBar/CoreAppBarDrawer.js +134 -0
  6. package/dist/components/CoreAppBar/README.md +27 -0
  7. package/dist/components/CoreAppBar/index.js +13 -0
  8. package/dist/components/CoreAppBar/screenshot.png +0 -0
  9. package/dist/components/CoreAppSelector/AppLink.js +101 -0
  10. package/dist/components/CoreAppSelector/CoreAppSelector.js +155 -0
  11. package/dist/components/CoreAppSelector/index.js +13 -0
  12. package/dist/components/CoreDialogueToolBar/CoreDialogueToolBar.js +123 -0
  13. package/dist/components/CoreDialogueToolBar/index.js +13 -0
  14. package/dist/components/CoreDrawer/CoreDrawer.js +236 -0
  15. package/dist/components/CoreDrawer/README.md +36 -0
  16. package/dist/components/CoreDrawer/index.js +13 -0
  17. package/dist/components/CoreDrawer/screenshot_collapsed.png +0 -0
  18. package/dist/components/CoreDrawer/screenshot_expanded.png +0 -0
  19. package/dist/components/CoreDropDownTextfield/CoreDropDownTextfield.js +85 -0
  20. package/dist/components/CoreDropDownTextfield/index.js +13 -0
  21. package/dist/components/CoreElapsedTime/CoreElapsedTime.js +57 -0
  22. package/dist/components/CoreElapsedTime/index.js +13 -0
  23. package/dist/components/CoreFrame/CoreFrame.js +64 -0
  24. package/dist/components/CoreFrame/index.js +13 -0
  25. package/dist/components/CoreImportDialog/CoreImportDialog.js +350 -0
  26. package/dist/components/CoreImportDialog/index.js +13 -0
  27. package/dist/components/CoreImportResultsDialog/CoreImportResultsDialog.js +103 -0
  28. package/dist/components/CoreImportResultsDialog/index.js +13 -0
  29. package/dist/components/CoreImporting/CoreImporting.js +60 -0
  30. package/dist/components/CoreImporting/index.js +13 -0
  31. package/dist/components/CorePlugin/CorePlugin.js +134 -0
  32. package/dist/components/CorePlugin/OldCorePlugin.js +124 -0
  33. package/dist/components/CorePlugin/index.js +13 -0
  34. package/dist/components/CoreSaveChangesDialog/CoreSaveChangesDialog.js +62 -0
  35. package/dist/components/CoreSaveChangesDialog/index.js +13 -0
  36. package/dist/components/CoreShiftTagFilter/CoreShiftTagFilter.js +350 -0
  37. package/dist/components/CoreShiftTagFilter/OldCoreShiftTagFilter.js +208 -0
  38. package/dist/components/CoreShiftTagFilter/index.js +13 -0
  39. package/dist/components/CoreSideBar/CoreSideBar.js +737 -0
  40. package/dist/components/CoreSideBar/CoreSideBarDrawer.js +172 -0
  41. package/dist/components/CoreSideBar/index.js +13 -0
  42. package/dist/components/CoreSnackBar/CoreSnackBar.js +116 -0
  43. package/dist/components/CoreSnackBar/index.js +13 -0
  44. package/dist/components/CoreSnackBar/readme.md +23 -0
  45. package/dist/components/CoreTable/CoreTable.js +315 -0
  46. package/dist/components/CoreTable/CoreTableChips.js +50 -0
  47. package/dist/components/CoreTable/CoreTableHead.js +175 -0
  48. package/dist/components/CoreTable/CoreTableToolbar.js +108 -0
  49. package/dist/components/CoreTable/index.js +13 -0
  50. package/dist/components/CoreTable/readMe.md +79 -0
  51. package/dist/components/CoreTagFilter/CoreTagFilter.js +275 -0
  52. package/dist/components/CoreTagFilter/OldCoreTagFilter.js +341 -0
  53. package/dist/components/CoreTagFilter/OldTagChip.js +44 -0
  54. package/dist/components/CoreTagFilter/OldTagFilterSelector.js +105 -0
  55. package/dist/components/CoreTagFilter/OldTagOption.js +53 -0
  56. package/dist/components/CoreTagFilter/TagFilterBuilder.js +487 -0
  57. package/dist/components/CoreTagFilter/index.js +13 -0
  58. package/dist/components/CoreTextField/CoreTextField.js +109 -0
  59. package/dist/components/CoreTextField/index.js +13 -0
  60. package/dist/components/CoreTheme/CoreTheme.css +9 -0
  61. package/dist/components/CoreTheme/CoreTheme.js +51 -0
  62. package/dist/components/CoreTheme/README.md +3 -0
  63. package/dist/components/CoreTheme/index.js +13 -0
  64. package/dist/components/CoreTile/CoreTile.js +62 -0
  65. package/dist/components/CoreTile/CoreTileToolbar.js +62 -0
  66. package/dist/components/CoreTile/index.js +13 -0
  67. package/dist/components/CoreTimerInput/CoreTimerInput.js +203 -0
  68. package/dist/components/CoreTimerInput/CoreTimerInputOld.js +146 -0
  69. package/dist/components/CoreTimerInput/index.js +13 -0
  70. package/dist/components/CoreToolbar/CoreToolbar.js +205 -0
  71. package/dist/components/CoreToolbar/index.js +13 -0
  72. package/dist/components/CoreTracker/CoreTracker.js +52 -0
  73. package/dist/components/CoreTracker/index.js +13 -0
  74. package/dist/components/CoreTranslate/CoreTranslate.js +62 -0
  75. package/dist/components/CoreTranslate/README.md +5 -0
  76. package/dist/components/CoreTranslate/index.js +13 -0
  77. package/dist/components/CoreTranslate/translations/en.json +451 -0
  78. package/dist/components/CoreTranslate/translations/es.json +433 -0
  79. package/dist/components/CoreTranslateWrapper/CoreTranslateWrapper.js +36 -0
  80. package/dist/components/CoreTranslateWrapper/index.js +13 -0
  81. package/dist/components/CoreWidget/CoreWidget.js +120 -0
  82. package/dist/components/CoreWidget/index.js +13 -0
  83. package/dist/components/CoreWrapper/CoreWrapper.js +51 -0
  84. package/dist/components/CoreWrapper/README.md +41 -0
  85. package/dist/components/CoreWrapper/index.js +13 -0
  86. package/dist/components/index.js +202 -0
  87. package/dist/constants/index.js +20 -0
  88. package/dist/constants/testOrganization.js +31 -0
  89. package/dist/constants/testToken.js +33 -0
  90. package/dist/context/Authentication/AuthenticationContext.js +10 -0
  91. package/dist/context/Authentication/AuthenticationProvider.js +225 -0
  92. package/dist/context/Authentication/README.md +47 -0
  93. package/dist/context/Authentication/index.js +27 -0
  94. package/dist/context/Authentication/withAuthentication.js +15 -0
  95. package/dist/context/Channels/ChannelsConsumer.js +42 -0
  96. package/dist/context/Channels/ChannelsContext.js +10 -0
  97. package/dist/context/Channels/ChannelsProvider.js +258 -0
  98. package/dist/context/Channels/DataChannel.js +68 -0
  99. package/dist/context/Channels/EntityChannel.js +69 -0
  100. package/dist/context/Channels/EveryoneChannel.js +55 -0
  101. package/dist/context/Channels/OrganizationChannel.js +69 -0
  102. package/dist/context/Channels/README.md +52 -0
  103. package/dist/context/Channels/UserChannel.js +60 -0
  104. package/dist/context/Channels/index.js +69 -0
  105. package/dist/context/Channels/withChannels.js +15 -0
  106. package/dist/context/Core/CoreContext.js +10 -0
  107. package/dist/context/Core/CoreProvider.js +107 -0
  108. package/dist/context/Core/README.md +43 -0
  109. package/dist/context/Core/index.js +27 -0
  110. package/dist/context/Core/withCore.js +15 -0
  111. package/dist/context/Organization/OrganizationContext.js +10 -0
  112. package/dist/context/Organization/OrganizationProvider.js +108 -0
  113. package/dist/context/Organization/README.md +82 -0
  114. package/dist/context/Organization/index.js +27 -0
  115. package/dist/context/Organization/withOrganization.js +15 -0
  116. package/dist/context/Plugin/PluginContext.js +10 -0
  117. package/dist/context/Plugin/PluginProvider.js +78 -0
  118. package/dist/context/Plugin/index.js +27 -0
  119. package/dist/context/Plugin/withPlugin.js +15 -0
  120. package/dist/context/index.js +60 -0
  121. package/dist/css/index.js +20 -0
  122. package/dist/css/junk.module.css +3 -0
  123. package/dist/css/scrollbar.css +35 -0
  124. package/dist/css/scrollbar.module.css +37 -0
  125. package/dist/functions/TagEvaluator.js +165 -0
  126. package/dist/functions/compareObjects.js +27 -0
  127. package/dist/functions/formatElapsedTime.js +18 -0
  128. package/dist/functions/formatNameFileSafe.js +16 -0
  129. package/dist/functions/getIconUrl.js +15 -0
  130. package/dist/functions/getParameterByName.js +34 -0
  131. package/dist/functions/getProperty.js +17 -0
  132. package/dist/functions/getUrl.js +15 -0
  133. package/dist/functions/index.js +62 -0
  134. package/dist/icons/CopyIcon.js +42 -0
  135. package/dist/icons/DeleteIcon.js +42 -0
  136. package/dist/icons/DuplicateIcon.js +42 -0
  137. package/dist/icons/EditIcon.js +42 -0
  138. package/dist/icons/FabAddIcon.js +78 -0
  139. package/dist/icons/PasteIcon.js +42 -0
  140. package/dist/icons/index.js +48 -0
  141. package/dist/index.js +71 -0
  142. package/package.json +2 -2
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _ArrowDropDown = _interopRequireDefault(require("@material-ui/icons/ArrowDropDown"));
9
+ var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
10
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
11
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
12
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
13
+ var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ class CoreTextField extends _react.Component {
18
+ constructor() {
19
+ super();
20
+ this.state = {
21
+ textMenuElement: null
22
+ };
23
+ }
24
+ updateValue(value) {
25
+ if (this.props.updateValue) {
26
+ this.props.updateValue(value);
27
+ }
28
+ }
29
+ selectOption(value) {
30
+ if (this.props.selectOption) {
31
+ this.props.selectOption(value);
32
+ }
33
+ }
34
+ render() {
35
+ const {
36
+ id,
37
+ label,
38
+ value,
39
+ fullWidth,
40
+ multiline,
41
+ options,
42
+ placeholder
43
+ } = this.props;
44
+ const {
45
+ textMenuElement
46
+ } = this.state;
47
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TextField.default, {
48
+ value: value,
49
+ label: label,
50
+ multiline: multiline,
51
+ placeholder: placeholder,
52
+ style: {
53
+ width: fullWidth ? '100%' : 'auto'
54
+ },
55
+ InputLabelProps: {
56
+ shrink: true
57
+ },
58
+ onChange: event => this.updateValue(event.target.value),
59
+ InputProps: {
60
+ endAdornment: options.length > 0 ? /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
61
+ position: "end"
62
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
63
+ size: "small",
64
+ onClick: event => this.setState({
65
+ textMenuElement: event.currentTarget
66
+ })
67
+ }, /*#__PURE__*/_react.default.createElement(_ArrowDropDown.default, null))) : /*#__PURE__*/_react.default.createElement("span", null)
68
+ },
69
+ variant: "outlined"
70
+ }), textMenuElement && /*#__PURE__*/_react.default.createElement(_Menu.default, {
71
+ anchorEl: textMenuElement,
72
+ onClose: () => this.setState({
73
+ textMenuElement: null
74
+ }),
75
+ open: true
76
+ }, options.map((option, index) => /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
77
+ key: String(index),
78
+ onClick: () => {
79
+ this.selectOption(option);
80
+ this.setState({
81
+ textMenuElement: null
82
+ });
83
+ }
84
+ }, id ? option[id] : option))));
85
+ }
86
+ }
87
+ CoreTextField.propTypes = {
88
+ id: _propTypes.default.string,
89
+ label: _propTypes.default.string,
90
+ value: _propTypes.default.string,
91
+ fullWidth: _propTypes.default.bool,
92
+ multiline: _propTypes.default.bool,
93
+ updateValue: _propTypes.default.func,
94
+ selectOption: _propTypes.default.func,
95
+ placeholder: _propTypes.default.string,
96
+ options: _propTypes.default.arrayOf(_propTypes.default.shape())
97
+ };
98
+ CoreTextField.defaultProps = {
99
+ id: '',
100
+ label: '',
101
+ value: '',
102
+ options: [],
103
+ placeholder: '',
104
+ fullWidth: false,
105
+ multiline: false,
106
+ updateValue: null,
107
+ selectOption: null
108
+ };
109
+ var _default = exports.default = CoreTextField;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CoreTextField.default;
10
+ }
11
+ });
12
+ var _CoreTextField = _interopRequireDefault(require("./CoreTextField"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,9 @@
1
+ html, body {
2
+ -webkit-touch-callout: none; /* iOS Safari */
3
+ -webkit-user-select: none; /* Safari */
4
+ -khtml-user-select: none; /* Konqueror HTML */
5
+ -moz-user-select: none; /* Old versions of Firefox */
6
+ -ms-user-select: none; /* Internet Explorer/Edge */
7
+ user-select: none; /* Non-prefixed version, currently
8
+ supported by Chrome, Edge, Opera and Firefox */
9
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _styles = require("@material-ui/core/styles");
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ require("./CoreTheme.css");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // https://v4.mui.com/customization/default-theme/?expand-path=$.palette
13
+
14
+ const theme = (0, _styles.createTheme)({
15
+ palette: {
16
+ primary: {
17
+ main: '#55b7dc'
18
+ },
19
+ secondary: {
20
+ main: '#496b78'
21
+ }
22
+ /* warning: {
23
+ light: '#ffb74d',
24
+ main: '#ff9800',
25
+ dark: '#f57c00',
26
+ contrastText: 'rgba(0, 0, 0, 0.87)',
27
+ }, */
28
+ },
29
+ typography: {
30
+ useNextVariants: true
31
+ }
32
+ });
33
+ const styles = () => ({
34
+ '@global': {
35
+ body: {
36
+ background: '#eff4f8',
37
+ margin: 0,
38
+ padding: 0,
39
+ fontFamily: 'sans-serif'
40
+ }
41
+ }
42
+ });
43
+ function CoreTheme(props) {
44
+ return /*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
45
+ theme: theme
46
+ }, props.children);
47
+ }
48
+ CoreTheme.propTypes = {
49
+ children: _propTypes.default.node.isRequired
50
+ };
51
+ var _default = exports.default = (0, _styles.withStyles)(styles)(CoreTheme);
@@ -0,0 +1,3 @@
1
+ # CoreTheme
2
+
3
+ This wrapper provides a custom [material-ui theme](https://material-ui.com/style/color/) to provide a consistent look and feel to the software. Can be implemented directly but typically is added to an application through [CoreWrapper](../CoreWrapper).
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CoreTheme.default;
10
+ }
11
+ });
12
+ var _CoreTheme = _interopRequireDefault(require("./CoreTheme"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _Card = _interopRequireDefault(require("@material-ui/core/Card"));
9
+ var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
10
+ var _reactIntl = require("react-intl");
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _CoreTileToolbar = _interopRequireDefault(require("./CoreTileToolbar"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const style = {
15
+ padding: {
16
+ padding: 16
17
+ }
18
+ };
19
+ function CoreTile(props) {
20
+ const {
21
+ id,
22
+ customToolbar,
23
+ toolBarIcons,
24
+ title,
25
+ data
26
+ } = props;
27
+ return /*#__PURE__*/_react.default.createElement("div", null, title && /*#__PURE__*/_react.default.createElement(_CoreTileToolbar.default, {
28
+ title: title,
29
+ icons: toolBarIcons,
30
+ customToolbar: customToolbar
31
+ }), /*#__PURE__*/_react.default.createElement("div", {
32
+ style: style.padding
33
+ }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
34
+ spacing: 2,
35
+ container: true
36
+ }, data.map((row, index) => /*#__PURE__*/_react.default.createElement(_Grid.default, {
37
+ xs: 12,
38
+ sm: 6,
39
+ md: 4,
40
+ lg: 3,
41
+ key: String(index),
42
+ item: true
43
+ }, props.customTile ? props.customTile({
44
+ id: id,
45
+ row: row
46
+ }) : /*#__PURE__*/_react.default.createElement(_Card.default, null, row[id]))))));
47
+ }
48
+ CoreTile.propTypes = {
49
+ title: _propTypes.default.string,
50
+ customTile: _propTypes.default.func,
51
+ toolBarIcons: _propTypes.default.node,
52
+ customToolbar: _propTypes.default.func,
53
+ id: _propTypes.default.string.isRequired,
54
+ data: _propTypes.default.arrayOf(_propTypes.default.object).isRequired
55
+ };
56
+ CoreTile.defaultProps = {
57
+ title: '',
58
+ customTile: null,
59
+ toolBarIcons: null,
60
+ customToolbar: null
61
+ };
62
+ var _default = exports.default = (0, _reactIntl.injectIntl)(CoreTile);
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
9
+ var _styles = require("@material-ui/core/styles");
10
+ var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const styles = theme => ({
14
+ title: {
15
+ display: 'flex',
16
+ width: '100%',
17
+ height: '100%',
18
+ justifyContent: 'space-between'
19
+ },
20
+ normal: {
21
+ background: 'lightgray',
22
+ color: 'black'
23
+ }
24
+ });
25
+ function CoreTileToolbar(props) {
26
+ const {
27
+ title,
28
+ customToolbar,
29
+ icons,
30
+ classes
31
+ } = props;
32
+ const toolBarConfig = () => {
33
+ if (customToolbar) {
34
+ return customToolbar({
35
+ title: title,
36
+ classes: classes
37
+ });
38
+ }
39
+ return /*#__PURE__*/_react.default.createElement("div", {
40
+ className: classes.title
41
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
42
+ color: "inherit",
43
+ variant: "h6"
44
+ }, title), icons);
45
+ };
46
+ return /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
47
+ variant: "dense",
48
+ className: classes.normal
49
+ }, toolBarConfig());
50
+ }
51
+ CoreTileToolbar.propTypes = {
52
+ icons: _propTypes.default.node,
53
+ title: _propTypes.default.string,
54
+ customToolbar: _propTypes.default.func,
55
+ classes: _propTypes.default.shape().isRequired
56
+ };
57
+ CoreTileToolbar.defaultProps = {
58
+ icons: null,
59
+ title: null,
60
+ customToolbar: null
61
+ };
62
+ var _default = exports.default = (0, _styles.withStyles)(styles)(CoreTileToolbar);
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CoreTile.default;
10
+ }
11
+ });
12
+ var _CoreTile = _interopRequireDefault(require("./CoreTile"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _InputBase = _interopRequireDefault(require("@material-ui/core/InputBase"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ 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; }
12
+ 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; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint-disable react/jsx-no-duplicate-props */ // !! had to disable duplicate props because InputProps (capital I) vs inputProps(lowercase) target different sub components
16
+ const muiStyle = {
17
+ styleBox: {
18
+ position: 'relative',
19
+ borderStyle: 'solid',
20
+ borderWidth: 1,
21
+ borderColor: 'rgba(0, 0, 0, 0.23)',
22
+ borderRadius: 4,
23
+ paddingTop: 11,
24
+ paddingBottom: 11,
25
+ paddingLeft: 10
26
+ // padding: 10,
27
+ },
28
+ label: {
29
+ fontSize: '1rem',
30
+ padding: 0,
31
+ paddingLeft: 6,
32
+ paddingRight: 6,
33
+ lineHeight: 1,
34
+ zIndex: 1,
35
+ position: 'absolute',
36
+ top: 0,
37
+ left: 0,
38
+ transformOrigin: 'top left',
39
+ transform: 'translate(8px, -6px) scale(0.75)',
40
+ backgroundColor: 'white',
41
+ color: 'rgba(0, 0, 0, 0.6)'
42
+ },
43
+ unitLabel: {
44
+ marginRight: 10,
45
+ color: 'rgba(0, 0, 0, 0.4)',
46
+ fontSize: 'smaller'
47
+ }
48
+ };
49
+ function CoreTimerInput(props) {
50
+ const {
51
+ label,
52
+ time,
53
+ handleUpdateTime,
54
+ showSeconds,
55
+ showMinutes,
56
+ showHours,
57
+ margin,
58
+ style,
59
+ disabled
60
+ } = props;
61
+ let hours = 0;
62
+ let min = 0;
63
+ let sec = time;
64
+ const getTime = () => {
65
+ hours = Math.floor(sec / 3600);
66
+ sec -= hours * 3600;
67
+ min = Math.floor(sec / 60);
68
+ sec -= min * 60;
69
+ };
70
+ // 1000
71
+ // divde by 360 get 2.777
72
+ // math.floor(2.7) = hours
73
+ // 1000 - hours * 360
74
+ // 280 divide by 60 get 4.6
75
+ // math.floor(4.6) = min
76
+ // 280 - min * 60 = seconds
77
+
78
+ getTime();
79
+ const handleChange = (value, type) => {
80
+ let newTime = time;
81
+ if (type === 'hours' && value < 24) {
82
+ newTime -= hours * 3600;
83
+ newTime += 3600 * value;
84
+ }
85
+ if (type === 'min' && value < 60) {
86
+ newTime -= min * 60;
87
+ newTime += 60 * value;
88
+ }
89
+ if (type === 'sec' && value < 60) {
90
+ newTime -= sec;
91
+ newTime += 1 * value; // added the 1 to convert value to int
92
+ }
93
+ return handleUpdateTime(Math.abs(newTime));
94
+ };
95
+ function formatValue(value) {
96
+ const str = value.toString();
97
+ if (str.length === 1) {
98
+ return "0".concat(str);
99
+ }
100
+ return str;
101
+ }
102
+ function getMarginStyle() {
103
+ if (margin === 'normal') {
104
+ return {
105
+ marginTop: 16,
106
+ marginBottom: 8
107
+ };
108
+ }
109
+ if (margin === 'dense') {
110
+ return {
111
+ paddingTop: 3,
112
+ paddingBottom: 3,
113
+ marginTop: 8,
114
+ marginBottom: 4
115
+ };
116
+ }
117
+ return {};
118
+ }
119
+ return /*#__PURE__*/_react.default.createElement("div", {
120
+ style: _objectSpread(_objectSpread(_objectSpread({}, muiStyle.styleBox), getMarginStyle()), style)
121
+ }, label && /*#__PURE__*/_react.default.createElement("span", {
122
+ style: muiStyle.label
123
+ }, label), /*#__PURE__*/_react.default.createElement("span", {
124
+ style: {
125
+ display: 'flex',
126
+ alignItems: 'center'
127
+ }
128
+ }, showHours && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
129
+ style: muiStyle.unitLabel
130
+ }, "H"), /*#__PURE__*/_react.default.createElement("div", {
131
+ style: {
132
+ flexGrow: 1,
133
+ paddingRight: 10
134
+ }
135
+ }, /*#__PURE__*/_react.default.createElement(_InputBase.default, {
136
+ id: "hoursInput",
137
+ value: formatValue(hours),
138
+ onChange: event => handleChange(event.target.value, 'hours'),
139
+ type: "number",
140
+ inputProps: {
141
+ min: '0'
142
+ },
143
+ disabled: disabled
144
+ }))), showMinutes && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
145
+ style: muiStyle.unitLabel
146
+ }, "M"), /*#__PURE__*/_react.default.createElement("div", {
147
+ style: {
148
+ flexGrow: 1,
149
+ paddingRight: 10
150
+ }
151
+ }, /*#__PURE__*/_react.default.createElement(_InputBase.default, {
152
+ id: "minutesInput",
153
+ value: formatValue(min),
154
+ onChange: event => handleChange(event.target.value, 'min'),
155
+ type: "number",
156
+ inputProps: {
157
+ min: '0'
158
+ },
159
+ disabled: disabled
160
+ }))), showSeconds && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
161
+ style: muiStyle.unitLabel
162
+ }, "S"), /*#__PURE__*/_react.default.createElement("div", {
163
+ style: {
164
+ flexGrow: 1,
165
+ paddingRight: 10
166
+ }
167
+ }, /*#__PURE__*/_react.default.createElement(_InputBase.default, {
168
+ id: "secondsInput",
169
+ value: formatValue(sec),
170
+ onChange: event => handleChange(event.target.value, 'sec'),
171
+ type: "number",
172
+ inputProps: {
173
+ min: '0'
174
+ },
175
+ disabled: disabled
176
+ })))));
177
+
178
+ // should take prop for time in seconds
179
+ // should take a handleChange function
180
+ // pull the event target value and then update the time with that * seconds
181
+ // might wanna move this coreLibrary after
182
+ }
183
+ CoreTimerInput.propTypes = {
184
+ label: _propTypes.default.string,
185
+ time: _propTypes.default.number.isRequired,
186
+ handleUpdateTime: _propTypes.default.func.isRequired,
187
+ showSeconds: _propTypes.default.bool,
188
+ showMinutes: _propTypes.default.bool,
189
+ showHours: _propTypes.default.bool,
190
+ margin: _propTypes.default.string,
191
+ style: _propTypes.default.objectOf(_propTypes.default.string),
192
+ disabled: _propTypes.default.bool
193
+ };
194
+ CoreTimerInput.defaultProps = {
195
+ label: null,
196
+ showSeconds: true,
197
+ showMinutes: true,
198
+ showHours: true,
199
+ margin: 'none',
200
+ style: {},
201
+ disabled: false
202
+ };
203
+ var _default = exports.default = CoreTimerInput;