@roomstay/frontend 2.6.3 → 2.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/457.bundle.js +1 -1
  2. package/dist/468.bundle.js +1 -1
  3. package/dist/537.bundle.js +1 -1
  4. package/dist/main.bundle.js +1 -1
  5. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.d.ts +2 -1
  6. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js.map +1 -1
  7. package/dist/src/components/generic/loader/LargeLoader.js +8 -7
  8. package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
  9. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +1 -1
  10. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
  11. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js +7 -7
  12. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js.map +1 -1
  13. package/dist/src/components/steps/date/PeoplePickerRow.js +21 -3
  14. package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
  15. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +2 -2
  16. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
  17. package/dist/src/models/Api/HotelDTO.d.ts +1 -0
  18. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  19. package/dist/src/pages/account/AccountHome/AccountHomePage.js +5 -5
  20. package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
  21. package/dist/src/stories/IconNavCard.stories.d.ts +3 -2
  22. package/dist/src/translations/Translation.d.ts +5 -0
  23. package/dist/src/translations/Translation.js +5 -0
  24. package/dist/src/translations/Translation.js.map +1 -1
  25. package/dist/src/translations/languages/en-gb.js +6 -1
  26. package/dist/src/translations/languages/en-gb.js.map +1 -1
  27. package/dist/test.bundle.js +1 -1
  28. package/dist/vendors.bundle.js +1 -1
  29. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
+ import { ReactNode } from 'react';
1
2
  import { IconType } from '../../Icon/Icon';
2
3
  import { Color } from '../../../../util/Color';
3
4
  type IconNavCardProps = {
4
5
  icon: IconType;
5
6
  title: string;
6
- description?: string;
7
+ description?: ReactNode;
7
8
  link?: {
8
9
  text: string;
9
10
  pathTo?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"IconNavCard.js","sourceRoot":"/","sources":["src/components/generic/Card/IconNavCard/IconNavCard.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uDAAwC;AAExC,6EAAqD;AACrD,uEAAgE;AAChE,kEAA2D;AAC3D,wCAAqC;AAErC,wFAA+C;AAexC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;;IACnD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACnB,QAAQ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE;YAChB,KAAK,OAAO;gBACR,OAAO,eAAQ,CAAC,UAAU,CAAC;YAC/B,KAAK,UAAU;gBACX,OAAO,eAAQ,CAAC,MAAM,CAAC;YAC3B;gBACI,IAAI,CAAC;SACZ;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,CACpB,8BAAC,uBAAI,IAAC,EAAE,EAAE,IAAI,CAAC,MAAM;QACjB,uCAAK,SAAS,EAAE,iCAAM,CAAC,aAAa,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,8BAAC,cAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,IAAI,EAAC,MAAM,GAAQ;YACnE,8BAAC,cAAI,IAAC,IAAI,QAAC,SAAS,EAAC,mBAAmB,IACnC,KAAK,CACH;YACP,8BAAC,cAAI,IAAC,SAAS,EAAC,yCAAyC,EAAC,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IAChG,WAAW,CACT;YAEP,8BAAC,kBAAQ,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,QAAC,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,aAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAC,OAAO;gBACpG,wCAAM,SAAS,EAAC,aAAa,IAAE,IAAI,CAAC,IAAI,CAAQ,CACzC,CACT,CACH,CACV,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,CAAC,CAAC;AA/BW,QAAA,WAAW,eA+BtB","sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Color } from '@/util/Color';\n\nimport styles from './IconNavCard.module.scss';\n\ntype IconNavCardProps = {\n icon: IconType;\n title: string;\n description?: string;\n\n link?: {\n text: string;\n pathTo?: string;\n icon?: 'arrow' | 'open-new';\n color?: Color;\n };\n};\n\nexport const IconNavCard = (props: IconNavCardProps) => {\n const { title, icon, description, link } = props;\n\n const iconType = (() => {\n switch (link?.icon) {\n case 'arrow':\n return IconType.ArrowRight;\n case 'open-new':\n return IconType.LogOut;\n default:\n null;\n }\n })();\n\n return !!link?.pathTo ? (\n <Link to={link.pathTo}>\n <div className={styles['iconNavCard']}>\n {!!icon && <Icon icon={icon} color={Color.Grey} size=\"26px\"></Icon>}\n <Text bold className=\"u-marg-top--light\">\n {title}\n </Text>\n <Text className=\"u-marg-top--light u-marg-bottom--medium\" color={Color.DarkGrey} type={TextType.Small}>\n {description}\n </Text>\n\n <BEButton size=\"tiny\" isText textColor={link.color ?? Color.Accent} icon={iconType} iconPosition=\"right\">\n <span className=\"u-uppercase\">{link.text}</span>\n </BEButton>\n </div>\n </Link>\n ) : null;\n};\n"]}
1
+ {"version":3,"file":"IconNavCard.js","sourceRoot":"/","sources":["src/components/generic/Card/IconNavCard/IconNavCard.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyC;AACzC,uDAAwC;AAExC,6EAAqD;AACrD,uEAAgE;AAChE,kEAA2D;AAC3D,wCAAqC;AAErC,wFAA+C;AAexC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;;IACnD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACnB,QAAQ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE;YAChB,KAAK,OAAO;gBACR,OAAO,eAAQ,CAAC,UAAU,CAAC;YAC/B,KAAK,UAAU;gBACX,OAAO,eAAQ,CAAC,MAAM,CAAC;YAC3B;gBACI,IAAI,CAAC;SACZ;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,CACpB,8BAAC,uBAAI,IAAC,EAAE,EAAE,IAAI,CAAC,MAAM;QACjB,uCAAK,SAAS,EAAE,iCAAM,CAAC,aAAa,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,8BAAC,cAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,IAAI,EAAC,MAAM,GAAQ;YACnE,8BAAC,cAAI,IAAC,IAAI,QAAC,SAAS,EAAC,mBAAmB,IACnC,KAAK,CACH;YACP,8BAAC,cAAI,IAAC,SAAS,EAAC,yCAAyC,EAAC,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IAChG,WAAW,CACT;YAEP,8BAAC,kBAAQ,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,QAAC,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,aAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAC,OAAO;gBACpG,wCAAM,SAAS,EAAC,aAAa,IAAE,IAAI,CAAC,IAAI,CAAQ,CACzC,CACT,CACH,CACV,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,CAAC,CAAC;AA/BW,QAAA,WAAW,eA+BtB","sourcesContent":["import React, { ReactNode } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Color } from '@/util/Color';\n\nimport styles from './IconNavCard.module.scss';\n\ntype IconNavCardProps = {\n icon: IconType;\n title: string;\n description?: ReactNode;\n\n link?: {\n text: string;\n pathTo?: string;\n icon?: 'arrow' | 'open-new';\n color?: Color;\n };\n};\n\nexport const IconNavCard = (props: IconNavCardProps) => {\n const { title, icon, description, link } = props;\n\n const iconType = (() => {\n switch (link?.icon) {\n case 'arrow':\n return IconType.ArrowRight;\n case 'open-new':\n return IconType.LogOut;\n default:\n null;\n }\n })();\n\n return !!link?.pathTo ? (\n <Link to={link.pathTo}>\n <div className={styles['iconNavCard']}>\n {!!icon && <Icon icon={icon} color={Color.Grey} size=\"26px\"></Icon>}\n <Text bold className=\"u-marg-top--light\">\n {title}\n </Text>\n <Text className=\"u-marg-top--light u-marg-bottom--medium\" color={Color.DarkGrey} type={TextType.Small}>\n {description}\n </Text>\n\n <BEButton size=\"tiny\" isText textColor={link.color ?? Color.Accent} icon={iconType} iconPosition=\"right\">\n <span className=\"u-uppercase\">{link.text}</span>\n </BEButton>\n </div>\n </Link>\n ) : null;\n};\n"]}
@@ -8,11 +8,12 @@ const react_1 = __importDefault(require("react"));
8
8
  const react_i18next_1 = require("react-i18next");
9
9
  const Text_1 = __importDefault(require("../Text"));
10
10
  const Translation_1 = require("../../../translations/Translation");
11
- const BuildingIcon = () => (react_1.default.createElement("div", { className: "building-icon" },
11
+ const Color_1 = require("../../../util/Color");
12
+ const BuildingIcon = () => (react_1.default.createElement("div", null,
12
13
  react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 96, height: 96, viewBox: "0 0 96 96", fill: "none" },
13
- react_1.default.createElement("path", { d: "M12 84H16M84 84H80M16 84V33.6C16 30.2397 16 28.5595 16.654 27.2761C17.2292 26.1471 18.1471 25.2292 19.2761 24.654C20.5595 24 22.2397 24 25.6 24H27.2C28.8802 24 29.7202 24 30.362 23.673C30.9265 23.3854 31.3854 22.9265 31.673 22.362C32 21.7202 32 20.8802 32 19.2V17.6C32 14.2397 32 12.5595 32.654 11.2761C33.2292 10.1471 34.1471 9.2292 35.2761 8.65396C36.5595 8 38.2397 8 41.6 8L54.4 8C57.7603 8 59.4405 8 60.7239 8.65396C61.8529 9.2292 62.7708 10.1471 63.346 11.2761C64 12.5595 64 14.2397 64 17.6V32M16 84H64M64 84V32M64 84H80M64 32H75.2C76.8802 32 77.7202 32 78.362 32.327C78.9265 32.6146 79.3854 33.0735 79.673 33.638C80 34.2798 80 35.1198 80 36.8V84", stroke: "var(--rs-color-accent-1)", strokeWidth: 9, strokeLinecap: "round" }),
14
- react_1.default.createElement("path", { d: "M32.0001 40H48.0001M32.0001 54H48.0001M32.0001 68H48.0001", stroke: "var(--rs-color-accent-1)", strokeWidth: 9, strokeLinecap: "round" }),
15
- react_1.default.createElement("path", { d: "M48 26.04V26", stroke: "var(--rs-color-accent-1)", strokeWidth: 9, strokeLinecap: "round" }))));
14
+ react_1.default.createElement("path", { d: "M12 83.9999H16M84 83.9999H80M16 83.9999V33.5999C16 30.2396 16 28.5594 16.654 27.2759C17.2292 26.147 18.1471 25.2291 19.2761 24.6538C20.5595 23.9999 22.2397 23.9999 25.6 23.9999H27.2C28.8802 23.9999 29.7202 23.9999 30.362 23.6729C30.9265 23.3853 31.3854 22.9263 31.673 22.3618C32 21.7201 32 20.88 32 19.1999V17.5999C32 14.2396 32 12.5594 32.654 11.2759C33.2292 10.147 34.1471 9.22908 35.2761 8.65384C36.5595 7.99988 38.2397 7.99988 41.6 7.99988L54.4 7.99988C57.7603 7.99988 59.4405 7.99988 60.7239 8.65384C61.8529 9.22908 62.7708 10.147 63.346 11.2759C64 12.5594 64 14.2396 64 17.5999V31.9999M16 83.9999H64M64 83.9999V31.9999M64 83.9999H80M64 31.9999H75.2C76.8802 31.9999 77.7202 31.9999 78.362 32.3269C78.9265 32.6145 79.3854 33.0734 79.673 33.6379C80 34.2796 80 35.1197 80 36.7999V83.9999", stroke: "var(--rs-color-accent-1)", strokeWidth: 4, strokeLinecap: "round" }),
15
+ react_1.default.createElement("path", { d: "M32.0001 40.0001H48.0001M32.0001 54.0001H48.0001M32.0001 68.0001H48.0001", stroke: "var(--rs-color-accent-1)", strokeWidth: 4, strokeLinecap: "round" }),
16
+ react_1.default.createElement("path", { d: "M48 26.0399V25.9999", stroke: "var(--rs-color-accent-1)", strokeWidth: 4, strokeLinecap: "round" }))));
16
17
  const LocationIcon = () => {
17
18
  const springProps = (0, web_1.useSpring)({
18
19
  loop: true,
@@ -22,7 +23,7 @@ const LocationIcon = () => {
22
23
  });
23
24
  return (react_1.default.createElement(web_1.animated.div, { className: "location-icon", style: springProps },
24
25
  react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 48, height: 48, viewBox: "0 0 48 48", fill: "none" },
25
- react_1.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M40.0001 20C40.0001 28.8366 28.0001 44 24.0001 44C20.0001 44 8.00006 28.8366 8.00006 20C8.00006 11.1634 15.1635 4 24.0001 4C32.8366 4 40.0001 11.1634 40.0001 20ZM24.0001 28C28.4183 28 32.0001 24.4183 32.0001 20C32.0001 15.5817 28.4183 12 24.0001 12C19.5818 12 16.0001 15.5817 16.0001 20C16.0001 24.4183 19.5818 28 24.0001 28Z", fill: "var(--rs-color-accent-1)", stroke: "var(--rs-color-accent-1)", strokeWidth: 6 }))));
26
+ react_1.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M40.0001 20.0001C40.0001 28.8367 28.0001 44.0001 24.0001 44.0001C20.0001 44.0001 8.00006 28.8367 8.00006 20.0001C8.00006 11.1636 15.1635 4.00012 24.0001 4.00012C32.8366 4.00012 40.0001 11.1636 40.0001 20.0001ZM24.0001 28.0001C28.4183 28.0001 32.0001 24.4184 32.0001 20.0001C32.0001 15.5818 28.4183 12.0001 24.0001 12.0001C19.5818 12.0001 16.0001 15.5818 16.0001 20.0001C16.0001 24.4184 19.5818 28.0001 24.0001 28.0001Z", fill: "var(--rs-color-accent-1)", stroke: "var(--rs-color-accent-1)", strokeWidth: 6 }))));
26
27
  };
27
28
  function LargeLoader() {
28
29
  const { t } = (0, react_i18next_1.useTranslation)();
@@ -33,8 +34,8 @@ function LargeLoader() {
33
34
  react_1.default.createElement("div", { className: "large-loader-circle --delay-6" }),
34
35
  react_1.default.createElement(LocationIcon, null),
35
36
  react_1.default.createElement(BuildingIcon, null),
36
- react_1.default.createElement("div", { style: { marginTop: '-8px' } },
37
- react_1.default.createElement(Text_1.default, null, t(Translation_1.Translation.Misc.Loading)))));
37
+ react_1.default.createElement("div", { style: { marginTop: '8px' } },
38
+ react_1.default.createElement(Text_1.default, { color: Color_1.Color.Accent }, t(Translation_1.Translation.Misc.Loading)))));
38
39
  }
