@antlur/backstage 1.0.9 → 1.0.10

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 (86) hide show
  1. package/dist/cjs/components/json-ld.js +8 -0
  2. package/dist/cjs/config.js +2 -3
  3. package/dist/cjs/endpoints/alerts.js +1 -2
  4. package/dist/cjs/endpoints/events.js +3 -4
  5. package/dist/cjs/endpoints/locations.js +2 -3
  6. package/dist/cjs/endpoints/menus.js +3 -4
  7. package/dist/cjs/endpoints/navigation.js +3 -4
  8. package/dist/cjs/endpoints/pages.js +4 -5
  9. package/dist/cjs/endpoints/press.js +1 -2
  10. package/dist/cjs/endpoints/website.js +1 -2
  11. package/dist/cjs/util/event.js +70 -0
  12. package/dist/cjs/util/gtag.js +14 -0
  13. package/dist/cjs/util/imgproxy-loader.js +14 -0
  14. package/dist/cjs/util/publishing.js +6 -0
  15. package/dist/cjs/util/special-hours.js +23 -0
  16. package/dist/esm/components/json-ld.d.ts +7 -0
  17. package/dist/esm/components/json-ld.d.ts.map +1 -0
  18. package/dist/esm/components/json-ld.js +5 -0
  19. package/dist/esm/types/location.d.ts +2 -0
  20. package/dist/esm/types/location.d.ts.map +1 -1
  21. package/dist/esm/types/website.d.ts +1 -0
  22. package/dist/esm/types/website.d.ts.map +1 -1
  23. package/dist/esm/util/event.d.ts +8 -0
  24. package/dist/esm/util/event.d.ts.map +1 -0
  25. package/dist/esm/util/event.js +63 -0
  26. package/dist/esm/util/gtag.d.ts +23 -0
  27. package/dist/esm/util/gtag.d.ts.map +1 -0
  28. package/dist/esm/util/gtag.js +10 -0
  29. package/dist/esm/util/imgproxy-loader.d.ts +9 -0
  30. package/dist/esm/util/imgproxy-loader.d.ts.map +1 -0
  31. package/dist/esm/util/imgproxy-loader.js +11 -0
  32. package/dist/esm/util/publishing.d.ts +2 -0
  33. package/dist/esm/util/publishing.d.ts.map +1 -0
  34. package/dist/esm/util/publishing.js +3 -0
  35. package/dist/esm/util/special-hours.d.ts +3 -0
  36. package/dist/esm/util/special-hours.d.ts.map +1 -0
  37. package/dist/esm/util/special-hours.js +20 -0
  38. package/dist/types/components/json-ld.d.ts +7 -0
  39. package/dist/types/components/json-ld.d.ts.map +1 -0
  40. package/dist/types/types/location.d.ts +2 -0
  41. package/dist/types/types/location.d.ts.map +1 -1
  42. package/dist/types/types/website.d.ts +1 -0
  43. package/dist/types/types/website.d.ts.map +1 -1
  44. package/dist/types/util/event.d.ts +8 -0
  45. package/dist/types/util/event.d.ts.map +1 -0
  46. package/dist/types/util/gtag.d.ts +23 -0
  47. package/dist/types/util/gtag.d.ts.map +1 -0
  48. package/dist/types/util/imgproxy-loader.d.ts +9 -0
  49. package/dist/types/util/imgproxy-loader.d.ts.map +1 -0
  50. package/dist/types/util/publishing.d.ts +2 -0
  51. package/dist/types/util/publishing.d.ts.map +1 -0
  52. package/dist/types/util/special-hours.d.ts +3 -0
  53. package/dist/types/util/special-hours.d.ts.map +1 -0
  54. package/package.json +31 -4
  55. package/src/client.ts +97 -0
  56. package/src/components/json-ld.tsx +9 -0
  57. package/src/config.ts +31 -0
  58. package/src/constants/google-events.ts +13 -0
  59. package/src/endpoints/alerts.ts +7 -0
  60. package/src/endpoints/events.ts +20 -0
  61. package/src/endpoints/locations.ts +25 -0
  62. package/src/endpoints/menus.ts +30 -0
  63. package/src/endpoints/navigation.ts +34 -0
  64. package/src/endpoints/pages.ts +23 -0
  65. package/src/endpoints/press.ts +7 -0
  66. package/src/endpoints/website.ts +7 -0
  67. package/src/index.ts +18 -0
  68. package/src/types/alert.ts +11 -0
  69. package/src/types/api.ts +12 -0
  70. package/src/types/event.ts +14 -0
  71. package/src/types/index.ts +13 -0
  72. package/src/types/location.ts +69 -0
  73. package/src/types/media-item.ts +10 -0
  74. package/src/types/menu-category-item.ts +18 -0
  75. package/src/types/menu-category.ts +15 -0
  76. package/src/types/menu-item.ts +15 -0
  77. package/src/types/menu.ts +12 -0
  78. package/src/types/navigation.ts +17 -0
  79. package/src/types/page.ts +24 -0
  80. package/src/types/press.ts +13 -0
  81. package/src/types/website.ts +76 -0
  82. package/src/util/event.ts +77 -0
  83. package/src/util/gtag.ts +40 -0
  84. package/src/util/imgproxy-loader.ts +22 -0
  85. package/src/util/publishing.ts +3 -0
  86. package/src/util/special-hours.ts +24 -0
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonLd = JsonLd;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ function JsonLd({ schema, id }) {
6
+ const schemaString = JSON.stringify(schema);
7
+ return (0, jsx_runtime_1.jsx)("script", { id: id, type: "application/ld+json", dangerouslySetInnerHTML: { __html: schemaString } });
8
+ }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGlobalConfig = exports.defineConfig = void 0;
3
+ exports.defineConfig = defineConfig;
4
+ exports.getGlobalConfig = getGlobalConfig;
4
5
  const ROOT = process.cwd();
