@configuratorware/configurator-admingui 1.55.7 → 1.56.1
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/App/Config/defaultConfig.js +3 -0
- package/Components/CountryExclusionMatrix/index.js +144 -0
- package/Screens/Designer/SubScreens/Designviews/Containers/List.js +54 -3
- package/Screens/Designer/SubScreens/Designviews/Reducers/Actions.js +23 -11
- package/Screens/Designer/SubScreens/Designviews/Translations.js +10 -4
- package/Screens/Designer/SubScreens/Visualization/Containers/Edit/Edit.js +9 -4
- package/Screens/Item/Components/Images/ImagesTab.js +101 -0
- package/Screens/Item/Components/Images/ItemImageUploadDialog.js +211 -0
- package/Screens/Item/Containers/Edit.js +8 -2
- package/Screens/Item/Translations.js +22 -2
- package/Screens/ItemCountryExclusions/Screen.js +145 -0
- package/Screens/ItemCountryExclusions/Translations.js +14 -0
- package/Screens/ItemCountryExclusions/index.js +12 -0
- package/Screens/OptionCountryExclusions/Screen.js +18 -86
- package/Screens/Savedconfigurations/Components/ConfigurationDataSheet.js +15 -2
- package/Screens/index.js +3 -0
- package/package.json +3 -3
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _lodash = require("lodash");
|
|
10
|
+
var _i18n = require("../../App/i18n");
|
|
11
|
+
var _Table = require("../../UIComponents/Table");
|
|
12
|
+
var _Checkbox = _interopRequireDefault(require("../../UIComponents/Checkbox"));
|
|
13
|
+
var _Tooltip = _interopRequireDefault(require("../../UIComponents/Tooltip"));
|
|
14
|
+
var _CircularProgress = _interopRequireDefault(require("../../UIComponents/CircularProgress"));
|
|
15
|
+
var _TextField = _interopRequireDefault(require("../../UIComponents/TextField"));
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
18
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
21
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
22
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
23
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
26
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
27
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
28
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
29
|
+
require("../../App/i18n").use({
|
|
30
|
+
de: {
|
|
31
|
+
countryExclusionMatrixFilter: 'Filtern...',
|
|
32
|
+
countryExclusionMatrixNoData: 'Keine Einträge vorhanden'
|
|
33
|
+
},
|
|
34
|
+
en: {
|
|
35
|
+
countryExclusionMatrixFilter: 'Filter...',
|
|
36
|
+
countryExclusionMatrixNoData: 'There are no records'
|
|
37
|
+
}
|
|
38
|
+
}, true);
|
|
39
|
+
var stickyHeaderCellStyle = {
|
|
40
|
+
position: 'sticky',
|
|
41
|
+
top: 0,
|
|
42
|
+
backgroundColor: '#fff',
|
|
43
|
+
zIndex: 1
|
|
44
|
+
};
|
|
45
|
+
var CountryExclusionMatrix = function CountryExclusionMatrix(_ref) {
|
|
46
|
+
var rows = _ref.rows,
|
|
47
|
+
countries = _ref.countries,
|
|
48
|
+
exclusionSet = _ref.exclusionSet,
|
|
49
|
+
onToggle = _ref.onToggle,
|
|
50
|
+
loading = _ref.loading,
|
|
51
|
+
rowLabel = _ref.rowLabel;
|
|
52
|
+
var _useState = (0, _react.useState)(''),
|
|
53
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54
|
+
filterValue = _useState2[0],
|
|
55
|
+
setFilterValue = _useState2[1];
|
|
56
|
+
var filteredRows = filterValue ? rows.filter(function (row) {
|
|
57
|
+
var identifier = (0, _lodash.get)(row, 'identifier', '');
|
|
58
|
+
var title = (0, _lodash.get)(row, 'title', '') || (0, _lodash.get)(row, 'translated_title', '');
|
|
59
|
+
var search = filterValue.toLowerCase();
|
|
60
|
+
return identifier.toLowerCase().includes(search) || title.toLowerCase().includes(search);
|
|
61
|
+
}) : rows;
|
|
62
|
+
if (loading && (!rows || rows.length === 0)) {
|
|
63
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
64
|
+
style: {
|
|
65
|
+
display: 'flex',
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
gap: 16,
|
|
68
|
+
marginTop: 16
|
|
69
|
+
}
|
|
70
|
+
}, /*#__PURE__*/_react["default"].createElement(_CircularProgress["default"], {
|
|
71
|
+
size: 24
|
|
72
|
+
}), /*#__PURE__*/_react["default"].createElement("span", null, (0, _i18n.T)('Loading data'), "..."));
|
|
73
|
+
}
|
|
74
|
+
if (!loading && (!rows || rows.length === 0)) {
|
|
75
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
76
|
+
style: {
|
|
77
|
+
marginTop: 16
|
|
78
|
+
}
|
|
79
|
+
}, (0, _i18n.T)('countryExclusionMatrixNoData'));
|
|
80
|
+
}
|
|
81
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
82
|
+
style: {
|
|
83
|
+
marginBottom: 16
|
|
84
|
+
}
|
|
85
|
+
}, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
86
|
+
value: filterValue,
|
|
87
|
+
onChange: function onChange(e) {
|
|
88
|
+
return setFilterValue(e.target.value);
|
|
89
|
+
},
|
|
90
|
+
placeholder: (0, _i18n.t)('countryExclusionMatrixFilter'),
|
|
91
|
+
style: {
|
|
92
|
+
width: 300
|
|
93
|
+
}
|
|
94
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
95
|
+
style: {
|
|
96
|
+
overflowX: 'auto',
|
|
97
|
+
overflowY: 'auto',
|
|
98
|
+
maxHeight: '70vh'
|
|
99
|
+
}
|
|
100
|
+
}, /*#__PURE__*/_react["default"].createElement(_Table.Table, null, /*#__PURE__*/_react["default"].createElement(_Table.TableHead, null, /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, /*#__PURE__*/_react["default"].createElement(_Table.TableHeadColumn, {
|
|
101
|
+
style: _objectSpread(_objectSpread({}, stickyHeaderCellStyle), {}, {
|
|
102
|
+
minWidth: 220
|
|
103
|
+
})
|
|
104
|
+
}, rowLabel), countries.map(function (country) {
|
|
105
|
+
var alpha2 = (0, _lodash.get)(country, 'alpha2');
|
|
106
|
+
var name = (0, _lodash.get)(country, 'name') || alpha2;
|
|
107
|
+
return /*#__PURE__*/_react["default"].createElement(_Table.TableHeadColumn, {
|
|
108
|
+
key: alpha2,
|
|
109
|
+
style: _objectSpread(_objectSpread({}, stickyHeaderCellStyle), {}, {
|
|
110
|
+
minWidth: 60,
|
|
111
|
+
textAlign: 'center'
|
|
112
|
+
})
|
|
113
|
+
}, /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
114
|
+
title: name
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, alpha2)));
|
|
116
|
+
}))), /*#__PURE__*/_react["default"].createElement(_Table.TableBody, null, filteredRows.map(function (row) {
|
|
117
|
+
var rowId = (0, _lodash.get)(row, 'id');
|
|
118
|
+
var identifier = (0, _lodash.get)(row, 'identifier', '');
|
|
119
|
+
var title = (0, _lodash.get)(row, 'translated_title') || (0, _lodash.get)(row, 'title') || '';
|
|
120
|
+
var rowLabel_display = title ? "".concat(title, " (").concat(identifier, ")") : identifier;
|
|
121
|
+
return /*#__PURE__*/_react["default"].createElement(_Table.TableRow, {
|
|
122
|
+
key: rowId
|
|
123
|
+
}, /*#__PURE__*/_react["default"].createElement(_Table.TableRowColumn, {
|
|
124
|
+
style: {
|
|
125
|
+
minWidth: 220
|
|
126
|
+
}
|
|
127
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, rowLabel_display)), countries.map(function (country) {
|
|
128
|
+
var alpha2 = (0, _lodash.get)(country, 'alpha2');
|
|
129
|
+
var checked = exclusionSet.has("".concat(rowId, "-").concat(alpha2));
|
|
130
|
+
return /*#__PURE__*/_react["default"].createElement(_Table.TableRowColumn, {
|
|
131
|
+
key: alpha2,
|
|
132
|
+
style: {
|
|
133
|
+
textAlign: 'center'
|
|
134
|
+
}
|
|
135
|
+
}, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
136
|
+
checked: checked,
|
|
137
|
+
onChange: function onChange() {
|
|
138
|
+
return onToggle(rowId, alpha2);
|
|
139
|
+
}
|
|
140
|
+
}));
|
|
141
|
+
}));
|
|
142
|
+
})))));
|
|
143
|
+
};
|
|
144
|
+
var _default = exports["default"] = CountryExclusionMatrix;
|
|
@@ -5,12 +5,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = exports.ConnectedList = void 0;
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _Actions = _interopRequireWildcard(require("../Reducers/Actions"));
|
|
10
|
+
var _reactRedux = require("react-redux");
|
|
10
11
|
var _DefaultConnectedList = _interopRequireDefault(require("../../../../../Components/DefaultConnectedList"));
|
|
11
12
|
var _OrderList = _interopRequireDefault(require("../../../../../Components/OrderList"));
|
|
12
|
-
|
|
13
|
+
var _i18n = require("../../../../../App/i18n");
|
|
14
|
+
var _RaisedButton = _interopRequireDefault(require("../../../../../UIComponents/RaisedButton"));
|
|
15
|
+
var _FlatButton = _interopRequireDefault(require("../../../../../UIComponents/FlatButton"));
|
|
16
|
+
var _Dialog = _interopRequireDefault(require("../../../../../UIComponents/Dialog"));
|
|
13
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
20
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
24
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
14
25
|
var columns = [{
|
|
15
26
|
name: 'identifier',
|
|
16
27
|
label: 'Identifier',
|
|
@@ -27,10 +38,50 @@ var ConnectedList = exports.ConnectedList = (0, _DefaultConnectedList["default"]
|
|
|
27
38
|
reducerName: _Actions.REDUCER_NAME
|
|
28
39
|
});
|
|
29
40
|
var list = function list() {
|
|
41
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
42
|
+
var _useState = (0, _react.useState)(false),
|
|
43
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
44
|
+
showDialog = _useState2[0],
|
|
45
|
+
setShowDialog = _useState2[1];
|
|
46
|
+
var actions = [/*#__PURE__*/_react["default"].createElement(_FlatButton["default"], {
|
|
47
|
+
label: (0, _i18n.T)('designview.cancel'),
|
|
48
|
+
key: "cancelButton",
|
|
49
|
+
primary: false,
|
|
50
|
+
onClick: function onClick() {
|
|
51
|
+
return setShowDialog(false);
|
|
52
|
+
}
|
|
53
|
+
}), /*#__PURE__*/_react["default"].createElement(_FlatButton["default"], {
|
|
54
|
+
label: (0, _i18n.T)('designview.readFilesLabel'),
|
|
55
|
+
key: "readButton",
|
|
56
|
+
primary: true,
|
|
57
|
+
onClick: function onClick() {
|
|
58
|
+
dispatch(_Actions["default"].readFiles()).then(function () {
|
|
59
|
+
return setShowDialog(false);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
})];
|
|
30
63
|
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ConnectedList, null, /*#__PURE__*/_react["default"].createElement(_OrderList["default"], {
|
|
31
64
|
listUrl: _Actions.LIST_URL,
|
|
32
65
|
entity: 'designview',
|
|
33
66
|
orderSequenceNumber: 'sequence_number'
|
|
34
|
-
})
|
|
67
|
+
}), /*#__PURE__*/_react["default"].createElement(_RaisedButton["default"], {
|
|
68
|
+
className: "orderList-button",
|
|
69
|
+
label: (0, _i18n.T)('designview.readFilesLabel'),
|
|
70
|
+
onClick: function onClick() {
|
|
71
|
+
return setShowDialog(true);
|
|
72
|
+
}
|
|
73
|
+
}), /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
74
|
+
title: (0, _i18n.T)('designview.readFilesLabel'),
|
|
75
|
+
actions: actions,
|
|
76
|
+
modal: 'true',
|
|
77
|
+
open: showDialog,
|
|
78
|
+
bodyClassName: "readFiles-dialogBody",
|
|
79
|
+
scroll: "paper"
|
|
80
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
81
|
+
style: {
|
|
82
|
+
paddingBottom: 10,
|
|
83
|
+
color: 'black'
|
|
84
|
+
}
|
|
85
|
+
}, (0, _i18n.T)('designview.readFilesExplanation')))));
|
|
35
86
|
};
|
|
36
87
|
var _default = exports["default"] = list;
|
|
@@ -153,13 +153,24 @@ var setItem = exports.setItem = function setItem(item) {
|
|
|
153
153
|
item: item
|
|
154
154
|
};
|
|
155
155
|
};
|
|
156
|
+
var readFiles = function readFiles() {
|
|
157
|
+
return function (dispatch, getState) {
|
|
158
|
+
var _getState3 = getState(),
|
|
159
|
+
designerData = _getState3.designerData;
|
|
160
|
+
var id = designerData.data.id.value;
|
|
161
|
+
var url = "/designviews/syncfromfilesystem/".concat(id);
|
|
162
|
+
return (0, _Helpers.dispatchPostData)(dispatch)('READ_FILES', url, {}).then(function () {
|
|
163
|
+
return dispatch(invalidateList());
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
};
|
|
156
167
|
var createEntity = function createEntity() {
|
|
157
168
|
return function (dispatch, getState) {
|
|
158
169
|
var p = dispatch(DesignViewActions.createEntity());
|
|
159
170
|
p.then(function () {
|
|
160
171
|
// set the item identifier after the new entity is initialized
|
|
161
|
-
var
|
|
162
|
-
designerData =
|
|
172
|
+
var _getState4 = getState(),
|
|
173
|
+
designerData = _getState4.designerData;
|
|
163
174
|
var id = designerData.data.id.value;
|
|
164
175
|
dispatch(setItem(id));
|
|
165
176
|
});
|
|
@@ -176,8 +187,8 @@ var removeDesignArea = function removeDesignArea(identifier) {
|
|
|
176
187
|
if (idx !== -1) {
|
|
177
188
|
designAreas.splice(idx, 1);
|
|
178
189
|
dispatch(DesignViewActions.setFieldData('designAreas', designAreas));
|
|
179
|
-
var
|
|
180
|
-
designerData =
|
|
190
|
+
var _getState5 = getState(),
|
|
191
|
+
designerData = _getState5.designerData;
|
|
181
192
|
if (isCreatorDesignerMode(designerData)) {
|
|
182
193
|
dispatch(CreatorViewActions.postData(false));
|
|
183
194
|
} else {
|
|
@@ -192,8 +203,8 @@ var removeDesignArea = function removeDesignArea(identifier) {
|
|
|
192
203
|
};
|
|
193
204
|
var postData = function postData() {
|
|
194
205
|
return function (dispatch, getState) {
|
|
195
|
-
var
|
|
196
|
-
designerData =
|
|
206
|
+
var _getState6 = getState(),
|
|
207
|
+
designerData = _getState6.designerData;
|
|
197
208
|
if (isCreatorDesignerMode(designerData)) {
|
|
198
209
|
return dispatch(CreatorViewActions.postData(true));
|
|
199
210
|
} else {
|
|
@@ -206,8 +217,8 @@ var detailsAction = function detailsAction() {
|
|
|
206
217
|
args[_key] = arguments[_key];
|
|
207
218
|
}
|
|
208
219
|
return function (dispatch, getState) {
|
|
209
|
-
var
|
|
210
|
-
designerData =
|
|
220
|
+
var _getState7 = getState(),
|
|
221
|
+
designerData = _getState7.designerData;
|
|
211
222
|
if (isCreatorDesignerMode(designerData)) {
|
|
212
223
|
return dispatch(CreatorViewActions.detailsAction.apply(CreatorViewActions, args));
|
|
213
224
|
} else {
|
|
@@ -220,8 +231,8 @@ var hideDetails = function hideDetails() {
|
|
|
220
231
|
args[_key2] = arguments[_key2];
|
|
221
232
|
}
|
|
222
233
|
return function (dispatch, getState) {
|
|
223
|
-
var
|
|
224
|
-
designerData =
|
|
234
|
+
var _getState8 = getState(),
|
|
235
|
+
designerData = _getState8.designerData;
|
|
225
236
|
if (isCreatorDesignerMode(designerData)) {
|
|
226
237
|
return dispatch(CreatorViewActions.hideDetails.apply(CreatorViewActions, args));
|
|
227
238
|
} else {
|
|
@@ -236,6 +247,7 @@ var mergedActions = _objectSpread(_objectSpread({}, DesignViewActions), {}, {
|
|
|
236
247
|
listAction: listAction,
|
|
237
248
|
invalidateList: invalidateList,
|
|
238
249
|
createEntity: createEntity,
|
|
239
|
-
removeDesignArea: removeDesignArea
|
|
250
|
+
removeDesignArea: removeDesignArea,
|
|
251
|
+
readFiles: readFiles
|
|
240
252
|
});
|
|
241
253
|
var _default = exports["default"] = mergedActions;
|
|
@@ -4,21 +4,27 @@ require("../../../../App/i18n").use({
|
|
|
4
4
|
en: {
|
|
5
5
|
designviews: 'Designviews',
|
|
6
6
|
designview: {
|
|
7
|
-
addButtonLabel: 'Add Designview'
|
|
7
|
+
addButtonLabel: 'Add Designview',
|
|
8
|
+
readFilesLabel: 'Read files',
|
|
9
|
+
cancel: 'Cancel',
|
|
10
|
+
readFilesExplanation: 'Reads the views and files from the file system. May overwrite existing maintained views and visual maintenance data.'
|
|
8
11
|
},
|
|
9
12
|
generalSettings: 'General settings',
|
|
10
13
|
designcontainer: {
|
|
11
|
-
imageUploadLabel:
|
|
14
|
+
imageUploadLabel: 'Background image of the designarea'
|
|
12
15
|
}
|
|
13
16
|
},
|
|
14
17
|
de: {
|
|
15
18
|
designviews: 'Designansichten',
|
|
16
19
|
designview: {
|
|
17
|
-
addButtonLabel: 'Designansichten hinzufügen'
|
|
20
|
+
addButtonLabel: 'Designansichten hinzufügen',
|
|
21
|
+
readFilesLabel: 'Auslesen',
|
|
22
|
+
cancel: 'Abbrechen',
|
|
23
|
+
readFilesExplanation: 'Liest die Ansichten und Dateien aus dem Dateisystem. Vorhandene gepflegte Ansichten und die visuelle Pflege können dabei überschrieben werden.'
|
|
18
24
|
},
|
|
19
25
|
generalSettings: 'Allgemeine Einstellungen',
|
|
20
26
|
designcontainer: {
|
|
21
|
-
imageUploadLabel:
|
|
27
|
+
imageUploadLabel: 'Hintergrundbild der Designfläche'
|
|
22
28
|
}
|
|
23
29
|
}
|
|
24
30
|
}, true);
|
|
@@ -591,18 +591,23 @@ var VisualizationSettingsEdit = exports.VisualizationSettingsEdit = /*#__PURE__*
|
|
|
591
591
|
var _this$baseShapeEditor = this.baseShapeEditor.getViewImageSize(),
|
|
592
592
|
imageWidth = _this$baseShapeEditor.width,
|
|
593
593
|
imageHeight = _this$baseShapeEditor.height;
|
|
594
|
+
var areaRatio = areaWidth / areaHeight;
|
|
594
595
|
if (prodVisSizeDimension === 'width') {
|
|
595
596
|
var ratio = areaWidth / prodVisSizeValue;
|
|
597
|
+
var width = imageWidth * ratio;
|
|
598
|
+
var height = width / areaRatio;
|
|
596
599
|
return {
|
|
597
|
-
width:
|
|
598
|
-
height:
|
|
600
|
+
width: width,
|
|
601
|
+
height: height
|
|
599
602
|
};
|
|
600
603
|
}
|
|
601
604
|
if (prodVisSizeDimension === 'height') {
|
|
602
605
|
var _ratio = areaHeight / prodVisSizeValue;
|
|
606
|
+
var _height2 = imageHeight * _ratio;
|
|
607
|
+
var _width2 = _height2 * areaRatio;
|
|
603
608
|
return {
|
|
604
|
-
width:
|
|
605
|
-
height:
|
|
609
|
+
width: _width2,
|
|
610
|
+
height: _height2
|
|
606
611
|
};
|
|
607
612
|
}
|
|
608
613
|
return null;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));
|
|
11
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
12
|
+
var _i18n = require("../../../../App/i18n");
|
|
13
|
+
var _Button = _interopRequireDefault(require("../../../../UIComponents/Button"));
|
|
14
|
+
var _Hint = _interopRequireDefault(require("../../../../Components/Hint"));
|
|
15
|
+
var _Actions = require("../../Reducers/Actions");
|
|
16
|
+
var _ItemImageUploadDialog = _interopRequireDefault(require("./ItemImageUploadDialog"));
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
20
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
22
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
23
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
26
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
27
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
28
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
29
|
+
var styles = function styles(theme) {
|
|
30
|
+
return {
|
|
31
|
+
root: {
|
|
32
|
+
padding: theme.spacing.unit * 3
|
|
33
|
+
},
|
|
34
|
+
buttons: {
|
|
35
|
+
display: 'flex',
|
|
36
|
+
marginBottom: theme.spacing.unit * 2,
|
|
37
|
+
'& > *': {
|
|
38
|
+
marginRight: theme.spacing.unit * 2
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
var ImagesTab = function ImagesTab(_ref) {
|
|
44
|
+
var classes = _ref.classes,
|
|
45
|
+
itemId = _ref.itemId,
|
|
46
|
+
itemIdentifier = _ref.itemIdentifier,
|
|
47
|
+
itemTitle = _ref.itemTitle,
|
|
48
|
+
variants = _ref.variants;
|
|
49
|
+
var _useState = (0, _react.useState)(null),
|
|
50
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
51
|
+
openDialog = _useState2[0],
|
|
52
|
+
setOpenDialog = _useState2[1];
|
|
53
|
+
var items = itemId ? [{
|
|
54
|
+
id: itemId,
|
|
55
|
+
identifier: itemIdentifier,
|
|
56
|
+
title: itemTitle
|
|
57
|
+
}].concat(_toConsumableArray((variants || []).map(function (v) {
|
|
58
|
+
return {
|
|
59
|
+
id: v.id,
|
|
60
|
+
identifier: v.identifier,
|
|
61
|
+
title: v.title || v.identifier
|
|
62
|
+
};
|
|
63
|
+
}))) : [];
|
|
64
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
65
|
+
className: classes.root
|
|
66
|
+
}, !itemId && /*#__PURE__*/_react["default"].createElement(_Hint["default"], {
|
|
67
|
+
hintText: (0, _i18n.T)('itemImages.saveFirstHint')
|
|
68
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
69
|
+
className: classes.buttons
|
|
70
|
+
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
71
|
+
variant: "raised",
|
|
72
|
+
color: "primary",
|
|
73
|
+
disabled: !itemId,
|
|
74
|
+
onClick: function onClick() {
|
|
75
|
+
return setOpenDialog('detail');
|
|
76
|
+
}
|
|
77
|
+
}, (0, _i18n.T)('itemImages.buttonDetail')), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
78
|
+
variant: "raised",
|
|
79
|
+
color: "primary",
|
|
80
|
+
disabled: !itemId,
|
|
81
|
+
onClick: function onClick() {
|
|
82
|
+
return setOpenDialog('thumbnail');
|
|
83
|
+
}
|
|
84
|
+
}, (0, _i18n.T)('itemImages.buttonThumbnail'))), openDialog && /*#__PURE__*/_react["default"].createElement(_ItemImageUploadDialog["default"], {
|
|
85
|
+
open: true,
|
|
86
|
+
onClose: function onClose() {
|
|
87
|
+
return setOpenDialog(null);
|
|
88
|
+
},
|
|
89
|
+
kind: openDialog,
|
|
90
|
+
itemId: itemId,
|
|
91
|
+
items: items
|
|
92
|
+
}));
|
|
93
|
+
};
|
|
94
|
+
var _default = exports["default"] = (0, _withStyles["default"])(styles)((0, _reactRedux.connect)(function (state) {
|
|
95
|
+
return {
|
|
96
|
+
itemId: _lodash["default"].get(state, [_Actions.ITEM_REDUCER_NAME, 'data', 'id', 'value']),
|
|
97
|
+
itemIdentifier: _lodash["default"].get(state, [_Actions.ITEM_REDUCER_NAME, 'data', 'identifier', 'value']),
|
|
98
|
+
itemTitle: _lodash["default"].get(state, [_Actions.ITEM_REDUCER_NAME, 'data', 'translated_title', 'value']),
|
|
99
|
+
variants: _lodash["default"].get(state, [_Actions.ITEM_REDUCER_NAME, 'data', 'children', 'value'], [])
|
|
100
|
+
};
|
|
101
|
+
})(ImagesTab));
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));
|
|
10
|
+
var _i18n = require("../../../../App/i18n");
|
|
11
|
+
var _Api = _interopRequireDefault(require("../../../../App/Api"));
|
|
12
|
+
var _Dialog = _interopRequireDefault(require("../../../../UIComponents/Dialog"));
|
|
13
|
+
var _Button = _interopRequireDefault(require("../../../../UIComponents/Button"));
|
|
14
|
+
var _Image = _interopRequireDefault(require("../../../Creator/Components/VisualizationAndMediaData/Components/Image"));
|
|
15
|
+
var _ImageEditTools = _interopRequireDefault(require("../../../Creator/Components/VisualizationAndMediaData/Components/ImageEditTools"));
|
|
16
|
+
require("../../../Creator/Components/VisualizationAndMediaData/Translations");
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
19
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
20
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
21
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
22
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
23
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
26
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
27
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
28
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
29
|
+
var ItemImageTile = (0, _withStyles["default"])(function (theme) {
|
|
30
|
+
return {
|
|
31
|
+
tile: {
|
|
32
|
+
display: 'flex',
|
|
33
|
+
margin: theme.spacing.unit
|
|
34
|
+
},
|
|
35
|
+
tileColumn: {
|
|
36
|
+
flexDirection: 'column',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
width: 150
|
|
39
|
+
},
|
|
40
|
+
tileRow: {
|
|
41
|
+
flexDirection: 'row',
|
|
42
|
+
alignItems: 'center'
|
|
43
|
+
},
|
|
44
|
+
imageWrapper: {
|
|
45
|
+
position: 'relative',
|
|
46
|
+
width: 100,
|
|
47
|
+
flexShrink: 0,
|
|
48
|
+
'&:hover $editTools': {
|
|
49
|
+
transform: 'scale(1, 1)'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
editTools: {
|
|
53
|
+
transform: 'scale(0, 0)',
|
|
54
|
+
transition: 'transform ease-in-out 0.3s',
|
|
55
|
+
position: 'absolute',
|
|
56
|
+
top: 0,
|
|
57
|
+
left: '50%',
|
|
58
|
+
width: 100,
|
|
59
|
+
marginLeft: -50
|
|
60
|
+
},
|
|
61
|
+
imageLabel: {
|
|
62
|
+
display: 'flex',
|
|
63
|
+
flexDirection: 'column',
|
|
64
|
+
justifyContent: 'center'
|
|
65
|
+
},
|
|
66
|
+
imageLabelColumn: {
|
|
67
|
+
marginTop: theme.spacing.unit,
|
|
68
|
+
alignItems: 'center',
|
|
69
|
+
height: 38
|
|
70
|
+
},
|
|
71
|
+
imageLabelRow: {
|
|
72
|
+
marginLeft: theme.spacing.unit * 2,
|
|
73
|
+
flex: 1
|
|
74
|
+
},
|
|
75
|
+
imageLabelText: {
|
|
76
|
+
fontWeight: 'bold',
|
|
77
|
+
overflow: 'hidden',
|
|
78
|
+
textOverflow: 'ellipsis',
|
|
79
|
+
whiteSpace: 'nowrap'
|
|
80
|
+
},
|
|
81
|
+
imageStatus: {
|
|
82
|
+
fontSize: '0.8em'
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
})(function (_ref) {
|
|
86
|
+
var classes = _ref.classes,
|
|
87
|
+
src = _ref.src,
|
|
88
|
+
label = _ref.label,
|
|
89
|
+
uploadUrl = _ref.uploadUrl,
|
|
90
|
+
removeUrl = _ref.removeUrl,
|
|
91
|
+
onUpdate = _ref.onUpdate,
|
|
92
|
+
row = _ref.row;
|
|
93
|
+
var _useState = (0, _react.useState)(0),
|
|
94
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
95
|
+
version = _useState2[0],
|
|
96
|
+
setVersion = _useState2[1];
|
|
97
|
+
var handleUpdate = (0, _react.useCallback)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
98
|
+
return _regenerator().w(function (_context) {
|
|
99
|
+
while (1) switch (_context.n) {
|
|
100
|
+
case 0:
|
|
101
|
+
_context.n = 1;
|
|
102
|
+
return onUpdate();
|
|
103
|
+
case 1:
|
|
104
|
+
setVersion(function (v) {
|
|
105
|
+
return v + 1;
|
|
106
|
+
});
|
|
107
|
+
case 2:
|
|
108
|
+
return _context.a(2);
|
|
109
|
+
}
|
|
110
|
+
}, _callee);
|
|
111
|
+
})), [onUpdate]);
|
|
112
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
113
|
+
className: "".concat(classes.tile, " ").concat(row ? classes.tileRow : classes.tileColumn)
|
|
114
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
115
|
+
className: classes.imageWrapper
|
|
116
|
+
}, /*#__PURE__*/_react["default"].createElement(_Image["default"], {
|
|
117
|
+
src: src ? "".concat(src, "?v=").concat(version) : null
|
|
118
|
+
}), /*#__PURE__*/_react["default"].createElement(_ImageEditTools["default"], {
|
|
119
|
+
className: classes.editTools,
|
|
120
|
+
uploadUrl: uploadUrl,
|
|
121
|
+
removeUrl: removeUrl,
|
|
122
|
+
deleteEnabled: !!src,
|
|
123
|
+
onUpdate: handleUpdate
|
|
124
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
125
|
+
className: "".concat(classes.imageLabel, " ").concat(row ? classes.imageLabelRow : classes.imageLabelColumn)
|
|
126
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
127
|
+
className: classes.imageLabelText
|
|
128
|
+
}, label), /*#__PURE__*/_react["default"].createElement("div", {
|
|
129
|
+
className: classes.imageStatus
|
|
130
|
+
}, src ? '' : (0, _i18n.t)('visualizationAndMediaData.imageStatus.noImage'))));
|
|
131
|
+
});
|
|
132
|
+
var ItemImageUploadDialog = (0, _withStyles["default"])(function (theme) {
|
|
133
|
+
return {
|
|
134
|
+
tilesContainer: {
|
|
135
|
+
display: 'flex',
|
|
136
|
+
padding: theme.spacing.unit
|
|
137
|
+
},
|
|
138
|
+
tilesWrap: {
|
|
139
|
+
flexWrap: 'wrap'
|
|
140
|
+
},
|
|
141
|
+
tilesColumn: {
|
|
142
|
+
flexDirection: 'column'
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
})(function (_ref3) {
|
|
146
|
+
var classes = _ref3.classes,
|
|
147
|
+
open = _ref3.open,
|
|
148
|
+
onClose = _ref3.onClose,
|
|
149
|
+
kind = _ref3.kind,
|
|
150
|
+
itemId = _ref3.itemId,
|
|
151
|
+
items = _ref3.items;
|
|
152
|
+
var _useState3 = (0, _react.useState)({}),
|
|
153
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
154
|
+
imageSources = _useState4[0],
|
|
155
|
+
setImageSources = _useState4[1];
|
|
156
|
+
var loadImages = (0, _react.useCallback)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
157
|
+
var response, map, _t;
|
|
158
|
+
return _regenerator().w(function (_context2) {
|
|
159
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
160
|
+
case 0:
|
|
161
|
+
_context2.p = 0;
|
|
162
|
+
_context2.n = 1;
|
|
163
|
+
return _Api["default"].request({
|
|
164
|
+
method: 'get',
|
|
165
|
+
url: "items/".concat(itemId, "/images")
|
|
166
|
+
});
|
|
167
|
+
case 1:
|
|
168
|
+
response = _context2.v;
|
|
169
|
+
map = kind === 'thumbnail' ? response.data.thumbnails : response.data.detailImages;
|
|
170
|
+
setImageSources(map || {});
|
|
171
|
+
_context2.n = 3;
|
|
172
|
+
break;
|
|
173
|
+
case 2:
|
|
174
|
+
_context2.p = 2;
|
|
175
|
+
_t = _context2.v;
|
|
176
|
+
setImageSources({});
|
|
177
|
+
case 3:
|
|
178
|
+
return _context2.a(2);
|
|
179
|
+
}
|
|
180
|
+
}, _callee2, null, [[0, 2]]);
|
|
181
|
+
})), [itemId, kind]);
|
|
182
|
+
(0, _react.useEffect)(function () {
|
|
183
|
+
if (open) {
|
|
184
|
+
loadImages();
|
|
185
|
+
}
|
|
186
|
+
}, [open, loadImages]);
|
|
187
|
+
var title = kind === 'thumbnail' ? (0, _i18n.t)('itemImages.dialogTitleThumbnail') : (0, _i18n.t)('itemImages.dialogTitleDetail');
|
|
188
|
+
var hasVariants = items.length > 1;
|
|
189
|
+
return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
190
|
+
open: open,
|
|
191
|
+
onClose: onClose,
|
|
192
|
+
title: title,
|
|
193
|
+
actions: /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
194
|
+
onClick: onClose,
|
|
195
|
+
color: "primary"
|
|
196
|
+
}, (0, _i18n.T)('itemImages.close'))
|
|
197
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
198
|
+
className: "".concat(classes.tilesContainer, " ").concat(hasVariants ? classes.tilesColumn : classes.tilesWrap)
|
|
199
|
+
}, items.map(function (item) {
|
|
200
|
+
return /*#__PURE__*/_react["default"].createElement(ItemImageTile, {
|
|
201
|
+
key: item.id,
|
|
202
|
+
src: imageSources[item.identifier] || null,
|
|
203
|
+
label: hasVariants && item === items[0] ? (0, _i18n.t)('itemImages.parentLabel') : item.title || item.identifier,
|
|
204
|
+
uploadUrl: "items/".concat(item.id, "/upload/item_image/").concat(kind),
|
|
205
|
+
removeUrl: "items/".concat(item.id, "/item_image/").concat(kind),
|
|
206
|
+
onUpdate: loadImages,
|
|
207
|
+
row: hasVariants
|
|
208
|
+
});
|
|
209
|
+
})));
|
|
210
|
+
});
|
|
211
|
+
var _default = exports["default"] = ItemImageUploadDialog;
|
|
@@ -11,6 +11,7 @@ var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withS
|
|
|
11
11
|
var _CircularProgress = _interopRequireDefault(require("@material-ui/core/CircularProgress"));
|
|
12
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
13
|
var _Actions = _interopRequireWildcard(require("../Reducers/Actions"));
|
|
14
|
+
var _ImagesTab = _interopRequireDefault(require("../Components/Images/ImagesTab"));
|
|
14
15
|
var _VariantsEditor = _interopRequireDefault(require("../Components/Variants/VariantsEditor"));
|
|
15
16
|
var _Actions2 = _interopRequireWildcard(require("../Reducers/Variant/Actions"));
|
|
16
17
|
var _Editor = _interopRequireDefault(require("../DataStructures/Attributes/Editor"));
|
|
@@ -417,7 +418,7 @@ var styles = function styles(theme) {
|
|
|
417
418
|
color: theme.palette.common.white
|
|
418
419
|
},
|
|
419
420
|
MuiTabRoot: {
|
|
420
|
-
minWidth: '
|
|
421
|
+
minWidth: '33%'
|
|
421
422
|
},
|
|
422
423
|
linkText: {
|
|
423
424
|
'& > a:hover': {
|
|
@@ -431,7 +432,8 @@ var styles = function styles(theme) {
|
|
|
431
432
|
};
|
|
432
433
|
var itemFormTabs = {
|
|
433
434
|
baseData: 'baseData',
|
|
434
|
-
variantsEditor: 'variantsEditor'
|
|
435
|
+
variantsEditor: 'variantsEditor',
|
|
436
|
+
images: 'images'
|
|
435
437
|
};
|
|
436
438
|
var ItemForm = /*#__PURE__*/function (_Component) {
|
|
437
439
|
function ItemForm(props) {
|
|
@@ -481,6 +483,10 @@ var ItemForm = /*#__PURE__*/function (_Component) {
|
|
|
481
483
|
itemId: itemId
|
|
482
484
|
});
|
|
483
485
|
}
|
|
486
|
+
case itemFormTabs.images:
|
|
487
|
+
{
|
|
488
|
+
return /*#__PURE__*/_react["default"].createElement(_ImagesTab["default"], null);
|
|
489
|
+
}
|
|
484
490
|
}
|
|
485
491
|
}
|
|
486
492
|
}, {
|
|
@@ -109,7 +109,17 @@ require("../../App/i18n").use({
|
|
|
109
109
|
selectionHeadline: 'The following variants are selectable:'
|
|
110
110
|
},
|
|
111
111
|
generalData: 'General data',
|
|
112
|
-
configurationSettings: 'Configuration settings'
|
|
112
|
+
configurationSettings: 'Configuration settings',
|
|
113
|
+
images: 'Images',
|
|
114
|
+
itemImages: {
|
|
115
|
+
buttonThumbnail: 'Add item thumbnail(s)',
|
|
116
|
+
buttonDetail: 'Add item image(s)',
|
|
117
|
+
dialogTitleThumbnail: 'Item thumbnails',
|
|
118
|
+
dialogTitleDetail: 'Item images',
|
|
119
|
+
saveFirstHint: 'Please save the item first before uploading images.',
|
|
120
|
+
parentLabel: 'Base image (fallback)',
|
|
121
|
+
close: 'Close'
|
|
122
|
+
}
|
|
113
123
|
},
|
|
114
124
|
de: {
|
|
115
125
|
Prices: 'Preise',
|
|
@@ -231,6 +241,16 @@ require("../../App/i18n").use({
|
|
|
231
241
|
selectionHeadline: 'Folgende Varianten sind wählbar:'
|
|
232
242
|
},
|
|
233
243
|
generalData: 'Allgemeine Daten',
|
|
234
|
-
configurationSettings: 'Konfigurator Einstellungen'
|
|
244
|
+
configurationSettings: 'Konfigurator Einstellungen',
|
|
245
|
+
images: 'Bilder',
|
|
246
|
+
itemImages: {
|
|
247
|
+
buttonThumbnail: 'Produktthumbnail(s) hinzufügen',
|
|
248
|
+
buttonDetail: 'Produktbild(er) hinzufügen',
|
|
249
|
+
dialogTitleThumbnail: 'Produktthumbnails',
|
|
250
|
+
close: 'Schließen',
|
|
251
|
+
dialogTitleDetail: 'Produktbilder',
|
|
252
|
+
saveFirstHint: 'Bitte speichere das Produkt zuerst, bevor du Bilder hochlädst.',
|
|
253
|
+
parentLabel: 'Basisbild (Fallback)'
|
|
254
|
+
}
|
|
235
255
|
}
|
|
236
256
|
}, true);
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
require("./Translations");
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _lodash = require("lodash");
|
|
11
|
+
var _i18n = require("../../App/i18n");
|
|
12
|
+
var _GeneralFragments = require("../../Components/GeneralFragments");
|
|
13
|
+
var _Hint = _interopRequireDefault(require("../../Components/Hint"));
|
|
14
|
+
var _CountryExclusionMatrix = _interopRequireDefault(require("../../Components/CountryExclusionMatrix"));
|
|
15
|
+
var _Actions = require("../../App/Reducers/Api/Actions");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
18
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
19
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
21
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
22
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
23
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
24
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
25
|
+
var ITEMS_KEY = 'item_country_exclusions_items';
|
|
26
|
+
var COUNTRIES_KEY = 'item_country_exclusions_countries';
|
|
27
|
+
var EXCLUSIONS_KEY = 'item_country_exclusions_exclusions';
|
|
28
|
+
var EXCLUSIONS_LIST_KEY = 'item_country_exclusions_list';
|
|
29
|
+
function getList(dataSource) {
|
|
30
|
+
if (!dataSource || !dataSource.data) return [];
|
|
31
|
+
var data = dataSource.data;
|
|
32
|
+
return Array.isArray(data) ? data : data && data.data || [];
|
|
33
|
+
}
|
|
34
|
+
function getCountriesList(dataSource) {
|
|
35
|
+
if (!dataSource || !dataSource.data) return [];
|
|
36
|
+
var data = dataSource.data;
|
|
37
|
+
if (data && _typeof(data) === 'object' && !Array.isArray(data)) {
|
|
38
|
+
return Object.entries(data).map(function (_ref) {
|
|
39
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
40
|
+
alpha2 = _ref2[0],
|
|
41
|
+
name = _ref2[1];
|
|
42
|
+
return {
|
|
43
|
+
alpha2: alpha2,
|
|
44
|
+
name: name || alpha2
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return Array.isArray(data) ? data : data && data.data || [];
|
|
49
|
+
}
|
|
50
|
+
var ItemCountryExclusionsScreen = function ItemCountryExclusionsScreen(_ref3) {
|
|
51
|
+
var itemsSource = _ref3.itemsSource,
|
|
52
|
+
countriesSource = _ref3.countriesSource,
|
|
53
|
+
exclusionsSource = _ref3.exclusionsSource,
|
|
54
|
+
dispatch = _ref3.dispatch;
|
|
55
|
+
var _useState = (0, _react.useState)(function () {
|
|
56
|
+
return new Set();
|
|
57
|
+
}),
|
|
58
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
59
|
+
exclusionSet = _useState2[0],
|
|
60
|
+
setExclusionSet = _useState2[1];
|
|
61
|
+
var items = (0, _react.useMemo)(function () {
|
|
62
|
+
return getList(itemsSource);
|
|
63
|
+
}, [itemsSource]);
|
|
64
|
+
var countries = (0, _react.useMemo)(function () {
|
|
65
|
+
return getCountriesList(countriesSource);
|
|
66
|
+
}, [countriesSource]);
|
|
67
|
+
var exclusions = (0, _react.useMemo)(function () {
|
|
68
|
+
return getList(exclusionsSource);
|
|
69
|
+
}, [exclusionsSource]);
|
|
70
|
+
(0, _react.useEffect)(function () {
|
|
71
|
+
dispatch((0, _Actions.fetchDataIfNeeded)('items?limit=9999', ITEMS_KEY));
|
|
72
|
+
dispatch((0, _Actions.fetchDataIfNeeded)('itemexclusioncountries', COUNTRIES_KEY));
|
|
73
|
+
dispatch((0, _Actions.fetchDataIfNeeded)('itemcountryexclusions', EXCLUSIONS_LIST_KEY));
|
|
74
|
+
}, []);
|
|
75
|
+
(0, _react.useEffect)(function () {
|
|
76
|
+
if (exclusions) {
|
|
77
|
+
var set = new Set();
|
|
78
|
+
exclusions.forEach(function (exclusion) {
|
|
79
|
+
var itemId = (0, _lodash.get)(exclusion, 'item.id');
|
|
80
|
+
var alpha2 = (0, _lodash.get)(exclusion, 'country.alpha2');
|
|
81
|
+
if (itemId != null && alpha2) {
|
|
82
|
+
set.add("".concat(itemId, "-").concat(alpha2));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
setExclusionSet(set);
|
|
86
|
+
}
|
|
87
|
+
}, [exclusions]);
|
|
88
|
+
var isFetching = (itemsSource === null || itemsSource === void 0 ? void 0 : itemsSource.isFetching) || (countriesSource === null || countriesSource === void 0 ? void 0 : countriesSource.isFetching) || (exclusionsSource === null || exclusionsSource === void 0 ? void 0 : exclusionsSource.isFetching);
|
|
89
|
+
var handleToggle = function handleToggle(itemId, countryAlpha2) {
|
|
90
|
+
var key = "".concat(itemId, "-").concat(countryAlpha2);
|
|
91
|
+
var excluded = exclusionSet.has(key);
|
|
92
|
+
if (excluded) {
|
|
93
|
+
dispatch((0, _Actions.deleteData)('itemcountryexclusions', "".concat(itemId, "/").concat(countryAlpha2), EXCLUSIONS_KEY)).then(function () {
|
|
94
|
+
setExclusionSet(function (prev) {
|
|
95
|
+
var next = new Set(prev);
|
|
96
|
+
next["delete"](key);
|
|
97
|
+
return next;
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
} else {
|
|
101
|
+
dispatch((0, _Actions.postData)("itemcountryexclusions/".concat(itemId, "/").concat(countryAlpha2), {}, EXCLUSIONS_KEY)).then(function () {
|
|
102
|
+
setExclusionSet(function (prev) {
|
|
103
|
+
return new Set(prev).add(key);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
var rows = items.map(function (item) {
|
|
109
|
+
return {
|
|
110
|
+
id: (0, _lodash.get)(item, 'id'),
|
|
111
|
+
identifier: (0, _lodash.get)(item, 'identifier', ''),
|
|
112
|
+
translated_title: (0, _lodash.get)(item, 'translated_title', '')
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
116
|
+
className: "item-country-exclusions-screen",
|
|
117
|
+
style: {
|
|
118
|
+
padding: 24
|
|
119
|
+
}
|
|
120
|
+
}, /*#__PURE__*/_react["default"].createElement(_GeneralFragments.Headline, {
|
|
121
|
+
text: (0, _i18n.T)('item_country_exclusion')
|
|
122
|
+
}), /*#__PURE__*/_react["default"].createElement(_Hint["default"], {
|
|
123
|
+
hintText: (0, _i18n.T)('itemCountryExclusionHint')
|
|
124
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
125
|
+
style: {
|
|
126
|
+
marginTop: 16
|
|
127
|
+
}
|
|
128
|
+
}, /*#__PURE__*/_react["default"].createElement(_CountryExclusionMatrix["default"], {
|
|
129
|
+
rows: rows,
|
|
130
|
+
countries: countries,
|
|
131
|
+
exclusionSet: exclusionSet,
|
|
132
|
+
onToggle: handleToggle,
|
|
133
|
+
loading: isFetching,
|
|
134
|
+
rowLabel: (0, _i18n.T)('itemCountryExclusionItemLandLabel')
|
|
135
|
+
})));
|
|
136
|
+
};
|
|
137
|
+
var mapStateToProps = function mapStateToProps(state) {
|
|
138
|
+
var dataBySource = (0, _lodash.get)(state, 'dataBySource', {});
|
|
139
|
+
return {
|
|
140
|
+
itemsSource: dataBySource[ITEMS_KEY],
|
|
141
|
+
countriesSource: dataBySource[COUNTRIES_KEY],
|
|
142
|
+
exclusionsSource: dataBySource[EXCLUSIONS_LIST_KEY]
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
var _default = exports["default"] = (0, _reactRedux.connect)(mapStateToProps)(ItemCountryExclusionsScreen);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("../../App/i18n").use({
|
|
4
|
+
de: {
|
|
5
|
+
item_country_exclusion: 'Produkt-Land Ausschluss',
|
|
6
|
+
itemCountryExclusionItemLandLabel: 'Produkt / Land',
|
|
7
|
+
itemCountryExclusionHint: 'Markierte Produkte werden im entsprechenden Land ausgeblendet.'
|
|
8
|
+
},
|
|
9
|
+
en: {
|
|
10
|
+
item_country_exclusion: 'Product-Country Exclusion',
|
|
11
|
+
itemCountryExclusionItemLandLabel: 'Product / Country',
|
|
12
|
+
itemCountryExclusionHint: 'Checked products will be hidden in the corresponding country.'
|
|
13
|
+
}
|
|
14
|
+
}, true);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _Screen = _interopRequireDefault(require("./Screen"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
Screen: _Screen["default"],
|
|
11
|
+
credentials: ['item_country_exclusions']
|
|
12
|
+
};
|
|
@@ -11,10 +11,7 @@ var _lodash = require("lodash");
|
|
|
11
11
|
var _i18n = require("../../App/i18n");
|
|
12
12
|
var _GeneralFragments = require("../../Components/GeneralFragments");
|
|
13
13
|
var _Hint = _interopRequireDefault(require("../../Components/Hint"));
|
|
14
|
-
var
|
|
15
|
-
var _Checkbox = _interopRequireDefault(require("../../UIComponents/Checkbox"));
|
|
16
|
-
var _CircularProgress = _interopRequireDefault(require("../../UIComponents/CircularProgress"));
|
|
17
|
-
var _Tooltip = _interopRequireDefault(require("../../UIComponents/Tooltip"));
|
|
14
|
+
var _CountryExclusionMatrix = _interopRequireDefault(require("../../Components/CountryExclusionMatrix"));
|
|
18
15
|
var _Actions = require("../../App/Reducers/Api/Actions");
|
|
19
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
20
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -89,15 +86,9 @@ var OptionCountryExclusionsScreen = function OptionCountryExclusionsScreen(_ref3
|
|
|
89
86
|
}
|
|
90
87
|
}, [exclusions]);
|
|
91
88
|
var isFetching = (optionsSource === null || optionsSource === void 0 ? void 0 : optionsSource.isFetching) || (countriesSource === null || countriesSource === void 0 ? void 0 : countriesSource.isFetching) || (exclusionsSource === null || exclusionsSource === void 0 ? void 0 : exclusionsSource.isFetching);
|
|
92
|
-
var hasData = options.length > 0 || countries.length > 0;
|
|
93
|
-
var showLoader = isFetching && !hasData;
|
|
94
|
-
var showMatrix = hasData && !isFetching;
|
|
95
|
-
var isExcluded = function isExcluded(optionId, countryAlpha2) {
|
|
96
|
-
return exclusionSet.has("".concat(optionId, "-").concat(countryAlpha2));
|
|
97
|
-
};
|
|
98
89
|
var handleToggle = function handleToggle(optionId, countryAlpha2) {
|
|
99
|
-
var excluded = isExcluded(optionId, countryAlpha2);
|
|
100
90
|
var key = "".concat(optionId, "-").concat(countryAlpha2);
|
|
91
|
+
var excluded = exclusionSet.has(key);
|
|
101
92
|
if (excluded) {
|
|
102
93
|
dispatch((0, _Actions.deleteData)('optioncountryexclusions', "".concat(optionId, "/").concat(countryAlpha2), EXCLUSIONS_KEY)).then(function () {
|
|
103
94
|
setExclusionSet(function (prev) {
|
|
@@ -114,27 +105,13 @@ var OptionCountryExclusionsScreen = function OptionCountryExclusionsScreen(_ref3
|
|
|
114
105
|
});
|
|
115
106
|
}
|
|
116
107
|
};
|
|
117
|
-
|
|
118
|
-
return
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
text: (0, _i18n.T)('option_country_exclusion')
|
|
125
|
-
}), /*#__PURE__*/_react["default"].createElement(_Hint["default"], {
|
|
126
|
-
hintText: (0, _i18n.T)('optionCountryExclusionHint')
|
|
127
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
128
|
-
style: {
|
|
129
|
-
display: 'flex',
|
|
130
|
-
alignItems: 'center',
|
|
131
|
-
gap: 16,
|
|
132
|
-
marginTop: 16
|
|
133
|
-
}
|
|
134
|
-
}, /*#__PURE__*/_react["default"].createElement(_CircularProgress["default"], {
|
|
135
|
-
size: 24
|
|
136
|
-
}), /*#__PURE__*/_react["default"].createElement("span", null, (0, _i18n.T)('Loading data'), "...")));
|
|
137
|
-
}
|
|
108
|
+
var rows = options.map(function (opt) {
|
|
109
|
+
return {
|
|
110
|
+
id: (0, _lodash.get)(opt, 'id'),
|
|
111
|
+
identifier: (0, _lodash.get)(opt, 'identifier', ''),
|
|
112
|
+
translated_title: (0, _lodash.get)(opt, 'translated_title', '')
|
|
113
|
+
};
|
|
114
|
+
});
|
|
138
115
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
139
116
|
className: "option-country-exclusions-screen",
|
|
140
117
|
style: {
|
|
@@ -144,63 +121,18 @@ var OptionCountryExclusionsScreen = function OptionCountryExclusionsScreen(_ref3
|
|
|
144
121
|
text: (0, _i18n.T)('option_country_exclusion')
|
|
145
122
|
}), /*#__PURE__*/_react["default"].createElement(_Hint["default"], {
|
|
146
123
|
hintText: (0, _i18n.T)('optionCountryExclusionHint')
|
|
147
|
-
}),
|
|
148
|
-
style: {
|
|
149
|
-
overflowX: 'auto',
|
|
150
|
-
marginTop: 16
|
|
151
|
-
}
|
|
152
|
-
}, /*#__PURE__*/_react["default"].createElement(_Table.Table, null, /*#__PURE__*/_react["default"].createElement(_Table.TableHead, null, /*#__PURE__*/_react["default"].createElement(_Table.TableRow, null, /*#__PURE__*/_react["default"].createElement(_Table.TableHeadColumn, {
|
|
153
|
-
style: {
|
|
154
|
-
minWidth: 220
|
|
155
|
-
}
|
|
156
|
-
}, (0, _i18n.T)('optionCountryExclusionOptionLandLabel')), countries.map(function (country) {
|
|
157
|
-
var alpha2 = (0, _lodash.get)(country, 'alpha2');
|
|
158
|
-
var name = (0, _lodash.get)(country, 'name') || alpha2;
|
|
159
|
-
return /*#__PURE__*/_react["default"].createElement(_Table.TableHeadColumn, {
|
|
160
|
-
key: alpha2,
|
|
161
|
-
style: {
|
|
162
|
-
minWidth: 60,
|
|
163
|
-
textAlign: 'center'
|
|
164
|
-
}
|
|
165
|
-
}, /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
166
|
-
title: name
|
|
167
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, alpha2)));
|
|
168
|
-
}))), /*#__PURE__*/_react["default"].createElement(_Table.TableBody, null, options.map(function (opt) {
|
|
169
|
-
var optionId = (0, _lodash.get)(opt, 'id');
|
|
170
|
-
var optionLabel = (0, _lodash.get)(opt, 'translated_title') || (0, _lodash.get)(opt, 'identifier');
|
|
171
|
-
if (opt.translated_title) {
|
|
172
|
-
optionLabel += " (".concat((0, _lodash.get)(opt, 'identifier'), ")");
|
|
173
|
-
}
|
|
174
|
-
return /*#__PURE__*/_react["default"].createElement(_Table.TableRow, {
|
|
175
|
-
key: opt.id
|
|
176
|
-
}, /*#__PURE__*/_react["default"].createElement(_Table.TableRowColumn, {
|
|
177
|
-
style: {
|
|
178
|
-
minWidth: 220
|
|
179
|
-
}
|
|
180
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, optionLabel)), countries.map(function (country) {
|
|
181
|
-
var alpha2 = (0, _lodash.get)(country, 'alpha2');
|
|
182
|
-
var checked = isExcluded(optionId, alpha2);
|
|
183
|
-
return /*#__PURE__*/_react["default"].createElement(_Table.TableRowColumn, {
|
|
184
|
-
key: alpha2,
|
|
185
|
-
style: {
|
|
186
|
-
textAlign: 'center'
|
|
187
|
-
}
|
|
188
|
-
}, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
189
|
-
checked: checked,
|
|
190
|
-
onChange: function onChange() {
|
|
191
|
-
return handleToggle(optionId, alpha2);
|
|
192
|
-
}
|
|
193
|
-
}));
|
|
194
|
-
}));
|
|
195
|
-
})))), !showMatrix && hasData && /*#__PURE__*/_react["default"].createElement("div", {
|
|
196
|
-
style: {
|
|
197
|
-
marginTop: 16
|
|
198
|
-
}
|
|
199
|
-
}, (0, _i18n.T)('Loading data'), "..."), !showLoader && !hasData && !isFetching && /*#__PURE__*/_react["default"].createElement("div", {
|
|
124
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
200
125
|
style: {
|
|
201
126
|
marginTop: 16
|
|
202
127
|
}
|
|
203
|
-
}, (
|
|
128
|
+
}, /*#__PURE__*/_react["default"].createElement(_CountryExclusionMatrix["default"], {
|
|
129
|
+
rows: rows,
|
|
130
|
+
countries: countries,
|
|
131
|
+
exclusionSet: exclusionSet,
|
|
132
|
+
onToggle: handleToggle,
|
|
133
|
+
loading: isFetching,
|
|
134
|
+
rowLabel: (0, _i18n.T)('optionCountryExclusionOptionLandLabel')
|
|
135
|
+
})));
|
|
204
136
|
};
|
|
205
137
|
var mapStateToProps = function mapStateToProps(state) {
|
|
206
138
|
var dataBySource = (0, _lodash.get)(state, 'dataBySource', {});
|
|
@@ -17,6 +17,12 @@ var _OpenInNew = _interopRequireDefault(require("@material-ui/icons/OpenInNew"))
|
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
18
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
19
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
20
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
21
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
22
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
25
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
20
26
|
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
21
27
|
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
22
28
|
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
@@ -100,6 +106,13 @@ var ConfigurationDataSheet = exports["default"] = /*#__PURE__*/function (_Compon
|
|
|
100
106
|
key: "renderConfigurationData",
|
|
101
107
|
value: function renderConfigurationData(data, locale) {
|
|
102
108
|
var configurationCode = (0, _lodash.get)(data, 'code.value', '');
|
|
109
|
+
var savedParams = (0, _lodash.get)(data, 'saveContextQueryParameters.value', {});
|
|
110
|
+
var params = new URLSearchParams(Object.entries(savedParams).map(function (_ref2) {
|
|
111
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
112
|
+
key = _ref3[0],
|
|
113
|
+
value = _ref3[1];
|
|
114
|
+
return ["_".concat(key), value];
|
|
115
|
+
}));
|
|
103
116
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
104
117
|
className: "configuration-data"
|
|
105
118
|
}, /*#__PURE__*/_react["default"].createElement(_core.Tooltip, {
|
|
@@ -121,7 +134,7 @@ var ConfigurationDataSheet = exports["default"] = /*#__PURE__*/function (_Compon
|
|
|
121
134
|
label: "Code"
|
|
122
135
|
}, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
|
|
123
136
|
target: "_blank",
|
|
124
|
-
href: "".concat(_network["default"].configuratorBasePath, "code:").concat(configurationCode)
|
|
137
|
+
href: "".concat(_network["default"].configuratorBasePath, "code:").concat(configurationCode, "?").concat(params.toString())
|
|
125
138
|
}, configurationCode, /*#__PURE__*/_react["default"].createElement(_OpenInNew["default"], {
|
|
126
139
|
style: styles.icon
|
|
127
140
|
}))), /*#__PURE__*/_react["default"].createElement(DataRow, {
|
|
@@ -228,7 +241,7 @@ var ConfigurationDataSheet = exports["default"] = /*#__PURE__*/function (_Compon
|
|
|
228
241
|
style: styles.sectionTitle
|
|
229
242
|
}, (0, _i18n.T)('productionDataLabel')), /*#__PURE__*/_react["default"].createElement(_RaisedButton["default"], {
|
|
230
243
|
label: (0, _i18n.T)('productionDataDownloadButtonLabel'),
|
|
231
|
-
href: "".concat(_network["default"].frontendBaseURL, "configurations/zip/production/").concat(configurationCode, "?
|
|
244
|
+
href: "".concat(_network["default"].frontendBaseURL, "configurations/zip/production/").concat(configurationCode, "?").concat(params.toString()),
|
|
232
245
|
primary: true,
|
|
233
246
|
style: styles.button
|
|
234
247
|
}))));
|
package/Screens/index.js
CHANGED
|
@@ -138,6 +138,9 @@ function importFeature(featureName) {
|
|
|
138
138
|
case 'option_country_exclusions':
|
|
139
139
|
module = require("./OptionCountryExclusions");
|
|
140
140
|
break;
|
|
141
|
+
case 'item_country_exclusions':
|
|
142
|
+
module = require("./ItemCountryExclusions");
|
|
143
|
+
break;
|
|
141
144
|
case 'groups':
|
|
142
145
|
module = require("./Group");
|
|
143
146
|
break;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@configuratorware/configurator-admingui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.56.1",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"private": false,
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@babel/polyfill": "^7.12.1",
|
|
8
|
-
"@configuratorware/scripts": "1.
|
|
8
|
+
"@configuratorware/scripts": "1.56.1",
|
|
9
9
|
"@material-ui/core": "^3.9.4",
|
|
10
10
|
"@material-ui/icons": "^3.0.2",
|
|
11
11
|
"@tweenjs/tween.js": "^17.6.0",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"react-redux-i18n": "^1.9.3",
|
|
30
30
|
"react-router": "^3.2.6",
|
|
31
31
|
"react-sortable-hoc": "^1.11.0",
|
|
32
|
-
"redhotmagma-visualization": "1.
|
|
32
|
+
"redhotmagma-visualization": "1.56.1",
|
|
33
33
|
"redux": "^4.1.0",
|
|
34
34
|
"redux-logger": "^3.0.6",
|
|
35
35
|
"redux-persist": "^5.10.0",
|