@bonlineza/luxity-lib 2.28.0 → 2.29.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.
package/Interests.js CHANGED
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('styled-components'), require('react-notify-toast'), require('@bonlineza/b-lib/EllipsisLoader'), require('@bonlineza/b-lib/PageReady'), require('stylis-rule-sheet'), require('react-dom'), require('prop-types'), require('raf'), require('react-input-autosize'), require('react-transition-group'), require('react-animate-height'), require('numeral'), require('@bonlineza/b-lib/functions'), require('rc-slider')) :
3
- typeof define === 'function' && define.amd ? define(['react', 'styled-components', 'react-notify-toast', '@bonlineza/b-lib/EllipsisLoader', '@bonlineza/b-lib/PageReady', 'stylis-rule-sheet', 'react-dom', 'prop-types', 'raf', 'react-input-autosize', 'react-transition-group', 'react-animate-height', 'numeral', '@bonlineza/b-lib/functions', 'rc-slider'], factory) :
4
- (global = global || self, global.Interests = factory(global.React, global.styled, global['react-notify-toast'], global.EllipsisLoader, global.PageReady, global['stylis-rule-sheet'], global.reactDom, global.PropTypes, global.raf, global['react-input-autosize'], global['react-transition-group'], global.AnimateHeight, global.numeral, global.function, global.rcSlider));
5
- }(this, (function (React, styled, Notifications, EllipsisLoader, PageReady, stylisRuleSheet, reactDom, PropTypes, raf, AutosizeInput, reactTransitionGroup, AnimateHeight, numeral, functions, rcSlider) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('styled-components'), require('react-notify-toast'), require('@bonlineza/b-lib/EllipsisLoader'), require('@bonlineza/b-lib/PageReady'), require('stylis-rule-sheet'), require('react-dom'), require('prop-types'), require('raf'), require('react-input-autosize'), require('react-transition-group'), require('@bonlineza/b-lib/functions'), require('rc-slider'), require('numeral')) :
3
+ typeof define === 'function' && define.amd ? define(['react', 'styled-components', 'react-notify-toast', '@bonlineza/b-lib/EllipsisLoader', '@bonlineza/b-lib/PageReady', 'stylis-rule-sheet', 'react-dom', 'prop-types', 'raf', 'react-input-autosize', 'react-transition-group', '@bonlineza/b-lib/functions', 'rc-slider', 'numeral'], factory) :
4
+ (global = global || self, global.Interests = factory(global.React, global.styled, global['react-notify-toast'], global.EllipsisLoader, global.PageReady, global['stylis-rule-sheet'], global.reactDom, global.PropTypes, global.raf, global['react-input-autosize'], global['react-transition-group'], global.function, global.rcSlider, global.numeral));
5
+ }(this, (function (React, styled, Notifications, EllipsisLoader, PageReady, stylisRuleSheet, reactDom, PropTypes, raf, AutosizeInput, reactTransitionGroup, functions, rcSlider, numeral) { 'use strict';
6
6
 
7
7
  var React__default = 'default' in React ? React['default'] : React;
8
8
  var styled__default = 'default' in styled ? styled['default'] : styled;
@@ -10,10 +10,9 @@
10
10
  EllipsisLoader = EllipsisLoader && Object.prototype.hasOwnProperty.call(EllipsisLoader, 'default') ? EllipsisLoader['default'] : EllipsisLoader;
11
11
  PageReady = PageReady && Object.prototype.hasOwnProperty.call(PageReady, 'default') ? PageReady['default'] : PageReady;
12
12
  stylisRuleSheet = stylisRuleSheet && Object.prototype.hasOwnProperty.call(stylisRuleSheet, 'default') ? stylisRuleSheet['default'] : stylisRuleSheet;
13
- var PropTypes__default = 'default' in PropTypes ? PropTypes['default'] : PropTypes;
13
+ PropTypes = PropTypes && Object.prototype.hasOwnProperty.call(PropTypes, 'default') ? PropTypes['default'] : PropTypes;
14
14
  raf = raf && Object.prototype.hasOwnProperty.call(raf, 'default') ? raf['default'] : raf;
15
15
  AutosizeInput = AutosizeInput && Object.prototype.hasOwnProperty.call(AutosizeInput, 'default') ? AutosizeInput['default'] : AutosizeInput;
16
- AnimateHeight = AnimateHeight && Object.prototype.hasOwnProperty.call(AnimateHeight, 'default') ? AnimateHeight['default'] : AnimateHeight;
17
16
  numeral = numeral && Object.prototype.hasOwnProperty.call(numeral, 'default') ? numeral['default'] : numeral;
18
17
 
19
18
  function ownKeys(object, enumerableOnly) {
@@ -2526,7 +2525,7 @@
2526
2525
  }(React.Component);
2527
2526
 
2528
2527
  _defineProperty$1(MenuPlacer, "contextTypes", {
2529
- getPortalPlacement: PropTypes__default.func
2528
+ getPortalPlacement: PropTypes.func
2530
2529
  });
2531
2530
 
2532
2531
  var Menu = function Menu(props) {
@@ -2732,7 +2731,7 @@
2732
2731
  }(React.Component);
2733
2732
 
2734
2733
  _defineProperty$1(MenuPortal, "childContextTypes", {
2735
- getPortalPlacement: PropTypes__default.func
2734
+ getPortalPlacement: PropTypes.func
2736
2735
  });
2737
2736
 
2738
2737
  var isArray = Array.isArray;
@@ -7596,451 +7595,488 @@
7596
7595
  };
7597
7596
  var CategoryInterestSelector = themed(InterestCatSelector);
7598
7597
 
7598
+ var _excluded$1 = ["children"];
7599
+
7599
7600
  var _templateObject$8;
7600
- var OuterContainer = styled__default.div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n"])), function (props) {
7601
- return props.theme.colors.borderColor;
7601
+ var Button$1 = styled__default.button(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n ", ";\n background-color: transparent;\n color: ", ";\n &:hover {\n color: ", ";\n }\n &:disabled {\n ", ";\n color: ", ";\n }\n"])), baseButtonStyle, function (props) {
7602
+ return props.theme.colors.base;
7603
+ }, function (props) {
7604
+ return props.theme.colors.primary;
7605
+ }, disabledButtonStyle, function (props) {
7606
+ return props.theme.colors.base;
7602
7607
  });
7603
7608
 
7604
- var _templateObject$9;
7605
- var ToggleButton = styled__default.div(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n padding-left: 3rem;\n padding-right: 3rem;\n display: flex;\n align-items: center;\n min-height: 70px;\n height: 70px;\n cursor: pointer;\n outline: none;\n"])));
7609
+ var TextButton = function TextButton(_ref) {
7610
+ var children = _ref.children,
7611
+ restProps = _objectWithoutProperties(_ref, _excluded$1);
7606
7612
 
7607
- var _templateObject$a;
7608
- var Title = styled__default.div(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: bold;\n flex-grow: 1;\n color: ", ";\n"])), function (props) {
7609
- return props.theme.fontSizes[2];
7610
- }, function (props) {
7611
- return props.theme.colors.primary || '';
7612
- });
7613
+ return /*#__PURE__*/React__default.createElement(Button$1, restProps, children);
7614
+ };
7613
7615
 
7614
- var _templateObject$b;
7615
- var BodyContent = styled__default.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n"])), function (props) {
7616
- return props.theme.marginPaddings[5];
7617
- });
7616
+ TextButton.defaultProps = {
7617
+ type: 'button'
7618
+ };
7619
+ var TextButton$1 = themed(TextButton);
7618
7620
 
7619
- var _templateObject$c;
7620
- var BodyDivider = styled__default.hr(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: 0;\n border-style: none;\n border-bottom: 1px solid ", ";\n"])), function (props) {
7621
- return props.theme.marginPaddings[4];
7622
- }, function (props) {
7623
- return props.theme.colors.borderColor;
7624
- });
7621
+ var _excluded$2 = ["children"];
7625
7622
 
7626
- var _templateObject$d;
7627
- var Body$1 = styled__default.div(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n padding-left: ", ";\n padding-right: ", ";\n"])), function (props) {
7628
- return props.theme.marginPaddings[6];
7623
+ var _templateObject$9;
7624
+ var Button$2 = styled__default(TextButton$1)(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n color: ", ";\n background-color: ", ";\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:disabled {\n background-color: ", ";\n color: ", ";\n }\n"])), function (props) {
7625
+ return props.theme.colors.ntrlMin;
7629
7626
  }, function (props) {
7630
- return props.theme.marginPaddings[6];
7627
+ return props.theme.colors.primary;
7628
+ }, function (props) {
7629
+ return props.theme.colors.base;
7630
+ }, function (props) {
7631
+ return props.theme.colors.ntrlMin;
7632
+ }, function (props) {
7633
+ return props.theme.colors.ntrlMin;
7634
+ }, function (props) {
7635
+ return props.theme.colors.primary;
7631
7636
  });
7632
7637
 
7633
- var _templateObject$e;
7634
- var inputMarginRight = '0.2em';
7635
- var CheckboxLabel = styled__default.label(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n\n span {\n :before {\n content: '\\2713';\n position: absolute;\n display: none;\n color: white;\n left: 0.4em;\n top: 0.1em;\n font-size: ", ";\n text-align: center;\n }\n }\n\n input {\n font-size: ", ";\n background-color: ", ";\n appearance: none;\n outline: none;\n height: 1em;\n width: 1em;\n margin-right: ", ";\n border: 1px solid ", ";\n border-radius: ", ";\n transition-duration: 0.3s;\n cursor: pointer;\n\n &:checked {\n background-color: ", ";\n }\n\n &:checked + span:before {\n display: block;\n }\n }\n"], ["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n\n span {\n :before {\n content: '\\\\2713';\n position: absolute;\n display: none;\n color: white;\n left: 0.4em;\n top: 0.1em;\n font-size: ", ";\n text-align: center;\n }\n }\n\n input {\n font-size: ", ";\n background-color: ", ";\n appearance: none;\n outline: none;\n height: 1em;\n width: 1em;\n margin-right: ", ";\n border: 1px solid ", ";\n border-radius: ", ";\n transition-duration: 0.3s;\n cursor: pointer;\n\n &:checked {\n background-color: ", ";\n }\n\n &:checked + span:before {\n display: block;\n }\n }\n"])), function (props) {
7636
- var _props$theme;
7638
+ var InvertedTextButton = function InvertedTextButton(_ref) {
7639
+ var children = _ref.children,
7640
+ restProps = _objectWithoutProperties(_ref, _excluded$2);
7637
7641
 
7638
- return (_props$theme = props.theme) !== null && _props$theme !== void 0 && _props$theme.fontSizes.length ? props.theme.fontSizes[4] : '1em';
7642
+ return /*#__PURE__*/React__default.createElement(Button$2, restProps, children);
7643
+ };
7644
+
7645
+ var InvertedTextButton$1 = themed(InvertedTextButton);
7646
+
7647
+ var _templateObject$a, _templateObject2$2;
7648
+ var ALL_ITEM = {
7649
+ id: 'ALL',
7650
+ name: 'ALL'
7651
+ };
7652
+ var multiSelectorItemMaxHeight = '3rem';
7653
+ var multiSelectorItemAnimationDuration = '300ms';
7654
+ var multiselectorItemFadeIn = styled.keyframes(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n from {\n margin: 0;\n max-height: 0px;\n opacity: 0;\n }\n to {\n max-height: ", ";\n opacity: 1;\n }\n"])), multiSelectorItemMaxHeight);
7655
+ var StyledMultiselector = styled__default.div(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n .multiselector__selected-items,\n .multiselector__selectable-items {\n display: flex;\n flex-flow: wrap;\n margin-left: calc(-1 * ", ");\n button {\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n padding: ", ";\n text-transform: none;\n box-sizing: border-box;\n animation: ", " ease-in-out\n ", " forwards;\n flex-basis: calc(25% - ", ");\n margin-bottom: ", ";\n margin-left: ", ";\n text-overflow: ellipsis;\n overflow-x: hidden;\n min-height: 40px;\n\n @media (max-width: ", ") {\n flex-basis: calc(50% - ", ");\n }\n }\n }\n\n .multiselector__footer {\n display: flex;\n justify-content: center;\n button {\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n background-color: ", ";\n color: ", ";\n }\n }\n"])), function (props) {
7656
+ return props.theme.marginPaddings[2];
7639
7657
  }, function (props) {
7640
- return props.theme.fontSizes[4];
7658
+ return props.theme.colors.ntrlMin;
7659
+ }, function (props) {
7660
+ return props.theme.colors.primary;
7661
+ }, function (props) {
7662
+ return props.theme.colors.primary;
7641
7663
  }, function (props) {
7642
7664
  return props.theme.colors.ntrlMin;
7643
- }, inputMarginRight, function (props) {
7665
+ }, function (props) {
7644
7666
  return props.theme.colors.primary;
7645
7667
  }, function (props) {
7646
- return props.theme.borderRadius;
7668
+ return props.theme.marginPaddings[0];
7669
+ }, multiSelectorItemAnimationDuration, multiselectorItemFadeIn, function (props) {
7670
+ return props.theme.marginPaddings[2];
7671
+ }, function (props) {
7672
+ return props.theme.marginPaddings[2];
7673
+ }, function (props) {
7674
+ return props.theme.marginPaddings[2];
7675
+ }, media.sm, function (props) {
7676
+ return props.theme.marginPaddings[2];
7647
7677
  }, function (props) {
7648
7678
  return props.theme.colors.primary;
7679
+ }, function (props) {
7680
+ return props.theme.colors.ntrlMin;
7681
+ }, function (props) {
7682
+ return props.theme.colors.primary;
7683
+ }, function (props) {
7684
+ return props.theme.colors.ntrlMin;
7649
7685
  });
7650
- var ErrorMessage$1 = styled__default.div({
7651
- color: function color(props) {
7652
- return props.theme.colors.primary;
7653
- }
7654
- });
7655
-
7656
- /** @format */
7657
-
7658
- numeral.register('locale', 'en-ZA', {
7659
- delimiters: {
7660
- thousands: ',',
7661
- decimal: '.'
7662
- },
7663
- abbreviations: {
7664
- thousand: 'k',
7665
- million: 'm',
7666
- billion: 'b',
7667
- trillion: 't'
7668
- },
7669
- ordinal: function ordinal() {
7670
- return '.';
7671
- },
7672
- currency: {
7673
- symbol: 'R'
7674
- }
7675
- });
7676
- numeral.locale('en-ZA');
7677
- String.locale = numeral.locale;
7678
7686
  /**
7679
- * Curreny Formatter
7680
- * @param {number} number - the number to be formatted
7681
- * @param {boolean} round - flag to indicate if the number needs to be rounded off
7687
+ * Multiselector with a GraphQL flavour (TODO: to be revised to make it remote api agnostic)
7682
7688
  */
7683
7689
 
7684
- function fC(number) {
7685
- var round = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
7686
- var parsedNumber = parseFloat(number);
7687
- return !Number.isNaN(parsedNumber) ? numeral(round ? Math.round(parsedNumber) : parsedNumber).format('$ 0,0.00') : 'R -';
7688
- }
7689
-
7690
- var genders = {
7691
- FEMALE: 0,
7692
- MALE: 1,
7693
- UNISEX: 2
7694
- };
7690
+ var GraphQLMultiSelector = /*#__PURE__*/function (_React$Component) {
7691
+ _inherits(GraphQLMultiSelector, _React$Component);
7695
7692
 
7696
- var Trash = (function (props) {
7697
- return /*#__PURE__*/React__default.createElement("svg", _extends({
7698
- version: "1.1",
7699
- id: "svg-trash",
7700
- xmlns: "http://www.w3.org/2000/svg",
7701
- xmlnsXlink: "http://www.w3.org/1999/xlink",
7702
- x: "0px",
7703
- y: "0px",
7704
- viewBox: "0 0 15.1 17.5",
7705
- xmlSpace: "preserve"
7706
- }, props), /*#__PURE__*/React__default.createElement("g", null, /*#__PURE__*/React__default.createElement("path", {
7707
- d: "M2.4,17.5c-0.4-0.1-0.5-0.4-0.5-0.8c0-4,0-7.9,0-11.9c0-0.1,0-0.1,0-0.2c-0.1,0-0.1,0-0.2,0c-0.3,0-0.7,0-1,0 C0.3,4.6,0,4.3,0,4C0,3.3,0,2.7,0,2c0.1-0.8,0.8-1.5,1.7-1.6c1.3,0,2.6,0,3.9,0c0.1,0,0.2,0,0.3-0.1C6,0.1,6.2,0,6.5,0 c0.7,0,1.4,0,2.1,0c0.3,0,0.5,0.1,0.6,0.3c0.1,0.1,0.1,0.1,0.2,0.1c1.3,0,2.5,0,3.8,0c0.8,0,1.4,0.4,1.7,1.1C15,1.7,15,2,15,2.3 c0,0.5,0,1,0,1.6c0,0.5-0.3,0.7-0.7,0.7c-0.4,0-0.7,0-1.1,0c0,0,0,0-0.1,0c0,0.1,0,0.1,0,0.2c0,4,0,7.9,0,11.9 c0,0.4-0.1,0.7-0.5,0.8C9.2,17.5,5.8,17.5,2.4,17.5z M11.8,16.2c0-3.9,0-7.7,0-11.6c-2.9,0-5.7,0-8.6,0c0,3.9,0,7.7,0,11.6 C6.1,16.2,9,16.2,11.8,16.2z M1.3,3.2c4.1,0,8.3,0,12.4,0c0-0.3,0-0.6,0-0.9c0-0.5-0.2-0.6-0.6-0.6c-3.7,0-7.4,0-11.1,0 c-0.1,0-0.2,0-0.3,0C1.5,1.8,1.3,2,1.3,2.2C1.3,2.5,1.3,2.9,1.3,3.2z"
7708
- }), /*#__PURE__*/React__default.createElement("path", {
7709
- d: "M5.1,9.8c0-1.1,0-2.3,0-3.4c0-0.4,0.2-0.7,0.5-0.7C6,5.6,6.3,5.8,6.4,6.1c0,0.1,0,0.2,0,0.3c0,2.2,0,4.5,0,6.7 c0,0.1,0,0.3-0.1,0.4C6.2,13.8,6,14,5.7,13.9c-0.3,0-0.5-0.2-0.6-0.5c0-0.1,0-0.2,0-0.3C5.1,12,5.1,10.9,5.1,9.8z"
7710
- }), /*#__PURE__*/React__default.createElement("path", {
7711
- d: "M9.9,9.8c0,1.1,0,2.3,0,3.4c0,0.3-0.2,0.6-0.5,0.7c-0.4,0.1-0.8-0.1-0.9-0.5c0-0.1,0-0.2,0-0.2c0-2.3,0-4.5,0-6.8 c0-0.4,0.2-0.7,0.5-0.7c0.3-0.1,0.7,0.1,0.7,0.5c0,0.1,0,0.2,0,0.3C9.9,7.6,9.9,8.7,9.9,9.8z"
7712
- })));
7713
- });
7693
+ var _super = _createSuper(GraphQLMultiSelector);
7714
7694
 
7715
- var _templateObject$f;
7716
- var SvgWrapper$1 = styled__default.span(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n padding: 1rem;\n display: flex;\n svg {\n width: 23px;\n height: auto;\n }\n"])));
7695
+ function GraphQLMultiSelector(props) {
7696
+ var _this;
7717
7697
 
7718
- var _templateObject$g;
7719
- var IconWrapper = styled__default.div(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n height: auto;\n margin-bottom: 1rem;\n margin-left: 1rem;\n display: flex;\n align-items: center;\n height: auto;\n\n :hover {\n background-color: ", ";\n cursor: pointer;\n }\n\n #svg-trash {\n width: 15px;\n height: 100%;\n }\n"])), function (props) {
7720
- return props.theme.colors.borderColor;
7721
- }, function (props) {
7722
- return props.theme.colors.borderColor;
7723
- });
7698
+ _classCallCheck(this, GraphQLMultiSelector);
7724
7699
 
7725
- var _templateObject$h, _templateObject2$2, _templateObject3, _templateObject4;
7726
- var MALE = genders.MALE,
7727
- FEMALE = genders.FEMALE,
7728
- UNISEX = genders.UNISEX;
7700
+ _this = _super.call(this, props);
7729
7701
 
7730
- var TrashIcon = function TrashIcon(_ref) {
7731
- var onClick = _ref.onClick,
7732
- id = _ref.id;
7733
- return /*#__PURE__*/React__default.createElement(IconWrapper, {
7734
- onClick: onClick,
7735
- id: id
7736
- }, /*#__PURE__*/React__default.createElement(SvgWrapper$1, null, /*#__PURE__*/React__default.createElement(Trash, null)));
7737
- };
7702
+ _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (prevProps) {
7703
+ if (prevProps.graphQuery !== _this.props.graphQuery) {
7704
+ _this.makeRequest();
7705
+ }
7706
+ });
7738
7707
 
7739
- var InterestItem = /*#__PURE__*/function (_React$Component) {
7740
- _inherits(InterestItem, _React$Component);
7708
+ _defineProperty(_assertThisInitialized(_this), "makeRequest", function () {
7709
+ _this.pageReady.refreshPage();
7710
+ });
7741
7711
 
7742
- var _super = _createSuper(InterestItem);
7712
+ _defineProperty(_assertThisInitialized(_this), "emptySelected", function () {
7713
+ return _this.setState({
7714
+ selected: [ALL_ITEM]
7715
+ });
7716
+ });
7743
7717
 
7744
- function InterestItem(props) {
7745
- var _this;
7718
+ _defineProperty(_assertThisInitialized(_this), "setNewResults", function (res) {
7719
+ var selectedIds = _this.state.selected.map(function (sel) {
7720
+ return sel.id;
7721
+ });
7746
7722
 
7747
- _classCallCheck(this, InterestItem);
7723
+ var pagination = _this.props.resultProcessor(res);
7748
7724
 
7749
- _this = _super.call(this, props);
7725
+ var allSelected = _this.state.selected.some(function (item) {
7726
+ return item.id === ALL_ITEM.id;
7727
+ });
7750
7728
 
7751
- _defineProperty(_assertThisInitialized(_this), "deleteInterestItem", function () {
7752
- var id = _this.props.data.id;
7729
+ var newList = pagination.data.filter(function (newItem) {
7730
+ return !selectedIds.includes(newItem.id);
7731
+ });
7732
+ newList = allSelected ? newList : [ALL_ITEM].concat(_toConsumableArray(newList));
7753
7733
 
7754
7734
  _this.setState({
7755
- delete: _objectSpread2(_objectSpread2({}, request), {}, {
7756
- fetching: true
7757
- })
7735
+ list: newList,
7736
+ pagination: pagination
7758
7737
  });
7738
+ });
7759
7739
 
7760
- var url = _this.props.deleteInterestApi(id);
7740
+ _defineProperty(_assertThisInitialized(_this), "onAddItem", function (addSelectedItem) {
7741
+ _this.setState(function (prevState) {
7742
+ var newSelectedList;
7743
+ var newList;
7761
7744
 
7762
- simpleRequest(_this.props.requestInstance, url, method.DELETE, null, function () {
7763
- _this.setState({
7764
- delete: _objectSpread2(_objectSpread2({}, request), {}, {
7765
- success: true
7766
- })
7767
- });
7745
+ if (addSelectedItem.id === ALL_ITEM.id) {
7746
+ // Clear Selected List
7747
+ // and move previous Selected items to list
7748
+ newSelectedList = [ALL_ITEM];
7749
+ newList = prevState.list.filter(function (item) {
7750
+ return item.id !== ALL_ITEM.id;
7751
+ }).concat(prevState.selected).sort(function (a, b) {
7752
+ return a.id - b.id;
7753
+ });
7754
+ } else {
7755
+ newSelectedList = _toConsumableArray(prevState.selected.filter(function (item) {
7756
+ return item.id !== ALL_ITEM.id;
7757
+ })).concat(addSelectedItem);
7758
+ newList = [ALL_ITEM].concat(_toConsumableArray(prevState.list.filter(function (item) {
7759
+ return item.id !== ALL_ITEM.id;
7760
+ }).filter(function (item) {
7761
+ return item.id !== addSelectedItem.id;
7762
+ })));
7763
+ }
7768
7764
 
7769
- _this.props.onDeleted(_this.props.data);
7765
+ return {
7766
+ selected: newSelectedList,
7767
+ list: newList
7768
+ };
7770
7769
  }, function () {
7771
- return _this.setState({
7772
- delete: _objectSpread2({}, request)
7773
- });
7770
+ _this.props.onChange(_this.state.selected.filter(function (item) {
7771
+ return item.id !== ALL_ITEM.id;
7772
+ }));
7774
7773
  });
7775
7774
  });
7776
7775
 
7777
- _defineProperty(_assertThisInitialized(_this), "getGender", function (gender) {
7778
- switch (gender) {
7779
- case MALE:
7780
- return 'Male';
7776
+ _defineProperty(_assertThisInitialized(_this), "onRemoveItem", function (removeSelectedItem) {
7777
+ _this.setState(function (prevState) {
7778
+ // Cannot remove ALL from selection by unselecting it
7779
+ if ((removeSelectedItem === null || removeSelectedItem === void 0 ? void 0 : removeSelectedItem.id) === ALL_ITEM.id) {
7780
+ return {};
7781
+ }
7781
7782
 
7782
- case FEMALE:
7783
- return 'Female';
7783
+ var newSelectedList = prevState.selected.filter(function (item) {
7784
+ return item.id !== removeSelectedItem.id;
7785
+ });
7784
7786
 
7785
- case UNISEX:
7786
- default:
7787
- return 'Unisex';
7788
- }
7789
- });
7787
+ var newList = _toConsumableArray(prevState.list).concat(removeSelectedItem).filter(function (item) {
7788
+ return item.id !== ALL_ITEM.id;
7789
+ }).sort(function (a, b) {
7790
+ return a.id - b.id;
7791
+ });
7790
7792
 
7791
- _defineProperty(_assertThisInitialized(_this), "getCategory", function (category) {
7792
- if (category === interestCategories.APPAREL) {
7793
- return 'CLOTHING';
7794
- }
7793
+ return {
7794
+ list: newList,
7795
+ selected: newSelectedList.length ? newSelectedList : [ALL_ITEM]
7796
+ };
7797
+ }, function () {
7798
+ _this.props.onChange(_this.state.selected.filter(function (item) {
7799
+ return item.id !== ALL_ITEM.id;
7800
+ }));
7801
+ });
7802
+ });
7795
7803
 
7796
- return category;
7804
+ _defineProperty(_assertThisInitialized(_this), "onIsLoading", function (flag) {
7805
+ _this.setState({
7806
+ isLoading: flag
7807
+ });
7797
7808
  });
7798
7809
 
7799
7810
  _defineProperty(_assertThisInitialized(_this), "render", function () {
7800
- var _data$min_shoe_size, _data$max_shoe_size;
7801
-
7802
- var data = _this.props.data;
7803
- var success = _this.state.delete.success;
7804
- return /*#__PURE__*/React__default.createElement(InterestItemContainer, {
7805
- id: "interests__item--".concat(data.id),
7806
- className: "".concat(success && 'interests__item--hiding')
7807
- }, /*#__PURE__*/React__default.createElement(InterestItemContent, {
7808
- className: "interest-item__container ".concat(_this.props.className || '')
7811
+ var _this$props = _this.props,
7812
+ baseClass = _this$props.baseClass,
7813
+ ItemRenderer = _this$props.itemRenderer,
7814
+ identifier = _this$props.identifier,
7815
+ triggerRequest = _this$props.triggerRequest,
7816
+ className = _this$props.className;
7817
+ var _this$state = _this.state,
7818
+ list = _this$state.list,
7819
+ selected = _this$state.selected,
7820
+ pagination = _this$state.pagination,
7821
+ isLoading = _this$state.isLoading;
7822
+ return /*#__PURE__*/React__default.createElement(StyledMultiselector, null, /*#__PURE__*/React__default.createElement("div", {
7823
+ "data-qe-id": identifier,
7824
+ className: "".concat(className, " ").concat(baseClass)
7809
7825
  }, /*#__PURE__*/React__default.createElement("div", {
7810
- className: "interest-item__container_heading"
7811
- }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Category:"), /*#__PURE__*/React__default.createElement("div", {
7812
- id: "interest-item-".concat(data.id, "__category"),
7813
- className: "list-items"
7814
- }, _this.getCategory(data.category_type))), /*#__PURE__*/React__default.createElement("div", {
7815
- className: "interest-item__container_heading"
7816
- }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Brands:"), /*#__PURE__*/React__default.createElement("div", {
7817
- className: "list-items"
7818
- }, data.luxity_brands.length > 0 ? data.luxity_brands.map(function (brand) {
7819
- return /*#__PURE__*/React__default.createElement("span", {
7820
- key: "".concat(brand.name, "-").concat(data.id)
7821
- }, brand.name);
7822
- }) : 'All')), /*#__PURE__*/React__default.createElement("div", {
7823
- className: "interest-item__container_heading"
7824
- }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Department:"), /*#__PURE__*/React__default.createElement("div", {
7825
- className: "list-items"
7826
- }, _this.getGender(data.gender))), /*#__PURE__*/React__default.createElement("div", {
7827
- className: "interest-item__container_heading"
7828
- }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Price:"), /*#__PURE__*/React__default.createElement("div", {
7829
- className: "list-items"
7830
- }, fC(data.min_price), "\xA0-\xA0", fC(data.max_price))), /*#__PURE__*/React__default.createElement("div", {
7831
- className: "interest-item__container_heading"
7832
- }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Style:"), /*#__PURE__*/React__default.createElement("div", {
7833
- className: "list-items"
7834
- }, data.luxity_styles.length > 0 ? data.luxity_styles.map(function (style) {
7835
- return /*#__PURE__*/React__default.createElement("span", {
7836
- key: "".concat(style.name, "-").concat(data.id)
7837
- }, style.name);
7838
- }) : 'All')), /*#__PURE__*/React__default.createElement("div", {
7839
- className: "interest-item__container_heading ".concat(data.category_type === interestCategories.SHOES ? '' : 'no-shoe-size-section')
7840
- }, data.category_type === interestCategories.SHOES ? /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Shoe Size:"), /*#__PURE__*/React__default.createElement("div", {
7841
- className: "list-items"
7842
- }, "".concat((data === null || data === void 0 ? void 0 : (_data$min_shoe_size = data.min_shoe_size) === null || _data$min_shoe_size === void 0 ? void 0 : _data$min_shoe_size.size) || '', " - "), "".concat((data === null || data === void 0 ? void 0 : (_data$max_shoe_size = data.max_shoe_size) === null || _data$max_shoe_size === void 0 ? void 0 : _data$max_shoe_size.size) || '', " "))) : /*#__PURE__*/React__default.createElement(SheoSizeContentDiv, null, "-"))), /*#__PURE__*/React__default.createElement(TrashIcon, {
7843
- id: "interest-".concat(data.id, "-delete-button"),
7844
- onClick: function onClick() {
7845
- if (!_this.state.delete.fetching) {
7846
- _this.deleteInterestItem();
7847
- }
7826
+ className: "".concat(baseClass, "__selected-items")
7827
+ }, selected.map(function (item) {
7828
+ return /*#__PURE__*/React__default.createElement(ItemRenderer, {
7829
+ key: item.id,
7830
+ item: item,
7831
+ onSelect: _this.onRemoveItem,
7832
+ selected: true
7833
+ });
7834
+ })), /*#__PURE__*/React__default.createElement(LuxityPageReady, {
7835
+ ref: function ref(inst) {
7836
+ _this.pageReady = inst;
7837
+ },
7838
+ onData: _this.setNewResults,
7839
+ onIsLoading: _this.onIsLoading,
7840
+ getRequestPromise: function getRequestPromise() {
7841
+ return triggerRequest();
7848
7842
  }
7849
- }));
7843
+ }), /*#__PURE__*/React__default.createElement("div", {
7844
+ className: "".concat(baseClass, "__selectable-items")
7845
+ }, list.map(function (item) {
7846
+ return /*#__PURE__*/React__default.createElement(ItemRenderer, {
7847
+ key: item.id,
7848
+ item: item,
7849
+ onSelect: _this.onAddItem,
7850
+ selected: false
7851
+ });
7852
+ })), /*#__PURE__*/React__default.createElement("div", {
7853
+ className: "".concat(baseClass, "__footer")
7854
+ }, /*#__PURE__*/React__default.createElement(InvertedTextButton$1, {
7855
+ disabled: isLoading || !pagination.has_more_pages,
7856
+ onClick: _this.props.increaseLimit,
7857
+ type: "button"
7858
+ }, "SHOW MORE"))));
7850
7859
  });
