ogm-viewer 0.5.0 → 0.5.1

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 (27) hide show
  1. package/dist/cjs/{lerc-Df0hDWkS.js → lerc-IU-tWkVO.js} +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/{ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-DMEfXquS.js → ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-BAGJpqMB.js} +26 -25
  4. package/dist/cjs/ogm-alerts_11.cjs.entry.js +1 -1
  5. package/dist/cjs/ogm-viewer.cjs.js +1 -1
  6. package/dist/collection/components/ogm-map/ogm-map.js +11 -1
  7. package/dist/collection/components/ogm-menubar/ogm-menubar.js +23 -2
  8. package/dist/collection/components/ogm-menubar/ogm-menubar.test.js +34 -0
  9. package/dist/collection/components/ogm-previews/ogm-previews.js +1 -2
  10. package/dist/collection/components/ogm-previews/ogm-previews.test.js +2 -2
  11. package/dist/collection/components/ogm-viewer/ogm-viewer.css +6 -2
  12. package/dist/collection/components/ogm-viewer/ogm-viewer.js +29 -18
  13. package/dist/esm/{lerc-CB_Jcu33.js → lerc-yC3LNu-h.js} +1 -1
  14. package/dist/esm/loader.js +1 -1
  15. package/dist/esm/{ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-Dlc6USWB.js → ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-BpVupgSB.js} +26 -25
  16. package/dist/esm/ogm-alerts_11.entry.js +1 -1
  17. package/dist/esm/ogm-viewer.js +1 -1
  18. package/dist/ogm-viewer/ogm-viewer.esm.js +1 -1
  19. package/dist/ogm-viewer/{p-7936ccc9.entry.js → p-11cf948e.entry.js} +1 -1
  20. package/dist/ogm-viewer/{p-CWtUrqsM.js → p-DPOGJxir.js} +3 -3
  21. package/dist/ogm-viewer/{p-DqRDI3AC.js → p-_eTjrSO2.js} +1 -1
  22. package/dist/types/components/ogm-map/ogm-map.d.ts +1 -0
  23. package/dist/types/components/ogm-menubar/ogm-menubar.d.ts +2 -1
  24. package/dist/types/components/ogm-viewer/ogm-viewer.d.ts +1 -0
  25. package/dist/types/components.d.ts +18 -0
  26. package/package.json +1 -1
  27. package/readme.md +1 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var pako_esm = require('./pako.esm-B4B6rBoN.js');
4
- var ogmAlerts_ogmAttributes_ogmImage_ogmMap_ogmMenubar_ogmMetadata_ogmPreview_ogmPreviews_ogmSettings_ogmSidebar_ogmViewer_entry = require('./ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-DMEfXquS.js');
4
+ var ogmAlerts_ogmAttributes_ogmImage_ogmMap_ogmMenubar_ogmMetadata_ogmPreview_ogmPreviews_ogmSettings_ogmSidebar_ogmViewer_entry = require('./ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-BAGJpqMB.js');
5
5
  var basedecoder = require('./basedecoder-CIx0DB_u.js');
6
6
  require('./index-mu9UK_Fb.js');
7
7
 