39
40
  exports.default = LargeLoader;
40
41
  //# sourceMappingURL=LargeLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LargeLoader.js","sourceRoot":"/","sources":["src/components/generic/loader/LargeLoader.tsx"],"names":[],"mappings":";;;;;AAAA,2CAAwD;AACxD,kDAA0B;AAC1B,iDAA+C;AAE/C,qEAA6C;AAC7C,4DAAyD;AAEzD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CACvB,uCAAK,SAAS,EAAC,eAAe;IAC1B,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;QAC1F,wCACI,CAAC,EAAC,6oBAA6oB,EAC/oB,MAAM,EAAC,0BAA0B,EACjC,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,GACvB;QACF,wCAAM,CAAC,EAAC,2DAA2D,EAAC,MAAM,EAAC,0BAA0B,EAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAC,OAAO,GAAG;QAC9I,wCAAM,CAAC,EAAC,cAAc,EAAC,MAAM,EAAC,0BAA0B,EAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAC,OAAO,GAAG,CAC/F,CACJ,CACT,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE;IACtB,MAAM,WAAW,GAAG,IAAA,eAAS,EAAC;QAC1B,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QACzB,IAAI,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE;QACxC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;KAC7E,CAAC,CAAC;IAEH,OAAO,CACH,8BAAC,cAAQ,CAAC,GAAG,IAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,WAAW;QACtD,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;YAC1F,wCACI,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,uUAAuU,EACzU,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,0BAA0B,EACjC,WAAW,EAAE,CAAC,GAChB,CACA,CACK,CAClB,CAAC;AACN,CAAC,CAAC;AAEF,SAAwB,WAAW;IAC/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH,uCAAK,SAAS,EAAC,cAAc;QACzB,uCAAK,SAAS,EAAC,qBAAqB,GAAG;QACvC,uCAAK,SAAS,EAAC,+BAA+B,GAAG;QACjD,uCAAK,SAAS,EAAC,+BAA+B,GAAG;QACjD,uCAAK,SAAS,EAAC,+BAA+B,GAAG;QACjD,8BAAC,YAAY,OAAG;QAChB,8BAAC,YAAY,OAAG;QAChB,uCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC7B,8BAAC,cAAI,QAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAQ,CACxC,CACJ,CACT,CAAC;AACN,CAAC;AAhBD,8BAgBC","sourcesContent":["import { animated, useSpring } from '@react-spring/web';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Text from '@/components/generic/Text';\nimport { Translation } from '@/translations/Translation';\n\nconst BuildingIcon = () => (\n <div className=\"building-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={96} height={96} viewBox=\"0 0 96 96\" fill=\"none\">\n <path\n d=\"M12 84H16M84 84H80M16 84V33.6C16 30.2397 16 28.5595 16.654 27.2761C17.2292 26.1471 18.1471 25.2292 19.2761 24.654C20.5595 24 22.2397 24 25.6 24H27.2C28.8802 24 29.7202 24 30.362 23.673C30.9265 23.3854 31.3854 22.9265 31.673 22.362C32 21.7202 32 20.8802 32 19.2V17.6C32 14.2397 32 12.5595 32.654 11.2761C33.2292 10.1471 34.1471 9.2292 35.2761 8.65396C36.5595 8 38.2397 8 41.6 8L54.4 8C57.7603 8 59.4405 8 60.7239 8.65396C61.8529 9.2292 62.7708 10.1471 63.346 11.2761C64 12.5595 64 14.2397 64 17.6V32M16 84H64M64 84V32M64 84H80M64 32H75.2C76.8802 32 77.7202 32 78.362 32.327C78.9265 32.6146 79.3854 33.0735 79.673 33.638C80 34.2798 80 35.1198 80 36.8V84\"\n stroke=\"var(--rs-color-accent-1)\"\n strokeWidth={9}\n strokeLinecap=\"round\"\n />\n <path d=\"M32.0001 40H48.0001M32.0001 54H48.0001M32.0001 68H48.0001\" stroke=\"var(--rs-color-accent-1)\" strokeWidth={9} strokeLinecap=\"round\" />\n <path d=\"M48 26.04V26\" stroke=\"var(--rs-color-accent-1)\" strokeWidth={9} strokeLinecap=\"round\" />\n </svg>\n </div>\n);\n\nconst LocationIcon = () => {\n const springProps = useSpring({\n loop: true,\n config: { duration: 900 },\n from: { transform: 'translateY(-20px)' },\n to: [{ transform: 'translateY(0px)' }, { transform: 'translateY(-20px)' }],\n });\n\n return (\n <animated.div className=\"location-icon\" style={springProps}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} viewBox=\"0 0 48 48\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.0001 20C40.0001 28.8366 28.0001 44 24.0001 44C20.0001 44 8.00006 28.8366 8.00006 20C8.00006 11.1634 15.1635 4 24.0001 4C32.8366 4 40.0001 11.1634 40.0001 20ZM24.0001 28C28.4183 28 32.0001 24.4183 32.0001 20C32.0001 15.5817 28.4183 12 24.0001 12C19.5818 12 16.0001 15.5817 16.0001 20C16.0001 24.4183 19.5818 28 24.0001 28Z\"\n fill=\"var(--rs-color-accent-1)\"\n stroke=\"var(--rs-color-accent-1)\"\n strokeWidth={6}\n />\n </svg>\n </animated.div>\n );\n};\n\nexport default function LargeLoader() {\n const { t } = useTranslation();\n\n return (\n <div className=\"large-loader\">\n <div className=\"large-loader-circle\" />\n <div className=\"large-loader-circle --delay-2\" />\n <div className=\"large-loader-circle --delay-4\" />\n <div className=\"large-loader-circle --delay-6\" />\n <LocationIcon />\n <BuildingIcon />\n <div style={{ marginTop: '-8px' }}>\n <Text>{t(Translation.Misc.Loading)}</Text>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"LargeLoader.js","sourceRoot":"/","sources":["src/components/generic/loader/LargeLoader.tsx"],"names":[],"mappings":";;;;;AAAA,2CAAwD;AACxD,kDAA0B;AAC1B,iDAA+C;AAE/C,qEAA6C;AAC7C,4DAAyD;AACzD,wCAAqC;AAErC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CACvB;IACI,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;QAC1F,wCACI,CAAC,EAAC,uxBAAuxB,EACzxB,MAAM,EAAC,0BAA0B,EACjC,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,GACvB;QACF,wCAAM,CAAC,EAAC,0EAA0E,EAAC,MAAM,EAAC,0BAA0B,EAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAC,OAAO,GAAG;QAC7J,wCAAM,CAAC,EAAC,qBAAqB,EAAC,MAAM,EAAC,0BAA0B,EAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAC,OAAO,GAAG,CACtG,CACJ,CACT,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE;IACtB,MAAM,WAAW,GAAG,IAAA,eAAS,EAAC;QAC1B,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QACzB,IAAI,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE;QACxC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;KAC7E,CAAC,CAAC;IAEH,OAAO,CACH,8BAAC,cAAQ,CAAC,GAAG,IAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,WAAW;QACtD,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;YAC1F,wCACI,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,oaAAoa,EACta,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,0BAA0B,EACjC,WAAW,EAAE,CAAC,GAChB,CACA,CACK,CAClB,CAAC;AACN,CAAC,CAAC;AAEF,SAAwB,WAAW;IAC/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH,uCAAK,SAAS,EAAC,cAAc;QACzB,uCAAK,SAAS,EAAC,qBAAqB,GAAG;QACvC,uCAAK,SAAS,EAAC,+BAA+B,GAAG;QACjD,uCAAK,SAAS,EAAC,+BAA+B,GAAG;QACjD,uCAAK,SAAS,EAAC,+BAA+B,GAAG;QACjD,8BAAC,YAAY,OAAG;QAChB,8BAAC,YAAY,OAAG;QAChB,uCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC5B,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,MAAM,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAQ,CAC7D,CACJ,CACT,CAAC;AACN,CAAC;AAhBD,8BAgBC","sourcesContent":["import { animated, useSpring } from '@react-spring/web';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Text from '@/components/generic/Text';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\nconst BuildingIcon = () => (\n <div>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={96} height={96} viewBox=\"0 0 96 96\" fill=\"none\">\n <path\n d=\"M12 83.9999H16M84 83.9999H80M16 83.9999V33.5999C16 30.2396 16 28.5594 16.654 27.2759C17.2292 26.147 18.1471 25.2291 19.2761 24.6538C20.5595 23.9999 22.2397 23.9999 25.6 23.9999H27.2C28.8802 23.9999 29.7202 23.9999 30.362 23.6729C30.9265 23.3853 31.3854 22.9263 31.673 22.3618C32 21.7201 32 20.88 32 19.1999V17.5999C32 14.2396 32 12.5594 32.654 11.2759C33.2292 10.147 34.1471 9.22908 35.2761 8.65384C36.5595 7.99988 38.2397 7.99988 41.6 7.99988L54.4 7.99988C57.7603 7.99988 59.4405 7.99988 60.7239 8.65384C61.8529 9.22908 62.7708 10.147 63.346 11.2759C64 12.5594 64 14.2396 64 17.5999V31.9999M16 83.9999H64M64 83.9999V31.9999M64 83.9999H80M64 31.9999H75.2C76.8802 31.9999 77.7202 31.9999 78.362 32.3269C78.9265 32.6145 79.3854 33.0734 79.673 33.6379C80 34.2796 80 35.1197 80 36.7999V83.9999\"\n stroke=\"var(--rs-color-accent-1)\"\n strokeWidth={4}\n strokeLinecap=\"round\"\n />\n <path d=\"M32.0001 40.0001H48.0001M32.0001 54.0001H48.0001M32.0001 68.0001H48.0001\" stroke=\"var(--rs-color-accent-1)\" strokeWidth={4} strokeLinecap=\"round\" />\n <path d=\"M48 26.0399V25.9999\" stroke=\"var(--rs-color-accent-1)\" strokeWidth={4} strokeLinecap=\"round\" />\n </svg>\n </div>\n);\n\nconst LocationIcon = () => {\n const springProps = useSpring({\n loop: true,\n config: { duration: 900 },\n from: { transform: 'translateY(-20px)' },\n to: [{ transform: 'translateY(0px)' }, { transform: 'translateY(-20px)' }],\n });\n\n return (\n <animated.div className=\"location-icon\" style={springProps}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={48} height={48} viewBox=\"0 0 48 48\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M40.0001 20.0001C40.0001 28.8367 28.0001 44.0001 24.0001 44.0001C20.0001 44.0001 8.00006 28.8367 8.00006 20.0001C8.00006 11.1636 15.1635 4.00012 24.0001 4.00012C32.8366 4.00012 40.0001 11.1636 40.0001 20.0001ZM24.0001 28.0001C28.4183 28.0001 32.0001 24.4184 32.0001 20.0001C32.0001 15.5818 28.4183 12.0001 24.0001 12.0001C19.5818 12.0001 16.0001 15.5818 16.0001 20.0001C16.0001 24.4184 19.5818 28.0001 24.0001 28.0001Z\"\n fill=\"var(--rs-color-accent-1)\"\n stroke=\"var(--rs-color-accent-1)\"\n strokeWidth={6}\n />\n </svg>\n </animated.div>\n );\n};\n\nexport default function LargeLoader() {\n const { t } = useTranslation();\n\n return (\n <div className=\"large-loader\">\n <div className=\"large-loader-circle\" />\n <div className=\"large-loader-circle --delay-2\" />\n <div className=\"large-loader-circle --delay-4\" />\n <div className=\"large-loader-circle --delay-6\" />\n <LocationIcon />\n <BuildingIcon />\n <div style={{ marginTop: '8px' }}>\n <Text color={Color.Accent}>{t(Translation.Misc.Loading)}</Text>\n </div>\n </div>\n );\n}\n"]}
