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