ordering-ui-admin-external 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/_bundles/main.css +2863 -1989
  2. package/_bundles/{ordering-ui-admin.2d0b245f3f62c88b520b.js → ordering-ui-admin.509785f9d6ed069b4b5d.js} +2 -2
  3. package/_bundles/{ordering-ui-admin.2d0b245f3f62c88b520b.js.LICENSE.txt → ordering-ui-admin.509785f9d6ed069b4b5d.js.LICENSE.txt} +0 -0
  4. package/_modules/components/BusinessIntelligence/AnalyticsProductCategories/index.js +1 -1
  5. package/_modules/components/Downloads/FreeProductsList/index.js +10 -10
  6. package/_modules/components/Downloads/PurchasedProductsList/index.js +10 -10
  7. package/_modules/components/Marketing/EnterprisePromotionConditions/index.js +7 -2
  8. package/_modules/components/Marketing/EnterprisePromotionList/index.js +8 -4
  9. package/_modules/components/Marketing/EnterprisePromotionList/styles.js +36 -26
  10. package/_modules/components/Orders/Appointments/CalendarHeader.js +103 -0
  11. package/_modules/components/Orders/Appointments/EventComponent.js +63 -0
  12. package/_modules/components/Orders/Appointments/index.js +174 -0
  13. package/_modules/components/Orders/Appointments/styles.js +88 -0
  14. package/_modules/components/Orders/OrderContactInformation/index.js +3 -2
  15. package/_modules/components/Orders/OrderDetails/index.js +4 -1
  16. package/_modules/components/Orders/OrderDetailsHeader/index.js +4 -3
  17. package/_modules/components/Orders/OrderDetailsHeader/styles.js +1 -1
  18. package/_modules/components/Orders/index.js +8 -0
  19. package/_modules/components/SidebarMenu/index.js +7 -2
  20. package/_modules/index.js +6 -0
  21. package/package.json +3 -2
  22. package/src/components/BusinessIntelligence/AnalyticsProductCategories/index.js +1 -1
  23. package/src/components/Downloads/FreeProductsList/index.js +10 -10
  24. package/src/components/Downloads/PurchasedProductsList/index.js +10 -10
  25. package/src/components/Marketing/EnterprisePromotionConditions/index.js +2 -1
  26. package/src/components/Marketing/EnterprisePromotionList/index.js +5 -3
  27. package/src/components/Marketing/EnterprisePromotionList/styles.js +12 -2
  28. package/src/components/Orders/Appointments/CalendarHeader.js +74 -0
  29. package/src/components/Orders/Appointments/EventComponent.js +40 -0
  30. package/src/components/Orders/Appointments/index.js +135 -0
  31. package/src/components/Orders/Appointments/styles.js +192 -0
  32. package/src/components/Orders/OrderContactInformation/index.js +3 -2
  33. package/src/components/Orders/OrderDetails/index.js +4 -1
  34. package/src/components/Orders/OrderDetailsHeader/index.js +31 -26
  35. package/src/components/Orders/OrderDetailsHeader/styles.js +1 -1
  36. package/src/components/Orders/index.js +2 -0
  37. package/src/components/SidebarMenu/index.js +7 -1
  38. package/src/index.js +2 -0
  39. package/template/app.js +4 -0
  40. package/template/components/ListenPageChanges/index.js +1 -0
  41. package/template/helmetdata.json +7 -0
  42. package/template/pages/Appointments/index.js +12 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Appointments = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _orderingComponentsAdminExternal = require("ordering-components-admin-external");
