ordering-ui-external 1.3.2 → 1.4.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.
Files changed (133) hide show
  1. package/_bundles/0.ordering-ui.eec38d66166bc4458215.js +1 -0
  2. package/_bundles/{0.ordering-ui.8d3ec9f208550df10621.js → 1.ordering-ui.eec38d66166bc4458215.js} +1 -1
  3. package/_bundles/{1.ordering-ui.8d3ec9f208550df10621.js → 2.ordering-ui.eec38d66166bc4458215.js} +1 -1
  4. package/_bundles/{4.ordering-ui.8d3ec9f208550df10621.js → 4.ordering-ui.eec38d66166bc4458215.js} +1 -1
  5. package/_bundles/{5.ordering-ui.8d3ec9f208550df10621.js → 5.ordering-ui.eec38d66166bc4458215.js} +1 -1
  6. package/_bundles/{6.ordering-ui.8d3ec9f208550df10621.js → 6.ordering-ui.eec38d66166bc4458215.js} +1 -1
  7. package/_bundles/7.ordering-ui.eec38d66166bc4458215.js +2 -0
  8. package/_bundles/{7.ordering-ui.8d3ec9f208550df10621.js.LICENSE.txt → 7.ordering-ui.eec38d66166bc4458215.js.LICENSE.txt} +0 -0
  9. package/_bundles/{8.ordering-ui.8d3ec9f208550df10621.js → 8.ordering-ui.eec38d66166bc4458215.js} +1 -1
  10. package/_bundles/{9.ordering-ui.8d3ec9f208550df10621.js → 9.ordering-ui.eec38d66166bc4458215.js} +1 -1
  11. package/_bundles/ordering-ui.eec38d66166bc4458215.js +2 -0
  12. package/_bundles/{ordering-ui.8d3ec9f208550df10621.js.LICENSE.txt → ordering-ui.eec38d66166bc4458215.js.LICENSE.txt} +0 -0
  13. package/_modules/themes/five/index.js +7 -0
  14. package/_modules/themes/five/src/components/BusinessListingSearch/MaxSectionItem/index.js +47 -0
  15. package/_modules/themes/five/src/components/BusinessListingSearch/index.js +14 -29
  16. package/_modules/themes/five/src/components/BusinessProductsList/index.js +10 -6
  17. package/_modules/themes/five/src/components/BusinessProductsList/styles.js +8 -7
  18. package/_modules/themes/five/src/components/BusinessProductsListing/index.js +1 -1
  19. package/_modules/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/index.js +3 -3
  20. package/_modules/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/styles.js +4 -1
  21. package/_modules/themes/five/src/components/Cart/index.js +3 -1
  22. package/_modules/themes/five/src/components/Checkout/index.js +52 -39
  23. package/_modules/themes/five/src/components/Favorite/index.js +16 -2
  24. package/_modules/themes/five/src/components/FavoriteList/index.js +15 -1
  25. package/_modules/themes/five/src/components/Header/index.js +2 -2
  26. package/_modules/themes/five/src/components/Header/styles.js +5 -3
  27. package/_modules/themes/five/src/components/Modal/index.js +2 -2
  28. package/_modules/themes/five/src/components/Modal/styles.js +8 -4
  29. package/_modules/themes/five/src/components/MyOrders/index.js +9 -2
  30. package/_modules/themes/five/src/components/OrderDetails/ActionsSection.js +1 -0
  31. package/_modules/themes/five/src/components/OrdersOption/PreviousBusinessOrdered/index.js +10 -40
  32. package/_modules/themes/five/src/components/OrdersOption/PreviousProfessionalOrdered/index.js +25 -0
  33. package/_modules/themes/five/src/components/OrdersOption/PreviousProfessionalOrdered/styles.js +19 -0
  34. package/_modules/themes/five/src/components/OrdersOption/index.js +16 -13
  35. package/_modules/themes/five/src/components/ProductForm/index.js +5 -5
  36. package/_modules/themes/five/src/components/RenderProductsLayout/styles.js +1 -1
  37. package/_modules/themes/five/src/components/SidebarMenu/index.js +39 -17
  38. package/_modules/themes/five/src/components/SingleProductCard/styles.js +1 -1
  39. package/_modules/themes/five/src/components/SingleProfessionalCard/index.js +95 -0
  40. package/_modules/themes/five/src/components/SingleProfessionalCard/styles.js +47 -0
  41. package/_modules/themes/five/src/styles/Selects/index.js +1 -1
  42. package/index-template.js +28 -5
  43. package/package.json +6 -3
  44. package/src/themes/five/index.js +2 -0
  45. package/src/themes/five/src/components/BusinessListingSearch/MaxSectionItem/index.js +44 -0
  46. package/src/themes/five/src/components/BusinessListingSearch/index.js +8 -30
  47. package/src/themes/five/src/components/BusinessProductsList/index.js +29 -22
  48. package/src/themes/five/src/components/BusinessProductsList/styles.js +25 -2
  49. package/src/themes/five/src/components/BusinessProductsListing/index.js +1 -1
  50. package/src/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/index.js +4 -3
  51. package/src/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/styles.js +1 -1
  52. package/src/themes/five/src/components/Cart/index.js +2 -0
  53. package/src/themes/five/src/components/Checkout/index.js +22 -14
  54. package/src/themes/five/src/components/Favorite/index.js +19 -1
  55. package/src/themes/five/src/components/FavoriteList/index.js +24 -0
  56. package/src/themes/five/src/components/Header/index.js +11 -8
  57. package/src/themes/five/src/components/Header/styles.js +5 -0
  58. package/src/themes/five/src/components/Modal/index.js +9 -6
  59. package/src/themes/five/src/components/Modal/styles.js +15 -1
  60. package/src/themes/five/src/components/MyOrders/index.js +11 -1
  61. package/src/themes/five/src/components/OrderDetails/ActionsSection.js +1 -0
  62. package/src/themes/five/src/components/OrdersOption/PreviousBusinessOrdered/index.js +8 -29
  63. package/src/themes/five/src/components/OrdersOption/PreviousProfessionalOrdered/index.js +32 -0
  64. package/src/themes/five/src/components/OrdersOption/PreviousProfessionalOrdered/styles.js +38 -0
  65. package/src/themes/five/src/components/OrdersOption/index.js +18 -9
  66. package/src/themes/five/src/components/ProductForm/index.js +5 -5
  67. package/src/themes/five/src/components/RenderProductsLayout/styles.js +1 -1
  68. package/src/themes/five/src/components/SidebarMenu/index.js +98 -42
  69. package/src/themes/five/src/components/SingleProductCard/styles.js +5 -1
  70. package/src/themes/five/src/components/SingleProfessionalCard/index.js +82 -0
  71. package/src/themes/five/src/components/SingleProfessionalCard/styles.js +92 -0
  72. package/src/themes/five/src/styles/Selects/index.js +1 -0
  73. package/template/Utils/index.js +4 -0
  74. package/template/app.js +554 -143
  75. package/template/assets/images/business-hero.jpg +0 -0
  76. package/template/assets/images/business-signup-background.png +0 -0
  77. package/template/assets/images/business_signup.png +0 -0
  78. package/template/assets/images/congratulation_approval.png +0 -0
  79. package/template/assets/images/congratulation_no_approval.png +0 -0
  80. package/template/assets/images/credit.png +0 -0
  81. package/template/assets/images/delivery-types/curbside.jpg +0 -0
  82. package/template/assets/images/delivery-types/delivery.jpg +0 -0
  83. package/template/assets/images/delivery-types/drive_thru.jpg +0 -0
  84. package/template/assets/images/delivery-types/eat_in.jpg +0 -0
  85. package/template/assets/images/delivery-types/pickup.jpg +0 -0
  86. package/template/assets/images/driver-signup-background.png +0 -0
  87. package/template/assets/images/driver-signup-hero.png +0 -0
  88. package/template/assets/images/driver_congratulation_approval.png +0 -0
  89. package/template/assets/images/driver_congratulation_no_approval.png +0 -0
  90. package/template/assets/images/driver_signup.png +0 -0
  91. package/template/assets/images/home-hero.jpg +0 -0
  92. package/template/assets/images/loyalty_level.png +0 -0
  93. package/template/assets/images/mastercard.png +0 -0
  94. package/template/assets/images/not-found.svg +94 -1
  95. package/template/assets/images/not-network.svg +226 -1
  96. package/template/assets/images/visa.png +0 -0
  97. package/template/components/HelmetTags/index.js +5 -4
  98. package/template/components/ListenPageChanges/index.js +25 -12
  99. package/template/components/ScrollToTop/index.js +4 -0
  100. package/template/config.js +14 -0
  101. package/template/config.json +1 -0
  102. package/template/helmetdata.json +91 -28
  103. package/template/pages/AddressList/index.js +34 -0
  104. package/template/pages/AddressList/styles.js +43 -0
  105. package/template/pages/BusinessListingSearch/index.js +106 -0
  106. package/template/pages/BusinessProductsList/index.js +152 -29
  107. package/template/pages/BusinessesList/index.js +17 -6
  108. package/template/pages/Checkout/index.js +14 -4
  109. package/template/pages/Favorite/index.js +12 -0
  110. package/template/pages/Help/index.js +7 -2
  111. package/template/pages/Home/index.js +58 -36
  112. package/template/pages/Home/styles.js +14 -0
  113. package/template/pages/MessagesList/index.js +19 -0
  114. package/template/pages/MultiCheckout/index.js +26 -0
  115. package/template/pages/MultiOrdersDetails/index.js +21 -0
  116. package/template/pages/MyOrders/index.js +87 -3
  117. package/template/pages/OrderDetails/index.js +12 -2
  118. package/template/pages/Profile/index.js +16 -3
  119. package/template/pages/Promotions/index.js +13 -0
  120. package/template/pages/ResetPassword/index.js +15 -9
  121. package/template/pages/SessionsList/index.js +12 -0
  122. package/template/pages/SignUpBusiness/index.js +12 -0
  123. package/template/pages/SignUpDriver/index.js +12 -0
  124. package/template/pages/UserVerification/index.js +12 -0
  125. package/template/pages/Wallets/index.js +12 -0
  126. package/template/service-worker.js +72 -0
  127. package/template/theme.json +27 -51
  128. package/_bundles/3.ordering-ui.8d3ec9f208550df10621.js +0 -1
  129. package/_bundles/7.ordering-ui.8d3ec9f208550df10621.js +0 -2
  130. package/_bundles/ordering-ui.8d3ec9f208550df10621.js +0 -2
  131. package/template/assets/images/exclamation.svg +0 -3
  132. package/template/assets/images/order-creating.png +0 -0
  133. package/template/assets/images/order-sucess.png +0 -0