7851
7860
 
7852
7861
  _this.state = {
7853
- delete: _objectSpread2({}, request)
7862
+ selected: [ALL_ITEM],
7863
+ list: [],
7864
+ pagination: {},
7865
+ isLoading: false
7854
7866
  };
7855
7867
  return _this;
7856
7868
  }
7857
7869
 
7858
- return _createClass(InterestItem);
7870
+ return _createClass(GraphQLMultiSelector);
7859
7871
  }(React__default.Component);
7860
7872
 
7861
- var SheoSizeContentDiv = styled__default.div(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n @media (max-width: ", ") {\n display: none;\n }\n"])), media.xs);
7862
- var InterestItemTitle = styled__default.div(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n font-weight: bold;\n display: none;\n\n @media (max-width: ", ") {\n display: inline;\n }\n"])), media.xs);
7863
- var InterestItemContainer = styled__default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n\n .no-shoe-size-section {\n @media (max-width: ", ") {\n display: none;\n }\n }\n"])), media.xs);
7864
- var InterestItemContent = styled__default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n width: 95%;\n height: 100%;\n border: 1px solid ", ";\n padding: 0.5em;\n margin-bottom: ", ";\n\n .interest-item__container_heading {\n color: ", ";\n flex-basis: calc(100% / 8);\n margin-left: ", ";\n margin-top: 0.3rem;\n\n @media (max-width: ", ") {\n display: inline;\n }\n }\n\n .list-items {\n display: inline-flex;\n flex-direction: column;\n\n @media (max-width: ", ") {\n margin-left: ", ";\n }\n }\n\n @media (max-width: ", ") {\n flex-direction: column;\n }\n"])), function (props) {
7865
- return props.theme.colors.borderColor;
7866
- }, function (props) {
7873
+ GraphQLMultiSelector.defaultProps = {
7874
+ baseClass: 'multiselector'
7875
+ };
7876
+ var GraphQLMultiSelector$1 = themed(GraphQLMultiSelector);
7877
+
7878
+ var Search = (function (props) {
7879
+ return /*#__PURE__*/React__default.createElement("svg", _extends({
7880
+ width: "15",
7881
+ height: "15",
7882
+ viewBox: "0 0 15 15",
7883
+ overflow: "visible",
7884
+ fill: "none",
7885
+ xmlns: "http://www.w3.org/2000/svg"
7886
+ }, props), /*#__PURE__*/React__default.createElement("path", {
7887
+ d: "M14.82 13.93L11.21 10.32C12.1 9.23 12.64 7.83 12.64 6.31C12.64 2.83 9.81 0 6.32 0C2.83 0 0 2.83 0 6.32C0 9.81 2.83 12.64 6.32 12.64C7.84 12.64 9.23 12.1 10.32 11.21L13.93 14.81C14.17 15.06 14.57 15.06 14.81 14.81C15.06 14.57 15.06 14.18 14.82 13.93ZM6.32 11.38C3.53 11.38 1.25 9.11 1.25 6.32C1.25 3.53 3.52 1.25 6.32 1.25C9.11 1.25 11.39 3.52 11.39 6.32C11.39 9.12 9.11 11.38 6.32 11.38Z",
7888
+ fill: "currentColor"
7889
+ }));
7890
+ });
7891
+
7892
+ var _templateObject$b, _templateObject2$3;
7893
+ var Title = styled__default.h1(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: bold;\n margin-bottom: 0;\n text-transform: uppercase;\n"])), function (props) {
7894
+ return props.theme.fontSizes[2];
7895
+ });
7896
+ var InterestsSubheadingContainer = styled__default.div(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n border-bottom: 1px solid ", ";\n margin-bottom: ", ";\n margin-top: ", ";\n width: 100%;\n align-items: center;\n"])), function (props) {
7867
7897
  return props.theme.marginPaddings[1];
7868
7898
  }, function (props) {
7869
- return props.theme.colors.darkerGray;
7899
+ return props.theme.colors.primary;
7870
7900
  }, function (props) {
7871
- return props.theme.marginPaddings[1];
7872
- }, media.xs, media.xs, function (props) {
7873
- return props.theme.marginPaddings[0];
7874
- }, media.xs);
7875
- var ThemedInterestItem = themed(InterestItem);
7876
- /**
7877
- * The Interest Item view shows the selected interest configuration,
7878
- * and gives user control to delete it.
7879
- */
7880
-
7881
- var InterestItem$1 = (function (props) {
7882
- return /*#__PURE__*/React__default.createElement(ThemedInterestItem, props);
7901
+ return props.theme.marginPaddings[3];
7902
+ }, function (props) {
7903
+ return props.theme.marginPaddings[3];
7883
7904
  });
7884
7905
 
7885
- var _templateObject$i;
7886
- var RadioButtonsContainer = styled__default.div(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n"])));
7906
+ var InterestsSubheading = function InterestsSubheading(_ref) {
7907
+ var title = _ref.title,
7908
+ children = _ref.children,
7909
+ className = _ref.className;
7910
+ return /*#__PURE__*/React__default.createElement(InterestsSubheadingContainer, {
7911
+ className: className
7912
+ }, /*#__PURE__*/React__default.createElement(Title, null, title), /*#__PURE__*/React__default.createElement("div", null, children));
7913
+ };
7887
7914
 
7888
- var _templateObject$j;
7889
- var ButtonListWrapper = styled__default.div(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n display: flex;\n flex-grow: 1;\n flex-wrap: ", ";\n"])), function (_ref) {
7890
- var noWrap = _ref.noWrap;
7891
- return noWrap ? 'nowrap' : 'wrap';
7892
- });
7915
+ var _templateObject$c;
7893
7916
 
7894
- var _templateObject$k;
7895
- var Title$1 = styled__default.div(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n font-weight: bold;\n color: ", ";\n flex-basis: 40%;\n"])), function (props) {
7896
- return props.theme.colors.base;
7897
- });
7917
+ var Title$1 = function Title(_ref) {
7918
+ var baseClass = _ref.baseClass,
7919
+ className = _ref.className,
7920
+ title = _ref.title,
7921
+ searchPlaceHolder = _ref.searchPlaceHolder,
7922
+ onSearchChanged = _ref.onSearchChanged;
7923
+ return /*#__PURE__*/React__default.createElement(InterestsSubheading, {
7924
+ className: "".concat(className, " ").concat(baseClass, "__title"),
7925
+ title: title
7926
+ }, /*#__PURE__*/React__default.createElement("div", {
7927
+ className: "title__search"
7928
+ }, /*#__PURE__*/React__default.createElement(Search, null), /*#__PURE__*/React__default.createElement("input", {
7929
+ placeholder: searchPlaceHolder,
7930
+ type: "text",
7931
+ name: "search",
7932
+ onChange: onSearchChanged
7933
+ })));
7934
+ };
7898
7935
 
7899
- var _templateObject$l;
7900
- var RadioButtonLabel = styled__default.label(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n"])), function (props) {
7936
+ var StyledTitle = styled__default(Title$1)(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n font-weight: bold;\n display: flex;\n align-items: center;\n font-size: ", ";\n\n .title__search,\n .title__search {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 30px;\n margin-bottom: ", ";\n\n svg {\n margin-left: ", ";\n fill: ", ";\n stroke: ", ";\n }\n\n input {\n width: 140px;\n border: none;\n font-size: ", ";\n transition: 0.2s border-color ease-in-out;\n margin-left: ", ";\n padding: 0;\n\n :focus {\n border-color: ", ";\n border-bottom: none;\n }\n }\n }\n"])), function (props) {
7937
+ return props.theme.marginPaddings[2];
7938
+ }, function (props) {
7939
+ return props.theme.fontSizes[2];
7940
+ }, function (props) {
7901
7941
  return props.theme.marginPaddings[0];
7942
+ }, function (props) {
7943
+ return props.theme.marginPaddings[3];
7944
+ }, function (props) {
7945
+ return props.theme.colors.primary || '';
7946
+ }, function (props) {
7947
+ return props.theme.colors.primary || '';
7948
+ }, function (props) {
7949
+ return props.theme.fontSizes[2];
7902
7950
  }, function (props) {
7903
7951
  return props.theme.marginPaddings[0];
7952
+ }, function (props) {
7953
+ return props.theme.colors.primary;
7904
7954
  });
7955
+ var Title$2 = themed(StyledTitle);
7905
7956
 
7906
- var _templateObject$m;
7907
- var RadioButtonCircle = styled__default.div(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n height: 20px;\n width: 20px;\n border-radius: 50%;\n margin-right: 5px;\n border: 1px solid ", ";\n display: flex;\n"])), function (props) {
7908
- return props.theme.colors.base;
7909
- });
7957
+ var debounceBuilder = functions.debounced(200);
7910
7958
 
7911
- var _templateObject$n;
7912
- var RadioButtonCircleInner = styled__default.div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n height: 8px;\n width: 8px;\n border-radius: 50%;\n margin: auto;\n"])));
7959
+ /**
7960
+ * Luxity flavoured GraphQLMultiselector with text Search, category and limit controls
7961
+ */
7962
+ var LuxityGraphQLMultiselector = /*#__PURE__*/function (_React$Component) {
7963
+ _inherits(LuxityGraphQLMultiselector, _React$Component);
7913
7964
 
7914
- var _templateObject$o;
7915
- var RadioButtonInput = styled__default.input(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n display: none;\n :checked ~ ", " {\n ", " {\n background-color: ", ";\n }\n }\n"])), RadioButtonCircle, RadioButtonCircleInner, function (props) {
7916
- return props.theme.colors.base;
7917
- });
7965
+ var _super = _createSuper(LuxityGraphQLMultiselector);
7918
7966
 
7919
- var _templateObject$p;
7920
- var RadioButtonText = styled__default.div(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n"])));
7967
+ function LuxityGraphQLMultiselector(props) {
7968
+ var _this;
7921
7969
 
7922
- /**
7923
- * RadioButtons component can show multiple radios, a title and an error message
7924
- */
7925
- var RadioButtons = function RadioButtons(_ref) {
7926
- var options = _ref.options,
7927
- name = _ref.name,
7928
- noWrap = _ref.noWrap,
7929
- title = _ref.title,
7930
- errors = _ref.errors;
7970
+ _classCallCheck(this, LuxityGraphQLMultiselector);
7931
7971
 
7932
- var _useState = React.useState(errors[name]),
7933
- _useState2 = _slicedToArray(_useState, 2),
7934
- errMsg = _useState2[0],
7935
- setErrMsg = _useState2[1];
7972
+ _this = _super.call(this, props);
7936
7973
 
7937
- React.useEffect(function () {
7938
- setErrMsg(errors[name]);
7939
- }, [errors, name]);
7940
- return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement(RadioButtonsContainer, null, /*#__PURE__*/React__default.createElement(Title$1, null, title), /*#__PURE__*/React__default.createElement(ButtonListWrapper, {
7941
- noWrap: noWrap
7942
- }, options.map(function (_ref2, index) {
7943
- var _ref2$actionCallback = _ref2.actionCallback,
7944
- actionCallback = _ref2$actionCallback === void 0 ? function () {
7945
- return null;
7946
- } : _ref2$actionCallback,
7947
- _ref2$value = _ref2.value,
7948
- value = _ref2$value === void 0 ? '' : _ref2$value,
7949
- _ref2$innerText = _ref2.innerText,
7950
- innerText = _ref2$innerText === void 0 ? '' : _ref2$innerText,
7951
- _ref2$checked = _ref2.checked,
7952
- checked = _ref2$checked === void 0 ? false : _ref2$checked;
7953
- return /*#__PURE__*/React__default.createElement(RadioButtonLabel, {
7954
- key: "".concat(name, "-").concat(index),
7955
- htmlFor: "".concat(name, "_").concat(index)
7956
- }, /*#__PURE__*/React__default.createElement(RadioButtonInput, {
7957
- id: "".concat(name, "_").concat(index),
7958
- type: "radio",
7959
- name: name,
7960
- defaultChecked: checked,
7961
- onChange: function onChange() {
7962
- setErrMsg('');
7963
- actionCallback(name, value);
7964
- },
7965
- value: value
7966
- }), /*#__PURE__*/React__default.createElement(RadioButtonCircle, null, /*#__PURE__*/React__default.createElement(RadioButtonCircleInner, null)), /*#__PURE__*/React__default.createElement(RadioButtonText, null, innerText));
7967
- }))), errMsg && /*#__PURE__*/React__default.createElement(ErrorMessage$1, null, errMsg));
7968
- };
7974
+ _defineProperty(_assertThisInitialized(_this), "multiSelectorRef", /*#__PURE__*/React__default.createRef());
7969
7975
 
7970
- RadioButtons.defaultProps = {
7971
- noWrap: false,
7972
- title: '',
7973
- errors: {}
7974
- };
7975
- var RadioButtons$1 = themed(RadioButtons);
7976
+ _defineProperty(_assertThisInitialized(_this), "increaseLimit", function () {
7977
+ _this.setState(function (prevState) {
7978
+ return {
7979
+ limit: prevState.limit + _this.props.queryLimitIncrement
7980
+ };
7981
+ });
7982
+ });
7976
7983
 
7977
- var _templateObject$q, _templateObject2$3, _templateObject3$1, _templateObject4$1, _templateObject5;
7978
- /* position relative is required for the Body element to be positioned correctly */
7984
+ _defineProperty(_assertThisInitialized(_this), "onChange", function (selection) {
7985
+ _this.props.onChange(selection);
7986
+ });
7979
7987
 
7980
- var relativeInlineStyle = styled.css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n position: relative;\n"])));
7981
- var topMiddleBodyStyle = styled.css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n bottom: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
7982
- var getTopMiddleArrowAfterStyle = function getTopMiddleArrowAfterStyle(props) {
7983
- return styled.css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n /*Bottom Arrow*/\n top: 100%; /* At the bottom of the tooltip */\n left: calc(50% - ", ");\n border-width: ", ";\n border-style: solid;\n border-color: ", " transparent transparent transparent;\n"])), props.apexWidth, props.apexWidth, props.theme.colors.base);
7984
- };
7985
- var getBottomMiddleBodyStyle = function getBottomMiddleBodyStyle(props) {
7986
- return styled.css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 100%;\n left: calc(50% - ", " / 2);\n"])), props.bodyWidth);
7987
- };
7988
- var getBottomMiddleArrowAfterStyle = function getBottomMiddleArrowAfterStyle(props) {
7989
- return styled.css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n /*Top Arrow*/\n bottom: 100%; /* At the top of the tooltip */\n top: initial;\n left: 50%;\n border-style: solid;\n border-color: transparent transparent ", " transparent;\n"])), props.theme.colors.base);
7990
- };
7988
+ _defineProperty(_assertThisInitialized(_this), "onSearchChanged", function (event) {
7989
+ event.preventDefault();
7990
+ var searchText = event.target.value;
7991
+ debounceBuilder(function () {
7992
+ _this.setState({
7993
+ nameFilter: searchText
7994
+ });
7995
+ });
7996
+ });
7991
7997
 
7992
- var _templateObject$r;
7998
+ _defineProperty(_assertThisInitialized(_this), "render", function () {
7999
+ var _this$state = _this.state,
8000
+ limit = _this$state.limit,
8001
+ category = _this$state.category,
8002
+ nameFilter = _this$state.nameFilter;
8003
+ var _this$props = _this.props,
8004
+ title = _this$props.title,
8005
+ baseClass = _this$props.baseClass,
8006
+ getGraphQuery = _this$props.getGraphQuery,
8007
+ resultProcessor = _this$props.resultProcessor,
8008
+ itemRenderer = _this$props.itemRenderer,
8009
+ searchPlaceHolder = _this$props.searchPlaceHolder,
8010
+ graphApi = _this$props.graphApi,
8011
+ identifier = _this$props.identifier,
8012
+ requestInstance = _this$props.requestInstance;
8013
+ return /*#__PURE__*/React__default.createElement("div", {
8014
+ className: baseClass
8015
+ }, /*#__PURE__*/React__default.createElement(Title$2, {
8016
+ title: title,
8017
+ baseClass: baseClass,
8018
+ searchPlaceHolder: searchPlaceHolder,
8019
+ onSearchChanged: _this.onSearchChanged
8020
+ }), /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement(GraphQLMultiSelector$1, {
8021
+ triggerRequest: function triggerRequest() {
8022
+ return requestInstance.post(graphApi, {
8023
+ query: getGraphQuery(limit, 1, 'id|desc', category, nameFilter)
8024
+ });
8025
+ },
8026
+ graphQuery: getGraphQuery(limit, 1, 'id|desc', category, nameFilter),
8027
+ identifier: identifier,
8028
+ ref: _this.multiSelectorRef,
8029
+ onChange: _this.onChange,
8030
+ resultProcessor: resultProcessor,
8031
+ increaseLimit: _this.increaseLimit,
8032
+ itemRenderer: itemRenderer
8033
+ })));
8034
+ });
7993
8035
 
