kitchen-simulator 5.0.0-test.18 → 5.0.0-test.19

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 (179) hide show
  1. package/package.json +8 -26
  2. package/src/@history.js +3 -0
  3. package/src/CrossSignOn.jsx +94 -0
  4. package/src/KitchenConfigurator.jsx +1526 -0
  5. package/src/KitchenConfiguratorApp.jsx +1 -1
  6. package/src/_KitchenConfigurator.jsx +3 -3
  7. package/src/components/catalog-view/catalog-breadcrumb.jsx +53 -0
  8. package/src/components/catalog-view/catalog-item.jsx +229 -0
  9. package/src/components/catalog-view/catalog-list.jsx +173 -0
  10. package/src/components/catalog-view/catalog-page-item.jsx +110 -0
  11. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +80 -0
  12. package/src/components/configurator/custom-configurator.jsx +77 -0
  13. package/src/components/configurator/project-configurator.jsx +120 -0
  14. package/src/components/export.js +36 -0
  15. package/src/components/firstsetting/button/styles.js +223 -0
  16. package/src/components/firstsetting/export.js +9 -0
  17. package/src/components/firstsetting/firstsetting-content-button.jsx +198 -0
  18. package/src/components/firstsetting/firstsetting-toggle-button.jsx +101 -0
  19. package/src/components/firstsetting/firstsetting.jsx +814 -0
  20. package/src/components/footerbar/button/ControlButton.jsx +43 -0
  21. package/src/components/footerbar/button/DirectionButton.jsx +54 -0
  22. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +36 -0
  23. package/src/components/footerbar/button/ToggleButton.jsx +58 -0
  24. package/src/components/footerbar/button/ToggleConvertButton.jsx +48 -0
  25. package/src/components/footerbar/button/ToggleMeasureButton.jsx +33 -0
  26. package/src/components/footerbar/button/styles.js +217 -0
  27. package/src/components/footerbar/export.js +9 -0
  28. package/src/components/footerbar/footer-content-button.jsx +198 -0
  29. package/src/components/footerbar/footer-toggle-button.jsx +101 -0
  30. package/src/components/footerbar/footerbar.jsx +1103 -0
  31. package/src/components/footerbar/styles.js +263 -0
  32. package/src/components/header/button/MenuButton.jsx +46 -0
  33. package/src/components/header/button/SaveButton.jsx +54 -0
  34. package/src/components/header/button/styles.js +181 -0
  35. package/src/components/header/export.js +5 -0
  36. package/src/components/header/header.jsx +631 -0
  37. package/src/components/header/header.style.css +47 -0
  38. package/src/components/header/styles.js +320 -0
  39. package/src/components/login/Login.js +77 -0
  40. package/src/components/login/LoginForm/index.js +108 -0
  41. package/src/components/login/Register.js +82 -0
  42. package/src/components/login/RegisterForm/index.js +171 -0
  43. package/src/components/login/jwtService.js +201 -0
  44. package/src/components/login/style.css +158 -0
  45. package/src/components/login/style.scss +260 -0
  46. package/src/components/myprojects/export.js +5 -0
  47. package/src/components/myprojects/index.jsx +445 -0
  48. package/src/components/myprojects/styles.js +241 -0
  49. package/src/components/sidebar/custom-accordion.jsx +48 -0
  50. package/src/components/sidebar/export.js +15 -0
  51. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +73 -0
  52. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +101 -0
  53. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +149 -0
  54. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +316 -0
  55. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +108 -0
  56. package/src/components/sidebar/panel-element-editor/element-editor.jsx +1070 -0
  57. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  58. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +104 -0
  59. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +155 -0
  60. package/src/components/sidebar/panel-group-editor.jsx +272 -0
  61. package/src/components/sidebar/panel-groups.jsx +310 -0
  62. package/src/components/sidebar/panel-guides.jsx +192 -0
  63. package/src/components/sidebar/panel-layer-elements.jsx +298 -0
  64. package/src/components/sidebar/panel-layers.jsx +381 -0
  65. package/src/components/sidebar/panel.jsx +71 -0
  66. package/src/components/sidebar/sidebar.jsx +106 -0
  67. package/src/components/sidebar/toolbar-panel.jsx +139 -0
  68. package/src/components/sign/export.js +7 -0
  69. package/src/components/sign/main/index.jsx +523 -0
  70. package/src/components/sign/main/styles.js +163 -0
  71. package/src/components/toolbar/button/ControlButton.jsx +41 -0
  72. package/src/components/toolbar/button/DirectionButton.jsx +34 -0
  73. package/src/components/toolbar/button/RightButton.jsx +103 -0
  74. package/src/components/toolbar/button/ToggleButton.jsx +41 -0
  75. package/src/components/toolbar/button/index.jsx +55 -0
  76. package/src/components/toolbar/button/styles.js +127 -0
  77. package/src/components/toolbar/components/DoorStyleMenu.jsx +103 -0
  78. package/src/components/toolbar/components/Pricing.jsx +126 -0
  79. package/src/components/toolbar/components/ReviewForQuote.jsx +635 -0
  80. package/src/components/toolbar/export.js +21 -0
  81. package/src/components/toolbar/main/Alert.js +122 -0
  82. package/src/components/toolbar/main/TakePictureModal.jsx +104 -0
  83. package/src/components/toolbar/main/confirm-popup.jsx +99 -0
  84. package/src/components/toolbar/main/index.jsx +5627 -0
  85. package/src/components/toolbar/main/lShaped.json +311 -0
  86. package/src/components/toolbar/main/longNarrow.json +238 -0
  87. package/src/components/toolbar/main/myComponents.js +123 -0
  88. package/src/components/toolbar/main/oRectangle.json +220 -0
  89. package/src/components/toolbar/main/rectangle.json +238 -0
  90. package/src/components/toolbar/main/style.css +107 -0
  91. package/src/components/toolbar/main/styles.js +696 -0
  92. package/src/components/toolbar/plugin-item.jsx +123 -0
  93. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +73 -0
  94. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +102 -0
  95. package/src/components/toolbar/popup/appliance/index.jsx +83 -0
  96. package/src/components/toolbar/popup/autosaveprompt/index.jsx +150 -0
  97. package/src/components/toolbar/popup/autosaveprompt/styles.css +64 -0
  98. package/src/components/toolbar/popup/autosaveprompt/styles.js +40 -0
  99. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +73 -0
  100. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +119 -0
  101. package/src/components/toolbar/popup/cabinet/index.jsx +85 -0
  102. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +63 -0
  103. package/src/components/toolbar/popup/doorStyle/index.jsx +71 -0
  104. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +139 -0
  105. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +2 -0
  106. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +157 -0
  107. package/src/components/toolbar/popup/downloadsummary/index.jsx +643 -0
  108. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +51 -0
  109. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +175 -0
  110. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +283 -0
  111. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +2257 -0
  112. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +93 -0
  113. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +132 -0
  114. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +2198 -0
  115. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +152 -0
  116. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +149 -0
  117. package/src/components/toolbar/popup/downloadsummary/styles.css +177 -0
  118. package/src/components/toolbar/popup/downloadsummary/styles.js +453 -0
  119. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +34 -0
  120. package/src/components/toolbar/popup/finishingtouch/index.jsx +58 -0
  121. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +112 -0
  122. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +116 -0
  123. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +101 -0
  124. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +254 -0
  125. package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +311 -0
  126. package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +238 -0
  127. package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +220 -0
  128. package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +238 -0
  129. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +86 -0
  130. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +109 -0
  131. package/src/components/toolbar/popup/floorplan/index.jsx +60 -0
  132. package/src/components/toolbar/popup/index.jsx +241 -0
  133. package/src/components/toolbar/popup/newproject/index.jsx +59 -0
  134. package/src/components/toolbar/popup/newproject/styles.css +64 -0
  135. package/src/components/toolbar/popup/newproject/styles.js +41 -0
  136. package/src/components/toolbar/popup/product/appliance.jsx +54 -0
  137. package/src/components/toolbar/popup/product/cabinetproduct.jsx +15 -0
  138. package/src/components/toolbar/popup/product/doorstyle.jsx +58 -0
  139. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +47 -0
  140. package/src/components/toolbar/popup/product/floor.jsx +36 -0
  141. package/src/components/toolbar/popup/product/floorproduct.jsx +42 -0
  142. package/src/components/toolbar/popup/product/index.jsx +36 -0
  143. package/src/components/toolbar/popup/product/primary.jsx +77 -0
  144. package/src/components/toolbar/popup/product/productline.jsx +93 -0
  145. package/src/components/toolbar/popup/product/reviewItem.jsx +427 -0
  146. package/src/components/toolbar/popup/product/reviewMolding.jsx +310 -0
  147. package/src/components/toolbar/popup/product/style.css +54 -0
  148. package/src/components/toolbar/popup/product/styles.js +260 -0
  149. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +146 -0
  150. package/src/components/toolbar/popup/savedesign/index.jsx +495 -0
  151. package/src/components/toolbar/popup/savedesign/savedesign.style.css +16 -0
  152. package/src/components/toolbar/popup/savedesign/styles.js +151 -0
  153. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +87 -0
  154. package/src/components/toolbar/popup/styles.js +909 -0
  155. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +192 -0
  156. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +96 -0
  157. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +54 -0
  158. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +25 -0
  159. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +116 -0
  160. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +38 -0
  161. package/src/components/toolbar/popup/submitforquote/index.jsx +698 -0
  162. package/src/components/toolbar/popup/submitforquote/styles.css +105 -0
  163. package/src/components/toolbar/popup/submitforquote/styles.js +294 -0
  164. package/src/components/toolbar/popup/submitprompt/index.jsx +89 -0
  165. package/src/components/toolbar/popup/submitprompt/styles.css +64 -0
  166. package/src/components/toolbar/popup/submitprompt/styles.js +42 -0
  167. package/src/components/toolbar/toolbar-button.jsx +90 -0
  168. package/src/components/toolbar/toolbar-load-button.jsx +36 -0
  169. package/src/components/toolbar/toolbar-save-button.jsx +32 -0
  170. package/src/components/wizardstep/button/styles.js +677 -0
  171. package/src/components/wizardstep/export.js +5 -0
  172. package/src/components/wizardstep/index.jsx +1372 -0
  173. package/src/components/wizardstep/styles.js +688 -0
  174. package/src/components/wizardstep/wizardstep-content-button.jsx +198 -0
  175. package/src/components/wizardstep/wizardstep-toggle-button.jsx +101 -0
  176. package/src/{_index.js → index.js} +4 -4
  177. package/src/renderer.jsx +466 -0
  178. package/src/actions/_export.js +0 -35
  179. package/src/components/_export.js +0 -11