@@ -0,0 +1,95 @@
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
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.SingleProfessionalCard = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _reactBootstrapIcons = require("react-bootstrap-icons");
10
+ var _orderingComponentsExternal = require("ordering-components-external");
11
+ var _reactLoadingSkeleton = _interopRequireDefault(require("react-loading-skeleton"));
12
+ var _ProfessionalInfo = require("../ProfessionalInfo");
13
+ var _Modal = require("../Modal");
14
+ var _styles = require("./styles");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ 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); }
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ 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; }
21
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
22
+ 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."); }
23
+ 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); }
24
+ 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; }
25
+ 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; }
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+ var SingleProfessionalCardUI = function SingleProfessionalCardUI(props) {
28
+ var _professional$occupat, _professional$occupat2;
29
+ var professional = props.professional,
30
+ isSkeleton = props.isSkeleton,
31
+ handleFavoriteProfessional = props.handleFavoriteProfessional;
32
+ var _useSession = (0, _orderingComponentsExternal.useSession)(),
33
+ _useSession2 = _slicedToArray(_useSession, 1),
34
+ auth = _useSession2[0].auth;
35
+ var _useState = (0, _react.useState)(false),
36
+ _useState2 = _slicedToArray(_useState, 2),
37
+ open = _useState2[0],
38
+ setOpen = _useState2[1];
39
+ var handleChangeFavorite = function handleChangeFavorite() {
40
+ if (auth) {
41
+ handleFavoriteProfessional && handleFavoriteProfessional(!(professional !== null && professional !== void 0 && professional.favorite));
42
+ }
43
+ };
44
+ var handleOpenProfileInfo = function handleOpenProfileInfo() {
45
+ setOpen(true);
46
+ };
47
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styles.Container, null, isSkeleton ? /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
48
+ style: {
49
+ width: '86px',
50
+ height: '86px'
51
+ }
52
+ }) : /*#__PURE__*/_react.default.createElement(_styles.UserPhoto, {
53
+ bgimage: professional === null || professional === void 0 ? void 0 : professional.photo
54
+ }), /*#__PURE__*/_react.default.createElement(_styles.InfoWrapper, null, /*#__PURE__*/_react.default.createElement("h4", null, isSkeleton ? /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
55
+ height: 18,
56
+ width: 120
57
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, professional === null || professional === void 0 ? void 0 : professional.name, " ", professional === null || professional === void 0 ? void 0 : professional.last_name)), isSkeleton ? /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
58
+ height: 15,
59
+ width: 80
60
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (professional === null || professional === void 0 ? void 0 : (_professional$occupat = professional.occupation) === null || _professional$occupat === void 0 ? void 0 : _professional$occupat.name) && /*#__PURE__*/_react.default.createElement("p", null, professional === null || professional === void 0 ? void 0 : (_professional$occupat2 = professional.occupation) === null || _professional$occupat2 === void 0 ? void 0 : _professional$occupat2.name)), /*#__PURE__*/_react.default.createElement(_styles.ActionWrapper, null, isSkeleton ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
61
+ width: 16,
62
+ height: 16
63
+ }), /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, {
64
+ width: 16,
65
+ height: 16,
66
+ style: {
67
+ margin: '0px 7px'
68
+ }
69
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.InfoCircle, {
70
+ className: "info",
71
+ onClick: function onClick() {
72
+ return handleOpenProfileInfo();
73
+ }
74
+ }), /*#__PURE__*/_react.default.createElement("span", {
75
+ onClick: function onClick() {
76
+ return handleChangeFavorite();
77
+ }
78
+ }, professional !== null && professional !== void 0 && professional.favorite ? /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.HeartFill, null) : /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.Heart, null)))))), /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
79
+ open: open,
80
+ width: "760px",
81
+ padding: "0",
82
+ onClose: function onClose() {
83
+ return setOpen(false);
84
+ }
85
+ }, /*#__PURE__*/_react.default.createElement(_ProfessionalInfo.ProfessionalInfo, {
86
+ userId: professional === null || professional === void 0 ? void 0 : professional.id
87
+ })));
88
+ };
89
+ var SingleProfessionalCard = function SingleProfessionalCard(props) {
90
+ var singleProfessionalCardProps = _objectSpread(_objectSpread({}, props), {}, {
91
+ UIComponent: SingleProfessionalCardUI
92
+ });
93
+ return /*#__PURE__*/_react.default.createElement(_orderingComponentsExternal.SingleProfessionalCard, singleProfessionalCardProps);
94
+ };
95
+ exports.SingleProfessionalCard = SingleProfessionalCard;
@@ -0,0 +1,47 @@
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
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.UserPhoto = exports.InfoWrapper = exports.Container = exports.ActionWrapper = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ 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); }
13
+ 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; }
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
16
+ var Container = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n padding: 12px 14px;\n display: flex;\n align-items: center;\n background-color: ", ";\n border: 1px solid ", ";\n box-sizing: border-box;\n margin: 10px;\n"])), function (props) {
17
+ return props.theme.colors.backgroundPage;
18
+ }, function (props) {
19
+ return props.theme.colors.gray200;
20
+ });
21
+ exports.Container = Container;
22
+ var UserPhotoStyled = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n box-sizing: border-box;\n position: relative;\n background-repeat: no-repeat, repeat;\n background-size: cover;\n background-position: center;\n object-fit: cover;\n min-height: 86px;\n width: 86px;\n height: 86px;\n border-radius: 4px;\n\n ", "\n"])), function (_ref) {
23
+ var isSkeleton = _ref.isSkeleton;
24
+ return isSkeleton && (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), function (props) {
25
+ return props.theme.colors.gray200;
26
+ });
27
+ });
28
+ var UserPhoto = function UserPhoto(props) {
29
+ var style = {};
30
+ if (props.bgimage) {
31
+ style.backgroundImage = "url(".concat(props.bgimage, ")");
32
+ }
33
+ return /*#__PURE__*/_react.default.createElement(UserPhotoStyled, _extends({}, props, {
34
+ style: style
35
+ }), props.children);
36
+ };
37
+ exports.UserPhoto = UserPhoto;
38
+ var InfoWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: calc(100% - 106px);\n margin-left: 20px;\n ", "\n > h4 {\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n margin: 0px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n p {\n margin-top: 2px;\n font-weight: 400;\n font-size: 12px;\n line-height: 22px;\n }\n"])), function (props) {
39
+ return props.theme.rtl && (0, _styledComponents.css)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-left: 0px;\n margin-right: 20px;\n "])));
40
+ });
41
+ exports.InfoWrapper = InfoWrapper;
42
+ var ActionWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n margin-top: 15px;\n display: flex;\n align-items: center;\n > .info {\n cursor: pointer;\n font-size: 16px;\n margin-right: 7px;\n ", "\n }\n > span {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n svg {\n color: ", ";\n font-size: 16px;\n margin-top: 2px;\n }\n }\n"])), function (props) {
43
+ return props.theme.rtl && (0, _styledComponents.css)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin-right: 0px;\n margin-left: 7px;\n "])));
44
+ }, function (props) {
45
+ return props.theme.colors.danger500;
46
+ });
47
+ exports.ActionWrapper = ActionWrapper;
@@ -21,7 +21,7 @@ var Option = _styledComponents.default.div(_templateObject || (_templateObject =
21
21
  });
