diff --git a/blocks/cards/cards.css b/blocks/cards/cards.css index e504375..318d2ae 100644 --- a/blocks/cards/cards.css +++ b/blocks/cards/cards.css @@ -49,3 +49,36 @@ background-color: var(--nav-bg-hover-color); border-color: var(--nav-bg-hover-color); } + +/* HAL homepage card variants (Popular Destinations, Why Holland America) */ +.cards.destinations > ul > li, +.cards.features > ul > li { + border: 1px solid var(--hal-gray-200); + border-radius: 8px; + overflow: hidden; + transition: box-shadow 0.2s; +} + +.cards.features > ul > li { + background: transparent; + border: 0; +} + +.cards.destinations > ul > li:hover { + box-shadow: 0 4px 12px rgb(0 0 0 / 10%); +} + +.cards.destinations h3, +.cards.features h3 { + color: var(--hal-navy); + font-size: var(--heading-font-size-s); + margin-top: 0; +} + +.cards.features { + text-align: center; +} + +.cards.features > ul { + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); +} diff --git a/blocks/cruise-ships/cruise-ships.css b/blocks/cruise-ships/cruise-ships.css new file mode 100644 index 0000000..f262f75 --- /dev/null +++ b/blocks/cruise-ships/cruise-ships.css @@ -0,0 +1,159 @@ +.cruise-ships { + display: block; +} + +/* Hero banner */ +.cruise-ships .cruise-ships-hero { + background: var(--hal-navy); + color: #fff; + padding: 56px 24px; + text-align: center; +} + +.cruise-ships .cruise-ships-hero-heading { + color: #fff; + font-weight: 300; + letter-spacing: 0.02em; + margin: 0 0 8px; +} + +.cruise-ships .cruise-ships-hero-subheading { + margin: 0; + color: rgb(255 255 255 / 80%); + font-weight: 300; +} + +/* Layout */ +.cruise-ships .cruise-ships-main { + max-width: 1400px; + margin: 0 auto; + padding: 40px 16px; +} + +.cruise-ships .cruise-ships-status { + text-align: center; + color: var(--hal-gray-700); +} + +/* Grid */ +.cruise-ships .cruise-ships-grid { + display: grid; + grid-template-columns: 1fr; + gap: 24px; +} + +.cruise-ships .cruise-ships-grid-item { + display: flex; +} + +/* Card */ +.cruise-ships .cruise-ships-card { + display: flex; + flex-direction: column; + width: 100%; + border: 1px solid var(--hal-gray-200); + border-radius: 4px; + background: #fff; + overflow: hidden; + transition: box-shadow 0.2s, transform 0.2s; +} + +.cruise-ships .cruise-ships-card:hover { + box-shadow: 0 8px 20px rgb(0 0 0 / 12%); + transform: translateY(-2px); +} + +.cruise-ships .cruise-ships-card-media { + position: relative; + width: 100%; + aspect-ratio: 16 / 10; + background: var(--hal-gray-100); + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; +} + +.cruise-ships .cruise-ships-card-media img, +.cruise-ships .cruise-ships-card-media picture { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +.cruise-ships .cruise-ships-card-media-placeholder { + color: var(--hal-gray-500); + font-size: var(--body-font-size-xs); + padding: 0 16px; + text-align: center; +} + +.cruise-ships .cruise-ships-card-body { + flex: 1; + padding: 20px; + display: flex; + flex-direction: column; + gap: 4px; +} + +.cruise-ships .cruise-ships-card-name { + font-size: var(--heading-font-size-s); + font-weight: 400; + color: var(--hal-navy); + margin: 0; +} + +.cruise-ships .cruise-ships-card-class { + font-size: var(--body-font-size-xs); + color: var(--hal-gray-700); + margin: 0 0 8px; +} + +.cruise-ships .cruise-ships-card-link { + margin-top: auto; + font-size: var(--body-font-size-xs); + font-weight: 600; + color: var(--hal-navy); + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.cruise-ships .cruise-ships-card-link::after { + content: " ›"; + font-weight: 400; +} + +.cruise-ships .cruise-ships-card-link:hover, +.cruise-ships .cruise-ships-card-link:focus-visible { + color: var(--hal-navy-light); + text-decoration: underline; +} + +/* Empty state */ +.cruise-ships .cruise-ships-empty { + padding: 48px 24px; + text-align: center; + background: #fff; + border: 1px solid var(--hal-gray-200); + border-radius: 4px; + color: var(--hal-gray-700); +} + +@media (width >= 600px) { + .cruise-ships .cruise-ships-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (width >= 900px) { + .cruise-ships .cruise-ships-grid { + grid-template-columns: repeat(3, 1fr); + } +} + +@media (width >= 1200px) { + .cruise-ships .cruise-ships-grid { + grid-template-columns: repeat(4, 1fr); + } +} diff --git a/blocks/cruise-ships/cruise-ships.js b/blocks/cruise-ships/cruise-ships.js new file mode 100644 index 0000000..e67577a --- /dev/null +++ b/blocks/cruise-ships/cruise-ships.js @@ -0,0 +1,169 @@ +/* + * Cruise Ships block + * Renders the HAL fleet listing (mirrors hollandamerica.com/en/us/cruise-ships): + * a responsive grid of ship cards — image, ship name, ship class, and a + * "See Ship Details" link. + * + * "Generated from different sources": + * - Ship feed (source of truth) → ship specs: name, class, code, image, detail link. + * - Editorial (authored config) → page hero heading/subheading, feed endpoint override. + * - Search API (future) → optional "lowest fare from" per ship (Fusion, later). + * + * EDS constraint: there is no server runtime, so this block fetches from a + * CONFIGURABLE endpoint that defaults to a bundled sample feed. Point the + * authored `endpoint` (or DATA_ENDPOINT) at the real feed / a CORS-enabled + * proxy to go live without touching the UI. + * + * Authoring contract (optional two-column "key | value" config table): + * heroHeading | Our Ships + * heroSubheading | Explore the Holland America Line fleet. + * endpoint | https://…/ships.json (overrides the bundled sample) + * detailBase | /en/us/cruise-ships (base path for ship detail links) + */ + +import { createOptimizedPicture } from '../../scripts/aem.js'; + +/* ---------- helpers ---------- */ + +function el(tag, props = {}, ...children) { + const node = document.createElement(tag); + Object.entries(props).forEach(([k, v]) => { + if (k === 'class') node.className = v; + else if (k === 'text') node.textContent = v; + else if (k.startsWith('data-') || k === 'role' || k.startsWith('aria-')) { + node.setAttribute(k, v); + } else node[k] = v; + }); + children.filter(Boolean).forEach((c) => node.append(c)); + return node; +} + +function slugify(value) { + return String(value ?? '') + .toLowerCase() + .trim() + .replace(/[^a-z0-9]+/g, '-') + .replace(/(^-|-$)/g, ''); +} + +/* ---------- feed normalization (defensive — tolerant of field-name variants) ---------- */ + +function normalizeShip(raw, detailBase) { + const name = raw.name ?? raw.shipName ?? raw.title ?? ''; + const id = raw.id ?? raw.slug ?? slugify(name); + const shipClass = raw.shipClass ?? raw.class ?? raw.category ?? ''; + const image = raw.image ?? raw.imageUrl ?? raw.heroImage ?? raw.thumbnail ?? ''; + const detailPath = raw.detailPath ?? raw.url ?? raw.link + ?? (id ? `${detailBase}/${id}` : detailBase); + + return { + id, + name, + shipCode: raw.shipCode ?? raw.code ?? '', + shipClass, + image, + imageAlt: raw.imageAlt ?? raw.alt ?? (name ? `${name} at sea` : ''), + detailPath, + }; +} + +/* ---------- rendering ---------- */ + +function renderMedia(ship) { + const media = el('div', { class: 'cruise-ships-card-media' }); + if (ship.image) { + // Relative paths get AEM optimization; absolute (external) URLs render as-is. + if (ship.image.startsWith('http')) { + media.append(el('img', { + class: 'cruise-ships-card-img', src: ship.image, alt: ship.imageAlt, loading: 'lazy', + })); + } else { + media.append(createOptimizedPicture(ship.image, ship.imageAlt, false)); + } + } else { + media.append(el('span', { class: 'cruise-ships-card-media-placeholder', text: ship.name || 'Ship' })); + } + return media; +} + +function renderCard(ship) { + const body = el( + 'div', + { class: 'cruise-ships-card-body' }, + el('h3', { class: 'cruise-ships-card-name', text: ship.name }), + ); + if (ship.shipClass) { + body.append(el('p', { class: 'cruise-ships-card-class', text: ship.shipClass })); + } + body.append(el('a', { + class: 'cruise-ships-card-link', + href: ship.detailPath, + 'aria-label': `See ship details for ${ship.name}`, + 'data-testid': `ship-details-link-${ship.id}`, + text: 'See Ship Details', + })); + + return el( + 'article', + { class: 'cruise-ships-card', 'data-testid': `ship-card-${ship.id}` }, + renderMedia(ship), + body, + ); +} + +export default async function decorate(block) { + // optional authored config (key | value rows) + const config = {}; + [...block.children].forEach((row) => { + const cells = [...row.children]; + if (cells.length >= 2) config[cells[0].textContent.trim()] = cells[1].textContent.trim(); + }); + + const heroHeading = config.heroHeading || 'Our Ships'; + const heroSubheading = config.heroSubheading + || 'Explore the Holland America Line fleet and find the ship that’s right for you.'; + const detailBase = config.detailBase || '/en/us/cruise-ships'; + const dataEndpoint = config.endpoint + || `${window.hlx.codeBasePath}/blocks/cruise-ships/sample-ships.json`; + + block.textContent = ''; + + // Hero banner + block.append(el( + 'section', + { class: 'cruise-ships-hero', 'data-testid': 'ships-hero' }, + el('h1', { class: 'cruise-ships-hero-heading', text: heroHeading }), + el('p', { class: 'cruise-ships-hero-subheading', text: heroSubheading }), + )); + + const grid = el('div', { + class: 'cruise-ships-grid', role: 'list', 'aria-label': 'Cruise ships', 'data-testid': 'ships-grid', + }); + const status = el('p', { class: 'cruise-ships-status', 'aria-live': 'polite', text: 'Loading ships…' }); + block.append(el('div', { class: 'cruise-ships-main' }, status, grid)); + + let ships = []; + try { + const res = await fetch(dataEndpoint); + if (!res.ok) throw new Error(`Fetch failed: ${res.status}`); + const data = await res.json(); + const list = data.ships ?? data.data ?? (Array.isArray(data) ? data : []); + ships = list.map((s) => normalizeShip(s, detailBase)).filter((s) => s.name); + } catch (error) { + ships = []; + } + + status.remove(); + + if (ships.length === 0) { + grid.remove(); + block.querySelector('.cruise-ships-main').append(el('div', { + class: 'cruise-ships-empty', role: 'alert', 'data-testid': 'ships-empty-message', + }, el('p', { text: 'Ship information is unavailable right now. Please try again later.' }))); + return; + } + + ships.forEach((ship) => { + grid.append(el('div', { role: 'listitem', class: 'cruise-ships-grid-item' }, renderCard(ship))); + }); +} diff --git a/blocks/cruise-ships/sample-ships.json b/blocks/cruise-ships/sample-ships.json new file mode 100644 index 0000000..7094c30 --- /dev/null +++ b/blocks/cruise-ships/sample-ships.json @@ -0,0 +1,103 @@ +{ + "ships": [ + { + "id": "eurodam", + "name": "Eurodam", + "shipCode": "ED", + "shipClass": "Signature Class", + "image": "", + "imageAlt": "Eurodam at sea", + "detailPath": "/en/us/cruise-ships/eurodam" + }, + { + "id": "koningsdam", + "name": "Koningsdam", + "shipCode": "KD", + "shipClass": "Pinnacle Class", + "image": "", + "imageAlt": "Koningsdam at sea", + "detailPath": "/en/us/cruise-ships/koningsdam" + }, + { + "id": "nieuw-amsterdam", + "name": "Nieuw Amsterdam", + "shipCode": "NA", + "shipClass": "Signature Class", + "image": "", + "imageAlt": "Nieuw Amsterdam at sea", + "detailPath": "/en/us/cruise-ships/nieuw-amsterdam" + }, + { + "id": "nieuw-statendam", + "name": "Nieuw Statendam", + "shipCode": "NS", + "shipClass": "Pinnacle Class", + "image": "", + "imageAlt": "Nieuw Statendam at sea", + "detailPath": "/en/us/cruise-ships/nieuw-statendam" + }, + { + "id": "noordam", + "name": "Noordam", + "shipCode": "NO", + "shipClass": "Vista Class", + "image": "", + "imageAlt": "Noordam at sea", + "detailPath": "/en/us/cruise-ships/noordam" + }, + { + "id": "oosterdam", + "name": "Oosterdam", + "shipCode": "OS", + "shipClass": "Vista Class", + "image": "", + "imageAlt": "Oosterdam at sea", + "detailPath": "/en/us/cruise-ships/oosterdam" + }, + { + "id": "rotterdam", + "name": "Rotterdam", + "shipCode": "RN", + "shipClass": "Pinnacle Class", + "image": "", + "imageAlt": "Rotterdam at sea", + "detailPath": "/en/us/cruise-ships/rotterdam" + }, + { + "id": "volendam", + "name": "Volendam", + "shipCode": "VL", + "shipClass": "R Class", + "image": "", + "imageAlt": "Volendam at sea", + "detailPath": "/en/us/cruise-ships/volendam" + }, + { + "id": "westerdam", + "name": "Westerdam", + "shipCode": "WE", + "shipClass": "Vista Class", + "image": "", + "imageAlt": "Westerdam at sea", + "detailPath": "/en/us/cruise-ships/westerdam" + }, + { + "id": "zaandam", + "name": "Zaandam", + "shipCode": "ZD", + "shipClass": "R Class", + "image": "", + "imageAlt": "Zaandam at sea", + "detailPath": "/en/us/cruise-ships/zaandam" + }, + { + "id": "zuiderdam", + "name": "Zuiderdam", + "shipCode": "ZU", + "shipClass": "Vista Class", + "image": "", + "imageAlt": "Zuiderdam at sea", + "detailPath": "/en/us/cruise-ships/zuiderdam" + } + ] +} diff --git a/blocks/find-a-cruise/find-a-cruise.css b/blocks/find-a-cruise/find-a-cruise.css new file mode 100644 index 0000000..248fabd --- /dev/null +++ b/blocks/find-a-cruise/find-a-cruise.css @@ -0,0 +1,296 @@ +.find-a-cruise { + display: block; +} + +/* Hero banner */ +.find-a-cruise .find-a-cruise-hero { + background: var(--hal-navy); + color: #fff; + padding: 56px 24px; + text-align: center; +} + +.find-a-cruise .find-a-cruise-hero-heading { + color: #fff; + font-weight: 300; + letter-spacing: 0.02em; + margin: 0 0 8px; +} + +.find-a-cruise .find-a-cruise-hero-subheading { + margin: 0; + color: rgb(255 255 255 / 80%); + font-weight: 300; +} + +/* Layout */ +.find-a-cruise .find-a-cruise-main { + max-width: 1400px; + margin: 0 auto; + padding: 24px 16px; + background: var(--hal-gray-100); +} + +.find-a-cruise .find-a-cruise-headline { + font-size: var(--heading-font-size-l); + font-weight: 300; + color: var(--hal-navy); + text-align: center; + margin: 16px 0 24px; +} + +/* Filter controls */ +.find-a-cruise .find-a-cruise-controls { + display: flex; + flex-wrap: wrap; + gap: 12px; + align-items: center; + justify-content: center; + padding-bottom: 16px; + border-bottom: 1px solid var(--hal-gray-300); +} + +.find-a-cruise .find-a-cruise-pill { + appearance: none; + background: #fff; + border: 1px solid var(--hal-gray-300); + border-radius: 4px; + padding: 10px 32px 10px 14px; + font-size: var(--body-font-size-xs); + color: var(--hal-gray-900); + cursor: pointer; + min-width: 150px; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23495057' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 12px center; +} + +.find-a-cruise .find-a-cruise-pill:hover { + border-color: var(--hal-navy); +} + +.find-a-cruise .find-a-cruise-pill:focus-visible { + outline: none; + border-color: var(--hal-blue); + box-shadow: 0 0 0 2px rgb(25 118 210 / 20%); +} + +.find-a-cruise .find-a-cruise-pill-active { + border-color: var(--hal-navy); + background-color: var(--hal-blue-light); + font-weight: 500; +} + +.find-a-cruise .find-a-cruise-sort { + display: flex; + align-items: center; + justify-content: flex-end; + margin-top: 12px; +} + +.find-a-cruise .find-a-cruise-sort-label { + font-size: var(--body-font-size-xs); + color: var(--hal-gray-700); + margin-right: 8px; +} + +/* Results */ +.find-a-cruise .find-a-cruise-results { + display: flex; + flex-direction: column; + gap: 16px; + margin-top: 24px; +} + +.find-a-cruise .find-a-cruise-card { + display: flex; + flex-direction: column; + border: 1px solid var(--hal-gray-200); + border-radius: 4px; + background: #fff; + overflow: hidden; + transition: box-shadow 0.2s; +} + +.find-a-cruise .find-a-cruise-card:hover { + box-shadow: 0 8px 20px rgb(0 0 0 / 12%); +} + +.find-a-cruise .find-a-cruise-card-media { + position: relative; + width: 100%; + min-height: 160px; + background: var(--hal-gray-100); + display: flex; + align-items: center; + justify-content: center; +} + +.find-a-cruise .find-a-cruise-card-media-placeholder { + color: var(--hal-gray-500); + font-size: var(--body-font-size-xs); +} + +.find-a-cruise .find-a-cruise-card-badge { + position: absolute; + top: 12px; + left: 12px; + background: var(--hal-red, #c62828); + color: #fff; + font-size: 12px; + font-weight: 700; + padding: 4px 8px; + border-radius: 4px; +} + +.find-a-cruise .find-a-cruise-card-content { + flex: 1; + padding: 20px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.find-a-cruise .find-a-cruise-card-title { + font-size: var(--heading-font-size-xs); + font-weight: 700; + color: var(--hal-navy); + text-transform: uppercase; + letter-spacing: 0.02em; + margin: 0 0 12px; +} + +.find-a-cruise .find-a-cruise-card-info { + display: flex; + flex-direction: column; + gap: 6px; + font-size: var(--body-font-size-xs); + color: var(--hal-gray-700); + margin-bottom: 12px; +} + +.find-a-cruise .find-a-cruise-card-info > div { + display: flex; + gap: 8px; +} + +.find-a-cruise .find-a-cruise-card-label { + font-weight: 600; + color: var(--hal-gray-500); + width: 56px; + flex-shrink: 0; +} + +.find-a-cruise .find-a-cruise-card-date { + font-size: var(--body-font-size-xs); + color: var(--hal-gray-700); + margin: 0 0 12px; +} + +.find-a-cruise .find-a-cruise-card-footer { + display: flex; + align-items: flex-end; + justify-content: space-between; + padding-top: 12px; + border-top: 1px solid var(--hal-gray-100); + gap: 12px; +} + +.find-a-cruise .find-a-cruise-card-price-label { + display: block; + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--hal-gray-500); +} + +.find-a-cruise .find-a-cruise-card-price-row { + display: flex; + align-items: baseline; + gap: 8px; + margin-top: 2px; +} + +.find-a-cruise .find-a-cruise-card-price-value { + font-size: var(--heading-font-size-s); + font-weight: 700; + color: var(--hal-navy); +} + +.find-a-cruise .find-a-cruise-card-price-was { + font-size: var(--body-font-size-xs); + color: var(--hal-gray-500); + text-decoration: line-through; +} + +.find-a-cruise .find-a-cruise-card-price-note { + display: block; + font-size: 11px; + color: var(--hal-gray-500); +} + +.find-a-cruise .find-a-cruise-cta.button { + border-color: var(--hal-navy); + background: var(--hal-navy); + color: #fff; + border-radius: 4px; + padding: 10px 20px; + white-space: nowrap; + flex-shrink: 0; +} + +.find-a-cruise .find-a-cruise-cta.button:hover, +.find-a-cruise .find-a-cruise-cta.button:focus-visible { + border-color: var(--hal-navy-light); + background: var(--hal-navy-light); + color: #fff; + text-decoration: none; +} + +.find-a-cruise .find-a-cruise-cta-soldout.button { + border-color: var(--hal-gray-200); + background: var(--hal-gray-200); + color: var(--hal-gray-700); +} + +/* Empty + load more */ +.find-a-cruise .find-a-cruise-empty { + margin-top: 24px; + padding: 48px 24px; + text-align: center; + background: #fff; + border: 1px solid var(--hal-gray-200); + border-radius: 4px; + color: var(--hal-gray-700); +} + +.find-a-cruise .find-a-cruise-loadmore { + margin-top: 32px; + text-align: center; +} + +.find-a-cruise .find-a-cruise-loadmore-btn.button { + border-color: var(--hal-navy); + background: var(--hal-navy); + color: #fff; + border-radius: 4px; + padding: 12px 32px; +} + +.find-a-cruise .find-a-cruise-loadmore-btn.button:hover { + border-color: var(--hal-navy-light); + background: var(--hal-navy-light); +} + +@media (width >= 900px) { + .find-a-cruise .find-a-cruise-card { + flex-direction: row; + } + + .find-a-cruise .find-a-cruise-card-media { + width: 280px; + min-height: 220px; + flex-shrink: 0; + } +} diff --git a/blocks/find-a-cruise/find-a-cruise.js b/blocks/find-a-cruise/find-a-cruise.js new file mode 100644 index 0000000..61cf1a7 --- /dev/null +++ b/blocks/find-a-cruise/find-a-cruise.js @@ -0,0 +1,365 @@ +/* + * Find A Cruise block + * Mirrors the Sanity / Storyblok POC find-a-cruise page: editorial config from + * the CMS + cruise results from HAL's Fusion (Solr) search. + * + * EDS constraint: there is no server runtime to proxy Fusion, and Fusion rejects + * browser origins (403 + no CORS). So this block fetches from a CONFIGURABLE + * endpoint that defaults to a bundled sample of the Fusion response. Point + * DATA_ENDPOINT at a CORS-enabled proxy to go live without touching the UI. + * + * Authoring contract (optional): a two-column "key | value" config table, e.g. + * heroHeading | Find Your Perfect Cruise + * heroSubheading| Browse our voyages ... + */ + +const PAGE_SIZE = 3; + +const DESTINATIONS = [ + ['A', 'Alaska'], ['AS', 'Asia'], ['AN', 'Australia/New Zealand'], + ['NE', 'Canada/New England'], ['C', 'Caribbean'], ['E', 'Europe'], + ['H', 'Hawaii'], ['M', 'Mexico'], ['PC', 'Panama Canal'], + ['SA', 'South America'], ['SP', 'South Pacific'], ['TA', 'Transatlantic'], +]; + +const SHIPS = [ + ['ED', 'Eurodam'], ['KD', 'Koningsdam'], ['NA', 'Nieuw Amsterdam'], + ['NS', 'Nieuw Statendam'], ['NO', 'Noordam'], ['OS', 'Oosterdam'], + ['RN', 'Rotterdam'], ['VL', 'Volendam'], ['WE', 'Westerdam'], + ['ZD', 'Zaandam'], ['ZU', 'Zuiderdam'], +]; + +const PORTS = [ + ['FLL', 'Fort Lauderdale, FL'], ['SEA', 'Seattle, WA'], ['SAN', 'San Diego, CA'], + ['YVR', 'Vancouver, BC'], ['ROM', 'Rome (Civitavecchia), Italy'], + ['BCN', 'Barcelona, Spain'], ['AMS', 'Amsterdam, Netherlands'], +]; + +const DURATIONS = [ + ['1-5', '1-5 Days'], ['6-9', '6-9 Days'], ['10-14', '10-14 Days'], ['15-999', '15+ Days'], +]; + +const SORTS = [ + ['recommended', 'Recommended'], + ['priceFrom_asc', 'Price low to high'], + ['priceFrom_desc', 'Price high to low'], + ['departureDate_asc', 'Earliest departure'], + ['departureDate_desc', 'Latest departure'], + ['duration_asc', 'Shortest duration'], + ['duration_desc', 'Longest duration'], +]; + +/* ---------- Fusion normalization (ported from the other POCs' fusion.ts) ---------- */ + +function parseDelimited(value) { + const parts = String(value ?? '').split('#@#'); + return { name: parts[0] ?? '', code: parts[1] ?? '' }; +} + +function extractPrice(doc) { + let priceFrom = null; + let launchPrice = null; + + const anon = doc.price_USD_IN_anonymous_d; + if (typeof anon === 'number' && anon > 0) priceFrom = anon; + + const anonLaunch = doc.launch_price_USD_IN_anonymous_d; + if (typeof anonLaunch === 'number' && anonLaunch > 0) launchPrice = anonLaunch; + + if (priceFrom === null) { + Object.keys(doc) + .filter((k) => k.startsWith('price_USD_IN_') && k.endsWith('_d')) + .forEach((k) => { + const v = doc[k]; + if (typeof v === 'number' && v > 0 && (priceFrom === null || v < priceFrom)) priceFrom = v; + }); + } + return { priceFrom, launchPrice }; +} + +function extractTaxes(doc) { + const key = Object.keys(doc).find( + (k) => k.startsWith('taxExpenses_USD_') && typeof doc[k] === 'number' && doc[k] > 0, + ); + return key ? doc[key] : null; +} + +function normalizeCruise(doc) { + const { priceFrom, launchPrice } = extractPrice(doc); + return { + cruiseId: doc.cruiseId, + itineraryId: doc.itineraryId, + entityId: doc.entityId, + name: doc.name, + shipId: doc.shipId, + shipName: parseDelimited(doc.shipName).name, + embarkPortCode: doc.embarkPortCode, + embarkPortName: parseDelimited(doc.embarkPortName).name, + disembarkPortCode: doc.disembarkPortCode, + disembarkPortName: parseDelimited(doc.disembarkPortName).name, + departDate: doc.departDate, + arrivalDate: doc.arrivalDate, + duration: doc.duration, + destinations: (doc.destinationNames ?? []).map(parseDelimited), + destinationIds: doc.destinationIds ?? [], + cruiseType: doc.cruiseType, + soldOut: doc.soldOut ?? false, + priceFrom, + launchPrice, + taxesAndFees: extractTaxes(doc), + }; +} + +/* ---------- helpers ---------- */ + +function el(tag, props = {}, ...children) { + const node = document.createElement(tag); + Object.entries(props).forEach(([k, v]) => { + if (k === 'class') node.className = v; + else if (k === 'text') node.textContent = v; + else if (k.startsWith('data-') || k === 'role' || k.startsWith('aria-') || k === 'for') { + node.setAttribute(k, v); + } else node[k] = v; + }); + children.filter(Boolean).forEach((c) => node.append(c)); + return node; +} + +function formatDate(dateStr) { + return new Date(dateStr).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }); +} + +function formatPrice(price) { + return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0 }).format(price); +} + +function buildSelect(id, label, placeholder, options, value) { + const select = el('select', { + id, class: `find-a-cruise-pill${value ? ' find-a-cruise-pill-active' : ''}`, 'aria-label': label, 'data-testid': id, + }); + select.append(el('option', { value: '', text: placeholder })); + options.forEach(([val, txt]) => { + const opt = el('option', { value: val, text: txt }); + if (val === value) opt.selected = true; + select.append(opt); + }); + return select; +} + +/* ---------- filtering + sorting ---------- */ + +function applyFilters(cruises, filters) { + return cruises.filter((c) => { + if (filters.destination && !c.destinationIds.includes(filters.destination)) return false; + if (filters.ship && c.shipId !== filters.ship) return false; + if (filters.departurePort && c.embarkPortCode !== filters.departurePort) return false; + if (filters.duration) { + const [min, max] = filters.duration.split('-').map(Number); + if (c.duration < min || c.duration > max) return false; + } + if (filters.departureDate) { + const ym = c.departDate.slice(0, 7); + if (ym !== filters.departureDate) return false; + } + if (filters.deals && !(c.launchPrice && c.launchPrice > c.priceFrom)) return false; + return true; + }); +} + +function applySort(cruises, sort) { + const list = [...cruises]; + const byPrice = (a, b) => (a.priceFrom ?? Infinity) - (b.priceFrom ?? Infinity); + const byDate = (a, b) => new Date(a.departDate) - new Date(b.departDate); + const byDuration = (a, b) => a.duration - b.duration; + switch (sort) { + case 'priceFrom_asc': return list.sort(byPrice); + case 'priceFrom_desc': return list.sort((a, b) => byPrice(b, a)); + case 'departureDate_asc': return list.sort(byDate); + case 'departureDate_desc': return list.sort((a, b) => byDate(b, a)); + case 'duration_asc': return list.sort(byDuration); + case 'duration_desc': return list.sort((a, b) => byDuration(b, a)); + default: return list; + } +} + +/* ---------- rendering ---------- */ + +function renderCard(cruise) { + const detailUrl = `/en/us/cruise/${cruise.itineraryId}/${cruise.cruiseId}`; + + const info = el( + 'div', + { class: 'find-a-cruise-card-info' }, + el('div', {}, el('span', { class: 'find-a-cruise-card-label', text: 'Ship' }), el('span', { text: cruise.shipName })), + el('div', {}, el('span', { class: 'find-a-cruise-card-label', text: 'Depart' }), el('span', { text: cruise.embarkPortName })), + ); + if (cruise.disembarkPortName && cruise.disembarkPortName !== cruise.embarkPortName) { + info.append(el('div', {}, el('span', { class: 'find-a-cruise-card-label', text: 'Arrive' }), el('span', { text: cruise.disembarkPortName }))); + } + + const price = el('div', { class: 'find-a-cruise-card-price' }); + if (cruise.priceFrom) { + price.append(el('span', { class: 'find-a-cruise-card-price-label', text: 'INSIDE FROM' })); + const row = el( + 'div', + { class: 'find-a-cruise-card-price-row' }, + el('span', { class: 'find-a-cruise-card-price-value', text: formatPrice(cruise.priceFrom) }), + ); + if (cruise.launchPrice && cruise.launchPrice > cruise.priceFrom) { + row.append(el('span', { class: 'find-a-cruise-card-price-was', text: formatPrice(cruise.launchPrice) })); + } + price.append(row, el('span', { class: 'find-a-cruise-card-price-note', text: '*USD Per Person based on double occupancy' })); + } else { + price.append(el('span', { text: 'Call for pricing' })); + } + + const cta = el('a', { + class: `find-a-cruise-cta button${cruise.soldOut ? ' find-a-cruise-cta-soldout' : ''}`, + href: detailUrl, + text: cruise.soldOut ? 'Join Waitlist' : 'View Cruise', + 'aria-label': `${cruise.soldOut ? 'Join Waitlist' : 'View Cruise'} - ${cruise.name}`, + 'data-testid': `cruise-cta-${cruise.cruiseId}`, + }); + + const media = el( + 'div', + { class: 'find-a-cruise-card-media' }, + el('span', { class: 'find-a-cruise-card-media-placeholder', text: 'Route map' }), + ); + if (cruise.soldOut) { + media.append(el('span', { class: 'find-a-cruise-card-badge', text: 'Sold Out', 'data-testid': 'sold-out-badge' })); + } + + const content = el( + 'div', + { class: 'find-a-cruise-card-content' }, + el('h3', { class: 'find-a-cruise-card-title', text: `${cruise.duration}-Day ${cruise.name}` }), + info, + el('p', { class: 'find-a-cruise-card-date', text: formatDate(cruise.departDate) }), + el('div', { class: 'find-a-cruise-card-footer' }, price, cta), + ); + + return el('article', { + class: 'find-a-cruise-card', 'data-testid': `cruise-card-${cruise.cruiseId}`, + }, media, content); +} + +export default async function decorate(block) { + // optional authored config (key | value rows) + const config = {}; + [...block.children].forEach((row) => { + const cells = [...row.children]; + if (cells.length >= 2) config[cells[0].textContent.trim()] = cells[1].textContent.trim(); + }); + + const heroHeading = config.heroHeading || 'Find Your Perfect Cruise'; + const heroSubheading = config.heroSubheading || 'Browse our voyages and set sail with Holland America Line.'; + + block.textContent = ''; + + // Hero banner + block.append(el( + 'section', + { class: 'find-a-cruise-hero', 'data-testid': 'hero-banner' }, + el('h2', { class: 'find-a-cruise-hero-heading', text: heroHeading }), + el('p', { class: 'find-a-cruise-hero-subheading', text: heroSubheading }), + )); + + // state + const filters = { + destination: null, duration: null, ship: null, departurePort: null, departureDate: null, deals: null, sort: 'recommended', + }; + let allCruises = []; + let visible = PAGE_SIZE; + + // headline + const headline = el('h1', { class: 'find-a-cruise-headline', 'aria-live': 'polite' }); + + // filter bar + const controls = el('div', { class: 'find-a-cruise-controls', role: 'group', 'aria-label': 'Filter options' }); + const destSel = buildSelect('filter-destination', 'Filter by destination', 'Destinations', DESTINATIONS, filters.destination); + const durSel = buildSelect('filter-duration', 'Filter by duration', 'Duration', DURATIONS, filters.duration); + const portSel = buildSelect('filter-depart-from', 'Filter by departure port', 'Depart From', PORTS, filters.departurePort); + const shipSel = buildSelect('filter-ship', 'Filter by ship', 'Ships', SHIPS, filters.ship); + const dealsSel = buildSelect('filter-deals', 'Filter by deals', 'Deals', [['has_deals', 'Cruises with Deals']], filters.deals); + controls.append(destSel, durSel, portSel, shipSel, dealsSel); + + const sortSel = buildSelect('filter-sort', 'Sort cruise results', 'Recommended', SORTS.slice(1), filters.sort); + const sortRow = el( + 'div', + { class: 'find-a-cruise-sort' }, + el('label', { for: 'filter-sort', class: 'find-a-cruise-sort-label', text: 'Sort by' }), + sortSel, + ); + + const filterBar = el( + 'section', + { class: 'find-a-cruise-filters', 'aria-label': 'Cruise search filters', 'data-testid': 'filter-bar' }, + headline, + controls, + sortRow, + ); + + const results = el('section', { class: 'find-a-cruise-results', 'aria-label': 'Cruise search results', 'data-testid': 'cruise-results-grid' }); + const loadMoreWrap = el('div', { class: 'find-a-cruise-loadmore' }); + + block.append(el('div', { class: 'find-a-cruise-main' }, filterBar, results, loadMoreWrap)); + + function render() { + const filtered = applySort(applyFilters(allCruises, filters), filters.sort); + const total = filtered.length; + headline.textContent = total === 1 ? 'Explore 1 Cruise' : `Explore ${total} Cruises`; + + results.textContent = ''; + loadMoreWrap.textContent = ''; + + if (total === 0) { + results.append(el('div', { + class: 'find-a-cruise-empty', role: 'alert', 'aria-live': 'polite', 'data-testid': 'no-results-message', + }, el('p', { text: "Didn't find anything matching your search? Try adjusting your filters." }))); + return; + } + + filtered.slice(0, visible).forEach((c) => results.append(renderCard(c))); + + if (visible < total) { + const btn = el('button', { + type: 'button', + class: 'find-a-cruise-loadmore-btn button', + text: `Show More (${Math.min(visible, total)} of ${total})`, + 'data-testid': 'load-more-button', + 'aria-label': `Load more cruises. Showing ${Math.min(visible, total)} of ${total}`, + }); + btn.addEventListener('click', () => { visible += PAGE_SIZE; render(); }); + loadMoreWrap.append(btn); + } + } + + function onFilterChange() { + visible = PAGE_SIZE; + [destSel, durSel, portSel, shipSel, dealsSel].forEach((sel) => { + sel.classList.toggle('find-a-cruise-pill-active', !!sel.value); + }); + render(); + } + + destSel.addEventListener('change', (e) => { filters.destination = e.target.value || null; onFilterChange(); }); + durSel.addEventListener('change', (e) => { filters.duration = e.target.value || null; onFilterChange(); }); + portSel.addEventListener('change', (e) => { filters.departurePort = e.target.value || null; onFilterChange(); }); + shipSel.addEventListener('change', (e) => { filters.ship = e.target.value || null; onFilterChange(); }); + dealsSel.addEventListener('change', (e) => { filters.deals = e.target.value || null; onFilterChange(); }); + sortSel.addEventListener('change', (e) => { filters.sort = e.target.value; render(); }); + + // fetch data (configurable endpoint; defaults to bundled sample of the Fusion response) + const DATA_ENDPOINT = `${window.hlx.codeBasePath}/blocks/find-a-cruise/sample-cruises.json`; + headline.textContent = 'Searching...'; + try { + const res = await fetch(DATA_ENDPOINT); + if (!res.ok) throw new Error(`Fetch failed: ${res.status}`); + const data = await res.json(); + allCruises = (data.response?.docs ?? []).map(normalizeCruise); + } catch (error) { + allCruises = []; + } + render(); +} diff --git a/blocks/find-a-cruise/sample-cruises.json b/blocks/find-a-cruise/sample-cruises.json new file mode 100644 index 0000000..3ad5e02 --- /dev/null +++ b/blocks/find-a-cruise/sample-cruises.json @@ -0,0 +1,196 @@ +{ + "response": { + "numFound": 8, + "start": 0, + "docs": [ + { + "cruiseId": "C001", + "itineraryId": "I001", + "entityId": "E001", + "name": "Alaskan Explorer", + "shipId": "KD", + "shipName": "Koningsdam#@#KD", + "embarkPortCode": "SEA", + "embarkPortName": "Seattle, Washington#@#SEA", + "disembarkPortCode": "SEA", + "disembarkPortName": "Seattle, Washington#@#SEA", + "departDate": "2026-07-12T00:00:00Z", + "arrivalDate": "2026-07-19T00:00:00Z", + "duration": 7, + "destinationIds": ["A"], + "destinationNames": ["ALASKA#@#A"], + "cruiseType": "has_deals", + "soldOut": false, + "meta": ["Inside#@#KD_IN", "Ocean View#@#KD_OV", "Verandah#@#KD_VH"], + "portOfCallIds": ["Juneau, Alaska#@#JNU", "Skagway, Alaska#@#SGY", "Ketchikan, Alaska#@#KTN"], + "price_USD_IN_anonymous_d": 749, + "launch_price_USD_IN_anonymous_d": 899, + "taxExpenses_USD_IN_anonymous_d": 145 + }, + { + "cruiseId": "C002", + "itineraryId": "I002", + "entityId": "E002", + "name": "Eastern Caribbean Getaway", + "shipId": "NS", + "shipName": "Nieuw Statendam#@#NS", + "embarkPortCode": "FLL", + "embarkPortName": "Fort Lauderdale, Florida#@#FLL", + "disembarkPortCode": "FLL", + "disembarkPortName": "Fort Lauderdale, Florida#@#FLL", + "departDate": "2026-08-02T00:00:00Z", + "arrivalDate": "2026-08-09T00:00:00Z", + "duration": 7, + "destinationIds": ["C"], + "destinationNames": ["CARIBBEAN#@#C"], + "cruiseType": "standard", + "soldOut": false, + "meta": ["Inside#@#NS_IN", "Ocean View#@#NS_OV", "Verandah#@#NS_VH"], + "portOfCallIds": ["Grand Turk#@#GDT", "San Juan, Puerto Rico#@#SJU", "Amber Cove#@#AMB"], + "price_USD_IN_anonymous_d": 649, + "taxExpenses_USD_IN_anonymous_d": 120 + }, + { + "cruiseId": "C003", + "itineraryId": "I003", + "entityId": "E003", + "name": "Mediterranean Romance", + "shipId": "OS", + "shipName": "Oosterdam#@#OS", + "embarkPortCode": "ROM", + "embarkPortName": "Civitavecchia (Rome), Italy#@#ROM", + "disembarkPortCode": "BCN", + "disembarkPortName": "Barcelona, Spain#@#BCN", + "departDate": "2026-09-15T00:00:00Z", + "arrivalDate": "2026-09-25T00:00:00Z", + "duration": 10, + "destinationIds": ["E"], + "destinationNames": ["EUROPE#@#E"], + "cruiseType": "standard", + "soldOut": false, + "meta": ["Inside#@#OS_IN", "Ocean View#@#OS_OV", "Verandah#@#OS_VH", "Suite#@#OS_SU"], + "portOfCallIds": ["Naples, Italy#@#NAP", "Marseille, France#@#MRS", "Palma, Spain#@#PMI"], + "price_USD_IN_anonymous_d": 1299, + "launch_price_USD_IN_anonymous_d": 1499, + "taxExpenses_USD_IN_anonymous_d": 210 + }, + { + "cruiseId": "C004", + "itineraryId": "I004", + "entityId": "E004", + "name": "Baja Mexico Escape", + "shipId": "KD", + "shipName": "Koningsdam#@#KD", + "embarkPortCode": "SAN", + "embarkPortName": "San Diego, California#@#SAN", + "disembarkPortCode": "SAN", + "disembarkPortName": "San Diego, California#@#SAN", + "departDate": "2026-10-05T00:00:00Z", + "arrivalDate": "2026-10-10T00:00:00Z", + "duration": 5, + "destinationIds": ["M"], + "destinationNames": ["MEXICO#@#M"], + "cruiseType": "standard", + "soldOut": false, + "meta": ["Inside#@#KD_IN", "Ocean View#@#KD_OV"], + "portOfCallIds": ["Cabo San Lucas#@#CSL", "Ensenada, Mexico#@#ENS"], + "price_USD_IN_anonymous_d": 449, + "taxExpenses_USD_IN_anonymous_d": 95 + }, + { + "cruiseId": "C005", + "itineraryId": "I005", + "entityId": "E005", + "name": "Grand Alaska & Glacier Bay", + "shipId": "ED", + "shipName": "Eurodam#@#ED", + "embarkPortCode": "YVR", + "embarkPortName": "Vancouver, British Columbia#@#YVR", + "disembarkPortCode": "YVR", + "disembarkPortName": "Vancouver, British Columbia#@#YVR", + "departDate": "2026-06-20T00:00:00Z", + "arrivalDate": "2026-07-04T00:00:00Z", + "duration": 14, + "destinationIds": ["A"], + "destinationNames": ["ALASKA#@#A"], + "cruiseType": "standard", + "soldOut": true, + "meta": ["Inside#@#ED_IN", "Ocean View#@#ED_OV", "Verandah#@#ED_VH"], + "portOfCallIds": ["Glacier Bay#@#GLB", "Sitka, Alaska#@#SIT", "Juneau, Alaska#@#JNU"], + "price_USD_IN_anonymous_d": 1899, + "taxExpenses_USD_IN_anonymous_d": 240 + }, + { + "cruiseId": "C006", + "itineraryId": "I006", + "entityId": "E006", + "name": "Southern Caribbean Seafarer", + "shipId": "NA", + "shipName": "Nieuw Amsterdam#@#NA", + "embarkPortCode": "FLL", + "embarkPortName": "Fort Lauderdale, Florida#@#FLL", + "disembarkPortCode": "FLL", + "disembarkPortName": "Fort Lauderdale, Florida#@#FLL", + "departDate": "2026-11-08T00:00:00Z", + "arrivalDate": "2026-11-19T00:00:00Z", + "duration": 11, + "destinationIds": ["C"], + "destinationNames": ["CARIBBEAN#@#C"], + "cruiseType": "has_deals", + "soldOut": false, + "meta": ["Inside#@#NA_IN", "Ocean View#@#NA_OV", "Verandah#@#NA_VH", "Suite#@#NA_SU"], + "portOfCallIds": ["Aruba#@#AUA", "Bonaire#@#BON", "Curacao#@#CUR"], + "price_USD_IN_anonymous_d": 1099, + "launch_price_USD_IN_anonymous_d": 1349, + "taxExpenses_USD_IN_anonymous_d": 180 + }, + { + "cruiseId": "C007", + "itineraryId": "I007", + "entityId": "E007", + "name": "Norwegian Fjords & North Cape", + "shipId": "RN", + "shipName": "Rotterdam#@#RN", + "embarkPortCode": "AMS", + "embarkPortName": "Amsterdam, Netherlands#@#AMS", + "disembarkPortCode": "AMS", + "disembarkPortName": "Amsterdam, Netherlands#@#AMS", + "departDate": "2026-07-28T00:00:00Z", + "arrivalDate": "2026-08-11T00:00:00Z", + "duration": 14, + "destinationIds": ["E"], + "destinationNames": ["EUROPE#@#E"], + "cruiseType": "standard", + "soldOut": false, + "meta": ["Inside#@#RN_IN", "Ocean View#@#RN_OV", "Verandah#@#RN_VH"], + "portOfCallIds": ["Bergen, Norway#@#BGO", "Geiranger, Norway#@#GEI", "Tromso, Norway#@#TOS"], + "price_USD_IN_anonymous_d": 1749, + "taxExpenses_USD_IN_anonymous_d": 225 + }, + { + "cruiseId": "C008", + "itineraryId": "I008", + "entityId": "E008", + "name": "Panama Canal Sunfarer", + "shipId": "ZU", + "shipName": "Zuiderdam#@#ZU", + "embarkPortCode": "FLL", + "embarkPortName": "Fort Lauderdale, Florida#@#FLL", + "disembarkPortCode": "SAN", + "disembarkPortName": "San Diego, California#@#SAN", + "departDate": "2026-12-03T00:00:00Z", + "arrivalDate": "2026-12-24T00:00:00Z", + "duration": 21, + "destinationIds": ["PC"], + "destinationNames": ["PANAMA CANAL#@#PC"], + "cruiseType": "standard", + "soldOut": false, + "meta": ["Inside#@#ZU_IN", "Ocean View#@#ZU_OV", "Verandah#@#ZU_VH", "Suite#@#ZU_SU"], + "portOfCallIds": ["Cartagena, Colombia#@#CTG", "Panama Canal#@#PAN", "Puerto Vallarta, Mexico#@#PVR"], + "price_USD_IN_anonymous_d": 2299, + "launch_price_USD_IN_anonymous_d": 2599, + "taxExpenses_USD_IN_anonymous_d": 310 + } + ] + } +} diff --git a/blocks/hero-search/hero-search.css b/blocks/hero-search/hero-search.css new file mode 100644 index 0000000..3890083 --- /dev/null +++ b/blocks/hero-search/hero-search.css @@ -0,0 +1,132 @@ +.hero-search { + position: relative; + overflow: hidden; + background: linear-gradient(to bottom, var(--hal-navy-dark), var(--hal-navy)); + color: #fff; +} + +.hero-search .hero-search-bg { + position: absolute; + inset: 0; + z-index: 0; +} + +.hero-search .hero-search-bg img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.hero-search .hero-search-overlay { + position: absolute; + inset: 0; + z-index: 1; + background: rgb(29 53 87 / 60%); +} + +.hero-search .hero-search-content { + position: relative; + z-index: 2; + max-width: 1120px; + margin: 0 auto; + padding: 64px 24px; + text-align: center; +} + +.hero-search .hero-search-heading { + color: #fff; + font-size: var(--heading-font-size-xxl); + margin: 0 0 16px; +} + +.hero-search .hero-search-subheading { + max-width: 640px; + margin: 0 auto 40px; + font-size: var(--body-font-size-m); + color: var(--hal-blue-light); +} + +.hero-search .hero-search-widget { + display: flex; + flex-direction: column; + gap: 16px; + max-width: 900px; + margin: 0 auto; + padding: 24px; + background: #fff; + border-radius: 8px; + box-shadow: 0 10px 25px rgb(0 0 0 / 20%); +} + +.hero-search .hero-search-fields { + display: flex; + flex-direction: column; + gap: 16px; +} + +.hero-search .hero-search-field { + flex: 1; + text-align: left; +} + +.hero-search .hero-search-field label { + display: block; + margin-bottom: 4px; + font-size: var(--body-font-size-xs); + font-weight: 500; + color: var(--hal-gray-700); +} + +.hero-search .hero-search-field select { + width: 100%; + padding: 10px 12px; + border: 1px solid var(--hal-gray-300); + border-radius: 6px; + font-size: var(--body-font-size-xs); + color: var(--hal-gray-900); + background: #fff; +} + +.hero-search .hero-search-field select:focus-visible { + outline: none; + border-color: var(--hal-blue); + box-shadow: 0 0 0 2px rgb(25 118 210 / 20%); +} + +.hero-search .hero-search-cta.button { + align-self: stretch; + border-color: var(--hal-navy); + background: var(--hal-navy); + color: #fff; + border-radius: 6px; + padding: 12px 32px; + white-space: nowrap; +} + +.hero-search .hero-search-cta.button:hover, +.hero-search .hero-search-cta.button:focus-visible { + border-color: var(--hal-navy-light); + background: var(--hal-navy-light); + color: #fff; + text-decoration: none; +} + +@media (width >= 900px) { + .hero-search .hero-search-content { + padding: 96px 32px; + } + + .hero-search .hero-search-fields { + flex-direction: row; + } + + .hero-search .hero-search-widget { + flex-direction: row; + align-items: flex-end; + } + + .hero-search .hero-search-cta.button { + align-self: auto; + width: auto; + } +} diff --git a/blocks/hero-search/hero-search.js b/blocks/hero-search/hero-search.js new file mode 100644 index 0000000..5e7089a --- /dev/null +++ b/blocks/hero-search/hero-search.js @@ -0,0 +1,130 @@ +/* + * Hero Search block + * Home hero with a presentational cruise-search widget (matching the Sanity / + * Storyblok POCs). The selects are presentational; the Search button routes to + * the find-a-cruise page. + * + * Authoring contract (rows top-to-bottom): + * Row 1: background image (picture) — optional + * Row 2: heading + subheading (text content) — heading becomes

+ */ + +const DESTINATIONS = [ + ['', 'Any Destination'], + ['caribbean', 'Caribbean'], + ['alaska', 'Alaska'], + ['mediterranean', 'Mediterranean'], + ['northern-europe', 'Northern Europe'], + ['asia', 'Asia'], +]; + +const DATES = [ + ['', 'Any Date'], + ['2026-07', 'July 2026'], + ['2026-08', 'August 2026'], + ['2026-09', 'September 2026'], + ['2026-10', 'October 2026'], + ['2026-11', 'November 2026'], + ['2026-12', 'December 2026'], +]; + +const DURATIONS = [ + ['', 'Any Duration'], + ['1-5', '1-5 Days'], + ['6-9', '6-9 Days'], + ['10-14', '10-14 Days'], + ['15+', '15+ Days'], +]; + +/** + * Builds a labelled select field. + * @param {string} id Field id + * @param {string} label Visible label + * @param {Array<[string,string]>} options [value, text] pairs + * @returns {HTMLElement} field wrapper + */ +function buildField(id, label, options) { + const field = document.createElement('div'); + field.className = 'hero-search-field'; + + const labelEl = document.createElement('label'); + labelEl.setAttribute('for', id); + labelEl.textContent = label; + + const select = document.createElement('select'); + select.id = id; + select.setAttribute('aria-label', label); + select.dataset.testid = id; + options.forEach(([value, text]) => { + const opt = document.createElement('option'); + opt.value = value; + opt.textContent = text; + select.append(opt); + }); + + field.append(labelEl, select); + return field; +} + +/** + * loads and decorates the hero-search block + * @param {Element} block The block element + */ +export default async function decorate(block) { + const rows = [...block.children]; + + // Row 1: background image (optional). Ignore an empty placeholder . + const pictureImg = block.querySelector('picture img'); + const picture = pictureImg && pictureImg.getAttribute('src') ? pictureImg.closest('picture') : null; + + // Heading + copy: pull the last row's text content (heading + paragraphs) + const textRow = rows[rows.length - 1]; + const heading = block.querySelector('h1, h2, h3, h4, h5, h6'); + const paragraphs = textRow ? [...textRow.querySelectorAll('p')].filter((p) => !p.querySelector('picture')) : []; + + // Reset and rebuild + block.textContent = ''; + + if (picture) { + picture.classList.add('hero-search-bg'); + block.append(picture); + const overlay = document.createElement('div'); + overlay.className = 'hero-search-overlay'; + block.append(overlay); + } + + const content = document.createElement('div'); + content.className = 'hero-search-content'; + + if (heading) { + heading.classList.add('hero-search-heading'); + content.append(heading); + } + paragraphs.forEach((p) => { + p.classList.add('hero-search-subheading'); + content.append(p); + }); + + // Search widget + const widget = document.createElement('div'); + widget.className = 'hero-search-widget'; + + const fields = document.createElement('div'); + fields.className = 'hero-search-fields'; + fields.append( + buildField('search-destination', 'Destination', DESTINATIONS), + buildField('search-date', 'Departure Date', DATES), + buildField('search-duration', 'Duration', DURATIONS), + ); + + const cta = document.createElement('a'); + cta.className = 'hero-search-cta button'; + cta.href = '/en/us/find-a-cruise'; + cta.textContent = 'Search'; + cta.setAttribute('aria-label', 'Search for cruises'); + cta.dataset.testid = 'hero-search-cta'; + + widget.append(fields, cta); + content.append(widget); + block.append(content); +} diff --git a/component-definition.json b/component-definition.json index a16ab13..73f2d58 100644 --- a/component-definition.json +++ b/component-definition.json @@ -135,6 +135,34 @@ } } }, + { + "title": "Cruise Ships", + "id": "cruise-ships", + "model": "cruise-ships", + "plugins": { + "da": { + "unsafeHTML": "
heroHeading
Our Ships
heroSubheading
Explore the Holland America Line fleet and find the ship that’s right for you.
endpoint
detailBase
/en/us/cruise-ships
", + "fields": [ + { + "name": "heroHeading", + "selector": "div:nth-child(1)>div:nth-child(2)" + }, + { + "name": "heroSubheading", + "selector": "div:nth-child(2)>div:nth-child(2)" + }, + { + "name": "endpoint", + "selector": "div:nth-child(3)>div:nth-child(2)" + }, + { + "name": "detailBase", + "selector": "div:nth-child(4)>div:nth-child(2)" + } + ] + } + } + }, { "title": "Fragment", "id": "fragment", @@ -171,6 +199,34 @@ } } }, + { + "title": "Hero Search", + "id": "hero-search", + "model": "hero-search", + "plugins": { + "da": { + "unsafeHTML": "
\"\"

Savor Every Moment

Set sail on a journey of discovery with Holland America Line.

", + "fields": [ + { + "name": "image", + "selector": "div:nth-child(1)>div>picture>img[src]" + }, + { + "name": "imageAlt", + "selector": "div:nth-child(1)>div>picture>img[alt]" + }, + { + "name": "heading", + "selector": "div:nth-child(2)>div>h1" + }, + { + "name": "subheading", + "selector": "div:nth-child(2)>div>p" + } + ] + } + } + }, { "title": "Schedule", "id": "schedule", diff --git a/component-filters.json b/component-filters.json index d58f18d..6af9989 100644 --- a/component-filters.json +++ b/component-filters.json @@ -13,8 +13,10 @@ "advanced-tabs", "card", "columns", + "cruise-ships", "fragment", "hero", + "hero-search", "schedule", "table", "youtube" diff --git a/component-models.json b/component-models.json index 32acbef..727e6b4 100644 --- a/component-models.json +++ b/component-models.json @@ -292,6 +292,37 @@ } ] }, + { + "id": "cruise-ships", + "fields": [ + { + "component": "text", + "valueType": "string", + "name": "heroHeading", + "label": "Hero Heading" + }, + { + "component": "text", + "valueType": "string", + "name": "heroSubheading", + "label": "Hero Subheading" + }, + { + "component": "text", + "valueType": "string", + "name": "endpoint", + "label": "Ship Feed URL", + "description": "Optional. Overrides the bundled sample feed. Point at the real ship feed or a CORS-enabled proxy." + }, + { + "component": "text", + "valueType": "string", + "name": "detailBase", + "label": "Ship Detail Base Path", + "description": "Base path for the ‘See Ship Details’ links (default /en/us/cruise-ships)." + } + ] + }, { "id": "fragment", "fields": [ @@ -326,6 +357,37 @@ } ] }, + { + "id": "hero-search", + "fields": [ + { + "component": "text", + "valueType": "string", + "name": "heading", + "label": "Heading" + }, + { + "component": "text", + "valueType": "string", + "name": "subheading", + "label": "Subheading" + }, + { + "component": "reference", + "valueType": "string", + "name": "image", + "label": "Background Image", + "multi": false, + "description": "Optional. Sits behind a navy overlay." + }, + { + "component": "text", + "valueType": "string", + "name": "imageAlt", + "label": "Background Image Alt" + } + ] + }, { "id": "schedule", "fields": [ diff --git a/docs/cruise-ships-architecture.html b/docs/cruise-ships-architecture.html new file mode 100644 index 0000000..d8e4c14 --- /dev/null +++ b/docs/cruise-ships-architecture.html @@ -0,0 +1,334 @@ + + + + + + Cruise Ships Page — How It's Built & Connected (EDS) + + + +
+

The Cruise Ships Page — How It's Built & Connected

+

Edge Delivery Services (EDS) · Holland America Line POC

+
+ +
+

+ The big idea: the page you see is assembled from two separate sources that + meet at the last second in the visitor's browser. The words come from an + author's document. The ships come from a data feed. A small piece of code + called a "block" fetches both and glues them together. +

+ +

The players — who does what

+
+
+ Words +

📝 The Document

+

Where an author types the page heading & settings. Lives in an online editor + (da.live) — like Google Docs for the website.

+
+
+ Glue +

🧩 The "Cruise Ships" Block

+

Reusable code that knows how to draw a grid of ship cards. Holds no ships itself — + it's the machine, not the data.

+
+
+ Data +

🚢 The Ship Feed

+

A data file listing every ship — name, class, photo, link. The single source of truth + for the fleet.

+
+
+ Result +

🖥️ The Visitor's Browser

+

Where the words and the ships are combined into the finished page people actually see.

+
+
+ +

How the pieces connect

+
+
+
+ 📝 + Author's Document + heading, subheading, which feed to use +
+
+ 🚢 + Ship Feed + the 11 ships + photos +
+
+
+
+ 🧩 + "Cruise Ships" Block + fetches both & merges them +
+
+
+ 🖥️ + Finished Page + heading on top, ship grid below +
+
+
+ Words (author controls) + Data (feed controls) + Glue (our code) + What the visitor sees +
+ +

The steps, start to finish

+
    +
  1. +

    Build the "Cruise Ships" block Developer · done

    +

    The code that turns raw ship data into a grid of cards. It's just the machine — it + contains no ships.

    +
  2. +
  3. +

    Point it at a data file Developer · done

    +

    Today it reads a sample file (sample-ships.json) with all 11 ships. Later we + swap in the real feed — the block doesn't care where the data comes from.

    +
  4. +
  5. +

    Register the block so authors can find it Developer · done

    +

    "Cruise Ships" now appears in the author's menu of blocks, with a form for the heading, + subheading, and (optional) feed URL.

    +
  6. +
  7. +

    Create the actual page Author

    +

    In da.live, someone creates the page at /en/us/cruise-ships, drops in the + block, types the heading, and hits Publish. No developer needed.

    +
  8. +
  9. +

    A visitor opens the page — everything connects Automatic

    +

    EDS grabs the author's words, runs the block, the block fetches the ship feed, merges the + two, and draws the finished page — all in a fraction of a second.

    +
  10. +
+ +

Why this approach is nice

+
+
+

✏️ Authors stay independent

+

Change wording anytime without calling a developer.

+
+
+

🔄 The fleet updates itself

+

New ship or new photo? Update the feed once — every page using it updates automatically.

+
+
+

➕ Easy to add more sources

+

Live pricing from the booking system can plug in later the same way, no rebuild.

+
+
+ +

See it yourself

+

+ Run nvm use then aem up --html-folder drafts, and open + http://localhost:3000/en/us/cruise-ships. You'll see the heading (from the + document) above the grid of 11 ships (from the feed) — the two sources connected into one page. +

+
+ + + + diff --git a/drafts/en/us.plain.html b/drafts/en/us.plain.html new file mode 100644 index 0000000..8644a06 --- /dev/null +++ b/drafts/en/us.plain.html @@ -0,0 +1,71 @@ +
+ +
+
+

Popular Destinations

+
+
+
+

Caribbean

+

Crystal waters and white sand beaches.

+

Explore Caribbean

+
+
+
+
+

Alaska

+

Glaciers, wildlife, and pristine wilderness.

+

Explore Alaska

+
+
+
+
+

Mediterranean

+

Ancient history meets coastal charm.

+

Explore Mediterranean

+
+
+
+
+
+

Why Holland America Line

+
+
+
+

Mid-Size Ships

+

Elegant, uncrowded ships built for exploration.

+
+
+
+
+

Award-Winning Dining

+

World-class culinary experiences at sea.

+
+
+
+
+

150+ Destinations

+

Voyages across all seven continents.

+
+
+
+
+

Enriching Experiences

+

Music, culture, and immersive discovery.

+
+
+
+ +
diff --git a/drafts/en/us/cruise-ships.plain.html b/drafts/en/us/cruise-ships.plain.html new file mode 100644 index 0000000..b578889 --- /dev/null +++ b/drafts/en/us/cruise-ships.plain.html @@ -0,0 +1,12 @@ +
+
+
+
heroHeading
+
Our Ships
+
+
+
heroSubheading
+
Explore the Holland America Line fleet and find the ship that’s right for you.
+
+
+
diff --git a/drafts/en/us/find-a-cruise.plain.html b/drafts/en/us/find-a-cruise.plain.html new file mode 100644 index 0000000..597d064 --- /dev/null +++ b/drafts/en/us/find-a-cruise.plain.html @@ -0,0 +1,12 @@ +
+
+
+
heroHeading
+
Find Your Perfect Cruise
+
+
+
heroSubheading
+
Browse our voyages and set sail with Holland America Line.
+
+
+
diff --git a/ship-en.json b/ship-en.json new file mode 100644 index 0000000..e26ed3e --- /dev/null +++ b/ship-en.json @@ -0,0 +1,6611 @@ +[ + { + "shipVersion": "7", + "id": "AA", + "name": "Zaandam", + "detailPageName": "Zaandam", + "rooms": [ + { + "id": "AA_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "AA_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "\"Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + } + ] + } + ] + }, + { + "id": "AA_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 2, + "categories": [ + { + "id": "AA_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 2 + } + ] + }, + { + "id": "AA_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "AA_OV_PH", + "name": "Port Hole", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "AA_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "FF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "EE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "AA_VS", + "name": "Vista Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "AA_VS_VS", + "name": "Vista Suite", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "B", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "AA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "A", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "BB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "BC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "AA_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "AA_NS_NS", + "name": "Neptune Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SA", + "title": "", + "area": "", + "displayOrder": 7 + }, + { + "id": "SB", + "title": "", + "area": "", + "displayOrder": 7 + } + ] + }, + { + "id": "AA_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Oversize whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Living room, dining room, dressing room, private verandah, pantry, guest toilet, No-host mini-bar, refrigerator, Sofa bed for 2 persons", + "area": "Approximately 1,296 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + } + ] + } + ], + "guests": "1432", + "crew": "", + "cabins": "", + "length": "781 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Dolphin", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "1", + "id": "ED", + "name": "Eurodam", + "detailPageName": "Eurodam", + "rooms": [ + { + "id": "ED_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "ED_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "ED_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 2 + } + ] + }, + { + "id": "ED_IN_SIN", + "name": "Spa Inside", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 3 + } + ] + } + ] + }, + { + "id": "ED_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 4, + "categories": [ + { + "id": "ED_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 4 + }, + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "ED_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 5 + } + ] + }, + { + "id": "ED_OV_OV", + "name": "Ocean View", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + } + ] + }, + { + "id": "ED_OV_SOV", + "name": "Spa Ocean View", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "ED_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "ED_VN_VN", + "name": "Verandah", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 8 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VT", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "V", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "ED_VN_SVN", + "name": "Spa Verandah", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + }, + { + "id": "ED_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 10, + "categories": [ + { + "id": "ED_SS_SS", + "name": "Signature Suite", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SU", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "ED_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "ED_NS_NS", + "name": "Neptune Suite", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + } + ] + }, + { + "id": "ED_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 12, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with oversized whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet, Microwave, refrigerator, pantry and private stereo system, Sofa bed for 2 persons", + "area": "Approximately 1,357 sq. ft. including verandah.", + "displayOrder": 12 + } + ] + } + ] + } + ], + "guests": "2104", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "0", + "id": "ED", + "name": "Eurodam", + "detailPageName": "Eurodam", + "rooms": [ + { + "id": "ED_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "ED_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "ED_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 2 + } + ] + }, + { + "id": "ED_IN_SIN", + "name": "Spa Inside", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 3 + } + ] + } + ] + }, + { + "id": "ED_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 4, + "categories": [ + { + "id": "ED_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 4 + }, + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "ED_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 5 + } + ] + }, + { + "id": "ED_OV_OV", + "name": "Ocean View", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + } + ] + }, + { + "id": "ED_OV_SOV", + "name": "Spa Ocean View", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "ED_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "ED_VN_VN", + "name": "Verandah", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "V", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 8 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VT", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "ED_VN_SVN", + "name": "Spa Verandah", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + }, + { + "id": "ED_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 10, + "categories": [ + { + "id": "ED_SS_SS", + "name": "Signature Suite", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SU", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "ED_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "ED_NS_NS", + "name": "Neptune Suite", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + } + ] + }, + { + "id": "ED_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 12, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with oversized whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet, Microwave, refrigerator, pantry and private stereo system, Sofa bed for 2 persons", + "area": "Approximately 1,357 sq. ft. including verandah.", + "displayOrder": 12 + } + ] + } + ] + } + ], + "guests": "2104", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "3", + "id": "KO", + "name": "Koningsdam", + "detailPageName": "Koningsdam", + "rooms": [ + { + "id": "KO_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "KO_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "KO_IN_SIN", + "name": "Spa Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IQ", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "KO_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "KO_OV_OV", + "name": "Ocean View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "F", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "C", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "D", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "E", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "KO_OV_SOV", + "name": "Spa Ocean View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CQ", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "KO_OV_FOV", + "name": "Family Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "FB", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 5 + }, + { + "id": "FA", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 5 + } + ] + }, + { + "id": "KO_OV_SI", + "name": "Single", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "OO", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "KO_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "KO_VN_OVN", + "name": "Obstructed Verandah", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VH", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + }, + { + "id": "KO_VN_VN", + "name": "Verandah", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "V", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "KO_VN_AVN", + "name": "Aft-View Verandah", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VS", + "title": "", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + }, + { + "id": "KO_VN_SVN", + "name": "Spa Verandah", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VQ", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "KO_VS", + "name": "Vista Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "KO_VS_VS", + "name": "Vista Suite", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "B", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "BC", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "A", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + } + ] + }, + { + "id": "KO_VS_AVS", + "name": "Aft-View Vista Suite", + "displayOrder": 12, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "AS", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 12 + } + ] + } + ] + }, + { + "id": "KO_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 13, + "categories": [ + { + "id": "KO_SS_SS", + "name": "Signature Suite", + "displayOrder": 13, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SY", + "title": "2 lower beds convertible to 1 king-size bed, 1 murphy bed for 1 person, 1 sofa bed for 1 person, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 393-400 sq. ft. including verandah.", + "displayOrder": 13 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 king-size bed, 1 murphy bed for 1 person, 1 sofa bed for 1 person, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 393-400 sq. ft. including verandah.", + "displayOrder": 13 + } + ] + } + ] + }, + { + "id": "KO_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 14, + "categories": [ + { + "id": "KO_NS_NS", + "name": "Neptune Suite", + "displayOrder": 14, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + } + ] + }, + { + "id": "KO_NS_NSS", + "name": "Neptune Spa Suite", + "displayOrder": 15, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SQ", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 15 + } + ] + }, + { + "id": "KO_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 16, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Oversize whirlpool bath \u0026 shower \u0026 additional shower stall, Living room, Dining room, Dressing room, Private verandah with whirlpool, Pantry, 1 sofa bed for 2 persons, Microwave, Refrigerator, Guest toilet, Private stereo system, Floor-to-ceiling windows", + "area": "Approximately 1,290 sq. ft. including verandah.", + "displayOrder": 16 + } + ] + } + ] + } + ], + "guests": "2650", + "crew": "", + "cabins": "", + "length": "975 ft.", + "width": "114.8 ft.", + "speed": "", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 5, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "4", + "id": "NA", + "name": "Nieuw Amsterdam", + "detailPageName": "Nieuw Amsterdam", + "rooms": [ + { + "id": "NA_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "NA_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "NA_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 2 + } + ] + }, + { + "id": "NA_IN_SIN", + "name": "Spa Inside", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 141-284 sq. ft.", + "displayOrder": 3 + } + ] + } + ] + }, + { + "id": "NA_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 4, + "categories": [ + { + "id": "NA_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 4 + }, + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "NA_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 5 + } + ] + }, + { + "id": "NA_OV_OV", + "name": "Ocean View", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 6 + } + ] + }, + { + "id": "NA_OV_SOV", + "name": "Spa Ocean View", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 169-267 sq. ft.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "NA_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "NA_VN_VN", + "name": "Verandah", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "V", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 8 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "NA_VN_SVN", + "name": "Spa Verandah", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VQ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah or viewing balcony, Sitting area", + "area": "Approximately 213-379 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + }, + { + "id": "NA_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 10, + "categories": [ + { + "id": "NA_SS_SS", + "name": "Signature Suite", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + }, + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 273-456 sq. ft. including verandah.", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "NA_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "NA_NS_NS", + "name": "Neptune Suite", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 11 + } + ] + }, + { + "id": "NA_NS_NSS", + "name": "Neptune Spa Suite", + "displayOrder": 12, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SQ", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 506-590 sq. ft. including verandah.", + "displayOrder": 12 + } + ] + }, + { + "id": "NA_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 13, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with oversized whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet, Microwave, refrigerator, pantry and private stereo system, Sofa bed for 2 persons", + "area": "Approximately 1,357 sq. ft. including verandah.", + "displayOrder": 13 + } + ] + } + ] + } + ], + "guests": "2106", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "7", + "id": "NO", + "name": "Noordam", + "detailPageName": "Noordam", + "rooms": [ + { + "id": "NO_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "NO_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "NO_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "NO_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "NO_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + }, + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "NO_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "NO_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "NO_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "NO_VN_VN", + "name": "Verandah", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 6 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "NO_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "NO_SS_SS", + "name": "Signature Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "NO_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "NO_NS_NS", + "name": "Neptune Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "NO_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet and private stereo system, Microwave, refrigerator, pantry, Sofa bed for 2 persons", + "area": "Approximately 1,150 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + } + ], + "guests": "1924", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "8", + "id": "NO", + "name": "Noordam", + "detailPageName": "Noordam", + "rooms": [ + { + "id": "NO_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "NO_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "NO_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "NO_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "NO_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + }, + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "NO_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "NO_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "NO_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "NO_VN_VN", + "name": "Verandah", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "NO_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "NO_SS_SS", + "name": "Signature Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "NO_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "NO_NS_NS", + "name": "Neptune Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "NO_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet and private stereo system, Microwave, refrigerator, pantry, Sofa bed for 2 persons", + "area": "Approximately 1,150 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + } + ], + "guests": "1924", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "1", + "id": "NS", + "name": "Nieuw Statendam", + "detailPageName": "Nieuw Statendam", + "rooms": [ + { + "id": "NS_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "NS_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "N", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "J", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "NS_IN_SIN", + "name": "Spa Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IQ", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "NS_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "NS_OV_OV", + "name": "Ocean View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "F", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "C", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "D", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "E", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "NS_OV_SOV", + "name": "Spa Ocean View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CQ", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "NS_OV_FOV", + "name": "Family Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "FB", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 5 + }, + { + "id": "FA", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 5 + } + ] + }, + { + "id": "NS_OV_SI", + "name": "Single", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "OO", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "NS_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "NS_VN_OVN", + "name": "Obstructed Verandah", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VH", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + }, + { + "id": "NS_VN_VN", + "name": "Verandah", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "V", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "NS_VN_AVN", + "name": "Aft-View Verandah", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VS", + "title": "", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + }, + { + "id": "NS_VN_SVN", + "name": "Spa Verandah", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VQ", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "NS_VS", + "name": "Vista Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "NS_VS_VS", + "name": "Vista Suite", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "B", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "BC", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "A", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + } + ] + }, + { + "id": "NS_VS_AVS", + "name": "Aft-View Vista Suite", + "displayOrder": 12, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "AS", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 12 + } + ] + } + ] + }, + { + "id": "NS_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 13, + "categories": [ + { + "id": "NS_SS_SS", + "name": "Signature Suite", + "displayOrder": 13, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SY", + "title": "2 lower beds convertible to 1 king-size bed, 1 murphy bed for 1 person, 1 sofa bed for 1 person, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 393-400 sq. ft. including verandah.", + "displayOrder": 13 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 king-size bed, 1 murphy bed for 1 person, 1 sofa bed for 1 person, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 393-400 sq. ft. including verandah.", + "displayOrder": 13 + } + ] + } + ] + }, + { + "id": "NS_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 14, + "categories": [ + { + "id": "NS_NS_NS", + "name": "Neptune Suite", + "displayOrder": 14, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + } + ] + }, + { + "id": "NS_NS_NSS", + "name": "Neptune Spa Suite", + "displayOrder": 15, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SQ", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 15 + } + ] + }, + { + "id": "NS_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 16, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Oversize whirlpool bath \u0026 shower \u0026 additional shower stall, Living room, Dining room, Dressing room, Private verandah with whirlpool, Pantry, 1 sofa bed for 2 persons, Microwave, Refrigerator, Guest toilet, Private stereo system, Floor-to-ceiling windows", + "area": "Approximately 1,290 sq. ft. including verandah.", + "displayOrder": 16 + } + ] + } + ] + } + ], + "guests": "", + "crew": "", + "cabins": "", + "length": "975 ft.", + "width": "114.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 5, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "9", + "id": "OS", + "name": "Oosterdam", + "detailPageName": "Oosterdam", + "rooms": [ + { + "id": "OS_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "OS_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "OS_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "OS_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "OS_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + }, + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "OS_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "OS_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "OS_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "OS_VN_VN", + "name": "Verandah", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 6 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "OS_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "OS_SS_SS", + "name": "Signature Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "OS_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "OS_NS_NS", + "name": "Neptune Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "OS_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet and private stereo system, Microwave, refrigerator, pantry, Sofa bed for 2 persons", + "area": "Approximately 1,150 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + } + ], + "guests": "1964", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "1", + "id": "OS", + "name": "Oosterdam", + "detailPageName": "Oosterdam", + "rooms": [ + { + "id": "OS_IN", + "name": "Interior", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "OS_IN_IN", + "name": "Interior", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IF", + "title": "", + "area": "", + "displayOrder": 1 + }, + { + "id": "IE", + "title": "", + "area": "", + "displayOrder": 2 + }, + { + "id": "ID", + "title": "", + "area": "", + "displayOrder": 3 + }, + { + "id": "IC", + "title": "", + "area": "", + "displayOrder": 4 + } + ] + }, + { + "id": "OS_IN_IB", + "name": "Large Interior", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IB", + "title": "", + "area": "", + "displayOrder": 5 + } + ] + }, + { + "id": "OS_IN_IA", + "name": "Obstructed View", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IA", + "title": "", + "area": "", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "OS_OV", + "name": "Oceanview", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "OS_OV_OG", + "name": "Partial Oceanview", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "OG", + "title": "", + "area": "", + "displayOrder": 7 + } + ] + }, + { + "id": "OS_OV_OD", + "name": "Oceanview", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "OD", + "title": "", + "area": "", + "displayOrder": 8 + }, + { + "id": "OB", + "title": "", + "area": "", + "displayOrder": 9 + } + ] + }, + { + "id": "OS_OV_OA", + "name": "Midship Oceanview", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "OA", + "title": "", + "area": "", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "OS_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "OS_VN_VX", + "name": "Verandah", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VX", + "title": "", + "area": "", + "displayOrder": 11 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 12 + }, + { + "id": "VF", + "title": "", + "area": "", + "displayOrder": 13 + }, + { + "id": "VE", + "title": "", + "area": "", + "displayOrder": 14 + }, + { + "id": "VD", + "title": "", + "area": "", + "displayOrder": 15 + }, + { + "id": "VC", + "title": "", + "area": "", + "displayOrder": 16 + } + ] + }, + { + "id": "OS_VN_VB", + "name": "Midship Verandah", + "displayOrder": 17, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VB", + "title": "", + "area": "", + "displayOrder": 17 + }, + { + "id": "VA", + "title": "", + "area": "", + "displayOrder": 18 + } + ] + }, + { + "id": "OS_VN_VS", + "name": "Aft View Verandah", + "displayOrder": 19, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VS", + "title": "", + "area": "", + "displayOrder": 19 + } + ] + }, + { + "id": "OS_VN_V2", + "name": "Solo Verandah", + "displayOrder": 20, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "V2", + "title": "", + "area": "", + "displayOrder": 20 + }, + { + "id": "V1", + "title": "", + "area": "", + "displayOrder": 21 + } + ] + } + ] + }, + { + "id": "OS_VS", + "name": "Vista Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 22, + "categories": [ + { + "id": "OS_VS_TC", + "name": "Vista Suite", + "displayOrder": 22, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "TC", + "title": "", + "area": "", + "displayOrder": 22 + }, + { + "id": "TA", + "title": "", + "area": "", + "displayOrder": 23 + } + ] + }, + { + "id": "OS_VS_TS", + "name": "Aft View Vista Suite", + "displayOrder": 24, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "TS", + "title": "", + "area": "", + "displayOrder": 24 + } + ] + } + ] + }, + { + "id": "OS_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 25, + "categories": [ + { + "id": "OS_SS_GC", + "name": "Signature Suite", + "displayOrder": 25, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "GC", + "title": "", + "area": "", + "displayOrder": 25 + }, + { + "id": "GB", + "title": "", + "area": "", + "displayOrder": 26 + } + ] + }, + { + "id": "OS_SS_GA", + "name": "Midship Signature Suite", + "displayOrder": 27, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "GA", + "title": "", + "area": "", + "displayOrder": 27 + } + ] + } + ] + }, + { + "id": "OS_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 28, + "categories": [ + { + "id": "OS_NS_NC", + "name": "Neptune Suite", + "displayOrder": 28, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "NC", + "title": "", + "area": "", + "displayOrder": 28 + }, + { + "id": "NB", + "title": "", + "area": "", + "displayOrder": 29 + } + ] + }, + { + "id": "OS_NS_NA", + "name": "Midship Neptune Suite", + "displayOrder": 30, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "NA", + "title": "", + "area": "", + "displayOrder": 30 + } + ] + }, + { + "id": "OS_NS_NS", + "name": "Aft View Neptune Suite", + "displayOrder": 31, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "NS", + "title": "", + "area": "", + "displayOrder": 31 + } + ] + }, + { + "id": "OS_NS_PH", + "name": "Bridgeview Suite", + "displayOrder": 32, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PH", + "title": "", + "area": "", + "displayOrder": 32 + } + ] + }, + { + "id": "OS_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 33, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet and private stereo system, Microwave, refrigerator, pantry, Sofa bed for 2 persons", + "area": "Approximately 1,150 sq. ft. including verandah.", + "displayOrder": 33 + } + ] + } + ] + } + ], + "guests": "1964", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "0", + "id": "RN", + "name": "Rotterdam", + "detailPageName": "Rotterdam", + "rooms": [ + { + "id": "RN_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "RN_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "I", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + }, + { + "id": "J", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "RN_IN_SIN", + "name": "Spa Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "IQ", + "title": "Large or Standard: 2 lower beds convertible to 1 queen-size bed, Shower", + "area": "Approximately 143-225 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "RN_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "RN_OV_OV", + "name": "Ocean View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "C", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "D", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "E", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + }, + { + "id": "F", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "RN_OV_SOV", + "name": "Spa Ocean View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CQ", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "RN_OV_FOV", + "name": "Family Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "FB", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 5 + }, + { + "id": "FA", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 5 + } + ] + }, + { + "id": "RN_OV_SI", + "name": "Single", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "OO", + "title": "Family: 2 lower beds convertible to 1 queen-size bed, 1 sofa bed for 2 persons \u0026 1 upper bed, Family: 2 bathrooms - one with bathtub, shower, sink \u0026 toilet, one with shower \u0026 sink., Large: 2 lower beds convertible to 1 queen-size bed, Large: Shower, Single: 1 lower bed, Single: Shower", + "area": "Approximately 127-282 sq. ft.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "RN_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "RN_VN_OVN", + "name": "Obstructed Verandah", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VH", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + }, + { + "id": "RN_VN_VN", + "name": "Verandah", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "V", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "RN_VN_AVN", + "name": "Aft-View Verandah", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VS", + "title": "", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + }, + { + "id": "RN_VN_SVN", + "name": "Spa Verandah", + "displayOrder": 10, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VQ", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Floor-to-ceiling windows, All VH category staterooms have partial sea views", + "area": "Approximately 228-420 sq. ft. including verandah.", + "displayOrder": 10 + } + ] + } + ] + }, + { + "id": "RN_VS", + "name": "Vista Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 11, + "categories": [ + { + "id": "RN_VS_VS", + "name": "Vista Suite", + "displayOrder": 11, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "B", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "BC", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + }, + { + "id": "A", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 11 + } + ] + }, + { + "id": "RN_VS_AVS", + "name": "Aft-View Vista Suite", + "displayOrder": 12, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "AS", + "title": "2 lower beds convertible to 1 queen-size bed, Shower, Sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 260-356 sq. ft. including verandah.", + "displayOrder": 12 + } + ] + } + ] + }, + { + "id": "RN_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 13, + "categories": [ + { + "id": "RN_SS_SS", + "name": "Signature Suite", + "displayOrder": 13, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SY", + "title": "2 lower beds convertible to 1 king-size bed, 1 murphy bed for 1 person, 1 sofa bed for 1 person, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 393-400 sq. ft. including verandah.", + "displayOrder": 13 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 king-size bed, 1 murphy bed for 1 person, 1 sofa bed for 1 person, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Refrigerator, Floor-to-ceiling windows", + "area": "Approximately 393-400 sq. ft. including verandah.", + "displayOrder": 13 + } + ] + } + ] + }, + { + "id": "RN_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 14, + "categories": [ + { + "id": "RN_NS_NS", + "name": "Neptune Suite", + "displayOrder": 14, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 14 + } + ] + }, + { + "id": "RN_NS_NSS", + "name": "Neptune Spa Suite", + "displayOrder": 15, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SQ", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with dual-sink vanity, Full-size whirlpool bath \u0026 shower \u0026 additional shower stall, Large sitting area, Private verandah, Floor-to-ceiling windows", + "area": "Approximately 465-855 sq. ft. including verandah.", + "displayOrder": 15 + } + ] + }, + { + "id": "RN_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 16, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Oversize whirlpool bath \u0026 shower \u0026 additional shower stall, Living room, Dining room, Dressing room, Private verandah with whirlpool, Pantry, 1 sofa bed for 2 persons, Microwave, Refrigerator, Guest toilet, Private stereo system, Floor-to-ceiling windows", + "area": "Approximately 1,290 sq. ft. including verandah.", + "displayOrder": 16 + } + ] + } + ] + } + ], + "guests": "2668", + "crew": "", + "cabins": "", + "length": "975 ft.", + "width": "114.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 5, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "7", + "id": "UU", + "name": "Zuiderdam", + "detailPageName": "Zuiderdam", + "rooms": [ + { + "id": "UU_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "UU_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "UU_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "UU_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "UU_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + }, + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "UU_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "UU_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "UU_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "UU_VN_VN", + "name": "Verandah", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 6 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "UU_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "UU_SS_SS", + "name": "Signature Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "UU_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "UU_NS_NS", + "name": "Neptune Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "UU_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet and private stereo system, Microwave, refrigerator, pantry, Sofa bed for 2 persons", + "area": "Approximately 1,150 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + } + ], + "guests": "1964", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "7", + "id": "VO", + "name": "Volendam", + "detailPageName": "Volendam", + "rooms": [ + { + "id": "VO_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "VO_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "\"Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower, All L-, N- \u0026 NN-category staterooms also have 1 sofa bed \u0026 pullman upper, All M- \u0026 MM-category staterooms also have 1 sofa bed", + "area": "Approximately 182-293 sq. ft.", + "displayOrder": 1 + } + ] + } + ] + }, + { + "id": "VO_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 2, + "categories": [ + { + "id": "VO_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 2 + } + ] + }, + { + "id": "VO_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "VO_OV_PH", + "name": "Port Hole", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "VO_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "EE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + }, + { + "id": "FF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, All FF-category staterooms also have 1 sofa bed \u0026 pullman upper., Category includes rooms with full, porthole, partial and obstructed views.", + "area": "Approximately 140-319 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "VO_LA", + "name": "Lanai", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "VO_LA_LA", + "name": "Lanai", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "CA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Sliding glass doors lead to Lower Promenade Deck", + "area": "Approximately 196-240 sq. ft.", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "VO_VS", + "name": "Vista Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "VO_VS_VS", + "name": "Vista Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "B", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "AA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "A", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "BB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "BC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area, No-host mini-bar, refrigerator, All A-category staterooms also have 1 sofa bed", + "area": "Approximately 297-379 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "VO_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "VO_NS_NS", + "name": "Neptune Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SB", + "title": "", + "area": "", + "displayOrder": 8 + }, + { + "id": "SA", + "title": "", + "area": "", + "displayOrder": 8 + } + ] + }, + { + "id": "VO_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Oversize whirlpool bath \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Living room, dining room, dressing room, private verandah, pantry, guest toilet, No-host mini-bar, refrigerator, Sofa bed for 2 persons", + "area": "Approximately 1,296 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + } + ], + "guests": "1432", + "crew": "", + "cabins": "", + "length": "781 ft.", + "width": "105.8 ft.", + "speed": "23 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Dolphin", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + }, + { + "shipVersion": "8", + "id": "WE", + "name": "Westerdam", + "detailPageName": "Westerdam", + "rooms": [ + { + "id": "WE_IN", + "name": "Inside", + "shortDescription": "", + "longDescription": "", + "displayOrder": 1, + "categories": [ + { + "id": "WE_IN_IN", + "name": "Inside", + "displayOrder": 1, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "MM", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "L", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "K", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "I", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "M", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + }, + { + "id": "N", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 1 + } + ] + }, + { + "id": "WE_IN_LIN", + "name": "Large Inside", + "displayOrder": 2, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "J", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with shower", + "area": "Approximately 151-233 sq. ft.", + "displayOrder": 2 + } + ] + } + ] + }, + { + "id": "WE_OV", + "name": "Ocean View", + "shortDescription": "", + "longDescription": "", + "displayOrder": 3, + "categories": [ + { + "id": "WE_OV_FOV", + "name": "Fully Obstructed View", + "displayOrder": 3, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "H", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + }, + { + "id": "HH", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 3 + } + ] + }, + { + "id": "WE_OV_PSV", + "name": "Partial Sea View", + "displayOrder": 4, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "G", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 4 + } + ] + }, + { + "id": "WE_OV_OV", + "name": "Ocean View", + "displayOrder": 5, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "E", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "D", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "DD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "F", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + }, + { + "id": "C", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Category includes rooms with full, partial and obstructed views.", + "area": "Approximately 174-180 sq. ft.", + "displayOrder": 5 + } + ] + } + ] + }, + { + "id": "WE_VN", + "name": "Verandah", + "shortDescription": "", + "longDescription": "", + "displayOrder": 6, + "categories": [ + { + "id": "WE_VN_VN", + "name": "Verandah", + "displayOrder": 6, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "VE", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VA", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VB", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VC", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VD", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VF", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with bathtub \u0026 shower, Floor-to-ceiling windows, with full ocean views, Private verandah, Sitting area", + "area": "Approximately 212-359 sq. ft. including verandah.", + "displayOrder": 6 + }, + { + "id": "VH", + "title": "", + "area": "", + "displayOrder": 6 + } + ] + } + ] + }, + { + "id": "WE_SS", + "name": "Signature Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 7, + "categories": [ + { + "id": "WE_SS_SS", + "name": "Signature Suite", + "displayOrder": 7, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SZ", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SY", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + }, + { + "id": "SS", + "title": "2 lower beds convertible to 1 queen-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, Sofa bed for 1 person", + "area": "Approximately 372-384 sq. ft. including verandah.", + "displayOrder": 7 + } + ] + } + ] + }, + { + "id": "WE_NS", + "name": "Neptune Suite", + "shortDescription": "", + "longDescription": "", + "displayOrder": 8, + "categories": [ + { + "id": "WE_NS_NS", + "name": "Neptune Suite", + "displayOrder": 8, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "SC", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SB", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + }, + { + "id": "SA", + "title": "2 lower beds convertible to 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with additional shower stall and dual sink vanity, Floor-to-ceiling windows, with full ocean views, Private verandah, Large sitting area, dressing room, Sofa bed for 2 persons", + "area": "Approximately 500-712 sq. ft. including verandah.", + "displayOrder": 8 + } + ] + }, + { + "id": "WE_NS_PS", + "name": "Pinnacle Suite", + "displayOrder": 9, + "shortDescription": "", + "longDescription": "", + "amenities": [], + "area": "", + "subCategories": [ + { + "id": "PS", + "title": "Bedroom with 1 king-size bed, Bathroom with whirlpool bath \u0026 shower with an additional shower stall, Floor-to-ceiling windows, with full ocean views, Private verandah with whirlpool, Living room, dining room, dressing room, guest toilet and private stereo system, Microwave, refrigerator, pantry, Sofa bed for 2 persons", + "area": "Approximately 1,150 sq. ft. including verandah.", + "displayOrder": 9 + } + ] + } + ] + } + ], + "guests": "1916", + "crew": "", + "cabins": "", + "length": "936 ft.", + "width": "105.8 ft.", + "speed": "24 kt.", + "dedicationDate": "", + "buildDate": "", + "remodelDate": "", + "dedicatedBy": "", + "maxGuests": 4, + "shortDescription": "", + "longDescription": "", + "status": "active", + "deck": [ + { + "id": 1, + "title": "Main", + "description": "", + "features": [] + }, + { + "id": 2, + "title": "Lower Promenade", + "description": "", + "features": [] + }, + { + "id": 3, + "title": "Promenade", + "description": "", + "features": [] + }, + { + "id": 4, + "title": "Upper Promenade", + "description": "", + "features": [] + }, + { + "id": 5, + "title": "Verandah", + "description": "", + "features": [] + }, + { + "id": 6, + "title": "Rotterdam", + "description": "", + "features": [] + }, + { + "id": 7, + "title": "Navigation", + "description": "", + "features": [] + }, + { + "id": 8, + "title": "Lido", + "description": "", + "features": [] + }, + { + "id": 9, + "title": "Sports", + "description": "", + "features": [] + }, + { + "id": 10, + "title": "Sky", + "description": "", + "features": [] + }, + { + "id": 11, + "title": "Observation", + "description": "", + "features": [] + } + ], + "section": [ + { + "id": "A", + "title": "Aft", + "description": "" + }, + { + "id": "M", + "title": "Mid", + "description": "" + }, + { + "id": "F", + "title": "Fwd", + "description": "" + } + ] + } +] diff --git a/styles/styles.css b/styles/styles.css index 898d83c..890a206 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -38,6 +38,20 @@ --cta-color: var(--accent-color); --cta-hover-color: var(--accent-hover-color); + /* HAL palette (consumed by cruise-ships / find-a-cruise / hero-search blocks) */ + --hal-navy: #1d3557; + --hal-navy-dark: #0f1f3d; + --hal-navy-light: #2a4a7f; + --hal-gold: #c9a84c; + --hal-blue: #1976d2; + --hal-blue-light: #e3f2fd; + --hal-gray-100: #f1f3f5; + --hal-gray-200: #e9ecef; + --hal-gray-300: #dee2e6; + --hal-gray-500: #adb5bd; + --hal-gray-700: #495057; + --hal-gray-900: #212529; + /* fonts */ --body-font-family: quasimoda, roboto, roboto-fallback, sans-serif; --heading-font-family: quasimoda, roboto, roboto-fallback, sans-serif;