@@ -38,7 +38,7 @@ function StepConfirmationPoliciesSection() {
38
38
  return (react_1.default.createElement(react_1.default.Fragment, null,
39
39
  react_1.default.createElement("div", { className: "u-marg-bottom" },
40
40
  react_1.default.createElement(Headline_1.default, { bold: true }, t(Translation_1.Translation.Step.Confirmation.Policies))),
41
- react_1.default.createElement("div", { className: "u-marg-bottom" },
41
+ react_1.default.createElement("div", { className: "u-marg-bottom step-confirmation-policies-section" },
42
42
  react_1.default.createElement("div", { className: "row" },
43
43
  react_1.default.createElement("div", { className: "col-6 col-md-3" },
44
44
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
@@ -1 +1 @@
1
- {"version":3,"file":"StepConfirmationPoliciesSection.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationPoliciesSection.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,kDAA0B;AAC1B,iDAA+C;AAC/C,0DAAuD;AAEvD,6EAAqD;AACrD,kEAA2D;AAE3D,SAAwB,+BAA+B;IACnD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,OAAO,CACH;QACI,uCAAK,SAAS,EAAC,eAAe;YAC1B,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAY,CACnE;QACN,uCAAK,SAAS,EAAC,eAAe;YAC1B,uCAAK,SAAS,EAAC,KAAK;gBAChB,uCAAK,SAAS,EAAC,gBAAgB;oBAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAU,CAC3C;oBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACrB,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC;6BAAG,KAAK,aAAL,KAAK;wBAAL,KAAK,CAAE,WAAW,CAC5C,CACL;gBACN,uCAAK,SAAS,EAAC,gBAAgB;oBAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAU,CAC5C;oBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACrB,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC;6BAAG,KAAK,aAAL,KAAK;wBAAL,KAAK,CAAE,YAAY,CAC9C,CACL,CACJ,CACJ,CACP,CACN,CAAC;AACN,CAAC;AA/BD,kDA+BC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Headline from '@/components/generic/Headline';\nimport Text, { TextType } from '@/components/generic/Text';\n\nexport default function StepConfirmationPoliciesSection() {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n return (\n <>\n <div className=\"u-marg-bottom\">\n <Headline bold>{t(Translation.Step.Confirmation.Policies)}</Headline>\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"row\">\n <div className=\"col-6 col-md-3\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.CheckIn)}</strong>\n </Text>\n <Text type={TextType.Small}>\n {t(Translation.Misc.After)} {hotel?.checkInTime}\n </Text>\n </div>\n <div className=\"col-6 col-md-3\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.CheckOut)}</strong>\n </Text>\n <Text type={TextType.Small}>\n {t(Translation.Misc.Before)} {hotel?.checkOutTime}\n </Text>\n </div>\n </div>\n </div>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"StepConfirmationPoliciesSection.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationPoliciesSection.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,kDAA0B;AAC1B,iDAA+C;AAC/C,0DAAuD;AAEvD,6EAAqD;AACrD,kEAA2D;AAE3D,SAAwB,+BAA+B;IACnD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,OAAO,CACH;QACI,uCAAK,SAAS,EAAC,eAAe;YAC1B,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAY,CACnE;QACN,uCAAK,SAAS,EAAC,kDAAkD;YAC7D,uCAAK,SAAS,EAAC,KAAK;gBAChB,uCAAK,SAAS,EAAC,gBAAgB;oBAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAU,CAC3C;oBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACrB,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC;6BAAG,KAAK,aAAL,KAAK;wBAAL,KAAK,CAAE,WAAW,CAC5C,CACL;gBACN,uCAAK,SAAS,EAAC,gBAAgB;oBAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAU,CAC5C;oBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACrB,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC;6BAAG,KAAK,aAAL,KAAK;wBAAL,KAAK,CAAE,YAAY,CAC9C,CACL,CACJ,CACJ,CACP,CACN,CAAC;AACN,CAAC;AA/BD,kDA+BC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Headline from '@/components/generic/Headline';\nimport Text, { TextType } from '@/components/generic/Text';\n\nexport default function StepConfirmationPoliciesSection() {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n return (\n <>\n <div className=\"u-marg-bottom\">\n <Headline bold>{t(Translation.Step.Confirmation.Policies)}</Headline>\n </div>\n <div className=\"u-marg-bottom step-confirmation-policies-section\">\n <div className=\"row\">\n <div className=\"col-6 col-md-3\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.CheckIn)}</strong>\n </Text>\n <Text type={TextType.Small}>\n {t(Translation.Misc.After)} {hotel?.checkInTime}\n </Text>\n </div>\n <div className=\"col-6 col-md-3\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.CheckOut)}</strong>\n </Text>\n <Text type={TextType.Small}>\n {t(Translation.Misc.Before)} {hotel?.checkOutTime}\n </Text>\n </div>\n </div>\n </div>\n </>\n );\n}\n"]}
@@ -50,7 +50,7 @@ function StepConfirmationPolicyBlock() {
50
50
  else {
51
51
  policiesGrouped[0] = { rooms: [{ index: 1, room: rooms[0] }] };
52
52
  }
53
- return (react_1.default.createElement("div", { className: "u-marg-bottom" }, Object.values(policiesGrouped).map((group, index) => {
53
+ return (react_1.default.createElement("div", { className: "u-marg-bottom step-confirmation-policy-block" }, Object.values(policiesGrouped).map((group, index) => {
54
54
  var _a, _b, _c;
55
55
  const firstRoom = group.rooms[0];
56
56
  return (react_1.default.createElement("div", { className: "u-marg-bottom--heavy", key: index },
@@ -67,12 +67,12 @@ function StepConfirmationPolicyBlock() {
67
67
  _a.name));
68
68
  })),
69
69
  react_1.default.createElement("div", { className: "u-marg-bottom" }, ((_a = firstRoom.room.getRate()) === null || _a === void 0 ? void 0 : _a.getGuaranteePolicy()) ? (react_1.default.createElement(react_1.default.Fragment, null,
70
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, bold: true }, t(Translation_1.Translation.Misc.GuaranteePolicy)),
71
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, preformatted: true },
72
- react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: ((_b = firstRoom.room.getRate()) === null || _b === void 0 ? void 0 : _b.getGuaranteePolicy()) || '' } })))) : null),
73
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, bold: true }, t(Translation_1.Translation.Misc.CancellationPolicy)),
74
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, preformatted: true },
75
- react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: ((_c = firstRoom.room.getRate()) === null || _c === void 0 ? void 0 : _c.getCancellationPolicy()) || '' } }))));
70
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, bold: true, className: "u-marg-bottom--light" }, t(Translation_1.Translation.Misc.GuaranteePolicy)),
71
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
72
+ react_1.default.createElement("span", { className: "u-clear-font-weight", dangerouslySetInnerHTML: { __html: ((_b = firstRoom.room.getRate()) === null || _b === void 0 ? void 0 : _b.getGuaranteePolicy()) || '' } })))) : null),
73
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, bold: true, className: "u-marg-bottom--light" }, t(Translation_1.Translation.Misc.CancellationPolicy)),
74
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
75
+ react_1.default.createElement("span", { className: "u-clear-font-weight", dangerouslySetInnerHTML: { __html: ((_c = firstRoom.room.getRate()) === null || _c === void 0 ? void 0 : _c.getCancellationPolicy()) || '' } }))));
76
76
  })));
