scrapemyferry 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/bin/scrapemyferry.js +0 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +90 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +18 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/index.d.ts +3 -0
  11. package/dist/lib/index.d.ts.map +1 -0
  12. package/dist/lib/index.js +7 -0
  13. package/dist/lib/index.js.map +1 -0
  14. package/dist/lib/setup.d.ts +2 -0
  15. package/dist/lib/setup.d.ts.map +1 -0
  16. package/dist/lib/setup.js +13 -0
  17. package/dist/lib/setup.js.map +1 -0
  18. package/dist/lib/sources/bcf/config.d.ts +7 -0
  19. package/dist/lib/sources/bcf/config.d.ts.map +1 -0
  20. package/dist/lib/sources/bcf/config.js +10 -0
  21. package/dist/lib/sources/bcf/config.js.map +1 -0
  22. package/dist/lib/sources/bcf/currentConditions.d.ts +3 -0
  23. package/dist/lib/sources/bcf/currentConditions.d.ts.map +1 -0
  24. package/dist/lib/sources/bcf/currentConditions.js +113 -0
  25. package/dist/lib/sources/bcf/currentConditions.js.map +1 -0
  26. package/dist/lib/sources/bcf/dailySchedule.d.ts +3 -0
  27. package/dist/lib/sources/bcf/dailySchedule.d.ts.map +1 -0
  28. package/dist/lib/sources/bcf/dailySchedule.js +43 -0
  29. package/dist/lib/sources/bcf/dailySchedule.js.map +1 -0
  30. package/dist/lib/sources/bcf/departures.d.ts +3 -0
  31. package/dist/lib/sources/bcf/departures.d.ts.map +1 -0
  32. package/dist/lib/sources/bcf/departures.js +101 -0
  33. package/dist/lib/sources/bcf/departures.js.map +1 -0
  34. package/dist/lib/sources/bcf/index.d.ts +8 -0
  35. package/dist/lib/sources/bcf/index.d.ts.map +1 -0
  36. package/dist/lib/sources/bcf/index.js +18 -0
  37. package/dist/lib/sources/bcf/index.js.map +1 -0
  38. package/dist/lib/sources/bcf/routes.d.ts +3 -0
  39. package/dist/lib/sources/bcf/routes.d.ts.map +1 -0
  40. package/dist/lib/sources/bcf/routes.js +93 -0
  41. package/dist/lib/sources/bcf/routes.js.map +1 -0
  42. package/dist/lib/sources/bcf/sailing.d.ts +3 -0
  43. package/dist/lib/sources/bcf/sailing.d.ts.map +1 -0
  44. package/dist/lib/sources/bcf/sailing.js +60 -0
  45. package/dist/lib/sources/bcf/sailing.js.map +1 -0
  46. package/dist/lib/sources/bcf/seasonalSchedule.d.ts +3 -0
  47. package/dist/lib/sources/bcf/seasonalSchedule.d.ts.map +1 -0
  48. package/dist/lib/sources/bcf/seasonalSchedule.js +76 -0
  49. package/dist/lib/sources/bcf/seasonalSchedule.js.map +1 -0
  50. package/dist/lib/sources/bcf/tests/config.test.d.ts +2 -0
  51. package/dist/lib/sources/bcf/tests/config.test.d.ts.map +1 -0
  52. package/dist/lib/sources/bcf/tests/config.test.js +24 -0
  53. package/dist/lib/sources/bcf/tests/config.test.js.map +1 -0
  54. package/dist/lib/sources/bcf/tests/currentConditions.live.test.d.ts +2 -0
  55. package/dist/lib/sources/bcf/tests/currentConditions.live.test.d.ts.map +1 -0
  56. package/dist/lib/sources/bcf/tests/currentConditions.live.test.js +26 -0
  57. package/dist/lib/sources/bcf/tests/currentConditions.live.test.js.map +1 -0
  58. package/dist/lib/sources/bcf/tests/currentConditions.test.d.ts +2 -0
  59. package/dist/lib/sources/bcf/tests/currentConditions.test.d.ts.map +1 -0
  60. package/dist/lib/sources/bcf/tests/currentConditions.test.js +169 -0
  61. package/dist/lib/sources/bcf/tests/currentConditions.test.js.map +1 -0
  62. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.d.ts +2 -0
  63. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.d.ts.map +1 -0
  64. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.js +19 -0
  65. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.js.map +1 -0
  66. package/dist/lib/sources/bcf/tests/dailySchedule.test.d.ts +2 -0
  67. package/dist/lib/sources/bcf/tests/dailySchedule.test.d.ts.map +1 -0
  68. package/dist/lib/sources/bcf/tests/dailySchedule.test.js +76 -0
  69. package/dist/lib/sources/bcf/tests/dailySchedule.test.js.map +1 -0
  70. package/dist/lib/sources/bcf/tests/departures.live.test.d.ts +2 -0
  71. package/dist/lib/sources/bcf/tests/departures.live.test.d.ts.map +1 -0
  72. package/dist/lib/sources/bcf/tests/departures.live.test.js +25 -0
  73. package/dist/lib/sources/bcf/tests/departures.live.test.js.map +1 -0
  74. package/dist/lib/sources/bcf/tests/departures.test.d.ts +2 -0
  75. package/dist/lib/sources/bcf/tests/departures.test.d.ts.map +1 -0
  76. package/dist/lib/sources/bcf/tests/departures.test.js +408 -0
  77. package/dist/lib/sources/bcf/tests/departures.test.js.map +1 -0
  78. package/dist/lib/sources/bcf/tests/fixtures/availability.json +1 -0
  79. package/dist/lib/sources/bcf/tests/fixtures/current-conditions/departures.json +1 -0
  80. package/dist/lib/sources/bcf/tests/fixtures/current-conditions.json +1 -0
  81. package/dist/lib/sources/bcf/tests/fixtures/routes-fares/schedules/daily.json +1 -0
  82. package/dist/lib/sources/bcf/tests/fixtures/routes-fares/schedules/seasonal.json +1 -0
  83. package/dist/lib/sources/bcf/tests/fixtures/routes-fares/schedules.json +1 -0
  84. package/dist/lib/sources/bcf/tests/routes.live.test.d.ts +2 -0
  85. package/dist/lib/sources/bcf/tests/routes.live.test.d.ts.map +1 -0
  86. package/dist/lib/sources/bcf/tests/routes.live.test.js +28 -0
  87. package/dist/lib/sources/bcf/tests/routes.live.test.js.map +1 -0
  88. package/dist/lib/sources/bcf/tests/routes.test.d.ts +2 -0
  89. package/dist/lib/sources/bcf/tests/routes.test.d.ts.map +1 -0
  90. package/dist/lib/sources/bcf/tests/routes.test.js +363 -0
  91. package/dist/lib/sources/bcf/tests/routes.test.js.map +1 -0
  92. package/dist/lib/sources/bcf/tests/sailing.live.test.d.ts +2 -0
  93. package/dist/lib/sources/bcf/tests/sailing.live.test.d.ts.map +1 -0
  94. package/dist/lib/sources/bcf/tests/sailing.live.test.js +25 -0
  95. package/dist/lib/sources/bcf/tests/sailing.live.test.js.map +1 -0
  96. package/dist/lib/sources/bcf/tests/sailing.test.d.ts +2 -0
  97. package/dist/lib/sources/bcf/tests/sailing.test.d.ts.map +1 -0
  98. package/dist/lib/sources/bcf/tests/sailing.test.js +53 -0
  99. package/dist/lib/sources/bcf/tests/sailing.test.js.map +1 -0
  100. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.d.ts +2 -0
  101. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.d.ts.map +1 -0
  102. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.js +22 -0
  103. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.js.map +1 -0
  104. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.d.ts +2 -0
  105. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.d.ts.map +1 -0
  106. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.js +403 -0
  107. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.js.map +1 -0
  108. package/dist/lib/sources/bcf/tests/urls.test.d.ts +2 -0
  109. package/dist/lib/sources/bcf/tests/urls.test.d.ts.map +1 -0
  110. package/dist/lib/sources/bcf/tests/urls.test.js +69 -0
  111. package/dist/lib/sources/bcf/tests/urls.test.js.map +1 -0
  112. package/dist/lib/sources/bcf/tests/utils.test.d.ts +2 -0
  113. package/dist/lib/sources/bcf/tests/utils.test.d.ts.map +1 -0
  114. package/dist/lib/sources/bcf/tests/utils.test.js +79 -0
  115. package/dist/lib/sources/bcf/tests/utils.test.js.map +1 -0
  116. package/dist/lib/sources/bcf/urls.d.ts +11 -0
  117. package/dist/lib/sources/bcf/urls.d.ts.map +1 -0
  118. package/dist/lib/sources/bcf/urls.js +68 -0
  119. package/dist/lib/sources/bcf/urls.js.map +1 -0
  120. package/dist/lib/sources/bcf/utils.d.ts +6 -0
  121. package/dist/lib/sources/bcf/utils.d.ts.map +1 -0
  122. package/dist/lib/sources/bcf/utils.js +47 -0
  123. package/dist/lib/sources/bcf/utils.js.map +1 -0
  124. package/dist/lib/sources/index.d.ts +2 -0
  125. package/dist/lib/sources/index.d.ts.map +1 -0
  126. package/dist/lib/sources/index.js +6 -0
  127. package/dist/lib/sources/index.js.map +1 -0
  128. package/dist/lib/sources/source.d.ts +3 -0
  129. package/dist/lib/sources/source.d.ts.map +1 -0
  130. package/dist/lib/sources/source.js +34 -0
  131. package/dist/lib/sources/source.js.map +1 -0
  132. package/dist/lib/sources/types.d.ts +111 -0
  133. package/dist/lib/sources/types.d.ts.map +1 -0
  134. package/dist/lib/sources/types.js +3 -0
  135. package/dist/lib/sources/types.js.map +1 -0
  136. package/dist/lib/test/jest-conditional.d.ts +11 -0
  137. package/dist/lib/test/jest-conditional.d.ts.map +1 -0
  138. package/dist/lib/test/jest-conditional.js +22 -0
  139. package/dist/lib/test/jest-conditional.js.map +1 -0
  140. package/dist/lib/test/setup-jest-env.d.ts +2 -0
  141. package/dist/lib/test/setup-jest-env.d.ts.map +1 -0
  142. package/dist/lib/test/setup-jest-env.js +30 -0
  143. package/dist/lib/test/setup-jest-env.js.map +1 -0
  144. package/dist/lib/test/setup-jest-global.d.ts +2 -0
  145. package/dist/lib/test/setup-jest-global.d.ts.map +1 -0
  146. package/dist/lib/test/setup-jest-global.js +7 -0
  147. package/dist/lib/test/setup-jest-global.js.map +1 -0
  148. package/dist/lib/test/setup-jest.d.ts +2 -0
  149. package/dist/lib/test/setup-jest.d.ts.map +1 -0
  150. package/dist/lib/test/setup-jest.js +5 -0
  151. package/dist/lib/test/setup-jest.js.map +1 -0
  152. package/package.json +13 -12