7994
- var getBodyStyle = function getBodyStyle() {
7995
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7996
- var _props$toolTipPositio = props.toolTipPosition,
7997
- toolTipPosition = _props$toolTipPositio === void 0 ? '' : _props$toolTipPositio;
8036
+ _this.state = {
8037
+ limit: props.baseQueryLimit,
8038
+ category: props.category,
8039
+ nameFilter: ''
8040
+ };
8041
+ return _this;
8042
+ }
7998
8043
 
7999
- switch (toolTipPosition) {
8000
- case 'top':
8001
- return topMiddleBodyStyle;
8044
+ _createClass(LuxityGraphQLMultiselector, [{
8045
+ key: "componentDidUpdate",
8046
+ value: function componentDidUpdate(prevProps) {
8047
+ var _this$multiSelectorRe;
8002
8048
 
8003
- case 'bottom':
8004
- return getBottomMiddleBodyStyle(props);
8049
+ if (prevProps.category !== this.props.category && (_this$multiSelectorRe = this.multiSelectorRef) !== null && _this$multiSelectorRe !== void 0 && _this$multiSelectorRe.current) {
8050
+ this.multiSelectorRef.current.emptySelected();
8051
+ }
8052
+ }
8053
+ }], [{
8054
+ key: "getDerivedStateFromProps",
8055
+ value: function getDerivedStateFromProps(props, prevState) {
8056
+ if (prevState.category !== props.category) {
8057
+ return {
8058
+ category: props.category
8059
+ };
8060
+ }
8005
8061
 
8006
- default:
8007
8062
  return null;
8008
- }
8009
- };
8010
-
8011
- var getAfterStyling = function getAfterStyling() {
8012
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8013
- var toolTipPosition = props.toolTipPosition;
8014
-
8015
- switch (toolTipPosition) {
8016
- case 'top':
8017
- return getTopMiddleArrowAfterStyle(props);
8063
+ }
8064
+ }]);
8018
8065
 
8019
- case 'bottom':
8020
- return getBottomMiddleArrowAfterStyle(props);
8066
+ return LuxityGraphQLMultiselector;
8067
+ }(React__default.Component);
8021
8068
 
8022
- default:
8023
- return '';
8024
- }
8069
+ LuxityGraphQLMultiselector.defaultProps = {
8070
+ baseClass: '',
8071
+ searchPlaceHolder: '',
8072
+ queryLimitIncrement: 12,
8073
+ baseQueryLimit: 12
8025
8074
  };
8026
8075
 
8027
- var Body$2 = styled__default.span(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n ", ";\n visibility: hidden;\n opacity: 0;\n width: ", ";\n transition: visibility 0.3s linear, opacity 0.3s linear;\n background-color: ", ";\n color: white;\n text-align: center;\n border-radius: 5px;\n ", "\n &::after {\n content: ' ';\n position: absolute;\n ", "\n }\n"])), relativeInlineStyle, function (props) {
8028
- return props.bodyWidth;
8029
- }, function (props) {
8030
- return props.theme.colors.base || 'black';
8031
- }, function (props) {
8032
- return getBodyStyle(props);
8033
- }, function (props) {
8034
- return getAfterStyling(props);
8035
- });
8036
-
8037
- var _templateObject$s;
8038
- var Container$1 = styled__default.div(_templateObject$s || (_templateObject$s = _taggedTemplateLiteral(["\n ", ";\n cursor: pointer;\n &:hover ", " {\n opacity: 1;\n visibility: visible;\n }\n"])), relativeInlineStyle, Body$2);
8039
-
8040
- var _excluded$1 = ["children"];
8076
+ var _excluded$3 = ["children"];
8041
8077
 
