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.
- package/package.json +8 -26
- package/src/@history.js +3 -0
- package/src/CrossSignOn.jsx +94 -0
- package/src/KitchenConfigurator.jsx +1526 -0
- package/src/KitchenConfiguratorApp.jsx +1 -1
- package/src/_KitchenConfigurator.jsx +3 -3
- package/src/components/catalog-view/catalog-breadcrumb.jsx +53 -0
- package/src/components/catalog-view/catalog-item.jsx +229 -0
- package/src/components/catalog-view/catalog-list.jsx +173 -0
- package/src/components/catalog-view/catalog-page-item.jsx +110 -0
- package/src/components/catalog-view/catalog-turn-back-page-item.jsx +80 -0
- package/src/components/configurator/custom-configurator.jsx +77 -0
- package/src/components/configurator/project-configurator.jsx +120 -0
- package/src/components/export.js +36 -0
- package/src/components/firstsetting/button/styles.js +223 -0
- package/src/components/firstsetting/export.js +9 -0
- package/src/components/firstsetting/firstsetting-content-button.jsx +198 -0
- package/src/components/firstsetting/firstsetting-toggle-button.jsx +101 -0
- package/src/components/firstsetting/firstsetting.jsx +814 -0
- package/src/components/footerbar/button/ControlButton.jsx +43 -0
- package/src/components/footerbar/button/DirectionButton.jsx +54 -0
- package/src/components/footerbar/button/DirectionPanSpinButton.jsx +36 -0
- package/src/components/footerbar/button/ToggleButton.jsx +58 -0
- package/src/components/footerbar/button/ToggleConvertButton.jsx +48 -0
- package/src/components/footerbar/button/ToggleMeasureButton.jsx +33 -0
- package/src/components/footerbar/button/styles.js +217 -0
- package/src/components/footerbar/export.js +9 -0
- package/src/components/footerbar/footer-content-button.jsx +198 -0
- package/src/components/footerbar/footer-toggle-button.jsx +101 -0
- package/src/components/footerbar/footerbar.jsx +1103 -0
- package/src/components/footerbar/styles.js +263 -0
- package/src/components/header/button/MenuButton.jsx +46 -0
- package/src/components/header/button/SaveButton.jsx +54 -0
- package/src/components/header/button/styles.js +181 -0
- package/src/components/header/export.js +5 -0
- package/src/components/header/header.jsx +631 -0
- package/src/components/header/header.style.css +47 -0
- package/src/components/header/styles.js +320 -0
- package/src/components/login/Login.js +77 -0
- package/src/components/login/LoginForm/index.js +108 -0
- package/src/components/login/Register.js +82 -0
- package/src/components/login/RegisterForm/index.js +171 -0
- package/src/components/login/jwtService.js +201 -0
- package/src/components/login/style.css +158 -0
- package/src/components/login/style.scss +260 -0
- package/src/components/myprojects/export.js +5 -0
- package/src/components/myprojects/index.jsx +445 -0
- package/src/components/myprojects/styles.js +241 -0
- package/src/components/sidebar/custom-accordion.jsx +48 -0
- package/src/components/sidebar/export.js +15 -0
- package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +73 -0
- package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +101 -0
- package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +149 -0
- package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +316 -0
- package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +108 -0
- package/src/components/sidebar/panel-element-editor/element-editor.jsx +1070 -0
- package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
- package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +104 -0
- package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +155 -0
- package/src/components/sidebar/panel-group-editor.jsx +272 -0
- package/src/components/sidebar/panel-groups.jsx +310 -0
- package/src/components/sidebar/panel-guides.jsx +192 -0
- package/src/components/sidebar/panel-layer-elements.jsx +298 -0
- package/src/components/sidebar/panel-layers.jsx +381 -0
- package/src/components/sidebar/panel.jsx +71 -0
- package/src/components/sidebar/sidebar.jsx +106 -0
- package/src/components/sidebar/toolbar-panel.jsx +139 -0
- package/src/components/sign/export.js +7 -0
- package/src/components/sign/main/index.jsx +523 -0
- package/src/components/sign/main/styles.js +163 -0
- package/src/components/toolbar/button/ControlButton.jsx +41 -0
- package/src/components/toolbar/button/DirectionButton.jsx +34 -0
- package/src/components/toolbar/button/RightButton.jsx +103 -0
- package/src/components/toolbar/button/ToggleButton.jsx +41 -0
- package/src/components/toolbar/button/index.jsx +55 -0
- package/src/components/toolbar/button/styles.js +127 -0
- package/src/components/toolbar/components/DoorStyleMenu.jsx +103 -0
- package/src/components/toolbar/components/Pricing.jsx +126 -0
- package/src/components/toolbar/components/ReviewForQuote.jsx +635 -0
- package/src/components/toolbar/export.js +21 -0
- package/src/components/toolbar/main/Alert.js +122 -0
- package/src/components/toolbar/main/TakePictureModal.jsx +104 -0
- package/src/components/toolbar/main/confirm-popup.jsx +99 -0
- package/src/components/toolbar/main/index.jsx +5627 -0
- package/src/components/toolbar/main/lShaped.json +311 -0
- package/src/components/toolbar/main/longNarrow.json +238 -0
- package/src/components/toolbar/main/myComponents.js +123 -0
- package/src/components/toolbar/main/oRectangle.json +220 -0
- package/src/components/toolbar/main/rectangle.json +238 -0
- package/src/components/toolbar/main/style.css +107 -0
- package/src/components/toolbar/main/styles.js +696 -0
- package/src/components/toolbar/plugin-item.jsx +123 -0
- package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +73 -0
- package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +102 -0
- package/src/components/toolbar/popup/appliance/index.jsx +83 -0
- package/src/components/toolbar/popup/autosaveprompt/index.jsx +150 -0
- package/src/components/toolbar/popup/autosaveprompt/styles.css +64 -0
- package/src/components/toolbar/popup/autosaveprompt/styles.js +40 -0
- package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +73 -0
- package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +119 -0
- package/src/components/toolbar/popup/cabinet/index.jsx +85 -0
- package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +63 -0
- package/src/components/toolbar/popup/doorStyle/index.jsx +71 -0
- package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +139 -0
- package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +2 -0
- package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +157 -0
- package/src/components/toolbar/popup/downloadsummary/index.jsx +643 -0
- package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +51 -0
- package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +175 -0
- package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +283 -0
- package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +2257 -0
- package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +93 -0
- package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +132 -0
- package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +2198 -0
- package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +152 -0
- package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +149 -0
- package/src/components/toolbar/popup/downloadsummary/styles.css +177 -0
- package/src/components/toolbar/popup/downloadsummary/styles.js +453 -0
- package/src/components/toolbar/popup/finishingtouch/category/index.jsx +34 -0
- package/src/components/toolbar/popup/finishingtouch/index.jsx +58 -0
- package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +112 -0
- package/src/components/toolbar/popup/finishingtouch/product/index.jsx +116 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +101 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +254 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +311 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +238 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +220 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +238 -0
- package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +86 -0
- package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +109 -0
- package/src/components/toolbar/popup/floorplan/index.jsx +60 -0
- package/src/components/toolbar/popup/index.jsx +241 -0
- package/src/components/toolbar/popup/newproject/index.jsx +59 -0
- package/src/components/toolbar/popup/newproject/styles.css +64 -0
- package/src/components/toolbar/popup/newproject/styles.js +41 -0
- package/src/components/toolbar/popup/product/appliance.jsx +54 -0
- package/src/components/toolbar/popup/product/cabinetproduct.jsx +15 -0
- package/src/components/toolbar/popup/product/doorstyle.jsx +58 -0
- package/src/components/toolbar/popup/product/doorstyleproduct.jsx +47 -0
- package/src/components/toolbar/popup/product/floor.jsx +36 -0
- package/src/components/toolbar/popup/product/floorproduct.jsx +42 -0
- package/src/components/toolbar/popup/product/index.jsx +36 -0
- package/src/components/toolbar/popup/product/primary.jsx +77 -0
- package/src/components/toolbar/popup/product/productline.jsx +93 -0
- package/src/components/toolbar/popup/product/reviewItem.jsx +427 -0
- package/src/components/toolbar/popup/product/reviewMolding.jsx +310 -0
- package/src/components/toolbar/popup/product/style.css +54 -0
- package/src/components/toolbar/popup/product/styles.js +260 -0
- package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +146 -0
- package/src/components/toolbar/popup/savedesign/index.jsx +495 -0
- package/src/components/toolbar/popup/savedesign/savedesign.style.css +16 -0
- package/src/components/toolbar/popup/savedesign/styles.js +151 -0
- package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +87 -0
- package/src/components/toolbar/popup/styles.js +909 -0
- package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +192 -0
- package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +96 -0
- package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +54 -0
- package/src/components/toolbar/popup/submitforquote/StepDots.jsx +25 -0
- package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +116 -0
- package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +38 -0
- package/src/components/toolbar/popup/submitforquote/index.jsx +698 -0
- package/src/components/toolbar/popup/submitforquote/styles.css +105 -0
- package/src/components/toolbar/popup/submitforquote/styles.js +294 -0
- package/src/components/toolbar/popup/submitprompt/index.jsx +89 -0
- package/src/components/toolbar/popup/submitprompt/styles.css +64 -0
- package/src/components/toolbar/popup/submitprompt/styles.js +42 -0
- package/src/components/toolbar/toolbar-button.jsx +90 -0
- package/src/components/toolbar/toolbar-load-button.jsx +36 -0
- package/src/components/toolbar/toolbar-save-button.jsx +32 -0
- package/src/components/wizardstep/button/styles.js +677 -0
- package/src/components/wizardstep/export.js +5 -0
- package/src/components/wizardstep/index.jsx +1372 -0
- package/src/components/wizardstep/styles.js +688 -0
- package/src/components/wizardstep/wizardstep-content-button.jsx +198 -0
- package/src/components/wizardstep/wizardstep-toggle-button.jsx +101 -0
- package/src/{_index.js → index.js} +4 -4
- package/src/renderer.jsx +466 -0
- package/src/actions/_export.js +0 -35
- package/src/components/_export.js +0 -11
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
Models as PlannerModels,
|
|
23
23
|
Plugins as PlannerPlugins,
|
|
24
24
|
reducer as PlannerReducer
|
|
25
|
-
} from '../src/
|
|
25
|
+
} from '../src/index';
|
|
26
26
|
import { Map } from 'immutable';
|
|
27
27
|
import ReactGA from 'react-ga4';
|
|
28
28
|
import { hotjar } from 'react-hotjar';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import convert from 'convert-units';
|
|
3
|
-
import { Plugins as PlannerPlugins } from './
|
|
3
|
+
import { Plugins as PlannerPlugins } from './index';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import React, { Component } from 'react';
|
|
6
6
|
import ReactGA from 'react-ga4';
|
|
@@ -9,9 +9,9 @@ import { connect } from 'react-redux';
|
|
|
9
9
|
import { bindActionCreators } from 'redux';
|
|
10
10
|
import * as constants from './constants';
|
|
11
11
|
import { base64Decode, getPath } from './utils/helper';
|
|
12
|
-
import actions from './actions/
|
|
12
|
+
import actions from './actions/export';
|
|
13
13
|
import Catalog from './catalog/catalog';
|
|
14
|
-
import { Content } from './components/
|
|
14
|
+
import { Content } from './components/export';
|
|
15
15
|
import Translator from './translator/translator';
|
|
16
16
|
import { objectsMap } from './utils/objects-utils';
|
|
17
17
|
import { VERSION } from './version';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { MdArrowBack as Arrow } from 'react-icons/md';
|
|
4
|
+
import * as SharedStyle from '../../shared-style';
|
|
5
|
+
|
|
6
|
+
const breadcrumbStyle = {
|
|
7
|
+
margin: '1.5em',
|
|
8
|
+
display: 'flex'
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const breadcrumbTextStyle = {
|
|
12
|
+
fontSize: '20px',
|
|
13
|
+
cursor: 'pointer'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const breadcrumbLastTextStyle = {
|
|
17
|
+
...breadcrumbTextStyle,
|
|
18
|
+
fontWeight: 'bolder',
|
|
19
|
+
color: SharedStyle.SECONDARY_COLOR.main
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const breadcrumbTabStyle = {
|
|
23
|
+
fill: SharedStyle.COLORS.black,
|
|
24
|
+
fontSize: '24px',
|
|
25
|
+
marginLeft: '10px',
|
|
26
|
+
marginRight: '10px'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const CatalogBreadcrumb = ({ names }) => {
|
|
30
|
+
let labelNames = names.map((name, ind) => {
|
|
31
|
+
let lastElement = ind === names.length - 1;
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<div key={ind} style={{ display: 'flex' }}>
|
|
35
|
+
<div
|
|
36
|
+
style={!lastElement ? breadcrumbTextStyle : breadcrumbLastTextStyle}
|
|
37
|
+
onClick={name.action || null}
|
|
38
|
+
>
|
|
39
|
+
{name.name}
|
|
40
|
+
</div>
|
|
41
|
+
{!lastElement ? <Arrow style={breadcrumbTabStyle} /> : null}
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return <div style={breadcrumbStyle}>{labelNames}</div>;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
CatalogBreadcrumb.propTypes = {
|
|
50
|
+
names: PropTypes.arrayOf(PropTypes.object).isRequired
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default CatalogBreadcrumb;
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { FaPlusCircle as IconAdd } from 'react-icons/fa';
|
|
4
|
+
import * as SharedStyle from '../../shared-style';
|
|
5
|
+
import { API_SERVER_URL, MODE, MODE_IDLE } from '../../constants';
|
|
6
|
+
import browserHistory from '../../@history';
|
|
7
|
+
import axios from 'axios';
|
|
8
|
+
import SnackBar from '../atoms/Snackbar/index';
|
|
9
|
+
const AWS = require('aws-sdk');
|
|
10
|
+
|
|
11
|
+
const s3 = new AWS.S3({
|
|
12
|
+
accessKeyId: process.env.REACT_APP_AWS_ID,
|
|
13
|
+
secretAccessKey: process.env.REACT_APP_AWS_SECRET
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const STYLE_BOX = {
|
|
17
|
+
width: '14em',
|
|
18
|
+
height: '14em',
|
|
19
|
+
padding: '0.625em',
|
|
20
|
+
background: '#f7f7f9',
|
|
21
|
+
border: '1px solid #e1e1e8',
|
|
22
|
+
cursor: 'pointer',
|
|
23
|
+
position: 'relative',
|
|
24
|
+
boxShadow: '0 1px 6px 0 rgba(0, 0, 0, 0.11), 0 1px 4px 0 rgba(0, 0, 0, 0.11)',
|
|
25
|
+
borderRadius: '2px',
|
|
26
|
+
transition: 'all .15s ease-in-out',
|
|
27
|
+
WebkitTransition: 'all .15s ease-in-out',
|
|
28
|
+
alignSelf: 'center',
|
|
29
|
+
justifySelf: 'center'
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const STYLE_BOX_HOVER = {
|
|
33
|
+
...STYLE_BOX,
|
|
34
|
+
background: SharedStyle.SECONDARY_COLOR.main
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const STYLE_TITLE = {
|
|
38
|
+
width: '100%',
|
|
39
|
+
textAlign: 'center',
|
|
40
|
+
display: 'block',
|
|
41
|
+
marginBottom: '.5em',
|
|
42
|
+
textTransform: 'capitalize'
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const STYLE_TITLE_HOVER = {
|
|
46
|
+
...STYLE_TITLE,
|
|
47
|
+
color: SharedStyle.COLORS.white
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const STYLE_IMAGE_CONTAINER = {
|
|
51
|
+
width: '100%',
|
|
52
|
+
height: '8em',
|
|
53
|
+
position: 'relative',
|
|
54
|
+
overflow: 'hidden',
|
|
55
|
+
border: 'solid 1px #e6e6e6',
|
|
56
|
+
padding: 0,
|
|
57
|
+
margin: 0,
|
|
58
|
+
marginBottom: '5px'
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const STYLE_IMAGE = {
|
|
62
|
+
position: 'absolute',
|
|
63
|
+
background: '#222',
|
|
64
|
+
width: '100%',
|
|
65
|
+
height: '100%',
|
|
66
|
+
backgroundSize: 'contain',
|
|
67
|
+
backgroundPosition: '50% 50%',
|
|
68
|
+
backgroundColor: SharedStyle.COLORS.white,
|
|
69
|
+
backgroundRepeat: 'no-repeat',
|
|
70
|
+
transition: 'all .2s ease-in-out'
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const STYLE_IMAGE_HOVER = {
|
|
74
|
+
...STYLE_IMAGE,
|
|
75
|
+
transform: 'scale(1.2)'
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const STYLE_PLUS_HOVER = {
|
|
79
|
+
marginTop: '1.5em',
|
|
80
|
+
color: SharedStyle.SECONDARY_COLOR.main,
|
|
81
|
+
fontSize: '2em',
|
|
82
|
+
opacity: '0.7',
|
|
83
|
+
width: '100%'
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const STYLE_DESCRIPTION = {
|
|
87
|
+
display: 'block',
|
|
88
|
+
display: '-webkit-box',
|
|
89
|
+
height: '2em',
|
|
90
|
+
margin: '0 auto',
|
|
91
|
+
fontSize: '0.75em',
|
|
92
|
+
fontStyle: 'italic',
|
|
93
|
+
lineHeight: '1em',
|
|
94
|
+
WebkitLineClamp: '2',
|
|
95
|
+
WebkitBoxOrient: 'vertical',
|
|
96
|
+
overflow: 'hidden',
|
|
97
|
+
textOverflow: 'ellipsis'
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const STYLE_TAGS = {
|
|
101
|
+
listStyle: 'none',
|
|
102
|
+
margin: '0px',
|
|
103
|
+
padding: '0px',
|
|
104
|
+
fontSize: '11px',
|
|
105
|
+
marginBottom: '3px'
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const STYLE_TAG = {
|
|
109
|
+
display: 'inline-block',
|
|
110
|
+
background: '#337ab7',
|
|
111
|
+
color: SharedStyle.COLORS.white,
|
|
112
|
+
padding: '1px 4px',
|
|
113
|
+
marginRight: '3px',
|
|
114
|
+
borderRadius: '3px'
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const STYLE_ASSIGN_TAG = {
|
|
118
|
+
display: 'inline-block',
|
|
119
|
+
background: '#33b768',
|
|
120
|
+
color: SharedStyle.COLORS.white,
|
|
121
|
+
padding: '1px 4px',
|
|
122
|
+
marginRight: '3px',
|
|
123
|
+
borderRadius: '3px'
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default class CatalogItem extends Component {
|
|
127
|
+
constructor(props) {
|
|
128
|
+
super(props);
|
|
129
|
+
this.state = { hover: false, snackBarMessage: '', isSnackBarOpen: '' };
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
select(element) {
|
|
133
|
+
sessionStorage.setItem('projectTitle', element.title);
|
|
134
|
+
this.context.projectActions.rename(element.title);
|
|
135
|
+
sessionStorage.setItem('projectId', element.id);
|
|
136
|
+
sessionStorage.setItem('email', element.email);
|
|
137
|
+
const _self = this;
|
|
138
|
+
if (MODE === 'production') {
|
|
139
|
+
s3.getObject(
|
|
140
|
+
{
|
|
141
|
+
Bucket: process.env.REACT_APP_AWS_BUCKET_NAME,
|
|
142
|
+
Key: element.data
|
|
143
|
+
},
|
|
144
|
+
function (err, data) {
|
|
145
|
+
if (err !== null) {
|
|
146
|
+
console.log(err);
|
|
147
|
+
this.setState({
|
|
148
|
+
snackBarMessage: 'Something went wrong.',
|
|
149
|
+
isSnackBarOpen: true
|
|
150
|
+
});
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
var fileData = data.Body.toString('utf-8');
|
|
154
|
+
const jsonData = JSON.parse(fileData);
|
|
155
|
+
_self.context.projectActions.loadProject(
|
|
156
|
+
jsonData,
|
|
157
|
+
this.props.categoryData
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
} else {
|
|
162
|
+
axios
|
|
163
|
+
.post(`${API_SERVER_URL}/api/project/loadPidData`, {
|
|
164
|
+
pid: element.id
|
|
165
|
+
})
|
|
166
|
+
.then(response => {
|
|
167
|
+
const jsonData = JSON.parse(response.data.data);
|
|
168
|
+
this.context.projectActions.loadProject(
|
|
169
|
+
jsonData,
|
|
170
|
+
this.props.categoryData
|
|
171
|
+
);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
this.context.projectActions.setMode(MODE_IDLE);
|
|
175
|
+
const visualizerName = sessionStorage.getItem('visualizerName');
|
|
176
|
+
browserHistory.push({
|
|
177
|
+
pathname: `/${visualizerName}/project/${
|
|
178
|
+
element.role
|
|
179
|
+
}/${sessionStorage.getItem('jwt_access_token')}/${element.id}`
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
render() {
|
|
184
|
+
let element = this.props.element;
|
|
185
|
+
let hover = this.state.hover;
|
|
186
|
+
return (
|
|
187
|
+
<div
|
|
188
|
+
style={hover ? STYLE_BOX_HOVER : STYLE_BOX}
|
|
189
|
+
onClick={e => {
|
|
190
|
+
e.preventDefault(), this.select(element);
|
|
191
|
+
}}
|
|
192
|
+
onMouseEnter={e => this.setState({ hover: true })}
|
|
193
|
+
onMouseLeave={e => this.setState({ hover: false })}
|
|
194
|
+
>
|
|
195
|
+
<SnackBar
|
|
196
|
+
isOpen={this.state.isSnackBarOpen}
|
|
197
|
+
message={this.state.snackBarMessage}
|
|
198
|
+
handleClose={() =>
|
|
199
|
+
this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
|
|
200
|
+
}
|
|
201
|
+
/>
|
|
202
|
+
<b style={STYLE_TITLE}>{element.title}</b>
|
|
203
|
+
<div style={STYLE_IMAGE_CONTAINER}>
|
|
204
|
+
<div style={{ ...STYLE_IMAGE }}>
|
|
205
|
+
{hover ? <IconAdd style={STYLE_PLUS_HOVER} /> : null}
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
<ul style={STYLE_TAGS}>
|
|
209
|
+
{element.is_assistance_requested === 1 ? (
|
|
210
|
+
<li style={STYLE_ASSIGN_TAG}>Assign</li>
|
|
211
|
+
) : null}
|
|
212
|
+
<li style={STYLE_TAG}>{element.saved_at}</li>
|
|
213
|
+
</ul>
|
|
214
|
+
{/* <div style={STYLE_DESCRIPTION}>{element.info.description}</div> */}
|
|
215
|
+
</div>
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
CatalogItem.propTypes = {
|
|
221
|
+
element: PropTypes.object.isRequired
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
CatalogItem.contextTypes = {
|
|
225
|
+
itemsActions: PropTypes.object.isRequired,
|
|
226
|
+
linesActions: PropTypes.object.isRequired,
|
|
227
|
+
holesActions: PropTypes.object.isRequired,
|
|
228
|
+
projectActions: PropTypes.object.isRequired
|
|
229
|
+
};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import CatalogItem from './catalog-item';
|
|
4
|
+
import CatalogBreadcrumb from './catalog-breadcrumb';
|
|
5
|
+
import CatalogPageItem from './catalog-page-item';
|
|
6
|
+
import CatalogTurnBackPageItem from './catalog-turn-back-page-item';
|
|
7
|
+
import ContentContainer from '../style/content-container';
|
|
8
|
+
import { API_SERVER_URL } from '../../constants';
|
|
9
|
+
import ContentTitle from '../style/content-title';
|
|
10
|
+
import * as SharedStyle from '../../shared-style';
|
|
11
|
+
import axios from 'axios';
|
|
12
|
+
import SnackBar from '../atoms/Snackbar/index';
|
|
13
|
+
|
|
14
|
+
const containerStyle = {
|
|
15
|
+
position: 'fixed',
|
|
16
|
+
width: 'calc( 100% - 94px)',
|
|
17
|
+
height: 'calc( 100% - 71px)',
|
|
18
|
+
backgroundColor: '#FFF',
|
|
19
|
+
padding: '1em',
|
|
20
|
+
left: 90,
|
|
21
|
+
top: 70,
|
|
22
|
+
overflowY: 'auto',
|
|
23
|
+
overflowX: 'hidden',
|
|
24
|
+
zIndex: 10
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const itemsStyle = {
|
|
28
|
+
display: 'flex',
|
|
29
|
+
gridTemplateColumns: 'repeat(auto-fit, minmax(14em, 1fr))',
|
|
30
|
+
gridGap: '10px',
|
|
31
|
+
marginTop: '1em'
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const searchContainer = {
|
|
35
|
+
width: '100%',
|
|
36
|
+
height: '3em',
|
|
37
|
+
padding: '0.625em',
|
|
38
|
+
background: '#f7f7f9',
|
|
39
|
+
border: '1px solid #e1e1e8',
|
|
40
|
+
cursor: 'pointer',
|
|
41
|
+
position: 'relative',
|
|
42
|
+
boxShadow: '0 1px 6px 0 rgba(0, 0, 0, 0.11), 0 1px 4px 0 rgba(0, 0, 0, 0.11)',
|
|
43
|
+
borderRadius: '2px',
|
|
44
|
+
transition: 'all .2s ease-in-out',
|
|
45
|
+
WebkitTransition: 'all .2s ease-in-out',
|
|
46
|
+
marginBottom: '1em'
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const searchText = {
|
|
50
|
+
width: '8em',
|
|
51
|
+
display: 'inline-block'
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const searchInput = {
|
|
55
|
+
width: 'calc( 100% - 10em )',
|
|
56
|
+
height: '2em',
|
|
57
|
+
margin: '0',
|
|
58
|
+
padding: '0 1em',
|
|
59
|
+
border: '1px solid #EEE'
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const historyContainer = {
|
|
63
|
+
...searchContainer,
|
|
64
|
+
padding: '0.2em 0.625em'
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const historyElementStyle = {
|
|
68
|
+
width: 'auto',
|
|
69
|
+
height: '2em',
|
|
70
|
+
lineHeight: '2em',
|
|
71
|
+
textAlign: 'center',
|
|
72
|
+
borderRadius: '1em',
|
|
73
|
+
display: 'inline-block',
|
|
74
|
+
cursor: 'pointer',
|
|
75
|
+
backgroundColor: SharedStyle.PRIMARY_COLOR.alt,
|
|
76
|
+
color: SharedStyle.PRIMARY_COLOR.text_main,
|
|
77
|
+
textTransform: 'capitalize',
|
|
78
|
+
margin: '0.25em',
|
|
79
|
+
padding: '0 1em'
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export default class CatalogList extends Component {
|
|
83
|
+
constructor(props, context) {
|
|
84
|
+
super(props);
|
|
85
|
+
|
|
86
|
+
this.state = {
|
|
87
|
+
elementsToDisplay: [],
|
|
88
|
+
matchString: '',
|
|
89
|
+
matchedElements: [],
|
|
90
|
+
snackBarMessage: '',
|
|
91
|
+
isSnackBarOpen: false
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
componentDidMount() {
|
|
96
|
+
const self = this;
|
|
97
|
+
const user = self.props.param.params;
|
|
98
|
+
axios
|
|
99
|
+
.post(`${API_SERVER_URL}/api/project/loadProject`, {
|
|
100
|
+
userrole: user.role,
|
|
101
|
+
access_token: user.token,
|
|
102
|
+
env: 'front'
|
|
103
|
+
})
|
|
104
|
+
.then(response => {
|
|
105
|
+
const { success } = response.data;
|
|
106
|
+
if (success === true) {
|
|
107
|
+
const { projectElement } = response.data;
|
|
108
|
+
self.setState({ elementsToDisplay: projectElement });
|
|
109
|
+
} else
|
|
110
|
+
this.setState({
|
|
111
|
+
snackBarMessage: 'Loading project failed.',
|
|
112
|
+
isSnackBarOpen: true
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
render() {
|
|
118
|
+
let turnBackButton = <CatalogTurnBackPageItem key="back" />;
|
|
119
|
+
return (
|
|
120
|
+
<ContentContainer
|
|
121
|
+
width={this.props.width}
|
|
122
|
+
height={this.props.height}
|
|
123
|
+
style={{ ...containerStyle, ...this.props.style }}
|
|
124
|
+
>
|
|
125
|
+
<SnackBar
|
|
126
|
+
isOpen={this.state.isSnackBarOpen}
|
|
127
|
+
message={this.state.snackBarMessage}
|
|
128
|
+
handleClose={() =>
|
|
129
|
+
this.setState({ isSnackBarOpen: false, snackBarMessage: '' })
|
|
130
|
+
}
|
|
131
|
+
/>
|
|
132
|
+
<ContentTitle>My Project Library</ContentTitle>
|
|
133
|
+
<div style={itemsStyle}>
|
|
134
|
+
{this.state.matchString === ''
|
|
135
|
+
? [
|
|
136
|
+
turnBackButton,
|
|
137
|
+
// categoriesToDisplay.map(cat => <CatalogPageItem key={cat.name} page={cat} oldPage={currentCategory}/>),
|
|
138
|
+
this.state.elementsToDisplay.map(elem => (
|
|
139
|
+
<CatalogItem
|
|
140
|
+
key={elem.id}
|
|
141
|
+
element={elem}
|
|
142
|
+
categoryData={this.props.categoryData}
|
|
143
|
+
/>
|
|
144
|
+
))
|
|
145
|
+
]
|
|
146
|
+
: this.state.matchedElements.map(elem => (
|
|
147
|
+
<CatalogItem
|
|
148
|
+
key={elem.id}
|
|
149
|
+
element={elem}
|
|
150
|
+
categoryData={this.props.categoryData}
|
|
151
|
+
/>
|
|
152
|
+
))}
|
|
153
|
+
</div>
|
|
154
|
+
</ContentContainer>
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
CatalogList.propTypes = {
|
|
160
|
+
state: PropTypes.object.isRequired,
|
|
161
|
+
width: PropTypes.number.isRequired,
|
|
162
|
+
height: PropTypes.number.isRequired,
|
|
163
|
+
style: PropTypes.object
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
CatalogList.contextTypes = {
|
|
167
|
+
catalog: PropTypes.object.isRequired,
|
|
168
|
+
translator: PropTypes.object.isRequired,
|
|
169
|
+
itemsActions: PropTypes.object.isRequired,
|
|
170
|
+
linesActions: PropTypes.object.isRequired,
|
|
171
|
+
holesActions: PropTypes.object.isRequired,
|
|
172
|
+
projectActions: PropTypes.object.isRequired
|
|
173
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { MdNavigateNext } from 'react-icons/md';
|
|
4
|
+
import * as SharedStyle from '../../shared-style';
|
|
5
|
+
|
|
6
|
+
const STYLE_BOX = {
|
|
7
|
+
width: '14em',
|
|
8
|
+
height: '14em',
|
|
9
|
+
padding: '0.625em',
|
|
10
|
+
background: '#f7f7f9',
|
|
11
|
+
border: '1px solid #e1e1e8',
|
|
12
|
+
cursor: 'pointer',
|
|
13
|
+
position: 'relative',
|
|
14
|
+
boxShadow: '0 1px 6px 0 rgba(0, 0, 0, 0.11), 0 1px 4px 0 rgba(0, 0, 0, 0.11)',
|
|
15
|
+
borderRadius: '2px',
|
|
16
|
+
transition: 'all .2s ease-in-out',
|
|
17
|
+
WebkitTransition: 'all .2s ease-in-out',
|
|
18
|
+
alignSelf: 'center',
|
|
19
|
+
justifySelf: 'center'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const STYLE_BOX_HOVER = {
|
|
23
|
+
...STYLE_BOX,
|
|
24
|
+
background: SharedStyle.SECONDARY_COLOR.main
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const STYLE_TITLE = {
|
|
28
|
+
width: '100%',
|
|
29
|
+
position: 'absolute',
|
|
30
|
+
textAlign: 'center',
|
|
31
|
+
display: 'block',
|
|
32
|
+
marginBottom: '.5em',
|
|
33
|
+
padding: '1em',
|
|
34
|
+
textTransform: 'capitalize',
|
|
35
|
+
WebkitTransition: 'all .15s ease-in-out'
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const STYLE_TITLE_HOVERED = {
|
|
39
|
+
...STYLE_TITLE,
|
|
40
|
+
fontSize: '1.4em',
|
|
41
|
+
transform: 'translateY(-60px)',
|
|
42
|
+
color: 'rgb(28, 166, 252)',
|
|
43
|
+
marginTop: '0.5em'
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const STYLE_NEXT_HOVER = {
|
|
47
|
+
position: 'absolute',
|
|
48
|
+
color: SharedStyle.SECONDARY_COLOR.main,
|
|
49
|
+
fontSize: '5em',
|
|
50
|
+
width: '100%'
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const CONTAINER_DIV = {
|
|
54
|
+
background: SharedStyle.COLORS.white,
|
|
55
|
+
marginBottom: '5px',
|
|
56
|
+
border: 'solid 1px #EEE',
|
|
57
|
+
width: '100%',
|
|
58
|
+
height: '100%',
|
|
59
|
+
display: 'flex',
|
|
60
|
+
alignItems: 'center',
|
|
61
|
+
justifyContent: 'center'
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export default class CatalogPageItem extends Component {
|
|
65
|
+
constructor(props) {
|
|
66
|
+
super(props);
|
|
67
|
+
this.state = { hover: false };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
changePage(newPage) {
|
|
71
|
+
this.context.projectActions.changeCatalogPage(
|
|
72
|
+
newPage,
|
|
73
|
+
this.props.oldPage.name
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
render() {
|
|
78
|
+
let page = this.props.page;
|
|
79
|
+
let hover = this.state.hover;
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<div
|
|
83
|
+
style={hover ? STYLE_BOX_HOVER : STYLE_BOX}
|
|
84
|
+
onClick={e => this.changePage(page.name)}
|
|
85
|
+
onMouseEnter={e => this.setState({ hover: true })}
|
|
86
|
+
onMouseLeave={e => this.setState({ hover: false })}
|
|
87
|
+
>
|
|
88
|
+
{hover ? (
|
|
89
|
+
<div style={CONTAINER_DIV}>
|
|
90
|
+
<b style={STYLE_TITLE_HOVERED}>{page.label}</b>
|
|
91
|
+
<MdNavigateNext style={STYLE_NEXT_HOVER} />
|
|
92
|
+
</div>
|
|
93
|
+
) : (
|
|
94
|
+
<div style={CONTAINER_DIV}>
|
|
95
|
+
<b style={STYLE_TITLE}>{page.label}</b>
|
|
96
|
+
</div>
|
|
97
|
+
)}
|
|
98
|
+
</div>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
CatalogPageItem.propTypes = {
|
|
104
|
+
page: PropTypes.object.isRequired,
|
|
105
|
+
oldPage: PropTypes.object.isRequired
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
CatalogPageItem.contextTypes = {
|
|
109
|
+
projectActions: PropTypes.object.isRequired
|
|
110
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { MdNavigateBefore } from 'react-icons/md';
|
|
4
|
+
import * as SharedStyle from '../../shared-style';
|
|
5
|
+
import { MODE_IDLE } from '../../constants';
|
|
6
|
+
|
|
7
|
+
const STYLE_BOX = {
|
|
8
|
+
width: '14em',
|
|
9
|
+
height: '14em',
|
|
10
|
+
padding: '0.625em',
|
|
11
|
+
background: '#f7f7f9',
|
|
12
|
+
border: '1px solid #e1e1e8',
|
|
13
|
+
margin: '0.3em',
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
position: 'relative',
|
|
16
|
+
boxShadow: '0 1px 6px 0 rgba(0, 0, 0, 0.11), 0 1px 4px 0 rgba(0, 0, 0, 0.11)',
|
|
17
|
+
borderRadius: '2px',
|
|
18
|
+
transition: 'all .2s ease-in-out',
|
|
19
|
+
WebkitTransition: 'all .2s ease-in-out'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const STYLE_BOX_HOVER = {
|
|
23
|
+
...STYLE_BOX,
|
|
24
|
+
background: SharedStyle.SECONDARY_COLOR.main
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const STYLE_BACK = {
|
|
28
|
+
position: 'absolute',
|
|
29
|
+
color: SharedStyle.COLORS.black,
|
|
30
|
+
fontSize: '5em',
|
|
31
|
+
width: '100%'
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const STYLE_BACK_HOVER = {
|
|
35
|
+
...STYLE_BACK,
|
|
36
|
+
color: SharedStyle.SECONDARY_COLOR.main
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const CONTAINER_DIV = {
|
|
40
|
+
background: SharedStyle.COLORS.white,
|
|
41
|
+
marginBottom: '5px',
|
|
42
|
+
border: 'solid 1px #e6e6e6',
|
|
43
|
+
width: '100%',
|
|
44
|
+
height: '100%',
|
|
45
|
+
display: 'flex',
|
|
46
|
+
alignItems: 'center',
|
|
47
|
+
justifyContent: 'center'
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export default class CatalogTurnBackPageItem extends Component {
|
|
51
|
+
constructor(props) {
|
|
52
|
+
super(props);
|
|
53
|
+
this.state = { hover: false };
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
changePage() {
|
|
57
|
+
this.context.projectActions.setMode(MODE_IDLE);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
render() {
|
|
61
|
+
let hover = this.state.hover;
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<div
|
|
65
|
+
style={hover ? STYLE_BOX_HOVER : STYLE_BOX}
|
|
66
|
+
onClick={e => this.changePage()}
|
|
67
|
+
onMouseEnter={e => this.setState({ hover: true })}
|
|
68
|
+
onMouseLeave={e => this.setState({ hover: false })}
|
|
69
|
+
>
|
|
70
|
+
<div style={CONTAINER_DIV}>
|
|
71
|
+
<MdNavigateBefore style={!hover ? STYLE_BACK : STYLE_BACK_HOVER} />
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
CatalogTurnBackPageItem.contextTypes = {
|
|
79
|
+
projectActions: PropTypes.object.isRequired
|
|
80
|
+
};
|