ba-js-common-header 0.0.51 → 0.0.52

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.
@@ -18006,7 +18006,8 @@ const userInfoSlice = createSlice({
18006
18006
  username: "",
18007
18007
  hotelId: 0,
18008
18008
  guideId: 0,
18009
- hotelGroupId: 0
18009
+ hotelGroupId: 0,
18010
+ group: ""
18010
18011
  },
18011
18012
  reducers: {
18012
18013
  setUserInfo: (state, action) => action.payload
@@ -30672,451 +30673,54 @@ function getA11yRemovalMessage(selectionParameters) {
30672
30673
  keyNavigationNext: "ArrowRight",
30673
30674
  keyNavigationPrevious: "ArrowLeft"
30674
30675
  });
30675
- var _jsxFileName$9 = "/Users/patrick/git/ba-js-common-header/src/components/Header/TitleBar/HotelFinder.jsx";
30676
- function getHotelInfoFromHotelFinderHotel(hotel) {
30677
- let name;
30678
- let hotelId;
30679
- let guideId;
30680
- try {
30681
- name = hotel[0];
30682
- [hotelId, guideId] = hotel[1].split("_").map((v2) => +v2);
30683
- } catch (e2) {
30684
- }
30685
- return {
30686
- name,
30687
- hotelId,
30688
- guideId
30689
- };
30690
- }
30691
- const noMatchHotel = ["No matches, please try again", "0_0"];
30692
- function HotelFinder(props) {
30693
- const {
30694
- hotels,
30695
- defaultHotel,
30696
- selectedHotel,
30697
- handleHotelChange,
30698
- subMenuItem
30699
- } = props;
30700
- const [inputHotels, setInputHotels] = useState([]);
30701
- const [ctrlInputValue, setCtrlInputValue] = useState(defaultHotel && defaultHotel[0] || "");
30702
- const {
30703
- subMenus
30704
- } = useSelector((state) => state.headerInfo);
30705
- const dispatch = useDispatch();
30706
- const subMenuOpen = subMenus.find((id2) => id2 === subMenuItem);
30707
- const itemToString2 = (item) => item ? item[0] : "";
30708
- const {
30709
- isOpen,
30710
- getMenuProps,
30711
- getInputProps,
30712
- getComboboxProps,
30713
- highlightedIndex,
30714
- getItemProps,
30715
- closeMenu
30716
- } = useCombobox({
30717
- items: inputHotels,
30718
- itemToString: itemToString2,
30719
- initialSelectedItem: defaultHotel,
30720
- selectedItem: selectedHotel,
30721
- initialInputValue: defaultHotel && defaultHotel[0] || "",
30722
- onSelectedItemChange: ({
30723
- selectedItem
30724
- }) => {
30725
- unstable_batchedUpdates(() => {
30726
- if (selectedItem !== noMatchHotel) {
30727
- dispatch(setSelectedHotel(selectedItem));
30728
- }
30729
- dispatch(removeSubMenu(subMenuItem));
30730
- });
30731
- if (typeof handleHotelChange === "function") {
30732
- if (selectedItem !== noMatchHotel) {
30733
- handleHotelChange(getHotelInfoFromHotelFinderHotel(selectedItem));
30676
+ var jed = { exports: {} };
30677
+ /**
30678
+ * @preserve jed.js https://github.com/SlexAxton/Jed
30679
+ */
30680
+ (function(module, exports) {
30681
+ (function(root2, undef2) {
30682
+ var ArrayProto = Array.prototype, ObjProto = Object.prototype, slice = ArrayProto.slice, hasOwnProp = ObjProto.hasOwnProperty, nativeForEach = ArrayProto.forEach, breaker = {};
30683
+ var _2 = {
30684
+ forEach: function(obj, iterator, context) {
30685
+ var i2, l2, key;
30686
+ if (obj === null) {
30687
+ return;
30734
30688
  }
30735
- }
30736
- document.querySelector("#hd-property-input").blur();
30737
- },
30738
- onInputValueChange: ({
30739
- inputValue
30740
- }) => {
30741
- const inputValueLC = inputValue.toLowerCase();
30742
- const matchingHotels = hotels.filter((hotel) => {
30743
- if (!inputValueLC)
30744
- return false;
30745
- const hotelNameLC = itemToString2(hotel).toLowerCase().trim();
30746
- return hotelNameLC.match(`(^|\\s)${inputValueLC}`);
30747
- });
30748
- if (matchingHotels.length > 0) {
30749
- setInputHotels(matchingHotels);
30750
- } else if (!inputValueLC) {
30751
- setInputHotels([]);
30752
- closeMenu();
30753
- } else {
30754
- setInputHotels([noMatchHotel]);
30755
- }
30756
- setCtrlInputValue(inputValue);
30757
- }
30758
- });
30759
- return /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("ul", {
30760
- className: cn("col-12", "col-lg", "py-3", "px-lg-0", "py-lg-0", "list-unstyled", "hd-nav-second-level", {
30761
- "hd-submenu-opened": subMenuOpen
30762
- }),
30763
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("li", {
30764
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30765
- id: "hd-property-search",
30766
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("label", {
30767
- htmlFor: "hd-property-input",
30768
- className: "form-label d-lg-none visually-hidden",
30769
- children: "Select property"
30770
- }, void 0, false, {
30771
- fileName: _jsxFileName$9,
30772
- lineNumber: 111,
30773
- columnNumber: 11
30774
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", __spreadProps(__spreadValues({
30775
- id: "hd-property-input-container"
30776
- }, getComboboxProps()), {
30777
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("input", __spreadProps(__spreadValues({}, getInputProps({
30778
- onChange: (e2) => {
30779
- const cursorPos = e2.target.selectionStart;
30780
- setTimeout(() => {
30781
- e2.target.setSelectionRange(cursorPos, cursorPos);
30782
- }, 0);
30689
+ if (nativeForEach && obj.forEach === nativeForEach) {
30690
+ obj.forEach(iterator, context);
30691
+ } else if (obj.length === +obj.length) {
30692
+ for (i2 = 0, l2 = obj.length; i2 < l2; i2++) {
30693
+ if (i2 in obj && iterator.call(context, obj[i2], i2, obj) === breaker) {
30694
+ return;
30783
30695
  }
30784
- })), {
30785
- type: "text",
30786
- className: "form-control",
30787
- placeholder: "hotel name",
30788
- id: "hd-property-input",
30789
- value: ctrlInputValue,
30790
- onBlur: (e2) => {
30791
- const {
30792
- name
30793
- } = getHotelInfoFromHotelFinderHotel(selectedHotel);
30794
- if (e2.target.value !== name) {
30795
- setCtrlInputValue(name);
30696
+ }
30697
+ } else {
30698
+ for (key in obj) {
30699
+ if (hasOwnProp.call(obj, key)) {
30700
+ if (iterator.call(context, obj[key], key, obj) === breaker) {
30701
+ return;
30796
30702
  }
30797
30703
  }
30798
- }), void 0, false, {
30799
- fileName: _jsxFileName$9,
30800
- lineNumber: 118,
30801
- columnNumber: 13
30802
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("ul", __spreadProps(__spreadValues({
30803
- className: "mb-0 px-3 list-unstyled shadow"
30804
- }, getMenuProps()), {
30805
- children: isOpen && inputHotels.map((hotel, index2) => /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("li", __spreadProps(__spreadValues({
30806
- className: "py-3 py-lg-2"
30807
- }, getItemProps({
30808
- hotel,
30809
- index: index2
30810
- })), {
30811
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30812
- style: {
30813
- display: "flex",
30814
- justifyContent: "space-between",
30815
- alignItems: "center"
30816
- },
30817
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30818
- children: hotel[0]
30819
- }, void 0, false, {
30820
- fileName: _jsxFileName$9,
30821
- lineNumber: 158,
30822
- columnNumber: 23
30823
- }, this), hotel === selectedHotel && /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.Tick, {}, void 0, false, {
30824
- fileName: _jsxFileName$9,
30825
- lineNumber: 159,
30826
- columnNumber: 51
30827
- }, this)]
30828
- }, void 0, true, {
30829
- fileName: _jsxFileName$9,
30830
- lineNumber: 151,
30831
- columnNumber: 21
30832
- }, this)
30833
- }), hotel[1], false, {
30834
- fileName: _jsxFileName$9,
30835
- lineNumber: 145,
30836
- columnNumber: 19
30837
- }, this))
30838
- }), void 0, false, {
30839
- fileName: _jsxFileName$9,
30840
- lineNumber: 142,
30841
- columnNumber: 13
30842
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.Search, {
30843
- className: "hd-icon hd-icon-search"
30844
- }, void 0, false, {
30845
- fileName: _jsxFileName$9,
30846
- lineNumber: 164,
30847
- columnNumber: 13
30848
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.Close, {
30849
- className: "hd-icon hd-icon-close",
30850
- onClick: () => {
30851
- setCtrlInputValue("");
30852
- closeMenu();
30853
- },
30854
- onMouseDown: (e2) => {
30855
- e2.preventDefault();
30856
- }
30857
- }, void 0, false, {
30858
- fileName: _jsxFileName$9,
30859
- lineNumber: 165,
30860
- columnNumber: 13
30861
- }, this)]
30862
- }), void 0, true, {
30863
- fileName: _jsxFileName$9,
30864
- lineNumber: 117,
30865
- columnNumber: 11
30866
- }, this)]
30867
- }, void 0, true, {
30868
- fileName: _jsxFileName$9,
30869
- lineNumber: 110,
30870
- columnNumber: 9
30871
- }, this)
30872
- }, void 0, false, {
30873
- fileName: _jsxFileName$9,
30874
- lineNumber: 109,
30875
- columnNumber: 7
30876
- }, this)
30877
- }, void 0, false, {
30878
- fileName: _jsxFileName$9,
30879
- lineNumber: 95,
30880
- columnNumber: 5
30881
- }, this);
30882
- }
30883
- HotelFinder.propTypes = {
30884
- hotels: propTypes.exports.arrayOf(propTypes.exports.arrayOf(propTypes.exports.string)).isRequired,
30885
- defaultHotel: propTypes.exports.arrayOf(propTypes.exports.string),
30886
- selectedHotel: propTypes.exports.arrayOf(propTypes.exports.string),
30887
- handleHotelChange: propTypes.exports.func,
30888
- subMenuItem: propTypes.exports.oneOfType([propTypes.exports.string, propTypes.exports.number]).isRequired
30889
- };
30890
- HotelFinder.defaultProps = {
30891
- defaultHotel: void 0,
30892
- selectedHotel: void 0,
30893
- handleHotelChange: void 0
30894
- };
30895
- var _jsxFileName$8 = "/Users/patrick/git/ba-js-common-header/src/components/Header/TitleBar/PropertySelector.jsx";
30896
- function PropertySelector(props) {
30897
- const {
30898
- handleHotelChange
30899
- } = props;
30900
- const [
30901
- subMenuItem
30902
- ] = useState("Select property");
30903
- const userInfo = useSelector((state) => state.userInfo);
30904
- const {
30905
- isOpen,
30906
- isMobileOrTablet
30907
- } = useSelector((state) => state.headerInfo);
30908
- const {
30909
- propertySelector
30910
- } = useSelector((state) => state.titleBar);
30911
- const {
30912
- items: hotelFinderHotels,
30913
- defaultHotel,
30914
- selectedHotel
30915
- } = useSelector((state) => state.hotels);
30916
- const [ref, {
30917
- height
30918
- }] = useMeasure$1();
30919
- const transitions = useTransition(!isMobileOrTablet || isOpen, {
30920
- from: {
30921
- height: 0
30922
- },
30923
- enter: {
30924
- height
30925
- },
30926
- leave: {
30927
- height: 0
30928
- },
30929
- update: {
30930
- height
30931
- },
30932
- config: __spreadProps(__spreadValues({}, config.stiff), {
30933
- clamp: true
30934
- })
30935
- });
30936
- const dispatch = useDispatch();
30937
- useEffect(() => {
30938
- (async () => {
30939
- if (propertySelector) {
30940
- let {
30941
- type,
30942
- items = []
30943
- } = propertySelector;
30944
- if (type === "fetch") {
30945
- try {
30946
- const res = await fetch(items);
30947
- items = await res.json();
30948
- } catch (e2) {
30949
- console.error(e2);
30950
- }
30951
- }
30952
- const foundHotel = items.find((hotel) => {
30953
- const [hotelId, guideId] = hotel[1].split("_").map((id2) => +id2);
30954
- return userInfo.hotelId === hotelId && userInfo.guideId === guideId;
30955
- });
30956
- unstable_batchedUpdates(() => {
30957
- dispatch(setHotels(items));
30958
- if (foundHotel) {
30959
- dispatch(setDefaultHotel(foundHotel));
30960
- dispatch(setSelectedHotel(foundHotel));
30961
- }
30962
- });
30963
- }
30964
- })();
30965
- }, [propertySelector]);
30966
- return transitions((styles, item) => item && /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(animated.div, {
30967
- className: "col-12 col-lg me-lg-auto px-0 order-lg-3",
30968
- id: "hd-property",
30969
- style: isMobileOrTablet ? __spreadProps(__spreadValues({}, styles), {
30970
- display: "block"
30971
- }) : {},
30972
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("ul", {
30973
- ref,
30974
- className: "row list-unstyled mx-0 mb-0 hd-nav-first-level",
30975
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("li", {
30976
- className: "col-lg-auto align-items-center",
30977
- onClick: () => {
30978
- dispatch(addSubMenu(subMenuItem));
30979
- },
30980
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30981
- className: "row py-lg-0 align-items-center",
30982
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30983
- className: "col col-lg-auto py-2 py-lg-0",
30984
- id: "hd-group-property-name",
30985
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("span", {
30986
- className: "ps-lg-3 py-3 py-lg-0 d-block",
30987
- id: "hd-group-name",
30988
- children: userInfo.group
30989
- }, void 0, false, {
30990
- fileName: _jsxFileName$8,
30991
- lineNumber: 85,
30992
- columnNumber: 19
30993
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30994
- className: "row me-0 d-lg-none align-items-center",
30995
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
30996
- className: "col",
30997
- children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("small", {
30998
- className: "pt-2",
30999
- children: subMenuItem
31000
- }, void 0, false, {
31001
- fileName: _jsxFileName$8,
31002
- lineNumber: 93,
31003
- columnNumber: 23
31004
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("span", {
31005
- className: "d-block",
31006
- id: "hd-property-name",
31007
- children: selectedHotel && selectedHotel[0] || defaultHotel && defaultHotel[0]
31008
- }, void 0, false, {
31009
- fileName: _jsxFileName$8,
31010
- lineNumber: 94,
31011
- columnNumber: 23
31012
- }, this)]
31013
- }, void 0, true, {
31014
- fileName: _jsxFileName$8,
31015
- lineNumber: 92,
31016
- columnNumber: 21
31017
- }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31018
- className: "col-auto p-2 d-block",
31019
- children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.ArrowAngleRight, {
31020
- className: "hd-icon hd-icon-arrow-angle-right"
31021
- }, void 0, false, {
31022
- fileName: _jsxFileName$8,
31023
- lineNumber: 100,
31024
- columnNumber: 23
31025
- }, this)
31026
- }, void 0, false, {
31027
- fileName: _jsxFileName$8,
31028
- lineNumber: 99,
31029
- columnNumber: 21
31030
- }, this)]
31031
- }, void 0, true, {
31032
- fileName: _jsxFileName$8,
31033
- lineNumber: 91,
31034
- columnNumber: 19
31035
- }, this)]
31036
- }, void 0, true, {
31037
- fileName: _jsxFileName$8,
31038
- lineNumber: 81,
31039
- columnNumber: 17
31040
- }, this), hotelFinderHotels.length > 0 && /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(HotelFinder, {
31041
- hotels: hotelFinderHotels,
31042
- defaultHotel,
31043
- selectedHotel,
31044
- handleHotelChange,
31045
- subMenuItem
31046
- }, void 0, false, {
31047
- fileName: _jsxFileName$8,
31048
- lineNumber: 105,
31049
- columnNumber: 19
31050
- }, this)]
31051
- }, void 0, true, {
31052
- fileName: _jsxFileName$8,
31053
- lineNumber: 80,
31054
- columnNumber: 15
31055
- }, this)
31056
- }, void 0, false, {
31057
- fileName: _jsxFileName$8,
31058
- lineNumber: 74,
31059
- columnNumber: 13
31060
- }, this)
31061
- }, void 0, false, {
31062
- fileName: _jsxFileName$8,
31063
- lineNumber: 70,
31064
- columnNumber: 11
31065
- }, this)
31066
- }, void 0, false, {
31067
- fileName: _jsxFileName$8,
31068
- lineNumber: 65,
31069
- columnNumber: 9
31070
- }, this));
31071
- }
31072
- var jed = { exports: {} };
31073
- /**
31074
- * @preserve jed.js https://github.com/SlexAxton/Jed
31075
- */
31076
- (function(module, exports) {
31077
- (function(root2, undef2) {
31078
- var ArrayProto = Array.prototype, ObjProto = Object.prototype, slice = ArrayProto.slice, hasOwnProp = ObjProto.hasOwnProperty, nativeForEach = ArrayProto.forEach, breaker = {};
31079
- var _2 = {
31080
- forEach: function(obj, iterator, context) {
31081
- var i2, l2, key;
31082
- if (obj === null) {
31083
- return;
31084
- }
31085
- if (nativeForEach && obj.forEach === nativeForEach) {
31086
- obj.forEach(iterator, context);
31087
- } else if (obj.length === +obj.length) {
31088
- for (i2 = 0, l2 = obj.length; i2 < l2; i2++) {
31089
- if (i2 in obj && iterator.call(context, obj[i2], i2, obj) === breaker) {
31090
- return;
31091
- }
31092
- }
31093
- } else {
31094
- for (key in obj) {
31095
- if (hasOwnProp.call(obj, key)) {
31096
- if (iterator.call(context, obj[key], key, obj) === breaker) {
31097
- return;
31098
- }
31099
- }
31100
- }
31101
- }
31102
- },
31103
- extend: function(obj) {
31104
- this.forEach(slice.call(arguments, 1), function(source) {
31105
- for (var prop in source) {
31106
- obj[prop] = source[prop];
31107
- }
31108
- });
31109
- return obj;
31110
- }
31111
- };
31112
- var Jed2 = function(options) {
31113
- this.defaults = {
31114
- "locale_data": {
31115
- "messages": {
31116
- "": {
31117
- "domain": "messages",
31118
- "lang": "en",
31119
- "plural_forms": "nplurals=2; plural=(n != 1);"
30704
+ }
30705
+ }
30706
+ },
30707
+ extend: function(obj) {
30708
+ this.forEach(slice.call(arguments, 1), function(source) {
30709
+ for (var prop in source) {
30710
+ obj[prop] = source[prop];
30711
+ }
30712
+ });
30713
+ return obj;
30714
+ }
30715
+ };
30716
+ var Jed2 = function(options) {
30717
+ this.defaults = {
30718
+ "locale_data": {
30719
+ "messages": {
30720
+ "": {
30721
+ "domain": "messages",
30722
+ "lang": "en",
30723
+ "plural_forms": "nplurals=2; plural=(n != 1);"
31120
30724
  }
31121
30725
  }
31122
30726
  },
@@ -31857,6 +31461,420 @@ function useI18n() {
31857
31461
  error
31858
31462
  };
31859
31463
  }
31464
+ var _jsxFileName$9 = "/Users/patrick/git/ba-js-common-header/src/components/Header/TitleBar/HotelFinder.jsx";
31465
+ function getHotelInfoFromHotelFinderHotel(hotel) {
31466
+ let name;
31467
+ let hotelId;
31468
+ let guideId;
31469
+ try {
31470
+ name = hotel[0];
31471
+ [hotelId, guideId] = hotel[1].split("_").map((v2) => +v2);
31472
+ } catch (e2) {
31473
+ }
31474
+ return {
31475
+ name,
31476
+ hotelId,
31477
+ guideId
31478
+ };
31479
+ }
31480
+ const noMatchHotel = ["0_0"];
31481
+ function HotelFinder(props) {
31482
+ const {
31483
+ hotels,
31484
+ defaultHotel,
31485
+ selectedHotel,
31486
+ handleHotelChange,
31487
+ subMenuItem
31488
+ } = props;
31489
+ const {
31490
+ i18n
31491
+ } = useI18n();
31492
+ if (noMatchHotel.length === 1) {
31493
+ noMatchHotel.unshift(i18n.translate("No_matches_please_try_again").fetch());
31494
+ }
31495
+ const [inputHotels, setInputHotels] = useState([]);
31496
+ const [ctrlInputValue, setCtrlInputValue] = useState(defaultHotel && defaultHotel[0] || "");
31497
+ const {
31498
+ subMenus
31499
+ } = useSelector((state) => state.headerInfo);
31500
+ const dispatch = useDispatch();
31501
+ const subMenuOpen = subMenus.find((id2) => id2 === subMenuItem);
31502
+ const itemToString2 = (item) => item ? item[0] : "";
31503
+ const {
31504
+ isOpen,
31505
+ getMenuProps,
31506
+ getInputProps,
31507
+ getComboboxProps,
31508
+ highlightedIndex,
31509
+ getItemProps,
31510
+ closeMenu
31511
+ } = useCombobox({
31512
+ items: inputHotels,
31513
+ itemToString: itemToString2,
31514
+ initialSelectedItem: defaultHotel,
31515
+ selectedItem: selectedHotel,
31516
+ initialInputValue: defaultHotel && defaultHotel[0] || "",
31517
+ onSelectedItemChange: ({
31518
+ selectedItem
31519
+ }) => {
31520
+ unstable_batchedUpdates(() => {
31521
+ if (selectedItem !== noMatchHotel) {
31522
+ dispatch(setSelectedHotel(selectedItem));
31523
+ }
31524
+ dispatch(removeSubMenu(subMenuItem));
31525
+ });
31526
+ if (typeof handleHotelChange === "function") {
31527
+ if (selectedItem !== noMatchHotel) {
31528
+ handleHotelChange(getHotelInfoFromHotelFinderHotel(selectedItem));
31529
+ }
31530
+ }
31531
+ document.querySelector("#hd-property-input").blur();
31532
+ },
31533
+ onInputValueChange: ({
31534
+ inputValue
31535
+ }) => {
31536
+ const inputValueLC = inputValue.toLowerCase();
31537
+ const matchingHotels = hotels.filter((hotel) => {
31538
+ if (!inputValueLC)
31539
+ return false;
31540
+ const hotelNameLC = itemToString2(hotel).toLowerCase().trim();
31541
+ return hotelNameLC.match(`(^|\\s)${inputValueLC}`);
31542
+ });
31543
+ if (matchingHotels.length > 0) {
31544
+ setInputHotels(matchingHotels);
31545
+ } else if (!inputValueLC) {
31546
+ setInputHotels([]);
31547
+ closeMenu();
31548
+ } else {
31549
+ setInputHotels([noMatchHotel]);
31550
+ }
31551
+ setCtrlInputValue(inputValue);
31552
+ }
31553
+ });
31554
+ return /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("ul", {
31555
+ className: cn("col-12", "col-lg", "py-3", "px-lg-0", "py-lg-0", "list-unstyled", "hd-nav-second-level", {
31556
+ "hd-submenu-opened": subMenuOpen
31557
+ }),
31558
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("li", {
31559
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31560
+ id: "hd-property-search",
31561
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("label", {
31562
+ htmlFor: "hd-property-input",
31563
+ className: "form-label d-lg-none visually-hidden",
31564
+ children: "Select property"
31565
+ }, void 0, false, {
31566
+ fileName: _jsxFileName$9,
31567
+ lineNumber: 117,
31568
+ columnNumber: 11
31569
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", __spreadProps(__spreadValues({
31570
+ id: "hd-property-input-container"
31571
+ }, getComboboxProps()), {
31572
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("input", __spreadProps(__spreadValues({}, getInputProps({
31573
+ onChange: (e2) => {
31574
+ const cursorPos = e2.target.selectionStart;
31575
+ setTimeout(() => {
31576
+ e2.target.setSelectionRange(cursorPos, cursorPos);
31577
+ }, 0);
31578
+ }
31579
+ })), {
31580
+ type: "text",
31581
+ className: "form-control",
31582
+ placeholder: i18n.translate("hotel_name").fetch(),
31583
+ id: "hd-property-input",
31584
+ value: ctrlInputValue,
31585
+ onBlur: (e2) => {
31586
+ const {
31587
+ name
31588
+ } = getHotelInfoFromHotelFinderHotel(selectedHotel);
31589
+ if (e2.target.value !== name) {
31590
+ setCtrlInputValue(name);
31591
+ }
31592
+ }
31593
+ }), void 0, false, {
31594
+ fileName: _jsxFileName$9,
31595
+ lineNumber: 124,
31596
+ columnNumber: 13
31597
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("ul", __spreadProps(__spreadValues({
31598
+ className: "mb-0 px-3 list-unstyled shadow"
31599
+ }, getMenuProps()), {
31600
+ children: isOpen && inputHotels.map((hotel, index2) => /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("li", __spreadProps(__spreadValues({
31601
+ className: "py-3 py-lg-2"
31602
+ }, getItemProps({
31603
+ hotel,
31604
+ index: index2
31605
+ })), {
31606
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31607
+ style: {
31608
+ display: "flex",
31609
+ justifyContent: "space-between",
31610
+ alignItems: "center"
31611
+ },
31612
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31613
+ children: hotel[0]
31614
+ }, void 0, false, {
31615
+ fileName: _jsxFileName$9,
31616
+ lineNumber: 164,
31617
+ columnNumber: 23
31618
+ }, this), hotel === selectedHotel && /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.Tick, {}, void 0, false, {
31619
+ fileName: _jsxFileName$9,
31620
+ lineNumber: 165,
31621
+ columnNumber: 51
31622
+ }, this)]
31623
+ }, void 0, true, {
31624
+ fileName: _jsxFileName$9,
31625
+ lineNumber: 157,
31626
+ columnNumber: 21
31627
+ }, this)
31628
+ }), hotel[1], false, {
31629
+ fileName: _jsxFileName$9,
31630
+ lineNumber: 151,
31631
+ columnNumber: 19
31632
+ }, this))
31633
+ }), void 0, false, {
31634
+ fileName: _jsxFileName$9,
31635
+ lineNumber: 148,
31636
+ columnNumber: 13
31637
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.Search, {
31638
+ className: "hd-icon hd-icon-search"
31639
+ }, void 0, false, {
31640
+ fileName: _jsxFileName$9,
31641
+ lineNumber: 170,
31642
+ columnNumber: 13
31643
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.Close, {
31644
+ className: "hd-icon hd-icon-close",
31645
+ onClick: () => {
31646
+ setCtrlInputValue("");
31647
+ closeMenu();
31648
+ },
31649
+ onMouseDown: (e2) => {
31650
+ e2.preventDefault();
31651
+ }
31652
+ }, void 0, false, {
31653
+ fileName: _jsxFileName$9,
31654
+ lineNumber: 171,
31655
+ columnNumber: 13
31656
+ }, this)]
31657
+ }), void 0, true, {
31658
+ fileName: _jsxFileName$9,
31659
+ lineNumber: 123,
31660
+ columnNumber: 11
31661
+ }, this)]
31662
+ }, void 0, true, {
31663
+ fileName: _jsxFileName$9,
31664
+ lineNumber: 116,
31665
+ columnNumber: 9
31666
+ }, this)
31667
+ }, void 0, false, {
31668
+ fileName: _jsxFileName$9,
31669
+ lineNumber: 115,
31670
+ columnNumber: 7
31671
+ }, this)
31672
+ }, void 0, false, {
31673
+ fileName: _jsxFileName$9,
31674
+ lineNumber: 101,
31675
+ columnNumber: 5
31676
+ }, this);
31677
+ }
31678
+ HotelFinder.propTypes = {
31679
+ hotels: propTypes.exports.arrayOf(propTypes.exports.arrayOf(propTypes.exports.string)).isRequired,
31680
+ defaultHotel: propTypes.exports.arrayOf(propTypes.exports.string),
31681
+ selectedHotel: propTypes.exports.arrayOf(propTypes.exports.string),
31682
+ handleHotelChange: propTypes.exports.func,
31683
+ subMenuItem: propTypes.exports.oneOfType([propTypes.exports.string, propTypes.exports.number]).isRequired
31684
+ };
31685
+ HotelFinder.defaultProps = {
31686
+ defaultHotel: void 0,
31687
+ selectedHotel: void 0,
31688
+ handleHotelChange: void 0
31689
+ };
31690
+ var _jsxFileName$8 = "/Users/patrick/git/ba-js-common-header/src/components/Header/TitleBar/PropertySelector.jsx";
31691
+ function PropertySelector(props) {
31692
+ const {
31693
+ handleHotelChange
31694
+ } = props;
31695
+ const [
31696
+ subMenuItem
31697
+ ] = useState("Select property");
31698
+ const [displayName, setDisplayName] = useState("");
31699
+ const userInfo = useSelector((state) => state.userInfo);
31700
+ const {
31701
+ isOpen,
31702
+ isMobileOrTablet
31703
+ } = useSelector((state) => state.headerInfo);
31704
+ const {
31705
+ propertySelector
31706
+ } = useSelector((state) => state.titleBar);
31707
+ const {
31708
+ items: hotelFinderHotels,
31709
+ defaultHotel,
31710
+ selectedHotel
31711
+ } = useSelector((state) => state.hotels);
31712
+ const [ref, {
31713
+ height
31714
+ }] = useMeasure$1();
31715
+ const transitions = useTransition(!isMobileOrTablet || isOpen, {
31716
+ from: {
31717
+ height: 0
31718
+ },
31719
+ enter: {
31720
+ height
31721
+ },
31722
+ leave: {
31723
+ height: 0
31724
+ },
31725
+ update: {
31726
+ height
31727
+ },
31728
+ config: __spreadProps(__spreadValues({}, config.stiff), {
31729
+ clamp: true
31730
+ })
31731
+ });
31732
+ const dispatch = useDispatch();
31733
+ useEffect(() => {
31734
+ (async () => {
31735
+ if (propertySelector) {
31736
+ let {
31737
+ type,
31738
+ items = []
31739
+ } = propertySelector;
31740
+ if (type === "fetch") {
31741
+ try {
31742
+ const res = await fetch(items);
31743
+ items = await res.json();
31744
+ } catch (e2) {
31745
+ console.error(e2);
31746
+ }
31747
+ }
31748
+ const foundHotel = items.find((hotel) => {
31749
+ const [hotelId, guideId] = hotel[1].split("_").map((id2) => +id2);
31750
+ return userInfo.hotelId === hotelId && userInfo.guideId === guideId;
31751
+ });
31752
+ unstable_batchedUpdates(() => {
31753
+ dispatch(setHotels(items));
31754
+ if (foundHotel) {
31755
+ dispatch(setDefaultHotel(foundHotel));
31756
+ dispatch(setSelectedHotel(foundHotel));
31757
+ }
31758
+ });
31759
+ }
31760
+ })();
31761
+ }, [propertySelector]);
31762
+ useEffect(() => {
31763
+ if (userInfo.group) {
31764
+ setDisplayName(userInfo.group);
31765
+ } else if (selectedHotel) {
31766
+ const {
31767
+ name
31768
+ } = getHotelInfoFromHotelFinderHotel(selectedHotel);
31769
+ setDisplayName(name);
31770
+ }
31771
+ }, [userInfo, selectedHotel]);
31772
+ return transitions((styles, item) => item && /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(animated.div, {
31773
+ className: "col-12 col-lg me-lg-auto px-0 order-lg-3",
31774
+ id: "hd-property",
31775
+ style: isMobileOrTablet ? __spreadProps(__spreadValues({}, styles), {
31776
+ display: "block"
31777
+ }) : {},
31778
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("ul", {
31779
+ ref,
31780
+ className: "row list-unstyled mx-0 mb-0 hd-nav-first-level",
31781
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("li", {
31782
+ className: "col-lg-auto align-items-center",
31783
+ onClick: () => {
31784
+ dispatch(addSubMenu(subMenuItem));
31785
+ },
31786
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31787
+ className: "row py-lg-0 align-items-center",
31788
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31789
+ className: "col col-lg-auto py-2 py-lg-0",
31790
+ id: "hd-group-property-name",
31791
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("span", {
31792
+ className: "ps-lg-3 py-3 py-lg-0 d-block",
31793
+ id: "hd-group-name",
31794
+ children: displayName
31795
+ }, void 0, false, {
31796
+ fileName: _jsxFileName$8,
31797
+ lineNumber: 95,
31798
+ columnNumber: 19
31799
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31800
+ className: "row me-0 d-lg-none align-items-center",
31801
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31802
+ className: "col",
31803
+ children: [/* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("small", {
31804
+ className: "pt-2",
31805
+ children: subMenuItem
31806
+ }, void 0, false, {
31807
+ fileName: _jsxFileName$8,
31808
+ lineNumber: 103,
31809
+ columnNumber: 23
31810
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("span", {
31811
+ className: "d-block",
31812
+ id: "hd-property-name",
31813
+ children: selectedHotel && selectedHotel[0] || defaultHotel && defaultHotel[0]
31814
+ }, void 0, false, {
31815
+ fileName: _jsxFileName$8,
31816
+ lineNumber: 104,
31817
+ columnNumber: 23
31818
+ }, this)]
31819
+ }, void 0, true, {
31820
+ fileName: _jsxFileName$8,
31821
+ lineNumber: 102,
31822
+ columnNumber: 21
31823
+ }, this), /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV("div", {
31824
+ className: "col-auto p-2 d-block",
31825
+ children: /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(commonThin.ArrowAngleRight, {
31826
+ className: "hd-icon hd-icon-arrow-angle-right"
31827
+ }, void 0, false, {
31828
+ fileName: _jsxFileName$8,
31829
+ lineNumber: 110,
31830
+ columnNumber: 23
31831
+ }, this)
31832
+ }, void 0, false, {
31833
+ fileName: _jsxFileName$8,
31834
+ lineNumber: 109,
31835
+ columnNumber: 21
31836
+ }, this)]
31837
+ }, void 0, true, {
31838
+ fileName: _jsxFileName$8,
31839
+ lineNumber: 101,
31840
+ columnNumber: 19
31841
+ }, this)]
31842
+ }, void 0, true, {
31843
+ fileName: _jsxFileName$8,
31844
+ lineNumber: 91,
31845
+ columnNumber: 17
31846
+ }, this), userInfo.group && hotelFinderHotels.length > 1 && /* @__PURE__ */ jsxDevRuntime.exports.jsxDEV(HotelFinder, {
31847
+ hotels: hotelFinderHotels,
31848
+ defaultHotel,
31849
+ selectedHotel,
31850
+ handleHotelChange,
31851
+ subMenuItem
31852
+ }, void 0, false, {
31853
+ fileName: _jsxFileName$8,
31854
+ lineNumber: 115,
31855
+ columnNumber: 19
31856
+ }, this)]
31857
+ }, void 0, true, {
31858
+ fileName: _jsxFileName$8,
31859
+ lineNumber: 90,
31860
+ columnNumber: 15
31861
+ }, this)
31862
+ }, void 0, false, {
31863
+ fileName: _jsxFileName$8,
31864
+ lineNumber: 84,
31865
+ columnNumber: 13
31866
+ }, this)
31867
+ }, void 0, false, {
31868
+ fileName: _jsxFileName$8,
31869
+ lineNumber: 80,
31870
+ columnNumber: 11
31871
+ }, this)
31872
+ }, void 0, false, {
31873
+ fileName: _jsxFileName$8,
31874
+ lineNumber: 75,
31875
+ columnNumber: 9
31876
+ }, this));
31877
+ }
31860
31878
  var _jsxFileName$7 = "/Users/patrick/git/ba-js-common-header/src/components/Header/TitleBar/HelpCenter.jsx";
31861
31879
  function HelpCenter() {
31862
31880
  const {