{ "version": 3, "sources": ["../../../Vettvangur.Frontend/src/scripts/components/modal/modal-types/shared/modal-header.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal-types/shared/modal-table.ts", "../../../Vettvangur.Frontend/node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/is/_lib/formatDistance/index.js", "../../../Vettvangur.Frontend/node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/is/_lib/formatLong/index.js", "../../../Vettvangur.Frontend/node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/is/_lib/formatRelative/index.js", "../../../Vettvangur.Frontend/node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/is/_lib/localize/index.js", "../../../Vettvangur.Frontend/node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/is/_lib/match/index.js", "../../../Vettvangur.Frontend/node_modules/.pnpm/date-fns@2.29.3/node_modules/date-fns/esm/locale/is/index.js", "../../../Vettvangur.Frontend/src/scripts/components/sailing-schedule/sailing-schedule-utils.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal-types/modal-voyage.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal-types/modal-image.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal-types/shared/modal-button.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal-types/modal-port.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal-content.ts", "../../../Vettvangur.Frontend/src/scripts/components/modal/modal.ts"], "sourcesContent": ["const modalHeader = {\n render({ text }) {\n return `\n
\n

${text}

\n
\n `\n },\n}\n\nexport default modalHeader\n", "const modalTable = {\n render({ body, thead }): string {\n return body && thead\n ? `\n \n \n ${this.renderHead({ thead })}\n \n\n \n ${this.renderBody({ body })}\n \n
\n `\n : ''\n },\n\n renderHead({ thead }): string {\n let html = ''\n\n thead.forEach((item) => {\n html += `\n ${item}\n `\n })\n\n html += ''\n\n return html\n },\n\n renderBody({ body }): string {\n let html = ''\n\n body.forEach((list) => {\n html += ''\n\n list.forEach((item) => {\n html += `\n \n ${item}\n \n `\n })\n\n html += ''\n })\n\n return html\n },\n}\n\nexport default modalTable\n", "var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minna en 1 sek\u00FAnda',\n other: 'minna en {{count}} sek\u00FAndur'\n },\n xSeconds: {\n one: '1 sek\u00FAnda',\n other: '{{count}} sek\u00FAndur'\n },\n halfAMinute: 'h\u00E1lf m\u00EDn\u00FAta',\n lessThanXMinutes: {\n one: 'minna en 1 m\u00EDn\u00FAta',\n other: 'minna en {{count}} m\u00EDn\u00FAtur'\n },\n xMinutes: {\n one: '1 m\u00EDn\u00FAta',\n other: '{{count}} m\u00EDn\u00FAtur'\n },\n aboutXHours: {\n one: 'u.\u00FE.b. 1 klukkustund',\n other: 'u.\u00FE.b. {{count}} klukkustundir'\n },\n xHours: {\n one: '1 klukkustund',\n other: '{{count}} klukkustundir'\n },\n xDays: {\n one: '1 dagur',\n other: '{{count}} dagar'\n },\n aboutXWeeks: {\n one: 'um viku',\n other: 'um {{count}} vikur'\n },\n xWeeks: {\n one: '1 viku',\n other: '{{count}} vikur'\n },\n aboutXMonths: {\n one: 'u.\u00FE.b. 1 m\u00E1nu\u00F0ur',\n other: 'u.\u00FE.b. {{count}} m\u00E1nu\u00F0ir'\n },\n xMonths: {\n one: '1 m\u00E1nu\u00F0ur',\n other: '{{count}} m\u00E1nu\u00F0ir'\n },\n aboutXYears: {\n one: 'u.\u00FE.b. 1 \u00E1r',\n other: 'u.\u00FE.b. {{count}} \u00E1r'\n },\n xYears: {\n one: '1 \u00E1r',\n other: '{{count}} \u00E1r'\n },\n overXYears: {\n one: 'meira en 1 \u00E1r',\n other: 'meira en {{count}} \u00E1r'\n },\n almostXYears: {\n one: 'n\u00E6stum 1 \u00E1r',\n other: 'n\u00E6stum {{count}} \u00E1r'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return '\u00ED ' + result;\n } else {\n return result + ' s\u00ED\u00F0an';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;", "import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n long: 'do MMMM y',\n medium: 'do MMM y',\n short: 'd.MM.y'\n};\nvar timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;", "var formatRelativeLocale = {\n lastWeek: \"'s\u00ED\u00F0asta' dddd 'kl.' p\",\n yesterday: \"'\u00ED g\u00E6r kl.' p\",\n today: \"'\u00ED dag kl.' p\",\n tomorrow: \"'\u00E1 morgun kl.' p\",\n nextWeek: \"dddd 'kl.' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;", "import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['f.Kr.', 'e.Kr.'],\n abbreviated: ['f.Kr.', 'e.Kr.'],\n wide: ['fyrir Krist', 'eftir Krist']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1F', '2F', '3F', '4F'],\n wide: ['1. fj\u00F3r\u00F0ungur', '2. fj\u00F3r\u00F0ungur', '3. fj\u00F3r\u00F0ungur', '4. fj\u00F3r\u00F0ungur']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', '\u00C1', 'S', '\u00D3', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mars', 'apr\u00EDl', 'ma\u00ED', 'j\u00FAn\u00ED', 'j\u00FAl\u00ED', '\u00E1g\u00FAst', 'sept.', 'okt.', 'n\u00F3v.', 'des.'],\n wide: ['jan\u00FAar', 'febr\u00FAar', 'mars', 'apr\u00EDl', 'ma\u00ED', 'j\u00FAn\u00ED', 'j\u00FAl\u00ED', '\u00E1g\u00FAst', 'september', 'okt\u00F3ber', 'n\u00F3vember', 'desember']\n};\nvar dayValues = {\n narrow: ['S', 'M', '\u00DE', 'M', 'F', 'F', 'L'],\n short: ['Su', 'M\u00E1', '\u00DEr', 'Mi', 'Fi', 'F\u00F6', 'La'],\n abbreviated: ['sun.', 'm\u00E1n.', '\u00FEri.', 'mi\u00F0.', 'fim.', 'f\u00F6s.', 'lau.'],\n wide: ['sunnudagur', 'm\u00E1nudagur', '\u00FEri\u00F0judagur', 'mi\u00F0vikudagur', 'fimmtudagur', 'f\u00F6studagur', 'laugardagur']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'f',\n pm: 'e',\n midnight: 'mi\u00F0n\u00E6tti',\n noon: 'h\u00E1degi',\n morning: 'morgunn',\n afternoon: 's\u00ED\u00F0degi',\n evening: 'kv\u00F6ld',\n night: 'n\u00F3tt'\n },\n abbreviated: {\n am: 'f.h.',\n pm: 'e.h.',\n midnight: 'mi\u00F0n\u00E6tti',\n noon: 'h\u00E1degi',\n morning: 'morgunn',\n afternoon: 's\u00ED\u00F0degi',\n evening: 'kv\u00F6ld',\n night: 'n\u00F3tt'\n },\n wide: {\n am: 'fyrir h\u00E1degi',\n pm: 'eftir h\u00E1degi',\n midnight: 'mi\u00F0n\u00E6tti',\n noon: 'h\u00E1degi',\n morning: 'morgunn',\n afternoon: 's\u00ED\u00F0degi',\n evening: 'kv\u00F6ld',\n night: 'n\u00F3tt'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'f',\n pm: 'e',\n midnight: '\u00E1 mi\u00F0n\u00E6tti',\n noon: '\u00E1 h\u00E1degi',\n morning: 'a\u00F0 morgni',\n afternoon: 's\u00ED\u00F0degis',\n evening: 'um kv\u00F6ld',\n night: 'um n\u00F3tt'\n },\n abbreviated: {\n am: 'f.h.',\n pm: 'e.h.',\n midnight: '\u00E1 mi\u00F0n\u00E6tti',\n noon: '\u00E1 h\u00E1degi',\n morning: 'a\u00F0 morgni',\n afternoon: 's\u00ED\u00F0degis',\n evening: 'um kv\u00F6ld',\n night: 'um n\u00F3tt'\n },\n wide: {\n am: 'fyrir h\u00E1degi',\n pm: 'eftir h\u00E1degi',\n midnight: '\u00E1 mi\u00F0n\u00E6tti',\n noon: '\u00E1 h\u00E1degi',\n morning: 'a\u00F0 morgni',\n afternoon: 's\u00ED\u00F0degis',\n evening: 'um kv\u00F6ld',\n night: 'um n\u00F3tt'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;", "import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+(\\.)?/i;\nvar matchEraPatterns = {\n narrow: /^(f\\.Kr\\.|e\\.Kr\\.)/i,\n abbreviated: /^(f\\.Kr\\.|e\\.Kr\\.)/i,\n wide: /^(fyrir Krist|eftir Krist)/i\n};\nvar parseEraPatterns = {\n any: [/^(f\\.Kr\\.)/i, /^(e\\.Kr\\.)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]\\.?/i,\n abbreviated: /^q[1234]\\.?/i,\n wide: /^[1234]\\.? fj\u00F3r\u00F0ungur/i\n};\nvar parseQuarterPatterns = {\n any: [/1\\.?/i, /2\\.?/i, /3\\.?/i, /4\\.?/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfm\u00E1s\u00F3nd]/i,\n abbreviated: /^(jan\\.|feb\\.|mars\\.|apr\u00EDl\\.|ma\u00ED|j\u00FAn\u00ED|j\u00FAl\u00ED|\u00E1gust|sep\\.|oct\\.|nov\\.|dec\\.)/i,\n wide: /^(januar|febr\u00FAar|mars|apr\u00EDl|ma\u00ED|j\u00FAn\u00ED|j\u00FAl\u00ED|\u00E1gust|september|okt\u00F3ber|n\u00F3vember|desember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^\u00E1/i, /^s/i, /^\u00F3/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^ma\u00ED/i, /^j\u00FAn/i, /^j\u00FAl/i, /^\u00E1u/i, /^s/i, /^\u00F3/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|m\u00E1|\u00FEr|mi|fi|f\u00F6|la)/i,\n abbreviated: /^(sun|m\u00E1n|\u00FEri|mi\u00F0|fim|f\u00F6s|lau)\\.?/i,\n wide: /^(sunnudagur|m\u00E1nudagur|\u00FEri\u00F0judagur|mi\u00F0vikudagur|fimmtudagur|f\u00F6studagur|laugardagur)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^\u00FE/i, /^m/i, /^f/i, /^f/i, /^l/i],\n any: [/^su/i, /^m\u00E1/i, /^\u00FEr/i, /^mi/i, /^fi/i, /^f\u00F6/i, /^la/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(f|e|s\u00ED\u00F0degis|(\u00E1|a\u00F0|um) (morgni|kv\u00F6ld|n\u00F3tt|mi\u00F0n\u00E6tti))/i,\n any: /^(fyrir h\u00E1degi|eftir h\u00E1degi|[ef]\\.?h\\.?|s\u00ED\u00F0degis|morgunn|(\u00E1|a\u00F0|um) (morgni|kv\u00F6ld|n\u00F3tt|mi\u00F0n\u00E6tti))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^f/i,\n pm: /^e/i,\n midnight: /^mi/i,\n noon: /^h\u00E1/i,\n morning: /morgunn/i,\n afternoon: /s\u00ED\u00F0degi/i,\n evening: /kv\u00F6ld/i,\n night: /n\u00F3tt/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;", "import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Icelandic locale.\n * @language Icelandic\n * @iso-639-2 isl\n * @author Derek Blank [@derekblank]{@link https://github.com/derekblank}\n * @author Arn\u00F3r \u00DDmir [@lamayg]{@link https://github.com/lamayg}\n */\n\nvar locale = {\n code: 'is',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;", "import { dictionary } from 'helpers/dictionary'\n\nexport function parsePortName(name) {\n const split = name ? name.split(' ')[0] : name\n\n switch (split) {\n case 'Dobroviz':\n return dictionary('scDryDock')\n case 'Bousso':\n return dictionary('scOutOfService')\n case 'Outeiro':\n return dictionary('scOutOfService')\n case 'Infosys':\n return dictionary('scIntoService')\n case 'Nancowrie':\n return dictionary('scIntoService')\n case 'Ivancice':\n return dictionary('scISCoastalService')\n case 'Shipai':\n return dictionary('scISCoastalService')\n default:\n return split.replaceAll('\u00F8', '\u00F6') // This title fix is temporary until they fix the service.\n }\n}\n\n// TODO: Clean this up when the service is fixed.\n\n// BR OUT\n// Outeiro = Out of service / \u00DAr \u00FEj\u00F3nustu\n\n// IN NAN\n// Nancowrie = Into service / \u00CD \u00FEj\u00F3nustu\n\n// CN SPI\n// Shipai // = IS Coastal Service / Strandlei\u00F0\n\n// CZ DDD\n// Dry dock\n", "import modalHeader from 'components/modal/modal-types/shared/modal-header'\n// import modalButton from 'components/modal/modal-types/shared/modal-button'\nimport modalTable from 'components/modal/modal-types/shared/modal-table'\nimport { dictionary } from 'helpers/dictionary'\nimport format from 'date-fns/format'\nimport { is } from 'date-fns/locale'\nimport { parsePortName } from 'components/sailing-schedule/sailing-schedule-utils'\n\n// import compass from 'assets/svg/icon-compass.svg'\n\nconst modalPort = {\n async render({ id, line }) {\n const req = await fetch(`/webapi/sailingschedule/voyage?id=${id}&line=${line}&rand=${new Date()}`)\n const res = await req.json()\n\n if (!req.ok) {\n return\n }\n\n const data = res.find((item) => item?.lineName === line)\n\n if (!data) {\n return\n }\n\n // const sailingSchedule = document.querySelector('.sailing-schedule')\n\n return `\n ${modalHeader.render({ text: data?.lineName })}\n
\n ${this.renderVoyageInfoItem({\n label: dictionary('scVoyageNumber'),\n value: data?.voyageNumber,\n })}\n ${this.renderVoyageInfoItem({\n label: dictionary('scVessel'),\n value: data?.vesselName,\n })}\n ${this.renderVoyageInfoItem({\n label: dictionary('scFlag'),\n value: data?.vesselFlag,\n })}\n
\n
\n ${modalTable.render({\n body: this.handleTableBody({ data: data?.portSchedules }),\n thead: [dictionary('scHarbour'), dictionary('scArrival'), dictionary('scDeparture')],\n })}\n
\n `\n },\n\n handleTableBody({ data }) {\n if (data === null) {\n return\n }\n\n const list = []\n\n for (let i = 0; i < data.length; i++) {\n const rowList = []\n const obj = data[i]\n\n for (const key in obj) {\n switch (key) {\n case 'portName':\n rowList[0] = parsePortName(obj[key])\n break\n case 'arrivalTime':\n rowList[3] = format(new Date(obj[key]), 'dd. MMM - HH:mm', { locale: is })\n break\n case 'departureTime':\n rowList[4] = format(new Date(obj[key]), 'dd. MMM - HH:mm', { locale: is })\n break\n }\n }\n\n list.push(rowList)\n }\n\n return list\n },\n\n renderVoyageInfoItem({ label, value }) {\n return `\n
\n ${label}\n ${value}\n
\n `\n },\n}\n\nexport default modalPort\n", "interface IModalImage {\n Url: string\n Width: number\n Height: number\n AltIS: string\n AltEN: string\n}\n\nconst parseImageString = (imageString) => {\n const imageObject = {} as IModalImage\n const properties = imageString.match(/(\\w+)\\s=\\s([^\\s,]+)/g)\n\n properties.forEach((prop) => {\n const [key, value] = prop.split(' = ')\n if (key === 'Width' || key === 'Height') {\n imageObject[key] = Math.round(parseFloat(value.replace(/['\"]+/g, '')) * 1.7)\n } else {\n imageObject[key] = value.replace(/['\"]+/g, '')\n }\n })\n\n if (imageObject.Url && imageObject.Width && imageObject.Height) {\n imageObject.Url = imageObject.Url.replace(/width=\\d+/, `width=${imageObject.Width}`).replace(\n /height=\\d+/,\n `height=${imageObject.Height}`\n )\n }\n\n return imageObject\n}\n\nconst modalImage = {\n async render({ mobileString, desktopString, culture, arUrl }) {\n if (arUrl) {\n return `\n
\n \"\"\n\n
\n `\n }\n\n const mobile = mobileString ? parseImageString(mobileString) : null\n const desktop = desktopString ? parseImageString(desktopString) : null\n const breakpoint = 420\n\n let pictureContent = ''\n\n if (mobile) {\n const mobileHighDpiSrc = `${mobile.Url}?&format=webp`\n const mobileWidthHighDpi = mobile.Width * 2\n const mobileHeightHighDpi = mobile.Height * 2\n\n pictureContent += `\n \n `\n\n if (desktop) {\n const desktopHighDpiSrc = `${desktop.Url}?&format=webp`\n const desktopWidthHighDpi = desktop.Width * 2\n const desktopHeightHighDpi = desktop.Height * 2\n\n pictureContent += `\n \n\n \n `\n }\n\n const altText = culture === 'is' ? mobile.AltIS : mobile.AltEN\n pictureContent += `\n \"${altText}\"\n\n `\n }\n\n return `\n
\n \n ${pictureContent}\n \n
\n `\n },\n}\n\nexport default modalImage\n", "const modalButton = {\n render({ type, text, icon, url }) {\n if (!type) {\n return\n }\n return `\n ${icon ? `${icon}` : ''}\n ${text}\n `\n },\n}\n\nexport default modalButton\n", "import modalHeader from 'components/modal/modal-types/shared/modal-header'\nimport modalButton from 'components/modal/modal-types/shared/modal-button'\nimport modalTable from 'components/modal/modal-types/shared/modal-table'\nimport { dictionary } from 'helpers/dictionary'\n\nimport clock from 'assets/svg/icon-clock.svg'\nimport { parsePortName } from 'components/sailing-schedule/sailing-schedule-utils'\n\nconst modalPort = {\n async render({ id }) {\n const req = await fetch(`/webapi/sailingschedule/port?id=${id}&rand=${new Date()}`)\n const res = await req.json()\n if (!req.ok) {\n return\n }\n\n const data = res[0]\n if (!data) {\n return\n }\n\n // This title fix is temporary until they fix the service.\n const sailingSchedule = document.querySelector('.sailing-schedule')\n\n return `\n ${modalHeader.render({ text: parsePortName(data?.name) })}\n
\n ${modalButton.render({\n type: 'border',\n text: dictionary('scClosingTimes'),\n icon: clock,\n url: sailingSchedule.dataset.closingTimesPage,\n })}\n ${modalButton.render({\n type: 'default',\n text: dictionary('scRateRequest'),\n icon: '',\n url: sailingSchedule.dataset.rateRequestPage,\n })}\n
\n
\n ${modalTable.render({\n body: await this.handleTableBody({ data: data?.vesselSchedules }),\n thead: [\n dictionary('scVoyageNumber'),\n dictionary('scVessel'),\n dictionary('scLine'),\n dictionary('scArrival'),\n dictionary('scDeparture'),\n ],\n })}\n
\n `\n },\n\n async handleTableBody({ data }) {\n const list = []\n\n const datefns = await import('date-fns')\n\n for (let i = 0; i < data?.length; i++) {\n const rowList = []\n const obj = data[i]\n\n for (const key in obj) {\n switch (key) {\n case 'voyageNumber':\n rowList[0] = obj[key]\n break\n case 'name':\n rowList[1] = obj[key]\n break\n case 'lineName':\n rowList[2] = obj[key]\n break\n case 'arrivalDate':\n rowList[3] = datefns.format(new Date(obj[key]), 'dd. MMMM - HH:mm')\n break\n case 'departureDate':\n rowList[4] = datefns.format(new Date(obj[key]), 'dd. MMMM - HH:mm')\n break\n }\n }\n\n list.push(rowList)\n }\n\n return list\n },\n}\n\nexport default modalPort\n", "import modalVoyage from 'components/modal/modal-types/modal-voyage'\nimport modalImage from 'components/modal/modal-types/modal-image'\nimport modalPort from './modal-types/modal-port'\n\nconst modalContent = {\n async init(type: string, target: HTMLElement, extras) {\n return await this.render(target, await this.handle(type, extras))\n },\n async handle(type: string, extras) {\n const { id, line, mobileString, desktopString, culture, arUrl } = extras\n\n switch (type) {\n case 'port':\n return await modalPort.render({ id })\n case 'voyage':\n return modalVoyage.render({ id, line })\n case 'image':\n return modalImage.render({ mobileString, desktopString, culture, arUrl })\n }\n },\n render(target: HTMLElement, html: unknown) {\n target.innerHTML = ''\n target.insertAdjacentHTML('beforeend', html as string)\n },\n}\n\nexport default modalContent\n", "// import gsap from 'gsap'\nimport modalContent from 'components/modal/modal-content'\n\ninterface ModalExtras {\n imageSrc?: string\n desktopString?: string\n mobileString?: string\n culture?: string\n arUrl?: string\n id?: string\n line?: string\n swiper?: HTMLElement\n}\n\nconst modal = {\n el: {\n root: document.querySelector('.modal'),\n overlay: document.querySelector('.modal__overlay'),\n modals: document.querySelectorAll('.modal'),\n body: document.querySelector('.body'),\n close: document.querySelector('.modal__close'),\n content: document.querySelector('.modal__content'),\n loader: document.querySelector('.modal__loader'),\n next: document.querySelector('.modal-button--next'),\n prev: document.querySelector('.modal-button--prev'),\n swipers: document.querySelectorAll('.swiper'),\n },\n\n init() {\n if (document.querySelector('.modal') && document.querySelectorAll('[data-modal]')) {\n document.querySelectorAll('[data-modal]').forEach((item: HTMLButtonElement) => {\n // These triggers can be added dynamically, so we need to set the listeners like this.\n // This needs to be invoked after the triggers have been added to the DOM.\n // import this file then call modal.init() after the elements have been added to the DOM.\n this.setListeners(item.dataset.modal)\n this.setDynamicListeners(item)\n })\n }\n },\n\n // Open the modal\n async open(type: string, extras: ModalExtras = {}) {\n let imageSrc = ''\n\n if (type === 'image') {\n imageSrc = (document.querySelector('.swiper-slide-active[data-image-src]') as HTMLElement).dataset\n .imageSrc\n\n if (imageSrc === '' || imageSrc === undefined) {\n imageSrc = (document.querySelector('.swiper-slide-active[data-arurl]') as HTMLElement).dataset\n .imageSrc\n }\n\n extras = { ...extras, imageSrc }\n }\n\n // Show the loader\n this.handleLoader(true)\n\n // Wait for the close procedure to finish.\n await this.close(type)\n\n // Set data-type attribute to the modal\n this.el.root.setAttribute('data-type', type)\n\n // Add the type to the modal\n if (type !== 'image') {\n this.el.root.classList.add(`modal--${type}`)\n }\n\n // Add the modal-open class to the body\n this.el.body.classList.add('modal-open')\n\n // Add the content to the modal\n await this.handleContent(type, extras)\n\n if (type === 'image') {\n this.el.close.style.display = 'none'\n if (extras.swiper) {\n extras.swiper.classList.add('modal--swiper--active')\n }\n if (!extras.swiper.parentElement.classList.contains('image-gallery-block--single-slide')) {\n this.el.next.classList.remove('hidden')\n this.el.prev.classList.remove('hidden')\n }\n this.setupNavigationListeners()\n } else {\n // Hide the loader when the content has been added\n this.handleLoader()\n }\n },\n\n // Close the modal\n close(type: string) {\n this.el.body.classList.remove('modal-open')\n this.el.root.classList.remove(`modal--${type}`)\n this.el.next.classList.add('hidden')\n this.el.prev.classList.add('hidden')\n // TODO: Add timeout to prevent flickering?\n this.removeType(document.querySelectorAll('.modal'))\n document.querySelector('.modal--swiper--active')?.classList.remove('modal--swiper--active')\n if (type === 'image') {\n this.el.root.classList.remove('modal--image')\n }\n // Reset the content\n this.el.content.innerHTML = ''\n },\n\n // Clear the data-type attribute value from the modal\n removeType(items: NodeListOf) {\n items.forEach((item: HTMLElement) => {\n item.removeAttribute('data-type')\n })\n },\n setupNavigationListeners() {\n if (this.el.next && this.el.prev) {\n this.el.next.addEventListener('click', () => this.navigateImages('next'))\n this.el.prev.addEventListener('click', () => this.navigateImages('prev'))\n }\n },\n navigateImages(direction) {\n const activeSwiper = document.querySelector('.modal--swiper--active') as HTMLElement\n // @ts-ignore\n const swiper = activeSwiper.swiper\n\n if (direction === 'next') {\n swiper.slideNext()\n this.handleLoader(true)\n this.el.root.classList.remove('modal--image')\n } else {\n swiper.slidePrev()\n this.handleLoader(true)\n this.el.root.classList.remove('modal--image')\n }\n\n const activeSlide = activeSwiper.querySelector('.swiper-slide-active') as HTMLElement\n\n if (activeSlide) {\n const dataset = activeSlide.dataset\n this.handleContent('image', {\n imageSrc: dataset.imageSrc,\n desktopString: dataset.imageDesktop,\n mobileString: dataset.imageMobile,\n culture: dataset.culture,\n })\n }\n },\n\n // Set listeners for the modal\n setListeners(type: string) {\n this.el.close.addEventListener('click', (e: Event) => {\n this.close(type)\n e.stopImmediatePropagation()\n })\n this.el.overlay.addEventListener('click', (e: Event) => {\n this.close(type)\n e.stopImmediatePropagation()\n })\n\n document.addEventListener('keyup', (e) => {\n if (e.keyCode === 27 || e.which === 27) {\n this.close(type)\n }\n e.stopImmediatePropagation()\n })\n },\n setDynamicListeners(item: HTMLButtonElement) {\n item.addEventListener('click', (e: Event & { target: HTMLButtonElement }) => {\n let datasetModal = (e.target.parentNode.parentNode as HTMLElement).dataset.modal\n const swiper = e.target.parentNode.parentNode.parentNode.parentNode as HTMLElement\n if (datasetModal === undefined) {\n datasetModal = (e.target.parentNode.parentNode.parentNode as HTMLElement).dataset.modal\n }\n\n let parent = e.target.parentNode.parentNode as HTMLElement\n\n if (parent.classList.contains('ar--image__wrapper')) {\n parent = e.target.parentNode.parentNode.parentNode as HTMLElement\n }\n\n if (\n e.target.classList.contains('sailing-schedule__table-port-name') ||\n e.target.classList.contains('sailing-schedule__line-voyage-date') ||\n e.target.classList.contains('sailing-schedule__line-voyage-date') ||\n e.target.classList.contains('sailing-schedule__line-table-head')\n ) {\n datasetModal = e.target.dataset.modal\n }\n\n this.open(datasetModal, {\n id: e.target.dataset.id,\n line: e.target.dataset.line,\n mobileString: parent.dataset.imageMobile,\n desktopString: parent.dataset.imageDesktop,\n culture: parent.dataset.culture,\n arUrl: parent.dataset.arurl,\n swiper: swiper,\n })\n\n // This prevents the click from happening multiple times.\n e.stopImmediatePropagation()\n })\n },\n\n // Handle the loader\n handleLoader(show = false) {\n if (show) {\n this.el.loader.style.display = 'flex'\n return\n }\n\n this.el.loader.style.display = 'none'\n },\n\n // Handle the content\n async handleContent(type, extras) {\n await modalContent.init(type, this.el.content, extras)\n if (type === 'image') {\n const img = document.querySelector('.modal__image')\n img.addEventListener('load', () => {\n this.handleLoader()\n this.el.close.style.display = 'flex'\n this.el.root.classList.add('modal--image')\n })\n }\n },\n\n //Handle image load\n async handleImageLoad() {},\n}\n\nexport default modal\n"], "mappings": "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", "names": ["modalHeader", "text", "modal_header_default", "modalTable", "body", "thead", "html", "item", "list", "modal_table_default", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "formatDistance_default", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatLong_default", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "formatRelative_default", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "number", "localize", "buildLocalizeFn", "quarter", "localize_default", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "match_default", "locale", "formatDistance_default", "formatLong_default", "formatRelative_default", "localize_default", "match_default", "is_default", "parsePortName", "name", "split", "dictionary", "modalPort", "id", "line", "req", "res", "data", "item", "modal_header_default", "dictionary", "modal_table_default", "list", "i", "rowList", "obj", "key", "parsePortName", "format", "is_default", "label", "value", "modal_voyage_default", "parseImageString", "imageString", "imageObject", "prop", "key", "value", "modalImage", "mobileString", "desktopString", "culture", "arUrl", "mobile", "desktop", "breakpoint", "pictureContent", "mobileHighDpiSrc", "mobileWidthHighDpi", "mobileHeightHighDpi", "desktopHighDpiSrc", "desktopWidthHighDpi", "desktopHeightHighDpi", "altText", "modal_image_default", "modalButton", "type", "text", "icon", "url", "modal_button_default", "modalPort", "id", "req", "res", "data", "sailingSchedule", "modal_header_default", "parsePortName", "modal_button_default", "dictionary", "icon_clock_default", "modal_table_default", "list", "datefns", "i", "rowList", "obj", "key", "modal_port_default", "modalContent", "type", "target", "extras", "id", "line", "mobileString", "desktopString", "culture", "arUrl", "modal_port_default", "modal_voyage_default", "modal_image_default", "html", "modal_content_default", "modal", "item", "type", "extras", "imageSrc", "__spreadProps", "__spreadValues", "_a", "items", "direction", "activeSwiper", "swiper", "activeSlide", "dataset", "datasetModal", "parent", "show", "modal_content_default", "modal_default"] }