77
77
  }, [basketContext.currentBasketRows]);
78
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StepConfirmationPolicyBlock.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationPolicyBlock.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext } from '@frontend/contexts';\nimport React, { useContext, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Text, { TextType } from '@/components/generic/Text';\nimport BasketRow from '@/models/BasketRow';\n\nexport default function StepConfirmationPolicyBlock() {\n const basketContext = useContext(BasketContext);\n\n const { t } = useTranslation();\n\n const roomTranslation = t(Translation.Misc.Room);\n\n return useMemo(() => {\n const policiesGrouped: { [uniq: string]: { rooms: { index: number; room: BasketRow }[] } } = {};\n const rooms = basketContext.getAllValidRows();\n\n let roomIndex = 0;\n\n if (rooms.length > 1) {\n rooms.forEach((room) => {\n roomIndex++;\n\n const rate = room.getRate();\n let entry = policiesGrouped[`${rate?.cancelPolicyCode}-${rate?.guaranteeCode}`];\n\n if (!entry) {\n entry = policiesGrouped[`${rate?.cancelPolicyCode}-${rate?.guaranteeCode}`] = { rooms: [] };\n }\n\n entry.rooms.push({ index: roomIndex, room });\n });\n } else {\n policiesGrouped[0] = { rooms: [{ index: 1, room: rooms[0] }] };\n }\n\n return (\n <div className=\"u-marg-bottom\">\n {Object.values(policiesGrouped).map((group, index) => {\n const firstRoom = group.rooms[0];\n\n return (\n <div className=\"u-marg-bottom--heavy\" key={index}>\n <div className=\"u-marg-bottom\">\n {group.rooms.map((roomWithIndex) => {\n return (\n <Text key={roomWithIndex.index} type={TextType.Small}>\n <strong>\n {roomTranslation} {roomWithIndex.index}\n </strong>{' '}\n {roomWithIndex.room.getRoom().name} - {roomWithIndex.room.getRate()?.name}\n </Text>\n );\n })}\n </div>\n <div className=\"u-marg-bottom\">\n {firstRoom.room.getRate()?.getGuaranteePolicy() ? (\n <>\n <Text type={TextType.Small} bold>\n {t(Translation.Misc.GuaranteePolicy)}\n </Text>\n <Text type={TextType.Small} preformatted>\n <span dangerouslySetInnerHTML={{ __html: firstRoom.room.getRate()?.getGuaranteePolicy() || '' }}></span>\n </Text>\n </>\n ) : null}\n </div>\n <Text type={TextType.Small} bold>\n {t(Translation.Misc.CancellationPolicy)}\n </Text>\n <Text type={TextType.Small} preformatted>\n <span dangerouslySetInnerHTML={{ __html: firstRoom.room.getRate()?.getCancellationPolicy() || '' }}></span>\n </Text>\n </div>\n );\n })}\n </div>\n );\n }, [basketContext.currentBasketRows]);\n}\n"]}
1
+ {"version":3,"file":"StepConfirmationPolicyBlock.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationPolicyBlock.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext } from '@frontend/contexts';\nimport React, { useContext, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Text, { TextType } from '@/components/generic/Text';\nimport BasketRow from '@/models/BasketRow';\n\nexport default function StepConfirmationPolicyBlock() {\n const basketContext = useContext(BasketContext);\n\n const { t } = useTranslation();\n\n const roomTranslation = t(Translation.Misc.Room);\n\n return useMemo(() => {\n const policiesGrouped: { [uniq: string]: { rooms: { index: number; room: BasketRow }[] } } = {};\n const rooms = basketContext.getAllValidRows();\n\n let roomIndex = 0;\n\n if (rooms.length > 1) {\n rooms.forEach((room) => {\n roomIndex++;\n\n const rate = room.getRate();\n let entry = policiesGrouped[`${rate?.cancelPolicyCode}-${rate?.guaranteeCode}`];\n\n if (!entry) {\n entry = policiesGrouped[`${rate?.cancelPolicyCode}-${rate?.guaranteeCode}`] = { rooms: [] };\n }\n\n entry.rooms.push({ index: roomIndex, room });\n });\n } else {\n policiesGrouped[0] = { rooms: [{ index: 1, room: rooms[0] }] };\n }\n\n return (\n <div className=\"u-marg-bottom step-confirmation-policy-block\">\n {Object.values(policiesGrouped).map((group, index) => {\n const firstRoom = group.rooms[0];\n\n return (\n <div className=\"u-marg-bottom--heavy\" key={index}>\n <div className=\"u-marg-bottom\">\n {group.rooms.map((roomWithIndex) => {\n return (\n <Text key={roomWithIndex.index} type={TextType.Small}>\n <strong>\n {roomTranslation} {roomWithIndex.index}\n </strong>{' '}\n {roomWithIndex.room.getRoom().name} - {roomWithIndex.room.getRate()?.name}\n </Text>\n );\n })}\n </div>\n <div className=\"u-marg-bottom\">\n {firstRoom.room.getRate()?.getGuaranteePolicy() ? (\n <>\n <Text type={TextType.Small} bold className=\"u-marg-bottom--light\">\n {t(Translation.Misc.GuaranteePolicy)}\n </Text>\n <Text type={TextType.Small}>\n <span className=\"u-clear-font-weight\" dangerouslySetInnerHTML={{ __html: firstRoom.room.getRate()?.getGuaranteePolicy() || '' }}></span>\n </Text>\n </>\n ) : null}\n </div>\n <Text type={TextType.Small} bold className=\"u-marg-bottom--light\">\n {t(Translation.Misc.CancellationPolicy)}\n </Text>\n <Text type={TextType.Small}>\n <span className=\"u-clear-font-weight\" dangerouslySetInnerHTML={{ __html: firstRoom.room.getRate()?.getCancellationPolicy() || '' }}></span>\n </Text>\n </div>\n );\n })}\n </div>\n );\n }, [basketContext.currentBasketRows]);\n}\n"]}
@@ -42,9 +42,6 @@ function PeoplePickerRow(pickerProps) {
42
42
  const { adults, children, infants } = pickerProps.details;
43
43
  const { hotel } = (0, hooks_1.useCurrentHotel)();
44
44
  const [animatedIn, setAnimation] = (0, react_1.useState)(false);
45
- const heightProps = (0, web_1.useSpring)({
46
- height: animatedIn ? (pickerProps.number === 0 ? 145 : 179) : 0,
47
- });
48
45
  const transition = (0, web_1.useTransition)(animatedIn, {
49
46
  from: { opacity: 0 },
50
47
  enter: { opacity: 1 },
@@ -79,6 +76,27 @@ function PeoplePickerRow(pickerProps) {
79
76
  };
80
77
  const { getMaxSelectableAdults, showChildren } = (0, useSearchScopeHook_1.useSearchScopeHook)();
81
78
  const maxAdults = getMaxSelectableAdults({ adults, children });
79
+ const totalHeight = (0, react_1.useMemo)(() => {
80
+ var _a;
81
+ // Default: Line break + Adult row
82
+ let height = 64 + 32;
83
+ // Room number
84
+ if (pickerProps.number) {
85
+ height += 34;
86
+ }
87
+ // Children row
88
+ if (showChildren) {
89
+ height += 48;
90
+ }
91
+ // Infant row
92
+ if ((_a = hotel === null || hotel === void 0 ? void 0 : hotel.childConfiguration) === null || _a === void 0 ? void 0 : _a.supportInfants) {
93
+ height += 48;
94
+ }
95
+ return height;
96
+ }, [showChildren, pickerProps, hotel]);
97
+ const [heightProps] = (0, web_1.useSpring)(() => ({
98
+ height: animatedIn ? totalHeight : 0,
99
+ }), [totalHeight, animatedIn]);
82
100
  return (react_1.default.createElement(react_1.default.Fragment, null, transition((props, item) => {
83
101
  var _a;
84
102
  return item && (react_1.default.createElement(web_1.animated.div, { ref: firstUpdate, style: Object.assign(Object.assign({}, props), heightProps) },
@@ -1 +1 @@
1
- {"version":3,"file":"PeoplePickerRow.js","sourceRoot":"/","sources":["src/components/steps/date/PeoplePickerRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport { animated, useSpring, useTransition } from '@react-spring/web';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { useSearchScopeHook } from '@/hooks/useSearchScopeHook';\nimport { Color } from '@/util/Color';\n\nexport interface PeoplePickerDetails {\n adults: number;\n children: number;\n infants: number;\n promoCode: string;\n}\n\nexport interface PeoplePickerRowProps {\n details: PeoplePickerDetails;\n\n number: number;\n onChange?: (details: PeoplePickerDetails) => void;\n onRemove?: () => void;\n}\n\nexport default function PeoplePickerRow(pickerProps: PeoplePickerRowProps) {\n const { t } = useTranslation();\n const { adults, children, infants } = pickerProps.details;\n\n const { hotel } = useCurrentHotel();\n\n const [animatedIn, setAnimation] = useState(false);\n const heightProps = useSpring({\n height: animatedIn ? (pickerProps.number === 0 ? 145 : 179) : 0,\n });\n const transition = useTransition(animatedIn, {\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n });\n\n const firstUpdate = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n setAnimation(true);\n }, []);\n\n const onInputChanged = (val: any) => {\n if (pickerProps.onChange) {\n pickerProps.onChange({\n ...pickerProps.details,\n ...val,\n });\n }\n };\n\n const onClose = () => {\n if (pickerProps.onRemove) {\n setAnimation(false);\n setTimeout(() => {\n pickerProps.onRemove?.();\n }, 500);\n }\n };\n const adultsChangeHandler = (val: any) => {\n onInputChanged({ adults: val });\n };\n const childrenChangeHandler = (val: any) => {\n onInputChanged({ children: val });\n };\n const infantChangeHandler = (val: any) => {\n onInputChanged({ infants: val });\n };\n\n const { getMaxSelectableAdults, showChildren } = useSearchScopeHook();\n const maxAdults = getMaxSelectableAdults({ adults, children });\n\n return (\n <>\n {transition(\n (props, item) =>\n item && (\n <animated.div ref={firstUpdate} style={{ ...props, ...heightProps } as any}>\n <div className=\"people-picker--item\">\n {pickerProps.number > 0 && (\n <div className=\"people-picker--item-row\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n <strong>\n {t(Translation.Misc.Room)}&nbsp;{pickerProps.number + 1}\n </strong>\n </Text>\n <div className=\"people-picker--item-remove\" onClick={onClose}>\n <Icon icon={IconType.Close} color={Color.Grey} />\n </div>\n </div>\n )}\n <div className=\"people-picker--item-row\">\n <Text>{t(Translation.Step.Date.Adult_plural)}</Text>\n <NumberIncrement number={adults} min={1} max={maxAdults} onChange={adultsChangeHandler} />\n </div>\n {showChildren ? (\n <div className=\"people-picker--item-row\">\n <Text>{t(Translation.Step.Date.Child_plural)}</Text>\n <NumberIncrement number={children} min={0} max={(hotel?.maxOccupancy as number) - adults} onChange={childrenChangeHandler} />\n </div>\n ) : null}\n {hotel?.childConfiguration?.supportInfants ? (\n <div className=\"people-picker--item-row\">\n <Text>{t(Translation.Step.Date.Infant_plural)}</Text>\n <NumberIncrement number={infants} min={0} max={(hotel?.maxOccupancy as number) - adults} onChange={infantChangeHandler} />\n </div>\n ) : null}\n </div>\n <LineBreak />\n </animated.div>\n )\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"PeoplePickerRow.js","sourceRoot":"/","sources":["src/components/steps/date/PeoplePickerRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport { animated, useSpring, useTransition } from '@react-spring/web';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { useSearchScopeHook } from '@/hooks/useSearchScopeHook';\nimport { Color } from '@/util/Color';\n\nexport interface PeoplePickerDetails {\n adults: number;\n children: number;\n infants: number;\n promoCode: string;\n}\n\nexport interface PeoplePickerRowProps {\n details: PeoplePickerDetails;\n\n number: number;\n onChange?: (details: PeoplePickerDetails) => void;\n onRemove?: () => void;\n}\n\nexport default function PeoplePickerRow(pickerProps: PeoplePickerRowProps) {\n const { t } = useTranslation();\n const { adults, children, infants } = pickerProps.details;\n\n const { hotel } = useCurrentHotel();\n\n const [animatedIn, setAnimation] = useState(false);\n\n const transition = useTransition(animatedIn, {\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n });\n\n const firstUpdate = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n setAnimation(true);\n }, []);\n\n const onInputChanged = (val: any) => {\n if (pickerProps.onChange) {\n pickerProps.onChange({\n ...pickerProps.details,\n ...val,\n });\n }\n };\n\n const onClose = () => {\n if (pickerProps.onRemove) {\n setAnimation(false);\n setTimeout(() => {\n pickerProps.onRemove?.();\n }, 500);\n }\n };\n const adultsChangeHandler = (val: any) => {\n onInputChanged({ adults: val });\n };\n const childrenChangeHandler = (val: any) => {\n onInputChanged({ children: val });\n };\n const infantChangeHandler = (val: any) => {\n onInputChanged({ infants: val });\n };\n\n const { getMaxSelectableAdults, showChildren } = useSearchScopeHook();\n const maxAdults = getMaxSelectableAdults({ adults, children });\n\n const totalHeight = useMemo(() => {\n // Default: Line break + Adult row\n let height = 64 + 32;\n\n // Room number\n if (pickerProps.number) {\n height += 34;\n }\n\n // Children row\n if (showChildren) {\n height += 48;\n }\n\n // Infant row\n if (hotel?.childConfiguration?.supportInfants) {\n height += 48;\n }\n\n return height;\n }, [showChildren, pickerProps, hotel]);\n\n const [heightProps] = useSpring(\n () => ({\n height: animatedIn ? totalHeight : 0,\n }),\n [totalHeight, animatedIn]\n );\n\n return (\n <>\n {transition(\n (props, item) =>\n item && (\n <animated.div ref={firstUpdate} style={{ ...props, ...heightProps } as any}>\n <div className=\"people-picker--item\">\n {pickerProps.number > 0 && (\n <div className=\"people-picker--item-row\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n <strong>\n {t(Translation.Misc.Room)}&nbsp;{pickerProps.number + 1}\n </strong>\n </Text>\n <div className=\"people-picker--item-remove\" onClick={onClose}>\n <Icon icon={IconType.Close} color={Color.Grey} />\n </div>\n </div>\n )}\n <div className=\"people-picker--item-row\">\n <Text>{t(Translation.Step.Date.Adult_plural)}</Text>\n <NumberIncrement number={adults} min={1} max={maxAdults} onChange={adultsChangeHandler} />\n </div>\n {showChildren ? (\n <div className=\"people-picker--item-row\">\n <Text>{t(Translation.Step.Date.Child_plural)}</Text>\n <NumberIncrement number={children} min={0} max={(hotel?.maxOccupancy as number) - adults} onChange={childrenChangeHandler} />\n </div>\n ) : null}\n {hotel?.childConfiguration?.supportInfants ? (\n <div className=\"people-picker--item-row\">\n <Text>{t(Translation.Step.Date.Infant_plural)}</Text>\n <NumberIncrement number={infants} min={0} max={(hotel?.maxOccupancy as number) - adults} onChange={infantChangeHandler} />\n </div>\n ) : null}\n </div>\n <LineBreak />\n </animated.div>\n )\n )}\n </>\n );\n}\n"]}
@@ -54,10 +54,10 @@ function RoomDetailsBedsBlock(props) {
54
54
  react_1.default.createElement(Text_1.Text, { type: Text_1.TextType.Small, inline: true, color: textColor }, t(Translation_1.Translation.Step.Room.Sleeps, {
55
55
  maxOccupancy: extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.maxOccupancy,
56
56
  })))),
57
- react_1.default.createElement("li", { className: "u-flex align-items-center" },
57
+ (extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.showBedType) !== false && (react_1.default.createElement("li", { className: "u-flex align-items-center" },
58
58
  react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Bed, size: "24px", color: Color_1.Color.Navy }),
59
59
  react_1.default.createElement("div", { className: "u-pad-left--light" },
60
- react_1.default.createElement(Text_1.Text, { type: Text_1.TextType.Small, inline: true, color: textColor }, bedType))),
60
+ react_1.default.createElement(Text_1.Text, { type: Text_1.TextType.Small, inline: true, color: textColor }, bedType)))),
61
61
  !!roomSize && (react_1.default.createElement("li", { className: "u-flex align-items-center" },
62
62
  react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.RoomSize, size: "24px", color: Color_1.Color.Navy }),
63
63
  react_1.default.createElement("div", { className: "u-pad-left--light" },
@@ -1 +1 @@
1
- {"version":3,"file":"RoomDetailsBedsBlock.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/RoomDetailsBedsBlock.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport { Text, TextType } from '@/components/generic/Text';\nimport { Room } from '@/models/Room/Room';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface RoomDetailsBedsBlockProps {\n room: Room;\n\n textColor?: Color;\n}\n\nexport function RoomDetailsBedsBlock(props: RoomDetailsBedsBlockProps) {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const extraRoomData = hotel?.rooms?.[props.room?.code as string];\n const adminRoomSize = hotel?.rooms?.[props.room?.code as string]?.roomSize;\n const overrideRoomSize = hotel?.overwrites?.[props.room?.code as string]?.RoomDimensions;\n const roomSize = overrideRoomSize ?? (adminRoomSize ? `${adminRoomSize} m²` : undefined);\n\n const textColor = props.textColor ?? Color.DarkGrey;\n\n let bedType = `${(extraRoomData?.bedQuantity as number) > 0 ? extraRoomData?.bedQuantity : ''} ${extraRoomData?.bedType}`;\n if (extraRoomData?.bedTypeOverride?.trim()) {\n bedType = extraRoomData.bedTypeOverride;\n }\n\n return (\n <ul className=\"u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom\">\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.People} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {t(Translation.Step.Room.Sleeps, {\n maxOccupancy: extraRoomData?.maxOccupancy,\n })}\n </Text>\n </div>\n </li>\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.Bed} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {bedType}\n </Text>\n </div>\n </li>\n {!!roomSize && (\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.RoomSize} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {roomSize}\n </Text>\n </div>\n </li>\n )}\n </ul>\n );\n}\n"]}
1
+ {"version":3,"file":"RoomDetailsBedsBlock.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/RoomDetailsBedsBlock.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport { Text, TextType } from '@/components/generic/Text';\nimport { Room } from '@/models/Room/Room';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface RoomDetailsBedsBlockProps {\n room: Room;\n\n textColor?: Color;\n}\n\nexport function RoomDetailsBedsBlock(props: RoomDetailsBedsBlockProps) {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const extraRoomData = hotel?.rooms?.[props.room?.code as string];\n const adminRoomSize = hotel?.rooms?.[props.room?.code as string]?.roomSize;\n const overrideRoomSize = hotel?.overwrites?.[props.room?.code as string]?.RoomDimensions;\n const roomSize = overrideRoomSize ?? (adminRoomSize ? `${adminRoomSize} m²` : undefined);\n\n const textColor = props.textColor ?? Color.DarkGrey;\n\n let bedType = `${(extraRoomData?.bedQuantity as number) > 0 ? extraRoomData?.bedQuantity : ''} ${extraRoomData?.bedType}`;\n if (extraRoomData?.bedTypeOverride?.trim()) {\n bedType = extraRoomData.bedTypeOverride;\n }\n\n return (\n <ul className=\"u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom\">\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.People} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {t(Translation.Step.Room.Sleeps, {\n maxOccupancy: extraRoomData?.maxOccupancy,\n })}\n </Text>\n </div>\n </li>\n {extraRoomData?.showBedType !== false && (\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.Bed} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {bedType}\n </Text>\n </div>\n </li>\n )}\n {!!roomSize && (\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.RoomSize} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {roomSize}\n </Text>\n </div>\n </li>\n )}\n </ul>\n );\n}\n"]}
@@ -42,6 +42,7 @@ export type HotelRoomDTO = {
42
42
  quantity: number;
43
43
  maxOccupancy: number;
44
44
  bedQuantity: number;
45
+ showBedType?: boolean;
45
46
  standardNumBeds: number;
46
47
  maxRollaways: number;
47
48
  bedType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HotelDTO.js","sourceRoot":"/","sources":["src/models/Api/HotelDTO.ts"],"names":[],"mappings":";;;AAMA,uDAA8F;AAgD9F,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACnB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AA2DD,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,wCAAyB,CAAA;IACzB,0BAAW,CAAA;IACX,wCAAyB,CAAA;IACzB,uCAAwB,CAAA;IACxB,oCAAqB,CAAA;AACzB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAEY,QAAA,0BAA0B,GAAsD;IACzF,CAAC,wBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI;IACzC,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU;IACrD,CAAC,wBAAgB,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG;IACvC,CAAC,wBAAgB,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe;IAC/D,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU;IACrD,CAAC,wBAAgB,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ;CACpD,CAAC","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport type { EBookingPaymentMethod, EHotelCardProcessor } from '@roomstay/core';\nimport { DeepPartial } from 'react-hook-form';\n\nimport ColorProfile from '@/models/Client/Hotel/ColorProfile';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { AdminHotelConfig, ConfigHotel, EPaymentCardType } from '@/models/Client/Hotel/Hotel';\nimport HotelAddress from '@/models/Client/Hotel/HotelAddress';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { WeekdayStartsOn } from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\nexport type HotelServiceDTO = {\n detail: string;\n included: boolean;\n name: string;\n onsite: boolean;\n};\n\nexport type HotelRoomsDTO = {\n [roomTypeCode: string]: HotelRoomDTO;\n};\n\nexport type HotelRoomGroupsDTO = {\n groupName: string;\n id: string;\n filters: { [id: string]: { name: string; type: 'select'; includeAllAbove: boolean; requireInput: boolean; options: any } };\n}[];\n\nexport type HotelRoomAmenitiesDTO = {\n type: string;\n description: string;\n};\n\nexport type HotelRoomDTO = {\n code: string;\n name: string;\n shortDescription: string;\n longDescription: string;\n images: string[];\n quantity: number;\n maxOccupancy: number;\n bedQuantity: number;\n standardNumBeds: number;\n maxRollaways: number;\n bedType: string;\n amenities: HotelRoomAmenitiesDTO[];\n features: HotelRoomAmenitiesDTO[];\n bedTypeOverride?: string;\n roomGroupId?: string;\n roomSize?: number;\n prePerkDisclaimer?: string;\n perks?: ConfigHotel['perks'];\n};\n\nexport enum EIntegration {\n Big4 = 'Big4',\n Top10 = 'Top10',\n}\n\nexport type HotelDTO = {\n id: number;\n name: string;\n chainId: number;\n chainName: string;\n\n address: HotelAddress;\n phone: string;\n\n latitude: string;\n longitude: string;\n\n utcOffset: string;\n\n languageCode: string;\n currencyCode: string;\n\n checkInTime: string;\n checkOutTime: string;\n\n paymentCardTypes: EPaymentCardType[];\n\n description: string;\n locationDescription: string;\n policies: string;\n\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n\n rooms: { [roomTypeCode: string]: HotelRoomDTO };\n dataSource: HotelDataSource;\n\n // Following fields are only present if dataSource = 'roomstay'\n logo?: string;\n colors: DeepPartial<ColorProfile>;\n distanceUnitType?: DistanceUnitType;\n weekdayStartsOn?: WeekdayStartsOn;\n\n crossSellHotelIds?: string[];\n paymentMethods: EBookingPaymentMethod[];\n cardProcessor: EHotelCardProcessor;\n planpay?: {\n username: string;\n minDaysShowPlanpay: number;\n env: EnvironmentName;\n };\n\n email?: string;\n hotelUrl?: string;\n heroImage?: string;\n images?: string[];\n integrations?: EIntegration[];\n roomGroups: HotelRoomGroupsDTO;\n requireDeposit?: boolean;\n availableCountries?: { name: string; value: string }[];\n} & Pick<AdminHotelConfig, 'childConfiguration'>;\n\nexport enum VGSCardName {\n Visa = 'visa',\n Mastercard = 'mastercard',\n JCB = 'jcb',\n DinersClub = 'dinersclub',\n AmericanExpress = 'amex',\n UnionPay = 'unionpay',\n}\n\nexport const SynxisToVGSCardNameMapping: { [synxisName in EPaymentCardType]: VGSCardName } = {\n [EPaymentCardType.Visa]: VGSCardName.Visa,\n [EPaymentCardType.Mastercard]: VGSCardName.Mastercard,\n [EPaymentCardType.JCB]: VGSCardName.JCB,\n [EPaymentCardType.AmericanExpress]: VGSCardName.AmericanExpress,\n [EPaymentCardType.DinersClub]: VGSCardName.DinersClub,\n [EPaymentCardType.UnionPay]: VGSCardName.UnionPay,\n};\n"]}
1
+ {"version":3,"file":"HotelDTO.js","sourceRoot":"/","sources":["src/models/Api/HotelDTO.ts"],"names":[],"mappings":";;;AAMA,uDAA8F;AAiD9F,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACnB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AA2DD,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,wCAAyB,CAAA;IACzB,0BAAW,CAAA;IACX,wCAAyB,CAAA;IACzB,uCAAwB,CAAA;IACxB,oCAAqB,CAAA;AACzB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAEY,QAAA,0BAA0B,GAAsD;IACzF,CAAC,wBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI;IACzC,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU;IACrD,CAAC,wBAAgB,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG;IACvC,CAAC,wBAAgB,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe;IAC/D,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU;IACrD,CAAC,wBAAgB,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ;CACpD,CAAC","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport type { EBookingPaymentMethod, EHotelCardProcessor } from '@roomstay/core';\nimport { DeepPartial } from 'react-hook-form';\n\nimport ColorProfile from '@/models/Client/Hotel/ColorProfile';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { AdminHotelConfig, ConfigHotel, EPaymentCardType } from '@/models/Client/Hotel/Hotel';\nimport HotelAddress from '@/models/Client/Hotel/HotelAddress';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { WeekdayStartsOn } from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\nexport type HotelServiceDTO = {\n detail: string;\n included: boolean;\n name: string;\n onsite: boolean;\n};\n\nexport type HotelRoomsDTO = {\n [roomTypeCode: string]: HotelRoomDTO;\n};\n\nexport type HotelRoomGroupsDTO = {\n groupName: string;\n id: string;\n filters: { [id: string]: { name: string; type: 'select'; includeAllAbove: boolean; requireInput: boolean; options: any } };\n}[];\n\nexport type HotelRoomAmenitiesDTO = {\n type: string;\n description: string;\n};\n\nexport type HotelRoomDTO = {\n code: string;\n name: string;\n shortDescription: string;\n longDescription: string;\n images: string[];\n quantity: number;\n maxOccupancy: number;\n bedQuantity: number;\n showBedType?: boolean;\n standardNumBeds: number;\n maxRollaways: number;\n bedType: string;\n amenities: HotelRoomAmenitiesDTO[];\n features: HotelRoomAmenitiesDTO[];\n bedTypeOverride?: string;\n roomGroupId?: string;\n roomSize?: number;\n prePerkDisclaimer?: string;\n perks?: ConfigHotel['perks'];\n};\n\nexport enum EIntegration {\n Big4 = 'Big4',\n Top10 = 'Top10',\n}\n\nexport type HotelDTO = {\n id: number;\n name: string;\n chainId: number;\n chainName: string;\n\n address: HotelAddress;\n phone: string;\n\n latitude: string;\n longitude: string;\n\n utcOffset: string;\n\n languageCode: string;\n currencyCode: string;\n\n checkInTime: string;\n checkOutTime: string;\n\n paymentCardTypes: EPaymentCardType[];\n\n description: string;\n locationDescription: string;\n policies: string;\n\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n\n rooms: { [roomTypeCode: string]: HotelRoomDTO };\n dataSource: HotelDataSource;\n\n // Following fields are only present if dataSource = 'roomstay'\n logo?: string;\n colors: DeepPartial<ColorProfile>;\n distanceUnitType?: DistanceUnitType;\n weekdayStartsOn?: WeekdayStartsOn;\n\n crossSellHotelIds?: string[];\n paymentMethods: EBookingPaymentMethod[];\n cardProcessor: EHotelCardProcessor;\n planpay?: {\n username: string;\n minDaysShowPlanpay: number;\n env: EnvironmentName;\n };\n\n email?: string;\n hotelUrl?: string;\n heroImage?: string;\n images?: string[];\n integrations?: EIntegration[];\n roomGroups: HotelRoomGroupsDTO;\n requireDeposit?: boolean;\n availableCountries?: { name: string; value: string }[];\n} & Pick<AdminHotelConfig, 'childConfiguration'>;\n\nexport enum VGSCardName {\n Visa = 'visa',\n Mastercard = 'mastercard',\n JCB = 'jcb',\n DinersClub = 'dinersclub',\n AmericanExpress = 'amex',\n UnionPay = 'unionpay',\n}\n\nexport const SynxisToVGSCardNameMapping: { [synxisName in EPaymentCardType]: VGSCardName } = {\n [EPaymentCardType.Visa]: VGSCardName.Visa,\n [EPaymentCardType.Mastercard]: VGSCardName.Mastercard,\n [EPaymentCardType.JCB]: VGSCardName.JCB,\n [EPaymentCardType.AmericanExpress]: VGSCardName.AmericanExpress,\n [EPaymentCardType.DinersClub]: VGSCardName.DinersClub,\n [EPaymentCardType.UnionPay]: VGSCardName.UnionPay,\n};\n"]}
@@ -56,7 +56,7 @@ const AccountHomePage = () => {
56
56
  react_1.default.createElement(react_router_dom_1.Link, { to: StepManager_1.default.getFirstStep().getStepUrl() },
57
57
  react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, t(Translation_1.Translation.UserPortal.HomeScreen.BackToBooking)))),
58
58
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy u-pad-top@m" },
59
- react_1.default.createElement(Headline_1.default, { size: "extra-large", className: "u-marg-bottom" }, t(Translation_1.Translation.UserPortal.HomeScreen.Title, { name: user === null || user === void 0 ? void 0 : user.forename })),
59
+ react_1.default.createElement(Headline_1.default, { size: "extra-large", className: "u-marg-bottom" }, t((user === null || user === void 0 ? void 0 : user.forename) ? Translation_1.Translation.UserPortal.HomeScreen.Title : Translation_1.Translation.UserPortal.HomeScreen.TitleEmpty, { name: user === null || user === void 0 ? void 0 : user.forename })),
60
60
  hasBookings ? (react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Body }, t(Translation_1.Translation.UserPortal.HomeScreen.Subtitle))) : (react_1.default.createElement(Text_1.default, { className: "u-marg-top" }, t(Translation_1.Translation.Reservation.EmptyPage.SubTitle)))),
61
61
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy" }, hasBookings ? (react_1.default.createElement(ReservationItem_1.default, { itineraryItem: upcomingBookings === null || upcomingBookings === void 0 ? void 0 : upcomingBookings[0], defaultEventsExpanded: true })) : (react_1.default.createElement("div", { className: "u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap" },
62
62
  react_1.default.createElement("div", null,
@@ -69,28 +69,28 @@ const AccountHomePage = () => {
69
69
  react_1.default.createElement(BEButton_1.default, { wide: isMobile, rounded: true, filled: true, icon: Icon_1.IconType.ArrowRight, iconPosition: "right", primary: true }, t(Translation_1.Translation.Reservation.EmptyPage.SearchRooms)))))))),
70
70
  react_1.default.createElement("div", { className: "row" },
71
71
  react_1.default.createElement("div", { className: "col-md-3" },
72
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Subtitle, title: t(Translation_1.Translation.UserPortal.HomeScreen.Bookings), description: "See all of your bookings, past, present and cancelled.", link: {
72
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Subtitle, title: t(Translation_1.Translation.UserPortal.HomeScreen.Bookings), description: react_1.default.createElement(react_i18next_1.Trans, { i18nKey: Translation_1.Translation.UserPortal.HomeScreen.BookingsDescription, components: { 1: react_1.default.createElement("div", null) } }), link: {
73
73
  text: 'See list',
74
74
  pathTo: AccountRoutes_1.AccountRoutes.Reservations.path,
75
75
  icon: 'arrow',
76
76
  color: Color_1.Color.Accent,
77
77
  } })),
78
78
  react_1.default.createElement("div", { className: "col-md-3" },
79
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Person, title: t(Translation_1.Translation.Navigation.Menu.ProfileInformation), description: "Edit your personal details, like address, and name", link: {
79
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Person, title: t(Translation_1.Translation.Navigation.Menu.ProfileInformation), description: react_1.default.createElement(react_i18next_1.Trans, { i18nKey: Translation_1.Translation.UserPortal.HomeScreen.ProfileInformationDescription, components: { 1: react_1.default.createElement("div", null) } }), link: {
80
80
  text: 'Edit Info',
81
81
  pathTo: AccountRoutes_1.AccountRoutes.ProfileDetails.path,
82
82
  icon: 'arrow',
83
83
  color: Color_1.Color.Accent,
84
84
  } })),
85
85
  react_1.default.createElement("div", { className: "col-md-3" },
86
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.CreditCard, title: t(Translation_1.Translation.Navigation.Menu.PaymentInformation), description: "Effortlessly manage cards for smoother checkout", link: {
86
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.CreditCard, title: t(Translation_1.Translation.Navigation.Menu.PaymentInformation), description: react_1.default.createElement(react_i18next_1.Trans, { i18nKey: Translation_1.Translation.UserPortal.HomeScreen.PaymentInformationDescription, components: { 1: react_1.default.createElement("div", null) } }), link: {
87
87
  text: 'Manage cards',
88
88
  pathTo: AccountRoutes_1.AccountRoutes.CardDetails.path,
89
89
  icon: 'arrow',
90
90
  color: Color_1.Color.Accent,
91
91
  } })),