8042
- var _templateObject$t;
8043
- var Button$1 = styled__default.button(_templateObject$t || (_templateObject$t = _taggedTemplateLiteral(["\n ", ";\n background-color: ", ";\n color: ", ";\n &:active,\n &:hover {\n background-color: #fff;\n color: ", ";\n }\n\n &:disabled {\n ", "\n\n &:hover {\n background-color: ", ";\n color: #ffff;\n }\n }\n"])), baseButtonStyle, function (props) {
8078
+ var _templateObject$d;
8079
+ var Button$3 = styled__default.button(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n ", ";\n background-color: ", ";\n color: ", ";\n &:active,\n &:hover {\n background-color: #fff;\n color: ", ";\n }\n\n &:disabled {\n ", "\n\n &:hover {\n background-color: ", ";\n color: #ffff;\n }\n }\n"])), baseButtonStyle, function (props) {
8044
8080
  return props.theme.colors.primary;
8045
8081
  }, function (props) {
8046
8082
  return props.theme.colors.ntrlMin;
@@ -8052,168 +8088,114 @@
8052
8088
 
8053
8089
  var PrimaryButton = function PrimaryButton(_ref) {
8054
8090
  var children = _ref.children,
8055
- restProps = _objectWithoutProperties(_ref, _excluded$1);
8091
+ restProps = _objectWithoutProperties(_ref, _excluded$3);
8056
8092
 
8057
- return /*#__PURE__*/React__default.createElement(Button$1, restProps, children);
8093
+ return /*#__PURE__*/React__default.createElement(Button$3, restProps, children);
8058
8094
  };
8059
8095
 
8060
8096
  var PrimaryButton$1 = themed(PrimaryButton);
8061
8097
 
8062
- var _excluded$2 = ["children"];
8063
-
8064
- var _templateObject$u;
8065
- var Button$2 = styled__default.button(_templateObject$u || (_templateObject$u = _taggedTemplateLiteral(["\n ", ";\n background-color: ", ";\n color: ", ";\n border: 1px solid ", ";\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:disabled {\n ", "\n &:hover {\n background-color: ", ";\n }\n }\n"])), baseButtonStyle, function (props) {
8066
- return props.theme.colors.ntrlMin;
8098
+ var _templateObject$e;
8099
+ var BaseButton = styled__default.button(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n color: ", ";\n border: 1px solid ", ";\n background-color: ", ";\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n"])), function (props) {
8100
+ return props.theme.colors.base;
8067
8101
  }, function (props) {
8068
- return props.theme.colors.primary;
8102
+ return props.theme.colors.borderColor;
8069
8103
  }, function (props) {
8070
- return props.theme.colors.primary;
8104
+ return props.theme.colors.ntrlMin;
8071
8105
  }, function (props) {
8072
8106
  return props.theme.colors.primary;
8073
8107
  }, function (props) {
8074
8108
  return props.theme.colors.ntrlMin;
8075
- }, disabledButtonStyle, function (props) {
8076
- return props.theme.colors.base;
8077
8109
  });
8110
+ var UnselectedButton = themed(BaseButton);
8078
8111
 
8079
- var SecondaryButton = function SecondaryButton(_ref) {
8080
- var children = _ref.children,
8081
- restProps = _objectWithoutProperties(_ref, _excluded$2);
8082
-
8083
- return /*#__PURE__*/React__default.createElement(Button$2, restProps, children);
8112
+ var ItemRenderer = function ItemRenderer(_ref) {
8113
+ var item = _ref.item,
8114
+ onSelect = _ref.onSelect,
8115
+ selected = _ref.selected;
8116
+ var props = {
8117
+ onClick: function onClick(e) {
8118
+ e.preventDefault();
8119
+ onSelect(item);
8120
+ }
8121
+ };
8122
+ return selected ? /*#__PURE__*/React__default.createElement(PrimaryButton$1, props, item.name) : /*#__PURE__*/React__default.createElement(UnselectedButton, props, item.name);
8084
8123
  };
8085
8124
 
8086
- var SecondaryButton$1 = themed(SecondaryButton);
8087
-
8088
- var _excluded$3 = ["children"];
8125
+ var BrandSelector = function BrandSelector(_ref) {
8126
+ var onChange = _ref.onChange,
8127
+ category = _ref.category,
8128
+ graphApi = _ref.graphApi,
8129
+ itemRenderer = _ref.itemRenderer,
8130
+ getGraphQuery = _ref.getGraphQuery,
8131
+ resultProcessor = _ref.resultProcessor,
8132
+ requestInstance = _ref.requestInstance;
8133
+ return /*#__PURE__*/React__default.createElement(LuxityGraphQLMultiselector, {
8134
+ baseQueryLimit: 16,
8135
+ title: "Brands",
8136
+ queryId: "getBrands",
8137
+ baseClass: "brand-selector",
8138
+ identifier: "brand-selector",
8139
+ searchPlaceHolder: "Search brands",
8140
+ category: category,
8141
+ onChange: onChange,
8142
+ graphApi: graphApi,
8143
+ itemRenderer: itemRenderer,
8144
+ getGraphQuery: getGraphQuery,
8145
+ resultProcessor: resultProcessor,
8146
+ requestInstance: requestInstance
8147
+ });
8148
+ };
8089
8149
 
8090
- var _templateObject$v;
8091
- var Button$3 = styled__default.button(_templateObject$v || (_templateObject$v = _taggedTemplateLiteral(["\n ", ";\n background-color: transparent;\n color: ", ";\n &:hover {\n color: ", ";\n }\n &:disabled {\n ", ";\n color: ", ";\n }\n"])), baseButtonStyle, function (props) {
8092
- return props.theme.colors.base;
8093
- }, function (props) {
8094
- return props.theme.colors.primary;
8095
- }, disabledButtonStyle, function (props) {
8096
- return props.theme.colors.base;
8097
- });
8150
+ BrandSelector.defaultProps = {
8151
+ itemRenderer: ItemRenderer,
8152
+ resultProcessor: function resultProcessor(result) {
8153
+ return result.data.data.luxity_brands;
8154
+ }
8155
+ };
8098
8156
 
8099
- var TextButton = function TextButton(_ref) {
8100
- var children = _ref.children,
8101
- restProps = _objectWithoutProperties(_ref, _excluded$3);
8157
+ var StyleSelector = function StyleSelector(_ref) {
8158
+ var onChange = _ref.onChange,
8159
+ category = _ref.category,
8160
+ graphApi = _ref.graphApi,
8161
+ itemRenderer = _ref.itemRenderer,
8162
+ getGraphQuery = _ref.getGraphQuery,
8163
+ resultProcessor = _ref.resultProcessor,
8164
+ requestInstance = _ref.requestInstance;
8165
+ return /*#__PURE__*/React__default.createElement(LuxityGraphQLMultiselector, {
8166
+ title: "Styles",
8167
+ queryId: "getStyles",
8168
+ baseQueryLimit: 16,
8169
+ baseClass: "style-selector",
8170
+ identifier: "style-selector",
8171
+ searchPlaceHolder: "Search Styles",
8172
+ category: category,
8173
+ onChange: onChange,
8174
+ graphApi: graphApi,
8175
+ itemRenderer: itemRenderer,
8176
+ getGraphQuery: getGraphQuery,
8177
+ resultProcessor: resultProcessor,
8178
+ requestInstance: requestInstance
8179
+ });
8180
+ };
8102
8181
 
8103
- return /*#__PURE__*/React__default.createElement(Button$3, restProps, children);
8182
+ StyleSelector.defaultProps = {
8183
+ itemRenderer: ItemRenderer,
8184
+ resultProcessor: function resultProcessor(result) {
8185
+ return result.data.data.luxity_styles;
8186
+ }
8104
8187
  };
8105
8188
 
8106
- TextButton.defaultProps = {
8107
- type: 'button'
8189
+ var genders = {
8190
+ FEMALE: 0,
8191
+ MALE: 1,
8192
+ UNISEX: 2
8108
8193
  };
8109
- var TextButton$1 = themed(TextButton);
8110
8194
 
8111
- var _excluded$4 = ["children"];
8112
-
8113
- var _templateObject$w;
8114
- var Button$4 = styled__default(TextButton$1)(_templateObject$w || (_templateObject$w = _taggedTemplateLiteral(["\n color: ", ";\n background-color: ", ";\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:disabled {\n background-color: ", ";\n color: ", ";\n }\n"])), function (props) {
8115
- return props.theme.colors.ntrlMin;
8116
- }, function (props) {
8117
- return props.theme.colors.primary;
8118
- }, function (props) {
8119
- return props.theme.colors.base;
8120
- }, function (props) {
8121
- return props.theme.colors.ntrlMin;
8122
- }, function (props) {
8123
- return props.theme.colors.ntrlMin;
8124
- }, function (props) {
8125
- return props.theme.colors.primary;
8126
- });
8127
-
8128
- var InvertedTextButton = function InvertedTextButton(_ref) {
8129
- var children = _ref.children,
8130
- restProps = _objectWithoutProperties(_ref, _excluded$4);
8131
-
8132
- return /*#__PURE__*/React__default.createElement(Button$4, restProps, children);
8133
- };
8134
-
8135
- var InvertedTextButton$1 = themed(InvertedTextButton);
8136
-
8137
- var _excluded$5 = ["value", "onChange", "prefix", "allowNegativeValue", "groupSeparator", "decimalSeparator"];
8138
- var unMask = function unMask() {
8139
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
8140
- return value.replace(/\D/g, '');
8141
- };
8142
- /**
8143
- * Currency Input which formats the value to a specific format
8144
- */
8145
-
8146
- var CurrencyInputFormatter = function CurrencyInputFormatter(_ref) {
8147
- var value = _ref.value,
8148
- onChange = _ref.onChange,
8149
- prefix = _ref.prefix,
8150
- allowNegativeValue = _ref.allowNegativeValue,
8151
- groupSeparator = _ref.groupSeparator,
8152
- decimalSeparator = _ref.decimalSeparator,
8153
- rest = _objectWithoutProperties(_ref, _excluded$5);
8154
-
8155
- var handleValueChange = function handleValueChange(event) {
8156
- var inputValue = event.target.value;
8157
- var unmaskedValue = unMask(inputValue);
8158
- onChange(unmaskedValue);
8159
- };
8160
-
8161
- var formatCurrency = function formatCurrency(originalValue) {
8162
- var numericValue = Number(originalValue);
8163
- var formattedValue = numericValue.toLocaleString('en-US');
8164
- return prefix + formattedValue;
8165
- };
8166
-
8167
- var formattedValue = formatCurrency(value);
8168
- return /*#__PURE__*/React__default.createElement("input", _extends({}, rest, {
8169
- type: "text",
8170
- value: formattedValue,
8171
- onChange: handleValueChange
8172
- }));
8173
- };
8174
-
8175
- CurrencyInputFormatter.defaultProps = {
8176
- value: '',
8177
- prefix: 'R',
8178
- groupSeparator: ',',
8179
- decimalSeparator: '.',
8180
- allowNegativeValue: false,
8181
- onChange: function onChange() {}
8182
- };
8183
-
8184
- /**
8185
- * A thin wrapper for 'react-select' with common defaults
8186
- * @see https://react-select.com/props for full list of props
8187
- * @param {Object} props - pass all props directly into the react-select component
8188
- */
8189
- var ReactSelectWrapper = function ReactSelectWrapper(props) {
8190
- return /*#__PURE__*/React__default.createElement(index$1, props);
8191
- };
8192
-
8193
- ReactSelectWrapper.defaultProps = {
8194
- isMulti: false,
8195
- isSearchable: false,
8196
- components: {
8197
- IndicatorSeparator: function IndicatorSeparator() {
8198
- return null;
8199
- }
8200
- },
8201
- options: [],
8202
- className: 'dropdown-select-container',
8203
- classNamePrefix: 'dropdown-select',
8204
- onChange: function onChange() {
8205
- return null;
8206
- },
8207
- name: undefined,
8208
- noOptionsMessage: function noOptionsMessage() {
8209
- return 'No Options';
8210
- }
8211
- };
8212
-
8213
- function _extends$2() {
8214
- _extends$2 = Object.assign ? Object.assign.bind() : function (target) {
8215
- for (var i = 1; i < arguments.length; i++) {
8216
- var source = arguments[i];
8195
+ function _extends$2() {
8196
+ _extends$2 = Object.assign ? Object.assign.bind() : function (target) {
8197
+ for (var i = 1; i < arguments.length; i++) {
8198
+ var source = arguments[i];
8217
8199
 
8218
8200
  for (var key in source) {
8219
8201
  if (Object.prototype.hasOwnProperty.call(source, key)) {
@@ -8970,12 +8952,12 @@
8970
8952
  /* ::<number | string, string, string> */
8971
8953
  (transparentize);
8972
8954
 
8973
- var _templateObject$x;
8974
- var baseSliderStyles = styled.css(_templateObject$x || (_templateObject$x = _taggedTemplateLiteral(["\n .rc-slider {\n position: relative;\n height: 14px;\n padding: 5px 0;\n width: 100%;\n border-radius: 6px;\n touch-action: none;\n box-sizing: border-box;\n }\n .rc-slider * {\n box-sizing: border-box;\n }\n .rc-slider-rail {\n position: absolute;\n width: 100%;\n background-color: #e9e9e9;\n height: 4px;\n border-radius: 6px;\n }\n .rc-slider-track {\n position: absolute;\n left: 0;\n height: 4px;\n border-radius: 6px;\n background-color: #abe2fb;\n }\n .rc-slider-handle {\n position: absolute;\n width: 14px;\n height: 14px;\n cursor: pointer;\n margin-top: -5px;\n border-radius: 50%;\n border: solid 2px #96dbfa;\n background-color: #fff;\n -ms-touch-action: pan-x;\n touch-action: pan-x;\n }\n .rc-slider-handle:focus {\n border-color: #57c5f7;\n box-shadow: 0 0 0 5px #96dbfa;\n outline: none;\n }\n .rc-slider-handle-click-focused:focus {\n border-color: #96dbfa;\n box-shadow: unset;\n }\n .rc-slider-handle:hover {\n border-color: #57c5f7;\n }\n .rc-slider-handle:active {\n border-color: #57c5f7;\n box-shadow: 0 0 5px #57c5f7;\n cursor: grabbing;\n }\n .rc-slider-mark {\n position: absolute;\n top: 18px;\n left: 0;\n width: 100%;\n font-size: 12px;\n }\n .rc-slider-mark-text {\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: #999;\n }\n .rc-slider-mark-text-active {\n color: #666;\n }\n .rc-slider-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n }\n .rc-slider-dot {\n position: absolute;\n bottom: -2px;\n margin-left: -4px;\n width: 8px;\n height: 8px;\n border: 2px solid #e9e9e9;\n background-color: #fff;\n cursor: pointer;\n border-radius: 50%;\n vertical-align: middle;\n }\n .rc-slider-dot-active {\n border-color: #96dbfa;\n }\n .rc-slider-dot-reverse {\n margin-left: 0;\n margin-right: -4px;\n }\n .rc-slider-disabled {\n background-color: #e9e9e9;\n }\n .rc-slider-disabled .rc-slider-track {\n background-color: #ccc;\n }\n .rc-slider-disabled .rc-slider-handle,\n .rc-slider-disabled .rc-slider-dot {\n border-color: #ccc;\n box-shadow: none;\n background-color: #fff;\n cursor: not-allowed;\n }\n .rc-slider-disabled .rc-slider-mark-text,\n .rc-slider-disabled .rc-slider-dot {\n cursor: not-allowed !important;\n }\n .rc-slider-vertical {\n width: 14px;\n height: 100%;\n padding: 0 5px;\n }\n .rc-slider-vertical .rc-slider-rail {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-track {\n left: 5px;\n bottom: 0;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-handle {\n margin-left: -5px;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n }\n .rc-slider-vertical .rc-slider-mark {\n top: 0;\n left: 18px;\n height: 100%;\n }\n .rc-slider-vertical .rc-slider-step {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-dot {\n left: 2px;\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:first-child {\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:last-child {\n margin-bottom: -4px;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,\n .rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active {\n animation-name: rcSliderTooltipZoomDownIn;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active {\n animation-name: rcSliderTooltipZoomDownOut;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n transform: scale(0, 0);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n }\n @keyframes rcSliderTooltipZoomDownIn {\n 0% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n 100% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n }\n @keyframes rcSliderTooltipZoomDownOut {\n 0% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n 100% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n }\n .rc-slider-tooltip {\n position: absolute;\n left: -9999px;\n top: -9999px;\n visibility: visible;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip-hidden {\n display: none;\n }\n .rc-slider-tooltip-placement-top {\n padding: 4px 0 8px 0;\n }\n .rc-slider-tooltip-inner {\n padding: 6px 2px;\n min-width: 24px;\n height: 24px;\n font-size: 12px;\n line-height: 1;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #6c6c6c;\n border-radius: 6px;\n box-shadow: 0 0 4px #d9d9d9;\n }\n .rc-slider-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n .rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow {\n bottom: 4px;\n left: 50%;\n margin-left: -4px;\n border-width: 4px 4px 0;\n border-top-color: #6c6c6c;\n }\n"])));
8955
+ var _templateObject$f;
8956
+ var baseSliderStyles = styled.css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n .rc-slider {\n position: relative;\n height: 14px;\n padding: 5px 0;\n width: 100%;\n border-radius: 6px;\n touch-action: none;\n box-sizing: border-box;\n }\n .rc-slider * {\n box-sizing: border-box;\n }\n .rc-slider-rail {\n position: absolute;\n width: 100%;\n background-color: #e9e9e9;\n height: 4px;\n border-radius: 6px;\n }\n .rc-slider-track {\n position: absolute;\n left: 0;\n height: 4px;\n border-radius: 6px;\n background-color: #abe2fb;\n }\n .rc-slider-handle {\n position: absolute;\n width: 14px;\n height: 14px;\n cursor: pointer;\n margin-top: -5px;\n border-radius: 50%;\n border: solid 2px #96dbfa;\n background-color: #fff;\n -ms-touch-action: pan-x;\n touch-action: pan-x;\n }\n .rc-slider-handle:focus {\n border-color: #57c5f7;\n box-shadow: 0 0 0 5px #96dbfa;\n outline: none;\n }\n .rc-slider-handle-click-focused:focus {\n border-color: #96dbfa;\n box-shadow: unset;\n }\n .rc-slider-handle:hover {\n border-color: #57c5f7;\n }\n .rc-slider-handle:active {\n border-color: #57c5f7;\n box-shadow: 0 0 5px #57c5f7;\n cursor: grabbing;\n }\n .rc-slider-mark {\n position: absolute;\n top: 18px;\n left: 0;\n width: 100%;\n font-size: 12px;\n }\n .rc-slider-mark-text {\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: #999;\n }\n .rc-slider-mark-text-active {\n color: #666;\n }\n .rc-slider-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n }\n .rc-slider-dot {\n position: absolute;\n bottom: -2px;\n margin-left: -4px;\n width: 8px;\n height: 8px;\n border: 2px solid #e9e9e9;\n background-color: #fff;\n cursor: pointer;\n border-radius: 50%;\n vertical-align: middle;\n }\n .rc-slider-dot-active {\n border-color: #96dbfa;\n }\n .rc-slider-dot-reverse {\n margin-left: 0;\n margin-right: -4px;\n }\n .rc-slider-disabled {\n background-color: #e9e9e9;\n }\n .rc-slider-disabled .rc-slider-track {\n background-color: #ccc;\n }\n .rc-slider-disabled .rc-slider-handle,\n .rc-slider-disabled .rc-slider-dot {\n border-color: #ccc;\n box-shadow: none;\n background-color: #fff;\n cursor: not-allowed;\n }\n .rc-slider-disabled .rc-slider-mark-text,\n .rc-slider-disabled .rc-slider-dot {\n cursor: not-allowed !important;\n }\n .rc-slider-vertical {\n width: 14px;\n height: 100%;\n padding: 0 5px;\n }\n .rc-slider-vertical .rc-slider-rail {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-track {\n left: 5px;\n bottom: 0;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-handle {\n margin-left: -5px;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n }\n .rc-slider-vertical .rc-slider-mark {\n top: 0;\n left: 18px;\n height: 100%;\n }\n .rc-slider-vertical .rc-slider-step {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-dot {\n left: 2px;\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:first-child {\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:last-child {\n margin-bottom: -4px;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,\n .rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active {\n animation-name: rcSliderTooltipZoomDownIn;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active {\n animation-name: rcSliderTooltipZoomDownOut;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n transform: scale(0, 0);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n }\n @keyframes rcSliderTooltipZoomDownIn {\n 0% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n 100% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n }\n @keyframes rcSliderTooltipZoomDownOut {\n 0% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n 100% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n }\n .rc-slider-tooltip {\n position: absolute;\n left: -9999px;\n top: -9999px;\n visibility: visible;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip-hidden {\n display: none;\n }\n .rc-slider-tooltip-placement-top {\n padding: 4px 0 8px 0;\n }\n .rc-slider-tooltip-inner {\n padding: 6px 2px;\n min-width: 24px;\n height: 24px;\n font-size: 12px;\n line-height: 1;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #6c6c6c;\n border-radius: 6px;\n box-shadow: 0 0 4px #d9d9d9;\n }\n .rc-slider-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n .rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow {\n bottom: 4px;\n left: 50%;\n margin-left: -4px;\n border-width: 4px 4px 0;\n border-top-color: #6c6c6c;\n }\n"])));
8975
8957
 
8976
- var _templateObject$y, _templateObject2$4, _templateObject3$2, _templateObject4$2;
8958
+ var _templateObject$g, _templateObject2$4, _templateObject3, _templateObject4;
8977
8959
  var handleDimension = '14px';
8978
- var SliderContainer = styled__default.div(_templateObject$y || (_templateObject$y = _taggedTemplateLiteral(["\n ", ";\n position: relative;\n .rc-slider-handle {\n background-color: ", ";\n border-color: ", ";\n }\n\n .rc-slider {\n margin-bottom: ", ";\n max-width: calc(100% - ", ");\n margin-left: auto;\n margin-right: auto;\n }\n .rc-slider-track {\n background-color: ", ";\n }\n\n .rc-slider-handle {\n height: ", ";\n width: ", ";\n transition: border-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;\n &:hover,\n &:focus {\n border: ", ";\n box-shadow: 0 0 0 5px\n ", ";\n }\n }\n ", "\n"])), baseSliderStyles, function (props) {
8960
+ var SliderContainer = styled__default.div(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n ", ";\n position: relative;\n .rc-slider-handle {\n background-color: ", ";\n border-color: ", ";\n }\n\n .rc-slider {\n margin-bottom: ", ";\n max-width: calc(100% - ", ");\n margin-left: auto;\n margin-right: auto;\n }\n .rc-slider-track {\n background-color: ", ";\n }\n\n .rc-slider-handle {\n height: ", ";\n width: ", ";\n transition: border-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;\n &:hover,\n &:focus {\n border: ", ";\n box-shadow: 0 0 0 5px\n ", ";\n }\n }\n ", "\n"])), baseSliderStyles, function (props) {
8979
8961
  return props.theme.colors.primary;
8980
8962
  }, function (props) {
8981
8963
  return props.theme.colors.primary;
@@ -8994,22 +8976,22 @@
8994
8976
  var getSliderMarkStyle = function getSliderMarkStyle(_ref) {
8995
8977
  var showMarks = _ref.showMarks,
8996
8978
  primary = _ref.theme.colors.primary;
8997
- var visiblityStyle = showMarks ? styled.css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral([""]))) : styled.css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n .rc-slider-mark-text,\n .rc-slider-dot {\n visibility: hidden;\n }\n "])));
8998
- return styled.css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n .rc-slider-mark-text {\n color: ", ";\n }\n\n .rc-slider-dot {\n border-color: ", ";\n background-color: white;\n }\n ", "\n "])), primary, primary, visiblityStyle);
8979
+ var visiblityStyle = showMarks ? styled.css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral([""]))) : styled.css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n .rc-slider-mark-text,\n .rc-slider-dot {\n visibility: hidden;\n }\n "])));
8980
+ return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n .rc-slider-mark-text {\n color: ", ";\n }\n\n .rc-slider-dot {\n border-color: ", ";\n background-color: white;\n }\n ", "\n "])), primary, primary, visiblityStyle);
8999
8981
  };
9000
8982
 
9001
- var _templateObject$z;
9002
- var ToolTipWrapper = styled__default.div(_templateObject$z || (_templateObject$z = _taggedTemplateLiteral(["\n position: absolute;\n right: auto;\n top: 20px;\n transform: translateX(-50%);\n width: 100px;\n text-align: center;\n"])));
8983
+ var _templateObject$h;
8984
+ var ToolTipWrapper = styled__default.div(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n position: absolute;\n right: auto;\n top: 20px;\n transform: translateX(-50%);\n width: 100px;\n text-align: center;\n"])));
9003
8985
 
9004
- var _templateObject$A;
9005
- var Footer = styled__default.div(_templateObject$A || (_templateObject$A = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-end;\n"])));
8986
+ var _templateObject$i;
8987
+ var Footer = styled__default.div(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-end;\n"])));
9006
8988
 
9007
- var _excluded$6 = ["dragging", "value", "offset", "index"],
8989
+ var _excluded$4 = ["dragging", "value", "offset", "index"],
9008
8990
  _excluded2 = ["renderTitleSection", "marks", "defaultMinValue", "defaultMaxValue", "min", "max", "toolTipComponent", "renderFooterSection", "onChange", "children", "identifier", "showMarks"];
9009
8991
 
9010
- var _templateObject$B;
9011
- var debounceBuilder = functions.debounced(100);
9012
- var ChildrenWrapper = styled__default.div(_templateObject$B || (_templateObject$B = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n"])), function (props) {
8992
+ var _templateObject$j;
8993
+ var debounceBuilder$1 = functions.debounced(100);
8994
+ var ChildrenWrapper = styled__default.div(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n"])), function (props) {
9013
8995
  return props.theme.marginPaddings[3];
9014
8996
  });
9015
8997
 
@@ -9022,7 +9004,7 @@
9022
9004
  value = handleProps.value,
9023
9005
  offset = handleProps.offset,
9024
9006
  index = handleProps.index,
9025
- restHandleProps = _objectWithoutProperties(handleProps, _excluded$6);
9007
+ restHandleProps = _objectWithoutProperties(handleProps, _excluded$4);
9026
9008
 
9027
9009
  var getToolTipProps = function getToolTipProps() {
9028
9010
  var newProps = {}; // Ensures that Tooltip component does not get ref prop
@@ -9112,7 +9094,7 @@
9112
9094
  min: currMinVal,
9113
9095
  max: currMaxVal
9114
9096
  };
9115
- debounceBuilder(function () {
9097
+ debounceBuilder$1(function () {
9116
9098
  return onChange(value);
9117
9099
  });
9118
9100
  }
@@ -9168,155 +9150,6 @@
9168
9150
  };
9169
9151
  var RangeSlider$1 = themed(RangeSlider);
9170
9152
 
9171
- var _templateObject$C, _templateObject2$5;
9172
- var Title$2 = styled__default.h1(_templateObject$C || (_templateObject$C = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: bold;\n margin-bottom: 0;\n text-transform: uppercase;\n"])), function (props) {
9173
- return props.theme.fontSizes[2];
9174
- });
9175
- var InterestsSubheadingContainer = styled__default.div(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n border-bottom: 1px solid ", ";\n margin-bottom: ", ";\n margin-top: ", ";\n width: 100%;\n align-items: center;\n"])), function (props) {
9176
- return props.theme.marginPaddings[1];
9177
- }, function (props) {
9178
- return props.theme.colors.primary;
9179
- }, function (props) {
9180
- return props.theme.marginPaddings[3];
9181
- }, function (props) {
9182
- return props.theme.marginPaddings[3];
9183
- });
9184
-
9185
- var InterestsSubheading = function InterestsSubheading(_ref) {
9186
- var title = _ref.title,
9187
- children = _ref.children,
9188
- className = _ref.className;
9189
- return /*#__PURE__*/React__default.createElement(InterestsSubheadingContainer, {
9190
- className: className
9191
- }, /*#__PURE__*/React__default.createElement(Title$2, null, title), /*#__PURE__*/React__default.createElement("div", null, children));
9192
- };
9193
-
9194
- var _templateObject$D;
9195
- var CurrencyInputWrapper = styled__default.div(_templateObject$D || (_templateObject$D = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: space-between;\n\n input[data-qe-id='masked-input-min'],\n input[data-qe-id='masked-input-max'] {\n flex-basis: 30%;\n border-left: none;\n border-right: none;\n border-top: none;\n border-bottom: 1px solid ", ";\n }\n"])), function (props) {
9196
- return props.theme.colors.primary;
9197
- });
9198
-
9199
- var debounceBuilder$1 = functions.debounced(50);
9200
-
9201
- var getMaxPrice = function getMaxPrice() {
9202
- var interestCategory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
9203
-
9204
- switch (interestCategory) {
9205
- case interestCategories.ACCESSORIES:
9206
- return interestCategoryMaxPrices.ACCESSORIES;
9207
-
9208
- case interestCategories.BAGS:
9209
- return interestCategoryMaxPrices.BAGS;
9210
-
9211
- case interestCategories.SHOES:
9212
- return interestCategoryMaxPrices.SHOES;
9213
-
9214
- case interestCategories.WATCHES:
9215
- return interestCategoryMaxPrices.WATCHES;
9216
-
9217
- case interestCategories.APPAREL:
9218
- return interestCategoryMaxPrices.APPAREL;
9219
-
9220
- default:
9221
- return 0;
9222
- }
9223
- };
9224
-
9225
- var getFooterButtons = function getFooterButtons(actionObj) {
9226
- var giveFullRange = actionObj.giveFullRange;
9227
- return /*#__PURE__*/React__default.createElement(SecondaryButton$1, {
9228
- type: "button",
9229
- onClick: giveFullRange
9230
- }, "Full Price Range");
9231
- };
9232
- /** UI Slider with minimum and max input fields give the ability to
9233
- * select a price range */
9234
-
9235
-
9236
- var PriceRangeSelector = function PriceRangeSelector(_ref) {
9237
- var onChange = _ref.onChange,
9238
- category = _ref.category;
9239
- var maxPrice = getMaxPrice(category);
9240
-
9241
- var handleSlideChange = function handleSlideChange(value) {
9242
- var min_price = value.min,
9243
- max_price = value.max;
9244
- onChange({
9245
- min_price: min_price,
9246
- max_price: max_price
9247
- });
9248
- };
9249
-
9250
- var handleMinCurrencyChange = function handleMinCurrencyChange(targetValue, currMaxVal, manuallyChangeMinValue) {
9251
- var value = parseInt(unMask(targetValue), 10);
9252
- value = Number.isNaN(value) ? 0 : value;
9253
- value = value > currMaxVal ? currMaxVal : value;
9254
- debounceBuilder$1(function () {
9255
- manuallyChangeMinValue(value);
9256
- onChange({
9257
- min_price: value,
9258
- max_price: currMaxVal
9259
- });
9260
- });
9261
- };
9262
-
9263
- var handleMaxCurrencyChange = function handleMaxCurrencyChange(targetValue, currMinVal, manuallyChangeMaxValue) {
9264
- var value = parseInt(unMask(targetValue), 10);
9265
- value = Number.isNaN(value) ? 0 : value;
9266
- value = value < currMinVal ? currMinVal : value;
9267
- debounceBuilder$1(function () {
9268
- manuallyChangeMaxValue(value);
9269
- onChange({
9270
- max_price: value,
9271
- min_price: currMinVal
9272
- });
9273
- });
9274
- };
9275
-
9276
- return /*#__PURE__*/React__default.createElement("div", {
9277
- className: "price-ranges"
9278
- }, /*#__PURE__*/React__default.createElement(RangeSlider$1, {
9279
- renderTitleSection: function renderTitleSection() {
9280
- return /*#__PURE__*/React__default.createElement(InterestsSubheading, {
9281
- title: "Price Range"
9282
- });
9283
- },
9284
- identifier: "price-range-slider",
9285
- max: maxPrice,
9286
- defaultMinValue: 0,
9287
- min: 0,
9288
- onChange: handleSlideChange,
9289
- defaultMaxValue: maxPrice,
9290
- renderFooterButtons: getFooterButtons,
9291
- title: "Price Ranges"
9292
- }, function (_ref2) {
9293
- var manuallyChangeMinValue = _ref2.manuallyChangeMinValue,
9294
- manuallyChangeMaxValue = _ref2.manuallyChangeMaxValue,
9295
- currMinVal = _ref2.currMinVal,
9296
- currMaxVal = _ref2.currMaxVal;
9297
- return /*#__PURE__*/React__default.createElement(CurrencyInputWrapper, null, /*#__PURE__*/React__default.createElement(CurrencyInputFormatter, {
9298
- "data-qe-id": "masked-input-min",
9299
- value: currMinVal,
9300
- onChange: function onChange(value) {
9301
- handleMinCurrencyChange(value, currMaxVal, manuallyChangeMinValue);
9302
- }
9303
- }), /*#__PURE__*/React__default.createElement(CurrencyInputFormatter, {
9304
- "data-qe-id": "masked-input-max",
9305
- value: currMaxVal,
9306
- onChange: function onChange(value) {
9307
- handleMaxCurrencyChange(value, currMinVal, manuallyChangeMaxValue);
9308
- }
9309
- }));
9310
- }));
9311
- };
9312
-
9313
- PriceRangeSelector.defaultProps = {
9314
- onChange: function onChange() {
9315
- return false;
9316
- },
9317
- category: ''
9318
- };
9319
-
9320
9153
  var getMaxSizeIndex = function getMaxSizeIndex() {
9321
9154
  var shoe_sizes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
9322
9155
  return shoe_sizes.length - 1;
@@ -9382,1072 +9215,120 @@
9382
9215
  shoeSizes: []
9383
9216
  };
9384
9217
 
9385
- var _templateObject$E, _templateObject2$6, _templateObject3$3, _templateObject4$3, _templateObject5$1, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30;
9386
- var HeaderWrapper = styled__default.div(_templateObject$E || (_templateObject$E = _taggedTemplateLiteral(["\n {\n display: inline-block;\n background-color: ", ";\n position: relative;\n width: 100%;\n\n .header__search-container,\n .header__search-input {\n background-color: ", ";\n }\n\n .header__search-container {\n max-width: ", ";\n margin: 0 auto;\n padding: ", " 5%;\n }\n }\n"])), function (props) {
9387
- return props.theme.rareStepColors.ntrlMin;
9388
- }, function (props) {
9389
- return props.theme.rareStepColors.primary;
9390
- }, function (props) {
9391
- return props.theme.rareStepPageSizes.container;
9392
- }, function (props) {
9393
- return props.theme.marginPaddings[1];
9394
- });
9395
- var PageContainer = styled__default.div(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n {\n max-width: ", ";\n margin: 0 auto;\n width: 100%;\n padding: 0 5%;\n display: flex;\n justify-content: space-between;\n }\n"])), function (props) {
9396
- return props.theme.rareStepPageSizes.container;
9218
+ var _templateObject$k;
9219
+ var RadioButtonsContainer = styled__default.div(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n"])));
9220
+
9221
+ var _templateObject$l;
9222
+ var ButtonListWrapper = styled__default.div(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n display: flex;\n flex-grow: 1;\n flex-wrap: ", ";\n"])), function (_ref) {
9223
+ var noWrap = _ref.noWrap;
9224
+ return noWrap ? 'nowrap' : 'wrap';
9397
9225
  });
9398
- var HeaderContainer = styled__default.div(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: space-between;\n padding: ", " 5%;\n max-width: ", ";\n margin: 0 auto;\n width: 100%;\n }\n"])), function (props) {
9399
- return props.theme.marginPaddings[1];
9400
- }, function (props) {
9401
- return props.theme.rareStepPageSizes.container;
9226
+
9227
+ var _templateObject$m;
9228
+ var Title$3 = styled__default.div(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n font-weight: bold;\n color: ", ";\n flex-basis: 40%;\n"])), function (props) {
9229
+ return props.theme.colors.base;
9402
9230
  });
9403
- var LogoFigure = styled__default.div(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n"])));
9404
- var LogoImage = styled__default.img(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n {\n width: 160px;\n cursor: pointer;\n }\n"])));
9405
- var CurrencyFlagIcon = styled__default.img(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n {\n width: 25px;\n height: 15px;\n margin-top: 9px;\n margin-right: 10px;\n }\n"])));
9406
- var SellToUsLink = styled__default.a(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n {\n color: ", ";\n font-weight: ", ";\n font-size: ", ";\n text-transform: uppercase;\n letter-spacing: 1px;\n cursor: pointer;\n text-decoration: none;\n font-style: italic;\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: none;\n }\n }\n"])), function (props) {
9407
- return props.theme.rareStepColors.secondary;
9408
- }, function (props) {
9409
- return props.theme.rareStepFontWeights.bold;
9410
- }, function (props) {
9411
- return props.theme.rareStepFontSize.h5;
9231
+
9232
+ var _templateObject$n;
9233
+ var RadioButtonLabel = styled__default.label(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n display: flex;\n margin-bottom: ", ";\n margin-right: ", ";\n"])), function (props) {
9234
+ return props.theme.marginPaddings[0];
9412
9235
  }, function (props) {
9413
- return props.theme.rareStepColors.secondary;
9236
+ return props.theme.marginPaddings[0];
9414
9237
  });
9415
- var HeaderIconsContainer = styled__default.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n {\n display: flex;\n align-items: center;\n\n .account-icon {\n &__wrapper {\n position: relative;\n }\n\n &__dropdown {\n position: absolute;\n width: 100%;\n top: 25px;\n left: 0;\n }\n }\n }\n"])));
9416
- var HeaderIcon = styled__default.img(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n {\n width: 25px;\n height: 22px;\n margin-left: ", ";\n cursor: pointer;\n }\n"])), function (props) {
9417
- return props.theme.marginPaddings[3];
9238
+
9239
+ var _templateObject$o;
9240
+ var RadioButtonCircle = styled__default.div(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n height: 20px;\n width: 20px;\n border-radius: 50%;\n margin-right: 5px;\n border: 1px solid ", ";\n display: flex;\n"])), function (props) {
9241
+ return props.theme.colors.base;
9418
9242
  });
9419
- var NavigationContainer = styled__default.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: space-between;\n background-color: ", ";\n padding-top: ", ";\n }\n"])), function (props) {
9420
- return props.theme.rareStepColors.primary;
9421
- }, function (props) {
9422
- return props.theme.marginPaddings[1];
9423
- });
9424
- var NavigationLink = styled__default.a(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-wrap: no-wrap;\n align-items: center;\n color: ", ";\n font-size: ", ";\n margin-right: ", ";\n padding-top: 2px;\n padding-bottom: ", ";\n cursor: pointer;\n border-bottom: 2px solid ", ";\n text-decoration: none;\n white-space: nowrap;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: none;\n border-bottom: 2px solid ", ";\n }\n }\n"])), function (props) {
9425
- return props.theme.rareStepColors.ntrlMin;
9426
- }, function (props) {
9427
- return props.theme.rareStepFontSize.h5;
9428
- }, function (props) {
9429
- return props.theme.marginPaddings[5];
9430
- }, function (props) {
9431
- return props.theme.marginPaddings[1];
9432
- }, function (props) {
9433
- return props.theme.rareStepColors.primary;
9434
- }, function (props) {
9435
- return props.theme.rareStepColors.ntrlMin;
9436
- }, function (props) {
9437
- return props.theme.rareStepColors.secondary;
9438
- });
9439
- var NavigationLinks = styled__default.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n {\n display: flex;\n }\n"])));
9440
- var Dropdown = styled__default.div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n {\n display: flex;\n background-color: ", ";\n padding: ", " 0;\n border-top: 1px solid ", ";\n font-size: ", ";\n position: absolute;\n width: 100%;\n }\n"])), function (props) {
9441
- return props.theme.rareStepColors.primary;
9442
- }, function (props) {
9443
- return props.theme.marginPaddings[4];
9444
- }, function (props) {
9445
- return props.theme.rareStepColors.ntrl40;
9446
- }, function (props) {
9447
- return props.theme.rareStepFontSize.h5;
9448
- });
9449
- var DropdownBrands = styled__default.div(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n width: 20%;\n }\n"])));
9450
- var DropdownModels = styled__default.ul(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n {\n padding: 0 ", ";\n border-right: 1px solid ", ";\n width: 50%;\n column-count: 3;\n }\n"])), function (props) {
9451
- return props.theme.marginPaddings[3];
9452
- }, function (props) {
9453
- return props.theme.rareStepColors.ntrl40;
9454
- });
9455
- var DropdownModelsList = styled__default.li(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n {\n list-style: none;\n }\n"])));
9456
- var DropdownFigure = styled__default.div(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n {\n display: flex;\n width: 30%;\n padding-left: ", ";\n }\n"])), function (props) {
9457
- return props.theme.marginPaddings[5];
9458
- });
9459
- var DropdownImage = styled__default.img(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n {\n width: 90%;\n height: 300px;\n object-fit: cover;\n margin-left: auto;\n max-height: 100%;\n }\n"])));
9460
- var DropdownLink = styled__default.a(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n {\n color: ", ";\n padding-bottom: ", ";\n cursor: pointer;\n text-decoration: none;\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
9461
- return props.theme.rareStepColors.ntrlMin;
9462
- }, function (props) {
9463
- return props.theme.marginPaddings[0];
9464
- }, function (props) {
9465
- return props.theme.rareStepColors.ntrlMin;
9466
- });
9467
- var DropdownBrandLinkContainer = styled__default.div(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n {\n display: flex;\n\n &:hover {\n cursor: pointer;\n\n hr {\n display: block;\n }\n\n a {\n font-weight: ", ";\n }\n }\n }\n"])), function (props) {
9468
- return props.theme.rareStepFontWeights.bold;
9469
- });
9470
- var DropdownBrandLinkHR = styled__default.hr(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n {\n display: none;\n width: 20px;\n margin: 10px 10px 0 0;\n color: ", ";\n height: 1px;\n border: 1px solid ", ";\n }\n"])), function (props) {
9471
- return props.theme.rareStepColors.secondary;
9472
- }, function (props) {
9473
- return props.theme.rareStepColors.secondary;
9474
- });
9475
- var DropdownBrandLink = styled__default.a(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n {\n color: ", ";\n padding-bottom: 0.5rem;\n text-decoration: none;\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: none;\n font-weight: ", ";\n }\n }\n"])), function (props) {
9476
- return props.theme.rareStepColors.ntrlMin;
9477
- }, function (props) {
9478
- return props.theme.rareStepColors.ntrlMin;
9479
- }, function (props) {
9480
- return props.theme.rareStepFontWeights.bold;
9481
- });
9482
- var DropdownNavigatorIcon = styled__default.img(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n {\n width: 15px;\n height: 12px;\n margin-left: ", ";\n }\n"])), function (props) {
9483
- return props.theme.marginPaddings[0];
9484
- });
9485
- var SellToUsHR = styled__default.hr(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n {\n width: 80px;\n margin-top: 10px;\n color: ", ";\n border: 1px solid ", ";\n margin-right: 10px;\n }\n"])), function (props) {
9486
- return props.theme.rareStepColors.secondary;
9487
- }, function (props) {
9488
- return props.theme.rareStepColors.secondary;
9489
- });
9490
- var SearchContainer = styled__default.div(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n {\n display: flex;\n padding: ", " 0;\n align-items: center;\n }\n"])), function (props) {
9491
- return props.theme.marginPaddings[1];
9492
- });
9493
- var SearchInput = styled__default.input(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n {\n width: 100%;\n font-size: ", ";\n padding-bottom: ", ";\n color: ", ";\n border: none;\n margin-left: ", ";\n\n &:active,\n &:focus,\n &:focus-visible {\n outline: none;\n border: none;\n }\n\n &::placeholder {\n color: ", ";\n }\n }\n"])), function (props) {
9494
- return props.theme.rareStepFontSize.footerTitle;
9495
- }, function (props) {
9496
- return props.theme.marginPaddings[0];
9497
- }, function (props) {
9498
- return props.theme.rareStepColors.ntrl40;
9499
- }, function (props) {
9500
- return props.theme.marginPaddings[3];
9501
- }, function (props) {
9502
- return props.theme.rareStepColors.ntrl40;
9503
- });
9504
- var SearchIcon = styled__default.img(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["\n {\n width: 20px;\n height: 20px;\n cursor: pointer;\n margin-bottom: 7px;\n }\n"])));
9505
- var CloseIcon = styled__default.img(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["\n {\n width: 20px;\n height: 20px;\n cursor: pointer;\n }\n"])));
9506
- var CurrencyContainer = styled__default.div(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["\n {\n display: flex;\n }\n"])));
9507
- var DropdownSearchContainer = styled__default.div(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["\n {\n background-color: ", ";\n border-top: 1px solid ", ";\n }\n"])), function (props) {
9508
- return props.theme.rareStepColors.primary;
9509
- }, function (props) {
9510
- return props.theme.rareStepColors.ntrl40;
9511
- });
9512
-
9513
- var _templateObject$F, _templateObject2$7, _templateObject3$4, _templateObject4$4, _templateObject5$2, _templateObject6$1, _templateObject7$1, _templateObject8$1, _templateObject9$1, _templateObject10$1, _templateObject11$1, _templateObject12$1, _templateObject13$1, _templateObject14$1, _templateObject15$1, _templateObject16$1, _templateObject17$1, _templateObject18$1, _templateObject19$1, _templateObject20$1, _templateObject21$1, _templateObject22$1, _templateObject23$1;
9514
- var HeaderWrapper$1 = styled__default.div(_templateObject$F || (_templateObject$F = _taggedTemplateLiteral(["\n {\n display: flex;\n background-color: ", ";\n position: relative;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: ", " 5%;\n }\n"])), function (props) {
9515
- return props.theme.rareStepColors.ntrlMin;
9516
- }, function (props) {
9517
- return props.theme.marginPaddings[3];
9518
- });
9519
- var Icon = styled__default.img(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n {\n width: 30px;\n height: 30px;\n cursor: pointer;\n }\n"])));
9520
- var Logo = styled__default.img(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n {\n width: 140px;\n height: auto;\n margin-left: 30px;\n cursor: pointer;\n }\n"])));
9521
- var IconWrapper$1 = styled__default.div(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n {\n display: flex;\n width: auto;\n height: 25px;\n\n .search-icon,\n .cart-icon {\n width: 100%;\n height: 100%;\n }\n\n .cart-icon {\n margin-left: 10px;\n }\n }\n"])));
9522
- var NavigationWrapper = styled__default.div(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n padding: ", ";\n"])), function (props) {
9523
- return props.theme.marginPaddings[1];
9524
- });
9525
- var NavigationWrapperTitle = styled__default.div(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n font-size: 16px;\n"])));
9526
- var NavigationWrapperItem = styled__default.div(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n padding: 10px 0px 0px 20px;\n font-size: 14px;\n cursor: pointer;\n"])));
9527
- var SideNavWrapper = styled__default.div(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral(["\n {\n position: relative;\n overflow: hidden;\n\n .side-nav-link--bottom {\n font-size: ", ";\n }\n }\n"])), function (props) {
9528
- return props.theme.rareStepFontSize.h6;
9529
- });
9530
- var SideNav = styled__default.div(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n {\n position: fixed;\n top: 0;\n left: -100%;\n width: 80%;\n height: 100%;\n background-color: ", ";\n color: ", ";\n padding: ", ";\n z-index: 9;\n }\n"])), function (props) {
9531
- return props.theme.rareStepColors.primary;
9532
- }, function (props) {
9533
- return props.theme.rareStepColors.ntrlMin;
9534
- }, function (props) {
9535
- return props.theme.marginPaddings[1];
9536
- });
9537
- var Overlay = styled__default.div(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteral(["\n {\n position: fixed;\n top: 0;\n right: 200%;\n width: 20%;\n height: 100%;\n background-color: ", ";\n opacity: 0.5;\n }\n"])), function (props) {
9538
- return props.theme.rareStepColors.ntrl40;
9539
- });
9540
- var CloseIcon$1 = styled__default.img(_templateObject11$1 || (_templateObject11$1 = _taggedTemplateLiteral(["\n {\n width: 25px;\n height: 25px;\n cursor: pointer;\n }\n"])));
9541
- var SideNavLink = styled__default.a(_templateObject12$1 || (_templateObject12$1 = _taggedTemplateLiteral(["\n {\n padding: ", ";\n color: ", ";\n text-decoration: none;\n text-align: left;\n display: block;\n width: 100%;\n cursor: pointer;\n }\n"])), function (props) {
9542
- return props.theme.marginPaddings[1];
9543
- }, function (props) {
9544
- return props.theme.rareStepColors.ntrlMin;
9545
- });
9546
- var CloseIconWrapper = styled__default.div(_templateObject13$1 || (_templateObject13$1 = _taggedTemplateLiteral(["\n {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n }\n"])));
9547
- var SellToUsLink$1 = styled__default.a(_templateObject14$1 || (_templateObject14$1 = _taggedTemplateLiteral(["\n {\n color: ", ";\n border: 1px solid ", ";\n background-color: transparent;\n text-transform: uppercase;\n font-weight: ", ";\n display: block;\n width: calc(100% - ", ");\n padding: ", ";\n margin: ", ";\n text-align: center;\n text-decoration: none;\n border-radius: 5px;\n letter-spacing: 1px;\n font-style: italic;\n font-size: ", ";\n }\n"])), function (props) {
9548
- return props.theme.rareStepColors.secondary;
9549
- }, function (props) {
9550
- return props.theme.rareStepColors.secondary;
9551
- }, function (props) {
9552
- return props.theme.rareStepFontWeights.bold;
9553
- }, function (props) {
9554
- return props.theme.marginPaddings[2];
9555
- }, function (props) {
9556
- return props.theme.marginPaddings[1];
9557
- }, function (props) {
9558
- return props.theme.marginPaddings[1];
9559
- }, function (props) {
9560
- return props.theme.rareStepFontSize.h5;
9561
- });
9562
- var SubMenuLinkContainer = styled__default.div(_templateObject15$1 || (_templateObject15$1 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n"])));
9563
- var SubMenuRightIcon = styled__default.img(_templateObject16$1 || (_templateObject16$1 = _taggedTemplateLiteral(["\n {\n width: 20px;\n height: 20px;\n }\n"])));
9564
- var Hr = styled__default.hr(_templateObject17$1 || (_templateObject17$1 = _taggedTemplateLiteral(["\n {\n width: 100%;\n color: ", ";\n margin: 0;\n }\n"])), function (props) {
9565
- return props.theme.rareStepColors.ntrlMax;
9566
- });
9567
- var MobileSearchContainer = styled__default.div(_templateObject18$1 || (_templateObject18$1 = _taggedTemplateLiteral(["\n {\n background-color: ", ";\n\n .header {\n &__icon {\n width: 20px;\n height: 20px;\n }\n\n &__search-container {\n border-top: 1px solid ", ";\n padding-left: 5%;\n padding-right: 5%;\n }\n\n &__search-input {\n width: 100%;\n color: ", ";\n background-color: ", ";\n\n &::placeholder {\n color: ", ";\n }\n }\n }\n }\n"])), function (props) {
9568
- return props.theme.rareStepColors.primary;
9569
- }, function (props) {
9570
- return props.theme.rareStepColors.ntrl50;
9571
- }, function (props) {
9572
- return props.theme.rareStepColors.ntrlMin;
9573
- }, function (props) {
9574
- return props.theme.rareStepColors.primary;
9575
- }, function (props) {
9576
- return props.theme.rareStepColors.ntrlMin;
9577
- });
9578
- var BackButton = styled__default.button(_templateObject19$1 || (_templateObject19$1 = _taggedTemplateLiteral(["\n {\n background-color: transparent;\n border: none;\n color: ", ";\n margin: 30px 0;\n position: relative;\n\n &:hover {\n cursor: pointer;\n background-color: transparent;\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
9579
- return props.theme.rareStepColors.ntrlMin;
9580
- }, function (props) {
9581
- return props.theme.rareStepColors.ntrlMin;
9582
- });
9583
- var BackIcon = styled__default.img(_templateObject20$1 || (_templateObject20$1 = _taggedTemplateLiteral(["\n {\n width: 20px;\n height: 20px;\n margin-right: 10px;\n position: absolute;\n top: 0;\n left: 10px;\n }\n"])));
9584
- var BackButtonContent = styled__default.div(_templateObject21$1 || (_templateObject21$1 = _taggedTemplateLiteral(["\n {\n font-size: ", ";\n text-transform: uppercase;\n color: ", ";\n margin-left: 35px;\n display: inline-block;\n }\n"])), function (props) {
9585
- return props.theme.rareStepFontSize.h5;
9586
- }, function (props) {
9587
- return props.theme.rareStepColors.ntrlMin;
9588
- });
9589
- var SideNavLinksContainer = styled__default.div(_templateObject22$1 || (_templateObject22$1 = _taggedTemplateLiteral(["\n {\n overflow-y: auto;\n overflow-x: hidden;\n height: 90%;\n padding-bottom: 50px;\n overscroll-behavior: contain;\n }\n"])));
9590
- var MenuSideNavWrapper = styled__default.div(_templateObject23$1 || (_templateObject23$1 = _taggedTemplateLiteral(["\n {\n .side-nav {\n transition: left 1s ease-in-out;\n\n &--open {\n left: 0;\n }\n\n &--close {\n left: -100%;\n }\n\n &__currency {\n margin: ", " 0 0\n ", ";\n }\n }\n\n .overlay {\n transition: right 1s ease-in-out;\n\n &--open {\n right: 0;\n }\n\n &--close {\n right: 200%;\n }\n }\n }\n"])), function (props) {
9591
- return props.theme.marginPaddings[4];
9592
- }, function (props) {
9593
- return props.theme.marginPaddings[1];
9594
- });
9595
-
9596
- var _templateObject$G, _templateObject2$8, _templateObject3$5, _templateObject4$5, _templateObject5$3, _templateObject6$2, _templateObject7$2, _templateObject8$2, _templateObject9$2, _templateObject10$2, _templateObject11$2, _templateObject12$2, _templateObject13$2, _templateObject14$2, _templateObject15$2, _templateObject16$2;
9597
- var FooterWrapper = styled__default.div(_templateObject$G || (_templateObject$G = _taggedTemplateLiteral(["\n {\n background-color: ", ";\n font-weight: ", ";\n padding-top: ", ";\n font-size: ", ";\n }\n"])), function (props) {
9598
- return props.theme.rareStepColors.ntrlMax;
9599
- }, function (props) {
9600
- return props.theme.rareStepFontWeights.bold;
9601
- }, function (props) {
9602
- return props.theme.marginPaddings[4];
9603
- }, function (props) {
9604
- return props.theme.rareStepFontSize.h5;
9605
- });
9606
- var PageContainer$1 = styled__default.div(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n {\n max-width: ", ";\n margin: 0 auto;\n width: 100%;\n padding: 0 5%;\n display: flex;\n justify-content: space-between;\n }\n"])), function (props) {
9607
- return props.theme.rareStepPageSizes.container;
9608
- });
9609
- var FooterLinksWrapper = styled__default.div(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-basis: 70%;\n padding-bottom: ", ";\n }\n"])), function (props) {
9610
- return props.theme.marginPaddings[4];
9611
- });
9612
- var FooterLinksContainer = styled__default.div(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n flex: 1;\n padding-right: ", ";\n }\n"])), function (props) {
9613
- return props.theme.marginPaddings[4];
9614
- });
9615
- var FooterTitleLink = styled__default.a(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n {\n text-transform: uppercase;\n color: ", ";\n margin-bottom: ", ";\n cursor: pointer;\n font-weight: ", ";\n font-size: ", ";\n text-decoration: none;\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
9616
- return props.theme.rareStepColors.ntrlMin;
9617
- }, function (props) {
9618
- return props.theme.marginPaddings[1];
9619
- }, function (props) {
9620
- return props.theme.rareStepFontWeights.bold;
9621
- }, function (props) {
9622
- return props.theme.rareStepFontSize.footerTitle;
9623
- }, function (props) {
9624
- return props.theme.rareStepColors.ntrlMin;
9625
- });
9626
- var FooterLink = styled__default.a(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n {\n color: ", ";\n cursor: pointer;\n margin-bottom: ", ";\n font-weight: ", ";\n text-decoration: none;\n font-size: ", ";\n\n &:hover,\n &:active {\n color: ", ";\n text-decoration: underline;\n }\n }\n"])), function (props) {
9627
- return props.theme.rareStepColors.ntrlMin;
9628
- }, function (props) {
9629
- return props.theme.space[2];
9630
- }, function (props) {
9631
- return props.theme.rareStepFontWeights.normal;
9632
- }, function (props) {
9633
- return props.theme.rareStepFontSize.h6;
9634
- }, function (props) {
9635
- return props.theme.rareStepColors.ntrlMin;
9636
- });
9637
- var FooterImage = styled__default.img(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n {\n width: 100%;\n height: 100%;\n max-height: 300px;\n object-fit: cover;\n }\n"])));
9638
- var FooterImageWrapper = styled__default.div(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n {\n flex-basis: 30%;\n padding-bottom: ", ";\n }\n"])), function (props) {
9639
- return props.theme.marginPaddings[4];
9640
- });
9641
- var FooterLogo = styled__default.img(_templateObject9$2 || (_templateObject9$2 = _taggedTemplateLiteral(["\n {\n width: 120px;\n margin-top: ", ";\n cursor: pointer;\n }\n"])), function (props) {
9642
- return props.theme.marginPaddings[5];
9643
- });
9644
- var SocialIconWrapper = styled__default.div(_templateObject10$2 || (_templateObject10$2 = _taggedTemplateLiteral(["\n {\n display: flex;\n }\n"])));
9645
- var SocialIcon = styled__default.img(_templateObject11$2 || (_templateObject11$2 = _taggedTemplateLiteral(["\n {\n width: 30px;\n height: 30px;\n margin-right: ", ";\n }\n"])), function (props) {
9646
- return props.theme.marginPaddings[0];
9647
- });
9648
- var FooterCopyrightContainer = styled__default.div(_templateObject12$2 || (_templateObject12$2 = _taggedTemplateLiteral(["\n {\n display: flex;\n padding: ", " 0;\n border-top: 1px solid ", ";\n }\n"])), function (props) {
9649
- return props.theme.marginPaddings[1];
9650
- }, function (props) {
9651
- return props.theme.rareStepColors.ntrlMin;
9652
- });
9653
- var FooterCopyrightText = styled__default.div(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n {\n color: ", ";\n font-weight: ", ";\n }\n"])), function (props) {
9654
- return props.theme.rareStepColors.ntrlMin;
9655
- }, function (props) {
9656
- return props.theme.rareStepFontWeights.normal;
9657
- });
9658
- var FooterPayments = styled__default.div(_templateObject14$2 || (_templateObject14$2 = _taggedTemplateLiteral(["\n {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n }\n"])));
9659
- var FooterPaymentImage = styled__default.img(_templateObject15$2 || (_templateObject15$2 = _taggedTemplateLiteral(["\n {\n width: 100px;\n height: 30px;\n }\n"])));
9660
- var FooterConnectContainer = styled__default.div(_templateObject16$2 || (_templateObject16$2 = _taggedTemplateLiteral(["\n {\n display: flex;\n flex-direction: column;\n }\n"])));
9661
-
9662
- var _templateObject$H;
9663
- var ALL_ITEM = {
9664
- label: 'ALL',
9665
- value: 'ALL'
9666
- };
9667
- var StyledMultiselector = styled__default.div(_templateObject$H || (_templateObject$H = _taggedTemplateLiteral(["\n .multiselector__selected-items,\n .multiselector__selectable-items {\n display: flex;\n flex-flow: no-wrap;\n margin-bottom: 40px;\n .dropdown-select-container {\n width: 100%;\n .dropdown-select {\n &__control {\n border-color: ", ";\n border-radius: 0px;\n background-color: ", ";\n color: ", ";\n }\n &__multi-value {\n background-color: ", ";\n }\n &__multi-value__label {\n color: ", ";\n font-size: 100%;\n }\n &__multi-value__remove {\n svg {\n fill: ", ";\n }\n }\n }\n }\n }\n"])), function (props) {
9668
- return props.theme.colors.primary;
9669
- }, function (props) {
9670
- return props.theme.colors.ntrlMin;
9671
- }, function (props) {
9672
- return props.theme.colors.primary;
9673
- }, function (props) {
9674
- return props.theme.colors.primary;
9675
- }, function (props) {
9676
- return props.theme.colors.ntrlMin;
9677
- }, function (props) {
9678
- return props.theme.colors.ntrlMin;
9679
- });
9680
- /**
9681
- * Multiselector with a GraphQL flavour (TODO: to be revised to make it remote api agnostic)
9682
- */
9683
-
9684
- var GraphQLDropdownSelector = /*#__PURE__*/function (_React$Component) {
9685
- _inherits(GraphQLDropdownSelector, _React$Component);
9686
-
9687
- var _super = _createSuper(GraphQLDropdownSelector);
9688
-
9689
- function GraphQLDropdownSelector(props) {
9690
- var _this;
9691
-
9692
- _classCallCheck(this, GraphQLDropdownSelector);
9693
-
9694
- _this = _super.call(this, props);
9695
-
9696
- _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (prevProps) {
9697
- if (prevProps.graphQuery !== _this.props.graphQuery) {
9698
- _this.makeRequest();
9699
- }
9700
- });
9701
-
9702
- _defineProperty(_assertThisInitialized(_this), "makeRequest", function () {
9703
- _this.pageReady.refreshPage();
9704
- });
9705
-
9706
- _defineProperty(_assertThisInitialized(_this), "emptySelected", function () {
9707
- return _this.setState({
9708
- selected: [ALL_ITEM]
9709
- });
9710
- });
9711
-
9712
- _defineProperty(_assertThisInitialized(_this), "setNewResults", function (res) {
9713
- var selectedIds = _this.state.selected.map(function (sel) {
9714
- return sel.value;
9715
- });
9716
-
9717
- var pagination = _this.props.resultProcessor(res);
9718
-
9719
- var allSelected = _this.state.selected.some(function (item) {
9720
- return item.value === ALL_ITEM.value;
9721
- });
9722
-
9723
- var newList = pagination.filter(function (newItem) {
9724
- return !selectedIds.includes(newItem.value);
9725
- });
9726
- newList = allSelected ? newList : [ALL_ITEM].concat(_toConsumableArray(newList)); // eslint-disable-next-line react/no-unused-state
9727
-
9728
- _this.setState({
9729
- list: newList,
9730
- pagination: pagination
9731
- });
9732
- });
9733
-
9734
- _defineProperty(_assertThisInitialized(_this), "onAddItem", function (addSelectedItem) {
9735
- var newSelectedList;
9736
-
9737
- if (addSelectedItem.includes(ALL_ITEM)) {
9738
- newSelectedList = [ALL_ITEM];
9739
- } else {
9740
- newSelectedList = addSelectedItem.filter(function (item) {
9741
- return item.value !== ALL_ITEM.value;
9742
- });
9743
- }
9744
-
9745
- _this.setState(function (prevState) {
9746
- return _objectSpread2(_objectSpread2({}, prevState), {}, {
9747
- selected: newSelectedList
9748
- });
9749
- }, function () {
9750
- _this.props.onChange(_this.state.selected.filter(function (item) {
9751
- return item.value !== ALL_ITEM.value;
9752
- }));
9753
- });
9754
- });
9755
-
9756
- _defineProperty(_assertThisInitialized(_this), "onIsLoading", function (flag) {
9757
- _this.setState({
9758
- isLoading: flag
9759
- });
9760
- });
9761
-
9762
- _defineProperty(_assertThisInitialized(_this), "render", function () {
9763
- var _this$props = _this.props,
9764
- baseClass = _this$props.baseClass,
9765
- identifier = _this$props.identifier,
9766
- triggerRequest = _this$props.triggerRequest,
9767
- className = _this$props.className;
9768
- var list = _this.state.list;
9769
- return /*#__PURE__*/React__default.createElement(StyledMultiselector, null, /*#__PURE__*/React__default.createElement("div", {
9770
- "data-qe-id": identifier,
9771
- className: "".concat(className, " ").concat(baseClass)
9772
- }, /*#__PURE__*/React__default.createElement(LuxityPageReady, {
9773
- ref: function ref(inst) {
9774
- _this.pageReady = inst;
9775
- },
9776
- onData: _this.setNewResults,
9777
- onIsLoading: _this.onIsLoading,
9778
- getRequestPromise: function getRequestPromise() {
9779
- return triggerRequest();
9780
- }
9781
- }), /*#__PURE__*/React__default.createElement("div", {
9782
- className: "".concat(baseClass, "__selectable-items")
9783
- }, /*#__PURE__*/React__default.createElement(ReactSelectWrapper, {
9784
- options: list,
9785
- onChange: function onChange(value) {
9786
- _this.onAddItem(value);
9787
- },
9788
- isMulti: true,
9789
- isSearchable: true
9790
- }))));
9791
- });
9792
-
9793
- _this.state = {
9794
- selected: [ALL_ITEM],
9795
- list: [],
9796
- pagination: {},
9797
- isLoading: false
9798
- };
9799
- return _this;
9800
- }
9801
-
9802
- return _createClass(GraphQLDropdownSelector);
9803
- }(React__default.Component);
9804
-
9805
- GraphQLDropdownSelector.defaultProps = {
9806
- baseClass: 'multiselector'
9807
- };
9808
- var GraphQLDropdownSelector$1 = themed(GraphQLDropdownSelector);
9809
-
9810
- /**
9811
- * Luxity flavoured GraphQLMultiselector with text Search, category and limit controls
9812
- */
9813
- var LuxityGraphQLDropdownSelector = /*#__PURE__*/function (_React$Component) {
9814
- _inherits(LuxityGraphQLDropdownSelector, _React$Component);
9815
-
9816
- var _super = _createSuper(LuxityGraphQLDropdownSelector);
9817
-
9818
- function LuxityGraphQLDropdownSelector(props) {
9819
- var _this;
9820
-
9821
- _classCallCheck(this, LuxityGraphQLDropdownSelector);
9822
-
9823
- _this = _super.call(this, props);
9824
-
9825
- _defineProperty(_assertThisInitialized(_this), "multiSelectorRef", /*#__PURE__*/React__default.createRef());
9826
-
9827
- _defineProperty(_assertThisInitialized(_this), "increaseLimit", function () {
9828
- _this.setState(function (prevState) {
9829
- return {
9830
- limit: prevState.limit + _this.props.queryLimitIncrement
9831
- };
9832
- });
9833
- });
9834
-
9835
- _defineProperty(_assertThisInitialized(_this), "onChange", function (selection) {
9836
- _this.props.onChange(selection);
9837
- });
9838
-
9839
- _defineProperty(_assertThisInitialized(_this), "render", function () {
9840
- var _this$state = _this.state,
9841
- limit = _this$state.limit,
9842
- query_arguments = _this$state.query_arguments;
9843
- var _this$props = _this.props,
9844
- title = _this$props.title,
9845
- baseClass = _this$props.baseClass,
9846
- getGraphQuery = _this$props.getGraphQuery,
9847
- resultProcessor = _this$props.resultProcessor,
9848
- graphApi = _this$props.graphApi,
9849
- identifier = _this$props.identifier,
9850
- requestInstance = _this$props.requestInstance;
9851
- return /*#__PURE__*/React__default.createElement("div", {
9852
- className: baseClass
9853
- }, /*#__PURE__*/React__default.createElement(InterestsSubheading, {
9854
- className: "".concat(baseClass, "__title"),
9855
- title: title
9856
- }), /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement(GraphQLDropdownSelector$1, {
9857
- triggerRequest: function triggerRequest() {
9858
- return requestInstance.post(graphApi, {
9859
- query: getGraphQuery(limit, 1, 'id|desc', query_arguments)
9860
- });
9861
- },
9862
- graphQuery: getGraphQuery(limit, 1, 'id|desc', query_arguments),
9863
- identifier: identifier,
9864
- ref: _this.multiSelectorRef,
9865
- onChange: _this.onChange,
9866
- resultProcessor: resultProcessor
9867
- })));
9868
- });
9869
-
9870
- _this.state = {
9871
- limit: props.baseQueryLimit,
9872
- query_arguments: props.query_arguments
9873
- };
9874
- return _this;
9875
- }
9876
-
9877
- _createClass(LuxityGraphQLDropdownSelector, [{
9878
- key: "componentDidUpdate",
9879
- value: function componentDidUpdate(prevProps) {
9880
- var _this$multiSelectorRe;
9881
-
9882
- if (prevProps.query_arguments !== this.props.query_arguments && (_this$multiSelectorRe = this.multiSelectorRef) !== null && _this$multiSelectorRe !== void 0 && _this$multiSelectorRe.current) {
9883
- this.multiSelectorRef.current.emptySelected();
9884
- }
9885
- }
9886
- }], [{
9887
- key: "getDerivedStateFromProps",
9888
- value: function getDerivedStateFromProps(props, prevState) {
9889
- if (prevState.query_arguments !== props.query_arguments) {
9890
- return {
9891
- query_arguments: props.query_arguments
9892
- };
9893
- }
9894
-
9895
- return null;
9896
- }
9897
- }]);
9898
-
9899
- return LuxityGraphQLDropdownSelector;
9900
- }(React__default.Component);
9901
-
9902
- LuxityGraphQLDropdownSelector.defaultProps = {
9903
- baseClass: '',
9904
- searchPlaceHolder: '',
9905
- queryLimitIncrement: 12,
9906
- baseQueryLimit: 12
9907
- };
9908
-
9909
- var BrandSelector = function BrandSelector(_ref) {
9910
- var onChange = _ref.onChange,
9911
- category = _ref.category,
9912
- graphApi = _ref.graphApi,
9913
- getGraphQuery = _ref.getGraphQuery,
9914
- resultProcessor = _ref.resultProcessor,
9915
- requestInstance = _ref.requestInstance;
9916
- return /*#__PURE__*/React__default.createElement(LuxityGraphQLDropdownSelector, {
9917
- baseQueryLimit: 9999,
9918
- title: "Brands",
9919
- queryId: "getBrands",
9920
- baseClass: "brand-selector",
9921
- identifier: "brand-selector",
9922
- searchPlaceHolder: "Search brands",
9923
- query_arguments: category,
9924
- onChange: onChange,
9925
- graphApi: graphApi,
9926
- getGraphQuery: getGraphQuery,
9927
- resultProcessor: resultProcessor,
9928
- requestInstance: requestInstance
9929
- });
9930
- };
9931
-
9932
- BrandSelector.defaultProps = {
9933
- resultProcessor: function resultProcessor(result) {
9934
- return result.data.data.luxity_brands.data.map(function (_ref2) {
9935
- var id = _ref2.id,
9936
- name = _ref2.name;
9937
- return {
9938
- label: name,
9939
- value: id
9940
- };
9941
- });
9942
- }
9943
- };
9944
-
9945
- var _templateObject$I, _templateObject2$9;
9946
- var ALL_ITEM$1 = {
9947
- id: 'ALL',
9948
- name: 'ALL'
9949
- };
9950
- var multiSelectorItemMaxHeight = '3rem';
9951
- var multiSelectorItemAnimationDuration = '300ms';
9952
- var multiselectorItemFadeIn = styled.keyframes(_templateObject$I || (_templateObject$I = _taggedTemplateLiteral(["\n from {\n margin: 0;\n max-height: 0px;\n opacity: 0;\n }\n to {\n max-height: ", ";\n opacity: 1;\n }\n"])), multiSelectorItemMaxHeight);
9953
- var StyledMultiselector$1 = styled__default.div(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n .multiselector__selected-items,\n .multiselector__selectable-items {\n display: flex;\n flex-flow: wrap;\n margin-left: calc(-1 * ", ");\n button {\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n padding: ", ";\n text-transform: none;\n box-sizing: border-box;\n animation: ", " ease-in-out\n ", " forwards;\n flex-basis: calc(25% - ", ");\n margin-bottom: ", ";\n margin-left: ", ";\n text-overflow: ellipsis;\n overflow-x: hidden;\n min-height: 40px;\n\n @media (max-width: ", ") {\n flex-basis: calc(50% - ", ");\n }\n }\n }\n\n .multiselector__footer {\n display: flex;\n justify-content: center;\n button {\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n background-color: ", ";\n color: ", ";\n }\n }\n"])), function (props) {
9954
- return props.theme.marginPaddings[2];
9955
- }, function (props) {
9956
- return props.theme.colors.ntrlMin;
9957
- }, function (props) {
9958
- return props.theme.colors.primary;
9959
- }, function (props) {
9960
- return props.theme.colors.primary;
9961
- }, function (props) {
9962
- return props.theme.colors.ntrlMin;
9963
- }, function (props) {
9964
- return props.theme.colors.primary;
9965
- }, function (props) {
9966
- return props.theme.marginPaddings[0];
9967
- }, multiSelectorItemAnimationDuration, multiselectorItemFadeIn, function (props) {
9968
- return props.theme.marginPaddings[2];
9969
- }, function (props) {
9970
- return props.theme.marginPaddings[2];
9971
- }, function (props) {
9972
- return props.theme.marginPaddings[2];
9973
- }, media.sm, function (props) {
9974
- return props.theme.marginPaddings[2];
9975
- }, function (props) {
9976
- return props.theme.colors.primary;
9977
- }, function (props) {
9978
- return props.theme.colors.ntrlMin;
9979
- }, function (props) {
9980
- return props.theme.colors.primary;
9981
- }, function (props) {
9982
- return props.theme.colors.ntrlMin;
9983
- });
9984
- /**
9985
- * Multiselector with a GraphQL flavour (TODO: to be revised to make it remote api agnostic)
9986
- */
9987
-
9988
- var GraphQLMultiSelector = /*#__PURE__*/function (_React$Component) {
9989
- _inherits(GraphQLMultiSelector, _React$Component);
9990
-
9991
- var _super = _createSuper(GraphQLMultiSelector);
9992
-
9993
- function GraphQLMultiSelector(props) {
9994
- var _this;
9995
-
9996
- _classCallCheck(this, GraphQLMultiSelector);
9997
-
9998
- _this = _super.call(this, props);
9999
-
10000
- _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (prevProps) {
10001
- if (prevProps.graphQuery !== _this.props.graphQuery) {
10002
- _this.makeRequest();
10003
- }
10004
- });
10005
-
10006
- _defineProperty(_assertThisInitialized(_this), "makeRequest", function () {
10007
- _this.pageReady.refreshPage();
10008
- });
10009
-
10010
- _defineProperty(_assertThisInitialized(_this), "emptySelected", function () {
10011
- return _this.setState({
10012
- selected: [ALL_ITEM$1]
10013
- });
10014
- });
10015
-
10016
- _defineProperty(_assertThisInitialized(_this), "setNewResults", function (res) {
10017
- var selectedIds = _this.state.selected.map(function (sel) {
10018
- return sel.id;
10019
- });
10020
-
10021
- var pagination = _this.props.resultProcessor(res);
10022
-
10023
- var allSelected = _this.state.selected.some(function (item) {
10024
- return item.id === ALL_ITEM$1.id;
10025
- });
10026
-
10027
- var newList = pagination.data.filter(function (newItem) {
10028
- return !selectedIds.includes(newItem.id);
10029
- });
10030
- newList = allSelected ? newList : [ALL_ITEM$1].concat(_toConsumableArray(newList));
10031
-
10032
- _this.setState({
10033
- list: newList,
10034
- pagination: pagination
10035
- });
10036
- });
10037
-
10038
- _defineProperty(_assertThisInitialized(_this), "onAddItem", function (addSelectedItem) {
10039
- _this.setState(function (prevState) {
10040
- var newSelectedList;
10041
- var newList;
10042
-
10043
- if (addSelectedItem.id === ALL_ITEM$1.id) {
10044
- // Clear Selected List
10045
- // and move previous Selected items to list
10046
- newSelectedList = [ALL_ITEM$1];
10047
- newList = prevState.list.filter(function (item) {
10048
- return item.id !== ALL_ITEM$1.id;
10049
- }).concat(prevState.selected).sort(function (a, b) {
10050
- return a.id - b.id;
10051
- });
10052
- } else {
10053
- newSelectedList = _toConsumableArray(prevState.selected.filter(function (item) {
10054
- return item.id !== ALL_ITEM$1.id;
10055
- })).concat(addSelectedItem);
10056
- newList = [ALL_ITEM$1].concat(_toConsumableArray(prevState.list.filter(function (item) {
10057
- return item.id !== ALL_ITEM$1.id;
10058
- }).filter(function (item) {
10059
- return item.id !== addSelectedItem.id;
10060
- })));
10061
- }
10062
-
10063
- return {
10064
- selected: newSelectedList,
10065
- list: newList
10066
- };
10067
- }, function () {
10068
- _this.props.onChange(_this.state.selected.filter(function (item) {
10069
- return item.id !== ALL_ITEM$1.id;
10070
- }));
10071
- });
10072
- });
10073
-
10074
- _defineProperty(_assertThisInitialized(_this), "onRemoveItem", function (removeSelectedItem) {
10075
- _this.setState(function (prevState) {
10076
- // Cannot remove ALL from selection by unselecting it
10077
- if ((removeSelectedItem === null || removeSelectedItem === void 0 ? void 0 : removeSelectedItem.id) === ALL_ITEM$1.id) {
10078
- return {};
10079
- }
10080
-
10081
- var newSelectedList = prevState.selected.filter(function (item) {
10082
- return item.id !== removeSelectedItem.id;
10083
- });
10084
-
10085
- var newList = _toConsumableArray(prevState.list).concat(removeSelectedItem).filter(function (item) {
10086
- return item.id !== ALL_ITEM$1.id;
10087
- }).sort(function (a, b) {
10088
- return a.id - b.id;
10089
- });
10090
-
10091
- return {
10092
- list: newList,
10093
- selected: newSelectedList.length ? newSelectedList : [ALL_ITEM$1]
10094
- };
10095
- }, function () {
10096
- _this.props.onChange(_this.state.selected.filter(function (item) {
10097
- return item.id !== ALL_ITEM$1.id;
10098
- }));
10099
- });
10100
- });
10101
-
10102
- _defineProperty(_assertThisInitialized(_this), "onIsLoading", function (flag) {
10103
- _this.setState({
10104
- isLoading: flag
10105
- });
10106
- });
10107
-
10108
- _defineProperty(_assertThisInitialized(_this), "render", function () {
10109
- var _this$props = _this.props,
10110
- baseClass = _this$props.baseClass,
10111
- ItemRenderer = _this$props.itemRenderer,
10112
- identifier = _this$props.identifier,
10113
- triggerRequest = _this$props.triggerRequest,
10114
- className = _this$props.className;
10115
- var _this$state = _this.state,
10116
- list = _this$state.list,
10117
- selected = _this$state.selected,
10118
- pagination = _this$state.pagination,
10119
- isLoading = _this$state.isLoading;
10120
- return /*#__PURE__*/React__default.createElement(StyledMultiselector$1, null, /*#__PURE__*/React__default.createElement("div", {
10121
- "data-qe-id": identifier,
10122
- className: "".concat(className, " ").concat(baseClass)
10123
- }, /*#__PURE__*/React__default.createElement("div", {
10124
- className: "".concat(baseClass, "__selected-items")
10125
- }, selected.map(function (item) {
10126
- return /*#__PURE__*/React__default.createElement(ItemRenderer, {
10127
- key: item.id,
10128
- item: item,
10129
- onSelect: _this.onRemoveItem,
10130
- selected: true
10131
- });
10132
- })), /*#__PURE__*/React__default.createElement(LuxityPageReady, {
10133
- ref: function ref(inst) {
10134
- _this.pageReady = inst;
10135
- },
10136
- onData: _this.setNewResults,
10137
- onIsLoading: _this.onIsLoading,
10138
- getRequestPromise: function getRequestPromise() {
10139
- return triggerRequest();
10140
- }
10141
- }), /*#__PURE__*/React__default.createElement("div", {
10142
- className: "".concat(baseClass, "__selectable-items")
10143
- }, list.map(function (item) {
10144
- return /*#__PURE__*/React__default.createElement(ItemRenderer, {
10145
- key: item.id,
10146
- item: item,
10147
- onSelect: _this.onAddItem,
10148
- selected: false
10149
- });
10150
- })), /*#__PURE__*/React__default.createElement("div", {
10151
- className: "".concat(baseClass, "__footer")
10152
- }, /*#__PURE__*/React__default.createElement(InvertedTextButton$1, {
10153
- disabled: isLoading || !pagination.has_more_pages,
10154
- onClick: _this.props.increaseLimit,
10155
- type: "button"
10156
- }, "SHOW MORE"))));
10157
- });
10158
-
10159
- _this.state = {
10160
- selected: [ALL_ITEM$1],
10161
- list: [],
10162
- pagination: {},
10163
- isLoading: false
10164
- };
10165
- return _this;
10166
- }
10167
-
10168
- return _createClass(GraphQLMultiSelector);
10169
- }(React__default.Component);
10170
9243
 