@@ -6,7 +6,7 @@ var appGlobals = require('./app-globals-V2Kpy_OQ.js');
6
6
  const defineCustomElements = async (win, options) => {
7
7
  if (typeof window === 'undefined') return undefined;
8
8
  await appGlobals.globalScripts();
9
- return index.bootstrapLazy([["ogm-alerts_11.cjs",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
9
+ return index.bootstrapLazy([["ogm-alerts_11.cjs",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"hideTitle":[4,"hide-title"],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4],"hideTitle":[4,"hide-title"]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"theme":[{"onThemeChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
10
10
  };
11
11
 
12
12
  exports.setNonce = index.setNonce;
@@ -43590,7 +43590,7 @@ const defaultDecoderDefinitions = [
43590
43590
  // LERC
43591
43591
  {
43592
43592
  cases: 34887,
43593
- importFn: () => Promise.resolve().then(function () { return require('./lerc-Df0hDWkS.js'); })
43593
+ importFn: () => Promise.resolve().then(function () { return require('./lerc-IU-tWkVO.js'); })
43594
43594
  .then(async (m) => {
43595
43595
  await m.zstd.init();
43596
43596
  return m;
@@ -51004,6 +51004,13 @@ const OgmMap = class {
51004
51004
  this.mapIdle.emit();
51005
51005
  }
51006
51006
  }
51007
+ // When the theme changes, swap the basemap to match.
51008
+ onThemeChange() {
51009
+ if (!this.map)
51010
+ return;
51011
+ this.map.setStyle(this.mapTheme.getBaseMapStyle());
51012
+ this.map.once('style.load', async () => await this.previewSource(this.source));
51013
+ }
51007
51014
  // Surface MapLibre errors tied to the current preview source, skipping the
51008
51015
  // noise from basemap/glyph/sprite loads, and deduped to a single alert per load attempt.
51009
51016
  handleMapError(event) {
@@ -51107,12 +51114,15 @@ const OgmMap = class {
51107
51114
  return this.previewer?.layerIds || [];
51108
51115
  }
51109
51116
  render() {
51110
- return index.h("div", { key: '9519610af20287a4d7e28470c715accc5ffb8430', id: "map", class: `wa-${this.theme}` });
51117
+ return index.h("div", { key: 'c683bc9d81e84caa58d4575d0812c5fcdb096e28', id: "map", class: `wa-${this.theme}` });
51111
51118
  }
51112
51119
  static get watchers() { return {
51113
51120
  "source": [{
51114
51121
  "previewSource": 0
51115
51122
  }],
51123
+ "theme": [{
51124
+ "onThemeChange": 0
51125
+ }],
51116
51126
  "padding": [{
51117
51127
  "onPaddingChange": 0
51118
51128
  }]
@@ -51129,10 +51139,11 @@ const OgmMenubar = class {
51129
51139
  }
51130
51140
  record;
51131
51141
  theme;
51132
- sidebarToggled;
51133
51142
  loading = false;
51143
+ hideTitle = false;
51144
+ sidebarToggled;
51134
51145
  render() {
51135
- return (index.h("div", { key: '437b8f1b6f44844f1db4460c6597c0a68479a8f7', class: `menubar ${this.theme && `wa-${this.theme}`}` }, index.h("wa-button", { key: 'baf0a0baa96fcf3f114fdf47b4446b90df862c6b', appearance: "plain", class: "menu-button", onclick: this.sidebarToggled.emit }, index.h("wa-icon", { key: 'b4e1c07bd7284dbd191997a4b270d12c1e1d5b63', name: "list", label: "Open sidebar", canvas: "auto" })), this.record?.restricted && (index.h(index.h.Fragment, null, index.h("wa-tooltip", { key: '4e8d318982e7bd8af99b320e4810b23d0c00b264', for: "restricted-icon" }, "Restricted access"), index.h("wa-icon", { key: '6da389ec7b55697d203dd2935af192ae64c0622b', id: "restricted-icon", name: "lock-fill", label: "Restricted access", class: "restricted-icon", canvas: "auto" }))), index.h("div", { key: 'd118cbb176a44ae761d82c7adff2b0fa31cbe87e', class: "title" }, this.record?.title), this.loading && index.h("wa-spinner", { key: '5bc6c254a1fa5b4b4bb82ec8fc1cc04ff1457a31', class: "loading-spinner" })));
51146
+ return (index.h("div", { key: '470fcb6d5d31cc9a53142372e82c6b15563863d3', class: `menubar ${this.theme && `wa-${this.theme}`}` }, index.h("wa-button", { key: '22dec0e10b5b12a1481355d97cc61b6c85b7e612', appearance: "plain", class: "menu-button", onclick: this.sidebarToggled.emit }, index.h("wa-icon", { key: '48f29ad88af2d982392d946cf11fdc7e605b7aa6', name: "list", label: "Open sidebar", canvas: "auto" })), this.record?.restricted && (index.h(index.h.Fragment, null, index.h("wa-tooltip", { key: 'fa26b6d78dc07d0a009a941e6c2587342a8d6fe4', for: "restricted-icon" }, "Restricted access"), index.h("wa-icon", { key: '0aaece23cb54401ed62634c079cbfdca63926d69', id: "restricted-icon", name: "lock-fill", label: "Restricted access", class: "restricted-icon", canvas: "auto" }))), !this.hideTitle && index.h("div", { key: '89d30f43c7d84478dae1777a5be57136342d72f0', class: "title" }, this.record?.title), this.loading && index.h("wa-spinner", { key: '69a12e09d0b807e85000d63ee3fba8fb98c4ec33', class: "loading-spinner" })));
51136
51147
  }
51137
51148
  };
51138
51149
  OgmMenubar.style = ogmMenubarCss();
@@ -53294,9 +53305,8 @@ const OgmPreviews = class {
53294
53305
  }
53295
53306
  // Render as tabs for switching between sources
53296
53307
  render() {
53297
- // Render a blank map if there is no record or no sources
53298
53308
  if (!this.record || !this.sources.length)
53299
- return index.h("ogm-map", { theme: this.theme, padding: this.sidebarPadding });
53309
+ return;
53300
53310
  return (index.h(index.Host, { class: this.theme && `wa-${this.theme}` }, index.h("wa-tab-group", null, this.sources.map((source, idx) => (index.h("wa-tab", { key: idx, panel: `${source.constructor.name}-${source.id}-${idx}` }, source.label()))), this.sources.map((source, idx) => (index.h("wa-tab-panel", { key: idx, name: `${source.constructor.name}-${source.id}-${idx}`, active: idx === 0 }, index.h("ogm-preview", { theme: this.theme, source: source, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding })))))));
53301
53311
  }
53302
53312
  static get watchers() { return {
@@ -61955,7 +61965,7 @@ WaTabPanel = __decorateClass([
61955
61965
  t$2("wa-tab-panel")
61956
61966
  ], WaTabPanel);
61957
61967
 
61958
- const ogmViewerCss = () => `:host{--stanford-cardinal-red:#8f1414;--accent-color:var(--wa-color-brand-50);}.container{display:flex;flex-direction:column;position:relative;font-family:var(--wa-font-family-body);border:var(--wa-panel-border-width) solid var(--wa-color-surface-border);width:100%;min-height:400px;height:100%}.main-container{position:relative;overflow:hidden;min-height:400px;height:100%}`;
61968
+ const ogmViewerCss = () => `:host{--stanford-cardinal-red:#8f1414}.container{--accent-color:var(--wa-color-brand-50);display:flex;flex-direction:column;position:relative;font-family:var(--wa-font-family-body);border:var(--wa-panel-border-width) solid var(--wa-color-surface-border);width:100%;min-height:400px;height:100%}.main-container{position:relative;overflow:hidden;min-height:400px;height:100%}`;
61959
61969
 
61960
61970
  // Only need to call this once, at the top level
61961
61971
  setBasePath(index.getAssetPath(''));
@@ -61963,23 +61973,11 @@ setBasePath(index.getAssetPath(''));
61963
61973
  registerIconLibrary('default', {
61964
61974
  resolver: name => getBasePath(`assets/icons/${name}.svg`),
61965
61975
  });
61966
- // Web Awesome's raw color palette is scoped to `:root`, which can only ever match the actual
61967
- // document root - never an element inside a shadow tree, so a component-scoped @import can't
61968
- // activate it. Loading it here, at the document level, lets it match `:root` for real, and lets
61969
- // its `.wa-light`/`.wa-dark` theme rules match Host element in each component because that element
61970
- // is part of the page light DOM and not the shadow DOM. Injecting it here means consumers
61971
- // don't have to remember to add it to their own page.
61972
- function loadWebAwesomeStylesheet() {
61973
- const id = 'ogm-viewer-webawesome-styles';
61974
- if (document.getElementById(id))
61975
- return;
61976
- const link = document.createElement('link');
61977
- link.id = id;
61978
- link.rel = 'stylesheet';
61979
- link.href = getBasePath('assets/webawesome/styles/webawesome.css');
61980
- document.head.appendChild(link);
61981
- }
61982
- loadWebAwesomeStylesheet();
61976
+ // Web Awesome activates its palette and semantic color variants on `:root` by default (with
61977
+ // `.wa-*` classes only needed to override the defaults). `:root` never matches inside a shadow
61978
+ // tree, so we opt into each default explicitly on our container to reproduce what a document-level
61979
+ // load would give us: the default palette plus the default hue for every color variant.
61980
+ const WA_SCOPE = 'wa-palette-default wa-brand-blue wa-neutral-gray wa-success-green wa-warning-yellow wa-danger-red';
61983
61981
  const OgmViewer = class {
61984
61982
  constructor(hostRef) {
61985
61983
  index.registerInstance(this, hostRef);
@@ -61987,6 +61985,7 @@ const OgmViewer = class {
61987
61985
  get el() { return index.getElement(this); }
61988
61986
  recordUrl;
61989
61987
  theme = this.getThemePreference();
61988
+ hideTitle = false;
61990
61989
  record;
61991
61990
  error;
61992
61991
  previewOpacity = 100;
@@ -62050,8 +62049,10 @@ const OgmViewer = class {
62050
62049
  return undefined;
62051
62050
  }
62052
62051
  }
62052
+ // Link Web Awesome's stylesheet inside the shadow tree so it doesn't
62053
+ // leak into the host page when rendering.
62053
62054
  render() {
62054
- return (index.h(index.Host, { key: '6fae950d74eac18eca8192c3ab22d27cde8f8215', class: `wa-${this.theme}` }, index.h("div", { key: 'ddaf990f2145b165c24ded5272ec3f0f11d32df1', class: "container" }, index.h("ogm-menubar", { key: '93de36998fdfe07aaea28ee1d32512d129402ae6', theme: this.theme, record: this.record, loading: this.loading }), index.h("div", { key: 'cafd7e0862a8c39008caee372da2e79b48df2aec', class: "main-container" }, index.h("ogm-sidebar", { key: '03b5f864d35a385de6941f3eac9b1da050422eb9', theme: this.theme, record: this.record, open: this.sidebarOpen }), this.error ? (index.h("ogm-alerts", { theme: this.theme, error: this.error })) : (index.h("ogm-previews", { theme: this.theme, record: this.record, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding }))))));
62055
+ return (index.h(index.Host, { key: '042eb882fe5979453b3ea32c11dd9a95dfff6cc1', class: `wa-${this.theme}` }, index.h("link", { key: '510b4ccabdff543fd3724d9f00fcce2fc0da59e4', rel: "stylesheet", href: getBasePath('assets/webawesome/styles/themes/default.css') }), index.h("div", { key: 'ca0916da0a4e14fc6dbda29bc0ed7fcbab4389fa', class: `container ${WA_SCOPE} wa-${this.theme}` }, index.h("ogm-menubar", { key: 'e153abb59c5aa5858e723f1496916517c69a6f79', theme: this.theme, record: this.record, loading: this.loading, hideTitle: this.hideTitle }), index.h("div", { key: 'e83ad788ed7a7da1cbe6771184ba821fedebf868', class: "main-container" }, index.h("ogm-sidebar", { key: '664f9ad8f2b64f998e6fe2a67116413a6d1ac377', theme: this.theme, record: this.record, open: this.sidebarOpen }), this.error ? (index.h("ogm-alerts", { theme: this.theme, error: this.error })) : (index.h("ogm-previews", { theme: this.theme, record: this.record, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding }))))));
62055
62056
  }
62056
62057
  static get watchers() { return {
62057
62058
  "recordUrl": [{
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var ogmAlerts_ogmAttributes_ogmImage_ogmMap_ogmMenubar_ogmMetadata_ogmPreview_ogmPreviews_ogmSettings_ogmSidebar_ogmViewer_entry = require('./ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-DMEfXquS.js');
3
+ var ogmAlerts_ogmAttributes_ogmImage_ogmMap_ogmMenubar_ogmMetadata_ogmPreview_ogmPreviews_ogmSettings_ogmSidebar_ogmViewer_entry = require('./ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-BAGJpqMB.js');
4
4
  require('./index-mu9UK_Fb.js');
5
5
 
6
6
 
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["ogm-alerts_11.cjs",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
22
+ return index.bootstrapLazy([["ogm-alerts_11.cjs",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"hideTitle":[4,"hide-title"],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4],"hideTitle":[4,"hide-title"]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"theme":[{"onThemeChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -156,6 +156,13 @@ export class OgmMap {
156
156
  this.mapIdle.emit();
157
157
  }
158
158
  }
159
+ // When the theme changes, swap the basemap to match.
160
+ onThemeChange() {
161
+ if (!this.map)
162
+ return;
163
+ this.map.setStyle(this.mapTheme.getBaseMapStyle());
164
+ this.map.once('style.load', async () => await this.previewSource(this.source));
165
+ }
159
166
  // Surface MapLibre errors tied to the current preview source, skipping the
160
167
  // noise from basemap/glyph/sprite loads, and deduped to a single alert per load attempt.
161
168
  handleMapError(event) {
@@ -259,7 +266,7 @@ export class OgmMap {
259
266
  return this.previewer?.layerIds || [];
260
267
  }
261
268
  render() {
262
- return h("div", { key: '9519610af20287a4d7e28470c715accc5ffb8430', id: "map", class: `wa-${this.theme}` });
269
+ return h("div", { key: 'c683bc9d81e84caa58d4575d0812c5fcdb096e28', id: "map", class: `wa-${this.theme}` });
263
270
  }
264
271
  static get is() { return "ogm-map"; }
265
272
  static get encapsulation() { return "shadow"; }
@@ -427,6 +434,9 @@ export class OgmMap {
427
434
  return [{
428
435
  "propName": "source",
429
436
  "methodName": "previewSource"
437
+ }, {
438
+ "propName": "theme",
439
+ "methodName": "onThemeChange"
430
440
  }, {
431
441
  "propName": "padding",
432
442
  "methodName": "onPaddingChange"
@@ -2,10 +2,11 @@ import { h } from "@stencil/core";
2
2
  export class OgmMenubar {
3
3
  record;
4
4
  theme;
5
- sidebarToggled;
6
5
  loading = false;
6
+ hideTitle = false;
7
+ sidebarToggled;
7
8
  render() {
8
- return (h("div", { key: '437b8f1b6f44844f1db4460c6597c0a68479a8f7', class: `menubar ${this.theme && `wa-${this.theme}`}` }, h("wa-button", { key: 'baf0a0baa96fcf3f114fdf47b4446b90df862c6b', appearance: "plain", class: "menu-button", onclick: this.sidebarToggled.emit }, h("wa-icon", { key: 'b4e1c07bd7284dbd191997a4b270d12c1e1d5b63', name: "list", label: "Open sidebar", canvas: "auto" })), this.record?.restricted && (h(h.Fragment, null, h("wa-tooltip", { key: '4e8d318982e7bd8af99b320e4810b23d0c00b264', for: "restricted-icon" }, "Restricted access"), h("wa-icon", { key: '6da389ec7b55697d203dd2935af192ae64c0622b', id: "restricted-icon", name: "lock-fill", label: "Restricted access", class: "restricted-icon", canvas: "auto" }))), h("div", { key: 'd118cbb176a44ae761d82c7adff2b0fa31cbe87e', class: "title" }, this.record?.title), this.loading && h("wa-spinner", { key: '5bc6c254a1fa5b4b4bb82ec8fc1cc04ff1457a31', class: "loading-spinner" })));
9
+ return (h("div", { key: '470fcb6d5d31cc9a53142372e82c6b15563863d3', class: `menubar ${this.theme && `wa-${this.theme}`}` }, h("wa-button", { key: '22dec0e10b5b12a1481355d97cc61b6c85b7e612', appearance: "plain", class: "menu-button", onclick: this.sidebarToggled.emit }, h("wa-icon", { key: '48f29ad88af2d982392d946cf11fdc7e605b7aa6', name: "list", label: "Open sidebar", canvas: "auto" })), this.record?.restricted && (h(h.Fragment, null, h("wa-tooltip", { key: 'fa26b6d78dc07d0a009a941e6c2587342a8d6fe4', for: "restricted-icon" }, "Restricted access"), h("wa-icon", { key: '0aaece23cb54401ed62634c079cbfdca63926d69', id: "restricted-icon", name: "lock-fill", label: "Restricted access", class: "restricted-icon", canvas: "auto" }))), !this.hideTitle && h("div", { key: '89d30f43c7d84478dae1777a5be57136342d72f0', class: "title" }, this.record?.title), this.loading && h("wa-spinner", { key: '69a12e09d0b807e85000d63ee3fba8fb98c4ec33', class: "loading-spinner" })));
9
10
  }
10
11
  static get is() { return "ogm-menubar"; }
11
12
  static get encapsulation() { return "shadow"; }
@@ -81,6 +82,26 @@ export class OgmMenubar {
81
82
  "reflect": false,
82
83
  "attribute": "loading",
83
84
  "defaultValue": "false"
85
+ },
86
+ "hideTitle": {
87
+ "type": "boolean",
88
+ "mutable": false,
89
+ "complexType": {
90
+ "original": "boolean",
91
+ "resolved": "boolean",
92
+ "references": {}
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": ""
99
+ },
100
+ "getter": false,
101
+ "setter": false,
102
+ "reflect": false,
103
+ "attribute": "hide-title",
104
+ "defaultValue": "false"
84
105
  }
85
106
  };
86
107
  }
@@ -46,6 +46,40 @@ describe('ogm-menubar', () => {
46
46
  `);
47
47
  });
48
48
  });
49
+ describe('when hideTitle is true', () => {
50
+ it('does not render the title', async () => {
51
+ const record = new OgmRecord({
52
+ id: 'stanford-ff359cr8805',
53
+ dct_title_s: 'Coho Salmon Watersheds: San Francisco Bay Area, California, 2011',
54
+ dct_description_sm: [],
55
+ gbl_resourceType_sm: ['Polygon data'],
56
+ gbl_resourceClass_sm: ['Datasets'],
57
+ dct_accessRights_s: 'Public',
58
+ gbl_mdVersion_s: 'Aardvark',
59
+ });
60
+ const { root } = await render(h("ogm-menubar", { record: record, hideTitle: true }));
61
+ const shadowRoot = root.shadowRoot;
62
+ expect(shadowRoot.querySelector('.title')).toBeNull();
63
+ });
64
+ it('toggles the title when the hideTitle prop changes', async () => {
65
+ const record = new OgmRecord({
66
+ id: 'stanford-ff359cr8805',
67
+ dct_title_s: 'Coho Salmon Watersheds: San Francisco Bay Area, California, 2011',
68
+ dct_description_sm: [],
69
+ gbl_resourceType_sm: ['Polygon data'],
70
+ gbl_resourceClass_sm: ['Datasets'],
71
+ dct_accessRights_s: 'Public',
72
+ gbl_mdVersion_s: 'Aardvark',
73
+ });
74
+ const { root, setProps } = await render(h("ogm-menubar", { record: record, hideTitle: false }));
75
+ const shadowRoot = root.shadowRoot;
76
+ expect(shadowRoot.querySelector('.title')?.textContent?.trim()).toBe('Coho Salmon Watersheds: San Francisco Bay Area, California, 2011');
77
+ await setProps({ hideTitle: true });
78
+ expect(shadowRoot.querySelector('.title')).toBeNull();
79
+ await setProps({ hideTitle: false });
80
+ expect(shadowRoot.querySelector('.title')?.textContent?.trim()).toBe('Coho Salmon Watersheds: San Francisco Bay Area, California, 2011');
81
+ });
82
+ });
49
83
  describe('loading indicator', () => {
50
84
  it('shows the spinner while loading', async () => {
51
85
  const { root } = await render(h("ogm-menubar", { loading: true }));
@@ -48,9 +48,8 @@ export class OgmPreviews {
48
48
  }
49
49
  // Render as tabs for switching between sources
50
50
  render() {
51
- // Render a blank map if there is no record or no sources
52
51
  if (!this.record || !this.sources.length)
53
- return h("ogm-map", { theme: this.theme, padding: this.sidebarPadding });
52
+ return;
54
53
  return (h(Host, { class: this.theme && `wa-${this.theme}` }, h("wa-tab-group", null, this.sources.map((source, idx) => (h("wa-tab", { key: idx, panel: `${source.constructor.name}-${source.id}-${idx}` }, source.label()))), this.sources.map((source, idx) => (h("wa-tab-panel", { key: idx, name: `${source.constructor.name}-${source.id}-${idx}`, active: idx === 0 }, h("ogm-preview", { theme: this.theme, source: source, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding })))))));
55
54
  }
56
55
  static get is() { return "ogm-previews"; }
@@ -65,10 +65,10 @@ describe('ogm-previews', () => {
65
65
  expect(tabs).toHaveLength(1);
66
66
  expect(tabs[0].textContent).toContain('WMS');
67
67
  });
68
- it('falls back to an empty map for a record with no previewable sources', async () => {
68
+ it('renders nothing for a record with no previewable sources', async () => {
69
69
  const shadowRoot = await renderPreviews(buildRecord(false));
70
70
  expect(shadowRoot.querySelector('wa-tab-group')).toBeNull();
71
- expect(shadowRoot.querySelector('ogm-map')).not.toBeNull();
71
+ expect(shadowRoot.querySelectorAll('wa-tab')).toHaveLength(0);
72
72
  });
73
73
  it('wraps a map source in an ogm-preview that renders the map', async () => {
74
74
  const previewShadow = await renderPreviewChild(buildRecordWith({ 'http://geojson.org/geojson-spec.html': 'https://example.com/data.json' }));
@@ -1,10 +1,14 @@
1
1
  :host {
2
2
  --stanford-cardinal-red: #8f1414;
3
- --accent-color: var(--wa-color-brand-50);
4
- /* --accent-color: var(--stanford-cardinal-red); */
5
3
  }
6
4
 
7
5
  .container {
6
+ /* Defined here rather than on :host because it resolves a Web Awesome token, which is only
7
+ available on .container (where the palette/theme stylesheet is activated by the
8
+ wa-palette-default / wa-light|wa-dark classes) and its descendants. */
9
+ --accent-color: var(--wa-color-brand-50);
10
+ /* --accent-color: var(--stanford-cardinal-red); */
11
+
8
12
  display: flex;
9
13
  flex-direction: column;
10
14
  position: relative;
@@ -8,23 +8,6 @@ setBasePath(getAssetPath(''));
8
8
  registerIconLibrary('default', {
9
9
  resolver: name => getBasePath(`assets/icons/${name}.svg`),
10
10
  });
11
- // Web Awesome's raw color palette is scoped to `:root`, which can only ever match the actual
12
- // document root - never an element inside a shadow tree, so a component-scoped @import can't
13
- // activate it. Loading it here, at the document level, lets it match `:root` for real, and lets
14
- // its `.wa-light`/`.wa-dark` theme rules match Host element in each component because that element
15
- // is part of the page light DOM and not the shadow DOM. Injecting it here means consumers
16
- // don't have to remember to add it to their own page.
17
- function loadWebAwesomeStylesheet() {
18
- const id = 'ogm-viewer-webawesome-styles';
19
- if (document.getElementById(id))
20
- return;
21
- const link = document.createElement('link');
22
- link.id = id;
23
- link.rel = 'stylesheet';
24
- link.href = getBasePath('assets/webawesome/styles/webawesome.css');
25
- document.head.appendChild(link);
26
- }
27
- loadWebAwesomeStylesheet();
28
11
  // Import all required Web Awesome components
29
12
  import "@awesome.me/webawesome/dist/components/button/button.js";
30
13
  import "@awesome.me/webawesome/dist/components/callout/callout.js";
@@ -36,10 +19,16 @@ import "@awesome.me/webawesome/dist/components/tab-group/tab-group.js";
36
19
  import "@awesome.me/webawesome/dist/components/tab-panel/tab-panel.js";
37
20
  import "@awesome.me/webawesome/dist/components/tab/tab.js";
38
21
  import "@awesome.me/webawesome/dist/components/tooltip/tooltip.js";
22
+ // Web Awesome activates its palette and semantic color variants on `:root` by default (with
23
+ // `.wa-*` classes only needed to override the defaults). `:root` never matches inside a shadow
24
+ // tree, so we opt into each default explicitly on our container to reproduce what a document-level
25
+ // load would give us: the default palette plus the default hue for every color variant.
26
+ const WA_SCOPE = 'wa-palette-default wa-brand-blue wa-neutral-gray wa-success-green wa-warning-yellow wa-danger-red';
39
27
  export class OgmViewer {
40
28
  el;
41
29
  recordUrl;
42
30
  theme = this.getThemePreference();
31
+ hideTitle = false;
43
32
  record;
44
33
  error;
45
34
  previewOpacity = 100;
@@ -103,8 +92,10 @@ export class OgmViewer {
103
92
  return undefined;
104
93
  }
105
94
  }
95
+ // Link Web Awesome's stylesheet inside the shadow tree so it doesn't
96
+ // leak into the host page when rendering.
106
97
  render() {
107
- return (h(Host, { key: '6fae950d74eac18eca8192c3ab22d27cde8f8215', class: `wa-${this.theme}` }, h("div", { key: 'ddaf990f2145b165c24ded5272ec3f0f11d32df1', class: "container" }, h("ogm-menubar", { key: '93de36998fdfe07aaea28ee1d32512d129402ae6', theme: this.theme, record: this.record, loading: this.loading }), h("div", { key: 'cafd7e0862a8c39008caee372da2e79b48df2aec', class: "main-container" }, h("ogm-sidebar", { key: '03b5f864d35a385de6941f3eac9b1da050422eb9', theme: this.theme, record: this.record, open: this.sidebarOpen }), this.error ? (h("ogm-alerts", { theme: this.theme, error: this.error })) : (h("ogm-previews", { theme: this.theme, record: this.record, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding }))))));
98
+ return (h(Host, { key: '042eb882fe5979453b3ea32c11dd9a95dfff6cc1', class: `wa-${this.theme}` }, h("link", { key: '510b4ccabdff543fd3724d9f00fcce2fc0da59e4', rel: "stylesheet", href: getBasePath('assets/webawesome/styles/themes/default.css') }), h("div", { key: 'ca0916da0a4e14fc6dbda29bc0ed7fcbab4389fa', class: `container ${WA_SCOPE} wa-${this.theme}` }, h("ogm-menubar", { key: 'e153abb59c5aa5858e723f1496916517c69a6f79', theme: this.theme, record: this.record, loading: this.loading, hideTitle: this.hideTitle }), h("div", { key: 'e83ad788ed7a7da1cbe6771184ba821fedebf868', class: "main-container" }, h("ogm-sidebar", { key: '664f9ad8f2b64f998e6fe2a67116413a6d1ac377', theme: this.theme, record: this.record, open: this.sidebarOpen }), this.error ? (h("ogm-alerts", { theme: this.theme, error: this.error })) : (h("ogm-previews", { theme: this.theme, record: this.record, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding }))))));
108
99
  }
109
100
  static get is() { return "ogm-viewer"; }
110
101
  static get encapsulation() { return "shadow"; }
@@ -158,6 +149,26 @@ export class OgmViewer {
158
149
  "reflect": false,
159
150
  "attribute": "theme",
160
151
  "defaultValue": "this.getThemePreference()"
152
+ },
153
+ "hideTitle": {
154
+ "type": "boolean",
155
+ "mutable": false,
156
+ "complexType": {
157
+ "original": "boolean",
158
+ "resolved": "boolean",
159
+ "references": {}
160
+ },
161
+ "required": false,
162
+ "optional": false,
163
+ "docs": {
164
+ "tags": [],
165
+ "text": ""
166
+ },
167
+ "getter": false,
168
+ "setter": false,
169
+ "reflect": false,
170
+ "attribute": "hide-title",
171
+ "defaultValue": "false"
161
172
  }
162
173
  };
163
174
  }
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from './pako.esm-KbdoS3Oq.js';
2
- import { g as getDefaultExportFromCjs, L as LercAddCompression, a as LercParameters } from './ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-Dlc6USWB.js';
2
+ import { g as getDefaultExportFromCjs, L as LercAddCompression, a as LercParameters } from './ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-BpVupgSB.js';
3
3
  import { B as BaseDecoder } from './basedecoder-BK531nfi.js';
4
4
  import './index-DTLAlWKQ.js';
5
5
 
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-DQuL1Twl.js';
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy([["ogm-alerts_11",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
8
+ return bootstrapLazy([["ogm-alerts_11",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"hideTitle":[4,"hide-title"],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4],"hideTitle":[4,"hide-title"]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"theme":[{"onThemeChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };
@@ -43588,7 +43588,7 @@ const defaultDecoderDefinitions = [
43588
43588
  // LERC
43589
43589
  {
43590
43590
  cases: 34887,
43591
- importFn: () => import('./lerc-CB_Jcu33.js')
43591
+ importFn: () => import('./lerc-yC3LNu-h.js')
43592
43592
  .then(async (m) => {
43593
43593
  await m.zstd.init();
43594
43594
  return m;
@@ -51002,6 +51002,13 @@ const OgmMap = class {
51002
51002
  this.mapIdle.emit();
51003
51003
  }
51004
51004
  }
51005
+ // When the theme changes, swap the basemap to match.
51006
+ onThemeChange() {
51007
+ if (!this.map)
51008
+ return;
51009
+ this.map.setStyle(this.mapTheme.getBaseMapStyle());
51010
+ this.map.once('style.load', async () => await this.previewSource(this.source));
51011
+ }
51005
51012
  // Surface MapLibre errors tied to the current preview source, skipping the
51006
51013
  // noise from basemap/glyph/sprite loads, and deduped to a single alert per load attempt.
51007
51014
  handleMapError(event) {
@@ -51105,12 +51112,15 @@ const OgmMap = class {
51105
51112
  return this.previewer?.layerIds || [];
51106
51113
  }
51107
51114
  render() {
51108
- return h$2("div", { key: '9519610af20287a4d7e28470c715accc5ffb8430', id: "map", class: `wa-${this.theme}` });
51115
+ return h$2("div", { key: 'c683bc9d81e84caa58d4575d0812c5fcdb096e28', id: "map", class: `wa-${this.theme}` });
51109
51116
  }
51110
51117
  static get watchers() { return {
51111
51118
  "source": [{
51112
51119
  "previewSource": 0
51113
51120
  }],
51121
+ "theme": [{
51122
+ "onThemeChange": 0
51123
+ }],
51114
51124
  "padding": [{
51115
51125
  "onPaddingChange": 0
51116
51126
  }]
@@ -51127,10 +51137,11 @@ const OgmMenubar = class {
51127
51137
  }
51128
51138
  record;
51129
51139
  theme;
51130
- sidebarToggled;
51131
51140
  loading = false;
51141
+ hideTitle = false;
51142
+ sidebarToggled;
51132
51143
  render() {
51133
- return (h$2("div", { key: '437b8f1b6f44844f1db4460c6597c0a68479a8f7', class: `menubar ${this.theme && `wa-${this.theme}`}` }, h$2("wa-button", { key: 'baf0a0baa96fcf3f114fdf47b4446b90df862c6b', appearance: "plain", class: "menu-button", onclick: this.sidebarToggled.emit }, h$2("wa-icon", { key: 'b4e1c07bd7284dbd191997a4b270d12c1e1d5b63', name: "list", label: "Open sidebar", canvas: "auto" })), this.record?.restricted && (h$2(h$2.Fragment, null, h$2("wa-tooltip", { key: '4e8d318982e7bd8af99b320e4810b23d0c00b264', for: "restricted-icon" }, "Restricted access"), h$2("wa-icon", { key: '6da389ec7b55697d203dd2935af192ae64c0622b', id: "restricted-icon", name: "lock-fill", label: "Restricted access", class: "restricted-icon", canvas: "auto" }))), h$2("div", { key: 'd118cbb176a44ae761d82c7adff2b0fa31cbe87e', class: "title" }, this.record?.title), this.loading && h$2("wa-spinner", { key: '5bc6c254a1fa5b4b4bb82ec8fc1cc04ff1457a31', class: "loading-spinner" })));
51144
+ return (h$2("div", { key: '470fcb6d5d31cc9a53142372e82c6b15563863d3', class: `menubar ${this.theme && `wa-${this.theme}`}` }, h$2("wa-button", { key: '22dec0e10b5b12a1481355d97cc61b6c85b7e612', appearance: "plain", class: "menu-button", onclick: this.sidebarToggled.emit }, h$2("wa-icon", { key: '48f29ad88af2d982392d946cf11fdc7e605b7aa6', name: "list", label: "Open sidebar", canvas: "auto" })), this.record?.restricted && (h$2(h$2.Fragment, null, h$2("wa-tooltip", { key: 'fa26b6d78dc07d0a009a941e6c2587342a8d6fe4', for: "restricted-icon" }, "Restricted access"), h$2("wa-icon", { key: '0aaece23cb54401ed62634c079cbfdca63926d69', id: "restricted-icon", name: "lock-fill", label: "Restricted access", class: "restricted-icon", canvas: "auto" }))), !this.hideTitle && h$2("div", { key: '89d30f43c7d84478dae1777a5be57136342d72f0', class: "title" }, this.record?.title), this.loading && h$2("wa-spinner", { key: '69a12e09d0b807e85000d63ee3fba8fb98c4ec33', class: "loading-spinner" })));
51134
51145
  }
51135
51146
  };
51136
51147
  OgmMenubar.style = ogmMenubarCss();
@@ -53292,9 +53303,8 @@ const OgmPreviews = class {
53292
53303
  }
53293
53304
  // Render as tabs for switching between sources
53294
53305
  render() {
53295
- // Render a blank map if there is no record or no sources
53296
53306
  if (!this.record || !this.sources.length)
53297
- return h$2("ogm-map", { theme: this.theme, padding: this.sidebarPadding });
53307
+ return;
53298
53308
  return (h$2(Host, { class: this.theme && `wa-${this.theme}` }, h$2("wa-tab-group", null, this.sources.map((source, idx) => (h$2("wa-tab", { key: idx, panel: `${source.constructor.name}-${source.id}-${idx}` }, source.label()))), this.sources.map((source, idx) => (h$2("wa-tab-panel", { key: idx, name: `${source.constructor.name}-${source.id}-${idx}`, active: idx === 0 }, h$2("ogm-preview", { theme: this.theme, source: source, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding })))))));
53299
53309
  }
53300
53310
  static get watchers() { return {
@@ -61953,7 +61963,7 @@ WaTabPanel = __decorateClass([
61953
61963
  t$2("wa-tab-panel")
61954
61964
  ], WaTabPanel);
61955
61965
 
61956
- const ogmViewerCss = () => `:host{--stanford-cardinal-red:#8f1414;--accent-color:var(--wa-color-brand-50);}.container{display:flex;flex-direction:column;position:relative;font-family:var(--wa-font-family-body);border:var(--wa-panel-border-width) solid var(--wa-color-surface-border);width:100%;min-height:400px;height:100%}.main-container{position:relative;overflow:hidden;min-height:400px;height:100%}`;
61966
+ const ogmViewerCss = () => `:host{--stanford-cardinal-red:#8f1414}.container{--accent-color:var(--wa-color-brand-50);display:flex;flex-direction:column;position:relative;font-family:var(--wa-font-family-body);border:var(--wa-panel-border-width) solid var(--wa-color-surface-border);width:100%;min-height:400px;height:100%}.main-container{position:relative;overflow:hidden;min-height:400px;height:100%}`;
61957
61967
 
61958
61968
  // Only need to call this once, at the top level
61959
61969
  setBasePath(getAssetPath(''));
@@ -61961,23 +61971,11 @@ setBasePath(getAssetPath(''));
61961
61971
  registerIconLibrary('default', {
61962
61972
  resolver: name => getBasePath(`assets/icons/${name}.svg`),
61963
61973
  });
61964
- // Web Awesome's raw color palette is scoped to `:root`, which can only ever match the actual
61965
- // document root - never an element inside a shadow tree, so a component-scoped @import can't
61966
- // activate it. Loading it here, at the document level, lets it match `:root` for real, and lets
61967
- // its `.wa-light`/`.wa-dark` theme rules match Host element in each component because that element
61968
- // is part of the page light DOM and not the shadow DOM. Injecting it here means consumers
61969
- // don't have to remember to add it to their own page.
61970
- function loadWebAwesomeStylesheet() {
61971
- const id = 'ogm-viewer-webawesome-styles';
61972
- if (document.getElementById(id))
61973
- return;
61974
- const link = document.createElement('link');
61975
- link.id = id;
61976
- link.rel = 'stylesheet';
61977
- link.href = getBasePath('assets/webawesome/styles/webawesome.css');
61978
- document.head.appendChild(link);
61979
- }
61980
- loadWebAwesomeStylesheet();
61974
+ // Web Awesome activates its palette and semantic color variants on `:root` by default (with
61975
+ // `.wa-*` classes only needed to override the defaults). `:root` never matches inside a shadow
61976
+ // tree, so we opt into each default explicitly on our container to reproduce what a document-level
61977
+ // load would give us: the default palette plus the default hue for every color variant.
61978
+ const WA_SCOPE = 'wa-palette-default wa-brand-blue wa-neutral-gray wa-success-green wa-warning-yellow wa-danger-red';
61981
61979
  const OgmViewer = class {
61982
61980
  constructor(hostRef) {
61983
61981
  registerInstance(this, hostRef);
@@ -61985,6 +61983,7 @@ const OgmViewer = class {
61985
61983
  get el() { return getElement$1(this); }
61986
61984
  recordUrl;
61987
61985
  theme = this.getThemePreference();
61986
+ hideTitle = false;
61988
61987
  record;
61989
61988
  error;
61990
61989
  previewOpacity = 100;
@@ -62048,8 +62047,10 @@ const OgmViewer = class {
62048
62047
  return undefined;
62049
62048
  }
62050
62049
  }
62050
+ // Link Web Awesome's stylesheet inside the shadow tree so it doesn't
62051
+ // leak into the host page when rendering.
62051
62052
  render() {
62052
- return (h$2(Host, { key: '6fae950d74eac18eca8192c3ab22d27cde8f8215', class: `wa-${this.theme}` }, h$2("div", { key: 'ddaf990f2145b165c24ded5272ec3f0f11d32df1', class: "container" }, h$2("ogm-menubar", { key: '93de36998fdfe07aaea28ee1d32512d129402ae6', theme: this.theme, record: this.record, loading: this.loading }), h$2("div", { key: 'cafd7e0862a8c39008caee372da2e79b48df2aec', class: "main-container" }, h$2("ogm-sidebar", { key: '03b5f864d35a385de6941f3eac9b1da050422eb9', theme: this.theme, record: this.record, open: this.sidebarOpen }), this.error ? (h$2("ogm-alerts", { theme: this.theme, error: this.error })) : (h$2("ogm-previews", { theme: this.theme, record: this.record, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding }))))));
62053
+ return (h$2(Host, { key: '042eb882fe5979453b3ea32c11dd9a95dfff6cc1', class: `wa-${this.theme}` }, h$2("link", { key: '510b4ccabdff543fd3724d9f00fcce2fc0da59e4', rel: "stylesheet", href: getBasePath('assets/webawesome/styles/themes/default.css') }), h$2("div", { key: 'ca0916da0a4e14fc6dbda29bc0ed7fcbab4389fa', class: `container ${WA_SCOPE} wa-${this.theme}` }, h$2("ogm-menubar", { key: 'e153abb59c5aa5858e723f1496916517c69a6f79', theme: this.theme, record: this.record, loading: this.loading, hideTitle: this.hideTitle }), h$2("div", { key: 'e83ad788ed7a7da1cbe6771184ba821fedebf868', class: "main-container" }, h$2("ogm-sidebar", { key: '664f9ad8f2b64f998e6fe2a67116413a6d1ac377', theme: this.theme, record: this.record, open: this.sidebarOpen }), this.error ? (h$2("ogm-alerts", { theme: this.theme, error: this.error })) : (h$2("ogm-previews", { theme: this.theme, record: this.record, "preview-opacity": this.previewOpacity, "sidebar-padding": this.sidebarPadding }))))));
62053
62054
  }
62054
62055
  static get watchers() { return {
62055
62056
  "recordUrl": [{
@@ -1,2 +1,2 @@
1
- export { O as ogm_alerts, b as ogm_attributes, c as ogm_image, d as ogm_map, e as ogm_menubar, f as ogm_metadata, h as ogm_preview, i as ogm_previews, j as ogm_settings, k as ogm_sidebar, l as ogm_viewer } from './ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-Dlc6USWB.js';
1
+ export { O as ogm_alerts, b as ogm_attributes, c as ogm_image, d as ogm_map, e as ogm_menubar, f as ogm_metadata, h as ogm_preview, i as ogm_previews, j as ogm_settings, k as ogm_sidebar, l as ogm_viewer } from './ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-BpVupgSB.js';
2
2
  import './index-DTLAlWKQ.js';