13
+
14
+ var _reactBootstrapIcons = require("react-bootstrap-icons");
15
+
16
+ var _styles = require("../../../styles");
17
+
18
+ var _InfoShareContext = require("../../../contexts/InfoShareContext");
19
+
20
+ var _BusinessSelectHeader = require("../../Stores/BusinessSelectHeader");
21
+
22
+ var _moment = _interopRequireDefault(require("moment"));
23
+
24
+ var _reactBigCalendar = require("react-big-calendar");
25
+
26
+ require("react-big-calendar/lib/addons/dragAndDrop/styles.css");
27
+
28
+ require("react-big-calendar/lib/css/react-big-calendar.css");
29
+
30
+ var _CalendarHeader = require("./CalendarHeader");
31
+
32
+ var _EventComponent = require("./EventComponent");
33
+
34
+ var _OrderDetails = require("../OrderDetails");
35
+
36
+ var _Shared = require("../../Shared");
37
+
38
+ var _styles3 = require("./styles");
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
46
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
+
48
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+
50
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
51
+
52
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
53
+
54
+ 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."); }
55
+
56
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
57
+
58
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
59
+
60
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
61
+
62
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
63
+
64
+ var localizer = (0, _reactBigCalendar.momentLocalizer)(_moment.default);
65
+
66
+ var AppointmentsUI = function AppointmentsUI(props) {
67
+ var _configs$format_time;
68
+
69
+ var selectedBusiness = props.selectedBusiness,
70
+ setSelectedBusiness = props.setSelectedBusiness,
71
+ businessCalendarEvents = props.businessCalendarEvents;
72
+
73
+ var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
74
+ _useLanguage2 = _slicedToArray(_useLanguage, 2),
75
+ t = _useLanguage2[1];
76
+
77
+ var _useConfig = (0, _orderingComponentsAdminExternal.useConfig)(),
78
+ _useConfig2 = _slicedToArray(_useConfig, 1),
79
+ configs = _useConfig2[0].configs;
80
+
81
+ var _useInfoShare = (0, _InfoShareContext.useInfoShare)(),
82
+ _useInfoShare2 = _slicedToArray(_useInfoShare, 2),
83
+ isCollapse = _useInfoShare2[0].isCollapse,
84
+ handleMenuCollapse = _useInfoShare2[1].handleMenuCollapse;
85
+
86
+ var _useState = (0, _react.useState)(false),
87
+ _useState2 = _slicedToArray(_useState, 2),
88
+ showSelectHeader = _useState2[0],
89
+ setShowSelectHeader = _useState2[1];
90
+
91
+ var _useState3 = (0, _react.useState)(false),
92
+ _useState4 = _slicedToArray(_useState3, 2),
93
+ openDetails = _useState4[0],
94
+ setOpenDetails = _useState4[1];
95
+
96
+ var _useState5 = (0, _react.useState)(null),
97
+ _useState6 = _slicedToArray(_useState5, 2),
98
+ selectedAppointment = _useState6[0],
99
+ setSelectedAppointment = _useState6[1];
100
+
101
+ var changeBusinessState = function changeBusinessState(business) {
102
+ setShowSelectHeader(false);
103
+ setSelectedBusiness(business);
104
+ };
105
+
106
+ var handleOpenDetails = function handleOpenDetails(event) {
107
+ setOpenDetails(true);
108
+ setSelectedAppointment(event);
109
+ };
110
+
111
+ return /*#__PURE__*/_react.default.createElement(_styles3.Container, null, businessCalendarEvents.loading && /*#__PURE__*/_react.default.createElement(_styles3.SpinnerLoaderWrapper, null, /*#__PURE__*/_react.default.createElement(_Shared.SpinnerLoader, null)), /*#__PURE__*/_react.default.createElement(_styles3.Header, null, /*#__PURE__*/_react.default.createElement(_styles3.HeaderTitleContainer, null, isCollapse && /*#__PURE__*/_react.default.createElement(_styles.IconButton, {
112
+ color: "black",
113
+ onClick: function onClick() {
114
+ return handleMenuCollapse(false);
115
+ }
116
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.List, null)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h1", null, t('APPOINTMENT', 'Appointment')), /*#__PURE__*/_react.default.createElement(_styles3.BusinessSelectorWrapper, null, /*#__PURE__*/_react.default.createElement(_styles3.BusinessName, {
117
+ onClick: function onClick() {
118
+ return setShowSelectHeader(!showSelectHeader);
119
+ }
120
+ }, (selectedBusiness === null || selectedBusiness === void 0 ? void 0 : selectedBusiness.name) || t('SELECT_BUSINESS', 'Select a business')), showSelectHeader && /*#__PURE__*/_react.default.createElement(_BusinessSelectHeader.BusinessSelectHeader, {
121
+ close: function close() {
122
+ return setShowSelectHeader(false);
123
+ },
124
+ isOpen: showSelectHeader,
125
+ changeBusinessState: changeBusinessState
126
+ }), /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.ChevronRight, null), /*#__PURE__*/_react.default.createElement("span", {
127
+ className: "calendar"
128
+ }, t('CALENDAR', 'Calendar')))))), /*#__PURE__*/_react.default.createElement(_styles3.CalendarWrapper, null, /*#__PURE__*/_react.default.createElement(_reactBigCalendar.Calendar, {
129
+ localizer: localizer,
130
+ formats: {
131
+ timeGutterFormat: (configs === null || configs === void 0 ? void 0 : (_configs$format_time = configs.format_time) === null || _configs$format_time === void 0 ? void 0 : _configs$format_time.value) === '24' ? 'HH:mm' : 'HH:mm A'
132
+ },
133
+ defaultView: _reactBigCalendar.Views.MONTH,
134
+ events: businessCalendarEvents.result,
135
+ startAccessor: function startAccessor(event) {
136
+ return (0, _moment.default)(event.start, 'YYYY-MM-DD HH:mm:ss').toDate();
137
+ },
138
+ endAccessor: function endAccessor(event) {
139
+ return (0, _moment.default)(event.end, 'YYYY-MM-DD HH:mm:ss').toDate();
140
+ },
141
+ views: ['month', 'week', 'day'],
142
+ showMultiDayTimes: false,
143
+ messages: {
144
+ showMore: function showMore(total) {
145
+ return "+".concat(total, " ").concat(t('MORE', 'More'));
146
+ }
147
+ },
148
+ onSelectEvent: function onSelectEvent(event) {
149
+ return handleOpenDetails(event);
150
+ },
151
+ components: {
152
+ toolbar: _CalendarHeader.CalendarHeader,
153
+ event: _EventComponent.EventComponent
154
+ }
155
+ })), openDetails && /*#__PURE__*/_react.default.createElement(_OrderDetails.OrderDetails, {
156
+ isServiceOrder: true,
157
+ open: openDetails,
158
+ orderId: selectedAppointment === null || selectedAppointment === void 0 ? void 0 : selectedAppointment.order_id,
159
+ onClose: function onClose() {
160
+ setOpenDetails(false);
161
+ setSelectedAppointment(null);
162
+ }
163
+ }));
164
+ };
165
+
166
+ var Appointments = function Appointments(props) {
167
+ var appointmentsProps = _objectSpread(_objectSpread({}, props), {}, {
168
+ UIComponent: AppointmentsUI
169
+ });
170
+
171
+ return /*#__PURE__*/_react.default.createElement(_orderingComponentsAdminExternal.Appointments, appointmentsProps);
172
+ };
173
+
174
+ exports.Appointments = Appointments;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ViewButtonsWrapper = exports.SpinnerLoaderWrapper = exports.HeaderTitleContainer = exports.Header = exports.EventProfessionalPhoto = exports.EventContainer = exports.Container = exports.CalendarWrapper = exports.CalendarLabelContainer = exports.CalendarHeaderContainer = exports.BusinessSelectorWrapper = exports.BusinessName = void 0;
9
+
10
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
11
+
12
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
19
+
20
+ var Container = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex: 1;\n padding: 20px;\n box-sizing: border-box;\n transition: all 0.5s;\n max-height: 100vh;\n overflow: auto;\n display: flex;\n flex-direction: column;\n position: relative;\n"])));
21
+
22
+ exports.Container = Container;
23
+
24
+ var SpinnerLoaderWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: 100;\n\n > div {\n height: 100%;\n }\n"])));
25
+
26
+ exports.SpinnerLoaderWrapper = SpinnerLoaderWrapper;
27
+
28
+ var Header = _styledComponents.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n"])));
29
+
30
+ exports.Header = Header;
31
+
32
+ var HeaderTitleContainer = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n h1 {\n font-size: 20px;\n margin: 0px;\n line-height: 30px;\n font-weight: 700;\n }\n > button {\n ", "\n\n svg {\n width: 25px;\n height: 25px;\n }\n }\n"])), function (props) {
33
+ var _props$theme;
34
+
35
+ return (_props$theme = props.theme) !== null && _props$theme !== void 0 && _props$theme.rtl ? (0, _styledComponents.css)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-left: 8px;\n margin-right: -8px;\n "]))) : (0, _styledComponents.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n margin-right: 8px;\n margin-left: -8px;\n "])));
36
+ });
37
+
38
+ exports.HeaderTitleContainer = HeaderTitleContainer;
39
+
40
+ var BusinessName = _styledComponents.default.span(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n cursor: pointer;\n"])));
41
+
42
+ exports.BusinessName = BusinessName;
43
+
44
+ var BusinessSelectorWrapper = _styledComponents.default.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n position: relative;\n width: fit-content;\n margin: 3px 0;\n\n > span {\n font-size: 14px;\n color: ", ";\n &.calendar {\n color: ", ";\n }\n }\n\n > svg {\n margin: 0 10px;\n }\n"])), function (props) {
45
+ return props.theme.colors.secundaryLight;
46
+ }, function (props) {
47
+ return props.theme.colors.primary;
48
+ });
49
+
50
+ exports.BusinessSelectorWrapper = BusinessSelectorWrapper;
51
+
52
+ var CalendarWrapper = _styledComponents.default.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 1;\n padding-top: 20px;\n overflow: auto;\n\n .rbc-calendar {\n min-width: 728px;\n color: ", ";\n\n .rbc-header {\n padding: 7px 3px;\n span {\n font-size: 16px;\n font-weight: 600;\n color: ", ";\n }\n }\n\n .rbc-time-view {\n border-left: none;\n border-right: none;\n .rbc-allday-cell {\n display: none;\n }\n .rbc-time-content {\n border-width: 1px;\n }\n }\n .rbc-event {\n background-color: ", ";\n border: none;\n padding: 0;\n color: ", ";\n }\n .rbc-event-label {\n display: none;\n }\n .rbc-timeslot-group {\n min-height: 60px;\n }\n }\n"])), function (props) {
53
+ return props.theme.colors.lightGray;
54
+ }, function (props) {
55
+ return props.theme.colors.headingColor;
56
+ }, function (props) {
57
+ return props.theme.colors.backgroundPage;
58
+ }, function (props) {
59
+ return props.theme.colors.headingColor;
60
+ });
61
+
62
+ exports.CalendarWrapper = CalendarWrapper;
63
+
64
+ var CalendarHeaderContainer = _styledComponents.default.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 15px;\n"])));
65
+
66
+ exports.CalendarHeaderContainer = CalendarHeaderContainer;
67
+
68
+ var CalendarLabelContainer = _styledComponents.default.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n\n span.label {\n font-weight: 600;\n font-size: 16px;\n margin: 0 3px;\n color: ", ";\n }\n > button {\n > svg {\n width: 16px;\n height: 16px;\n }\n }\n"])), function (props) {
69
+ return props.theme.colors.headingColor;
70
+ });
71
+
72
+ exports.CalendarLabelContainer = CalendarLabelContainer;
73
+
74
+ var ViewButtonsWrapper = _styledComponents.default.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n button {\n margin: 0 3px;\n }\n"])));
75
+
76
+ exports.ViewButtonsWrapper = ViewButtonsWrapper;
77
+
78
+ var EventContainer = _styledComponents.default.div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n border: 1px solid ", ";\n padding: 2px 5px;\n border-radius: 8px;\n height: 100%;\n\n > div.info {\n width: calc(100% - 42px);\n p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n p.name {\n font-size: 12px;\n font-weight: 500;\n line-height: 18px;\n margin: 0;\n }\n p.date {\n font-size: 10px;\n line-height: 15px;\n color: ", ";\n margin: 0;\n }\n }\n"])), function (props) {
79
+ return props.theme.colors.gray;
80
+ }, function (props) {
81
+ return props.theme.colors.lightGray;
82
+ });
83
+
84
+ exports.EventContainer = EventContainer;
85
+
86
+ var EventProfessionalPhoto = _styledComponents.default.div(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n width: 32px;\n height: 32px;\n border-radius: 8px;\n box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n img {\n width: 100%;\n height: 100%;\n border-radius: 8px;\n object-fit: cover;\n }\n svg {\n width: 85%;\n height: 85%;\n }\n"])));
87
+
88
+ exports.EventProfessionalPhoto = EventProfessionalPhoto;
@@ -53,7 +53,8 @@ var OrderContactInformation = function OrderContactInformation(props) {
53
53
  var order = props.order,
54
54
  isTourOpen = props.isTourOpen,
55
55
  setCurrentTourStep = props.setCurrentTourStep,
56
- handleOpenMessages = props.handleOpenMessages;
56
+ handleOpenMessages = props.handleOpenMessages,
57
+ isServiceOrder = props.isServiceOrder;
57
58
 
58
59
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
59
60
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -136,7 +137,7 @@ var OrderContactInformation = function OrderContactInformation(props) {
136
137
  href: "http://maps.google.com/?q=".concat(order === null || order === void 0 ? void 0 : (_order$customer22 = order.customer) === null || _order$customer22 === void 0 ? void 0 : _order$customer22.address),
137
138
  rel: "noopener noreferrer",
138
139
  target: "_blank"
139
- }, order === null || order === void 0 ? void 0 : (_order$customer23 = order.customer) === null || _order$customer23 === void 0 ? void 0 : _order$customer23.address))), !!(order !== null && order !== void 0 && (_order$customer24 = order.customer) !== null && _order$customer24 !== void 0 && _order$customer24.internal_number) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('INTERNAL_NUMBER', 'Internal number')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : (_order$customer25 = order.customer) === null || _order$customer25 === void 0 ? void 0 : _order$customer25.internal_number)), !!(order !== null && order !== void 0 && (_order$customer26 = order.customer) !== null && _order$customer26 !== void 0 && _order$customer26.address_notes) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('NOTES', 'Notes')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : (_order$customer27 = order.customer) === null || _order$customer27 === void 0 ? void 0 : _order$customer27.address_notes)), !!(order !== null && order !== void 0 && (_order$customer28 = order.customer) !== null && _order$customer28 !== void 0 && _order$customer28.zipcode) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('ZIPCODE', 'Zipcode')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : (_order$customer29 = order.customer) === null || _order$customer29 === void 0 ? void 0 : _order$customer29.zipcode)), !!(order !== null && order !== void 0 && order.on_behalf_of) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('ON_BEHALF_OF', 'On behalf of')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : order.on_behalf_of))))))), (order === null || order === void 0 ? void 0 : order.delivery_type) === 1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styles2.DriverSelectorContainer, null, /*#__PURE__*/_react.default.createElement("p", null, t('DRIVER_ASSIGN', 'Driver assign')), /*#__PURE__*/_react.default.createElement(_DriverSelector.DriverSelector, {
140
+ }, order === null || order === void 0 ? void 0 : (_order$customer23 = order.customer) === null || _order$customer23 === void 0 ? void 0 : _order$customer23.address))), !!(order !== null && order !== void 0 && (_order$customer24 = order.customer) !== null && _order$customer24 !== void 0 && _order$customer24.internal_number) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('INTERNAL_NUMBER', 'Internal number')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : (_order$customer25 = order.customer) === null || _order$customer25 === void 0 ? void 0 : _order$customer25.internal_number)), !!(order !== null && order !== void 0 && (_order$customer26 = order.customer) !== null && _order$customer26 !== void 0 && _order$customer26.address_notes) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('NOTES', 'Notes')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : (_order$customer27 = order.customer) === null || _order$customer27 === void 0 ? void 0 : _order$customer27.address_notes)), !!(order !== null && order !== void 0 && (_order$customer28 = order.customer) !== null && _order$customer28 !== void 0 && _order$customer28.zipcode) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('ZIPCODE', 'Zipcode')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : (_order$customer29 = order.customer) === null || _order$customer29 === void 0 ? void 0 : _order$customer29.zipcode)), !!(order !== null && order !== void 0 && order.on_behalf_of) && /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, t('ON_BEHALF_OF', 'On behalf of')), /*#__PURE__*/_react.default.createElement("td", null, order === null || order === void 0 ? void 0 : order.on_behalf_of))))))), (order === null || order === void 0 ? void 0 : order.delivery_type) === 1 && !isServiceOrder && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styles2.DriverSelectorContainer, null, /*#__PURE__*/_react.default.createElement("p", null, t('DRIVER_ASSIGN', 'Driver assign')), /*#__PURE__*/_react.default.createElement(_DriverSelector.DriverSelector, {
140
141
  small: true,
141
142
  isPhoneView: true,
142
143
  defaultValue: order !== null && order !== void 0 && (_order$driver = order.driver) !== null && _order$driver !== void 0 && _order$driver.id ? order.driver.id : 'default',
@@ -79,7 +79,8 @@ var OrderDetailsUI = function OrderDetailsUI(props) {
79
79
  setIsTourFlag = props.setIsTourFlag,
80
80
  setIsTourOpen = props.setIsTourOpen,
81
81
  actionStatus = props.actionStatus,
82
- handleRefundOrder = props.handleRefundOrder;
82
+ handleRefundOrder = props.handleRefundOrder,
83
+ isServiceOrder = props.isServiceOrder;
83
84
 
84
85
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
85
86
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -540,6 +541,7 @@ var OrderDetailsUI = function OrderDetailsUI(props) {
540
541
  return handleChangeTour(e);
541
542
  }
542
543
  }, /*#__PURE__*/_react.default.createElement(_OrderDetailsHeader.OrderDetailsHeader, {
544
+ isServiceOrder: isServiceOrder,
543
545
  order: order,
544
546
  extraOpen: extraOpen,
545
547
  actionSidebar: actionSidebar,
@@ -567,6 +569,7 @@ var OrderDetailsUI = function OrderDetailsUI(props) {
567
569
  })), /*#__PURE__*/_react.default.createElement(_styles2.AdvancedLogistic, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, t('LOGISTIC', 'Logistic')), /*#__PURE__*/_react.default.createElement("p", null, getLogisticTag(order === null || order === void 0 ? void 0 : order.logistic_status))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, t('ATTEMPTS', 'Attempts')), /*#__PURE__*/_react.default.createElement("p", null, order === null || order === void 0 ? void 0 : order.logistic_attemps)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, t('PRIORITY', 'Priority')), /*#__PURE__*/_react.default.createElement("p", null, getPriorityTag(order === null || order === void 0 ? void 0 : order.priority)))), rejectResonStatuses.includes(order === null || order === void 0 ? void 0 : order.status) && (order === null || order === void 0 ? void 0 : order.reject_reason) && /*#__PURE__*/_react.default.createElement(_styles2.RejectReasonsContainer, null, /*#__PURE__*/_react.default.createElement("p", null, t('REJECT_REASONS', 'Reject reasons')), /*#__PURE__*/_react.default.createElement(_styles2.RejectReasonsList, null, /*#__PURE__*/_react.default.createElement(_styles2.RejectReasonWrapper, null, t("REJECT_REASON_".concat(order === null || order === void 0 ? void 0 : order.reject_reason.toUpperCase()), order === null || order === void 0 ? void 0 : order.reject_reason.replace(/_/g, ' '))))), /*#__PURE__*/_react.default.createElement("div", {
568
570
  "data-tour": "tour_driver"
569
571
  }, /*#__PURE__*/_react.default.createElement(_OrderContactInformation.OrderContactInformation, {
572
+ isServiceOrder: isServiceOrder,
570
573
  order: order,
571
574
  extraOpen: extraOpen,
572
575
  unreadAlert: unreadAlert,
@@ -45,7 +45,8 @@ var OrderDetailsHeader = function OrderDetailsHeader(props) {
45
45
  currentTourStep = props.currentTourStep,
46
46
  showOption = props.showOption,
47
47
  openMessage = props.openMessage,
48
- printRef = props.printRef;
48
+ printRef = props.printRef,
49
+ isServiceOrder = props.isServiceOrder;
49
50
 
50
51
  var _useLanguage = (0, _orderingComponentsAdminExternal.useLanguage)(),
51
52
  _useLanguage2 = _slicedToArray(_useLanguage, 2),
@@ -70,7 +71,7 @@ var OrderDetailsHeader = function OrderDetailsHeader(props) {
70
71
  if (isTourOpen && currentTourStep === 1) setIsTourOpen(false);
71
72
  };
72
73
 
73
- return /*#__PURE__*/_react.default.createElement(_styles2.OrderDetailsHeaderContainer, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h1", null, t('INVOICE_ORDER_NO', 'Order No'), " ", order === null || order === void 0 ? void 0 : order.id), /*#__PURE__*/_react.default.createElement(_styles2.ButtonGroup, null, (user === null || user === void 0 ? void 0 : user.level) !== 5 && /*#__PURE__*/_react.default.createElement(_styles.IconButton, {
74
+ return /*#__PURE__*/_react.default.createElement(_styles2.OrderDetailsHeaderContainer, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h1", null, isServiceOrder ? t('APPOINTMENT_NO', 'Appointment No.') : t('INVOICE_ORDER_NO', 'Order No'), " ", order === null || order === void 0 ? void 0 : order.id), /*#__PURE__*/_react.default.createElement(_styles2.ButtonGroup, null, (user === null || user === void 0 ? void 0 : user.level) !== 5 && /*#__PURE__*/_react.default.createElement(_styles.IconButton, {
74
75
  color: "black",
75
76
  active: openMessage === null || openMessage === void 0 ? void 0 : openMessage.chat,
76
77
  onClick: function onClick() {
@@ -119,7 +120,7 @@ var OrderDetailsHeader = function OrderDetailsHeader(props) {
119
120
  }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, order === null || order === void 0 ? void 0 : (_order$paymethod = order.paymethod) === null || _order$paymethod === void 0 ? void 0 : _order$paymethod.name), stripePaymethods.includes(order === null || order === void 0 ? void 0 : (_order$paymethod2 = order.paymethod) === null || _order$paymethod2 === void 0 ? void 0 : _order$paymethod2.gateway) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, " ("), /*#__PURE__*/_react.default.createElement(_styles2.StripeLink, {
120
121
  href: "https://dashboard.stripe.com/payments/".concat(order === null || order === void 0 ? void 0 : order.pay_data),
121
122
  target: "_blank"
122
- }, order === null || order === void 0 ? void 0 : order.pay_data), /*#__PURE__*/_react.default.createElement("span", null, ") "), /*#__PURE__*/_react.default.createElement("span", null, " (", order !== null && order !== void 0 && order.refund_data ? t('REFUNDED', 'Refunded') : t('MOBILE_SUCCESS', 'Success'), ") ")), /*#__PURE__*/_react.default.createElement(_EnDotSingle.default, null)), (order === null || order === void 0 ? void 0 : order.delivery_type) === 1 && /*#__PURE__*/_react.default.createElement("span", null, t('DELIVERY', 'Delivery')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 2 && /*#__PURE__*/_react.default.createElement("span", null, t('PICKUP', 'Pickup')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 3 && /*#__PURE__*/_react.default.createElement("span", null, t('EAT_IN', 'Eat in')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 4 && /*#__PURE__*/_react.default.createElement("span", null, t('CURBSIDE', 'Curbside')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 5 && /*#__PURE__*/_react.default.createElement("span", null, t('DRIVE_THRU', 'Drive thru'))));
123
+ }, order === null || order === void 0 ? void 0 : order.pay_data), /*#__PURE__*/_react.default.createElement("span", null, ") "), /*#__PURE__*/_react.default.createElement("span", null, " (", order !== null && order !== void 0 && order.refund_data ? t('REFUNDED', 'Refunded') : t('MOBILE_SUCCESS', 'Success'), ") ")), /*#__PURE__*/_react.default.createElement(_EnDotSingle.default, null)), !isServiceOrder && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (order === null || order === void 0 ? void 0 : order.delivery_type) === 1 && /*#__PURE__*/_react.default.createElement("span", null, t('DELIVERY', 'Delivery')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 2 && /*#__PURE__*/_react.default.createElement("span", null, t('PICKUP', 'Pickup')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 3 && /*#__PURE__*/_react.default.createElement("span", null, t('EAT_IN', 'Eat in')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 4 && /*#__PURE__*/_react.default.createElement("span", null, t('CURBSIDE', 'Curbside')), (order === null || order === void 0 ? void 0 : order.delivery_type) === 5 && /*#__PURE__*/_react.default.createElement("span", null, t('DRIVE_THRU', 'Drive thru')))));
123
124
  };