5
6
  const CONFIG_PATH = process.env.BACKSTAGE_CONFIG_PATH || "./backstage.config";
6
7
  const DEFAULT_BASE_URL = "https://bckstg.app/api";
@@ -16,9 +17,7 @@ function defineConfig(config) {
16
17
  };
17
18
  return globalConfig;
18
19
  }
19
- exports.defineConfig = defineConfig;
20
20
  function getGlobalConfig() {
21
21
  // read the config from the project root
22
22
  return globalConfig;
23
23
  }
24
- exports.getGlobalConfig = getGlobalConfig;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAlerts = void 0;
3
+ exports.getAlerts = getAlerts;
4
4
  const client_1 = require("../client");
5
5
  async function getAlerts() {
6
6
  const { data } = await (0, client_1.client)().get("/alerts");
7
7
  return data;
8
8
  }
9
- exports.getAlerts = getAlerts;
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEventBySlug = exports.getEvent = exports.getEvents = void 0;
3
+ exports.getEvents = getEvents;
4
+ exports.getEvent = getEvent;
5
+ exports.getEventBySlug = getEventBySlug;
4
6
  const client_1 = require("../client");
5
7
  async function getEvents() {
6
8
  const res = await (0, client_1.client)().get("/events");
7
9
  const pages = res.data;
8
10
  return pages;
9
11
  }
10
- exports.getEvents = getEvents;
11
12
  async function getEvent(id) {
12
13
  const res = await (0, client_1.client)().get("/events" + "?filter[id]=" + id);
13
14
  const pages = res.data?.[0];
14
15
  return pages;
15
16
  }
16
- exports.getEvent = getEvent;
17
17
  async function getEventBySlug(slug) {
18
18
  const res = await (0, client_1.client)().get("/events" + "?filter[slug]=" + slug);
19
19
  const pages = res.data?.[0];
20
20
  return pages;
21
21
  }
22
- exports.getEventBySlug = getEventBySlug;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLocationBySlug = exports.getLocations = void 0;
3
+ exports.getLocations = getLocations;
4
+ exports.getLocationBySlug = getLocationBySlug;
4
5
  const client_1 = require("../client");