10171
- GraphQLMultiSelector.defaultProps = {
10172
- baseClass: 'multiselector'
10173
- };
10174
- var GraphQLMultiSelector$1 = themed(GraphQLMultiSelector);
9244
+ var _templateObject$p;
9245
+ var RadioButtonCircleInner = styled__default.div(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n height: 8px;\n width: 8px;\n border-radius: 50%;\n margin: auto;\n"])));
10175
9246
 
10176
- var Search = (function (props) {
10177
- return /*#__PURE__*/React__default.createElement("svg", _extends({
10178
- width: "15",
10179
- height: "15",
10180
- viewBox: "0 0 15 15",
10181
- overflow: "visible",
10182
- fill: "none",
10183
- xmlns: "http://www.w3.org/2000/svg"
10184
- }, props), /*#__PURE__*/React__default.createElement("path", {
10185
- d: "M14.82 13.93L11.21 10.32C12.1 9.23 12.64 7.83 12.64 6.31C12.64 2.83 9.81 0 6.32 0C2.83 0 0 2.83 0 6.32C0 9.81 2.83 12.64 6.32 12.64C7.84 12.64 9.23 12.1 10.32 11.21L13.93 14.81C14.17 15.06 14.57 15.06 14.81 14.81C15.06 14.57 15.06 14.18 14.82 13.93ZM6.32 11.38C3.53 11.38 1.25 9.11 1.25 6.32C1.25 3.53 3.52 1.25 6.32 1.25C9.11 1.25 11.39 3.52 11.39 6.32C11.39 9.12 9.11 11.38 6.32 11.38Z",
10186
- fill: "currentColor"
10187
- }));
9247
+ var _templateObject$q;
9248
+ var RadioButtonInput = styled__default.input(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n display: none;\n :checked ~ ", " {\n ", " {\n background-color: ", ";\n }\n }\n"])), RadioButtonCircle, RadioButtonCircleInner, function (props) {
9249
+ return props.theme.colors.base;
10188
9250
  });
10189
9251
 
10190
- var _templateObject$J;
9252
+ var _templateObject$r;
9253
+ var RadioButtonText = styled__default.div(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n"])));
10191
9254
 
10192
- var Title$3 = function Title(_ref) {
10193
- var baseClass = _ref.baseClass,
10194
- className = _ref.className,
10195
- title = _ref.title,
10196
- searchPlaceHolder = _ref.searchPlaceHolder,
10197
- onSearchChanged = _ref.onSearchChanged;
10198
- return /*#__PURE__*/React__default.createElement(InterestsSubheading, {
10199
- className: "".concat(className, " ").concat(baseClass, "__title"),
10200
- title: title
10201
- }, /*#__PURE__*/React__default.createElement("div", {
10202
- className: "title__search"
10203
- }, /*#__PURE__*/React__default.createElement(Search, null), /*#__PURE__*/React__default.createElement("input", {
10204
- placeholder: searchPlaceHolder,
10205
- type: "text",
10206
- name: "search",
10207
- onChange: onSearchChanged
10208
- })));
10209
- };
9255
+ var _templateObject$s;
9256
+ var inputMarginRight = '0.2em';
9257
+ var CheckboxLabel = styled__default.label(_templateObject$s || (_templateObject$s = _taggedTemplateLiteral(["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n\n span {\n :before {\n content: '\\2713';\n position: absolute;\n display: none;\n color: white;\n left: 0.4em;\n top: 0.1em;\n font-size: ", ";\n text-align: center;\n }\n }\n\n input {\n font-size: ", ";\n background-color: ", ";\n appearance: none;\n outline: none;\n height: 1em;\n width: 1em;\n margin-right: ", ";\n border: 1px solid ", ";\n border-radius: ", ";\n transition-duration: 0.3s;\n cursor: pointer;\n\n &:checked {\n background-color: ", ";\n }\n\n &:checked + span:before {\n display: block;\n }\n }\n"], ["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n\n span {\n :before {\n content: '\\\\2713';\n position: absolute;\n display: none;\n color: white;\n left: 0.4em;\n top: 0.1em;\n font-size: ", ";\n text-align: center;\n }\n }\n\n input {\n font-size: ", ";\n background-color: ", ";\n appearance: none;\n outline: none;\n height: 1em;\n width: 1em;\n margin-right: ", ";\n border: 1px solid ", ";\n border-radius: ", ";\n transition-duration: 0.3s;\n cursor: pointer;\n\n &:checked {\n background-color: ", ";\n }\n\n &:checked + span:before {\n display: block;\n }\n }\n"])), function (props) {
9258
+ var _props$theme;
10210
9259
 
10211
- var StyledTitle = styled__default(Title$3)(_templateObject$J || (_templateObject$J = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n font-weight: bold;\n display: flex;\n align-items: center;\n font-size: ", ";\n\n .title__search,\n .title__search {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 30px;\n margin-bottom: ", ";\n\n svg {\n margin-left: ", ";\n fill: ", ";\n stroke: ", ";\n }\n\n input {\n width: 140px;\n border: none;\n font-size: ", ";\n transition: 0.2s border-color ease-in-out;\n margin-left: ", ";\n padding: 0;\n\n :focus {\n border-color: ", ";\n border-bottom: none;\n }\n }\n }\n"])), function (props) {
10212
- return props.theme.marginPaddings[2];
10213
- }, function (props) {
10214
- return props.theme.fontSizes[2];
10215
- }, function (props) {
10216
- return props.theme.marginPaddings[0];
10217
- }, function (props) {
10218
- return props.theme.marginPaddings[3];
10219
- }, function (props) {
10220
- return props.theme.colors.primary || '';
9260
+ return (_props$theme = props.theme) !== null && _props$theme !== void 0 && _props$theme.fontSizes.length ? props.theme.fontSizes[4] : '1em';
10221
9261
  }, function (props) {
10222
- return props.theme.colors.primary || '';
9262
+ return props.theme.fontSizes[4];
10223
9263
  }, function (props) {
10224
- return props.theme.fontSizes[2];
9264
+ return props.theme.colors.ntrlMin;
9265
+ }, inputMarginRight, function (props) {
9266
+ return props.theme.colors.primary;
10225
9267
  }, function (props) {
10226
- return props.theme.marginPaddings[0];
9268
+ return props.theme.borderRadius;
10227
9269
  }, function (props) {
10228
9270
  return props.theme.colors.primary;
10229
9271
  });
10230
- var Title$4 = themed(StyledTitle);
10231
-
10232
- var debounceBuilder$2 = functions.debounced(200);
9272
+ var ErrorMessage$1 = styled__default.div({
9273
+ color: function color(props) {
9274
+ return props.theme.colors.primary;
9275
+ }
9276
+ });
10233
9277
 
10234
9278
  /**
10235
- * Luxity flavoured GraphQLMultiselector with text Search, category and limit controls
9279
+ * RadioButtons component can show multiple radios, a title and an error message
10236
9280
  */
10237
- var LuxityGraphQLMultiselector = /*#__PURE__*/function (_React$Component) {
10238
- _inherits(LuxityGraphQLMultiselector, _React$Component);
10239
-
10240
- var _super = _createSuper(LuxityGraphQLMultiselector);
10241
-
10242
- function LuxityGraphQLMultiselector(props) {
10243
- var _this;
10244
-
10245
- _classCallCheck(this, LuxityGraphQLMultiselector);
10246
-
10247
- _this = _super.call(this, props);
10248
-
10249
- _defineProperty(_assertThisInitialized(_this), "multiSelectorRef", /*#__PURE__*/React__default.createRef());
10250
-
10251
- _defineProperty(_assertThisInitialized(_this), "increaseLimit", function () {
10252
- _this.setState(function (prevState) {
10253
- return {
10254
- limit: prevState.limit + _this.props.queryLimitIncrement
10255
- };
10256
- });
10257
- });
10258
-
10259
- _defineProperty(_assertThisInitialized(_this), "onChange", function (selection) {
10260
- _this.props.onChange(selection);
10261
- });
10262
-
10263
- _defineProperty(_assertThisInitialized(_this), "onSearchChanged", function (event) {
10264
- event.preventDefault();
10265
- var searchText = event.target.value;
10266
- debounceBuilder$2(function () {
10267
- _this.setState({
10268
- nameFilter: searchText
10269
- });
10270
- });
10271
- });
10272
-
10273
- _defineProperty(_assertThisInitialized(_this), "render", function () {
10274
- var _this$state = _this.state,
10275
- limit = _this$state.limit,
10276
- category = _this$state.category,
10277
- nameFilter = _this$state.nameFilter,
10278
- brands = _this$state.brands,
10279
- models = _this$state.models,
10280
- materials = _this$state.materials;
10281
- var _this$props = _this.props,
10282
- title = _this$props.title,
10283
- baseClass = _this$props.baseClass,
10284
- getGraphQuery = _this$props.getGraphQuery,
10285
- resultProcessor = _this$props.resultProcessor,
10286
- itemRenderer = _this$props.itemRenderer,
10287
- searchPlaceHolder = _this$props.searchPlaceHolder,
10288
- graphApi = _this$props.graphApi,
10289
- identifier = _this$props.identifier,
10290
- requestInstance = _this$props.requestInstance;
10291
- return /*#__PURE__*/React__default.createElement("div", {
10292
- className: baseClass
10293
- }, /*#__PURE__*/React__default.createElement(Title$4, {
10294
- title: title,
10295
- baseClass: baseClass,
10296
- searchPlaceHolder: searchPlaceHolder,
10297
- onSearchChanged: _this.onSearchChanged
10298
- }), /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement(GraphQLMultiSelector$1, {
10299
- triggerRequest: function triggerRequest() {
10300
- return requestInstance.post(graphApi, {
10301
- query: getGraphQuery(limit, 1, 'id|desc', category, nameFilter, brands, models, materials)
10302
- });
10303
- },
10304
- graphQuery: getGraphQuery(limit, 1, 'id|desc', category, nameFilter, brands, models, materials),
10305
- identifier: identifier,
10306
- ref: _this.multiSelectorRef,
10307
- onChange: _this.onChange,
10308
- resultProcessor: resultProcessor,
10309
- increaseLimit: _this.increaseLimit,
10310
- itemRenderer: itemRenderer
10311
- })));
10312
- });
10313
-
10314
- _this.state = {
10315
- limit: props.baseQueryLimit,
10316
- category: props.category,
10317
- brands: props.brands,
10318
- models: props.models,
10319
- materials: props.materials,
10320
- nameFilter: ''
10321
- };
10322
- return _this;
10323
- }
10324
-
10325
- _createClass(LuxityGraphQLMultiselector, [{
10326
- key: "componentDidUpdate",
10327
- value: function componentDidUpdate(prevProps) {
10328
- var _this$multiSelectorRe, _this$multiSelectorRe2, _this$multiSelectorRe3, _this$multiSelectorRe4;
10329
-
10330
- if (prevProps.category !== this.props.category && (_this$multiSelectorRe = this.multiSelectorRef) !== null && _this$multiSelectorRe !== void 0 && _this$multiSelectorRe.current) {
10331
- this.multiSelectorRef.current.emptySelected();
10332
- }
10333
-
10334
- if (prevProps.brands !== this.props.brands && (_this$multiSelectorRe2 = this.multiSelectorRef) !== null && _this$multiSelectorRe2 !== void 0 && _this$multiSelectorRe2.current) {
10335
- this.multiSelectorRef.current.emptySelected();
10336
- }
10337
-
10338
- if (prevProps.models !== this.props.models && (_this$multiSelectorRe3 = this.multiSelectorRef) !== null && _this$multiSelectorRe3 !== void 0 && _this$multiSelectorRe3.current) {
10339
- this.multiSelectorRef.current.emptySelected();
10340
- }
10341
-
10342
- if (prevProps.materials !== this.props.materials && (_this$multiSelectorRe4 = this.multiSelectorRef) !== null && _this$multiSelectorRe4 !== void 0 && _this$multiSelectorRe4.current) {
10343
- this.multiSelectorRef.current.emptySelected();
10344
- }
10345
- }
10346
- }], [{
10347
- key: "getDerivedStateFromProps",
10348
- value: function getDerivedStateFromProps(props, prevState) {
10349
- if (prevState.category !== props.category) {
10350
- return {
10351
- category: props.category
10352
- };
10353
- }
10354
-
10355
- if (prevState.brands !== props.brands) {
10356
- return {
10357
- brands: props.brands
10358
- };
10359
- }
10360
-
10361
- if (prevState.models !== props.models) {
10362
- return {
10363
- models: props.models
10364
- };
10365
- }
10366
-
10367
- if (prevState.materials !== props.materials) {
10368
- return {
10369
- materials: props.materials
10370
- };
10371
- }
10372
-
10373
- return null;
10374
- }
10375
- }]);
10376
-
10377
- return LuxityGraphQLMultiselector;
10378
- }(React__default.Component);
10379
-
10380
- LuxityGraphQLMultiselector.defaultProps = {
10381
- baseClass: '',
10382
- searchPlaceHolder: '',
10383
- queryLimitIncrement: 12,
10384
- baseQueryLimit: 12
10385
- };
10386
-
10387
- var _templateObject$K;
10388
- var BaseButton = styled__default.button(_templateObject$K || (_templateObject$K = _taggedTemplateLiteral(["\n color: ", ";\n border: 1px solid ", ";\n background-color: ", ";\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n"])), function (props) {
10389
- return props.theme.colors.base;
10390
- }, function (props) {
10391
- return props.theme.colors.borderColor;
10392
- }, function (props) {
10393
- return props.theme.colors.ntrlMin;
10394
- }, function (props) {
10395
- return props.theme.colors.primary;
10396
- }, function (props) {
10397
- return props.theme.colors.ntrlMin;
10398
- });
10399
- var UnselectedButton = themed(BaseButton);
9281
+ var RadioButtons = function RadioButtons(_ref) {
9282
+ var options = _ref.options,
9283
+ name = _ref.name,
9284
+ noWrap = _ref.noWrap,
9285
+ title = _ref.title,
9286
+ errors = _ref.errors;
10400
9287
 
10401
- var ItemRenderer = function ItemRenderer(_ref) {
10402
- var item = _ref.item,
10403
- onSelect = _ref.onSelect,
10404
- selected = _ref.selected;
10405
- var props = {
10406
- onClick: function onClick(e) {
10407
- e.preventDefault();
10408
- onSelect(item);
10409
- }
10410
- };
10411
- return selected ? /*#__PURE__*/React__default.createElement(PrimaryButton$1, props, item.name) : /*#__PURE__*/React__default.createElement(UnselectedButton, props, item.name);
10412
- };
9288
+ var _useState = React.useState(errors[name]),
9289
+ _useState2 = _slicedToArray(_useState, 2),
9290
+ errMsg = _useState2[0],
9291
+ setErrMsg = _useState2[1];
10413
9292
 
10414
- var StyleSelector = function StyleSelector(_ref) {
10415
- var onChange = _ref.onChange,
10416
- category = _ref.category,
10417
- graphApi = _ref.graphApi,
10418
- itemRenderer = _ref.itemRenderer,
10419
- getGraphQuery = _ref.getGraphQuery,
10420
- resultProcessor = _ref.resultProcessor,
10421
- requestInstance = _ref.requestInstance,
10422
- brands = _ref.brands,
10423
- models = _ref.models,
10424
- materials = _ref.materials;
10425
- return /*#__PURE__*/React__default.createElement(LuxityGraphQLMultiselector, {
10426
- title: "Styles",
10427
- queryId: "getStyles",
10428
- baseQueryLimit: 16,
10429
- baseClass: "style-selector",
10430
- identifier: "style-selector",
10431
- searchPlaceHolder: "Search Styles",
10432
- category: category,
10433
- brands: brands,
10434
- models: models,
10435
- materials: materials,
10436
- onChange: onChange,
10437
- graphApi: graphApi,
10438
- itemRenderer: itemRenderer,
10439
- getGraphQuery: getGraphQuery,
10440
- resultProcessor: resultProcessor,
10441
- requestInstance: requestInstance
10442
- });
9293
+ React.useEffect(function () {
9294
+ setErrMsg(errors[name]);
9295
+ }, [errors, name]);
9296
+ return /*#__PURE__*/React__default.createElement(React.Fragment, null, /*#__PURE__*/React__default.createElement(RadioButtonsContainer, null, /*#__PURE__*/React__default.createElement(Title$3, null, title), /*#__PURE__*/React__default.createElement(ButtonListWrapper, {
9297
+ noWrap: noWrap
9298
+ }, options.map(function (_ref2, index) {
9299
+ var _ref2$actionCallback = _ref2.actionCallback,
9300
+ actionCallback = _ref2$actionCallback === void 0 ? function () {
9301
+ return null;
9302
+ } : _ref2$actionCallback,
9303
+ _ref2$value = _ref2.value,
9304
+ value = _ref2$value === void 0 ? '' : _ref2$value,
9305
+ _ref2$innerText = _ref2.innerText,
9306
+ innerText = _ref2$innerText === void 0 ? '' : _ref2$innerText,
9307
+ _ref2$checked = _ref2.checked,
9308
+ checked = _ref2$checked === void 0 ? false : _ref2$checked;
9309
+ return /*#__PURE__*/React__default.createElement(RadioButtonLabel, {
9310
+ key: "".concat(name, "-").concat(index),
9311
+ htmlFor: "".concat(name, "_").concat(index)
9312
+ }, /*#__PURE__*/React__default.createElement(RadioButtonInput, {
9313
+ id: "".concat(name, "_").concat(index),
9314
+ type: "radio",
9315
+ name: name,
9316
+ defaultChecked: checked,
9317
+ onChange: function onChange() {
9318
+ setErrMsg('');
9319
+ actionCallback(name, value);
9320
+ },
9321
+ value: value
9322
+ }), /*#__PURE__*/React__default.createElement(RadioButtonCircle, null, /*#__PURE__*/React__default.createElement(RadioButtonCircleInner, null)), /*#__PURE__*/React__default.createElement(RadioButtonText, null, innerText));
9323
+ }))), errMsg && /*#__PURE__*/React__default.createElement(ErrorMessage$1, null, errMsg));
10443
9324
  };
10444
9325
 
10445
- StyleSelector.defaultProps = {
10446
- itemRenderer: ItemRenderer,
10447
- resultProcessor: function resultProcessor(result) {
10448
- return result.data.data.luxity_styles;
10449
- }
9326
+ RadioButtons.defaultProps = {
9327
+ noWrap: false,
9328
+ title: '',
9329
+ errors: {}
10450
9330
  };
9331
+ var RadioButtons$1 = themed(RadioButtons);
10451
9332
 
10452
9333
  var shoeSizeTypes = {
10453
9334
  uk: {
@@ -10460,12 +9341,12 @@
10460
9341
  }
10461
9342
  };
10462
9343
 
10463
- var _templateObject$L, _templateObject2$a;
10464
- var TitleWrapper = styled__default.div(_templateObject$L || (_templateObject$L = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: nowrap row;\n justify-content: space-between;\n margin-bottom: ", ";\n label {\n margin-bottom: 0;\n }\n"])), function (props) {
9344
+ var _templateObject$t, _templateObject2$5;
9345
+ var TitleWrapper = styled__default.div(_templateObject$t || (_templateObject$t = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: nowrap row;\n justify-content: space-between;\n margin-bottom: ", ";\n label {\n margin-bottom: 0;\n }\n"])), function (props) {
10465
9346
  return props.theme.marginPaddings[4];
10466
9347
  });
10467
9348
  var onShoeSizeTypeChangeTimeout = 300;
10468
- var ShoeSizeFadeContainer = styled__default.div(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral(["\n transition: opacity ease-in-out ", "ms;\n opacity: ", ";\n .rc-slider-handle,\n .rc-slider-handle-2,\n .shoe-size-tooltip {\n transition: opacity ease-in-out ", "ms;\n opacity: ", ";\n }\n"])), onShoeSizeTypeChangeTimeout, function (props) {
9349
+ var ShoeSizeFadeContainer = styled__default.div(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n transition: opacity ease-in-out ", "ms;\n opacity: ", ";\n .rc-slider-handle,\n .rc-slider-handle-2,\n .shoe-size-tooltip {\n transition: opacity ease-in-out ", "ms;\n opacity: ", ";\n }\n"])), onShoeSizeTypeChangeTimeout, function (props) {
10469
9350
  return props.childVisible ? 1 : 0;
10470
9351
  }, onShoeSizeTypeChangeTimeout, function (props) {
10471
9352
  return props.childVisible ? 1 : 0;
@@ -10559,48 +9440,247 @@
10559
9440
  onChange: function onChange(value) {
10560
9441
  return handlePropOnChange(value);
10561
9442
  }
10562
- });
10563
- };
10564
-
10565
- var getShoeSizeSelector = function getShoeSizeSelector() {
10566
- var euShoeSizes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
10567
- var ukShoeShoes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
10568
-
10569
- if (shoeSizeType === shoeSizeTypes.eu.value) {
10570
- return renderShoeSizeSelector(euShoeSizes);
10571
- }
10572
-
10573
- if (shoeSizeType === shoeSizeTypes.uk.value) {
10574
- return renderShoeSizeSelector(ukShoeShoes);
10575
- }
10576
-
10577
- return null;
10578
- };
10579
-
10580
- return /*#__PURE__*/React__default.createElement(LuxityPageReady, {
10581
- getRequestPromise: triggerRequest
10582
- }, /*#__PURE__*/React__default.createElement(TitleWrapper, null, /*#__PURE__*/React__default.createElement(InterestsSubheading, {
10583
- title: "Shoe Size Range"
10584
- }, /*#__PURE__*/React__default.createElement(RadioButtons$1, shoeSizeTypeProps))), /*#__PURE__*/React__default.createElement(LuxityPageReadyContext.Consumer, null, function (_ref3) {
10585
- var _ref3$data$data = _ref3.data.data,
10586
- _ref3$data$data$luxit = _ref3$data$data.luxity_eu_shoe_sizes,
10587
- luxity_eu_shoe_sizes = _ref3$data$data$luxit === void 0 ? [] : _ref3$data$data$luxit,
10588
- _ref3$data$data$luxit2 = _ref3$data$data.luxity_uk_shoe_sizes,
10589
- luxity_uk_shoe_sizes = _ref3$data$data$luxit2 === void 0 ? [] : _ref3$data$data$luxit2;
10590
- return /*#__PURE__*/React__default.createElement(OpacityTransitionRender, {
10591
- shoeSizeType: transitionedTo
10592
- }, getShoeSizeSelector(luxity_eu_shoe_sizes, luxity_uk_shoe_sizes));
9443
+ });
9444
+ };
9445
+
9446
+ var getShoeSizeSelector = function getShoeSizeSelector() {
9447
+ var euShoeSizes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
9448
+ var ukShoeShoes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
9449
+
9450
+ if (shoeSizeType === shoeSizeTypes.eu.value) {
9451
+ return renderShoeSizeSelector(euShoeSizes);
9452
+ }
9453
+
9454
+ if (shoeSizeType === shoeSizeTypes.uk.value) {
9455
+ return renderShoeSizeSelector(ukShoeShoes);
9456
+ }
9457
+
9458
+ return null;
9459
+ };
9460
+
9461
+ return /*#__PURE__*/React__default.createElement(LuxityPageReady, {
9462
+ getRequestPromise: triggerRequest
9463
+ }, /*#__PURE__*/React__default.createElement(TitleWrapper, null, /*#__PURE__*/React__default.createElement(InterestsSubheading, {
9464
+ title: "Shoe Size Range"
9465
+ }, /*#__PURE__*/React__default.createElement(RadioButtons$1, shoeSizeTypeProps))), /*#__PURE__*/React__default.createElement(LuxityPageReadyContext.Consumer, null, function (_ref3) {
9466
+ var _ref3$data$data = _ref3.data.data,
9467
+ _ref3$data$data$luxit = _ref3$data$data.luxity_eu_shoe_sizes,
9468
+ luxity_eu_shoe_sizes = _ref3$data$data$luxit === void 0 ? [] : _ref3$data$data$luxit,
9469
+ _ref3$data$data$luxit2 = _ref3$data$data.luxity_uk_shoe_sizes,
9470
+ luxity_uk_shoe_sizes = _ref3$data$data$luxit2 === void 0 ? [] : _ref3$data$data$luxit2;
9471
+ return /*#__PURE__*/React__default.createElement(OpacityTransitionRender, {
9472
+ shoeSizeType: transitionedTo
9473
+ }, getShoeSizeSelector(luxity_eu_shoe_sizes, luxity_uk_shoe_sizes));
9474
+ }));
9475
+ };
9476
+
9477
+ WrappedShoeSizeSelector.defaultProps = {
9478
+ onChange: function onChange() {
9479
+ return false;
9480
+ }
9481
+ };
9482
+
9483
+ var _excluded$5 = ["value", "onChange", "prefix", "allowNegativeValue", "groupSeparator", "decimalSeparator"];
9484
+ var unMask = function unMask() {
9485
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
9486
+ return value.replace(/\D/g, '');
9487
+ };
9488
+ /**
9489
+ * Currency Input which formats the value to a specific format
9490
+ */
9491
+
9492
+ var CurrencyInputFormatter = function CurrencyInputFormatter(_ref) {
9493
+ var value = _ref.value,
9494
+ onChange = _ref.onChange,
9495
+ prefix = _ref.prefix,
9496
+ allowNegativeValue = _ref.allowNegativeValue,
9497
+ groupSeparator = _ref.groupSeparator,
9498
+ decimalSeparator = _ref.decimalSeparator,
9499
+ rest = _objectWithoutProperties(_ref, _excluded$5);
9500
+
9501
+ var handleValueChange = function handleValueChange(event) {
9502
+ var inputValue = event.target.value;
9503
+ var unmaskedValue = unMask(inputValue);
9504
+ onChange(unmaskedValue);
9505
+ };
9506
+
9507
+ var formatCurrency = function formatCurrency(originalValue) {
9508
+ var numericValue = Number(originalValue);
9509
+ var formattedValue = numericValue.toLocaleString('en-US');
9510
+ return prefix + formattedValue;
9511
+ };
9512
+
9513
+ var formattedValue = formatCurrency(value);
9514
+ return /*#__PURE__*/React__default.createElement("input", _extends({}, rest, {
9515
+ type: "text",
9516
+ value: formattedValue,
9517
+ onChange: handleValueChange
9518
+ }));
9519
+ };
9520
+
9521
+ CurrencyInputFormatter.defaultProps = {
9522
+ value: '',
9523
+ prefix: 'R',
9524
+ groupSeparator: ',',
9525
+ decimalSeparator: '.',
9526
+ allowNegativeValue: false,
9527
+ onChange: function onChange() {}
9528
+ };
9529
+
9530
+ var _excluded$6 = ["children"];
9531
+
9532
+ var _templateObject$u;
9533
+ var Button$4 = styled__default.button(_templateObject$u || (_templateObject$u = _taggedTemplateLiteral(["\n ", ";\n background-color: ", ";\n color: ", ";\n border: 1px solid ", ";\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:disabled {\n ", "\n &:hover {\n background-color: ", ";\n }\n }\n"])), baseButtonStyle, function (props) {
9534
+ return props.theme.colors.ntrlMin;
9535
+ }, function (props) {
9536
+ return props.theme.colors.primary;
9537
+ }, function (props) {
9538
+ return props.theme.colors.primary;
9539
+ }, function (props) {
9540
+ return props.theme.colors.primary;
9541
+ }, function (props) {
9542
+ return props.theme.colors.ntrlMin;
9543
+ }, disabledButtonStyle, function (props) {
9544
+ return props.theme.colors.base;
9545
+ });
9546
+
9547
+ var SecondaryButton = function SecondaryButton(_ref) {
9548
+ var children = _ref.children,
9549
+ restProps = _objectWithoutProperties(_ref, _excluded$6);
9550
+
9551
+ return /*#__PURE__*/React__default.createElement(Button$4, restProps, children);
9552
+ };
9553
+
9554
+ var SecondaryButton$1 = themed(SecondaryButton);
9555
+
9556
+ var _templateObject$v;
9557
+ var CurrencyInputWrapper = styled__default.div(_templateObject$v || (_templateObject$v = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: space-between;\n\n input[data-qe-id='masked-input-min'],\n input[data-qe-id='masked-input-max'] {\n flex-basis: 30%;\n border-left: none;\n border-right: none;\n border-top: none;\n border-bottom: 1px solid ", ";\n }\n"])), function (props) {
9558
+ return props.theme.colors.primary;
9559
+ });
9560
+
9561
+ var debounceBuilder$2 = functions.debounced(50);
9562
+
9563
+ var getMaxPrice = function getMaxPrice() {
9564
+ var interestCategory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
9565
+
9566
+ switch (interestCategory) {
9567
+ case interestCategories.ACCESSORIES:
9568
+ return interestCategoryMaxPrices.ACCESSORIES;
9569
+
9570
+ case interestCategories.BAGS:
9571
+ return interestCategoryMaxPrices.BAGS;
9572
+
9573
+ case interestCategories.SHOES:
9574
+ return interestCategoryMaxPrices.SHOES;
9575
+
9576
+ case interestCategories.WATCHES:
9577
+ return interestCategoryMaxPrices.WATCHES;
9578
+
9579
+ case interestCategories.APPAREL:
9580
+ return interestCategoryMaxPrices.APPAREL;
9581
+
9582
+ default:
9583
+ return 0;
9584
+ }
9585
+ };
9586
+
9587
+ var getFooterButtons = function getFooterButtons(actionObj) {
9588
+ var giveFullRange = actionObj.giveFullRange;
9589
+ return /*#__PURE__*/React__default.createElement(SecondaryButton$1, {
9590
+ type: "button",
9591
+ onClick: giveFullRange
9592
+ }, "Full Price Range");
9593
+ };
9594
+ /** UI Slider with minimum and max input fields give the ability to
9595
+ * select a price range */
9596
+
9597
+
9598
+ var PriceRangeSelector = function PriceRangeSelector(_ref) {
9599
+ var onChange = _ref.onChange,
9600
+ category = _ref.category;
9601
+ var maxPrice = getMaxPrice(category);
9602
+
9603
+ var handleSlideChange = function handleSlideChange(value) {
9604
+ var min_price = value.min,
9605
+ max_price = value.max;
9606
+ onChange({
9607
+ min_price: min_price,
9608
+ max_price: max_price
9609
+ });
9610
+ };
9611
+
9612
+ var handleMinCurrencyChange = function handleMinCurrencyChange(targetValue, currMaxVal, manuallyChangeMinValue) {
9613
+ var value = parseInt(unMask(targetValue), 10);
9614
+ value = Number.isNaN(value) ? 0 : value;
9615
+ value = value > currMaxVal ? currMaxVal : value;
9616
+ debounceBuilder$2(function () {
9617
+ manuallyChangeMinValue(value);
9618
+ onChange({
9619
+ min_price: value,
9620
+ max_price: currMaxVal
9621
+ });
9622
+ });
9623
+ };
9624
+
9625
+ var handleMaxCurrencyChange = function handleMaxCurrencyChange(targetValue, currMinVal, manuallyChangeMaxValue) {
9626
+ var value = parseInt(unMask(targetValue), 10);
9627
+ value = Number.isNaN(value) ? 0 : value;
9628
+ value = value < currMinVal ? currMinVal : value;
9629
+ debounceBuilder$2(function () {
9630
+ manuallyChangeMaxValue(value);
9631
+ onChange({
9632
+ max_price: value,
9633
+ min_price: currMinVal
9634
+ });
9635
+ });
9636
+ };
9637
+
9638
+ return /*#__PURE__*/React__default.createElement("div", {
9639
+ className: "price-ranges"
9640
+ }, /*#__PURE__*/React__default.createElement(RangeSlider$1, {
9641
+ renderTitleSection: function renderTitleSection() {
9642
+ return /*#__PURE__*/React__default.createElement(InterestsSubheading, {
9643
+ title: "Price Range"
9644
+ });
9645
+ },
9646
+ identifier: "price-range-slider",
9647
+ max: maxPrice,
9648
+ defaultMinValue: 0,
9649
+ min: 0,
9650
+ onChange: handleSlideChange,
9651
+ defaultMaxValue: maxPrice,
9652
+ renderFooterButtons: getFooterButtons,
9653
+ title: "Price Ranges"
9654
+ }, function (_ref2) {
9655
+ var manuallyChangeMinValue = _ref2.manuallyChangeMinValue,
9656
+ manuallyChangeMaxValue = _ref2.manuallyChangeMaxValue,
9657
+ currMinVal = _ref2.currMinVal,
9658
+ currMaxVal = _ref2.currMaxVal;
9659
+ return /*#__PURE__*/React__default.createElement(CurrencyInputWrapper, null, /*#__PURE__*/React__default.createElement(CurrencyInputFormatter, {
9660
+ "data-qe-id": "masked-input-min",
9661
+ value: currMinVal,
9662
+ onChange: function onChange(value) {
9663
+ handleMinCurrencyChange(value, currMaxVal, manuallyChangeMinValue);
9664
+ }
9665
+ }), /*#__PURE__*/React__default.createElement(CurrencyInputFormatter, {
9666
+ "data-qe-id": "masked-input-max",
9667
+ value: currMaxVal,
9668
+ onChange: function onChange(value) {
9669
+ handleMaxCurrencyChange(value, currMinVal, manuallyChangeMaxValue);
9670
+ }
9671
+ }));
10593
9672
  }));
10594
9673
  };
10595
9674
 
10596
- WrappedShoeSizeSelector.defaultProps = {
9675
+ PriceRangeSelector.defaultProps = {
10597
9676
  onChange: function onChange() {
10598
9677
  return false;
10599
- }
9678
+ },
9679
+ category: ''
10600
9680
  };
10601
9681
 
10602
- var _templateObject$M;
10603
- var SelectionWrapper = styled__default.div(_templateObject$M || (_templateObject$M = _taggedTemplateLiteral(["\n display: flex;\n margin-left: calc(-1 * ", ");\n label {\n margin-bottom: ", ";\n flex-basis: calc(33.33% - ", ");\n margin-bottom: ", ";\n margin-left: ", ";\n }\n @media (max-width: ", ") {\n label {\n flex-basis: calc(50% - ", ");\n }\n }\n"])), function (props) {
9682
+ var _templateObject$w;
9683
+ var SelectionWrapper = styled__default.div(_templateObject$w || (_templateObject$w = _taggedTemplateLiteral(["\n display: flex;\n margin-left: calc(-1 * ", ");\n label {\n margin-bottom: ", ";\n flex-basis: calc(33.33% - ", ");\n margin-bottom: ", ";\n margin-left: ", ";\n }\n @media (max-width: ", ") {\n label {\n flex-basis: calc(50% - ", ");\n }\n }\n"])), function (props) {
10604
9684
  return props.theme.marginPaddings[2];
10605
9685
  }, function (props) {
10606
9686
  return props.theme.marginPaddings[2];
@@ -10616,14 +9696,14 @@
10616
9696
 
10617
9697
  var _excluded$7 = ["title", "checked", "renderIcon", "onChange", "checkedValue", "unCheckedValue"];
10618
9698
 
10619
- var _templateObject$N, _templateObject2$b, _templateObject3$6;
10620
- var Content = styled__default.div(_templateObject$N || (_templateObject$N = _taggedTemplateLiteral(["\n background-color: transparent;\n border: 1px solid ", ";\n transition: 200ms ease-in-out;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ", ";\n cursor: pointer;\n"])), function (props) {
9699
+ var _templateObject$x, _templateObject2$6, _templateObject3$1;
9700
+ var Content = styled__default.div(_templateObject$x || (_templateObject$x = _taggedTemplateLiteral(["\n background-color: transparent;\n border: 1px solid ", ";\n transition: 200ms ease-in-out;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ", ";\n cursor: pointer;\n"])), function (props) {
10621
9701
  return props.theme.colors.primary;
10622
9702
  }, function (props) {
10623
9703
  return props.theme.marginPaddings[0];
10624
9704
  });
10625
- var InputText = styled__default.div(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n transition: 200ms ease-in;\n margin-left: auto;\n margin-right: auto;\n"])));
10626
- var StyledLabel = styled__default.label(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n line-height: initial;\n display: block;\n box-sizing: border-box;\n transition: 200ms ease-in-out;\n text-align: center;\n\n &:hover ", " {\n color: ", ";\n }\n\n input {\n display: none;\n &:checked ~ ", " {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n\n &:checked ~ ", " ", " {\n color: ", ";\n }\n\n &:disabled ~ ", " {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n"])), InputText, function (props) {
9705
+ var InputText = styled__default.div(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n transition: 200ms ease-in;\n margin-left: auto;\n margin-right: auto;\n"])));
9706
+ var StyledLabel = styled__default.label(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n line-height: initial;\n display: block;\n box-sizing: border-box;\n transition: 200ms ease-in-out;\n text-align: center;\n\n &:hover ", " {\n color: ", ";\n }\n\n input {\n display: none;\n &:checked ~ ", " {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n\n &:checked ~ ", " ", " {\n color: ", ";\n }\n\n &:disabled ~ ", " {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n"])), InputText, function (props) {
10627
9707
  return props.theme.colors.primary;
10628
9708
  }, Content, function (props) {
10629
9709
  return props.theme.colors.primary;
@@ -10684,8 +9764,8 @@
10684
9764
  };
10685
9765
  var CheckButton$1 = themed(CheckButton);
10686
9766
 
10687
- var MALE$1 = genders.MALE,
10688
- FEMALE$1 = genders.FEMALE;
9767
+ var MALE = genders.MALE,
9768
+ FEMALE = genders.FEMALE;
10689
9769
 
10690
9770
  /**
10691
9771
  * Stylized CheckboxButton for selecting gender
@@ -10697,10 +9777,10 @@
10697
9777
 
10698
9778
  var getTitle = function getTitle() {
10699
9779
  switch (gender) {
10700
- case MALE$1:
9780
+ case MALE:
10701
9781
  return 'Male';
10702
9782
 
10703
- case FEMALE$1:
9783
+ case FEMALE:
10704
9784
  return 'Female';
10705
9785
 
10706
9786
  default:
@@ -10720,8 +9800,8 @@
10720
9800
  name: ''
10721
9801
  };
10722
9802
 
10723
- var MALE$2 = genders.MALE,
10724
- FEMALE$2 = genders.FEMALE;
9803
+ var MALE$1 = genders.MALE,
9804
+ FEMALE$1 = genders.FEMALE;
10725
9805
 
10726
9806
  /**
10727
9807
  * GenderSelector: specialized selector to pick genders for the Interest Component
@@ -10739,18 +9819,18 @@
10739
9819
  className: "gender-selector__selection-wrapper"
10740
9820
  }, /*#__PURE__*/React__default.createElement(GenderCheckbox, {
10741
9821
  className: "gender-selector__selection-wrapper__input-container",
10742
- gender: MALE$2,
10743
- checked: MALE$2 === gender,
9822
+ gender: MALE$1,
9823
+ checked: MALE$1 === gender,
10744
9824
  onInputChange: function onInputChange(isChecked) {
10745
- return onChange(isChecked, MALE$2);
9825
+ return onChange(isChecked, MALE$1);
10746
9826
  },
10747
9827
  checkBoxButtonRef: maleInputRef
10748
9828
  }), /*#__PURE__*/React__default.createElement(GenderCheckbox, {
10749
9829
  className: "gender-selector__selection-wrapper__input-container",
10750
- gender: FEMALE$2,
10751
- checked: FEMALE$2 === gender,
9830
+ gender: FEMALE$1,
9831
+ checked: FEMALE$1 === gender,
10752
9832
  onInputChange: function onInputChange(isChecked) {
10753
- return onChange(isChecked, FEMALE$2);
9833
+ return onChange(isChecked, FEMALE$1);
10754
9834
  },
10755
9835
  checkBoxButtonRef: femaleInputRef
10756
9836
  })));
@@ -10782,28 +9862,38 @@
10782
9862
  }));
10783
9863
  });
10784
9864
 
10785
- var _templateObject$O, _templateObject2$c, _templateObject3$7, _templateObject4$6, _templateObject5$4;
10786
- var UNISEX$1 = genders.UNISEX;
10787
- var AddInterestContainer = styled__default.div(_templateObject$O || (_templateObject$O = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n border: 1px solid ", ";\n padding: ", ";\n"])), function (props) {
9865
+ var _templateObject$y;
9866
+ var SvgWrapper$1 = styled__default.span(_templateObject$y || (_templateObject$y = _taggedTemplateLiteral(["\n padding: 1rem;\n display: flex;\n svg {\n width: 23px;\n height: auto;\n }\n"])));
9867
+
9868
+ var _templateObject$z;
9869
+ var IconWrapper = styled__default.div(_templateObject$z || (_templateObject$z = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n height: auto;\n margin-bottom: 1rem;\n margin-left: 1rem;\n display: flex;\n align-items: center;\n height: auto;\n\n :hover {\n background-color: ", ";\n cursor: pointer;\n }\n\n #svg-trash {\n width: 15px;\n height: 100%;\n }\n"])), function (props) {
9870
+ return props.theme.colors.borderColor;
9871
+ }, function (props) {
9872
+ return props.theme.colors.borderColor;
9873
+ });
9874
+
9875
+ var _templateObject$A, _templateObject2$7, _templateObject3$2, _templateObject4$1, _templateObject5;
9876
+ var UNISEX = genders.UNISEX;
9877
+ var AddInterestContainer = styled__default.div(_templateObject$A || (_templateObject$A = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n border: 1px solid ", ";\n padding: ", ";\n"])), function (props) {
10788
9878
  return props.theme.marginPaddings[6];
10789
9879
  }, function (props) {
10790
9880
  return props.theme.colors.borderColor;
10791
9881
  }, function (props) {
10792
9882
  return props.theme.marginPaddings[6];
10793
9883
  });
10794
- var SaveAndCancelButtonContainer = styled__default.div(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n margin-top: ", ";\n\n @media (max-width: ", ") {\n .fl-right__item {\n flex-direction: column;\n margin-right: 0;\n margin-left: ", ";\n }\n\n button {\n margin-bottom: ", ";\n }\n }\n"])), function (props) {
9884
+ var SaveAndCancelButtonContainer = styled__default.div(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n margin-top: ", ";\n\n @media (max-width: ", ") {\n .fl-right__item {\n flex-direction: column;\n margin-right: 0;\n margin-left: ", ";\n }\n\n button {\n margin-bottom: ", ";\n }\n }\n"])), function (props) {
10795
9885
  return props.theme.marginPaddings[6];
10796
9886
  }, media.xs, function (props) {
10797
9887
  return props.theme.marginPaddings[0];
10798
9888
  }, function (props) {
10799
9889
  return props.theme.marginPaddings[1];
10800
9890
  });
10801
- var CatSelectorParagraph = styled__default.div(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n font-weight: bold;\n color: ", ";\n margin-bottom: ", ";\n"])), function (props) {
9891
+ var CatSelectorParagraph = styled__default.div(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n font-weight: bold;\n color: ", ";\n margin-bottom: ", ";\n"])), function (props) {
10802
9892
  return props.theme.colors.darkerGray;
10803
9893
  }, function (props) {
10804
9894
  return props.theme.marginPaddings[2];
10805
9895
  });
10806
- var AddInterestButton = styled__default.div(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n font-weight: bold;\n color: ", ";\n border: 1px solid ", ";\n padding-top: ", ";\n margin-bottom: ", ";\n padding-left: 1.5rem;\n width: 95%;\n font-size: 17px;\n"])), function (props) {
9896
+ var AddInterestButton = styled__default.div(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n font-weight: bold;\n color: ", ";\n border: 1px solid ", ";\n padding-top: ", ";\n margin-bottom: ", ";\n padding-left: 1.5rem;\n width: 95%;\n font-size: 17px;\n"])), function (props) {
10807
9897
  return props.theme.colors.darkerGray;
10808
9898
  }, function (props) {
10809
9899
  return props.theme.colors.borderColor;
@@ -10812,7 +9902,7 @@
10812
9902
  }, function (props) {
10813
9903
  return props.theme.marginPaddings[2];
10814
9904
  });
10815
- var AddInterestButtonContainer = styled__default.div(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n display: flex;\n\n #add-icon {\n margin-bottom: 1.5rem;\n\n svg {\n width: 15px;\n }\n }\n"])));
9905
+ var AddInterestButtonContainer = styled__default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n\n #add-icon {\n margin-bottom: 1.5rem;\n\n svg {\n width: 15px;\n }\n }\n"])));
10816
9906
 
10817
9907
  var AddIcon = function AddIcon(_ref) {
10818
9908
  var onClick = _ref.onClick,
@@ -10935,7 +10025,7 @@
10935
10025
  var payloadGender = gender[0];
10936
10026
 
10937
10027
  if (gender.length > 1 || !gender.length) {
10938
- payloadGender = UNISEX$1;
10028
+ payloadGender = UNISEX;
10939
10029
  }
10940
10030
 
10941
10031
  var basePayload = {
@@ -11072,8 +10162,221 @@
11072
10162
 
11073
10163
  var AddInterest$1 = themed(AddInterest);
11074
10164
 
11075
- var _templateObject$P;
11076
- var MyInterestTitleHeadingContainer = styled__default.div(_templateObject$P || (_templateObject$P = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n\n .heading-title-section {\n display: flex;\n justify-content: space-between;\n width: 95%;\n padding: ", ";\n }\n\n .heading-title {\n color: ", ";\n font-weight: bold;\n flex-basis: calc(100% / 6);\n margin-left: ", ";\n padding-bottom: 0;\n }\n\n .heading-title-empty {\n flex-basis: 5%;\n margin-left: 1rem;\n }\n\n @media (max-width: ", ") {\n display: none;\n }\n"])), function (props) {
10165
+ /** @format */
10166
+
10167
+ numeral.register('locale', 'en-ZA', {
10168
+ delimiters: {
10169
+ thousands: ',',
10170
+ decimal: '.'
10171
+ },
10172
+ abbreviations: {
10173
+ thousand: 'k',
10174
+ million: 'm',
10175
+ billion: 'b',
10176
+ trillion: 't'
10177
+ },
10178
+ ordinal: function ordinal() {
10179
+ return '.';
10180
+ },
10181
+ currency: {
10182
+ symbol: 'R'
10183
+ }
10184
+ });
10185
+ numeral.locale('en-ZA');
10186
+ String.locale = numeral.locale;
10187
+ /**
10188
+ * Curreny Formatter
10189
+ * @param {number} number - the number to be formatted
10190
+ * @param {boolean} round - flag to indicate if the number needs to be rounded off
10191
+ */
10192
+
10193
+ function fC(number) {
10194
+ var round = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
10195
+ var parsedNumber = parseFloat(number);
10196
+ return !Number.isNaN(parsedNumber) ? numeral(round ? Math.round(parsedNumber) : parsedNumber).format('$ 0,0.00') : 'R -';
10197
+ }
10198
+
10199
+ var Trash = (function (props) {
10200
+ return /*#__PURE__*/React__default.createElement("svg", _extends({
10201
+ version: "1.1",
10202
+ id: "svg-trash",
10203
+ xmlns: "http://www.w3.org/2000/svg",
10204
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
10205
+ x: "0px",
10206
+ y: "0px",
10207
+ viewBox: "0 0 15.1 17.5",
10208
+ xmlSpace: "preserve"
10209
+ }, props), /*#__PURE__*/React__default.createElement("g", null, /*#__PURE__*/React__default.createElement("path", {
10210
+ d: "M2.4,17.5c-0.4-0.1-0.5-0.4-0.5-0.8c0-4,0-7.9,0-11.9c0-0.1,0-0.1,0-0.2c-0.1,0-0.1,0-0.2,0c-0.3,0-0.7,0-1,0 C0.3,4.6,0,4.3,0,4C0,3.3,0,2.7,0,2c0.1-0.8,0.8-1.5,1.7-1.6c1.3,0,2.6,0,3.9,0c0.1,0,0.2,0,0.3-0.1C6,0.1,6.2,0,6.5,0 c0.7,0,1.4,0,2.1,0c0.3,0,0.5,0.1,0.6,0.3c0.1,0.1,0.1,0.1,0.2,0.1c1.3,0,2.5,0,3.8,0c0.8,0,1.4,0.4,1.7,1.1C15,1.7,15,2,15,2.3 c0,0.5,0,1,0,1.6c0,0.5-0.3,0.7-0.7,0.7c-0.4,0-0.7,0-1.1,0c0,0,0,0-0.1,0c0,0.1,0,0.1,0,0.2c0,4,0,7.9,0,11.9 c0,0.4-0.1,0.7-0.5,0.8C9.2,17.5,5.8,17.5,2.4,17.5z M11.8,16.2c0-3.9,0-7.7,0-11.6c-2.9,0-5.7,0-8.6,0c0,3.9,0,7.7,0,11.6 C6.1,16.2,9,16.2,11.8,16.2z M1.3,3.2c4.1,0,8.3,0,12.4,0c0-0.3,0-0.6,0-0.9c0-0.5-0.2-0.6-0.6-0.6c-3.7,0-7.4,0-11.1,0 c-0.1,0-0.2,0-0.3,0C1.5,1.8,1.3,2,1.3,2.2C1.3,2.5,1.3,2.9,1.3,3.2z"
10211
+ }), /*#__PURE__*/React__default.createElement("path", {
10212
+ d: "M5.1,9.8c0-1.1,0-2.3,0-3.4c0-0.4,0.2-0.7,0.5-0.7C6,5.6,6.3,5.8,6.4,6.1c0,0.1,0,0.2,0,0.3c0,2.2,0,4.5,0,6.7 c0,0.1,0,0.3-0.1,0.4C6.2,13.8,6,14,5.7,13.9c-0.3,0-0.5-0.2-0.6-0.5c0-0.1,0-0.2,0-0.3C5.1,12,5.1,10.9,5.1,9.8z"
10213
+ }), /*#__PURE__*/React__default.createElement("path", {
10214
+ d: "M9.9,9.8c0,1.1,0,2.3,0,3.4c0,0.3-0.2,0.6-0.5,0.7c-0.4,0.1-0.8-0.1-0.9-0.5c0-0.1,0-0.2,0-0.2c0-2.3,0-4.5,0-6.8 c0-0.4,0.2-0.7,0.5-0.7c0.3-0.1,0.7,0.1,0.7,0.5c0,0.1,0,0.2,0,0.3C9.9,7.6,9.9,8.7,9.9,9.8z"
10215
+ })));
10216
+ });
10217
+
10218
+ var _templateObject$B, _templateObject2$8, _templateObject3$3, _templateObject4$2;
10219
+ var MALE$2 = genders.MALE,
10220
+ FEMALE$2 = genders.FEMALE,
10221
+ UNISEX$1 = genders.UNISEX;
10222
+
10223
+ var TrashIcon = function TrashIcon(_ref) {
10224
+ var onClick = _ref.onClick,
10225
+ id = _ref.id;
10226
+ return /*#__PURE__*/React__default.createElement(IconWrapper, {
10227
+ onClick: onClick,
10228
+ id: id
10229
+ }, /*#__PURE__*/React__default.createElement(SvgWrapper$1, null, /*#__PURE__*/React__default.createElement(Trash, null)));
10230
+ };
10231
+
10232
+ var InterestItem = /*#__PURE__*/function (_React$Component) {
10233
+ _inherits(InterestItem, _React$Component);
10234
+
10235
+ var _super = _createSuper(InterestItem);
10236
+
10237
+ function InterestItem(props) {
10238
+ var _this;
10239
+
10240
+ _classCallCheck(this, InterestItem);
10241
+
10242
+ _this = _super.call(this, props);
10243
+
10244
+ _defineProperty(_assertThisInitialized(_this), "deleteInterestItem", function () {
10245
+ var id = _this.props.data.id;
10246
+
10247
+ _this.setState({
10248
+ delete: _objectSpread2(_objectSpread2({}, request), {}, {
10249
+ fetching: true
10250
+ })
10251
+ });
10252
+
10253
+ var url = _this.props.deleteInterestApi(id);
10254
+
10255
+ simpleRequest(_this.props.requestInstance, url, method.DELETE, null, function () {
10256
+ _this.setState({
10257
+ delete: _objectSpread2(_objectSpread2({}, request), {}, {
10258
+ success: true
10259
+ })
10260
+ });
10261
+
10262
+ _this.props.onDeleted(_this.props.data);
10263
+ }, function () {
10264
+ return _this.setState({
10265
+ delete: _objectSpread2({}, request)
10266
+ });
10267
+ });
10268
+ });
10269
+
10270
+ _defineProperty(_assertThisInitialized(_this), "getGender", function (gender) {
10271
+ switch (gender) {
10272
+ case MALE$2:
10273
+ return 'Male';
10274
+
10275
+ case FEMALE$2:
10276
+ return 'Female';
10277
+
10278
+ case UNISEX$1:
10279
+ default:
10280
+ return 'Unisex';
10281
+ }
10282
+ });
10283
+
10284
+ _defineProperty(_assertThisInitialized(_this), "getCategory", function (category) {
10285
+ if (category === interestCategories.APPAREL) {
10286
+ return 'CLOTHING';
10287
+ }
10288
+
10289
+ return category;
10290
+ });
10291
+
10292
+ _defineProperty(_assertThisInitialized(_this), "render", function () {
10293
+ var _data$min_shoe_size, _data$max_shoe_size;
10294
+
10295
+ var data = _this.props.data;
10296
+ var success = _this.state.delete.success;
10297
+ return /*#__PURE__*/React__default.createElement(InterestItemContainer, {
10298
+ id: "interests__item--".concat(data.id),
10299
+ className: "".concat(success && 'interests__item--hiding')
10300
+ }, /*#__PURE__*/React__default.createElement(InterestItemContent, {
10301
+ className: "interest-item__container ".concat(_this.props.className || '')
10302
+ }, /*#__PURE__*/React__default.createElement("div", {
10303
+ className: "interest-item__container_heading"
10304
+ }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Category:"), /*#__PURE__*/React__default.createElement("div", {
10305
+ id: "interest-item-".concat(data.id, "__category"),
10306
+ className: "list-items"
10307
+ }, _this.getCategory(data.category_type))), /*#__PURE__*/React__default.createElement("div", {
10308
+ className: "interest-item__container_heading"
10309
+ }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Brands:"), /*#__PURE__*/React__default.createElement("div", {
10310
+ className: "list-items"
10311
+ }, data.luxity_brands.length > 0 ? data.luxity_brands.map(function (brand) {
10312
+ return /*#__PURE__*/React__default.createElement("span", {
10313
+ key: "".concat(brand.name, "-").concat(data.id)
10314
+ }, brand.name);
10315
+ }) : 'All')), /*#__PURE__*/React__default.createElement("div", {
10316
+ className: "interest-item__container_heading"
10317
+ }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Department:"), /*#__PURE__*/React__default.createElement("div", {
10318
+ className: "list-items"
10319
+ }, _this.getGender(data.gender))), /*#__PURE__*/React__default.createElement("div", {
10320
+ className: "interest-item__container_heading"
10321
+ }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Price:"), /*#__PURE__*/React__default.createElement("div", {
10322
+ className: "list-items"
10323
+ }, fC(data.min_price), "\xA0-\xA0", fC(data.max_price))), /*#__PURE__*/React__default.createElement("div", {
10324
+ className: "interest-item__container_heading"
10325
+ }, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Style:"), /*#__PURE__*/React__default.createElement("div", {
10326
+ className: "list-items"
10327
+ }, data.luxity_styles.length > 0 ? data.luxity_styles.map(function (style) {
10328
+ return /*#__PURE__*/React__default.createElement("span", {
10329
+ key: "".concat(style.name, "-").concat(data.id)
10330
+ }, style.name);
10331
+ }) : 'All')), /*#__PURE__*/React__default.createElement("div", {
10332
+ className: "interest-item__container_heading ".concat(data.category_type === interestCategories.SHOES ? '' : 'no-shoe-size-section')
10333
+ }, data.category_type === interestCategories.SHOES ? /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(InterestItemTitle, null, "Shoe Size:"), /*#__PURE__*/React__default.createElement("div", {
10334
+ className: "list-items"
10335
+ }, "".concat((data === null || data === void 0 ? void 0 : (_data$min_shoe_size = data.min_shoe_size) === null || _data$min_shoe_size === void 0 ? void 0 : _data$min_shoe_size.size) || '', " - "), "".concat((data === null || data === void 0 ? void 0 : (_data$max_shoe_size = data.max_shoe_size) === null || _data$max_shoe_size === void 0 ? void 0 : _data$max_shoe_size.size) || '', " "))) : /*#__PURE__*/React__default.createElement(SheoSizeContentDiv, null, "-"))), /*#__PURE__*/React__default.createElement(TrashIcon, {
10336
+ id: "interest-".concat(data.id, "-delete-button"),
10337
+ onClick: function onClick() {
10338
+ if (!_this.state.delete.fetching) {
10339
+ _this.deleteInterestItem();
10340
+ }
10341
+ }
10342
+ }));
10343
+ });
10344
+
10345
+ _this.state = {
10346
+ delete: _objectSpread2({}, request)
10347
+ };
10348
+ return _this;
10349
+ }
10350
+
10351
+ return _createClass(InterestItem);
10352
+ }(React__default.Component);
10353
+
10354
+ var SheoSizeContentDiv = styled__default.div(_templateObject$B || (_templateObject$B = _taggedTemplateLiteral(["\n @media (max-width: ", ") {\n display: none;\n }\n"])), media.xs);
10355
+ var InterestItemTitle = styled__default.div(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n font-weight: bold;\n display: none;\n\n @media (max-width: ", ") {\n display: inline;\n }\n"])), media.xs);
10356
+ var InterestItemContainer = styled__default.div(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n display: flex;\n\n .no-shoe-size-section {\n @media (max-width: ", ") {\n display: none;\n }\n }\n"])), media.xs);
10357
+ var InterestItemContent = styled__default.div(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n width: 95%;\n height: 100%;\n border: 1px solid ", ";\n padding: 0.5em;\n margin-bottom: ", ";\n\n .interest-item__container_heading {\n color: ", ";\n flex-basis: calc(100% / 8);\n margin-left: ", ";\n margin-top: 0.3rem;\n\n @media (max-width: ", ") {\n display: inline;\n }\n }\n\n .list-items {\n display: inline-flex;\n flex-direction: column;\n\n @media (max-width: ", ") {\n margin-left: ", ";\n }\n }\n\n @media (max-width: ", ") {\n flex-direction: column;\n }\n"])), function (props) {
10358
+ return props.theme.colors.borderColor;
10359
+ }, function (props) {
10360
+ return props.theme.marginPaddings[1];
10361
+ }, function (props) {
10362
+ return props.theme.colors.darkerGray;
10363
+ }, function (props) {
10364
+ return props.theme.marginPaddings[1];
10365
+ }, media.xs, media.xs, function (props) {
10366
+ return props.theme.marginPaddings[0];
10367
+ }, media.xs);
10368
+ var ThemedInterestItem = themed(InterestItem);
10369
+ /**
10370
+ * The Interest Item view shows the selected interest configuration,
10371
+ * and gives user control to delete it.
10372
+ */
10373
+
10374
+ var InterestItem$1 = (function (props) {
10375
+ return /*#__PURE__*/React__default.createElement(ThemedInterestItem, props);
10376
+ });
10377
+
10378
+ var _templateObject$C;
10379
+ var MyInterestTitleHeadingContainer = styled__default.div(_templateObject$C || (_templateObject$C = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n\n .heading-title-section {\n display: flex;\n justify-content: space-between;\n width: 95%;\n padding: ", ";\n }\n\n .heading-title {\n color: ", ";\n font-weight: bold;\n flex-basis: calc(100% / 6);\n margin-left: ", ";\n padding-bottom: 0;\n }\n\n .heading-title-empty {\n flex-basis: 5%;\n margin-left: 1rem;\n }\n\n @media (max-width: ", ") {\n display: none;\n }\n"])), function (props) {
11077
10380
  return props.theme.marginPaddings[0];
11078
10381
  }, function (props) {
11079
10382
  return props.theme.colors.primary;
@@ -11103,8 +10406,8 @@
11103
10406
 
11104
10407
  var MyInterestTitleHeading$1 = themed(MyInterestTitleHeading);
11105
10408
 
11106
- var _templateObject$Q;
11107
- var SvgWrapper$2 = styled__default.span(_templateObject$Q || (_templateObject$Q = _taggedTemplateLiteral(["\n svg {\n path {\n fill: ", ";\n }\n }\n"])), function (props) {
10409
+ var _templateObject$D;
10410
+ var SvgWrapper$2 = styled__default.span(_templateObject$D || (_templateObject$D = _taggedTemplateLiteral(["\n svg {\n path {\n fill: ", ";\n }\n }\n"])), function (props) {
11108
10411
  return props.theme.colors.primary;
11109
10412
  });
11110
10413
  var AccountIcon = themed(function () {