@@ -0,0 +1 @@
1
+ "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <!-- Matomo header -->\n<script type=\"text/javascript\">\n function isIE(){ua=navigator.userAgent; var is_ie=ua.indexOf(\"MSIE \") > -1 || ua.indexOf(\"Trident/\") > -1; return is_ie;}if(window.location.origin.toLowerCase().indexOf(\"e.\")===-1){if (!isIE()){var _mtm=_mtm || [];_mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://mtm.bcferries.com/js/container_hLWMAkCe.js'; s.parentNode.insertBefore(g,s);}else{window.location.replace(\"https://mtm.bcferries.com/_msg/update-your-browser/\");}}\n</script>\n<!-- End Matomo header -->\n<title>\n\t\tSchedules | BC Ferries</title>\n\n <meta name=\"viewport\" content=\"width=device-width, viewport-fit=cover, initial-scale=1, maximum-scale=1, user-scalable=no\">\n\n\t<meta name=\"description\">\n<meta name=\"robots\" content=\"index,follow\">\n\n\n\n\n\n\n\n <link rel=\"canonical\" href=\"https://www.bcferries.com/routes-fares/schedules\" />\n <meta name=\"viewport\" content=\"width=device-width\">\n <meta name=\"title\" content=\"Schedules | BC Ferries\">\n \n \n \n<link rel=\"shortcut icon\" type=\"image/x-icon\" media=\"all\" href=\"/_ui/responsive/theme-alpha/images/favicon.ico\" />\n\n\t<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/animate.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/bootstrap.min.css\"/>\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/bootstrap-theme.css\"/>\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/custom-components-ui.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/owl.carousel.min.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/owl.theme.default.min.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/fontawesome-all.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/flaticon.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/bootstrap-select.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/dataTables.bootstrap.min.css\" />\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/stylesheet.min.css\" />\n\t<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/responsive/theme-bcf/css/font.css\" />\n<link rel=\"icon\" href=\"/_ui/responsive/theme-bcf/images/favicon.ico\" type=\"image/ico\" sizes=\"16x16\">\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/addons/bcfassistedservicesstorefront/responsive/common/css/bcfassistedservicesstorefront.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/addons/bcfassistedservicesstorefront/responsive/common/css/storeFinder.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"/_ui/addons/smarteditaddon/responsive/common/css/smarteditaddon.css\" />\n\n\n\n\n\n\n\n\n\n\n\n\n</head>\n\n<body class=\"page-schedulesLanding pageType-ContentPage template-pages-addon--bcfcommonsaddon-pages-schedules-scheduleLandingPage pageLabel--routes-fares-schedules smartedit-page-uid-schedulesLanding smartedit-page-uuid-eyJpdGVtSWQiOiJzY2hlZHVsZXNMYW5kaW5nIiwiY2F0YWxvZ0lkIjoiY29ycG9yYXRlQ29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9 smartedit-catalog-version-uuid-corporateContentCatalog/Online language-en\">\n <!-- Matomo body -->\n<noscript>\n \n</noscript>\n<!-- End Matomo body -->\n<div id=\"currentPage\" class=\"hidden\">schedulesLanding</div>\n\t<main class=\"page-margin\"\n\t\t\tdata-currency-iso-code=\"CAD\">\n\t\t\t<section class=\"yCmsContentSlot\">\n<header class=\"header-region\">\n <nav class=\"navbar navbar-default navbar-static-top menu-mega-ui\" id=\"js_navbar_menu\">\n <div class=\"container\">\n <div class=\"navbar-header \">\n <div class=\"col-xs-4 col-md-2 text-left hidden-lg\">\n <a class=\"navbar-toggle\" data-toggle=\"collapse\"\n data-target=\".js-navbar-collapse\"> <span class=\"sr-only\">Toggle\n navigation</span>\n <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n <span class=\"mobile-menu-link\">Menu</span>\n </a>\n <div class=\"close-menu responsive-adjustment\">\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"col-xs-4 col-sm-6 col-md-2 col-lg-12 buffer-left-none buffer-right-none text-center\">\n <a class=\"navbar-brand\" href=\"/\"><img title=\"Home\"\n\t\t\t\talt=\"Home\" src=\"https://www.bcferries.com/web_image/images/hfc/h82/8821728313374.png\"></a>\n\t\t</div>\n <div class=\"col-xs-4 col-sm-2 hidden-md hidden-lg\">\n <a class=\"text-center myAcount-data\"\n href=\"/my-account\"> <span\n class=\"sr-only\">Toggle navigation</span> <span\n class=\"bcf bcf-icon-account header-login-icon\"></span>\n <span class=\"mobile-login-user-link\">\n <a href=\"/login\" class=\"mobile-menu-link\" >Login</a></span>\n </a>\n </div>\n <div class=\"hidden-xs hidden-sm col-md-8 hidden-lg\">\n <ul\n class=\"collapse-sailling link-none sec-nav fnt-14 sec-nav-tablet\">\n <li><a href=\"/current-conditions/service-notices\" class=\"mobile-menu-link\" >Service notices&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li><a href=\"/routes-fares/schedules\" class=\"mobile-menu-link\" >Schedules&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li><a href=\"/RouteSelectionPage\" class=\"mobile-menu-link\" >Book now&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li><a href=\"/login\" class=\"mobile-menu-link\" >Login</a></li>\n <li class=\"dropdown top-dropdown-menu\">\n <div>\n <a href=\"#\"\n class=\"dropdown-toggle current-conditions full-width-mobile display-inline mobile-menu-link\"\n type=\"button \" data-toggle=\"dropdown\">Current conditions&nbsp;\n <span class=\"down-a display-none-desktop cc-menu-arrow-adjust-mobile\">\n <span class=\"bcf bcf-icon-down-arrow\"></span>\n </span>\n <span class=\"bcf bcf-icon-down-arrow display-none-mobile\"></span>\n </a>\n <ul class=\"dropdown-menu current-conditions-dropdown\">\n <li>\n <a href=\"/current-conditions\" class=\"mobile-menu-link text-align-left p-15-desktop\">Conditions by route&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/departures\" class=\"mobile-menu-link text-align-left p-15-desktop\">Departures & arrivals&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/busy-terminals\" class=\"mobile-menu-link text-align-left p-15-desktop\">Major terminal status&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/webcams\" class=\"mobile-menu-link text-align-left p-15-desktop\">Terminal webcams&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/vessel-tracking-positions\" class=\"mobile-menu-link border-none text-align-left p-15-desktop\">Ferry tracking&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"collapse navbar-collapse js-navbar-collapse\">\n <ul class=\"collapse-sailling link-none sec-nav fnt-14 hidden-md \">\n <li>\n <a href=\"/current-conditions/service-notices\" class=\"mobile-menu-link\" >Service notices&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/routes-fares/schedules\" class=\"mobile-menu-link\" >Schedules&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/RouteSelectionPage\" class=\"mobile-menu-link\" >Book now&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/login\" class=\"mobile-menu-link\" >Login</a></li>\n <li class=\"dropdown top-dropdown-menu\">\n <div>\n <a href=\"#\"\n class=\"dropdown-toggle current-conditions full-width-mobile display-inline mobile-menu-link\"\n type=\"button \" data-toggle=\"dropdown\">Current conditions&nbsp;\n <span class=\"down-a display-none-desktop cc-menu-arrow-adjust-mobile\">\n <span class=\"bcf bcf-icon-down-arrow\"></span>\n </span>\n <span class=\"bcf bcf-icon-down-arrow display-none-mobile\"></span>\n </a>\n <ul class=\"dropdown-menu current-conditions-dropdown\">\n <li>\n <a href=\"/current-conditions\" class=\"mobile-menu-link text-align-left p-15-desktop\">Conditions by route&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/departures\" class=\"mobile-menu-link text-align-left p-15-desktop\">Departures & arrivals&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/busy-terminals\" class=\"mobile-menu-link text-align-left p-15-desktop\">Major terminal status&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/webcams\" class=\"mobile-menu-link text-align-left p-15-desktop\">Terminal webcams&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n <li>\n <a href=\"/current-conditions/vessel-tracking-positions\" class=\"mobile-menu-link border-none text-align-left p-15-desktop\">Ferry tracking&nbsp;<i class=\"fa fa-angle-right\"></i></a></li>\n </ul>\n </div>\n </li>\n </ul>\n <ul class=\"nav navbar-nav navbar-right mob-navigation \">\n <li\n class=\"dropdown mega-dropdown dropdown-masked menu-1\">\n <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n Routes & fares<span class=\"down-a\"> <i\n class=\"bcf bcf-icon-down-arrow\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</span>\n </a>\n <ul class=\"dropdown-menu mega-dropdown-menu\"\n data-panel='menu-1'>\n <li>\n <ul class=\"container list-unstyled m-auto\">\n <li class=\"col-sm-4 padding-left-0 icon-manage navigator\">\n <h2>Routes & fares</h2>\n <p>New fares are now available on routes between Metro Vancouver and Vancouver Island to provide more value, choice and certainty.</p> <div class=\"navigation-mob-link-n\">\n <a href=\"/newfares\" >Learn more&nbsp;<i class=\"fa fa-angle-right\"></i></a></div>\n </li>\n\n <li class=\"col-sm-3 nav-value padding-0 navigator\">\n <ul>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/discover-route-map\" >Routes</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/ferry-fares\" >Fare & fee information</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/newfares\" >New fare choices</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/ferry-fares/experience-card\" >Experience Card</a></li>\n <li class=\"navigator deals-menu\"><a href=\"https://www.bcferries.com/routes-fares/ferry-fares/assured-loading-card\" >Assured Loading Card</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/fare-calculator\" >Fare calculator</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/travel-gift-certificates\" >Gift certificates</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/schedules\" >Schedules</a></li>\n </ul>\n </li>\n <li class=\"col-sm-5 padding-right-0 mob-img-box\">\n <ul>\n <li>\n <div class=\"menu-image-box navigator\">\n <a href=\"\"> <img class='img-fluid js-responsive-image'\n alt=''\n title=''\n data-media='{\"1\":\"https://www.bcferries.com/web_image/ha7/hf4/9025505329182.jpg\"}'/>\n </a>\n <div class=\"navigation-img\">\n <p class=\"text-dark-blue\"><p><b>Travel tips</b></p>\n</p>\n <p class=\"m-0\">\n <b><a href=\"https://www.bcferries.com/travel-boarding/travel-tips\" >Learn more&nbsp;<i class=\"fa fa-angle-right\"></i></a></b>\n </p>\n </div>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n\n </li>\n <li\n class=\"dropdown mega-dropdown dropdown-masked menu-2\">\n <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n Book sailings<span class=\"down-a\"> <i\n class=\"bcf bcf-icon-down-arrow\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</span>\n </a>\n <ul class=\"dropdown-menu mega-dropdown-menu\"\n data-panel='menu-2'>\n <li>\n <ul class=\"container list-unstyled m-auto\">\n <li class=\"col-sm-4 padding-left-0 icon-manage navigator\">\n <h2>Book sailings</h2>\n <p>Information to help plan and make personal, group, commercial, and travel agent bookings.</p> <div class=\"navigation-mob-link-n\">\n <a href=\"/book-sailings\" >Find out more&nbsp;<i class=\"fa fa-angle-right\"></i></a></div>\n </li>\n\n <li class=\"col-sm-3 nav-value padding-0 navigator\">\n <ul>\n <li class=\"navigator deals-menu\"><a href=\"/RouteSelectionPage\" >Book now</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/book-sailings/personal-travel\" >Personal</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/book-sailings/business-account-commercial-travel-services\" >Commercial </a></li>\n <li class=\"navigator deals-menu\"><a href=\"/book-sailings/group-bookings\" >Group </a></li>\n <li class=\"navigator deals-menu\"><a href=\"/book-sailings/travel-agents-and-tour-operators\" >Travel agents & tours</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/routes-fares/schedules\" >Schedules</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/allocating-space-on-board\" >Bookable deck space</a></li>\n </ul>\n </li>\n <li class=\"col-sm-5 padding-right-0 mob-img-box\">\n <ul>\n <li>\n <div class=\"menu-image-box navigator\">\n <a href=\"\"> <img class='img-fluid js-responsive-image'\n alt='BC Ferries App'\n title='BC Ferries App'\n data-media='{\"1\":\"https://www.bcferries.com/web_image/hdf/h28/8932230397982.jpg\"}'/>\n </a>\n <div class=\"navigation-img\">\n <p class=\"text-dark-blue\"><b>Download the BC Ferries app</b></p>\n <p class=\"m-0\">\n <b><a href=\"https://www.bcferries.com/app\" >Learn more&nbsp;<i class=\"fa fa-angle-right\"></i></a></b>\n </p>\n </div>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n\n </li>\n <li\n class=\"dropdown mega-dropdown dropdown-masked menu-3\">\n <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n Travel & boarding<span class=\"down-a\"> <i\n class=\"bcf bcf-icon-down-arrow\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</span>\n </a>\n <ul class=\"dropdown-menu mega-dropdown-menu\"\n data-panel='menu-3'>\n <li>\n <ul class=\"container list-unstyled m-auto\">\n <li class=\"col-sm-4 padding-left-0 icon-manage navigator\">\n <h2>Travel & boarding</h2>\n <p>Directions, transit options, and important check-in and boarding information for foot passengers and drivers.</p> <div class=\"navigation-mob-link-n\">\n <a href=\"/travel-boarding\" >Find out more&nbsp;<i class=\"fa fa-angle-right\"></i></a></div>\n </li>\n\n <li class=\"col-sm-3 nav-value padding-0 navigator\">\n <ul>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/travel-tips\" >Travel tips</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/terminal-directions-parking-food\" >Terminals</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/coach-bus-shuttle\" >Public transportation, bus & coach</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/foot-passenger-check-in\" >Foot passengers</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/cyclists\" >Bicycles</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/travel-vehicle-car-truck\" >Drivers</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/travel-with-pets\" >Travelling with pets</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/baggage-luggage\" >Boarding with luggage</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/livestock-transport\" >Livestock</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/travel-boarding/dangerous-goods\" >Dangerous goods</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/accessibility\" >Accessibility</a></li>\n </ul>\n </li>\n <li class=\"col-sm-5 padding-right-0 mob-img-box\">\n <ul>\n <li>\n <div class=\"menu-image-box navigator\">\n <a href=\"\"> <img class='img-fluid js-responsive-image'\n alt='BC Ferries App'\n title='BC Ferries App'\n data-media='{\"1\":\"https://www.bcferries.com/web_image/hdf/h28/8932230397982.jpg\"}'/>\n </a>\n <div class=\"navigation-img\">\n <p class=\"text-dark-blue\"><font color=\"#003366\"><b>Download the BC Ferries app</b></font></p>\n <p class=\"m-0\">\n <b><a href=\"https://www.bcferries.com/app\" >Learn more&nbsp;<i class=\"fa fa-angle-right\"></i></a></b>\n </p>\n </div>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n\n </li>\n <li\n class=\"dropdown mega-dropdown dropdown-masked menu-4\">\n <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n On the ferry<span class=\"down-a\"> <i\n class=\"bcf bcf-icon-down-arrow\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</span>\n </a>\n <ul class=\"dropdown-menu mega-dropdown-menu\"\n data-panel='menu-4'>\n <li>\n <ul class=\"container list-unstyled m-auto\">\n <li class=\"col-sm-4 padding-left-0 icon-manage navigator\">\n <h2>On the ferry</h2>\n <p>Welcome aboard. Explore our fleet for information on safety, accessibility, dining, shopping, and more on our ferries.</p> <div class=\"navigation-mob-link-n\">\n <a href=\"/on-the-ferry\" >Find out more&nbsp;<i class=\"fa fa-angle-right\"></i></a></div>\n </li>\n\n <li class=\"col-sm-3 nav-value padding-0 navigator\">\n <ul>\n <li class=\"navigator deals-menu\"><a href=\"/on-the-ferry/our-fleet\" >Fleet</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/on-the-ferry/eat-shop-relax\" >Eat, shop & relax</a></li>\n </ul>\n </li>\n <li class=\"col-sm-5 padding-right-0 mob-img-box\">\n <ul>\n <li>\n <div class=\"menu-image-box navigator\">\n <a href=\"\"> <img class='img-fluid js-responsive-image'\n alt=''\n title=''\n data-media='{\"1\":\"https://www.bcferries.com/web_image/ha7/hf4/9025505329182.jpg\"}'/>\n </a>\n <div class=\"navigation-img\">\n <p class=\"text-dark-blue\"><p><strong>Travel tips</strong></p>\n</p>\n <p class=\"m-0\">\n <b><a href=\"https://www.bcferries.com/travel-boarding/travel-tips\" >Learn more&nbsp;<i class=\"fa fa-angle-right\"></i></a></b>\n </p>\n </div>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n\n </li>\n <li\n class=\"dropdown mega-dropdown dropdown-masked menu-5\">\n <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n Deals & offers<span class=\"down-a\"> <i\n class=\"bcf bcf-icon-down-arrow\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</span>\n </a>\n <ul class=\"dropdown-menu mega-dropdown-menu\"\n data-panel='menu-5'>\n <li>\n <ul class=\"container list-unstyled m-auto\">\n <li class=\"col-sm-4 padding-left-0 icon-manage navigator\">\n <h2>Deals & offers</h2>\n <p>Take advantage of our latest onboard, sailing and vacation package promotions. We've got the perfect deal for you.</p> <div class=\"navigation-mob-link-n\">\n <a href=\"/deals-special-offers\" >Find out more&nbsp;<i class=\"fa fa-angle-right\"></i></a></div>\n </li>\n\n <li class=\"col-sm-3 nav-value padding-0 navigator\">\n <ul>\n <li class=\"navigator deals-menu\"><a href=\"/deals-special-offers/sailing-specials\" >Sailing specials</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/deals-special-offers/onboard-offers\" >Onboard offers</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/promotions\" >Vacation deals</a></li>\n <li class=\"navigator deals-menu\"><a href=\"https://www.bcferries.com/routes-fares/travel-gift-certificates\" >Gift certificates</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/deals-special-offers/onboard-enewsletter\" >Sign up for offers</a></li>\n </ul>\n </li>\n <li class=\"col-sm-5 padding-right-0 mob-img-box\">\n <ul>\n <li>\n <div class=\"menu-image-box navigator\">\n <a href=\"\"> <img class='img-fluid js-responsive-image'\n alt='People hugging on BC Ferries outer deck'\n title='People hugging on BC Ferries outer deck'\n data-media='{\"1\":\"https://www.bcferries.com/web_image/hc6/ha2/8873300361246.jpg\"}'/>\n </a>\n <div class=\"navigation-img\">\n <p class=\"text-dark-blue\"><p><b>Romantic Retreats with a 3rd night FREE</b></p>\n\n<p>Whisk your special someone away on a romantic getaway to Vancouver Island, Galiano Island or the Sunshine Coast. Book by Mar 14.</p>\n</p>\n <p class=\"m-0\">\n <b><a href=\"https://www.bcferries.com/vacations/romantic-retreats\" >View packages&nbsp;<i class=\"fa fa-angle-right\"></i></a></b>\n </p>\n </div>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n\n </li>\n <li\n class=\"dropdown mega-dropdown dropdown-masked menu-6\">\n <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n Vacations<span class=\"down-a\"> <i\n class=\"bcf bcf-icon-down-arrow\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</span>\n </a>\n <ul class=\"dropdown-menu mega-dropdown-menu\"\n data-panel='menu-6'>\n <li>\n <ul class=\"container list-unstyled m-auto\">\n <li class=\"col-sm-4 padding-left-0 icon-manage navigator\">\n <h2>Vacations</h2>\n <p>From a coastal weekend getaway to a once-in-a-lifetime trip, we’ve got a vacation package for every budget.</p> <div class=\"navigation-mob-link-n\">\n <a href=\"/vacations\" >Go to Vacations&nbsp;<i class=\"fa fa-angle-right\"></i></a></div>\n </li>\n\n <li class=\"col-sm-3 nav-value padding-0 navigator\">\n <ul>\n <li class=\"navigator deals-menu\"><a href=\"/vacations-book-package\" >Book a package</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/activities\" >Book activities</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/promotions\" >See deals & offers</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/northern-bc\" >Explore Northern BC</a></li>\n <li class=\"navigator deals-menu\"><a href=\"https://www.bcferries.com/vacations/indigenous-bc-packages\" >Indigenous-owned packages </a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/multi-city\" >Multi city packages</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/themed-packages\" >Themed packages</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/destinations\" >Explore destinations</a></li>\n <li class=\"navigator deals-menu\"><a href=\"/vacations/about/\" >About BC Ferries Vacations</a></li>\n </ul>\n </li>\n <li class=\"col-sm-5 padding-right-0 mob-img-box\">\n <ul>\n <li>\n <div class=\"menu-image-box navigator\">\n <a href=\"\"> <img class='img-fluid js-responsive-image'\n alt='Kids running on the beach'\n title='Kids running on the beach'\n data-media='{\"1\":\"https://www.bcferries.com/web_image/h24/h22/8975325298718.jpg\"}'/>\n </a>\n <div class=\"navigation-img\">\n <p class=\"text-dark-blue\"><p><b>Family Getaways with a 3rd night FREE</b></p>\n\n<p>Make new memories on a Family Getaway&nbsp;with a complimentary 3rd night.&nbsp;Book by Mar 14.</p>\n</p>\n <p class=\"m-0\">\n <b><a href=\"https://www.bcferries.com/vacations/family-day-getaways\" >View packages&nbsp;<i class=\"fa fa-angle-right\"></i></a></b>\n </p>\n </div>\n </div>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n\n </li>\n </ul>\n </div>\n </div>\n <!-- /.nav-collapse -->\n </nav>\n</header>\n</section><section class=\"yCmsContentSlot\">\n</section><section class=\"yCmsContentSlot\">\n</section><div class=\"container\">\n\t<div class=\"modal fade\" id=\"y_confirmFreshBookingModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"y_confirmFreshBookingModal\">\n\t<div class=\"modal-dialog\" role=\"document\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n\t\t\t\t<h4 class=\"modal-title\" id=\"confirmFreshBookingLabel\">\n\t\t\t\t\tConfirm New Booking</h4>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t\n\t\t\t\t<h3>\n\t\t\t\t\tAnother booking already started</h3>\n\t\t\t\t<p>\n\t\t\t\t\tYou have another booking already started. Confirm you want to clear it and continue with your new booking.</p>\n\t\t\t\t\n\t\t\t</div>\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-xs-12 col-sm-6 mb-3\">\n\t\t\t\t\t\t<button class=\"btn btn-primary btn-block y_freshBooking\" >\n\t\t\t\t\t\t\tConfirm</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-xs-12 col-sm-6\">\n\t\t\t\t\t\t<button class=\"btn btn-secondary btn-block\" data-dismiss=\"modal\">\n\t\t\t\t\t\t\tNo thanks</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n</div>\n\n<input type=\"hidden\" name=\"cartTimerContinueUrl\" id=\"cartTimerContinueUrl\">\n\n <form action=\"#\" method=\"GET\" id=\"cartTimerContinueUrlForm\">\n </form>\n\n <div class=\"modal \" id=\"y_showCartAboutToExpireModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"y_showCartAboutToExpireModal\">\n\t<div class=\"modal-dialog\" role=\"document\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n\t\t\t\t<h4 class=\"modal-title\" id=\"cartAboutToExpireModal\">\n\t\t\t\t\tImportant</h4>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\">\n <span id=\"cartTimerAboutToExpireMessage\"></span><br/>\n\n <div class=\"row\">\n <div class=\"col-lg-6 col-md-6 col-xs-12\">\n <button type=\"button\" class=\"btn btn-transparent btn-block btn-cart-timer-continue\" data-dismiss=\"modal\">\n Continue</button>\n </div>\n </div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n\n<div class=\"modal \" id=\"y_showCartTimerExpired\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"y_showCartTimerExpired\">\n\t<div class=\"modal-dialog\" role=\"document\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\n\t\t\t\t<h4 class=\"modal-title\" id=\"cartTimerExpired\">\n\n\t\t\t\t\t\tImportant</h4>\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n Your session has expired. If you still want to book travel, select &quot;Search again&quot; below.<br/>\n <div class=\"row\">\n <div class=\"col-lg-6 col-md-6 col-xs-12\">\n\n <button class=\"btn btn-primary btn-block cartTimerContinueButton\" type=\"button\" id=\"cartTimerContinueButton\">\n\n Search again</button>\n </div>\n </div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n\n\n\n<section class=\"margin-top--I\">\n\t\t <div class=\"container\">\n\t\t <div class=\"row\">\n\t\t <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n\t\t <div id=\"globalMessages\">\n\t\t\t\t\t\t\t</div>\n\t\t </div>\n\t\t </div>\n\t\t </div>\n\t\t\t\t</section>\n\t\t\t\t<section class=\"yCmsComponent\">\n<div class=\"container\"><div class=\"row\"><div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\"><div class=\"content\"><h2>Sailing Schedules</h2></div></div></div></div></section><div class=\"container\">\n <div id=\"tabs\" class=\"terminal-listing schedules-landing-page\">\n <div class=\"row\">\n <div class=\"col-md-6 col-xs-12\">\n <h4 class=\"title font-weight-bold\">Schedules by route</h4>\n <p class=\"fnt-14\">To find current schedules, select your departure location then destination.</p>\n </div>\n <div class=\"col-md-offset-2 col-md-4 col-xs-12 terminal-listing-tab\">\n <label>View</label>\n <ul>\n <li><a href=\"#tabs-1\"> List</a></li>\n <li><a href=\"#tabs-2\" id=\"mapviewtab\"> Map</a></li>\n </ul>\n </div>\n </div>\n <div id=\"tabs-1\">\n <div id=\"schedulesList\">\n <section class=\"yCmsComponent\">\n<div class=\"container\">\n\t<div class=\"row\">\n\t\t<div class=\"col-lg-12 col-md-12 col-xs-12\">\n\t\t\t<div class=\"js-accordion js-accordion-contentpage custom-contentpage-accordion\" style=\"\">\n\t\t\t\t<h2 class=\"mt-3 mb-3 ml-4\"></h2>\n\t\t\t\t<header><span class=\"accordion-title\">Metro Vancouver</span></header>\n<div>\n <div class=\"component-cnrl\"><style type=\"text/css\">.card {border: 1px solid #eee; line-height: 2.5; padding: 10px; margin-top:10px; margin-bottom:0;} .btn-link {width:100%}\n@media only screen and (max-width: 768px) {.h6 {font-size: 16px;}}\n</style>\nFrom\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#VancouverTsawwassen\" data-toggle=\"collapse\" type=\"button\">Vancouver (Tsawwassen)</button>\n<div class=\"collapse padding-left-10\" id=\"VancouverTsawwassen\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/TSA-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-DUK\">Nanaimo (Duke Point)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-PLH\">Salt Spring Island (Long Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-PST\">Saturna Island (Lyall Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#VancouverHorseshoeBay\" data-toggle=\"collapse\" type=\"button\">Vancouver (Horseshoe Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"VancouverHorseshoeBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/HSB-BOW\">Bowen Island (Snug Cove)</a><br /><a href=\"/routes-fares/schedules/seasonal/HSB-NAN\">Nanaimo (Departure Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/HSB-LNG\">Sunshine Coast (Langdale)</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">Vancouver Island</span></header>\n<div>\n <div class=\"component-cnrl\">From\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#VictoriaSwartzBay\" data-toggle=\"collapse\" type=\"button\">Victoria (Swartz Bay)</button>\n<div class=\"collapse padding-left-10\" id=\"VictoriaSwartzBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/SWB-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-FUL\">Salt Spring Island (Fulford Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-PST\">Saturna Island (Lyall Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-TSA\">Vancouver (Tsawwassen)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#NanaimoDepartureBay\" data-toggle=\"collapse\" type=\"button\">Nanaimo (Departure Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"NanaimoDepartureBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/NAN-HSB\">Vancouver (Horseshoe Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#NanaimoDukePoint\" data-toggle=\"collapse\" type=\"button\">Nanaimo (Duke Point)</button>\n\n<div class=\"collapse padding-left-10\" id=\"NanaimoDukePoint\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/DUK-TSA\">Vancouver (Tsawwassen)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#NanaimoHarbour\" data-toggle=\"collapse\" type=\"button\">Nanaimo (Nanaimo Harbour)</button>\n\n<div class=\"collapse padding-left-10\" id=\"NanaimoHarbour\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/NAH-GAB\">Gabriola Island (Descanso Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#ComoxLittleRiver\" data-toggle=\"collapse\" type=\"button\">Comox (Little River)</button>\n\n<div class=\"collapse padding-left-10\" id=\"ComoxLittleRiver\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/CMX-PWR\">Powell River (Westview)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PortHardyBearCove\" data-toggle=\"collapse\" type=\"button\">Port Hardy (Bear Cove)</button>\n\n<div class=\"collapse padding-left-10\" id=\"PortHardyBearCove\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PPH-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-BEC\">Bella Coola</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-KLE\">Klemtu</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-POF\">Ocean Falls</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-PPR\">Prince Rupert</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-SHW\">Shearwater</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#BrentwoodBay\" data-toggle=\"collapse\" type=\"button\">Brentwood Bay</button>\n\n<div class=\"collapse padding-left-10\" id=\"BrentwoodBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/BTW-MIL\">Mill Bay</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#BuckleyBay\" data-toggle=\"collapse\" type=\"button\">Buckley Bay</button>\n\n<div class=\"collapse padding-left-10\" id=\"BuckleyBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/BKY-DNM\">Denman Island West</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#CampbellRiver\" data-toggle=\"collapse\" type=\"button\">Campbell River</button>\n\n<div class=\"collapse padding-left-10\" id=\"CampbellRiver\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/CAM-QDR\">Quadra Island (Quathiaski Cove)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#Chemainus\" data-toggle=\"collapse\" type=\"button\">Chemainus</button>\n\n<div class=\"collapse padding-left-10\" id=\"Chemainus\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/CHM-PEN\">Penelakut Island (Telegraph Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/CHM-THT\">Thetis Island (Preedy Harbour)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#Crofton\" data-toggle=\"collapse\" type=\"button\">Crofton</button>\n\n<div class=\"collapse padding-left-10\" id=\"Crofton\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/CFT-VES\">Salt Spring Island (Vesuvius Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#MillBay\" data-toggle=\"collapse\" type=\"button\">Mill Bay</button>\n\n<div class=\"collapse padding-left-10\" id=\"MillBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/MIL-BTW\">Brentwood Bay</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PortMcNeill\" data-toggle=\"collapse\" type=\"button\">Port McNeill</button>\n\n<div class=\"collapse padding-left-10\" id=\"PortMcNeill\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/MCN-ALR\">Cormorant Island (Alert Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/MCN-SOI\">Malcolm Island (Sointula)</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">Sunshine Coast</span></header>\n<div>\n <div class=\"component-cnrl\">From\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#SunshineCoastLangdale\" data-toggle=\"collapse\" type=\"button\">Sunshine Coast (Langdale)</button>\n<div class=\"collapse padding-left-10\" id=\"SunshineCoastLangdale\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/LNG-HSB\">Vancouver (Horseshoe Bay)</a><br /><a href=\"/routes-fares/schedules/gambier-keats\">Gambier (New Brighton) & Keats (Keats Landing)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PowellRiverWestview\" data-toggle=\"collapse\" type=\"button\">Powell River (Westview)</button>\n\n<div class=\"collapse padding-left-10\" id=\"PowellRiverWestview\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PWR-CMX\">Comox (Little River)</a><br /><a href=\"/routes-fares/schedules/seasonal/PWR-TEX\">Texada Island (Blubber Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PowellRiverSalteryBay\" data-toggle=\"collapse\" type=\"button\">Powell River (Saltery Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"PowellRiverSalteryBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/SLT-ERL\">Sunshine Coast (Earls Cove)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#SunshineCoastEarlsCove\" data-toggle=\"collapse\" type=\"button\">Sunshine Coast (Earls Cove)</button>\n\n<div class=\"collapse padding-left-10\" id=\"SunshineCoastEarlsCove\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/ERL-SLT\">Powell River (Saltery Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#TexadaIslandBlubberBay\" data-toggle=\"collapse\" type=\"button\">Texada Island (Blubber Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"TexadaIslandBlubberBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/TEX-PWR\">Powell River (Westview)</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">Southern Gulf Islands</span></header>\n<div>\n <div class=\"component-cnrl\"><a href=\"/routes-fares/schedules/print\"><span class=\"bcf bcf-vertical-middle bcf-bule-icon\" style=\"font-size:32px;\"></span></a>&nbsp;<a href=\"/routes-fares/schedules/print\" target=\"_self \">View printable Southern Gulf Islands schedules</a>  \n<p><br /> </p>\nFrom\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#VancouverTsawwassenSGI\" data-toggle=\"collapse\" type=\"button\">Vancouver (Tsawwassen)</button>\n\n<div class=\"collapse padding-left-10\" id=\"VancouverTsawwassenSGI\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/TSA-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-PLH\">Salt Spring Island (Long Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/TSA-PST\">Saturna Island (Lyall Harbour)</a></p>\n\n<p>For an alternate route use <a href=\"https://www.bcferries.com/routes-fares/ferry-fares/thru-fare\" target=\"_blank\">thru fares between Vancouver (Tsawwassen) - Southern Gulf Islands</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#VictoriaSwartzBaySGI\" data-toggle=\"collapse\" type=\"button\">Victoria (Swartz Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"VictoriaSwartzBaySGI\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/SWB-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-FUL\">Salt Spring Island (Fulford Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/SWB-PST\">Saturna Island (Lyall Harbour)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#ChemainusSGI\" data-toggle=\"collapse\" type=\"button\">Chemainus</button>\n\n<div class=\"collapse padding-left-10\" id=\"ChemainusSGI\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/CHM-PEN\">Penelakut Island (Telegraph Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/CHM-THT\">Thetis Island (Preedy Harbour)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PenderIslandOtterBay\" data-toggle=\"collapse\" type=\"button\">Pender Island (Otter Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"PenderIslandOtterBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/POB-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/POB-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/POB-PLH\">Salt Spring Island (Long Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/POB-PST\">Saturna Island (Lyall Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/POB-TSA\">Vancouver (Tsawwassen)</a><br /><a href=\"/routes-fares/schedules/seasonal/POB-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#GalianoIslandSturdiesBay\" data-toggle=\"collapse\" type=\"button\">Galiano Island (Sturdies Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"GalianoIslandSturdiesBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PSB-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PSB-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PSB-PLH\">Salt Spring Island (Long Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/PSB-PST\">Saturna Island (Lyall Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/PSB-TSA\">Vancouver (Tsawwassen)</a><br /><a href=\"/routes-fares/schedules/seasonal/PSB-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#MayneIslandVillageBay\" data-toggle=\"collapse\" type=\"button\">Mayne Island (Village Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"MayneIslandVillageBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PVB-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PVB-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PVB-PLH\">Salt Spring Island (Long Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/PVB-PST\">Saturna Island (Lyall Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/PVB-TSA\">Vancouver (Tsawwassen)</a><br /><a href=\"/routes-fares/schedules/seasonal/PVB-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#SaturnaIslandLyallHarbour\" data-toggle=\"collapse\" type=\"button\">Saturna Island (Lyall Harbour)</button>\n\n<div class=\"collapse padding-left-10\" id=\"SaturnaIslandLyallHarbour\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PST-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PST-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PST-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PST-PLH\">Salt Spring Island (Long Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/PST-TSA\">Vancouver (Tsawwassen)</a><br /><a href=\"/routes-fares/schedules/seasonal/PST-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#GabriolaIslandDescansoBay\" data-toggle=\"collapse\" type=\"button\">Gabriola Island (Descanso Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"GabriolaIslandDescansoBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/GAB-NAH\">Nanaimo (Nanaimo Harbour)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PenelakutIslandTelegraphHarbour\" data-toggle=\"collapse\" type=\"button\">Penelakut Island (Telegraph Harbour)</button>\n\n<div class=\"collapse padding-left-10\" id=\"PenelakutIslandTelegraphHarbour\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PEN-CHM\">Chemainus</a><br /><a href=\"/routes-fares/schedules/seasonal/PEN-THT\">Thetis Island (Preedy Harbour)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#SaltSpringIslandLongHarbour\" data-toggle=\"collapse\" type=\"button\">Salt Spring Island (Long Harbour)</button>\n\n<div class=\"collapse padding-left-10\" id=\"SaltSpringIslandLongHarbour\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PLH-PSB\">Galiano Island (Sturdies Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PLH-PVB\">Mayne Island (Village Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PLH-POB\">Pender Island (Otter Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PLH-PST\">Saturna Island (Lyall Harbour)</a><br /><a href=\"/routes-fares/schedules/seasonal/PLH-TSA\">Vancouver (Tsawwassen)</a><br /><a href=\"/routes-fares/schedules/seasonal/PLH-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#SaltSpringIslandVesuviusBay\" data-toggle=\"collapse\" type=\"button\">Salt Spring Island (Vesuvius Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"SaltSpringIslandVesuviusBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/VES-CFT\">Crofton</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#SaltSpringIslandFulfordHarbour\" data-toggle=\"collapse\" type=\"button\">Salt Spring Island (Fulford Harbour)</button>\n\n<div class=\"collapse padding-left-10\" id=\"SaltSpringIslandFulfordHarbour\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/FUL-SWB\">Victoria (Swartz Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#ThetisIslandPreedyHarbour\" data-toggle=\"collapse\" type=\"button\">Thetis Island (Preedy Harbour)</button>\n\n<div class=\"collapse padding-left-10\" id=\"ThetisIslandPreedyHarbour\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/THT-CHM\">Chemainus</a><br /><a href=\"/routes-fares/schedules/seasonal/THT-PEN\">Penelakut Island (Telegraph Harbour)</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">Northern Gulf Islands</span></header>\n<div>\n <div class=\"component-cnrl\">From\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#CormorantIslandAlertBay\" data-toggle=\"collapse\" type=\"button\">Cormorant Island (Alert Bay)</button>\n<div class=\"collapse padding-left-10\" id=\"CormorantIslandAlertBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/ALR-SOI\">Malcolm Island (Sointula)</a><br /><a href=\"/routes-fares/schedules/seasonal/ALR-MCN\">Port McNeil</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#CortesIslandWhaletown\" data-toggle=\"collapse\" type=\"button\">Cortes Island (Whaletown)</button>\n\n<div class=\"collapse padding-left-10\" id=\"CortesIslandWhaletown\">\n<p>To<br /><a href=\"https://www.bcferries.com/routes-fares/schedules/seasonal/COR-HRB\">Quadra Island (Heriot Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#DenmanIslandWest\" data-toggle=\"collapse\" type=\"button\">Denman Island West</button>\n\n<div class=\"collapse padding-left-10\" id=\"DenmanIslandWest\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/DNM-BKY\">Buckley Bay</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#DenmanIslandEastGravellyBay\" data-toggle=\"collapse\" type=\"button\">Denman Island East (Gravelly Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"DenmanIslandEastGravellyBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/DNE-HRN\">Hornby Island (Shingle Spit)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#HornbyIslandShingleSpit\" data-toggle=\"collapse\" type=\"button\">Hornby Island (Shingle Spit)</button>\n\n<div class=\"collapse padding-left-10\" id=\"HornbyIslandShingleSpit\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/HRN-DNE\">Denman Island East (Gravelly Bay)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#MalcolmIslandSointula\" data-toggle=\"collapse\" type=\"button\">Malcolm Island (Sointula)</button>\n\n<div class=\"collapse padding-left-10\" id=\"MalcolmIslandSointula\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/SOI-ALR\">Cormorant Island (Alert Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SOI-MCN\">Port McNeill</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#QuadraIslandHeriotBay\" data-toggle=\"collapse\" type=\"button\">Quadra Island (Heriot Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"QuadraIslandHeriotBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/HRB-COR\">Cortes Island (Whaletown)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#QuadraIslandQuathiaskiCove\" data-toggle=\"collapse\" type=\"button\">Quadra Island (Quathiaski Cove)</button>\n\n<div class=\"collapse padding-left-10\" id=\"QuadraIslandQuathiaskiCove\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/QDR-CAM\">Campbell River</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">Central Coast</span></header>\n<div>\n <div class=\"component-cnrl\">From\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PortHardyBearCoveCentral\" data-toggle=\"collapse\" type=\"button\">Port Hardy (Bear Cove)</button>\n<div class=\"collapse padding-left-10\" id=\"PortHardyBearCoveCentral\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PPH-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-BEC\">Bella Coola</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-KLE\">Klemtu</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-POF\">Ocean Falls</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-PPR\">Prince Rupert</a><br /><a href=\"/routes-fares/schedules/seasonal/PPH-SHW\">Shearwater</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#BellaCoola\" data-toggle=\"collapse\" type=\"button\">Bella Coola</button>\n\n<div class=\"collapse padding-left-10\" id=\"BellaCoola\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/BEC-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/BEC-POF\">Ocean Falls</a><br /><a href=\"/routes-fares/schedules/seasonal/BEC-PPH\">Port Hardy (Bear Cove)</a><br /><a href=\"/routes-fares/schedules/seasonal/BEC-SHW\">Shearwater</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#BellaBellaMcLoughlinBay\" data-toggle=\"collapse\" type=\"button\">Bella Bella (McLoughlin Bay)</button>\n\n<div class=\"collapse padding-left-10\" id=\"BellaBellaMcLoughlinBay\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PBB-BEC\">Bella Coola</a><br /><a href=\"/routes-fares/schedules/seasonal/PBB-KLE\">Klemtu</a><br /><a href=\"/routes-fares/schedules/seasonal/PBB-POF\">Ocean Falls</a><br /><a href=\"/routes-fares/schedules/seasonal/PBB-PPH\">Port Hardy (Bear Cove)</a><br /><a href=\"/routes-fares/schedules/seasonal/PBB-PPR\">Prince Rupert</a><br /><a href=\"/routes-fares/schedules/seasonal/PBB-SHW\">Shearwater</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#OceanFalls\" data-toggle=\"collapse\" type=\"button\">Ocean Falls</button>\n\n<div class=\"collapse padding-left-10\" id=\"OceanFalls\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/POF-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/POF-BEC\">Bella Coola</a><br /><a href=\"/routes-fares/schedules/seasonal/POF-PPH\">Port Hardy (Bear Cove)</a><br /><a href=\"/routes-fares/schedules/seasonal/POF-SHW\">Shearwater</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#Shearwater\" data-toggle=\"collapse\" type=\"button\">Shearwater</button>\n\n<div class=\"collapse padding-left-10\" id=\"Shearwater\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/SHW-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/SHW-BEC\">Bella Coola</a><br /><a href=\"/routes-fares/schedules/seasonal/SHW-POF\">Ocean Falls</a><br /><a href=\"/routes-fares/schedules/seasonal/SHW-PPH\">Port Hardy (Bear Cove)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#Klemtu\" data-toggle=\"collapse\" type=\"button\">Klemtu</button>\n\n<div class=\"collapse padding-left-10\" id=\"Klemtu\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/KLE-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/KLE-PPH\">Port Hardy (Bear Cove)</a><br /><a href=\"/routes-fares/schedules/seasonal/KLE-PPR\">Prince Rupert</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">North Coast</span></header>\n<div>\n <div class=\"component-cnrl\">From\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PrinceRupert\" data-toggle=\"collapse\" type=\"button\">Prince Rupert</button>\n<div class=\"collapse padding-left-10\" id=\"PrinceRupert\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PPR-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PPR-PSK\">Graham Island (Skidegate)</a><br /><a href=\"/routes-fares/schedules/seasonal/PPR-KLE\">Klemtu</a><br /><a href=\"/routes-fares/schedules/seasonal/PPR-PPH\">Port Hardy (Bear Cove)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#KlemtuNorthCoast\" data-toggle=\"collapse\" type=\"button\">Klemtu</button>\n\n<div class=\"collapse padding-left-10\" id=\"KlemtuNorthCoast\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/KLE-PBB\">Bella Bella (McLoughlin Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/KLE-PPH\">Port Hardy (Bear Cove)</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n<header><span class=\"accordion-title\">Haida Gwaii</span></header>\n<div>\n <div class=\"component-cnrl\">From\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#GrahamIslandSkidegate\" data-toggle=\"collapse\" type=\"button\">Graham Island (Skidegate)</button>\n<div class=\"collapse padding-left-10\" id=\"GrahamIslandSkidegate\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PSK-ALF\">Moresby Island (Alliford Bay)</a><br /><a href=\"/routes-fares/schedules/seasonal/PSK-PPR\">Prince Rupert</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#MoresbyIsland\" data-toggle=\"collapse\" type=\"button\">Moresby Island</button>\n\n<div class=\"collapse padding-left-10\" id=\"MoresbyIsland\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/ALF-PSK\">Graham Island (Skidegate)</a></p>\n</div>\n</div>\n</div>\n\n<div class=\"container card\">\n<div class=\"padding-left-10\"><button class=\"btn-link text-left h6 text-dark-blue\" data-target=\"#PrinceRupertHG\" data-toggle=\"collapse\" type=\"button\">Prince Rupert</button>\n\n<div class=\"collapse padding-left-10\" id=\"PrinceRupertHG\">\n<p>To<br /><a href=\"/routes-fares/schedules/seasonal/PPR-PSK\">Graham Island (Skidegate)</a></p>\n</div>\n</div>\n</div>\n</div>\n <div class=\"component-cnrl\">\n </div>\n <div class=\"component-cnrl\">\n </div>\n</div>\n</div>\n\t\t</div>\n\t</div>\n</div>\n</section></div>\n </div>\n <div id=\"tabs-2\">\n <div class=\"p-relative\">\n <div class=\"LabelMesagesInit hidden\"></div>\n <div class=\"bg-image-map-text p-relative\"><img data-media='{\"480\":\"https://www.bcferries.com/web_image/ha7/h21/8804434378782.png\",\"768\":\"https://www.bcferries.com/web_image/h22/hbe/8804434313246.png\",\"1200\":\"https://www.bcferries.com/web_image/h09/h37/8804434346014.png\"}' class=\"js-responsive-image\"> <h2>Choose a region to start</h2></div>\n <div id=\"showMapResponse\" ></div>\n <div class=\"col-md-5 schrdules-drop-down col-xs-12\">\n <select id=\"y_routeRegionSelection\" class=\"selectpicker schedule-dropdwon-custom map-dropdwon-custom\"><option value=\"SUNSHINE_COAST\">Sunshine Coast</option><option value=\"HAIDA_GWAII\">Haida Gwaii</option><option value=\"METRO_VANCOUVER\">Metro Vancouver</option><option value=\"NORTH_COAST\">North Coast</option><option value=\"NORTHERN_GULF\">Northern Gulf Islands</option><option value=\"SOUTHERN_GULF\">Southern Gulf Islands</option><option value=\"CENTRAL_COAST\">Central Coast</option><option value=\"VANCOUVER_ISLAND\">Vancouver Island</option></select></div>\n </div>\n </div>\n </div>\n <br><br>\n <div class=\"row\">\n <section class=\"yCmsComponent\">\n<div class=\"container\">\n<div class=\"row information-div margin-bottom-30\">\n\t<div class=\"col-lg-4 col-sm-6 col-xs-12 img-icon-width\">\n\t\t\t<div class=\"m-info\">\n\t\t\t\t<a href=\"/current-conditions/service-notices\">\n\t <span class=\"cta-link\"><span class=\"bcf bcf-icon-notice bcf-vertical-middle bcf-icon-sm bcf-bule-icon res-quantity\"></span>Service Notices</span>\n <i class=\"bcf bcf-icon-right-arrow\"></i>\n </a>\n </div>\n\t\t</div>\n\t<div class=\"col-lg-4 col-sm-6 col-xs-12 img-icon-width\">\n\t\t\t<div class=\"m-info\">\n\t\t\t\t<a href=\"/current-conditions\">\n\t <span class=\"cta-link\"><span class=\"bcf bcf-icon-ferry bcf-vertical-middle bcf-icon-sm bcf-bule-icon res-quantity\"></span>Current conditions</span>\n <i class=\"bcf bcf-icon-right-arrow\"></i>\n </a>\n </div>\n\t\t</div>\n\t<div class=\"col-lg-4 col-sm-6 col-xs-12 img-icon-width\">\n\t\t\t<div class=\"m-info\">\n\t\t\t\t<a href=\"/current-conditions/departures\">\n\t <span class=\"cta-link\"><span class=\"bcf bcf-icon-stacked-arrows-horizontal bcf-vertical-middle bcf-icon-sm bcf-bule-icon res-quantity\"></span>Departure and arrivals</span>\n <i class=\"bcf bcf-icon-right-arrow\"></i>\n </a>\n </div>\n\t\t</div>\n\t</div>\n</div>\n\n</section></div>\n <div class=\"row\">\n <section class=\"yCmsComponent\">\n<div class=\"container\"><div class=\"row\"><div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\"><div class=\"content\"><div class=\"col-md-offset-4 col-md-4 col-xs-12\"><p><a class=\"button full-wdth\" href=\"/RouteSelectionPage\" title=\"Book now\">Book now</a></p></div></div></div></div></div></section></div>\n </div>\n\n\n\n\n\n <div class=\"yCmsContentSlot\">\n\n <div>\n <footer>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-lg-3 col-md-3 col-sm-12 col-xs-12 pull-right footer-m\">\n <style type=\"text/css\">.footer-m {min-height: 225px;}\n</style>\n<div class=\"footer-title\"><i>onBoard</i> eNewsletter</div>\n\n<ul class=\"list-unstyled\" style=\"padding-bottom: 8px;\">\n\t<li><a href=\"/deals-special-offers/onboard-enewsletter\">Sign up for email offers</a></li>\n\t<li></li>\n</ul>\n\n<div class=\"footer-title\" style=\"margin-bottom: -2px;\">BC Ferries app</div>\n<a href=\"https://play.google.com/store/apps/details?id=com.bcferries\" target=\"_blank\"><img alt=\"Get it on Google Play\" height=\"55\" src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\" style=\"margin:0 -10px 0 -8px;\" /></a> <a href=\"https://apps.apple.com/us/app/bc-ferries/id6444454630\" target=\"_blank\"><img alt=\"Download on the App Store\" src=\"https://apple-resources.s3.amazonaws.com/media-badges/download-on-the-app-store/black/en-us.svg\" style=\"border-radius: 6px; width: 111px; height: 37px;\" /></a>\n\n<ul class=\"list-unstyled\" style=\"padding-bottom:5px;\">\n\t<li><a href=\"/app\">Learn more</a></li>\n\t<li></li>\n</ul>\n\n<div class=\"footer-title\" style=\"margin-bottom: -2px;\">Connect on social media</div>\n\n<ul class=\"list-inline\" style=\"padding-top: 10px; margin-bottom: 40px;\">\n\t<li><a href=\"https://www.facebook.com/BCFerries/\" target=\"_blank\"><i aria-hidden=\"true\" class=\"fab fa-2x fa-facebook-f\"> </i></a></li>\n\t<li><a href=\"https://twitter.com/bcferries\" target=\"_blank\"><i aria-hidden=\"true\" class=\"bcf bcf-icon-twitter\" style=\"font-size: 24px; margin-top: -6px;\">​</i></a></li>\n\t<li><a href=\"https://www.tripadvisor.ca/Attraction_Review-g154945-d184078-Reviews-BC_Ferries-Victoria_Victoria_Capital_Regional_District_Vancouver_Island_British_Co.html\" target=\"_blank\"><i aria-hidden=\"true\" class=\"fab fa-2x fa-tripadvisor\"> </i></a></li>\n\t<li><a href=\"https://www.linkedin.com/company/25762/\" target=\"_blank\"><i aria-hidden=\"true\" class=\"fab fa-2x fa-linkedin-in\"> </i></a></li>\n\t<li><a href=\"https://instagram.com/bcferries/\" target=\"_blank\"><i aria-hidden=\"true\" class=\"fab fa-2x fa-instagram\"> </i></a></li>\n\t<li><a href=\"https://www.youtube.com/c/bcferries\" target=\"_blank\"><i aria-hidden=\"true\" class=\"fab fa-2x fa-youtube\"> </i></a></li>\n</ul>\n</div>\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-12 footer-m\">\n <div class=\"footer-title\">Our company</div>\n <ul class=\"list-unstyled\">\n <li><a href=\"/our-company\" >About us</a></li>\n <li><a href=\"/our-company/leadership\" >Leadership & governance</a></li>\n <li><a href=\"/our-company/indigenous-relations\" >Indigenous relations</a></li>\n <li><a href=\"/our-company/investor-relations\" >Investor relations</a></li>\n <li><a href=\"/our-company/freedom-of-information\" >Freedom of information</a></li>\n <li><a href=\"/our-company/procurement\" >Procurement</a></li>\n <li><a href=\"/our-company/bc-ferries-jobs\" >Careers</a></li>\n </ul>\n </div>\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-12 footer-m\">\n <div class=\"footer-title\">Our community</div>\n <ul class=\"list-unstyled\">\n <li><a href=\"/in-the-community\" >In the community</a></li>\n <li><a href=\"/in-the-community/ferry-advisory-committees\" >Ferry Advisory Committees</a></li>\n <li><a href=\"/in-the-community/community-social-investment\" >Community & social investment</a></li>\n <li><a href=\"/in-the-community/projects\" >Projects & community engagement</a></li>\n <li><a href=\"/in-the-community/resources\" >Policies, reports & plans</a></li>\n </ul>\n </div>\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-12 footer-m\">\n <div class=\"footer-title\">Contact us</div>\n <ul class=\"list-unstyled\">\n <li><a href=\"/contact-us\" >General contact &amp; customer service</a></li>\n <li><a href=\"/contact-us/helping-you-during-a-service-disruption\" >Service disruptions</a></li>\n <li><a href=\"/contact-us/media-room\" ><span class=\"tracking-media-room\">Media room</span></a></li>\n <li><a href=\"/contact-us/property-or-injury\" >Property damage or injury claims</a></li>\n <li><a href=\"/contact-us/baggage\" >Missing or damaged baggage</a></li>\n <li><a href=\"/contact-us/scam-alerts\" >Scam alerts</a></li>\n <li><a href=\"/contact-us/ferry-vessel-chartering\" >Charter a ferry</a></li>\n <li><a href=\"/contact-us/film-production-request\" >Film production request</a></li>\n </ul>\n </div>\n </div>\n\n\n\n\t\t<div class=\"row\">\n <div class=\"additional-links\">\n <div class=\"col-lg-8 col-md-8 col-sm-6 col-xs-12\">\n <ul class=\"footer-bottom-links\">\n <li><a href=\"/sitemap\" >Sitemap</a></li>\n <li><a href=\"/terms-and-conditions\" >Terms & conditions</a></li>\n <li><a href=\"/privacy-statement\" >Privacy statement</a></li>\n <li><a href=\"/travel-policies\" >Travel policies</a></li>\n <li><a href=\"/accessibility\" >Accessibility</a></li>\n <li><a href=\"/employee-login\" >Employee login</a></li>\n </ul>\n </div>\n <div class=\"col-lg-4 col-md-4 col-sm-6 col-xs-12 text-center\">\n Copyright © 2025 British Columbia Ferry Services Inc.</div>\n </div>\n </div>\n\n\n </div>\n</footer>\n\n </div>\n </div>\n\n</main>\n\t<form name=\"accessiblityForm\" class=\"hidden\">\n\t\t<input type=\"hidden\" id=\"accesibility_refreshScreenReaderBufferField\" name=\"accesibility_refreshScreenReaderBufferField\" value=\"\"/>\n\t</form>\n\t<div id=\"ariaStatusMsg\" class=\"skip\" role=\"status\" aria-relevant=\"text\" aria-live=\"polite\"></div>\n\n\t<span class=\"d-none\" id=\"password.strength.veryweak\">Very weak</span>\n<span class=\"d-none\" id=\"password.strength.weak\">Weak</span>\n<span class=\"d-none\" id=\"password.strength.medium\">Medium</span>\n<span class=\"d-none\" id=\"password.strength.strong\">Strong</span>\n<span class=\"d-none\" id=\"password.strength.verystrong\">Very strong</span>\n<span class=\"d-none\" id=\"password.strength.unsafepwd\">password.strength.unsafepwd</span>\n<span class=\"d-none\" id=\"password.strength.tooshortpwd\">Too short</span>\n<span class=\"d-none\" id=\"password.strength.minchartext\">Use %d - %m characters with a mix of any 3 [upper case letters, lower case letters, numbers & symbols]</span>\n<span class=\"d-none\" id=\"password.strength.minchar\">8</span>\n<span class=\"d-none\" id=\"password.strength.maxchar\">32</span>\n<span class=\"d-none\" id=\"password.minchar.validation.msg\">Password must be more than eight characters and contain a mix of any three of the following: upper case letters, numbers and symbols.</span>\n<span class=\"d-none\" id=\"password.maxchar.validation.msg\">Password must be less than 32 characters and contain a mix of any three of the following: upper case letters, numbers and symbols.</span>\n<span class=\"d-none\" id=\"password.empty.validation.msg\">Enter current password</span>\n<span class=\"d-none\" id=\"email.validation.msg\">Enter valid email address</span>\n<span class=\"d-none\" id=\"password.validation.msg\">Password not valid</span>\n<span class=\"d-none\" id=\"register.accountType.invalid\">Select account type</span>\n<span class=\"d-none\" id=\"register.firstName.invalid\">Enter first name</span>\n<span class=\"d-none\" id=\"register.lastName.invalid\">Enter last name</span>\n<span class=\"d-none\" id=\"confirmEmail.validation.msg\">Confirm Email Not Valid</span>\n<span class=\"d-none\" id=\"password.pattern.validation.msg\">Password must be more than eight characters and contain a mix of any three of the following: upper case letters, numbers and symbols.</span>\n<span class=\"d-none\" id=\"reconfirm.password.validation.msg\">Passwords do not match</span>\n<span class=\"d-none\" id=\"postcode.pattern.validation.msg\">Enter valid postal/zip code</span>\n<span class=\"d-none\" id=\"aria.pickupinstore.loading\">Loading... Please wait...</span>\n<span class=\"d-none\" id=\"aria.pickupinstore.storesloaded\">Stores loaded</span>\n<span class=\"d-none\" id=\"text.schedule.view.schedule.from.label\">View schedule from</span>\n<span class=\"d-none\" id=\"text.cc.view.sailingStatus.from.label\">View sailing status from</span>\n<span class=\"d-none\" id=\"text.discover.routes.from.label\">Discover our routes from</span>\n<span class=\"d-none\" id=\"text.view.schedule.to.label\">to</span>\n<script type=\"text/javascript\">\n\t\t/*<![CDATA[*/\n\t\t\n\t\tvar ACC = { config: {} };\n\t\t\tACC.config.contextPath = \"\";\n\t\t\tACC.config.encodedContextPath = \"\";\n\t\t\tACC.config.commonResourcePath = \"/_ui/responsive/common\";\n\t\t\tACC.config.themeResourcePath = \"/_ui/responsive/theme-bcf\";\n\t\t\tACC.config.siteResourcePath = \"/_ui/responsive/site-bcferries\";\n\t\t\tACC.config.rootPath = \"/_ui/responsive\";\n\t\t\tACC.config.CSRFToken = \"b1fcdf50-1f4c-44a8-a74c-f346f7a1ef13\";\n\t\t\tACC.pwdStrengthVeryWeak = document.getElementById(\"password.strength.veryweak\").innerText;\n\t\t\tACC.pwdStrengthWeak = document.getElementById(\"password.strength.weak\").innerText;\n\t\t\tACC.pwdStrengthMedium = document.getElementById(\"password.strength.medium\").innerText;\n\t\t\tACC.pwdStrengthStrong = document.getElementById(\"password.strength.strong\").innerText\n\t\t\tACC.pwdStrengthVeryStrong = document.getElementById(\"password.strength.verystrong\").innerText;\n\t\t\tACC.pwdStrengthUnsafePwd = document.getElementById(\"password.strength.unsafepwd\").innerText;\n\t\t\tACC.pwdStrengthTooShortPwd = document.getElementById(\"password.strength.tooshortpwd\").innerText;\n\t\t\tACC.pwdStrengthMinCharText = document.getElementById(\"password.strength.minchartext\").innerText;\n\t\t\tACC.pwdStrengthMinChar = document.getElementById(\"password.strength.minchar\").innerText;\n\t\t\tACC.pwdStrengthMaxChar = document.getElementById(\"password.strength.maxchar\").innerText;\n\t\t\tACC.pwdMinCharValidationMsg = document.getElementById(\"password.minchar.validation.msg\").innerText;\n\t\t\tACC.pwdMaxCharValidationMsg = document.getElementById(\"password.maxchar.validation.msg\").innerText;\n\t\t\tACC.pwdEmptyValidationMsg = document.getElementById(\"password.empty.validation.msg\").innerText;\n\t\t\tACC.emailValidationMsg = document.getElementById(\"email.validation.msg\").innerText;\n\t\t\tACC.passwordValidationMsg = document.getElementById(\"password.validation.msg\").innerText;\n\t\t\tACC.accountTypeValidationMsg = document.getElementById(\"register.accountType.invalid\").innerText;\n\t\t\tACC.firstNameValidationMsg = document.getElementById(\"register.firstName.invalid\").innerText;\n\t\t\tACC.lastNameValidationMsg = document.getElementById(\"register.lastName.invalid\").innerText;\n\t\t ACC.confirmEmailValidationMsg = document.getElementById(\"confirmEmail.validation.msg\").innerText;\n\t\t\tACC.pwdPatternValidationMsg = document.getElementById(\"password.pattern.validation.msg\").innerText;\n\t\t\tACC.reconfirmPasswordValidationMsg = document.getElementById(\"reconfirm.password.validation.msg\").innerText;\n\t ACC.postCodePatternValidationMsg = document.getElementById(\"postcode.pattern.validation.msg\").innerText;\n\t\t\tACC.accessibilityLoading = document.getElementById(\"aria.pickupinstore.loading\").innerText;\n\t\t\tACC.accessibilityStoresLoaded = document.getElementById(\"aria.pickupinstore.storesloaded\").innerText;\n\t\t\tACC.config.googleApiKey=\"\";\n\t\t\tACC.config.googleApiVersion=\"3.7\";\n\n\t\t\t\n\t\t\tACC.autocompleteUrl = '/search/autocompleteSecure';\n\n\t\t\t\n\t\t\tACC.config.loginUrl = '/login';\n\n\t\t\t\n\t\t\tACC.config.authenticationStatusUrl = '/authentication/status';\n\t\t\tACC.viewScheduleFrom = document.getElementById(\"text.schedule.view.schedule.from.label\").innerText;\n\t\t\tACC.viewSailingStatusFrom = document.getElementById(\"text.cc.view.sailingStatus.from.label\").innerText;\n\t\t\tACC.viewDiscoverRoutesFrom = document.getElementById(\"text.discover.routes.from.label\").innerText;\n\t\t\tACC.viewScheduleTo = document.getElementById(\"text.view.schedule.to.label\").innerText;\n\n\t\t\t\n\t\t/*]]>*/\n\t</script>\n\t<script type=\"text/javascript\">\n\t/*<![CDATA[*/\n\tACC.addons = {};\t//JS holder for addons properties\n\t\t\t\n\t\n\t\tACC.addons.bcfcheckoutaddon = [];\n\t\t\n\t\tACC.addons.bcfstorefrontaddon = [];\n\t\t\n\t\tACC.addons.bcfvoyageaddon = [];\n\t\t\n\t\tACC.addons.bcfassistedservicesstorefront = [];\n\t\t\n\t\tACC.addons.smarteditaddon = [];\n\t\t\n\t\tACC.addons.bcfaccommodationsaddon = [];\n\t\t\n\t\tACC.addons.bcfcommonsaddon = [];\n\t\t\n\t/*]]>*/\n</script>\n<script type=\"text/javascript\" src=\"/_ui/responsive/common/../js/jsLibrary.min.js\"></script>\n <script type=\"text/javascript\" src=\"/_ui/responsive/common/../js/common.min.js\"></script>\n\t<script type=\"text/javascript\">\n$(document).ready(function() {\n\n\t$('.js-main-box .add-on-box:nth-child(3)').addClass(\"accordion-arriv\");\n\t$(function() {\n\t\t$(\"#accordion-review\").accordion();\n\t\t$(\"#accordion-review\").accordion({\n\t\t\theader : \"h4\",\n\t\t\tcollapsible : true,\n\t\t\tactive : false\n\t\t});\n\t});\n\t$(function() {\n\t\t$(\".accordion-arriv #accordion-review\").accordion();\n\t\t$(\".accordion-arriv #accordion-review\").accordion({\n\t\t\theader : \"h4\",\n\t\t\tcollapsible : true,\n\t\t\tactive : false\n\t\t});\n\t});\n\t $( \"#tabs\" ).tabs();\n});\n\n// Jquery Loader\n$(document).ready(function() {\n $('.js_form_submit').on('submit', function(event) {\n event.preventDefault();\n $('#mtmLC').show();\n $.ajax({\n type: $(this).attr('method'),\n url: $(this).attr('action'),\n data: $(this).serialize(),\n success: function(response) {\n var tempElement = $('<div>').html(response);\n var redirectUrl = tempElement.find('link[rel=\"canonical\"]').attr('href');\n window.location.href = redirectUrl;\n },\n error: function(error) {\n console.error('Error:', error);\n }\n });\n });\n});\n\n\n// configuration for datatable starts here\n\n$(document).ready(function() {\n\n// custom logic to sort dates. Dates should be in format 'dd/MM/YYYY hh:mm:ss'\n\n jQuery.extend( jQuery.fn.dataTableExt.oSort, {\n \"date-euro-pre\": function ( a ) {\n var x;\n\n if ( $.trim(a) !== '' ) {\n var frDatea = $.trim(a).split(' ');\n var frTimea = (undefined != frDatea[1]) ? frDatea[1].split(':') : [00,00,00];\n var frDatea2 = frDatea[0].split('/');\n x = (frDatea2[2] + frDatea2[1] + frDatea2[0] + frTimea[0] + frTimea[1] + ((undefined != frTimea[2]) ? frTimea[2] : 0)) * 1;\n }\n else {\n x = Infinity;\n }\n\n return x;\n },\n\n \"date-euro-asc\": function ( a, b ) {\n return a - b;\n },\n\n \"date-euro-desc\": function ( a, b ) {\n return b - a;\n }\n } );\n\n//initialize pending(on-request) orders datatable -->\n\n $('#pendingOrdersContentList').DataTable({\n \"order\": [[ 3, \"desc\" ]],\n \"columnDefs\": [\n {\n \"targets\": [ 7 ],\n \"searchable\": false,\n \"orderable\": false\n },\n {\n \"targets\": [ 8 ],\n \"searchable\": false,\n \"orderable\": false\n }\n ],\n \"lengthMenu\": [[5,10, 25, 50, -1], [5,10, 25, 50, \"All\"]],\n \"aoColumns\": [\n null,\n null,\n null,\n { \"sType\": \"date-euro\" },\n null,\n { \"sType\": \"date-euro\" },\n null\n ]\n });\n\n// initialize booking Inquiry data table\n\t\t$('#js-schedule-table').DataTable({\n\t\t\t\"paging\": false,\n\t\t\t\"info\": false,\n\t\t\t\"searching\": false\n\n\t\t});\n\t\t$('.js-data-table').DataTable({\n\t\t\t\"paging\": true,\n\t\t\t\"info\": false,\n\t\t\t\"searching\": true,\n\t\t\t\"columnDefs\": [\n\t\t\t { \"width\": \"20%\", \"targets\": \"_all\" }\n\t\t\t ]\n\n\t\t});\n $('#bookingInquiryContentList').DataTable({\n \"order\": [[ 4, \"desc\" ]],\n \"columnDefs\": [\n {\n \"targets\": [ 7 ],\n \"searchable\": false,\n \"orderable\": false\n },\n {\n \"targets\": [ 8 ],\n \"searchable\": false,\n \"orderable\": false\n }\n ],\n \"lengthMenu\": [[5, 10, 25, 50, -1], [5, 10, 25, 50, \"All\"]],\n \"aoColumns\": [\n null,\n null,\n null,\n null,\n { \"sType\": \"date-euro\" },\n { \"sType\": \"date-euro\" },\n null,\n null,\n null,\n null\n ]\n });\n//booking Inquiry data table configuratons end\n\n} );\n// configuration for datatable ends here\n\n$(document).ready(function() {\n\t\t\tif ($(window).width() >= 980) {\n\t\t\t\t\t\t$(\"#js_navbar_menu .dropdown-toggle\").click(function() {\n\t\t\t\t\t\t\tif ($(\".orbeon\").length > 0) {\n\t\t\t\t\t\t\t\t$(this).parent().toggleClass(\"open\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t$(window).resize(function() {\n\t\t\t\tif ($(window).width() >= 980) {\n\t\t\t\t\t$(\"#js_navbar_menu .dropdown-toggle\").click(function() {\n\t\t\t\t\t\tif ($(\".orbeon\").length > 0) {\n\t\t\t\t\t\t\t$(this).parent().toggleClass(\"open\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t});\n\t\t\t $(window).click(function(e){\n\t\t\t\tif ($('.tab-depart').hasClass(\"active\")) {\n\t\t\t\t\t$('.depart-calendar').addClass(\"active\");\n\t\t\t\t\t$('.return-calendar').removeClass(\"active\");\n\t\t\t\t}\n\n\t\t\t});\n\t\t\t$(window).click(function(e){\n\t\t\t\tif ($('.tab-return').hasClass(\"active\")) {\n\t\t\t\t\t$('.return-calendar').addClass(\"active\");\n\t\t\t\t\t$('.depart-calendar').removeClass(\"active\");\n\t\t\t\t}\n\n\t\t\t});\n\t\t \t$('#vacation-accordion2').on('click', function(e) {\n\t\t \t var target = $(this);\n\t\t \t $('html, body').animate({\n\t\t \t scrollTop: target.offset().top\n\t\t \t }, 500);\n\t\t \t});\n\n\t\t\t// document ready\n\t\t});\n\t</script>\n\n</body>\n\n</html>\n"
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routes.live.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.live.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/routes.live.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const routes_1 = require("../routes");
4
+ describe('Routes', () => {
5
+ // this is necessary for jest to not complain about an empty test suite
6
+ it('live tests disabled by default', () => { });
7
+ it.if(process.env.LIVE_TESTS, 'LIVE test', async () => {
8
+ const result = await (0, routes_1.routes)();
9
+ expect(result).toBeDefined();
10
+ expect(result.url).toBeDefined();
11
+ expect(result.regions).toBeDefined();
12
+ expect(result.regions.length).toBeGreaterThan(0);
13
+ const [firstRegion] = result.regions;
14
+ expect(firstRegion.name).toBeDefined();
15
+ expect(firstRegion.from).toBeDefined();
16
+ expect(firstRegion.from.length).toBeGreaterThan(0);
17
+ const [firstFrom] = firstRegion.from;
18
+ expect(firstFrom.name).toBeDefined();
19
+ expect(firstFrom.code).toBeDefined();
20
+ expect(firstFrom.to).toBeDefined();
21
+ expect(firstFrom.to.length).toBeGreaterThan(0);
22
+ const [firstTo] = firstFrom.to;
23
+ expect(firstTo.name).toBeDefined();
24
+ expect(firstTo.urlPath).toBeDefined();
25
+ expect(firstTo.urlPath).toStartWith('/routes-fares/schedules/seasonal/');
26
+ }, 30_000);
27
+ });
28
+ //# sourceMappingURL=routes.live.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.live.test.js","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/routes.live.test.ts"],"names":[],"mappings":";;AAAA,sCAAkC;AAElC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,uEAAuE;IACvE,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAE9C,EAAE,CAAC,EAAE,CACH,OAAO,CAAC,GAAG,CAAC,UAAU,EACtB,WAAW,EACX,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,IAAA,eAAM,GAAE,CAAA;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAEhD,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,CAAA;QACpC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACtC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACtC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAElD,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QAClC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAE9C,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,CAAA;QAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QACrC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAA;IAC1E,CAAC,EACD,MAAM,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routes.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/routes.test.ts"],"names":[],"mappings":""}