124
125
 
125
126
  exports.OrderDetailsHeader = OrderDetailsHeader;
@@ -17,7 +17,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
17
17
 
18
18
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
19
19
 
20
- var OrderDetailsHeaderContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n > div {\n display: flex;\n justify-content: space-between;\n flex-direction: column-reverse;\n h1 {\n width: 100%;\n font-size: 24px;\n margin: 0px;\n font-weight: 700;\n }\n > div {\n display: flex;\n width: 100%;\n justify-content: flex-end;\n margin-bottom: 20px;\n }\n }\n\n p {\n font-size: 14px;\n margin: 0px;\n padding: 5px 0;\n }\n\n @media (min-width: 768px) {\n > div {\n flex-direction: row;\n align-items: center;\n }\n > div {\n > div {\n margin-bottom: 0px;\n }\n }\n }\n"])));
20
+ var OrderDetailsHeaderContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n > div {\n display: flex;\n justify-content: space-between;\n flex-direction: column-reverse;\n h1 {\n width: 100%;\n font-size: 20px;\n margin: 0px;\n font-weight: 700;\n }\n > div {\n display: flex;\n width: 100%;\n justify-content: flex-end;\n margin-bottom: 20px;\n }\n }\n\n p {\n font-size: 14px;\n margin: 0px;\n padding: 5px 0;\n }\n\n @media (min-width: 768px) {\n > div {\n flex-direction: row;\n align-items: center;\n }\n > div {\n > div {\n margin-bottom: 0px;\n }\n }\n }\n"])));
21
21
 