92
92
  react_1.default.createElement("div", { className: "col-md-3" },
93
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.ProgressHelp, title: t(Translation_1.Translation.Navigation.Menu.NeedHelp), description: "Connect with our hotel staff for prompt assistance", link: {
93
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.ProgressHelp, title: t(Translation_1.Translation.Navigation.Menu.NeedHelp), description: react_1.default.createElement(react_i18next_1.Trans, { i18nKey: Translation_1.Translation.UserPortal.HomeScreen.NeedHelpDescription, components: { 1: react_1.default.createElement("div", null) } }), link: {
94
94
  text: 'Contact now',
95
95
  pathTo: AccountRoutes_1.AccountRoutes.Help.path,
96
96
  icon: 'arrow',
@@ -1 +1 @@
1
- {"version":3,"file":"AccountHomePage.js","sourceRoot":"/","sources":["src/pages/account/AccountHome/AccountHomePage.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BookingEngineContext, IRoomstayMemberBookingItemWithRefAndHotelDetails } from '@frontend/contexts';\nimport { useMember } from '@frontend/hooks';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { IconNavCard } from '@/components/generic/Card/IconNavCard/IconNavCard';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport HomeEmptyReservation from '@/components/graphics/EmptyGraphic';\nimport ReservationItem from '@/components/reservation/ReservationItem';\nimport { AccountRoutes } from '@/pages/account/AccountRoutes';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nexport const AccountHomePage = () => {\n const { user, upcomingBookings } = useMember();\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const isMobile = context.screenSize <= ScreenSize.Large;\n\n const firstStepUrl = StepManager.getFirstStep().getStepUrl();\n\n const hasBookings = (upcomingBookings?.length as number) > 0;\n\n return (\n <div>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom\">\n <Link to={StepManager.getFirstStep().getStepUrl()}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.UserPortal.HomeScreen.BackToBooking)}\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy u-pad-top@m\">\n <Headline size=\"extra-large\" className=\"u-marg-bottom\">\n {t(Translation.UserPortal.HomeScreen.Title, { name: user?.forename })}\n </Headline>\n {hasBookings ? (\n <Text type={TextType.Body}>{t(Translation.UserPortal.HomeScreen.Subtitle)}</Text>\n ) : (\n <Text className=\"u-marg-top\">{t(Translation.Reservation.EmptyPage.SubTitle)}</Text>\n )}\n </div>\n\n <div className=\"u-marg-bottom--heavy\">\n {hasBookings ? (\n <ReservationItem itineraryItem={upcomingBookings?.[0] as IRoomstayMemberBookingItemWithRefAndHotelDetails} defaultEventsExpanded />\n ) : (\n <div className=\"u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap\">\n <div>\n <HomeEmptyReservation className=\"mw-100\" />\n </div>\n <div className=\"u-marg-top--heavy@m-\">\n <Headline size=\"large\">{t(Translation.Reservation.EmptyPage.Message)}</Headline>\n <Text color={Color.DarkGrey} type={TextType.Small} className=\"u-marg-top--light\">\n {t(Translation.Reservation.EmptyPage.SubMessage)}\n </Text>\n <div className=\"u-marg-top--heavy u-flex u-flex-flex-start u-flex-gap--light u-flex-direction-column@l-\">\n <Link to={firstStepUrl}>\n <BEButton wide={isMobile} rounded filled icon={IconType.ArrowRight} iconPosition=\"right\" primary>\n {t(Translation.Reservation.EmptyPage.SearchRooms)}\n </BEButton>\n </Link>\n {/* <Link to={AccountRoutes.Reservations.path}>\n <BEButton wide={isMobile} rounded icon={IconType.ArrowRight} iconPosition=\"right\">\n {t(Translation.Reservation.EmptyPage.SeeAll)}\n </BEButton>\n </Link> */}\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Subtitle}\n title={t(Translation.UserPortal.HomeScreen.Bookings)}\n description=\"See all of your bookings, past, present and cancelled.\"\n link={{\n text: 'See list',\n pathTo: AccountRoutes.Reservations.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Person}\n title={t(Translation.Navigation.Menu.ProfileInformation)}\n description=\"Edit your personal details, like address, and name\"\n link={{\n text: 'Edit Info',\n pathTo: AccountRoutes.ProfileDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.CreditCard}\n title={t(Translation.Navigation.Menu.PaymentInformation)}\n description=\"Effortlessly manage cards for smoother checkout\"\n link={{\n text: 'Manage cards',\n pathTo: AccountRoutes.CardDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.ProgressHelp}\n title={t(Translation.Navigation.Menu.NeedHelp)}\n description=\"Connect with our hotel staff for prompt assistance\"\n link={{\n text: 'Contact now',\n pathTo: AccountRoutes.Help.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountHomePage.js","sourceRoot":"/","sources":["src/pages/account/AccountHome/AccountHomePage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA4G;AAC5G,2CAA4C;AAC5C,+CAA0C;AAC1C,iDAAsD;AACtD,uDAAwC;AACxC,0DAAuD;AAEvD,6EAAqD;AACrD,mFAAgF;AAChF,6EAAqD;AACrD,yDAA0D;AAC1D,kEAA2D;AAC3D,sFAAsE;AACtE,+FAAuE;AACvE,iEAA8D;AAC9D,wCAAqC;AACrC,mEAA2C;AAC3C,qEAA6C;AAEtC,MAAM,eAAe,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAC;IAC/C,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,oBAAU,CAAC,KAAK,CAAC;IAExD,MAAM,YAAY,GAAG,qBAAW,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAE7D,MAAM,WAAW,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAiB,IAAG,CAAC,CAAC;IAE7D,OAAO,CACH;QACI,uCAAK,SAAS,EAAC,iDAAiD;YAC5D,8BAAC,uBAAI,IAAC,EAAE,EAAE,qBAAW,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE;gBAC7C,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,EAAE,eAAQ,CAAC,SAAS,EAAE,IAAI,EAAC,OAAO,IAClD,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAC5C,CACR,CACL;QACN,uCAAK,SAAS,EAAC,kCAAkC;YAC7C,8BAAC,kBAAQ,IAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAC,eAAe,IACjD,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAC,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,CAAC,CAC9H;YACV,WAAW,CAAC,CAAC,CAAC,CACX,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,IAAI,IAAG,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAQ,CACpF,CAAC,CAAC,CAAC,CACA,8BAAC,cAAI,IAAC,SAAS,EAAC,YAAY,IAAE,CAAC,CAAC,yBAAW,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAQ,CACtF,CACC;QAEN,uCAAK,SAAS,EAAC,sBAAsB,IAChC,WAAW,CAAC,CAAC,CAAC,CACX,8BAAC,yBAAe,IAAC,aAAa,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,CAAC,CAAqD,EAAE,qBAAqB,SAAG,CACtI,CAAC,CAAC,CAAC,CACA,uCAAK,SAAS,EAAC,oFAAoF;YAC/F;gBACI,8BAAC,sBAAoB,IAAC,SAAS,EAAC,QAAQ,GAAG,CACzC;YACN,uCAAK,SAAS,EAAC,sBAAsB;gBACjC,8BAAC,kBAAQ,IAAC,IAAI,EAAC,OAAO,IAAE,CAAC,CAAC,yBAAW,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAY;gBAChF,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,SAAS,EAAC,mBAAmB,IAC3E,CAAC,CAAC,yBAAW,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAC7C;gBACP,uCAAK,SAAS,EAAC,yFAAyF;oBACpG,8BAAC,uBAAI,IAAC,EAAE,EAAE,YAAY;wBAClB,8BAAC,kBAAQ,IAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,QAAC,MAAM,QAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,EAAE,YAAY,EAAC,OAAO,EAAC,OAAO,UAC3F,CAAC,CAAC,yBAAW,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAC1C,CACR,CAML,CACJ,CACJ,CACT,CACC;QAEN,uCAAK,SAAS,EAAC,KAAK;YAChB,uCAAK,SAAS,EAAC,UAAU;gBACrB,8BAAC,yBAAW,IACR,IAAI,EAAE,eAAQ,CAAC,QAAQ,EACvB,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EACpD,WAAW,EAAE,8BAAC,qBAAK,IAAC,OAAO,EAAE,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,mBAAmB,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,0CAAO,EAAE,GAAI,EAClH,IAAI,EAAE;wBACF,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,6BAAa,CAAC,YAAY,CAAC,IAAI;wBACvC,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,aAAK,CAAC,MAAM;qBACtB,GACH,CACA;YACN,uCAAK,SAAS,EAAC,UAAU;gBACrB,8BAAC,yBAAW,IACR,IAAI,EAAE,eAAQ,CAAC,MAAM,EACrB,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACxD,WAAW,EAAE,8BAAC,qBAAK,IAAC,OAAO,EAAE,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,6BAA6B,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,0CAAO,EAAE,GAAI,EAC5H,IAAI,EAAE;wBACF,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,6BAAa,CAAC,cAAc,CAAC,IAAI;wBACzC,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,aAAK,CAAC,MAAM;qBACtB,GACH,CACA;YAEN,uCAAK,SAAS,EAAC,UAAU;gBACrB,8BAAC,yBAAW,IACR,IAAI,EAAE,eAAQ,CAAC,UAAU,EACzB,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACxD,WAAW,EAAE,8BAAC,qBAAK,IAAC,OAAO,EAAE,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,6BAA6B,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,0CAAO,EAAE,GAAI,EAC5H,IAAI,EAAE;wBACF,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,6BAAa,CAAC,WAAW,CAAC,IAAI;wBACtC,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,aAAK,CAAC,MAAM;qBACtB,GACH,CACA;YAEN,uCAAK,SAAS,EAAC,UAAU;gBACrB,8BAAC,yBAAW,IACR,IAAI,EAAE,eAAQ,CAAC,YAAY,EAC3B,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC9C,WAAW,EAAE,8BAAC,qBAAK,IAAC,OAAO,EAAE,yBAAW,CAAC,UAAU,CAAC,UAAU,CAAC,mBAAmB,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,0CAAO,EAAE,GAAI,EAClH,IAAI,EAAE;wBACF,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,6BAAa,CAAC,IAAI,CAAC,IAAI;wBAC/B,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,aAAK,CAAC,MAAM;qBACtB,GACH,CACA,CACJ,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAvHW,QAAA,eAAe,mBAuH1B","sourcesContent":["import { BookingEngineContext, IRoomstayMemberBookingItemWithRefAndHotelDetails } from '@frontend/contexts';\nimport { useMember } from '@frontend/hooks';\nimport React, { useContext } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { IconNavCard } from '@/components/generic/Card/IconNavCard/IconNavCard';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport HomeEmptyReservation from '@/components/graphics/EmptyGraphic';\nimport ReservationItem from '@/components/reservation/ReservationItem';\nimport { AccountRoutes } from '@/pages/account/AccountRoutes';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nexport const AccountHomePage = () => {\n const { user, upcomingBookings } = useMember();\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const isMobile = context.screenSize <= ScreenSize.Large;\n\n const firstStepUrl = StepManager.getFirstStep().getStepUrl();\n\n const hasBookings = (upcomingBookings?.length as number) > 0;\n\n return (\n <div>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom\">\n <Link to={StepManager.getFirstStep().getStepUrl()}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.UserPortal.HomeScreen.BackToBooking)}\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy u-pad-top@m\">\n <Headline size=\"extra-large\" className=\"u-marg-bottom\">\n {t(user?.forename ? Translation.UserPortal.HomeScreen.Title : Translation.UserPortal.HomeScreen.TitleEmpty, { name: user?.forename })}\n </Headline>\n {hasBookings ? (\n <Text type={TextType.Body}>{t(Translation.UserPortal.HomeScreen.Subtitle)}</Text>\n ) : (\n <Text className=\"u-marg-top\">{t(Translation.Reservation.EmptyPage.SubTitle)}</Text>\n )}\n </div>\n\n <div className=\"u-marg-bottom--heavy\">\n {hasBookings ? (\n <ReservationItem itineraryItem={upcomingBookings?.[0] as IRoomstayMemberBookingItemWithRefAndHotelDetails} defaultEventsExpanded />\n ) : (\n <div className=\"u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap\">\n <div>\n <HomeEmptyReservation className=\"mw-100\" />\n </div>\n <div className=\"u-marg-top--heavy@m-\">\n <Headline size=\"large\">{t(Translation.Reservation.EmptyPage.Message)}</Headline>\n <Text color={Color.DarkGrey} type={TextType.Small} className=\"u-marg-top--light\">\n {t(Translation.Reservation.EmptyPage.SubMessage)}\n </Text>\n <div className=\"u-marg-top--heavy u-flex u-flex-flex-start u-flex-gap--light u-flex-direction-column@l-\">\n <Link to={firstStepUrl}>\n <BEButton wide={isMobile} rounded filled icon={IconType.ArrowRight} iconPosition=\"right\" primary>\n {t(Translation.Reservation.EmptyPage.SearchRooms)}\n </BEButton>\n </Link>\n {/* <Link to={AccountRoutes.Reservations.path}>\n <BEButton wide={isMobile} rounded icon={IconType.ArrowRight} iconPosition=\"right\">\n {t(Translation.Reservation.EmptyPage.SeeAll)}\n </BEButton>\n </Link> */}\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Subtitle}\n title={t(Translation.UserPortal.HomeScreen.Bookings)}\n description={<Trans i18nKey={Translation.UserPortal.HomeScreen.BookingsDescription} components={{ 1: <div /> }} />}\n link={{\n text: 'See list',\n pathTo: AccountRoutes.Reservations.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Person}\n title={t(Translation.Navigation.Menu.ProfileInformation)}\n description={<Trans i18nKey={Translation.UserPortal.HomeScreen.ProfileInformationDescription} components={{ 1: <div /> }} />}\n link={{\n text: 'Edit Info',\n pathTo: AccountRoutes.ProfileDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.CreditCard}\n title={t(Translation.Navigation.Menu.PaymentInformation)}\n description={<Trans i18nKey={Translation.UserPortal.HomeScreen.PaymentInformationDescription} components={{ 1: <div /> }} />}\n link={{\n text: 'Manage cards',\n pathTo: AccountRoutes.CardDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.ProgressHelp}\n title={t(Translation.Navigation.Menu.NeedHelp)}\n description={<Trans i18nKey={Translation.UserPortal.HomeScreen.NeedHelpDescription} components={{ 1: <div /> }} />}\n link={{\n text: 'Contact now',\n pathTo: AccountRoutes.Help.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -1,10 +1,11 @@
1
1
  import { ComponentMeta, ComponentStory } from '@storybook/react';
2
+ import React from 'react';
2
3
  import { IconType } from '../components/generic/Icon/Icon';
3
4
  import { Color } from '../util/Color';
4
5
  declare const _default: ComponentMeta<(props: {
5
6
  icon: IconType;
6
7
  title: string;
7
- description?: string | undefined;
8
+ description?: React.ReactNode;
8
9
  link?: {
9
10
  text: string;
10
11
  pathTo?: string | undefined;
@@ -16,7 +17,7 @@ export default _default;
16
17
  export declare const Default: ComponentStory<(props: {
17
18
  icon: IconType;
18
19
  title: string;
19
- description?: string | undefined;
20
+ description?: React.ReactNode;
20
21
  link?: {
21
22
  text: string;
22
23
  pathTo?: string | undefined;
@@ -536,9 +536,14 @@ export declare const Translation: {
536
536
  HomeScreen: {
537
537
  BackToBooking: string;
538
538
  Title: string;
539
+ TitleEmpty: string;
539
540
  Subtitle: string;
540
541
  ViewAllBookings: string;
541
542
  Bookings: string;
543
+ BookingsDescription: string;
544
+ ProfileInformationDescription: string;
545
+ PaymentInformationDescription: string;
546
+ NeedHelpDescription: string;
542
547
  };
543
548
  ProfileScreen: {
544
549
  Validation: {
@@ -539,9 +539,14 @@ exports.Translation = {
539
539
  HomeScreen: {
540
540
  BackToBooking: 'UserPortal.HomeScreen.BackToBooking',
541
541
  Title: 'UserPortal.HomeScreen.Title',
542
+ TitleEmpty: 'UserPortal.HomeScreen.TitleEmpty',
542
543
  Subtitle: 'UserPortal.HomeScreen.Subtitle',
543
544
  ViewAllBookings: 'UserPortal.HomeScreen.ViewAllBookings',
544
545
  Bookings: 'UserPortal.HomeScreen.Bookings',
546
+ BookingsDescription: 'UserPortal.HomeScreen.BookingsDescription',
547
+ ProfileInformationDescription: 'UserPortal.HomeScreen.ProfileInformationDescription',
548
+ PaymentInformationDescription: 'UserPortal.HomeScreen.PaymentInformationDescription',
549
+ NeedHelpDescription: 'UserPortal.HomeScreen.NeedHelpDescription',
545
550
  },
546
551
  ProfileScreen: {
547
552
  Validation: {