kitchen-simulator 5.0.0-test.17 → 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 (206) hide show
  1. package/package.json +8 -18
  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 -91
  7. package/src/components/atoms/Snackbar/index.jsx +43 -0
  8. package/src/components/atoms/radio-button/index.jsx +20 -0
  9. package/src/components/atoms/radio-button/styles.js +56 -0
  10. package/src/components/button/MainButton.jsx +157 -0
  11. package/src/components/button/ToggleMeasureButton.jsx +65 -0
  12. package/src/components/catalog-view/catalog-breadcrumb.jsx +53 -0
  13. package/src/components/catalog-view/catalog-item.jsx +229 -0
  14. package/src/components/catalog-view/catalog-list.jsx +173 -0
  15. package/src/components/catalog-view/catalog-page-item.jsx +110 -0
  16. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +80 -0
  17. package/src/components/configurator/custom-configurator.jsx +77 -0
  18. package/src/components/configurator/project-configurator.jsx +120 -0
  19. package/src/components/content.jsx +136 -0
  20. package/src/components/export.js +36 -0
  21. package/src/components/firstsetting/button/styles.js +223 -0
  22. package/src/components/firstsetting/export.js +9 -0
  23. package/src/components/firstsetting/firstsetting-content-button.jsx +198 -0
  24. package/src/components/firstsetting/firstsetting-toggle-button.jsx +101 -0
  25. package/src/components/firstsetting/firstsetting.jsx +814 -0
  26. package/src/components/footerbar/button/ControlButton.jsx +43 -0
  27. package/src/components/footerbar/button/DirectionButton.jsx +54 -0
  28. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +36 -0
  29. package/src/components/footerbar/button/ToggleButton.jsx +58 -0
  30. package/src/components/footerbar/button/ToggleConvertButton.jsx +48 -0
  31. package/src/components/footerbar/button/ToggleMeasureButton.jsx +33 -0
  32. package/src/components/footerbar/button/styles.js +217 -0
  33. package/src/components/footerbar/export.js +9 -0
  34. package/src/components/footerbar/footer-content-button.jsx +198 -0
  35. package/src/components/footerbar/footer-toggle-button.jsx +101 -0
  36. package/src/components/footerbar/footerbar.jsx +1103 -0
  37. package/src/components/footerbar/styles.js +263 -0
  38. package/src/components/header/button/MenuButton.jsx +46 -0
  39. package/src/components/header/button/SaveButton.jsx +54 -0
  40. package/src/components/header/button/styles.js +181 -0
  41. package/src/components/header/export.js +5 -0
  42. package/src/components/header/header.jsx +631 -0
  43. package/src/components/header/header.style.css +47 -0
  44. package/src/components/header/styles.js +320 -0
  45. package/src/components/login/Login.js +77 -0
  46. package/src/components/login/LoginForm/index.js +108 -0
  47. package/src/components/login/Register.js +82 -0
  48. package/src/components/login/RegisterForm/index.js +171 -0
  49. package/src/components/login/jwtService.js +201 -0
  50. package/src/components/login/style.css +158 -0
  51. package/src/components/login/style.scss +260 -0
  52. package/src/components/molecules/slider/index.jsx +15 -0
  53. package/src/components/molecules/slider/styles.js +0 -0
  54. package/src/components/molecules/slider/styles.scss +3 -0
  55. package/src/components/myprojects/export.js +5 -0
  56. package/src/components/myprojects/index.jsx +445 -0
  57. package/src/components/myprojects/styles.js +241 -0
  58. package/src/components/sidebar/custom-accordion.jsx +48 -0
  59. package/src/components/sidebar/export.js +15 -0
  60. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +73 -0
  61. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +101 -0
  62. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +149 -0
  63. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +316 -0
  64. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +108 -0
  65. package/src/components/sidebar/panel-element-editor/element-editor.jsx +1070 -0
  66. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  67. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +104 -0
  68. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +155 -0
  69. package/src/components/sidebar/panel-group-editor.jsx +272 -0
  70. package/src/components/sidebar/panel-groups.jsx +310 -0
  71. package/src/components/sidebar/panel-guides.jsx +192 -0
  72. package/src/components/sidebar/panel-layer-elements.jsx +298 -0
  73. package/src/components/sidebar/panel-layers.jsx +381 -0
  74. package/src/components/sidebar/panel.jsx +71 -0
  75. package/src/components/sidebar/sidebar.jsx +106 -0
  76. package/src/components/sidebar/toolbar-panel.jsx +139 -0
  77. package/src/components/sign/export.js +7 -0
  78. package/src/components/sign/main/index.jsx +523 -0
  79. package/src/components/sign/main/styles.js +163 -0
  80. package/src/components/style/button.jsx +95 -0
  81. package/src/components/style/cancel-button.jsx +20 -0
  82. package/src/components/style/content-container.jsx +29 -0
  83. package/src/components/style/content-title.jsx +20 -0
  84. package/src/components/style/delete-button.jsx +23 -0
  85. package/src/components/style/export.jsx +48 -0
  86. package/src/components/style/form-block.jsx +13 -0
  87. package/src/components/style/form-color-input.jsx +27 -0
  88. package/src/components/style/form-label.jsx +15 -0
  89. package/src/components/style/form-number-input.jsx +196 -0
  90. package/src/components/style/form-number-input_2.jsx +191 -0
  91. package/src/components/style/form-select.jsx +38 -0
  92. package/src/components/style/form-slider.jsx +36 -0
  93. package/src/components/style/form-submit-button.jsx +23 -0
  94. package/src/components/style/form-text-input.jsx +65 -0
  95. package/src/components/toolbar/button/ControlButton.jsx +41 -0
  96. package/src/components/toolbar/button/DirectionButton.jsx +34 -0
  97. package/src/components/toolbar/button/RightButton.jsx +103 -0
  98. package/src/components/toolbar/button/ToggleButton.jsx +41 -0
  99. package/src/components/toolbar/button/index.jsx +55 -0
  100. package/src/components/toolbar/button/styles.js +127 -0
  101. package/src/components/toolbar/components/DoorStyleMenu.jsx +103 -0
  102. package/src/components/toolbar/components/Pricing.jsx +126 -0
  103. package/src/components/toolbar/components/ReviewForQuote.jsx +635 -0
  104. package/src/components/toolbar/export.js +21 -0
  105. package/src/components/toolbar/main/Alert.js +122 -0
  106. package/src/components/toolbar/main/TakePictureModal.jsx +104 -0
  107. package/src/components/toolbar/main/confirm-popup.jsx +99 -0
  108. package/src/components/toolbar/main/index.jsx +5627 -0
  109. package/src/components/toolbar/main/lShaped.json +311 -0
  110. package/src/components/toolbar/main/longNarrow.json +238 -0
  111. package/src/components/toolbar/main/myComponents.js +123 -0
  112. package/src/components/toolbar/main/oRectangle.json +220 -0
  113. package/src/components/toolbar/main/rectangle.json +238 -0
  114. package/src/components/toolbar/main/style.css +107 -0
  115. package/src/components/toolbar/main/styles.js +696 -0
  116. package/src/components/toolbar/plugin-item.jsx +123 -0
  117. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +73 -0
  118. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +102 -0
  119. package/src/components/toolbar/popup/appliance/index.jsx +83 -0
  120. package/src/components/toolbar/popup/autosaveprompt/index.jsx +150 -0
  121. package/src/components/toolbar/popup/autosaveprompt/styles.css +64 -0
  122. package/src/components/toolbar/popup/autosaveprompt/styles.js +40 -0
  123. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +73 -0
  124. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +119 -0
  125. package/src/components/toolbar/popup/cabinet/index.jsx +85 -0
  126. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +63 -0
  127. package/src/components/toolbar/popup/doorStyle/index.jsx +71 -0
  128. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +139 -0
  129. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +2 -0
  130. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +157 -0
  131. package/src/components/toolbar/popup/downloadsummary/index.jsx +643 -0
  132. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +51 -0
  133. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +175 -0
  134. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +283 -0
  135. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +2257 -0
  136. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +93 -0
  137. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +132 -0
  138. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +2198 -0
  139. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +152 -0
  140. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +149 -0
  141. package/src/components/toolbar/popup/downloadsummary/styles.css +177 -0
  142. package/src/components/toolbar/popup/downloadsummary/styles.js +453 -0
  143. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +34 -0
  144. package/src/components/toolbar/popup/finishingtouch/index.jsx +58 -0
  145. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +112 -0
  146. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +116 -0
  147. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +101 -0
  148. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +254 -0
  149. package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +311 -0
  150. package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +238 -0
  151. package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +220 -0
  152. package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +238 -0
  153. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +86 -0
  154. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +109 -0
  155. package/src/components/toolbar/popup/floorplan/index.jsx +60 -0
  156. package/src/components/toolbar/popup/index.jsx +241 -0
  157. package/src/components/toolbar/popup/newproject/index.jsx +59 -0
  158. package/src/components/toolbar/popup/newproject/styles.css +64 -0
  159. package/src/components/toolbar/popup/newproject/styles.js +41 -0
  160. package/src/components/toolbar/popup/product/appliance.jsx +54 -0
  161. package/src/components/toolbar/popup/product/cabinetproduct.jsx +15 -0
  162. package/src/components/toolbar/popup/product/doorstyle.jsx +58 -0
  163. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +47 -0
  164. package/src/components/toolbar/popup/product/floor.jsx +36 -0
  165. package/src/components/toolbar/popup/product/floorproduct.jsx +42 -0
  166. package/src/components/toolbar/popup/product/index.jsx +36 -0
  167. package/src/components/toolbar/popup/product/primary.jsx +77 -0
  168. package/src/components/toolbar/popup/product/productline.jsx +93 -0
  169. package/src/components/toolbar/popup/product/reviewItem.jsx +427 -0
  170. package/src/components/toolbar/popup/product/reviewMolding.jsx +310 -0
  171. package/src/components/toolbar/popup/product/style.css +54 -0
  172. package/src/components/toolbar/popup/product/styles.js +260 -0
  173. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +146 -0
  174. package/src/components/toolbar/popup/savedesign/index.jsx +495 -0
  175. package/src/components/toolbar/popup/savedesign/savedesign.style.css +16 -0
  176. package/src/components/toolbar/popup/savedesign/styles.js +151 -0
  177. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +87 -0
  178. package/src/components/toolbar/popup/styles.js +909 -0
  179. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +192 -0
  180. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +96 -0
  181. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +54 -0
  182. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +25 -0
  183. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +116 -0
  184. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +38 -0
  185. package/src/components/toolbar/popup/submitforquote/index.jsx +698 -0
  186. package/src/components/toolbar/popup/submitforquote/styles.css +105 -0
  187. package/src/components/toolbar/popup/submitforquote/styles.js +294 -0
  188. package/src/components/toolbar/popup/submitprompt/index.jsx +89 -0
  189. package/src/components/toolbar/popup/submitprompt/styles.css +64 -0
  190. package/src/components/toolbar/popup/submitprompt/styles.js +42 -0
  191. package/src/components/toolbar/toolbar-button.jsx +90 -0
  192. package/src/components/toolbar/toolbar-load-button.jsx +36 -0
  193. package/src/components/toolbar/toolbar-save-button.jsx +32 -0
  194. package/src/components/tutorial-view/Modal.jsx +584 -0
  195. package/src/components/tutorial-view/style.css +111 -0
  196. package/src/components/tutorial-view/styles.js +65 -0
  197. package/src/components/wizardstep/button/styles.js +677 -0
  198. package/src/components/wizardstep/export.js +5 -0
  199. package/src/components/wizardstep/index.jsx +1372 -0
  200. package/src/components/wizardstep/styles.js +688 -0
  201. package/src/components/wizardstep/wizardstep-content-button.jsx +198 -0
  202. package/src/components/wizardstep/wizardstep-toggle-button.jsx +101 -0
  203. package/src/{_index.js → index.js} +4 -4
  204. package/src/renderer.jsx +466 -0
  205. package/src/actions/_export.js +0 -35
  206. package/src/components/_export.js +0 -11