@@ -0,0 +1,43 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as S from './styles';
4
+ import { Tooltip } from '@material-ui/core/index';
5
+
6
+ export default class ControlButton extends Component {
7
+ constructor(props, context) {
8
+ super(props, context);
9
+ this.state = { hover: false };
10
+ }
11
+
12
+ render() {
13
+ let { state, props } = this;
14
+ let overlayStyle = {};
15
+ if (state.hover) overlayStyle = { ...overlayStyle, display: 'block' };
16
+
17
+ return (
18
+ <Tooltip title={props.tooltip ? props.tooltip : ''} placement="top">
19
+ <S.Control
20
+ onMouseOver={event => this.setState({ hover: true })}
21
+ onMouseOut={event => this.setState({ hover: false })}
22
+ onClick={props.onClick}
23
+ >
24
+ {[
25
+ props.title !== undefined ? (
26
+ <S.ControlTitle key={props.title}>{props.title}</S.ControlTitle>
27
+ ) : null,
28
+ props.icon !== undefined ? (
29
+ <S.ControlIcon key={props.icon}>{props.icon}</S.ControlIcon>
30
+ ) : null
31
+ ]}
32
+ </S.Control>
33
+ </Tooltip>
34
+ );
35
+ }
36
+ }
37
+
38
+ ControlButton.propTypes = {
39
+ title: PropTypes.string,
40
+ hover: PropTypes.bool,
41
+ active: PropTypes.bool.isRequired,
42
+ onClick: PropTypes.func
43
+ };
@@ -0,0 +1,54 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as SharedStyle from '../../../shared-style';
4
+ import * as S from './styles';
5
+ import { Tooltip } from '@material-ui/core/index';
6
+
7
+ export default class DirectionButton extends Component {
8
+ constructor(props, context) {
9
+ super(props, context);
10
+ }
11
+
12
+ render() {
13
+ let { props } = this;
14
+ let overlayStyle = {};
15
+ // overlayStyle = props.active ? {...overlayStyle,'background': SharedStyle.TOOLBAR_COLOR.active}:{...overlayStyle};
16
+ let title, placement;
17
+ switch (props.tooltip) {
18
+ case 'Right':
19
+ title = 'Right';
20
+ placement = 'right';
21
+ break;
22
+ case 'Left':
23
+ title = 'Left';
24
+ placement = 'left';
25
+ break;
26
+ case 'Top':
27
+ title = 'Up';
28
+ placement = 'top';
29
+ break;
30
+ default: // Bottom
31
+ title = 'Down';
32
+ placement = 'bottom';
33
+ break;
34
+ }
35
+ return (
36
+ <Tooltip title={title} placement={placement}>
37
+ <S.DirectionIcon
38
+ style={props.style}
39
+ onMouseDown={props.onClick}
40
+ key={props.icon}
41
+ >
42
+ {props.icon}
43
+ </S.DirectionIcon>
44
+ </Tooltip>
45
+ );
46
+ }
47
+ }
48
+
49
+ DirectionButton.propTypes = {
50
+ title: PropTypes.string,
51
+ hover: PropTypes.bool,
52
+ active: PropTypes.bool.isRequired,
53
+ onClick: PropTypes.func
54
+ };
@@ -0,0 +1,36 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as SharedStyle from '../../../shared-style';
4
+ import * as S from './styles';
5
+ import { Tooltip } from '@material-ui/core/index';
6
+
7
+ export default class DirectionPanSpinButton extends Component {
8
+ constructor(props, context) {
9
+ super(props, context);
10
+ }
11
+
12
+ render() {
13
+ let { props } = this;
14
+ let overlayStyle = {};
15
+ // overlayStyle = props.active ? {...overlayStyle,'background': SharedStyle.TOOLBAR_COLOR.active}:{...overlayStyle};
16
+ return (
17
+ <Tooltip title={props.tooltip ? props.tooltip : ''} placement="top">
18
+ <S.DirectionSpinIcon
19
+ style={props.style}
20
+ onMouseDown={props.onMouseDown}
21
+ onMouseUp={props.onMouseUp}
22
+ key={props.icon}
23
+ >
24
+ {props.icon}
25
+ </S.DirectionSpinIcon>
26
+ </Tooltip>
27
+ );
28
+ }
29
+ }
30
+
31
+ DirectionPanSpinButton.propTypes = {
32
+ title: PropTypes.string,
33
+ hover: PropTypes.bool,
34
+ active: PropTypes.bool.isRequired,
35
+ onClick: PropTypes.func
36
+ };
@@ -0,0 +1,58 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { ARRAY_3D_MODES } from '../../../constants';
4
+ import * as S from './styles';
5
+ import { Tooltip } from '@material-ui/core/index';
6
+
7
+ export default class ToggleButton extends Component {
8
+ constructor(props, context) {
9
+ super(props, context);
10
+ }
11
+
12
+ render() {
13
+ let { props } = this;
14
+ let overlayStyle = {};
15
+ // let activeStyle = {}
16
+ let activeStyle = ARRAY_3D_MODES.includes(props.settingMode)
17
+ ? { position: 'absolute', left: 32, top: -2 }
18
+ : { position: 'absolute', left: 2, top: 14 };
19
+ return (
20
+ <Tooltip
21
+ title={
22
+ ARRAY_3D_MODES.includes(props.settingMode)
23
+ ? 'To 2D view'
24
+ : 'To 3D view'
25
+ }
26
+ placement="top"
27
+ >
28
+ <S.Toggle
29
+ id="toggle_2d_3d"
30
+ style={{ ...overlayStyle, color: 'black' }}
31
+ onClick={props.onClick}
32
+ >
33
+ {props.backgroundImage}
34
+ <span style={{ position: 'absolute', left: 10 }}>
35
+ <strong>2D</strong>
36
+ </span>
37
+ <span style={{ position: 'absolute', left: 38 }}>
38
+ <strong>3D</strong>
39
+ </span>
40
+ {[
41
+ props.icon !== undefined ? (
42
+ <S.ToggleIcon style={{ ...activeStyle }} key={props.icon}>
43
+ {props.icon}
44
+ </S.ToggleIcon>
45
+ ) : null
46
+ ]}
47
+ </S.Toggle>
48
+ </Tooltip>
49
+ );
50
+ }
51
+ }
52
+
53
+ ToggleButton.propTypes = {
54
+ title: PropTypes.string,
55
+ hover: PropTypes.bool,
56
+ active: PropTypes.bool.isRequired,
57
+ onClick: PropTypes.func
58
+ };
@@ -0,0 +1,48 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { MODE_IDLE_3D } from '../../../constants';
4
+ import * as S from './styles';
5
+
6
+ export default class ToggleConvertButton extends Component {
7
+ constructor(props, context) {
8
+ super(props, context);
9
+ }
10
+
11
+ render() {
12
+ let { props } = this;
13
+ let overlayStyle = {};
14
+ // let activeStyle = {}
15
+ let activeStyle =
16
+ props.settingMode === 'in'
17
+ ? { position: 'absolute', left: 285, top: 14 }
18
+ : { position: 'absolute', left: 317, top: 14 };
19
+ return (
20
+ <S.Toggle
21
+ style={{ ...overlayStyle, color: 'black' }}
22
+ onClick={props.onClick}
23
+ >
24
+ {props.backgroundImage}
25
+ <span style={{ position: 'absolute', top: 19, left: 295 }}>
26
+ <strong>in</strong>
27
+ </span>
28
+ <span style={{ position: 'absolute', top: 19, left: 322 }}>
29
+ <strong>cm</strong>
30
+ </span>
31
+ {[
32
+ props.icon !== undefined ? (
33
+ <S.ToggleConvertIcon style={{ ...activeStyle }} key={props.icon}>
34
+ {props.icon}
35
+ </S.ToggleConvertIcon>
36
+ ) : null
37
+ ]}
38
+ </S.Toggle>
39
+ );
40
+ }
41
+ }
42
+
43
+ ToggleConvertButton.propTypes = {
44
+ title: PropTypes.string,
45
+ hover: PropTypes.bool,
46
+ active: PropTypes.bool.isRequired,
47
+ onClick: PropTypes.func
48
+ };
@@ -0,0 +1,33 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as S from './styles';
4
+
5
+ export default class ToggleMeasureButton extends Component {
6
+ constructor(props, context) {
7
+ super(props, context);
8
+ }
9
+
10
+ render() {
11
+ let { props } = this;
12
+ let activeStyle = props.showMeasure === 0 ? { right: 0 } : { left: 0 };
13
+ return (
14
+ <S.Toggle onClick={props.onClick} style={{ ...props.style }}>
15
+ {props.backgroundImage}
16
+ {[
17
+ props.icon !== undefined ? (
18
+ <S.ToggleIcon style={{ ...activeStyle }} key={props.icon}>
19
+ {props.icon}
20
+ </S.ToggleIcon>
21
+ ) : null
22
+ ]}
23
+ </S.Toggle>
24
+ );
25
+ }
26
+ }
27
+
28
+ ToggleMeasureButton.propTypes = {
29
+ title: PropTypes.string,
30
+ hover: PropTypes.bool,
31
+ active: PropTypes.bool.isRequired,
32
+ onClick: PropTypes.func
33
+ };
@@ -0,0 +1,217 @@
1
+ import {
2
+ DEFAULT_FONT_FAMILY,
3
+ SECONDARY_PURPLE_COLOR,
4
+ TEXT_COLOR_NEUTRAL_5
5
+ } from '../../../constants';
6
+ import styled from 'styled-components';
7
+
8
+ export const Toggle_2D_3D = styled.div`
9
+ width: 50px;
10
+ margin-left: 10px;
11
+ border-radius: 5px;
12
+ height: 50px;
13
+ align-items: center;
14
+ justify-content: center;
15
+ display: flex;
16
+ user-select: none;
17
+ :hover {
18
+ background-color: ${TEXT_COLOR_NEUTRAL_5};
19
+ }
20
+ `;
21
+
22
+ export const FooterTitle = styled.span`
23
+ color: ${SECONDARY_PURPLE_COLOR};
24
+ font-family: ${DEFAULT_FONT_FAMILY};
25
+ font-size: 13px;
26
+ font-weight: 700;
27
+ line-height: 18px;
28
+ text-align: left;
29
+ user-select: none;
30
+ `;
31
+
32
+ export const Direction_Up_Down = styled.div`
33
+ width: 50px;
34
+ margin-left: 5px;
35
+ border-radius: 5px;
36
+ height: 25px;
37
+ align-items: center;
38
+ display: flex;
39
+ :hover {
40
+ background-color: ${TEXT_COLOR_NEUTRAL_5};
41
+ }
42
+ `;
43
+
44
+ export const Direction_Left_Right = styled.div`
45
+ width: 50px;
46
+ margin-left: 5px;
47
+ border-radius: 5px;
48
+ height: 50px;
49
+ align-items: center;
50
+ display: flex;
51
+ :hover {
52
+ background-color: ${TEXT_COLOR_NEUTRAL_5};
53
+ }
54
+ `;
55
+
56
+ export const ArrowIcon = styled.img`
57
+ height: 10px;
58
+ width: 12px;
59
+ margin: auto;
60
+ user-select: none;
61
+ `;
62
+
63
+ export const ZoomButton = styled.div`
64
+ width: 50px;
65
+ margin-left: 10px;
66
+ border-radius: 5px;
67
+ height: 50px;
68
+ align-items: center;
69
+ display: flex;
70
+ :hover {
71
+ background-color: ${TEXT_COLOR_NEUTRAL_5};
72
+ }
73
+ `;
74
+
75
+ export const ZoomIcon = styled.img`
76
+ height: 10px;
77
+ width: 12px;
78
+ margin: auto;
79
+ user-select: none;
80
+ `;
81
+
82
+ export const ZoomInput = styled.input`
83
+ color: #4c12a1;
84
+ width: 50px;
85
+ margin-left: 5px;
86
+ border-radius: 5px;
87
+ font-family: ${DEFAULT_FONT_FAMILY};
88
+ font-size: 13px;
89
+ font-weight: 600;
90
+ line-height: 18px;
91
+ text-align: center;
92
+ height: 50px;
93
+ align-items: center;
94
+ display: flex;
95
+ `;
96
+
97
+ export const Control = styled.div`
98
+ width: 28px;
99
+ height: 28px;
100
+ display: flex;
101
+ justify-content: center;
102
+ font-size: 15px;
103
+ cursor: pointer;
104
+ background-color: #fff;
105
+ color: white;
106
+ border-radius: 20px;
107
+ margin-right: 15px;
108
+ margin-top: 16px;
109
+ right: 260px;
110
+ bottom: 25px;
111
+ -webkit-user-select: none;
112
+ -moz-user-select: none;
113
+ -ms-user-select: none;
114
+ user-select: none;
115
+ `;
116
+ export const ControlTitle = styled.span`
117
+ margin: 10px;
118
+ font-size: 12px;
119
+ `;
120
+ export const ControlIcon = styled.div`
121
+ img {
122
+ font-size: 1.4rem;
123
+ box-sizing: border-box;
124
+ box-shadow: 0px 3px 5px -1px rgba(156, 154, 154, 0.2),
125
+ 0px 6px 10px 0px rgba(156, 154, 154, 0.39),
126
+ 0px 1px 18px 0px rgba(156, 154, 154, 0.12);
127
+
128
+ border-radius: 50%;
129
+ }
130
+
131
+ :hover {
132
+ img {
133
+ box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2),
134
+ 0px 6px 10px 0px rgba(0, 0, 0, 0.39),
135
+ 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
136
+ }
137
+ }
138
+ `;
139
+ export const Direction = styled.div`
140
+ display: flex;
141
+ align-items: center;
142
+ justify-content: center;
143
+ font-size: 15px;
144
+ cursor: pointer;
145
+ color: white;
146
+ border-radius: 32px;
147
+ margin-right: 15px;
148
+ right: 260px;
149
+ bottom: 25px;
150
+ `;
151
+ export const DirectionIcon = styled.div`
152
+ position: absolute;
153
+ color: #494949;
154
+ :hover {
155
+ color: #2c38de;
156
+ }
157
+ `;
158
+ export const DirectionSpinIcon = styled.div`
159
+ position: absolute;
160
+ color: #494949;
161
+ img {
162
+ font-size: 1.4rem;
163
+ box-sizing: border-box;
164
+ box-shadow: 0px 3px 5px -1px rgba(156, 154, 154, 0.2),
165
+ 0px 6px 10px 0px rgba(156, 154, 154, 0.39),
166
+ 0px 1px 18px 0px rgba(156, 154, 154, 0.12);
167
+ }
168
+ :hover {
169
+ height: 40px;
170
+ margin-bottom: 5px;
171
+ box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2),
172
+ 0px 6px 10px 0px rgba(0, 0, 0, 0.39), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
173
+ }
174
+ `;
175
+
176
+ export const Toggle = styled.div`
177
+ display: flex;
178
+ align-items: center;
179
+ position: relative;
180
+ height: 36px;
181
+ margin-left: 20px;
182
+ justify-content: center;
183
+ font-size: 14px;
184
+ cursor: pointer;
185
+ -webkit-user-select: none;
186
+ -moz-user-select: none;
187
+ -ms-user-select: none;
188
+ user-select: none;
189
+ :hover{
190
+ box-shadow: 0px 3px 5px -1px rgba(156, 154, 154, 0.2), 0px 6px 10px 0px rgba(156, 154, 154, 0.39), 0px 1px 18px 0px rgba(156, 154, 154, 0.12);\
191
+ border-radius: 18px;
192
+ }
193
+ `;
194
+ export const ToggleIcon = styled.div`
195
+ ${'' /* transition-duration: .3s; */}
196
+ position: absolute;
197
+ top: 0px;
198
+ img {
199
+ font-size: 1.4rem;
200
+ box-sizing: border-box;
201
+ border-radius: 50%;
202
+ }
203
+ `;
204
+ export const ToggleConvertIcon = styled.div`
205
+ margin: 5px;
206
+ transition-duration: 0.3s;
207
+ :hover {
208
+ img {
209
+ font-size: 1.4rem;
210
+ box-sizing: border-box;
211
+ box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2),
212
+ 0px 6px 10px 0px rgba(0, 0, 0, 0.39),
213
+ 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
214
+ border-radius: 50%;
215
+ }
216
+ }
217
+ `;
@@ -0,0 +1,9 @@
1
+ import FooterToggleButton from './footer-toggle-button';
2
+ import FooterContentButton from './footer-content-button';
3
+ import FooterBar from './footerbar';
4
+
5
+ export default {
6
+ FooterToggleButton,
7
+ FooterContentButton,
8
+ FooterBar
9
+ };
@@ -0,0 +1,198 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as SharedStyle from '../../shared-style';
4
+ import { FaTimes as IconClose } from 'react-icons/fa';
5
+
6
+ const labelContainerStyle = {
7
+ width: 'auto',
8
+ display: 'inline-block',
9
+ margin: 0,
10
+ padding: '0px 5px 0px 0px'
11
+ };
12
+
13
+ const toggleButtonStyle = {
14
+ color: '#CCC',
15
+ textAlign: 'center',
16
+ cursor: 'pointer',
17
+ userSelect: 'none'
18
+ };
19
+
20
+ const toggleButtonStyleOver = {
21
+ ...toggleButtonStyle,
22
+ color: SharedStyle.COLORS.white
23
+ };
24
+
25
+ const contentContainerStyleActive = {
26
+ position: 'fixed',
27
+ width: 'calc( 100% - 2px )',
28
+ height: '40%',
29
+ left: 0,
30
+ bottom: 20,
31
+ backgroundColor: SharedStyle.PRIMARY_COLOR.alt,
32
+ borderTop: SharedStyle.PRIMARY_COLOR.border,
33
+ zIndex: 0,
34
+ padding: 0,
35
+ margin: 0,
36
+ transition: 'all 300ms ease'
37
+ };
38
+
39
+ const contentContainerStyleInactive = {
40
+ ...contentContainerStyleActive,
41
+ visibility: 'hidden',
42
+ height: 0
43
+ };
44
+
45
+ const contentHeaderStyle = {
46
+ position: 'relative',
47
+ width: '100%',
48
+ height: '2em',
49
+ top: 0,
50
+ left: 0,
51
+ borderBottom: SharedStyle.PRIMARY_COLOR.border
52
+ };
53
+
54
+ const titleStyle = {
55
+ position: 'relative',
56
+ height: '2em',
57
+ lineHeight: '2em',
58
+ marginLeft: '1em'
59
+ };
60
+
61
+ const contentAreaStyle = {
62
+ position: 'relative',
63
+ width: '100%',
64
+ height: 'calc( 100% - 2em )',
65
+ padding: '1em',
66
+ overflowY: 'auto'
67
+ };
68
+
69
+ const iconCloseStyleOut = {
70
+ position: 'absolute',
71
+ width: '2em',
72
+ height: '2em',
73
+ right: 0,
74
+ top: 0,
75
+ padding: '0.5em',
76
+ borderLeft: SharedStyle.PRIMARY_COLOR.border,
77
+ cursor: 'pointer'
78
+ };
79
+
80
+ const iconCloseStyleOver = {
81
+ ...iconCloseStyleOut,
82
+ color: SharedStyle.COLORS.white,
83
+ backgroundColor: SharedStyle.SECONDARY_COLOR.alt
84
+ };
85
+
86
+ const iconStyle = {
87
+ width: '15px',
88
+ height: '15px',
89
+ marginTop: '-2px',
90
+ marginRight: '2px'
91
+ };
92
+
93
+ const textStyle = {
94
+ position: 'relative'
95
+ };
96
+
97
+ export default class FooterContentButton extends Component {
98
+ constructor(props) {
99
+ super(props);
100
+
101
+ this.state = {
102
+ over: false,
103
+ closeOver: false,
104
+ active: this.props.toggleState || false
105
+ };
106
+ }
107
+
108
+ toggleOver(e) {
109
+ this.setState({ over: true });
110
+ }
111
+ toggleOut(e) {
112
+ this.setState({ over: false });
113
+ }
114
+
115
+ toggle(e) {
116
+ let isActive = !this.state.active;
117
+ this.setState({ active: isActive });
118
+ }
119
+
120
+ shouldComponentUpdate(nextProps, nextState) {
121
+ if (this.state.over != nextState.over) return true;
122
+ if (this.state.closeOver != nextState.closeOver) return true;
123
+ if (this.state.active != nextState.active) return true;
124
+
125
+ if (this.props.content.length != nextProps.content.length) return true;
126
+ if (this.props.toggleState != nextProps.toggleState) return true;
127
+
128
+ return false;
129
+ }
130
+
131
+ componentWillReceiveProps(nextProps) {
132
+ if (nextProps.toggleState != this.props.toggleState)
133
+ this.state.active = nextProps.toggleState;
134
+ }
135
+
136
+ render() {
137
+ let s = this.state;
138
+ let p = this.props;
139
+
140
+ let LabelIcon = p.icon || null;
141
+ let labelIconStyle = p.iconStyle || {};
142
+ let labelTextStyle = p.textStyle || {};
143
+ let inputTitleStyle = p.titleStyle || {};
144
+
145
+ return (
146
+ <div style={labelContainerStyle}>
147
+ <div
148
+ style={s.over || s.active ? toggleButtonStyleOver : toggleButtonStyle}
149
+ onClick={e => this.toggle(e)}
150
+ title={p.title}
151
+ >
152
+ <LabelIcon style={{ ...labelIconStyle, ...iconStyle }} />
153
+ <span style={{ ...textStyle, ...labelTextStyle }}>{p.text}</span>
154
+ </div>
155
+ <div
156
+ style={
157
+ s.active
158
+ ? contentContainerStyleActive
159
+ : contentContainerStyleInactive
160
+ }
161
+ >
162
+ <div style={contentHeaderStyle}>
163
+ <b style={{ ...titleStyle, ...inputTitleStyle }}>{p.title}</b>
164
+ <IconClose
165
+ style={s.closeOver ? iconCloseStyleOver : iconCloseStyleOut}
166
+ onMouseOver={e => this.setState({ closeOver: true })}
167
+ onMouseOut={e => this.setState({ closeOver: false })}
168
+ onClick={e => this.toggle(e)}
169
+ />
170
+ </div>
171
+ <div style={contentAreaStyle}>{p.content}</div>
172
+ </div>
173
+ </div>
174
+ );
175
+ }
176
+ }
177
+
178
+ FooterContentButton.propTypes = {
179
+ state: PropTypes.object.isRequired,
180
+ text: PropTypes.string.isRequired,
181
+ textStyle: PropTypes.object,
182
+ icon: PropTypes.func,
183
+ iconStyle: PropTypes.object,
184
+ content: PropTypes.array.isRequired,
185
+ toggleState: PropTypes.bool,
186
+ title: PropTypes.string,
187
+ titleStyle: PropTypes.object
188
+ };
189
+
190
+ FooterContentButton.contextTypes = {
191
+ projectActions: PropTypes.object.isRequired,
192
+ viewer2DActions: PropTypes.object.isRequired,
193
+ viewer3DActions: PropTypes.object.isRequired,
194
+ linesActions: PropTypes.object.isRequired,
195
+ holesActions: PropTypes.object.isRequired,
196
+ itemsActions: PropTypes.object.isRequired,
197
+ translator: PropTypes.object.isRequired
198
+ };