22
22
  });
23
23
  exports.Option = Option;
24
- var Options = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n background-color: #CCC;\n margin-top: 7px;\n z-index: 10000;\n border-width: 1px;\n border-style: solid;\n border-color: #CCC;\n border-radius: 15px;\n overflow: hidden;\n ", "\n ", "\n"])), function (_ref2) {
24
+ var Options = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n background-color: #CCC;\n margin-top: 7px;\n z-index: 10000;\n border-width: 1px;\n border-style: solid;\n border-color: #CCC;\n border-radius: 15px;\n overflow: hidden;\n\n ", "\n ", "\n"])), function (_ref2) {
25
25
  var position = _ref2.position;
26
26
  return (position === null || position === void 0 ? void 0 : position.toLowerCase()) === 'left' && (0, _styledComponents.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n left: 0;\n margin-left: -1px;\n ", "\n "])), function (props) {
27
27
  var _props$theme2;
package/index-template.js CHANGED
@@ -20,6 +20,7 @@ import isotype from './template/assets/images/isotype.svg'
20
20
  import isotypeInvert from './template/assets/images/isotype-invert.svg'
21
21
 
22
22
  import homeHero from './template/assets/images/home-hero.jpg'
23
+ import businessHero from './template/assets/images/business-hero.jpg'
23
24
  import notFound from './template/assets/images/not-found.svg'
24
25
  import notNetwork from './template/assets/images/not-network.svg'
25
26
  import notFound404 from './template/assets/images/not-found-404.svg'
@@ -27,8 +28,12 @@ import notFoundLighting from './template/assets/images/not-found-lighting.svg'
27
28
  import searchIcon from './template/assets/images/search-icon.svg'
28
29
  import emptyActiveOrders from './template/assets/images/empty-active-orders.svg'
29
30
  import emptyPastOrders from './template/assets/images/empty-past-orders.svg'
30
- import creatingOrder from './template/assets/images/order-creating.png'
31
- import successOrder from './template/assets/images/order-sucess.png'
31
+ import visa from './template/assets/images/visa.png'
32
+ import mastercard from './template/assets/images/mastercard.png'
33
+ import credit from './template/assets/images/credit.png'
34
+ import businessSignUpHero from './template/assets/images/business_signup.png'
35
+ import driverSignUpHero from './template/assets/images/driver-signup-hero.png'
36
+ import loyaltyLevel from './template/assets/images/loyalty_level.png'
32
37
 
33
38
  import orderStatus0 from './template/assets/images/order/status-0.svg'
34
39
  import orderStatus1 from './template/assets/images/order/status-1.svg'
@@ -65,6 +70,12 @@ import storeDummy from './template/assets/images/dummies/store.png'
65
70
  import leftArrow from './template/assets/left-arrow.svg'
66
71
  import rightArrow from './template/assets/right-arrow.svg'
67
72
 
73
+ import delivery from './template/assets/images/delivery-types/delivery.jpg'
74
+ import curbside from './template/assets/images/delivery-types/curbside.jpg'
75
+ import driveThru from './template/assets/images/delivery-types/drive_thru.jpg'
76
+ import eatIn from './template/assets/images/delivery-types/eat_in.jpg'
77
+ import pickUp from './template/assets/images/delivery-types/pickup.jpg'
78
+
68
79
  Sentry.init({
69
80
  environment: process.env.NODE_ENV,
70
81
  dsn: "https://28d1f7ef8d764235902101e569102521@o460529.ingest.sentry.io/6302953",
@@ -97,6 +108,7 @@ theme.images = {
97
108
  logos,
98
109
  general: {
99
110
  homeHero,
111
+ businessHero,
100
112
  notFound,
101
113
  notFound404,
102
114
  notFoundLighting,
@@ -104,8 +116,11 @@ theme.images = {
104
116
  notNetwork,
105
117
  emptyActiveOrders,
106
118
  emptyPastOrders,
107
- creatingOrder,
108
- successOrder,
119
+ visa,
120
+ mastercard,
121
+ credit,
122
+ businessSignUpHero,
123
+ driverSignUpHero,
109
124
  leftArrow,
110
125
  rightArrow
111
126
  },
@@ -145,7 +160,15 @@ theme.images = {
145
160
  product: productDummy,
146
161
  driverPhoto: 'https://res.cloudinary.com/demo/image/fetch/c_thumb,g_face,r_max/https://www.freeiconspng.com/thumbs/driver-icon/driver-icon-14.png',
147
162
  businessLogo: storeDummy,
148
- customerPhoto: 'https://res.cloudinary.com/demo/image/upload/c_thumb,g_face,r_max/d_avatar.png/non_existing_id.png'
163
+ customerPhoto: 'https://res.cloudinary.com/demo/image/upload/c_thumb,g_face,r_max/d_avatar.png/non_existing_id.png',
164
+ loyaltyLevel
165
+ },
166
+ deliveryTypes: {
167
+ delivery: delivery,
168
+ curbside: curbside,
169
+ driveThru: driveThru,
170
+ eatIn: eatIn,
171
+ pickUp: pickUp
149
172
  }
150
173
  }
151
174
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-external",
3
- "version": "1.3.2",
3
+ "version": "1.4.1",
4
4
  "description": "Ordering UI Components",
5
5
  "main": "./_modules/index.js",
6
6
  "exports": {
@@ -67,7 +67,9 @@
67
67
  "url-loader": "^4.1.1",
68
68
  "webpack": "^4.43.0",
69
69
  "webpack-cli": "^3.3.12",
70
- "webpack-dev-server": "^3.11.0"
70
+ "webpack-dev-server": "^3.11.0",
71
+ "webpack-merge": "^5.2.0",
72
+ "workbox-webpack-plugin": "^6.5.3"
71
73
  },
72
74
  "dependencies": {
73
75
  "@babel/runtime": "^7.10.4",
@@ -83,13 +85,14 @@
83
85
  "libphonenumber-js": "^1.9.4",
84
86
  "lodash": "^4.17.19",
85
87
  "moment": "^2.29.4",
86
- "ordering-components-external": "1.2.1",
88
+ "ordering-components-external": "1.3.0",
87
89
  "polished": "^3.6.6",
88
90
  "react-bootstrap-icons": "^1.7.2",
89
91
  "react-calendar": "^3.3.1",
90
92
  "react-datepicker": "^4.1.1",
91
93
  "react-helmet": "^6.1.0",
92
94
  "react-hook-form": "^6.8.1",
95
+ "react-ios-pwa-prompt": "^1.8.4",
93
96
  "react-linkify": "^1.0.0-alpha",
94
97
  "react-loading-skeleton": "^2.1.1",
95
98
  "react-otp-input": "^2.3.0",
@@ -84,6 +84,7 @@ import { SignUpBusiness } from './src/components/SignUpBusiness'
84
84
  import { SignUpDriver } from './src/components/SignUpDriver'
85
85
  import { SignUpApproval } from './src/components/SignUpApproval'
86
86
  import { SingleProductCard } from './src/components/SingleProductCard'
87
+ import { SingleProfessionalCard } from './src/components/SingleProfessionalCard'
87
88
  import { StripeElementsForm } from './src/components/StripeElementsForm'
88
89
  import { StripeRedirectForm } from './src/components/StripeRedirectForm'
89
90
  import { UpsellingPage } from './src/components/UpsellingPage'
@@ -199,6 +200,7 @@ export {
199
200
  SignUpDriver,
200
201
  SignUpApproval,
201
202
  SingleProductCard,
203
+ SingleProfessionalCard,
202
204
  StripeElementsForm,
203
205
  StripeRedirectForm,
204
206
  UpsellingPage,
@@ -0,0 +1,44 @@
1
+ import { useLanguage, useUtils } from 'ordering-components-external'
2
+ import React from 'react'
3
+ import { MaxFilterContainer, MaxItem, MaxItemContainer, ProgressBar, ProgressContentWrapper } from '../styles'
4
+
5
+ export const MaxSectionItem = (props) => {
6
+ const {
7
+ filters,
8
+ handleChangeFilters,
9
+ title,
10
+ options,
11
+ filter
12
+ } = props
13
+
14
+ const [, t] = useLanguage()
15
+ const [{ parsePrice }] = useUtils()
16
+
17
+ const parseValue = (option) => {
18
+ return filter === 'max_distance'
19
+ ? `${option / 1000} ${t('KM', 'Km')}`
20
+ : filter === 'max_eta'
21
+ ? `${option} ${t('MIN', 'min')}`
22
+ : parsePrice(option)
23
+ }
24
+
25
+ return (
26
+ <MaxFilterContainer>
27
+ <h3>{title}</h3>
28
+ <ProgressContentWrapper>
29
+ <ProgressBar style={{ width: `${((options.indexOf(filters?.[filter]) / 3) * 100) ?? 100}%` }} />
30
+ </ProgressContentWrapper>
31
+ <MaxItemContainer>
32
+ {options.map((option, i) => (
33
+ <MaxItem
34
+ key={option}
35
+ active={filters?.[filter] === option || (option === 'default' && (filters?.[filter] === 'default' || !filters?.[filter]))}
36
+ onClick={() => handleChangeFilters(filter, option)}
37
+ >
38
+ {option === 'default' ? `${parseValue(options[i - 1])}+` : parseValue(option)}
39
+ </MaxItem>
40
+ ))}
41
+ </MaxItemContainer>
42
+ </MaxFilterContainer>
43
+ )
44
+ }
@@ -53,6 +53,7 @@ import BisDownArrow from '@meronex/icons/bi/BisDownArrow'
53
53
  import BisUpArrow from '@meronex/icons/bi/BisUpArrow'
54
54
  import { Modal } from '../Modal'
55
55
  import { ProductForm } from '../ProductForm'
56
+ import { MaxSectionItem } from './MaxSectionItem'
56
57
 
57
58
  export const BusinessListingSearchUI = (props) => {
58
59
  const {
@@ -123,35 +124,6 @@ export const BusinessListingSearchUI = (props) => {
123
124
  setCurProduct({ business: null, product: null })
124
125
  }
125
126
 
126
- const MaxSectionItem = ({ title, options, filter }) => {
127
- const parseValue = (option) => {
128
- return filter === 'max_distance'
129
- ? `${option / 1000} ${t('KM', 'Km')}`
130
- : filter === 'max_eta'
131
- ? `${option} ${t('MIN', 'min')}`
132
- : parsePrice(option)
133
- }
134
- return (
135
- <MaxFilterContainer>
136
- <h3>{title}</h3>
137
- <ProgressContentWrapper>
138
- <ProgressBar style={{ width: `${((options.indexOf(filters?.[filter]) / 3) * 100) ?? 100}%` }} />
139
- </ProgressContentWrapper>
140
- <MaxItemContainer>
141
- {options.map((option, i) => (
142
- <MaxItem
143
- key={option}
144
- active={filters?.[filter] === option || (option === 'default' && (filters?.[filter] === 'default' || !filters?.[filter]))}
145
- onClick={() => handleChangeFilters(filter, option)}
146
- >
147
- {option === 'default' ? `${parseValue(options[i - 1])}+` : parseValue(option)}
148
- </MaxItem>
149
- ))}
150
- </MaxItemContainer>
151
- </MaxFilterContainer>
152
- )
153
- }
154
-
155
127
  return (
156
128
  <BusinessListingSearchContainer>
157
129
  <BusinessesTitle>
@@ -226,6 +198,8 @@ export const BusinessListingSearchUI = (props) => {
226
198
  title={t('MAX_DELIVERY_FEE', 'Max delivery fee')}
227
199
  options={maxDeliveryFeeOptions}
228
200
  filter='max_delivery_price'
201
+ filters={filters}
202
+ handleChangeFilters={handleChangeFilters}
229
203
  />
230
204
  )}
231
205
  {[1, 2].includes(orderState?.options?.type) && (
@@ -233,12 +207,16 @@ export const BusinessListingSearchUI = (props) => {
233
207
  title={orderState?.options?.type === 1 ? t('MAX_DELIVERY_TIME', 'Max delivery time') : t('MAX_PICKUP_TIME', 'Max pickup time')}
234
208
  options={maxTimeOptions}
235
209
  filter='max_eta'
210
+ filters={filters}
211
+ handleChangeFilters={handleChangeFilters}
236
212
  />
237
213
  )}
238
214
  <MaxSectionItem
239
215
  title={t('MAX_DISTANCE', 'Max distance')}
240
216
  options={maxDistanceOptions}
241
217
  filter='max_distance'
218
+ filters={filters}
219
+ handleChangeFilters={handleChangeFilters}
242
220
  />
243
221
  {/* <MaxSectionItem
244
222
  title={t('MAX_PRODUCT_PRICE', 'Max product price')}
@@ -255,7 +233,7 @@ export const BusinessListingSearchUI = (props) => {
255
233
  </TagsContainer>
256
234
  </Filters>
257
235
  <FiltersResultContainer>
258
- {auth && (
236
+ {auth && termValue?.length === 0 && (
259
237
  <PreviouslyOrderedContainer>
260
238
  <MyOrders
261
239
  hideOrders
@@ -5,6 +5,8 @@ import { SingleProductCard } from '../SingleProductCard'
5
5
  import { NotFoundSource } from '../NotFoundSource'
6
6
  import { Modal } from '../Modal'
7
7
  import { shape } from '../../../../../utils'
8
+ import { AutoScroll } from '../AutoScroll'
9
+ import { XLg as Close } from 'react-bootstrap-icons'
8
10
 
9
11
  import {
10
12
  ProductsContainer,
@@ -19,7 +21,8 @@ import {
19
21
  ContainerButton,
20
22
  CategoryDescription,
21
23
  DescriptionContainer,
22
- SubcategorySearchContainer
24
+ SubcategorySearchContainer,
25
+ SubCategoriesInnerContainer
23
26
  } from './styles'
24
27
  import { Button } from '../../styles/Buttons'
25
28
 
@@ -74,33 +77,37 @@ const BusinessProductsListUI = (props) => {
74
77
 
75
78
  return (
76
79
  <SubCategoriesContainer>
77
- <ContainerButton
78
- isSelected={allsubcategorySelected}
79
- >
80
- <Button
81
- onClick={() => onClickSubcategory(null, category)}
82
- color={allsubcategorySelected ? 'primary' : 'secondary'}
83
- >
84
- {t('ALL', 'All')} {allsubcategorySelected && 'X'}
85
- </Button>
86
- </ContainerButton>
87
- {category?.subcategories?.map(subcategory => {
88
- const isSubcategorySelected = subcategoriesSelected?.find(_subcategory => _subcategory?.id === subcategory?.id)
89
- return (
80
+ <SubCategoriesInnerContainer>
81
+ <AutoScroll scrollId={`scroll_${category?.id}`}>
90
82
  <ContainerButton
91
- key={subcategory?.id}
92
- isSelected={isSubcategorySelected}
83
+ isSelected={allsubcategorySelected}
93
84
  >
94
85
  <Button
95
- onClick={() => onClickSubcategory(subcategory, category)}
96
- color={isSubcategorySelected ? 'primary' : 'secondary'}
86
+ onClick={() => onClickSubcategory(null, category)}
87
+ color={allsubcategorySelected ? 'primary' : 'lightGray'}
97
88
  >
98
- {subcategory?.name} {isSubcategorySelected && 'X'}
89
+ {t('ALL', 'All')} {allsubcategorySelected && <Close />}
99
90
  </Button>
100
91
  </ContainerButton>
101
- )
102
- }
103
- )}
92
+ {category?.subcategories?.map(subcategory => {
93
+ const isSubcategorySelected = subcategoriesSelected?.find(_subcategory => _subcategory?.id === subcategory?.id)
94
+ return (
95
+ <ContainerButton
96
+ key={subcategory?.id}
97
+ isSelected={isSubcategorySelected}
98
+ >
99
+ <Button
100
+ onClick={() => onClickSubcategory(subcategory, category)}
101
+ color={isSubcategorySelected ? 'primary' : 'lightGray'}
102
+ >
103
+ {subcategory?.name} {isSubcategorySelected && <Close />}
104
+ </Button>
105
+ </ContainerButton>
106
+ )
107
+ }
108
+ )}
109
+ </AutoScroll>
110
+ </SubCategoriesInnerContainer>
104
111
  </SubCategoriesContainer>
105
112
  )
106
113
  }
@@ -162,16 +162,39 @@ export const RibbonBox = styled.div`
162
162
  `
163
163
 
164
164
  export const SubCategoriesContainer = styled.div`
165
+ overflow: auto hidden;
166
+ margin-top: 10px;
167
+ width: 100%;
168
+ ::-webkit-scrollbar {
169
+ opacity: 0;
170
+ }
171
+ @media (min-width: 993px) {
172
+ width: calc(100% - 30px);
173
+ }
174
+ `
175
+
176
+ export const SubCategoriesInnerContainer = styled.div`
165
177
  display: flex;
166
178
  `
167
179
 
168
180
  export const ContainerButton = styled.div`
169
181
  button {
182
+ white-space: nowrap;
183
+ font-size: 14px;
184
+ display: flex;
185
+ align-items: center;
170
186
  overflow: hidden;
171
187
  margin-right: 10px;
172
- margin-top: 10px;
173
188
  border-radius: 50px;
174
- color: ${({ isSelected }) => isSelected ? '#fff' : '#414954'};
189
+
190
+ svg {
191
+ margin-left: 5px;
192
+ font-size: 13px;
193
+ ${props => props.theme.rtl && css`
194
+ margin-right: 5px;
195
+ margin-left: 0px;
196
+ `}
197
+ }
175
198
  }
176
199
  `
177
200
 
@@ -347,7 +347,7 @@ const BusinessProductsListingUI = (props) => {
347
347
  disabled={openUpselling || !currentCart?.valid_maximum || (!currentCart?.valid_minimum && !(currentCart?.discount_type === 1 && currentCart?.discount_rate === 100))}
348
348
  />
349
349
  )}
350
- {windowSize.width < 1000 && currentCart?.products?.length > 0 && (
350
+ {(windowSize.width < 1000 || windowSize.height < 600) && currentCart?.products?.length > 0 && (
351
351
  <MobileCartViewWrapper>
352
352
  <span>{parsePrice(currentCart?.total)}</span>
353
353
  <Button color='primary' onClick={() => setisCartModal(true)}>{t('VIEW_CART', 'View cart')}</Button>
@@ -9,7 +9,6 @@ import {
9
9
  useSession,
10
10
  useLanguage,
11
11
  useConfig,
12
- useOrderingTheme,
13
12
  BusinessList as BusinessListController
14
13
  } from 'ordering-components-external'
15
14
 
@@ -76,7 +75,6 @@ const BusinessesListingUI = (props) => {
76
75
  const [orderState, { changeCityFilter }] = useOrder()
77
76
  const [{ auth }] = useSession()
78
77
  const [{ configs }] = useConfig()
79
- const orderingTheme = useOrderingTheme()
80
78
  const theme = useTheme()
81
79
  const [modals, setModals] = useState({ listOpen: false, formOpen: false, citiesOpen: false })
82
80
  const [alertState, setAlertState] = useState({ open: false, content: [] })
@@ -250,7 +248,10 @@ const BusinessesListingUI = (props) => {
250
248
  {props.beforeComponents?.map((BeforeComponent, i) => (
251
249
  <BeforeComponent key={i} {...props} />))}
252
250
  <BusinessContainer>
253
- <BusinessHeroImg bgimage={theme.images?.general?.businessHero} />
251
+ <BusinessHeroImg
252
+ bgimage={theme.images?.general?.businessHero}
253
+ height={theme?.business_listing_view?.components?.business_hero?.style?.height}
254
+ />
254
255
  <OrderProgressWrapper>
255
256
  <OrderProgress
256
257
  franchiseId={props.franchiseId}
@@ -98,7 +98,7 @@ export const BusinessHeroImgStyled = styled.div`
98
98
  height: 370px;
99
99
  }
100
100
  @media (min-width: 821px) {
101
- height: 650px;
101
+ height: ${({ height }) => height || '650px'};
102
102
  }
103
103
  `
104
104
 
@@ -617,9 +617,11 @@ const CartUI = (props) => {
617
617
  onClose={() => setOpenChangeStore(false)}
618
618
  >
619
619
  <CartStoresListing
620
+ isStore={isStore}
620
621
  pageChangeStore='business'
621
622
  cartuuid={cart?.uuid}
622
623
  onClose={() => setOpenChangeStore(false)}
624
+ handleCustomStoreRedirect={handleStoreRedirect}
623
625
  />
624
626
  </Modal>
625
627