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,77 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import {
4
+ ContentTitle,
5
+ ContentContainer,
6
+ FormLabel,
7
+ FormBlock,
8
+ FormNumberInput,
9
+ FormSubmitButton,
10
+ CancelButton
11
+ } from '../style/export';
12
+ import SnackBar from '../atoms/Snackbar/index';
13
+
14
+ export default class CustomConfigurator extends Component {
15
+ constructor(props, context) {
16
+ super(props, context);
17
+
18
+ let scene = props.state.scene;
19
+
20
+ this.state = {
21
+ dataWidth: scene.width,
22
+ dataHeight: scene.height,
23
+ isSnackBarOpen: false,
24
+ message: ''
25
+ };
26
+ }
27
+
28
+ onSubmit(event) {
29
+ event.preventDefault();
30
+
31
+ let { projectActions } = this.context;
32
+
33
+ let { dataWidth, dataHeight } = this.state;
34
+ dataWidth = parseInt(dataWidth);
35
+ dataHeight = parseInt(dataHeight);
36
+ if (dataWidth <= 100 || dataHeight <= 100) {
37
+ this.setState({
38
+ isSnackBarOpen: true,
39
+ snackBarMessage: 'Scene size too small'
40
+ });
41
+ } else {
42
+ projectActions.setProjectProperties({
43
+ width: dataWidth,
44
+ height: dataHeight
45
+ });
46
+ }
47
+ }
48
+
49
+ render() {
50
+ let { width, height } = this.props;
51
+ let { dataWidth, dataHeight } = this.state;
52
+ let { projectActions, translator } = this.context;
53
+
54
+ return (
55
+ <ContentContainer width={width} height={height}>
56
+ <SnackBar
57
+ isOpen={this.state.isSnackBarOpen}
58
+ message={this.state.snackBarMessage}
59
+ handleClose={() =>
60
+ this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
61
+ }
62
+ />
63
+ </ContentContainer>
64
+ );
65
+ }
66
+ }
67
+
68
+ CustomConfigurator.propTypes = {
69
+ width: PropTypes.number.isRequired,
70
+ height: PropTypes.number.isRequired,
71
+ state: PropTypes.object.isRequired
72
+ };
73
+
74
+ CustomConfigurator.contextTypes = {
75
+ projectActions: PropTypes.object.isRequired,
76
+ translator: PropTypes.object.isRequired
77
+ };
@@ -0,0 +1,120 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import {
4
+ ContentTitle,
5
+ ContentContainer,
6
+ FormLabel,
7
+ FormBlock,
8
+ FormNumberInput,
9
+ FormSubmitButton,
10
+ CancelButton
11
+ } from '../style/export';
12
+ import SnackBar from '../atoms/Snackbar/index';
13
+
14
+ export default class ProjectConfigurator extends Component {
15
+ constructor(props, context) {
16
+ super(props, context);
17
+
18
+ let scene = props.state.scene;
19
+
20
+ this.state = {
21
+ dataWidth: scene.width,
22
+ dataHeight: scene.height,
23
+ isSnackBarOpen: false,
24
+ snackBarMessage: ''
25
+ };
26
+ }
27
+
28
+ onSubmit(event) {
29
+ event.preventDefault();
30
+
31
+ let { projectActions } = this.context;
32
+
33
+ let { dataWidth, dataHeight } = this.state;
34
+ dataWidth = parseInt(dataWidth);
35
+ dataHeight = parseInt(dataHeight);
36
+ if (dataWidth <= 100 || dataHeight <= 100) {
37
+ this.setState({
38
+ snackBarMessage: 'Scene size too small',
39
+ isSnackBarOpen: true
40
+ });
41
+ } else {
42
+ projectActions.setProjectProperties({
43
+ width: dataWidth,
44
+ height: dataHeight
45
+ });
46
+ }
47
+ }
48
+
49
+ render() {
50
+ let { width, height } = this.props;
51
+ let { dataWidth, dataHeight } = this.state;
52
+ let { projectActions, translator } = this.context;
53
+
54
+ return (
55
+ <ContentContainer width={width} height={height}>
56
+ <SnackBar
57
+ isOpen={this.state.isSnackBarOpen}
58
+ message={this.state.snackBarMessage}
59
+ handleClose={() =>
60
+ this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
61
+ }
62
+ />
63
+ <ContentTitle>{translator.t('Project config')}</ContentTitle>
64
+
65
+ <form onSubmit={e => this.onSubmit(e)}>
66
+ <FormBlock>
67
+ <FormLabel htmlFor="width">{translator.t('width')}</FormLabel>
68
+ <FormNumberInput
69
+ id="width"
70
+ placeholder="width"
71
+ value={dataWidth}
72
+ onChange={e => this.setState({ dataWidth: e.target.value })}
73
+ />
74
+ </FormBlock>
75
+
76
+ <FormBlock>
77
+ <FormLabel htmlFor="height">{translator.t('height')}</FormLabel>
78
+ <FormNumberInput
79
+ id="height"
80
+ placeholder="height"
81
+ value={dataHeight}
82
+ onChange={e => this.setState({ dataHeight: e.target.value })}
83
+ />
84
+ </FormBlock>
85
+
86
+ <table style={{ float: 'right' }}>
87
+ <tbody>
88
+ <tr>
89
+ <td>
90
+ <CancelButton
91
+ size="large"
92
+ onClick={e => projectActions.rollback()}
93
+ >
94
+ {translator.t('Cancel')}
95
+ </CancelButton>
96
+ </td>
97
+ <td>
98
+ <FormSubmitButton size="large">
99
+ {translator.t('Save')}
100
+ </FormSubmitButton>
101
+ </td>
102
+ </tr>
103
+ </tbody>
104
+ </table>
105
+ </form>
106
+ </ContentContainer>
107
+ );
108
+ }
109
+ }
110
+
111
+ ProjectConfigurator.propTypes = {
112
+ width: PropTypes.number.isRequired,
113
+ height: PropTypes.number.isRequired,
114
+ state: PropTypes.object.isRequired
115
+ };
116
+
117
+ ProjectConfigurator.contextTypes = {
118
+ projectActions: PropTypes.object.isRequired,
119
+ translator: PropTypes.object.isRequired
120
+ };
@@ -0,0 +1,36 @@
1
+ import ToolbarComponents from './toolbar/export';
2
+ import Content from './content';
3
+ import SidebarComponents from './sidebar/export';
4
+ import FooterBarComponents from './footerbar/export';
5
+ import Viewer2DComponents from './viewer2d/export';
6
+ import StyleComponents from './style/export';
7
+ import HeaderComponents from './header/export';
8
+ import WizardStepComponents from './wizardstep/export';
9
+ import SignComponents from './sign/export';
10
+ import MyProjectsComonents from './myprojects/export';
11
+
12
+ export {
13
+ ToolbarComponents,
14
+ Content,
15
+ SidebarComponents,
16
+ FooterBarComponents,
17
+ Viewer2DComponents,
18
+ StyleComponents,
19
+ HeaderComponents,
20
+ WizardStepComponents,
21
+ SignComponents,
22
+ MyProjectsComonents
23
+ };
24
+
25
+ export default {
26
+ ToolbarComponents,
27
+ Content,
28
+ SidebarComponents,
29
+ FooterBarComponents,
30
+ WizardStepComponents,
31
+ Viewer2DComponents,
32
+ StyleComponents,
33
+ HeaderComponents,
34
+ SignComponents,
35
+ MyProjectsComonents
36
+ };
@@ -0,0 +1,223 @@
1
+ import styled from 'styled-components';
2
+
3
+ export const FirstSettingWrapper = styled.div`
4
+ position: absolute;
5
+ left: 30px;
6
+ top: 90px;
7
+ z-index: 10;
8
+ flex-flow: column;
9
+ background-color: rgb(255, 255, 255);
10
+ box-shadow: 0px 3px 5px -1px rgba(156, 154, 154, 0.2),
11
+ 0px 6px 10px 0px rgba(156, 154, 154, 0.39),
12
+ 0px 1px 18px 0px rgba(156, 154, 154, 0.12);
13
+ width: 60vw;
14
+ border-radius: 10px;
15
+ padding: 30px;
16
+ user-select: none;
17
+ max-height: calc(100vh - 110px);
18
+ `;
19
+
20
+ export const TitleBarWrapper = styled.div`
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: space-between;
24
+ position: relative;
25
+ `;
26
+
27
+ export const TitleBar = styled.div`
28
+ font-size: 28px;
29
+ font-weight: bold;
30
+ `;
31
+
32
+ export const TitleBarButtonWrapper = styled.div`
33
+ display: flex;
34
+ align-items: center;
35
+ `;
36
+
37
+ export const TitleBarButton = styled.div`
38
+ display: flex;
39
+ cursor: pointor;
40
+ align-items: center;
41
+ color: #4c12a1;
42
+ font-size: 16px;
43
+ font-weight: bold;
44
+ width: 110px;
45
+ margin-left: 10px;
46
+ height: 40px;
47
+ border: 3px solid;
48
+ justify-content: center;
49
+ cursor: pointer;
50
+ border-radius: 5px;
51
+ `;
52
+
53
+ export const StepBarWrapper = styled.div`
54
+ align-items: flex-start;
55
+ flex-direction: row;
56
+ display: flex;
57
+ padding: 24px;
58
+ box-shadow: none;
59
+ color: rgba(0, 0, 0, 0.87);
60
+ transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
61
+ background-color: #fff;
62
+ `;
63
+
64
+ export const StepBullet = styled.div`
65
+ flex-direction: column;
66
+ flex: 1;
67
+ position: relative;
68
+ display: flex;
69
+ align-items: center;
70
+ `;
71
+
72
+ export const StepBulletLabel = styled.span`
73
+ margin-bottom: 5px;
74
+ text-align: center;
75
+ color: rgb(114, 72, 189);
76
+ display: block;
77
+ font-size: 16px;
78
+ font-family: 'Roboto', 'Helvetica', 'Arial', Open Sans;
79
+ font-weight: bold;
80
+ line-height: 1.43;
81
+ letter-spacing: 0.01071em;
82
+ `;
83
+
84
+ export const StepBulletIcon = styled.img`
85
+ justify-content: center;
86
+ display: flex;
87
+ flex-shrink: 0;
88
+ width: 25px;
89
+ `;
90
+
91
+ export const StepBarIcon = styled.img`
92
+ top: 38px;
93
+ left: -42%;
94
+ width: 85%;
95
+ position: absolute;
96
+ flex: 1 1 auto;
97
+ display: block;
98
+ `;
99
+
100
+ export const ContentWrapper = styled.div`
101
+ display: flex;
102
+ flex-direction: column;
103
+ margin-top: 30px;
104
+ `;
105
+
106
+ export const ContentWrapper1 = styled.div`
107
+ display: flex;
108
+ margin-top: 20px;
109
+ `;
110
+
111
+ export const ContentItem = styled.div`
112
+ display: flex;
113
+ position: relative;
114
+ flex-direction: column;
115
+ align-items: center;
116
+ margin-right: 50px;
117
+ cursor: pointer;
118
+ img#check {
119
+ display: none;
120
+ }
121
+ :hover {
122
+ img#check {
123
+ display: block;
124
+ background-color: rgb(217, 232, 255);
125
+ z-index: 1;
126
+ }
127
+ }
128
+ `;
129
+
130
+ export const RoomContentImage = styled.img`
131
+ height: 150px;
132
+ z-index: 2;
133
+ `;
134
+
135
+ export const ContentCheckImage = styled.img`
136
+ position: absolute;
137
+ height: 150px;
138
+ width: 150px;
139
+ padding: 60px;
140
+ z-index: 2;
141
+ `;
142
+
143
+ export const ColorContentItem = styled.div`
144
+ display: flex;
145
+ position: relative;
146
+ flex-direction: column;
147
+ align-items: center;
148
+ margin-right: 10px;
149
+ `;
150
+
151
+ export const ColorContentImage = styled.div`
152
+ height: 80px;
153
+ background-repeat: no-repeat;
154
+ border-radius: 50%;
155
+ border: 1px solid black;
156
+ width: 80px;
157
+ background-position: center;
158
+ cursor: pointer;
159
+ :hover {
160
+ box-shadow: 0px 3px 5px -1px rgba(156, 154, 154, 0.2),
161
+ 0px 6px 10px 0px rgba(156, 154, 154, 0.39),
162
+ 0px 1px 18px 0px rgba(156, 154, 154, 0.12);
163
+ }
164
+ `;
165
+
166
+ export const DoorStyleContentItem = styled.div`
167
+ display: flex;
168
+ position: relative;
169
+ flex-direction: column;
170
+ align-items: center;
171
+ margin-right: 10px;
172
+ cursor: pointer;
173
+ width: 150px;
174
+ img#check {
175
+ display: none;
176
+ }
177
+ :hover {
178
+ img#check {
179
+ display: block;
180
+ background-color: rgb(217, 232, 255);
181
+ z-index: 1;
182
+ }
183
+ }
184
+ `;
185
+
186
+ export const DoorStyleContentImage = styled.img`
187
+ height: 150px;
188
+ padding: 30px;
189
+ border-radius: 10px;
190
+ z-index: 2;
191
+ `;
192
+
193
+ export const DoorCategoryContentImageWrapper = styled.div`
194
+ width: 150px;
195
+ display: flex;
196
+ justify-content: center;
197
+ border-radius: 10px;
198
+ :hover {
199
+ background-color: rgb(217, 232, 255);
200
+ }
201
+ `;
202
+
203
+ export const DoorCategoryContentImage = styled.img`
204
+ height: 130px;
205
+ padding: 20px;
206
+ width: 150px;
207
+ margin: 10px 0px;
208
+ z-index: 2;
209
+ `;
210
+
211
+ export const ContentWrapper2 = styled.div`
212
+ display: flex;
213
+ flex-direction: column;
214
+ margin-right: 80px;
215
+ `;
216
+
217
+ export const DoorStyleWrapper = styled.div`
218
+ display: flex;
219
+ margin-top: 20px;
220
+ flex-wrap: wrap;
221
+ overflow-y: scroll;
222
+ max-height: calc(100vh - 435px);
223
+ `;
@@ -0,0 +1,9 @@
1
+ import FirstSettingToggleButton from './firstsetting-toggle-button';
2
+ import FirstSettingContentButton from './firstsetting-content-button';
3
+ import FirstSetting from './firstsetting';
4
+
5
+ export default {
6
+ FirstSettingToggleButton,
7
+ FirstSettingContentButton,
8
+ FirstSetting
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
+ };