@@ -0,0 +1,123 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as SharedStyle from '../../shared-style';
4
+ import { FaFolderOpen } from 'react-icons/fa';
5
+ import { MdSettings, MdUndo, MdDirectionsRun } from 'react-icons/md';
6
+
7
+ //http://www.cssportal.com/css-tooltip-generator/
8
+
9
+ const STYLE = {
10
+ width: '30px',
11
+ height: '30px',
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ justifyContent: 'center',
15
+ marginBottom: '5px',
16
+ fontSize: '25px',
17
+ position: 'relative',
18
+ cursor: 'pointer'
19
+ };
20
+
21
+ const STYLE_TOOLTIP = {
22
+ position: 'absolute',
23
+ width: '140px',
24
+ color: SharedStyle.COLORS.white,
25
+ background: SharedStyle.COLORS.black,
26
+ height: '30px',
27
+ lineHeight: '30px',
28
+ textAlign: 'center',
29
+ visibility: 'visible',
30
+ borderRadius: '6px',
31
+ opacity: '0.8',
32
+ left: '100%',
33
+ top: '50%',
34
+ marginTop: '-15px',
35
+ marginLeft: '15px',
36
+ zIndex: '999',
37
+ fontSize: '12px'
38
+ };
39
+
40
+ const STYLE_TOOLTIP_PIN = {
41
+ position: 'absolute',
42
+ top: '50%',
43
+ right: '100%',
44
+ marginTop: '-8px',
45
+ width: '0',
46
+ height: '0',
47
+ borderRight: '8px solid #000000',
48
+ borderTop: '8px solid transparent',
49
+ borderBottom: '8px solid transparent'
50
+ };
51
+
52
+ const itemBtnStyle = {
53
+ borderWidth: '1px',
54
+ borderStyle: 'solid',
55
+ float: 'left',
56
+ cursor: 'pointer',
57
+ margin: '5px',
58
+ padding: '4px',
59
+ borderColor: 'black'
60
+ };
61
+
62
+ const iconHoverStyle = {
63
+ borderWidth: '1px',
64
+ borderStyle: 'solid',
65
+ float: 'left',
66
+ cursor: 'pointer',
67
+ margin: '5px',
68
+ padding: '4px',
69
+ borderColor: SharedStyle.MATERIAL_COLORS['500'].cyan
70
+ };
71
+
72
+ export default class PluginItem extends Component {
73
+ constructor(props, context) {
74
+ super(props, context);
75
+ this.state = { active: false };
76
+ }
77
+
78
+ render() {
79
+ let { state, props } = this;
80
+ let placeholder;
81
+ let url = this.props.url;
82
+ let pname;
83
+ if (props.name.length > 8) {
84
+ pname = props.name.slice(0, 5);
85
+ pname += '...';
86
+ } else {
87
+ pname = props.name;
88
+ }
89
+ if (url == 'before')
90
+ placeholder = (
91
+ <MdUndo
92
+ style={{ fontSize: '50px', color: SharedStyle.PRIMARY_COLOR.icon }}
93
+ />
94
+ );
95
+ if (url == 'dir')
96
+ placeholder = (
97
+ <FaFolderOpen
98
+ style={{ fontSize: '50px', color: SharedStyle.PRIMARY_COLOR.icon }}
99
+ />
100
+ );
101
+ if (url !== 'before' && url !== 'dir')
102
+ placeholder = (
103
+ <img
104
+ src={this.props.url}
105
+ style={{ width: '50px', height: '50px' }}
106
+ ></img>
107
+ );
108
+ return (
109
+ <div
110
+ title={props.name}
111
+ onClick={props.onClick.bind(this, props.url, props.name, props.gltfUrl)}
112
+ onMouseOut={event => this.setState({ active: false })}
113
+ onMouseOver={event => this.setState({ active: true })}
114
+ style={this.state.active ? iconHoverStyle : itemBtnStyle}
115
+ >
116
+ {placeholder}
117
+ <p style={{ margin: 0, textAlign: 'center', fontSize: '70%' }}>
118
+ {pname}
119
+ </p>
120
+ </div>
121
+ );
122
+ }
123
+ }
@@ -0,0 +1,73 @@
1
+ import React, { useState } from 'react';
2
+ import ToolbarPanel from '../../../../sidebar/toolbar-panel';
3
+ import * as S from '../../styles';
4
+
5
+ export const ApplianceCategory = ({
6
+ setStep,
7
+ action,
8
+ pData,
9
+ bFlag,
10
+ props,
11
+ doorExpand,
12
+ search,
13
+ onSearch,
14
+ mode
15
+ }) => {
16
+ let result = [];
17
+ const [lastActiveName, setLastActiveName] = useState('');
18
+
19
+ for (let i = 0; i < pData.length; i++) {
20
+ let temp = [];
21
+ for (let j = 0; j < pData[i].items.length; j++) {
22
+ if (pData[i].items[j].type !== 'cabinet') {
23
+ var title = pData[i].items[j].name;
24
+ title = title.charAt(0).toUpperCase() + title.substr(1);
25
+
26
+ temp.push(
27
+ <S.ProductsRow
28
+ key={i.toString() + '-' + j.toString()}
29
+ style={{ width: '100%', padding: '8px 10px 8px' }}
30
+ >
31
+ <a
32
+ onClick={() => {
33
+ action(pData[i].items[j].name);
34
+ }}
35
+ >
36
+ <span>{title} </span>
37
+ </a>
38
+ </S.ProductsRow>
39
+ );
40
+ }
41
+ }
42
+ result.push(
43
+ <S.ItemWrapper key={i.toString()}>
44
+ <ToolbarPanel
45
+ lastActiveName={lastActiveName}
46
+ setLastActiveName={setLastActiveName}
47
+ onClose={() => {
48
+ action(-1);
49
+ }}
50
+ onOpen={() => {
51
+ action(pData[i].name);
52
+ }}
53
+ isUrl={true}
54
+ key={i.toString()}
55
+ name={pData[i].name}
56
+ url={pData[i].thumbnail}
57
+ >
58
+ {temp}
59
+ </ToolbarPanel>
60
+ </S.ItemWrapper>
61
+ );
62
+ }
63
+ let miHeight = 0;
64
+ let nonHeight = 495 - miHeight + 'px';
65
+ let height = window.innerHeight * 0.6 - miHeight + 'px';
66
+ return (
67
+ <S.CategoryContentWrapper
68
+ style={{ height: doorExpand ? height : nonHeight }}
69
+ >
70
+ {result}
71
+ </S.CategoryContentWrapper>
72
+ );
73
+ };
@@ -0,0 +1,102 @@
1
+ import React, { useState } from 'react';
2
+
3
+ import { FaSearch, FaPlus, FaAngleLeft } from 'react-icons/fa';
4
+ import * as S from '../../styles';
5
+
6
+ import Appliance from '../../product/appliance';
7
+ import {
8
+ API_SERVER,
9
+ MODE_IDLE,
10
+ MODE_3D_VIEW,
11
+ MODE_3D_FIRST_PERSON,
12
+ MODE_VIEWING_CATALOG,
13
+ MODE_CONFIGURING_PROJECT,
14
+ MODE_IDLE_3D,
15
+ MODE_ROTATING_ITEM_3D,
16
+ MODE_DRAGGING_ITEM_3D,
17
+ MODE_2D_PAN,
18
+ MODE_DRAWING_ITEM_3D
19
+ } from '../../../../../constants';
20
+
21
+ export const ApplianceChooseProduct = ({
22
+ setStep,
23
+ action,
24
+ pData,
25
+ bFlag,
26
+ props,
27
+ doorExpand,
28
+ search,
29
+ dData,
30
+ onSearch,
31
+ mode,
32
+ isExpand,
33
+ closeAction
34
+ }) => {
35
+ let applianceselect = name => {
36
+ select(props.catalog.elements[name]);
37
+ };
38
+
39
+ let select = element => {
40
+ props.projectActions.unselectAll();
41
+ switch (element.prototype) {
42
+ case 'lines':
43
+ props.linesActions.selectToolDrawingLine(element.name);
44
+ break;
45
+ case 'items':
46
+ [
47
+ MODE_IDLE_3D,
48
+ MODE_DRAWING_ITEM_3D,
49
+ MODE_DRAGGING_ITEM_3D,
50
+ MODE_ROTATING_ITEM_3D
51
+ ].includes(mode)
52
+ ? props.itemsActions.selectToolDrawingItem3D(element.name)
53
+ : props.itemsActions.selectToolDrawingItem(element.name);
54
+ break;
55
+ case 'holes':
56
+ props.holesActions.selectToolDrawingHole(element.name);
57
+ break;
58
+ }
59
+ props.itemsActions.updatePopupOpen(3);
60
+ props.projectActions.pushLastSelectedCatalogElementToHistory(element);
61
+ closeAction && closeAction();
62
+ };
63
+
64
+ let products = [];
65
+
66
+ if (pData.length > 0) {
67
+ for (let i = 0; i < pData.length; i++) {
68
+ products.push(
69
+ <S.ItemWrapper key={i.toString()} style={{ justifyContent: 'center' }}>
70
+ <Appliance
71
+ name={'appliance'}
72
+ onClick={() => {
73
+ applianceselect(pData[i].name);
74
+ }}
75
+ url={pData[i].thumbnail}
76
+ title={pData[i].name}
77
+ selected={pData[i].selected ? pData[i].selected : null}
78
+ />
79
+ </S.ItemWrapper>
80
+ );
81
+ }
82
+ }
83
+ let miHeight = bFlag ? 28 : 0;
84
+ let nonHeight = 495 - miHeight + 'px';
85
+ let height = window.innerHeight * 0.6 - miHeight + 'px';
86
+ return (
87
+ <S.ProductsContentWrapper
88
+ style={{
89
+ width: isExpand === 1 ? 400 : 220,
90
+ height: doorExpand ? height : nonHeight
91
+ }}
92
+ >
93
+ {isExpand === 1 ? (
94
+ <S.ItemWrapper style={{ flexWrap: 'wrap', border: 'none' }}>
95
+ {products}
96
+ </S.ItemWrapper>
97
+ ) : (
98
+ products
99
+ )}
100
+ </S.ProductsContentWrapper>
101
+ );
102
+ };
@@ -0,0 +1,83 @@
1
+ import React, { useState } from 'react';
2
+
3
+ import { DoubleToolbarButtonWithPopup } from '../';
4
+
5
+ import { ApplianceChooseProduct } from './choose-appliance/';
6
+ import { ApplianceCategory } from './appliance-category';
7
+
8
+ import { STEP_CABINET_CHOOSE_PRODUCT } from '../../../../constants';
9
+
10
+ const ApplianceToolbarButton = ({
11
+ trigger,
12
+ action,
13
+ dataSource,
14
+ subData,
15
+ bFlag,
16
+ props,
17
+ dData,
18
+ isExpand,
19
+ expandAction,
20
+ closeAction,
21
+ cabinetCollapse,
22
+ doorCollapse,
23
+ doorExpand,
24
+ collapseAction,
25
+ searchCabinet,
26
+ search,
27
+ mode,
28
+ isOpen
29
+ }) => {
30
+ const [step, setStep] = useState(STEP_CABINET_CHOOSE_PRODUCT);
31
+ let content = <div />;
32
+ let content1 = <div />;
33
+ content1 = (
34
+ <ApplianceChooseProduct
35
+ action={action}
36
+ pData={subData}
37
+ dData={dData}
38
+ bFlag={0}
39
+ doorExpand={doorExpand}
40
+ props={props}
41
+ setStep={setStep}
42
+ search={searchCabinet}
43
+ onSearch={search}
44
+ mode={mode}
45
+ isExpand={isExpand}
46
+ closeAction={closeAction}
47
+ ></ApplianceChooseProduct>
48
+ );
49
+ content = (
50
+ <ApplianceCategory
51
+ action={action}
52
+ pData={dataSource}
53
+ bFlag={bFlag}
54
+ doorExpand={doorExpand}
55
+ props={props}
56
+ setStep={setStep}
57
+ search={searchCabinet}
58
+ onSearch={search}
59
+ mode={mode}
60
+ ></ApplianceCategory>
61
+ );
62
+ return (
63
+ <DoubleToolbarButtonWithPopup
64
+ closeAction={closeAction}
65
+ isOpen={isOpen}
66
+ mode={mode}
67
+ isExpand={isExpand}
68
+ expandAction={expandAction}
69
+ style={{ minWidth: step >= 1 && isExpand == 1 ? '800px' : '600px' }}
70
+ order={3}
71
+ isDouble={subData.length}
72
+ collapse1={cabinetCollapse}
73
+ collapse2={doorCollapse}
74
+ collapseAction={collapseAction}
75
+ trigger={trigger}
76
+ children1={content1}
77
+ >
78
+ {content}
79
+ </DoubleToolbarButtonWithPopup>
80
+ );
81
+ };
82
+
83
+ export default ApplianceToolbarButton;
@@ -0,0 +1,150 @@
1
+ import React from 'react';
2
+ import * as S from './styles';
3
+ import Dialog from '@material-ui/core/Dialog';
4
+ import { withStyles } from '@material-ui/core/styles';
5
+ import styled from 'styled-components';
6
+ import {
7
+ TEXT_COLOR_NEUTRAL_2,
8
+ SECONDARY_PURPLE_COLOR,
9
+ DEFAULT_FONT_FAMILY,
10
+ TEXT_COLOR_NEUTRAL_1
11
+ } from '../../../../constants';
12
+ import FormControlLabel from '@material-ui/core/FormControlLabel';
13
+ import Checkbox from '@material-ui/core/Checkbox';
14
+
15
+ const StyledDialog = styled(Dialog)`
16
+ .MuiDialog-paperWidthSm {
17
+ border-radius: 10px;
18
+ padding: 32px;
19
+ width: 480px;
20
+ }
21
+ `;
22
+
23
+ const StyledMuiCheckbox = withStyles({
24
+ root: {
25
+ color: TEXT_COLOR_NEUTRAL_2,
26
+ '&$checked': {
27
+ color: SECONDARY_PURPLE_COLOR
28
+ }
29
+ },
30
+ checked: {}
31
+ })(props => <Checkbox color="default" {...props} />);
32
+
33
+ const DialogContents = styled.span`
34
+ font-family: ${DEFAULT_FONT_FAMILY};
35
+ color: ${TEXT_COLOR_NEUTRAL_1};
36
+ padding: 10px 0px;
37
+
38
+ @media screen and (min-width: 1024) {
39
+ font-size: 11px;
40
+ }
41
+ @media screen and (max-width: 1024) {
42
+ font-size: 11px;
43
+ }
44
+ @media screen and (min-width: 1366) {
45
+ font-size: 13px;
46
+ }
47
+ @media screen and (max-width: 1366) {
48
+ font-size: 13px;
49
+ }
50
+ @media screen and (min-width: 1440) {
51
+ font-size: 16px;
52
+ }
53
+ @media screen and (max-width: 1440) {
54
+ font-size: 16px;
55
+ }
56
+ font-weight: 400;
57
+ line-height: 18px;
58
+ text-align: left;
59
+ `;
60
+ class AutosavePromptPopup extends React.Component {
61
+ constructor(props) {
62
+ super(props);
63
+ }
64
+
65
+ render() {
66
+ let { visible, isLeaving } = this.props;
67
+ if (isLeaving) {
68
+ return (
69
+ <StyledDialog open={visible} onClose={() => this.props.handleClose()}>
70
+ <S.DialogTitle>Leaving already?</S.DialogTitle>
71
+ <S.DialogContent>
72
+ <div>
73
+ <span>
74
+ <b>Let’s save your work so it’s here when you return.</b>
75
+ </span>
76
+ </div>
77
+ <br />
78
+ <div>
79
+ <span>
80
+ We’ll email you a link so you can easily pick up where you left
81
+ off.
82
+ </span>
83
+ </div>
84
+ </S.DialogContent>
85
+ <S.DialogAction>
86
+ <S.Button
87
+ onClick={() => {
88
+ this.props.handleClose();
89
+ }}
90
+ >
91
+ Cancel
92
+ </S.Button>
93
+ <S.Button
94
+ onClick={() => {
95
+ this.props.handleOk(true);
96
+ }}
97
+ >
98
+ Save
99
+ </S.Button>
100
+ </S.DialogAction>
101
+ </StyledDialog>
102
+ );
103
+ }
104
+
105
+ return (
106
+ <StyledDialog open={visible} onClose={() => this.props.handleClose()}>
107
+ <S.DialogTitle>Save Now?</S.DialogTitle>
108
+ <S.DialogContent>
109
+ <div>
110
+ <span>
111
+ <b>Looks like you’re making great progress!</b>
112
+ </span>
113
+ </div>
114
+ <br />
115
+ <div
116
+ style={{
117
+ marginBottom: '0.5rem'
118
+ }}
119
+ >
120
+ <span>Want to save your design so far?</span>
121
+ </div>
122
+ <div>
123
+ <span>
124
+ We’ll email you a link so you can easily pick up where you left
125
+ off.
126
+ </span>
127
+ </div>
128
+ </S.DialogContent>
129
+ <S.DialogAction>
130
+ <S.Button
131
+ onClick={() => {
132
+ this.props.handleClose();
133
+ }}
134
+ >
135
+ Cancel
136
+ </S.Button>
137
+ <S.Button
138
+ onClick={() => {
139
+ this.props.handleOk(true);
140
+ }}
141
+ >
142
+ Save
143
+ </S.Button>
144
+ </S.DialogAction>
145
+ </StyledDialog>
146
+ );
147
+ }
148
+ }
149
+
150
+ export default AutosavePromptPopup;
@@ -0,0 +1,64 @@
1
+ .container {
2
+ width: 60px;
3
+ position: relative;
4
+ padding-left: 20px;
5
+ cursor: pointer;
6
+ -webkit-user-select: none;
7
+ -moz-user-select: none;
8
+ -ms-user-select: none;
9
+ user-select: none;
10
+ }
11
+
12
+ /* Hide the browser's default checkbox */
13
+ .container input {
14
+ position: absolute;
15
+ opacity: 0;
16
+ cursor: pointer;
17
+ height: 0;
18
+ width: 0;
19
+ }
20
+
21
+ /* Create a custom checkbox */
22
+ .checkmark {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ height: 13px;
27
+ width: 13px;
28
+ background-color: #eee;
29
+ }
30
+
31
+ /* On mouse-over, add a grey background color */
32
+ .container:hover input ~ .checkmark {
33
+ background-color: #ccc;
34
+ }
35
+
36
+ /* When the checkbox is checked, add a blue background */
37
+ .container input:checked ~ .checkmark {
38
+ background-color: #2196f3;
39
+ }
40
+
41
+ /* Create the checkmark/indicator (hidden when not checked) */
42
+ .checkmark:after {
43
+ content: '';
44
+ position: absolute;
45
+ display: none;
46
+ }
47
+
48
+ /* Show the checkmark when checked */
49
+ .container input:checked ~ .checkmark:after {
50
+ display: block;
51
+ }
52
+
53
+ /* Style the checkmark/indicator */
54
+ .container .checkmark:after {
55
+ left: 4px;
56
+ top: 1px;
57
+ width: 3px;
58
+ height: 7px;
59
+ border: solid white;
60
+ border-width: 0 2px 2px 0;
61
+ -webkit-transform: rotate(45deg);
62
+ -ms-transform: rotate(45deg);
63
+ transform: rotate(45deg);
64
+ }
@@ -0,0 +1,40 @@
1
+ import styled from 'styled-components';
2
+ import {
3
+ BG_COLOR_HOVER,
4
+ DEFAULT_FONT_FAMILY,
5
+ SECONDARY_PURPLE_COLOR,
6
+ TEXT_COLOR_NEUTRAL_1
7
+ } from '../../../../constants';
8
+
9
+ export const DialogTitle = styled.span`
10
+ font-weight: bold;
11
+ color: ${TEXT_COLOR_NEUTRAL_1};
12
+ font-family: ${DEFAULT_FONT_FAMILY};
13
+ font-size: 26px;
14
+ margin-bottom: 1rem;
15
+ `;
16
+
17
+ export const DialogContent = styled.span`
18
+ font-family: ${DEFAULT_FONT_FAMILY};
19
+ color: ${TEXT_COLOR_NEUTRAL_1};
20
+ margin-bottom: 32px;
21
+ `;
22
+
23
+ export const DialogAction = styled.div`
24
+ display: flex;
25
+ justify-content: flex-end;
26
+ `;
27
+
28
+ export const Button = styled.div`
29
+ padding: 10px 20px;
30
+ cursor: pointer;
31
+ margin-right: 10px;
32
+ color: ${SECONDARY_PURPLE_COLOR};
33
+ font-weight: bold;
34
+ font-family: ${DEFAULT_FONT_FAMILY};
35
+ font-size: 16px;
36
+ border-radius: 20px;
37
+ :hover {
38
+ background-color: ${BG_COLOR_HOVER};
39
+ }
40
+ `;
@@ -0,0 +1,73 @@
1
+ import React, { useState } from 'react';
2
+ import ToolbarPanel from '../../../../sidebar/toolbar-panel';
3
+ import * as S from '../../styles';
4
+
5
+ export const CabinetCategory = ({
6
+ setStep,
7
+ action,
8
+ pData,
9
+ bFlag,
10
+ props,
11
+ doorExpand,
12
+ search,
13
+ onSearch,
14
+ mode
15
+ }) => {
16
+ let result = [];
17
+ const [lastActiveName, setLastActiveName] = useState('');
18
+
19
+ for (let i = 0; i < pData.length; i++) {
20
+ let temp = [];
21
+ for (let j = 0; j < pData[i].items.length; j++) {
22
+ if (pData[i].items[j].type !== 'cabinet') {
23
+ var title = pData[i].items[j].name;
24
+ title = title.charAt(0).toUpperCase() + title.substr(1);
25
+
26
+ temp.push(
27
+ <S.ProductsRow
28
+ key={i.toString() + '-' + j.toString()}
29
+ style={{ width: '100%', padding: '8px 10px 8px' }}
30
+ >
31
+ <a
32
+ onClick={() => {
33
+ action(pData[i].items[j].name);
34
+ }}
35
+ >
36
+ <span>{title} </span>
37
+ </a>
38
+ </S.ProductsRow>
39
+ );
40
+ }
41
+ }
42
+ result.push(
43
+ <S.ItemWrapper key={i.toString()}>
44
+ <ToolbarPanel
45
+ lastActiveName={lastActiveName}
46
+ setLastActiveName={setLastActiveName}
47
+ onClose={() => {
48
+ action(-1);
49
+ }}
50
+ onOpen={() => {
51
+ action(pData[i].name);
52
+ }}
53
+ isUrl={true}
54
+ key={i.toString()}
55
+ name={pData[i].name}
56
+ url={pData[i].thumbnail}
57
+ >
58
+ {temp}
59
+ </ToolbarPanel>
60
+ </S.ItemWrapper>
61
+ );
62
+ }
63
+ let miHeight = 0;
64
+ let nonHeight = 495 - miHeight + 'px';
65
+ let height = window.innerHeight * 0.6 - miHeight + 'px';
66
+ return (
67
+ <S.CategoryContentWrapper
68
+ style={{ height: doorExpand ? height : nonHeight }}
69
+ >
70
+ {result}
71
+ </S.CategoryContentWrapper>
72
+ );
73
+ };