5
6
  async function getLocations() {
6
7
  const res = await (0, client_1.client)().get("/locations");
@@ -13,7 +14,6 @@ async function getLocations() {
13
14
  });
14
15
  return locations;
15
16
  }
16
- exports.getLocations = getLocations;
17
17
  async function getLocationBySlug(slug) {
18
18
  const res = await (0, client_1.client)().get(`/locations?filter[slug]=${slug}`);
19
19
  const data = res.data;
@@ -22,4 +22,3 @@ async function getLocationBySlug(slug) {
22
22
  }
23
23
  return data;
24
24
  }
25
- exports.getLocationBySlug = getLocationBySlug;
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMenuBySlug = exports.getMenu = exports.getMenus = void 0;
3
+ exports.getMenus = getMenus;
4
+ exports.getMenu = getMenu;
5
+ exports.getMenuBySlug = getMenuBySlug;
4
6
  const client_1 = require("../client");
5
7
  async function getMenus() {
6
8
  const res = await (0, client_1.client)().get("/menus");
7
9
  const menus = res.data;
8
10
  return menus;
9
11
  }
10
- exports.getMenus = getMenus;
11
12
  async function getMenu(id) {
12
13
  const res = await (0, client_1.client)().get(`/menus?filter[id]=${id}&include=categories.items`);
13
14
  const data = res.data;
@@ -16,7 +17,6 @@ async function getMenu(id) {
16
17
  }
17
18
  return data;
18
19
  }
19
- exports.getMenu = getMenu;
20
20
  async function getMenuBySlug(slug) {
21
21
  const res = await (0, client_1.client)().get(`/menus?filter[slug]=${slug}&include=categories.items`);
22
22
  const data = res.data;
@@ -25,4 +25,3 @@ async function getMenuBySlug(slug) {
25
25
  }
26
26
  return data;
27
27
  }
28
- exports.getMenuBySlug = getMenuBySlug;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNavigation = exports.getNavigations = exports.getDefaultNavigation = void 0;
3
+ exports.getDefaultNavigation = getDefaultNavigation;
4
+ exports.getNavigations = getNavigations;
5
+ exports.getNavigation = getNavigation;
4
6
  const client_1 = require("../client");
5
7
  async function getDefaultNavigation() {
6
8
  const navigations = await getNavigations();
7
9
  return navigations[0];
8
10
  }
9
- exports.getDefaultNavigation = getDefaultNavigation;
10
11
  async function getNavigations() {
11
12
  const res = await (0, client_1.client)().get("/navigations");
12
13
  const navigations = res.data;
@@ -15,7 +16,6 @@ async function getNavigations() {
15
16
  return res.data[0];
16
17
  }));
17
18
  }