22
22
  exports.OrderDetailsHeaderContainer = OrderDetailsHeaderContainer;
23
23
 
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "Appointments", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Appointments.Appointments;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "BusinessesSelector", {
7
13
  enumerable: true,
8
14
  get: function get() {
@@ -268,6 +274,8 @@ Object.defineProperty(exports, "WizardOrders", {
268
274
  }
269
275
  });
270
276
 
277
+ var _Appointments = require("./Appointments");
278
+
271
279
  var _DeliveriesManager = require("./DeliveriesManager");
272
280
 
273
281
  var _DriversManager = require("./DriversManager");
@@ -85,7 +85,12 @@ var SidebarMenu = function SidebarMenu(props) {
85
85
  id: 3,
86
86
  title: t('DRIVERS_DASHBOARD', 'Drivers Dashboard'),
87
87
  pageName: 'drivers'
88
- }];
88
+ } // {
89
+ // id: 4,
90
+ // title: t('APPOINTMENTS', 'Appointments'),
91
+ // pageName: 'appointments'
92
+ // }
93
+ ];
89
94
  var loyaltySubMenus = [{
90
95
  id: 1,
91
96
  title: t('REWARDS_PROGRAMS', 'Rewards programs'),
@@ -305,7 +310,7 @@ var SidebarMenu = function SidebarMenu(props) {
305
310
  handleGoToPage: handleGoToPage
306
311
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.HouseDoor, null), /*#__PURE__*/_react.default.createElement("span", null, t('HOME', 'Home')))), /*#__PURE__*/_react.default.createElement(_styles.MenuContainer, null, /*#__PURE__*/_react.default.createElement(ContextAwareToggle, {
307
312
  eventKey: "1",
308
- active: location.pathname === '/orders' || location.pathname === '/deliveries' || location.pathname === '/drivers'
313
+ active: location.pathname === '/orders' || location.pathname === '/deliveries' || location.pathname === '/drivers' || location.pathname === '/appointments'
309
314
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.ListCheck, null), /*#__PURE__*/_react.default.createElement("span", null, t('ORDERS', 'Orders'))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Collapse, {
310
315
  eventKey: "1"
311
316
  }, /*#__PURE__*/_react.default.createElement(_styles.MenuContent, null, ordersSubMenus.map(function (item) {
package/_modules/index.js CHANGED
@@ -147,6 +147,12 @@ Object.defineProperty(exports, "ApiKeysList", {
147
147
  return _Settings.ApiKeysList;
148
148
  }
149
149
  });
150
+ Object.defineProperty(exports, "Appointments", {
151
+ enumerable: true,
152
+ get: function get() {
153
+ return _Orders.Appointments;
154
+ }
155
+ });
150
156
  Object.defineProperty(exports, "AutoScroll", {
151
157
  enumerable: true,
152
158
  get: function get() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-admin-external",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Ordering UI Admin Components",
5
5
  "main": "./_modules/index.js",
6
6
  "exports": {
@@ -83,9 +83,10 @@
83
83
  "lodash": "^4.17.20",
84
84
  "moment": "^2.29.1",
85
85
  "moment-range": "^4.0.2",
86
- "ordering-components-admin-external": "1.1.0",
86
+ "ordering-components-admin-external": "1.2.0",
87
87
  "polished": "^3.6.7",
88
88
  "prop-types": "^15.7.2",
89
+ "react-big-calendar": "^1.4.2",
89
90
  "react-bootstrap": "^1.6.0",
90
91
  "react-bootstrap-icons": "^1.5.0",
91
92
  "react-chartjs-2": "^3.0.4",
@@ -73,7 +73,7 @@ export const AnalyticsProductCategories = (props) => {
73
73
  productCategoryList?.data.map((item, i) => (
74
74
  <ProductCategoryContent key={i}>
75
75
  <p>{item?.name}</p>
76
- <PercentContainer percent={item?.sales}>{item?.sales}%</PercentContainer>
76
+ <PercentContainer percent={item?.sales}>{item?.sales}</PercentContainer>
77
77
  </ProductCategoryContent>
78
78
  ))
79
79
  }
@@ -32,8 +32,8 @@ export const FreeProductsList = (props) => {
32
32
  key: 'store_app',
33
33
  type: 1,
34
34
  title: t('ORDERING_STORE_APP', 'Store App _version_').replace('_version_', '2.0'),
35
- short_description: t('STORE_APP_SHORT_DESCRIPTION', 'Allow your restaurants or business owners to receive their orders on your own white-labeled Orders Manager app.'),
36
- long_description: t('STORE_APP_LONG_DESCRIPTION', 'Allow your restaurants or business owners to receive their orders on your own white-labeled Orders Manager app.<br /><br />Use it Branded on your business at no cost.<br />All you need to do is use the Business Owners Credentials that you currently have on your Dashboard.'),
35
+ short_description: t('STORE_APP_FREE_SHORT_DESCRIPTION', 'Give your business owners or managers a tool to manage their whole businesses incoming orders on the go by installing a branded app on any mobile device they have.'),
36
+ long_description: t('STORE_APP_FREE_LONG_DESCRIPTION', 'Give your business owners or managers a tool to manage their whole businesses incoming orders on the go by installing a branded app on any mobile device they have.<br /><sub>This is a branded Ordering.co product; use it with your project, email, and password for free; features might be limited.</sub>'),
37
37
  icon: <CartPlusFill />,
38
38
  image: theme.images.apps.storeApp,
39
39
  app_store: 'https://apps.apple.com/us/app/store-app-2-0/id1608192050',
@@ -43,8 +43,8 @@ export const FreeProductsList = (props) => {
43
43
  key: 'driver_app',
44
44
  type: 1,
45
45
  title: t('ORDERING_DRIVER_APP', 'Driver App _version_').replace('_version_', '2.0'),
46
- short_description: t('DRIVER_APP_SHORT_DESCRIPTION', 'Use it Branded on your business at no cost.'),
47
- long_description: t('DRIVER_APP_LONG_DESCRIPTION', 'Use it Branded on your business at no cost.<br />All you need to do is use the Driver Credentials that you currently have on your Dashboard.'),
46
+ short_description: t('DRIVER_APP_FREE_SHORT_DESCRIPTION', 'Your fleet´s best companion gives drivers a tool to receive orders, follow optimal routes, add delivery evidence, set orders timing, and control their busy times.'),
47
+ long_description: t('DRIVER_APP_FREE_LONG_DESCRIPTION', 'Your fleet´s best companion gives drivers a tool to receive orders, follow optimal routes, add delivery evidence, set orders timing, and control their busy times.<br /><sub>This is a branded Ordering.co product; use it with your project, email, and password for free; features might be limited.</sub>'),
48
48
  icon: <img src={theme.images.icons.delivery} alt='delivery app icon' />,
49
49
  image: theme.images.apps.driverApp,
50
50
  app_store: 'https://apps.apple.com/us/app/driver-app-2-0/id1606257815',
@@ -54,8 +54,8 @@ export const FreeProductsList = (props) => {
54
54
  key: 'pos_app',
55
55
  type: 1,
56
56
  title: t('ORDERING_POS', 'POS _version_').replace('_version_', '2.0'),
57
- short_description: t('POS_APP_SHORT_DESCRIPTION', 'Create orders in your system without the hassle and auto-complete information.'),
58
- long_description: t('POS_APP_LONG_DESCRIPTION', 'POS Ordering System: Take orders on the phone easily<br />Create orders in your system without the hassle and auto-complete information.<br />Save customer info with their number'),
57
+ short_description: t('POS_APP_FREE_SHORT_DESCRIPTION', 'Create a loyal and returning community by offering the best customer experience; customer service is always the definite factor for users to keep returning; this fast software will help you understand customers, save their numbers, and order quickly.'),
58
+ long_description: t('POS_APP_FREE_LONG_DESCRIPTION', 'Create a loyal and returning community by offering the best customer experience; customer service is always the definite factor for users to keep returning; this fast software will help you understand customers, save their numbers, and order quickly.<br /><sub>This is a branded Ordering.co product; use it with your project, email, and password for free; features might be limited.</sub>'),
59
59
  icon: <img src={theme.images.icons.posTerminal} alt='pos app icon' />,
60
60
  image: theme.images.apps.posApp,
61
61
  app_store: 'https://apps.apple.com/us/app/ordering-pos-2-0/id1609520468',
@@ -65,8 +65,8 @@ export const FreeProductsList = (props) => {
65
65
  key: 'kiosk_app',
66
66
  type: 1,
67
67
  title: t('ORDERING_KIOSK', 'Ordering Kiosk _version_').replace('_version_', '2.0'),
68
- short_description: t('KIOSK_APP_SHORT_DESCRIPTION', 'Ordering Kiosk completes that final step for each sale'),
69
- long_description: t('KIOSK_APP_LONG_DESCRIPTION', 'Did you know that 7 out of 10 customers prefer to make their orders themselves?<br />Ordering Kiosk completes that final step for each sale.'),
68
+ short_description: t('KIOSK_APP_FREE_SHORT_DESCRIPTION', 'Simplify the ordering process inside your store. Allow your customers to select what they want to purchase products and pay directly in this kiosk—made with the highest tech, intuitive, and modern.'),
69
+ long_description: t('KIOSK_APP_FREE_LONG_DESCRIPTION', 'Simplify the ordering process inside your store. Allow your customers to select what they want to purchase products and pay directly in this kiosk—made with the highest tech, intuitive, and modern.<br /><sub>This is a branded Ordering.co product; use it with your project, email, and password for free; features might be limited.</sub>'),
70
70
  icon: <img src={theme.images.icons.poster} alt='kiosk app icon' />,
71
71
  image: theme.images.apps.kioskApp,
72
72
  app_store: 'https://apps.apple.com/us/app/ordering-kiosk-2-0/id1609314960',
@@ -76,8 +76,8 @@ export const FreeProductsList = (props) => {
76
76
  key: 'call_center',
77
77
  type: 2,
78
78
  title: t('ORDERING_CALL_CENTER', 'Call Center _version_').replace('_version_', '2.0'),
79
- short_description: t('CALL_CENTER_SHORT_DESCRIPTION', 'Improving your <b>Customer Experience</b> and your <b>Orders Management</b> team processes.<br />Seamlessly integrated with your Ordering Solution.'),
80
- long_description: t('CALL_CENTER_LONG_DESCRIPTION', 'Improving your <b>Customer Experience</b> and your <b>Orders Management</b> team processes.<br />Seamlessly integrated with your Ordering Solution.'),
79
+ short_description: t('CALL_CENTER_FREE_SHORT_DESCRIPTION', 'Take orders over the phone, too; agents will take orders over the phone and create the order for your customers in just a few minutes, using this friendly and intuitive software.'),
80
+ long_description: t('CALL_CENTER_FREE_LONG_DESCRIPTION', 'Take orders over the phone, too; agents will take orders over the phone and create the order for your customers in just a few minutes, using this friendly and intuitive software.<br /><sub>This is a branded Ordering.co product; use it with your project, email, and password for free; features might be limited.</sub>'),
81
81
  icon: <Headset />,
82
82
  image: theme.images.apps.callCenterApp,
83
83
  web_url: 'https://callcenter.tryordering.com/search'
@@ -33,8 +33,8 @@ export const PurchasedProductsList = (props) => {
33
33
  key: 'store_app',
34
34
  type: 1,
35
35
  title: t('ORDERING_STORE_APP', 'Store App _version_').replace('_version_', '2.0'),
36
- short_description: t('STORE_APP_SHORT_DESCRIPTION', 'Allow your restaurants or business owners to receive their orders on your own white-labeled Orders Manager app.'),
37
- long_description: t('STORE_APP_LONG_DESCRIPTION', 'Allow your restaurants or business owners to receive their orders on your own white-labeled Orders Manager app.<br /><br />Use it Branded on your business at no cost.<br />All you need to do is use the Business Owners Credentials that you currently have on your Dashboard.'),
36
+ short_description: t('STORE_APP_PURCHASE_SHORT_DESCRIPTION', 'Give your business owners or managers a tool to manage their whole business´s incoming orders on the go by installing a branded app on any mobile device they have.'),
37
+ long_description: t('STORE_APP_PURCHASE_LONG_DESCRIPTION', 'Give your business owners or managers a tool to manage their whole business´s incoming orders on the go by installing a branded app on any mobile device they have.<br /><sub>This App is delivered in less than 5 working days, fully branded with your guidelines.</sub>'),
38
38
  icon: <CartPlusFill />,
39
39
  image: theme.images.apps.storeApp,
40
40
  app_store: 'https://apps.tryordering.com/store/marketplace?category=306&product=1717',
@@ -44,8 +44,8 @@ export const PurchasedProductsList = (props) => {
44
44
  key: 'driver_app',
45
45
  type: 1,
46
46
  title: t('ORDERING_DRIVER_APP', 'Driver App _version_').replace('_version_', '2.0'),
47
- short_description: t('DRIVER_APP_SHORT_DESCRIPTION', 'Use it Branded on your business at no cost.'),
48
- long_description: t('DRIVER_APP_LONG_DESCRIPTION', 'Use it Branded on your business at no cost.<br />All you need to do is use the Driver Credentials that you currently have on your Dashboard.'),
47
+ short_description: t('DRIVER_APP_PURCHASE_SHORT_DESCRIPTION', 'Your fleets best companion gives drivers a tool to receive orders, follow optimal routes, add delivery evidence, set orders timing, and control their busy times.'),
48
+ long_description: t('DRIVER_APP_PURCHASE_LONG_DESCRIPTION', 'Your fleets best companion gives drivers a tool to receive orders, follow optimal routes, add delivery evidence, set orders timing, and control their busy times.<br /><sub>This App is delivered in less than 5 working days, fully branded with your guidelines.</sub>'),
49
49
  icon: <img src={theme.images.icons.delivery} alt='delivery app icon' />,
50
50
  image: theme.images.apps.driverApp,
51
51
  app_store: 'https://apps.tryordering.com/store/marketplace?category=306&product=1718',
@@ -55,8 +55,8 @@ export const PurchasedProductsList = (props) => {
55
55
  key: 'pos_app',
56
56
  type: 1,
57
57
  title: t('ORDERING_POS', 'POS _version_').replace('_version_', '2.0'),
58
- short_description: t('POS_APP_SHORT_DESCRIPTION', 'Create orders in your system without the hassle and auto-complete information.'),
59
- long_description: t('POS_APP_LONG_DESCRIPTION', 'POS Ordering System: Take orders on the phone easily<br />Create orders in your system without the hassle and auto-complete information.<br />Save customer info with their number'),
58
+ short_description: t('POS_APP_PURCHASE_SHORT_DESCRIPTION', 'Create a loyal and returning community by offering the best customer experience; customer service is always the definite factor for users to keep returning; this fast software will help you understand customers, save their numbers, and order quickly.'),
59
+ long_description: t('POS_APP_PURCHASE_LONG_DESCRIPTION', 'Create a loyal and returning community by offering the best customer experience; customer service is always the definite factor for users to keep returning; this fast software will help you understand customers, save their numbers, and order quickly.<br /><sub>This App is delivered in less than 5 working days, fully branded with your guidelines.</sub>'),
60
60
  icon: <img src={theme.images.icons.posTerminal} alt='pos app icon' />,
61
61
  image: theme.images.apps.posApp,
62
62
  app_store: 'https://apps.tryordering.com/store/marketplace?category=306&product=1793',
@@ -66,8 +66,8 @@ export const PurchasedProductsList = (props) => {
66
66
  key: 'kiosk_app',
67
67
  type: 1,
68
68
  title: t('ORDERING_KIOSK', 'Ordering Kiosk _version_').replace('_version_', '2.0'),
69
- short_description: t('KIOSK_APP_SHORT_DESCRIPTION', 'Ordering Kiosk completes that final step for each sale'),
70
- long_description: t('KIOSK_APP_LONG_DESCRIPTION', 'Did you know that 7 out of 10 customers prefer to make their orders themselves?<br />Ordering Kiosk completes that final step for each sale.'),
69
+ short_description: t('KIOSK_APP_PURCHASE_SHORT_DESCRIPTION', 'Simplify the ordering process inside your store. Allow your customers to select what they want to purchase products and pay directly in this kiosk—made with the highest tech, intuitive, and modern.'),
70
+ long_description: t('KIOSK_APP_PURCHASE_LONG_DESCRIPTION', 'Simplify the ordering process inside your store. Allow your customers to select what they want to purchase products and pay directly in this kiosk—made with the highest tech, intuitive, and modern.<br /><sub>This App is delivered in less than 5 working days, fully branded with your guidelines.</sub>'),
71
71
  icon: <img src={theme.images.icons.poster} alt='kiosk app icon' />,
72
72
  image: theme.images.apps.kioskApp,
73
73
  app_store: 'https://apps.tryordering.com/store/marketplace?category=306&product=1794',
@@ -77,8 +77,8 @@ export const PurchasedProductsList = (props) => {
77
77
  key: 'call_center',
78
78
  type: 2,
79
79
  title: t('ORDERING_CALL_CENTER', 'Call Center _version_').replace('_version_', '2.0'),
80
- short_description: t('CALL_CENTER_SHORT_DESCRIPTION', 'Improving your <b>Customer Experience</b> and your <b>Orders Management</b> team processes.<br />Seamlessly integrated with your Ordering Solution.'),
81
- long_description: t('CALL_CENTER_LONG_DESCRIPTION', 'Improving your <b>Customer Experience</b> and your <b>Orders Management</b> team processes.<br />Seamlessly integrated with your Ordering Solution.'),
80
+ short_description: t('CALL_CENTER_PURCHASE_SHORT_DESCRIPTION', 'Take orders over the phone, too; agents will take orders over the phone and create the order for your customers in just a few minutes, using this friendly and intuitive software.'),
81
+ long_description: t('CALL_CENTER_PURCHASE_LONG_DESCRIPTION', 'Take orders over the phone, too; agents will take orders over the phone and create the order for your customers in just a few minutes, using this friendly and intuitive software.<br /><sub>This App is delivered in less than 5 working days, fully branded with your guidelines.</sub>'),
82
82
  icon: <Headset />,
83
83
  image: theme.images.apps.callCenterApp,
84
84
  web_url: 'https://apps.tryordering.com/store/marketplace?category=306&product=1792'
@@ -117,7 +117,8 @@ export const EnterprisePromotionConditions = (props) => {
117
117
  <CheckboxWrapper
118
118
  className='condition-checkbox'
119
119
  active
120
- // onClick={() => handleChangeItem({ [condition.attribute]: null })}
120
+ isCursorAllowed
121
+ onClick={() => handleChangeItem({ [condition.attribute]: null })}
121
122
  >
122
123
  <Check2 />
123
124
  </CheckboxWrapper>