18
- exports.getNavigations = getNavigations;
19
19
  async function getNavigation(id) {
20
20
  const res = await (0, client_1.client)().get(`/navigations/${id}`);
21
21
  const navigation = res.data;
@@ -26,4 +26,3 @@ async function getNavigation(id) {
26
26
  navigation.items = topLevelItems;
27
27
  return navigation;
28
28
  }
29
- exports.getNavigation = getNavigation;
@@ -1,24 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPageBySlug = exports.getHomePage = exports.getPages = exports.getPage = void 0;
3
+ exports.getPage = getPage;
4
+ exports.getPages = getPages;
5
+ exports.getHomePage = getHomePage;
6
+ exports.getPageBySlug = getPageBySlug;
4
7
  const client_1 = require("../client");
5
8
  async function getPage(slug) {
6
9
  const res = await (0, client_1.client)().get(`/pages/?filter[slug]=${slug}`);
7
10
  return res.data[0];
8
11
  }
9
- exports.getPage = getPage;
10
12
  async function getPages() {
11
13
  const { data } = await (0, client_1.client)().get("/pages");
12
14
  return data;
13
15
  }
14
- exports.getPages = getPages;
15
16
  async function getHomePage() {
16
17
  const res = await (0, client_1.client)().get("/pages?filter[slug]=/");
17
18
  return res.data[0];
18
19
  }
19
- exports.getHomePage = getHomePage;
20
20
  async function getPageBySlug(slug) {
21
21
  const res = await (0, client_1.client)().get("/pages?filter[slug]=" + slug);
22
22
  return res.data[0];
23
23
  }
24
- exports.getPageBySlug = getPageBySlug;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPress = void 0;
3
+ exports.getPress = getPress;
4
4
  const client_1 = require("../client");
5
5
  async function getPress() {
6
6
  const { data } = await (0, client_1.client)().get("/press");
7
7
  return data;
8
8
  }
9
- exports.getPress = getPress;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWebsite = void 0;
3
+ exports.getWebsite = getWebsite;
4
4
  const client_1 = require("../client");
5
5
  async function getWebsite() {
6
6
  const res = await (0, client_1.client)().get("/websites");
7
7
  return res.data[0];
8
8
  }
9
- exports.getWebsite = getWebsite;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMultipleDays = isMultipleDays;
4
+ exports.dateString = dateString;
5
+ exports.timeString = timeString;
6
+ exports.shortDescription = shortDescription;
7
+ exports.makeEventSchema = makeEventSchema;
8
+ function isMultipleDays(start, end) {
9
+ return start.getDate() !== end.getDate();
10
+ }
11
+ function dateString(event) {
12
+ const startTime = new Date(event.start_time);
13
+ const endTime = new Date(event.end_time);
14
+ if (isMultipleDays(startTime, endTime)) {
15
+ const startDayShort = startTime.toLocaleDateString("en-US", { weekday: "short" });
16
+ const startDate = startTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
17
+ const endDate = endTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
18
+ return `${startDayShort}, ${startDate} - ${endDate}`;
19
+ }
20
+ const startDay = startTime.toLocaleDateString("en-US", { weekday: "short" });
21
+ const startDate = startTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
22
+ const startTimeString = startTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
23
+ const endTimeString = endTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
24
+ return `${startDay}, ${startDate}`;
25
+ }
26
+ function timeString(event) {
27
+ const startTime = new Date(event.start_time);
28
+ const endTime = new Date(event.end_time);
29
+ const startTimeString = startTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
30
+ const endTimeString = endTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
31
+ return `${startTimeString} - ${endTimeString}`;
32
+ }
33
+ function shortDescription(event) {
34
+ // event.description is html
35
+ // strip html tags
36
+ // keep newlines
37
+ // return first 50 chars
38
+ const shortDescription = event.description.substring(0, 100);
39
+ return shortDescription;
40
+ }
41
+ function makeEventSchema(website, event, locations) {
42
+ return {
43
+ "@context": "https://schema.org",
44
+ "@type": "Event",
45
+ "@id": `https://${website.domain}/events/${event.id}//#event`,
46
+ eventAttendanceMode: "https://schema.org/OfflineEventAttendanceMode",
47
+ url: `https://${website.domain}/events/${event.id}`,
48
+ name: event.title,
49
+ description: event.description,
50
+ startDate: event.start_time,
51
+ endDate: event.end_time,
52
+ location: [
53
+ {
54
+ "@type": "Place",
55
+ address: {
56
+ "@type": "PostalAddress",
57
+ streetAddress: locations[0].address,
58
+ addressLocality: locations[0].city,
59
+ addressRegion: locations[0].state,
60
+ postalCode: locations[0].zip,
61
+ addressCountry: "US",
62
+ },
63
+ },
64
+ ],
65
+ image: {
66
+ "@type": "ImageObject",
67
+ url: event.cover_media?.transform_url,
68
+ },
69
+ };
70
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gtag = gtag;
4
+ exports.gtagEvent = gtagEvent;
5
+ function gtag(...args) {
6
+ if (typeof window !== "undefined" && window.gtag) {
7
+ window.gtag(...args);
8
+ }
9
+ }
10
+ function gtagEvent(name, params = {}) {
11
+ if (typeof window === "undefined" || !window.gtag)
12
+ return;
13
+ gtag("event", name, params);
14
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = imgproxyLoader;
4
+ function imgproxyLoader({ src, width, height, quality }) {
5
+ const path = `/size:${width ? width : 0}:${height ? height : 0}` +
6
+ `/resizing_type:fill` +
7
+ (quality ? `/quality:${quality}` : "") +
8
+ `/sharpen:0.5` +
9
+ `/plain/${src}` +
10
+ `@webp`;
11
+ const host = process.env.NEXT_PUBLIC_IMGPROXY_URL || "https://imgproxy.antlur.co";
12
+ const imgUrl = `${host}/insecure${path}`;
13
+ return imgUrl;
14
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterPublishedItems = filterPublishedItems;
4
+ function filterPublishedItems(items) {
5
+ return items.filter((item) => item.published_at !== null);
6
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSpecialHoursFromLocation = getSpecialHoursFromLocation;
4
+ const luxon_1 = require("luxon");
5
+ function getSpecialHoursFromLocation(location) {
6
+ if (!location.special_hours)
7
+ return [];
8
+ // filter out any special hours that are before today
9
+ const now = luxon_1.DateTime.now().startOf("day");
10
+ if (location.timezone)
11
+ now.setZone(location.timezone);
12
+ const specialHours = location.special_hours.filter((specialHour) => {
13
+ const specialHourDate = luxon_1.DateTime.fromISO(specialHour.date);
14
+ return specialHourDate >= now;
15
+ });
16
+ // sort by date
17
+ specialHours.sort((a, b) => {
18
+ const aDate = luxon_1.DateTime.fromISO(a.date);
19
+ const bDate = luxon_1.DateTime.fromISO(b.date);
20
+ return aDate > bDate ? 1 : -1;
21
+ });
22
+ return specialHours;
23
+ }
@@ -0,0 +1,7 @@
1
+ interface JsonLdProps {
2
+ schema: any;
3
+ id: string;
4
+ }
5
+ export declare function JsonLd({ schema, id }: JsonLdProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=json-ld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../../src/components/json-ld.tsx"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,2CAGjD"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function JsonLd({ schema, id }) {
3
+ const schemaString = JSON.stringify(schema);
4
+ return _jsx("script", { id: id, type: "application/ld+json", dangerouslySetInnerHTML: { __html: schemaString } });
5
+ }
@@ -64,5 +64,7 @@ export interface Location {
64
64
  height: number;
65
65
  alt: string;
66
66
  };
67
+ status: string;
68
+ status_text: string;
67
69
  }
68
70
  //# sourceMappingURL=location.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/types/location.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH"}
1
+ {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/types/location.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -64,5 +64,6 @@ export interface Website {
64
64
  social_links: SocialLink[];
65
65
  home_cta_text: string | null;
66
66
  home_cta_url: string | null;
67
+ has_accessibility_widget: boolean;
67
68
  }
68
69
  //# sourceMappingURL=website.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"website.d.ts","sourceRoot":"","sources":["../../../src/types/website.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
1
+ {"version":3,"file":"website.d.ts","sourceRoot":"","sources":["../../../src/types/website.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;CACnC"}
@@ -0,0 +1,8 @@
1
+ import type { Event, Location, Website } from "../types";
2
+ import { Event as SchemaEvent, WithContext } from "schema-dts";
3
+ export declare function isMultipleDays(start: Date, end: Date): boolean;
4
+ export declare function dateString(event: Event): string;
5
+ export declare function timeString(event: Event): string;
6
+ export declare function shortDescription(event: Event): string;
7
+ export declare function makeEventSchema(website: Website, event: Event, locations: Location[]): WithContext<SchemaEvent>;
8
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/util/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,WAEpD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,UAkBtC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,UAQtC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,UAQ5C;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,CA6B/G"}
@@ -0,0 +1,63 @@
1
+ export function isMultipleDays(start, end) {
2
+ return start.getDate() !== end.getDate();
3
+ }
4
+ export function dateString(event) {
5
+ const startTime = new Date(event.start_time);
6
+ const endTime = new Date(event.end_time);
7
+ if (isMultipleDays(startTime, endTime)) {
8
+ const startDayShort = startTime.toLocaleDateString("en-US", { weekday: "short" });
9
+ const startDate = startTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
10
+ const endDate = endTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
11
+ return `${startDayShort}, ${startDate} - ${endDate}`;
12
+ }
13
+ const startDay = startTime.toLocaleDateString("en-US", { weekday: "short" });
14
+ const startDate = startTime.toLocaleDateString("en-US", { month: "short", day: "numeric" });
15
+ const startTimeString = startTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
16
+ const endTimeString = endTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
17
+ return `${startDay}, ${startDate}`;
18
+ }
19
+ export function timeString(event) {
20
+ const startTime = new Date(event.start_time);
21
+ const endTime = new Date(event.end_time);
22
+ const startTimeString = startTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
23
+ const endTimeString = endTime.toLocaleTimeString("en-US", { hour: "numeric", minute: "numeric" });
24
+ return `${startTimeString} - ${endTimeString}`;
25
+ }
26
+ export function shortDescription(event) {
27
+ // event.description is html
28
+ // strip html tags
29
+ // keep newlines
30
+ // return first 50 chars
31
+ const shortDescription = event.description.substring(0, 100);
32
+ return shortDescription;
33
+ }
34
+ export function makeEventSchema(website, event, locations) {
35
+ return {
36
+ "@context": "https://schema.org",
37
+ "@type": "Event",
38
+ "@id": `https://${website.domain}/events/${event.id}//#event`,
39
+ eventAttendanceMode: "https://schema.org/OfflineEventAttendanceMode",
40
+ url: `https://${website.domain}/events/${event.id}`,
41
+ name: event.title,
42
+ description: event.description,
43
+ startDate: event.start_time,
44
+ endDate: event.end_time,
45
+ location: [
46
+ {
47
+ "@type": "Place",
48
+ address: {
49
+ "@type": "PostalAddress",
50
+ streetAddress: locations[0].address,
51
+ addressLocality: locations[0].city,
52
+ addressRegion: locations[0].state,
53
+ postalCode: locations[0].zip,
54
+ addressCountry: "US",
55
+ },
56
+ },
57
+ ],
58
+ image: {
59
+ "@type": "ImageObject",
60
+ url: event.cover_media?.transform_url,
61
+ },
62
+ };
63
+ }
@@ -0,0 +1,23 @@
1
+ import { GAEvents } from "../constants/google-events";
2
+ declare global {
3
+ interface Window {
4
+ gtag?: (...args: any[]) => void;
5
+ }
6
+ }
7
+ export declare function gtag(...args: any[]): void;
8
+ interface GtagEventParams {
9
+ category?: string;
10
+ label?: string;
11
+ value?: number;
12
+ page_url?: string;
13
+ location?: string;
14
+ store?: string | null | undefined;
15
+ /** @deprecated Use category instead */
16
+ event_category?: string;
17
+ /** @deprecated Use label instead */
18
+ event_label?: string;
19
+ }
20
+ type GtagEventName = keyof typeof GAEvents | (string & {});
21
+ export declare function gtagEvent(name: GtagEventName, params?: GtagEventParams): void;
22
+ export {};
23
+ //# sourceMappingURL=gtag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtag.d.ts","sourceRoot":"","sources":["../../../src/util/gtag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,4BAA4B,CAAC;AAGnE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KACjC;CACF;AAED,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAIlC;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAElC,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,aAAa,GAAG,MAAM,OAAO,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE3D,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,GAAE,eAAoB,QAI1E"}
@@ -0,0 +1,10 @@
1
+ export function gtag(...args) {
2
+ if (typeof window !== "undefined" && window.gtag) {
3
+ window.gtag(...args);
4
+ }
5
+ }
6
+ export function gtagEvent(name, params = {}) {
7
+ if (typeof window === "undefined" || !window.gtag)
8
+ return;
9
+ gtag("event", name, params);
10
+ }
@@ -0,0 +1,9 @@
1
+ interface ImgproxyLoaderProps {
2
+ src: string;
3
+ width?: number;
4
+ height?: number;
5
+ quality?: number;
6
+ }
7
+ export default function imgproxyLoader({ src, width, height, quality }: ImgproxyLoaderProps): string;
8
+ export {};
9
+ //# sourceMappingURL=imgproxy-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imgproxy-loader.d.ts","sourceRoot":"","sources":["../../../src/util/imgproxy-loader.ts"],"names":[],"mappings":"AAAA,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,mBAAmB,UAc1F"}
@@ -0,0 +1,11 @@
1
+ export default function imgproxyLoader({ src, width, height, quality }) {
2
+ const path = `/size:${width ? width : 0}:${height ? height : 0}` +
3
+ `/resizing_type:fill` +
4
+ (quality ? `/quality:${quality}` : "") +
5
+ `/sharpen:0.5` +
6
+ `/plain/${src}` +
7
+ `@webp`;
8
+ const host = process.env.NEXT_PUBLIC_IMGPROXY_URL || "https://imgproxy.antlur.co";
9
+ const imgUrl = `${host}/insecure${path}`;
10
+ return imgUrl;
11
+ }
@@ -0,0 +1,2 @@
1
+ export declare function filterPublishedItems(items: any[]): any[];
2
+ //# sourceMappingURL=publishing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/util/publishing.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,SAEhD"}
@@ -0,0 +1,3 @@
1
+ export function filterPublishedItems(items) {
2
+ return items.filter((item) => item.published_at !== null);
3
+ }
@@ -0,0 +1,3 @@
1
+ import type { Location } from "../types";
2
+ export declare function getSpecialHoursFromLocation(location: Location): any[];
3
+ //# sourceMappingURL=special-hours.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"special-hours.d.ts","sourceRoot":"","sources":["../../../src/util/special-hours.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,EAAE,CAoBrE"}
@@ -0,0 +1,20 @@
1
+ import { DateTime } from "luxon";
2
+ export function getSpecialHoursFromLocation(location) {
3
+ if (!location.special_hours)
4
+ return [];
5
+ // filter out any special hours that are before today
6
+ const now = DateTime.now().startOf("day");
7
+ if (location.timezone)
8
+ now.setZone(location.timezone);
9
+ const specialHours = location.special_hours.filter((specialHour) => {
10
+ const specialHourDate = DateTime.fromISO(specialHour.date);
11
+ return specialHourDate >= now;
12
+ });
13
+ // sort by date
14
+ specialHours.sort((a, b) => {
15
+ const aDate = DateTime.fromISO(a.date);
16
+ const bDate = DateTime.fromISO(b.date);
17
+ return aDate > bDate ? 1 : -1;
18
+ });
19
+ return specialHours;
20
+ }
@@ -0,0 +1,7 @@
1
+ interface JsonLdProps {
2
+ schema: any;
3
+ id: string;
4
+ }
5
+ export declare function JsonLd({ schema, id }: JsonLdProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=json-ld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../../src/components/json-ld.tsx"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,2CAGjD"}
@@ -64,5 +64,7 @@ export interface Location {
64
64
  height: number;
65
65
  alt: string;
66
66
  };
67
+ status: string;
68
+ status_text: string;
67
69
  }
68
70
  //# sourceMappingURL=location.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/types/location.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH"}
1
+ {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/types/location.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE;QACd,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -64,5 +64,6 @@ export interface Website {
64
64
  social_links: SocialLink[];
65
65
  home_cta_text: string | null;
66
66
  home_cta_url: string | null;
67
+ has_accessibility_widget: boolean;
67
68
  }
68
69
  //# sourceMappingURL=website.d.ts.map