@performant-software/core-data 1.2.0-beta.10 → 1.2.0-beta.11
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.
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/main.css +3 -810
- package/package.json +4 -3
- package/src/components/PlaceMarker.js +0 -2
- package/types/components/PlaceMarker.js.flow +0 -2
package/build/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{LoadAnimation:()=>a,MediaGallery:()=>u,PlaceDetailsPanel:()=>C,PlaceMarker:()=>z,PlaceResultsList:()=>B,RelatedItemsList:()=>I,RelatedList:()=>x,RelatedMedia:()=>w,RelatedOrganization:()=>N,RelatedPeople:()=>O,RelatedPlaces:()=>j,RelatedTaxonomies:()=>P});const r=require("react");var n=e.n(r);const a=function(e){var t="".concat(e.className||""," loader three-dots").trim();return n().createElement("span",{className:t})},l=require("@radix-ui/react-dialog"),o=require("@samvera/clover-iiif/viewer");var i=e.n(o);const c=require("lucide-react"),u=function(e){return n().createElement(l.Root,{className:"media-gallery",onOpenChange:e.onClose,open:Boolean(e.defaultItem)},n().createElement(l.Portal,null,n().createElement(l.Overlay,{className:"dialog-overlay"}),n().createElement(l.Content,{className:"dialog-content"},n().createElement(l.Title,{className:"dialog-title flex items-center"},n().createElement(c.Image,{className:"h-4 w-4 mr-1.5"}),e.title),n().createElement("div",{className:"pt-6 pb-2 text-sm w-full text-muted min-h-20"},Boolean(e.defaultItem)&&n().createElement(i(),{iiifContent:e.defaultItem.manifest_url,options:{informationPanel:{open:!1}}})),n().createElement(l.Close,{asChild:!0},n().createElement("button",{className:"dialog-close rounded-full",type:"button"},n().createElement(c.X,{className:"h-7 w-7 p-1.5"}))))))},s=require("underscore");var m=e.n(s);const d=require("@radix-ui/react-accordion"),f=require("i18next");var p=e.n(f),b={en:{translation:JSON.parse('{"RelatedItemsList":{"labels":{"count":"({{count}})"}},"RelatedOrganizations":{"labels":{"empty":"No related organizations"}},"RelatedPeople":{"labels":{"empty":"No related people"}},"RelatedPlaces":{"labels":{"empty":"No related places"}},"RelatedTaxonomies":{"labels":{"empty":"No related taxonomies"}}}')}},y=p().createInstance();y.init({debug:!0,fallbackLng:"en",lng:"en",interpolation:{escapeValue:!1},resources:b});const v=y,g=require("@samvera/clover-iiif/primitives");function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var E=function(e){var t,a,l,o=(a=(0,r.useState)(),l=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,i=[],c=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return i}}(a,l)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}(a,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],c=o[1];return n().createElement("div",{className:"p-3 pb-4 grid grid-cols-3 gap-1"},m().map(null===(t=e.data)||void 0===t?void 0:t.items,(function(t){return n().createElement(g.Thumbnail,{key:t.body.id,className:"rounded shadow cursor-pointer",onClick:function(){return c(t.body)},thumbnail:[{id:t.body.content_thumbnail_url,type:"Image",width:e.thumbnailWidth,height:e.thumbnailHeight}]})})),n().createElement(u,{defaultItem:i,onClose:function(){return c(void 0)}}))};E.defaultProps={thumbnailHeight:80,thumbnailWidth:80};const w=E,x=function(e){var t=e.data.items;return m().isEmpty(t)?n().createElement("div",{className:"pt-6 pl-3 pr-6 pb-8 flex items-center justify-center text-muted/50 italic"},e.emptyMessage):n().createElement("ul",{className:"p-3 pt-1 pb-4"},m().map(t,(function(t){return n().createElement("li",{key:t.id,className:"flex items-center"},e.renderItem(t))})))},N=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedOrganizations.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.Building2,{className:"h-4 w-4 mr-1.5"}),e.body.title)}})},O=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedPeople.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.UserCircle,{className:"h-4 w-4 mr-1.5"}),e.body.title)}})},j=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedPlaces.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.MapPin,{className:"h-4 w-4 mr-0.5 inline-block mb-0.5"}),e.body.title)}})},P=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedTaxonomies.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.ListTree,{className:"h-4 w-4 mr-1.5"}),e.body.title)}})};var S=["data","error"];const I=function(e){return m().isEmpty(e.items)?null:n().createElement(d.Root,{className:"related-items-list",type:"multiple"},m().map(e.items,(function(e){var t,r=e.data,l=e.error,o=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,S);return n().createElement(d.Item,{key:o.endpoint,value:o.endpoint},n().createElement(d.Header,null,n().createElement(d.Trigger,{className:"accordion-trigger border-black/20 border border-t border-b-0 border-l-0 border-r-0 border-solid rounded-none w-full flex justify-between items-center px-3 py-3 text-sm"},n().createElement("div",null,o.ui_label,r&&n().createElement("span",{className:"ml-1"},v.t("RelatedItemsList.labels.count",{count:null===(t=r.items)||void 0===t?void 0:t.length})),l&&n().createElement(c.AlertCircle,{className:"inline ml-1.5 h-4 w-4 text-red-600 align-text-bottom"}),!(r||l)&&n().createElement(a,{className:"text-muted/60 ml-4"})),n().createElement(c.ChevronDown,{className:"accordion-chevron h-4 w-4"}))),n().createElement(d.Content,{className:"accordion-content text-sm leading-6"},"media_contents"===o.endpoint&&n().createElement(w,{data:r}),"organizations"===o.endpoint&&n().createElement(N,{data:r}),"people"===o.endpoint&&n().createElement(O,{data:r}),"places"===o.endpoint&&n().createElement(j,{data:r}),"taxonomies"===o.endpoint&&n().createElement(P,{data:r})))})))},C=function(e){var t=(0,r.useRef)(null),a=(0,r.useMemo)((function(){var t=e.related.find((function(e){var t;return"media_contents"===e.endpoint&&!m().isEmpty(null===(t=e.data)||void 0===t?void 0:t.items)}));return t?t.data&&t.data.items[0].body:void 0}),[e.related]),l=(0,r.useMemo)((function(){var t;return null!==(t=e.place)&&void 0!==t&&t.user_defined?Object.values(e.place.user_defined):[]}),[e.place]);return n().createElement("aside",{className:"flex flex-col absolute z-10 h-full w-[280px] bg-white/80 backdrop-blur shadow overflow-y-auto",ref:t},n().createElement("button",{className:"absolute top-2 right-2 p-1.5 rounded-full z-10 bg-slate-200/60 hover:bg-slate-200 focus:outline-2 focus:outline-offset-2 focus:outline-teal-700",onClick:e.onClose,type:"button"},n().createElement(c.X,{className:"h-4 w-4"})),e.place&&n().createElement(n().Fragment,null,a&&n().createElement("div",{className:"relative w-full h-[200px] flex-grow-0 flex-shrink-0 bg-muted/20 z-0"},n().createElement("div",{className:"absolute top-0 left-0 w-full h-full flex justify-center items-center"},n().createElement(c.Image,{className:"h-20 w-20 text-gray-400",strokeWidth:1})),n().createElement("div",{className:"absolute top-0 left-0 w-full h-full flex justify-center items-center"},n().createElement("img",{className:"object-cover h-full w-full",src:a.content_url,alt:a.title}))),n().createElement("div",{className:"p-3"},n().createElement("h1",{className:"pr-6 font-medium"},e.place.properties.title),n().createElement("ol",{className:"text-sm mt-4 leading-6 overflow-hidden"},m().map(l,(function(e){var t=e.label,r=e.value;return n().createElement("li",{key:t,className:"mb-2"},n().createElement("div",{className:"text-muted"},t),n().createElement("div",{className:"font-medium overflow-hidden text-ellipsis"},r))})))),n().createElement(I,{items:e.related})))},k=require("@peripleo/maplibre"),R=require("@performant-software/geospatial");function _(e){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_(e)}function M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?M(Object(r),!0).forEach((function(t){var n,a,l,o;n=e,a=t,l=r[t],o=function(e,t){if("object"!=_(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(a),(a="symbol"==_(o)?o:String(o))in n?Object.defineProperty(n,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):n[a]=l})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}const z=function(e){var t,a,l=(t=(0,r.useState)(),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,i=[],c=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return i}}(t,a)||function(e,t){if(e){if("string"==typeof e)return q(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?q(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=l[0],i=l[1],c=(0,r.useCallback)((function(e){var t={type:"FeatureCollection",features:[A(A({},e),{},{properties:A(A({},e.properties),{},{record_id:e.record_id})})]};i(t)}),[]);return(0,r.useEffect)((function(){fetch(e.url).then((function(e){return e.json()})).then(c)}),[e.url]),o?n().createElement(R.LocationMarker,{data:o,useMap:k.useMap}):null},T=require("react-instantsearch"),L=require("react-virtualized-auto-sizer");var H=e.n(L);const F=require("react-window");var D=function(e){var t=e.hit,a=(0,r.useMemo)((function(){var t=["h-[5.5em]","border-b","flex","flex-col","justify-start"];return e.isHovered&&t.add("bg-teal-700/30"),t.join(" ")}),[e.isHovered]);return n().createElement("div",{className:a},n().createElement("button",{className:"py-2 px-3 flex-grow text-left inline-flex flex-col",onClick:e.onClick,type:"button"},n().createElement(T.Highlight,{attribute:"name",className:"line-clamp-2",hit:t}),n().createElement("p",{className:"text-muted text-xs line-clamp-1"},n().createElement(T.Highlight,{hit:t,attribute:"names"}))))};const B=function(e){var t=e.hits,r=e.hover,a=e.onClick,l=e.onHoverChange,o=function(e){var o=e.index,i=e.style,c=t[o],u=parseInt(c.record_id,10);return n().createElement("div",{style:i,onPointerEnter:function(){return l((null==r?void 0:r.id)===u?r:(e=c,{id:parseInt(e.record_id,10),type:"Feature",properties:{id:e.record_id,ccode:[],title:e.name,uuid:e.uuid,record_id:e.record_id,name:e.name,names:m().map(e.names,(function(e){return{toponym:e}})),type:e.type},geometry:{type:"Point",coordinates:e.coordinates.slice().reverse()}}));var e},onPointerLeave:function(){return l(void 0)}},n().createElement(D,{hit:c,isHovered:(null==r?void 0:r.id)===parseInt(null==c?void 0:c.record_id,10),onClick:function(){return a(c)}}))};return n().createElement(H(),null,(function(e){var r=e.height,a=e.width;return n().createElement(F.FixedSizeList,{height:r,itemCount:t.length,width:a,itemSize:88},o)}))};module.exports=t})();
|
|
1
|
+
(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{LoadAnimation:()=>a,MediaGallery:()=>u,PlaceDetailsPanel:()=>C,PlaceMarker:()=>q,PlaceResultsList:()=>D,RelatedItemsList:()=>I,RelatedList:()=>x,RelatedMedia:()=>w,RelatedOrganization:()=>N,RelatedPeople:()=>O,RelatedPlaces:()=>j,RelatedTaxonomies:()=>P});const r=require("react");var n=e.n(r);const a=function(e){var t="".concat(e.className||""," loader three-dots").trim();return n().createElement("span",{className:t})},l=require("@radix-ui/react-dialog"),o=require("@samvera/clover-iiif/viewer");var i=e.n(o);const c=require("lucide-react"),u=function(e){return n().createElement(l.Root,{className:"media-gallery",onOpenChange:e.onClose,open:Boolean(e.defaultItem)},n().createElement(l.Portal,null,n().createElement(l.Overlay,{className:"dialog-overlay"}),n().createElement(l.Content,{className:"dialog-content"},n().createElement(l.Title,{className:"dialog-title flex items-center"},n().createElement(c.Image,{className:"h-4 w-4 mr-1.5"}),e.title),n().createElement("div",{className:"pt-6 pb-2 text-sm w-full text-muted min-h-20"},Boolean(e.defaultItem)&&n().createElement(i(),{iiifContent:e.defaultItem.manifest_url,options:{informationPanel:{open:!1}}})),n().createElement(l.Close,{asChild:!0},n().createElement("button",{className:"dialog-close rounded-full",type:"button"},n().createElement(c.X,{className:"h-7 w-7 p-1.5"}))))))},s=require("underscore");var m=e.n(s);const d=require("@radix-ui/react-accordion"),f=require("i18next");var p=e.n(f),b={en:{translation:JSON.parse('{"RelatedItemsList":{"labels":{"count":"({{count}})"}},"RelatedOrganizations":{"labels":{"empty":"No related organizations"}},"RelatedPeople":{"labels":{"empty":"No related people"}},"RelatedPlaces":{"labels":{"empty":"No related places"}},"RelatedTaxonomies":{"labels":{"empty":"No related taxonomies"}}}')}},y=p().createInstance();y.init({debug:!0,fallbackLng:"en",lng:"en",interpolation:{escapeValue:!1},resources:b});const v=y,g=require("@samvera/clover-iiif/primitives");function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var E=function(e){var t,a,l,o=(a=(0,r.useState)(),l=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,i=[],c=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return i}}(a,l)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}(a,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],c=o[1];return n().createElement("div",{className:"p-3 pb-4 grid grid-cols-3 gap-1"},m().map(null===(t=e.data)||void 0===t?void 0:t.items,(function(t){return n().createElement(g.Thumbnail,{key:t.body.id,className:"rounded shadow cursor-pointer",onClick:function(){return c(t.body)},thumbnail:[{id:t.body.content_thumbnail_url,type:"Image",width:e.thumbnailWidth,height:e.thumbnailHeight}]})})),n().createElement(u,{defaultItem:i,onClose:function(){return c(void 0)}}))};E.defaultProps={thumbnailHeight:80,thumbnailWidth:80};const w=E,x=function(e){var t=e.data.items;return m().isEmpty(t)?n().createElement("div",{className:"pt-6 pl-3 pr-6 pb-8 flex items-center justify-center text-muted/50 italic"},e.emptyMessage):n().createElement("ul",{className:"p-3 pt-1 pb-4"},m().map(t,(function(t){return n().createElement("li",{key:t.id,className:"flex items-center"},e.renderItem(t))})))},N=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedOrganizations.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.Building2,{className:"h-4 w-4 mr-1.5"}),e.body.title)}})},O=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedPeople.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.UserCircle,{className:"h-4 w-4 mr-1.5"}),e.body.title)}})},j=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedPlaces.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.MapPin,{className:"h-4 w-4 mr-0.5 inline-block mb-0.5"}),e.body.title)}})},P=function(e){return n().createElement(x,{data:e.data,emptyMessage:v.t("RelatedTaxonomies.labels.empty"),renderItem:function(e){return n().createElement(n().Fragment,null,n().createElement(c.ListTree,{className:"h-4 w-4 mr-1.5"}),e.body.title)}})};var S=["data","error"];const I=function(e){return m().isEmpty(e.items)?null:n().createElement(d.Root,{className:"related-items-list",type:"multiple"},m().map(e.items,(function(e){var t,r=e.data,l=e.error,o=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,S);return n().createElement(d.Item,{key:o.endpoint,value:o.endpoint},n().createElement(d.Header,null,n().createElement(d.Trigger,{className:"accordion-trigger border-black/20 border border-t border-b-0 border-l-0 border-r-0 border-solid rounded-none w-full flex justify-between items-center px-3 py-3 text-sm"},n().createElement("div",null,o.ui_label,r&&n().createElement("span",{className:"ml-1"},v.t("RelatedItemsList.labels.count",{count:null===(t=r.items)||void 0===t?void 0:t.length})),l&&n().createElement(c.AlertCircle,{className:"inline ml-1.5 h-4 w-4 text-red-600 align-text-bottom"}),!(r||l)&&n().createElement(a,{className:"text-muted/60 ml-4"})),n().createElement(c.ChevronDown,{className:"accordion-chevron h-4 w-4"}))),n().createElement(d.Content,{className:"accordion-content text-sm leading-6"},"media_contents"===o.endpoint&&n().createElement(w,{data:r}),"organizations"===o.endpoint&&n().createElement(N,{data:r}),"people"===o.endpoint&&n().createElement(O,{data:r}),"places"===o.endpoint&&n().createElement(j,{data:r}),"taxonomies"===o.endpoint&&n().createElement(P,{data:r})))})))},C=function(e){var t=(0,r.useRef)(null),a=(0,r.useMemo)((function(){var t=e.related.find((function(e){var t;return"media_contents"===e.endpoint&&!m().isEmpty(null===(t=e.data)||void 0===t?void 0:t.items)}));return t?t.data&&t.data.items[0].body:void 0}),[e.related]),l=(0,r.useMemo)((function(){var t;return null!==(t=e.place)&&void 0!==t&&t.user_defined?Object.values(e.place.user_defined):[]}),[e.place]);return n().createElement("aside",{className:"flex flex-col absolute z-10 h-full w-[280px] bg-white/80 backdrop-blur shadow overflow-y-auto",ref:t},n().createElement("button",{className:"absolute top-2 right-2 p-1.5 rounded-full z-10 bg-slate-200/60 hover:bg-slate-200 focus:outline-2 focus:outline-offset-2 focus:outline-teal-700",onClick:e.onClose,type:"button"},n().createElement(c.X,{className:"h-4 w-4"})),e.place&&n().createElement(n().Fragment,null,a&&n().createElement("div",{className:"relative w-full h-[200px] flex-grow-0 flex-shrink-0 bg-muted/20 z-0"},n().createElement("div",{className:"absolute top-0 left-0 w-full h-full flex justify-center items-center"},n().createElement(c.Image,{className:"h-20 w-20 text-gray-400",strokeWidth:1})),n().createElement("div",{className:"absolute top-0 left-0 w-full h-full flex justify-center items-center"},n().createElement("img",{className:"object-cover h-full w-full",src:a.content_url,alt:a.title}))),n().createElement("div",{className:"p-3"},n().createElement("h1",{className:"pr-6 font-medium"},e.place.properties.title),n().createElement("ol",{className:"text-sm mt-4 leading-6 overflow-hidden"},m().map(l,(function(e){var t=e.label,r=e.value;return n().createElement("li",{key:t,className:"mb-2"},n().createElement("div",{className:"text-muted"},t),n().createElement("div",{className:"font-medium overflow-hidden text-ellipsis"},r))})))),n().createElement(I,{items:e.related})))},k=require("@performant-software/geospatial");function R(e){return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R(e)}function _(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function M(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach((function(t){var n,a,l,o;n=e,a=t,l=r[t],o=function(e,t){if("object"!=R(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=R(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(a),(a="symbol"==R(o)?o:String(o))in n?Object.defineProperty(n,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):n[a]=l})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}const q=function(e){var t,a,l=(t=(0,r.useState)(),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,i=[],c=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=l.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return i}}(t,a)||function(e,t){if(e){if("string"==typeof e)return A(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?A(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=l[0],i=l[1],c=(0,r.useCallback)((function(e){var t={type:"FeatureCollection",features:[M(M({},e),{},{properties:M(M({},e.properties),{},{record_id:e.record_id})})]};i(t)}),[]);return(0,r.useEffect)((function(){fetch(e.url).then((function(e){return e.json()})).then(c)}),[e.url]),o?n().createElement(k.LocationMarker,{data:o}):null},z=require("react-instantsearch"),T=require("react-virtualized-auto-sizer");var L=e.n(T);const H=require("react-window");var F=function(e){var t=e.hit,a=(0,r.useMemo)((function(){var t=["h-[5.5em]","border-b","flex","flex-col","justify-start"];return e.isHovered&&t.add("bg-teal-700/30"),t.join(" ")}),[e.isHovered]);return n().createElement("div",{className:a},n().createElement("button",{className:"py-2 px-3 flex-grow text-left inline-flex flex-col",onClick:e.onClick,type:"button"},n().createElement(z.Highlight,{attribute:"name",className:"line-clamp-2",hit:t}),n().createElement("p",{className:"text-muted text-xs line-clamp-1"},n().createElement(z.Highlight,{hit:t,attribute:"names"}))))};const D=function(e){var t=e.hits,r=e.hover,a=e.onClick,l=e.onHoverChange,o=function(e){var o=e.index,i=e.style,c=t[o],u=parseInt(c.record_id,10);return n().createElement("div",{style:i,onPointerEnter:function(){return l((null==r?void 0:r.id)===u?r:(e=c,{id:parseInt(e.record_id,10),type:"Feature",properties:{id:e.record_id,ccode:[],title:e.name,uuid:e.uuid,record_id:e.record_id,name:e.name,names:m().map(e.names,(function(e){return{toponym:e}})),type:e.type},geometry:{type:"Point",coordinates:e.coordinates.slice().reverse()}}));var e},onPointerLeave:function(){return l(void 0)}},n().createElement(F,{hit:c,isHovered:(null==r?void 0:r.id)===parseInt(null==c?void 0:c.record_id,10),onClick:function(){return a(c)}}))};return n().createElement(L(),null,(function(e){var r=e.height,a=e.width;return n().createElement(H.FixedSizeList,{height:r,itemCount:t.length,width:a,itemSize:88},o)}))};module.exports=t})();
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@performant-software/core-data/webpack/bootstrap","webpack://@performant-software/core-data/webpack/runtime/compat get default export","webpack://@performant-software/core-data/webpack/runtime/define property getters","webpack://@performant-software/core-data/webpack/runtime/hasOwnProperty shorthand","webpack://@performant-software/core-data/webpack/runtime/make namespace object","webpack://@performant-software/core-data/external commonjs2 \"react\"","webpack://@performant-software/core-data/./src/components/LoadAnimation.js","webpack://@performant-software/core-data/external commonjs \"@radix-ui/react-dialog\"","webpack://@performant-software/core-data/external commonjs \"@samvera/clover-iiif/viewer\"","webpack://@performant-software/core-data/external commonjs \"lucide-react\"","webpack://@performant-software/core-data/./src/components/MediaGallery.js","webpack://@performant-software/core-data/external commonjs \"underscore\"","webpack://@performant-software/core-data/external commonjs \"@radix-ui/react-accordion\"","webpack://@performant-software/core-data/external commonjs \"i18next\"","webpack://@performant-software/core-data/./src/i18n/i18n.js","webpack://@performant-software/core-data/external commonjs \"@samvera/clover-iiif/primitives\"","webpack://@performant-software/core-data/./src/components/RelatedMedia.js","webpack://@performant-software/core-data/./src/components/RelatedList.js","webpack://@performant-software/core-data/./src/components/RelatedOrganizations.js","webpack://@performant-software/core-data/./src/components/RelatedPeople.js","webpack://@performant-software/core-data/./src/components/RelatedPlaces.js","webpack://@performant-software/core-data/./src/components/RelatedTaxonomies.js","webpack://@performant-software/core-data/./src/components/RelatedItemsList.js","webpack://@performant-software/core-data/./src/components/PlaceDetailsPanel.js","webpack://@performant-software/core-data/external commonjs \"@peripleo/maplibre\"","webpack://@performant-software/core-data/external commonjs \"@performant-software/geospatial\"","webpack://@performant-software/core-data/./src/components/PlaceMarker.js","webpack://@performant-software/core-data/external commonjs \"react-instantsearch\"","webpack://@performant-software/core-data/external commonjs \"react-virtualized-auto-sizer\"","webpack://@performant-software/core-data/external commonjs \"react-window\"","webpack://@performant-software/core-data/./src/components/PlaceResultsList.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","// @flow\n\nimport React from 'react';\nimport './LoadAnimation.css';\n\ntype Props = {\n /**\n * Additional class name to apply to the element.\n */\n className?: string\n};\n\n/**\n * This component renders a basic loading animation.\n */\nconst LoadAnimation = (props: Props) => {\n const className = `${props.className || ''} loader three-dots`.trim();\n\n return (\n <span className={className} />\n );\n};\n\nexport default LoadAnimation;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-dialog\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@samvera/clover-iiif/viewer\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lucide-react\");","// @flow\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport Viewer from '@samvera/clover-iiif/viewer';\nimport { Image, X } from 'lucide-react';\nimport React from 'react';\nimport type { MediaContent } from '../types/MediaContent';\nimport './MediaGallery.css';\n\ntype Props = {\n /**\n * The MediaContent record contain the IIIF manifest URL.\n */\n defaultItem: MediaContent,\n\n /**\n * Callback fired when the dialog is closed.\n */\n onClose: () => void,\n\n /**\n * Title text to display at the top of the dialog.\n */\n title?: string\n};\n\n/**\n * This component renders a IIIF Viewer for the passed MediaContent record.\n */\nconst MediaGallery = (props: Props) => (\n <Dialog.Root\n className='media-gallery'\n onOpenChange={props.onClose}\n open={Boolean(props.defaultItem)}\n >\n <Dialog.Portal>\n <Dialog.Overlay\n className='dialog-overlay'\n />\n <Dialog.Content\n className='dialog-content'\n >\n <Dialog.Title\n className='dialog-title flex items-center'\n >\n <Image\n className='h-4 w-4 mr-1.5'\n />\n { props.title }\n </Dialog.Title>\n <div\n className='pt-6 pb-2 text-sm w-full text-muted min-h-20'\n >\n { Boolean(props.defaultItem) && (\n <Viewer\n iiifContent={props.defaultItem.manifest_url}\n options={{\n informationPanel: {\n open: false\n }\n }}\n />\n )}\n </div>\n <Dialog.Close\n asChild\n >\n <button\n className='dialog-close rounded-full'\n type='button'\n >\n <X className='h-7 w-7 p-1.5' />\n </button>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n);\n\nexport default MediaGallery;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"underscore\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-accordion\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"i18next\");","// @flow\n\nimport i18next from 'i18next';\n\nimport en from './en.json';\n\nconst resources = {\n en: {\n translation: en\n }\n};\n\nconst i18n = i18next.createInstance();\n\ni18n\n .init({\n debug: true,\n fallbackLng: 'en',\n lng: 'en',\n interpolation: {\n escapeValue: false,\n },\n resources\n });\n\nexport default i18n;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@samvera/clover-iiif/primitives\");","// @flow\n\nimport { Thumbnail } from '@samvera/clover-iiif/primitives';\nimport React, { useState } from 'react';\nimport _ from 'underscore';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { MediaContent } from '../types/MediaContent';\nimport MediaGallery from './MediaGallery';\n\ntype Props = {\n /**\n * The annotation page containing the media content to render.\n */\n data: AnnotationPage<MediaContent>,\n\n /**\n * Media thumbnail height.\n */\n thumbnailHeight?: number,\n\n /**\n * Media thumbnail width.\n */\n thumbnailWidth?: number\n};\n\nconst DEFAULT_THUMBNAIL_HEIGHT = 80;\nconst DEFAULT_THUMBNAIL_WIDTH = 80;\n\n/**\n * This component renders the related Core Data media records as well as a gallery viewer.\n */\nconst RelatedMedia = (props: Props) => {\n const [showGallery, setShowGallery] = useState<MediaContent>();\n\n return (\n <div\n className='p-3 pb-4 grid grid-cols-3 gap-1'\n >\n { _.map(props.data?.items, (item) => (\n <Thumbnail\n key={item.body.id}\n className='rounded shadow cursor-pointer'\n onClick={() => setShowGallery(item.body)}\n thumbnail={[{\n id: item.body.content_thumbnail_url,\n type: 'Image',\n width: props.thumbnailWidth,\n height: props.thumbnailHeight\n }]}\n />\n ))}\n <MediaGallery\n defaultItem={showGallery}\n onClose={() => setShowGallery(undefined)}\n />\n </div>\n );\n};\n\nRelatedMedia.defaultProps = {\n thumbnailHeight: DEFAULT_THUMBNAIL_HEIGHT,\n thumbnailWidth: DEFAULT_THUMBNAIL_WIDTH\n};\n\nexport default RelatedMedia;\n","// @flow\n\nimport React from 'react';\nimport _ from 'underscore';\nimport type { AnnotationPage } from '../types/AnnotationPage';\n\ntype Item = {\n id: string\n};\n\ntype Props = {\n /**\n * An annotation page containing the list of records to render.\n */\n data: AnnotationPage<Item>,\n\n /**\n * A message to display when the list is empty.\n */\n emptyMessage: string,\n\n /**\n * Render function used to determine how to present the passed item.\n */\n renderItem: (item: Item) => JSX.Element\n};\n\n/**\n * This component is a helper component used to structure the lists for the other `Related*` comnponents.\n */\nconst RelatedList = (props: Props) => {\n const { items } = props.data;\n\n if (_.isEmpty(items)) {\n return (\n <div\n className='pt-6 pl-3 pr-6 pb-8 flex items-center justify-center text-muted/50 italic'\n >\n { props.emptyMessage }\n </div>\n );\n }\n\n return (\n <ul\n className='p-3 pt-1 pb-4'\n >\n { _.map(items, (item) => (\n <li\n key={item.id}\n className='flex items-center'\n >\n { props.renderItem(item) }\n </li>\n ))}\n </ul>\n );\n};\n\nexport default RelatedList;\n","// @flow\n\nimport { Building2 } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { Organization } from '../types/Organization';\nimport RelatedList from './RelatedList';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data organizations to render.\n */\n data: AnnotationPage<Organization>\n};\n\n/**\n * This component renders the related Core Data organizations records.\n */\nconst RelatedOrganizations = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedOrganizations.labels.empty')}\n renderItem={(organization) => (\n <>\n <Building2\n className='h-4 w-4 mr-1.5'\n />\n { organization.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedOrganizations;\n","// @flow\n\nimport { UserCircle } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { Person } from '../types/Person';\nimport RelatedList from './RelatedList';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data people to render.\n */\n data: AnnotationPage<Person>\n};\n\n/**\n * This component renders the related Core Data organizations.\n */\nconst RelatedPeople = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedPeople.labels.empty')}\n renderItem={(person) => (\n <>\n <UserCircle\n className='h-4 w-4 mr-1.5'\n />\n { person.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedPeople;\n","// @flow\n\nimport { MapPin } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { Place } from '../types/Place';\nimport RelatedList from './RelatedList';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data places to render.\n */\n data: AnnotationPage<Place>\n};\n\n/**\n * This component renders the related Core Data places.\n */\nconst RelatedPlaces = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedPlaces.labels.empty')}\n renderItem={(place) => (\n <>\n <MapPin\n className='h-4 w-4 mr-0.5 inline-block mb-0.5'\n />\n { place.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedPlaces;\n","// @flow\n\nimport { ListTree } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport RelatedList from './RelatedList';\nimport type { Taxonomy } from '../types/Taxonomy';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data taxonomies to render.\n */\n data: AnnotationPage<Taxonomy>\n};\n\n/**\n * This component renders the related Core Data taxonomies.\n */\nconst RelatedTaxonomies = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedTaxonomies.labels.empty')}\n renderItem={(taxonomy) => (\n <>\n <ListTree\n className='h-4 w-4 mr-1.5'\n />\n { taxonomy.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedTaxonomies;\n","// @flow\n\nimport * as Accordion from '@radix-ui/react-accordion';\nimport { AlertCircle, ChevronDown } from 'lucide-react';\nimport React from 'react';\nimport _ from 'underscore';\nimport i18n from '../i18n/i18n';\nimport LoadAnimation from './LoadAnimation';\nimport type { RelatedItems } from '../types/RelatedItems';\nimport RelatedMedia from './RelatedMedia';\nimport RelatedOrganizations from './RelatedOrganizations';\nimport RelatedPeople from './RelatedPeople';\nimport RelatedPlaces from './RelatedPlaces';\nimport RelatedTaxonomies from './RelatedTaxonomies';\nimport './RelatedItemsList.css';\n\ntype Props = {\n /**\n * A list of related items.\n */\n items: Array<RelatedItems>\n};\n\n/**\n * This component renders the passed list of related items in an accordion fashion.\n */\nconst RelatedItemsList = (props: Props) => {\n if (_.isEmpty(props.items)) {\n return null;\n }\n\n return (\n <Accordion.Root\n className='related-items-list'\n type='multiple'\n >\n { _.map(props.items, ({ data, error, ...conf }) => (\n <Accordion.Item\n key={conf.endpoint}\n value={conf.endpoint}\n >\n <Accordion.Header>\n <Accordion.Trigger\n className='accordion-trigger border-black/20 border border-t border-b-0 border-l-0 border-r-0 border-solid\n rounded-none w-full flex justify-between items-center px-3 py-3 text-sm'\n >\n <div>\n { conf.ui_label }\n { data && (\n <span className='ml-1'>\n { i18n.t('RelatedItemsList.labels.count', { count: data.items?.length })}\n </span>\n )}\n { error && (\n <AlertCircle\n className='inline ml-1.5 h-4 w-4 text-red-600 align-text-bottom'\n />\n )}\n { !(data || error) && (\n <LoadAnimation\n className='text-muted/60 ml-4'\n />\n )}\n </div>\n <ChevronDown\n className='accordion-chevron h-4 w-4'\n />\n </Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content\n className='accordion-content text-sm leading-6'\n >\n { conf.endpoint === 'media_contents' && (\n <RelatedMedia\n data={data}\n />\n )}\n { conf.endpoint === 'organizations' && (\n <RelatedOrganizations\n data={data}\n />\n )}\n { conf.endpoint === 'people' && (\n <RelatedPeople\n data={data}\n />\n )}\n { conf.endpoint === 'places' && (\n <RelatedPlaces\n data={data}\n />\n )}\n { conf.endpoint === 'taxonomies' && (\n <RelatedTaxonomies\n data={data}\n />\n )}\n </Accordion.Content>\n </Accordion.Item>\n ))}\n </Accordion.Root>\n );\n};\n\nexport default RelatedItemsList;\n","// @flow\n\nimport { Image, X } from 'lucide-react';\nimport React, { useMemo, useRef } from 'react';\nimport _ from 'underscore';\nimport type { Place } from '../types/Place';\nimport type { RelatedItems } from '../types/RelatedItems';\nimport RelatedItemsList from './RelatedItemsList';\n\ntype Props = {\n /**\n * The place record to render.\n */\n place?: Place,\n\n /**\n * A list of items related to the place.\n */\n related: Array<RelatedItems>,\n\n /**\n * Callback fired when the panel is closed.\n */\n onClose: () => void\n};\n\n/**\n * This component renders a side panel for the passed Core Data place record.\n */\nconst PlaceDetailsPanel = (props: Props) => {\n const el = useRef<HTMLElement>(null);\n\n /**\n * Returns the first image for the passed related items.\n */\n const firstImage = useMemo(() => {\n const images = props.related.find((i) => i.endpoint === 'media_contents' && !_.isEmpty(i.data?.items));\n return images ? (images.data && images.data.items[0].body) : undefined;\n }, [props.related]);\n\n /**\n * Sets the user defined field values.\n *\n * @type {UserDefinedField[]|*[]}\n */\n const userDefined = useMemo(() => (\n props.place?.user_defined ? Object.values(props.place.user_defined) : []\n ), [props.place]);\n\n return (\n <aside\n className='flex flex-col absolute z-10 h-full w-[280px] bg-white/80 backdrop-blur shadow overflow-y-auto'\n ref={el}\n >\n <button\n className='absolute top-2 right-2 p-1.5 rounded-full z-10 bg-slate-200/60 hover:bg-slate-200 focus:outline-2 focus:outline-offset-2 focus:outline-teal-700'\n onClick={props.onClose}\n type='button'\n >\n <X className='h-4 w-4' />\n </button>\n { props.place && (\n <>\n { firstImage && (\n <div\n className='relative w-full h-[200px] flex-grow-0 flex-shrink-0 bg-muted/20 z-0'\n >\n <div\n className='absolute top-0 left-0 w-full h-full flex justify-center items-center'\n >\n <Image\n className='h-20 w-20 text-gray-400'\n strokeWidth={1}\n />\n </div>\n <div\n className='absolute top-0 left-0 w-full h-full flex justify-center items-center'\n >\n <img\n className='object-cover h-full w-full'\n src={firstImage.content_url}\n alt={firstImage.title}\n />\n </div>\n </div>\n )}\n <div\n className='p-3'\n >\n <h1\n className='pr-6 font-medium'\n >\n { props.place.properties.title }\n </h1>\n <ol\n className='text-sm mt-4 leading-6 overflow-hidden'\n >\n { _.map(userDefined, ({ label, value }) => (\n <li\n key={label}\n className='mb-2'\n >\n <div\n className='text-muted'\n >\n { label }\n </div>\n <div\n className='font-medium overflow-hidden text-ellipsis'\n >\n { value }\n </div>\n </li>\n ))}\n </ol>\n </div>\n <RelatedItemsList\n items={props.related}\n />\n </>\n )}\n </aside>\n );\n};\n\nexport default PlaceDetailsPanel;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@peripleo/maplibre\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@performant-software/geospatial\");","// @flow\n\nimport { useMap } from '@peripleo/maplibre';\nimport { LocationMarker } from '@performant-software/geospatial';\nimport React, { useCallback, useEffect, useState } from 'react';\n\ntype Props = {\n /**\n * The URL of the Core Data place record.\n */\n url: string\n};\n\n/**\n * This component renders a map marker for a given Core Data Place record.\n */\nconst PlaceMarker = (props: Props) => {\n const [place, setPlace] = useState();\n\n /**\n * Converts the passed data to a feature collection and sets it on the state.\n *\n * @type {(function(*): void)|*}\n */\n const onLoad = useCallback((data) => {\n const featureCollection = {\n type: 'FeatureCollection',\n features: [{\n ...data,\n properties: {\n ...data.properties,\n record_id: data.record_id\n }\n }]\n };\n\n setPlace(featureCollection);\n }, []);\n\n /**\n * Fetch the place record from the passed URL.\n */\n useEffect(() => {\n fetch(props.url)\n .then((res) => res.json())\n .then(onLoad);\n }, [props.url]);\n\n if (!place) {\n return null;\n }\n\n return (\n <LocationMarker\n data={place}\n useMap={useMap}\n />\n );\n};\n\nexport default PlaceMarker;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-instantsearch\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-virtualized-auto-sizer\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-window\");","// @flow\n\nimport React, { useMemo } from 'react';\nimport { Highlight } from 'react-instantsearch';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { FixedSizeList } from 'react-window';\nimport _ from 'underscore';\nimport type { Feature } from '../types/Feature';\nimport type { Place } from '../types/typesense/Place';\nimport './PlaceResultsList.css';\n\n/**\n * Converts the passed place result to a feature.\n *\n * @param result\n *\n * @returns {{\n * geometry: {coordinates: number[], type: string},\n * id: number,\n * type:\n * string,\n * properties: {\n * ccode: *[],\n * record_id: string,\n * names: *,\n * name: string,\n * id: string,\n * title: string,\n * type: string,\n * uuid: string\n * }\n * }}\n */\nconst toFeature = (result: Place) => ({\n id: parseInt(result.record_id, 10),\n type: 'Feature',\n properties: {\n id: result.record_id,\n ccode: [],\n title: result.name,\n uuid: result.uuid,\n record_id: result.record_id,\n name: result.name,\n names: _.map(result.names, (toponym) => ({ toponym })),\n type: result.type\n },\n geometry: {\n type: 'Point',\n coordinates: result.coordinates.slice().reverse()\n }\n});\n\ntype HitComponentProps = {\n hit: any,\n isHovered: boolean,\n onClick: () => void\n};\n\nconst HitComponent = (props: HitComponentProps) => {\n const { hit } = props;\n\n const className = useMemo(() => {\n const classNames = [\n 'h-[5.5em]',\n 'border-b',\n 'flex',\n 'flex-col',\n 'justify-start'\n ];\n\n if (props.isHovered) {\n classNames.add('bg-teal-700/30');\n }\n\n return classNames.join(' ');\n }, [props.isHovered]);\n\n return (\n <div\n className={className}\n >\n <button\n className='py-2 px-3 flex-grow text-left inline-flex flex-col'\n onClick={props.onClick}\n type='button'\n >\n <Highlight\n attribute='name'\n className='line-clamp-2'\n hit={hit}\n />\n <p\n className='text-muted text-xs line-clamp-1'\n >\n <Highlight\n hit={hit}\n attribute='names'\n />\n </p>\n </button>\n </div>\n );\n};\n\ntype Props = {\n /**\n * An array of search results representing `/typesense/Place` objects.\n */\n hits: Array<Place>,\n\n /**\n * The object that is currently occupying the hover state.\n */\n hover?: Feature<{ id: string }>,\n\n /**\n * Callback fired when the hover item is changed.\n */\n onHoverChange: (hover?: Feature<{ id: string }>) => void,\n\n /**\n * Callback fired when a search result is clicked.\n */\n onClick: (result: Place) => void\n};\n\ntype RowProps = {\n index: number,\n style: any\n};\n\n/**\n * This component renders a list of search results returned from a Core Data Typesense index.\n */\nconst PlaceResultsList = (props: Props) => {\n const {\n hits,\n hover,\n onClick,\n onHoverChange\n } = props;\n\n const Row = ({ index, style }: RowProps) => {\n const hit = hits[index];\n const id = parseInt(hit.record_id, 10);\n\n return (\n <div\n style={style}\n onPointerEnter={() => onHoverChange(hover?.id === id ? hover : toFeature(hit))}\n onPointerLeave={() => onHoverChange(undefined)}\n >\n <HitComponent\n hit={hit}\n isHovered={hover?.id === parseInt(hit?.record_id, 10)}\n onClick={() => onClick(hit)}\n />\n </div>\n );\n };\n\n return (\n <AutoSizer>\n {({ height, width }) => (\n <FixedSizeList\n height={height}\n itemCount={hits.length}\n width={width}\n itemSize={88}\n >\n { Row }\n </FixedSizeList>\n )}\n </AutoSizer>\n );\n};\n\nexport default PlaceResultsList;\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","require","props","className","concat","trim","React","Dialog","onOpenChange","onClose","open","Boolean","defaultItem","Image","title","Viewer","iiifContent","manifest_url","options","informationPanel","asChild","type","X","resources","en","translation","i18n","i18next","init","debug","fallbackLng","lng","interpolation","escapeValue","RelatedMedia","_props$data","_useState2","useState","showGallery","setShowGallery","_","data","items","item","Thumbnail","body","id","onClick","thumbnail","content_thumbnail_url","width","thumbnailWidth","height","thumbnailHeight","MediaGallery","undefined","defaultProps","emptyMessage","renderItem","RelatedList","t","organization","Building2","person","UserCircle","place","MapPin","taxonomy","ListTree","Accordion","_ref","_data$items","error","conf","_objectWithoutProperties","_excluded","endpoint","ui_label","count","length","AlertCircle","LoadAnimation","ChevronDown","RelatedOrganizations","RelatedPeople","RelatedPlaces","RelatedTaxonomies","el","useRef","firstImage","useMemo","images","related","find","i","_i$data","userDefined","_props$place","user_defined","values","ref","strokeWidth","src","content_url","alt","properties","label","RelatedItemsList","setPlace","onLoad","useCallback","featureCollection","features","_objectSpread","record_id","useEffect","fetch","url","then","res","json","LocationMarker","useMap","HitComponent","hit","classNames","isHovered","add","join","Highlight","attribute","hits","hover","onHoverChange","Row","index","style","parseInt","onPointerEnter","result","ccode","name","uuid","names","toponym","geometry","coordinates","slice","reverse","onPointerLeave","AutoSizer","_ref2","FixedSizeList","itemCount","itemSize"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@performant-software/core-data/webpack/bootstrap","webpack://@performant-software/core-data/webpack/runtime/compat get default export","webpack://@performant-software/core-data/webpack/runtime/define property getters","webpack://@performant-software/core-data/webpack/runtime/hasOwnProperty shorthand","webpack://@performant-software/core-data/webpack/runtime/make namespace object","webpack://@performant-software/core-data/external commonjs2 \"react\"","webpack://@performant-software/core-data/./src/components/LoadAnimation.js","webpack://@performant-software/core-data/external commonjs \"@radix-ui/react-dialog\"","webpack://@performant-software/core-data/external commonjs \"@samvera/clover-iiif/viewer\"","webpack://@performant-software/core-data/external commonjs \"lucide-react\"","webpack://@performant-software/core-data/./src/components/MediaGallery.js","webpack://@performant-software/core-data/external commonjs \"underscore\"","webpack://@performant-software/core-data/external commonjs \"@radix-ui/react-accordion\"","webpack://@performant-software/core-data/external commonjs \"i18next\"","webpack://@performant-software/core-data/./src/i18n/i18n.js","webpack://@performant-software/core-data/external commonjs \"@samvera/clover-iiif/primitives\"","webpack://@performant-software/core-data/./src/components/RelatedMedia.js","webpack://@performant-software/core-data/./src/components/RelatedList.js","webpack://@performant-software/core-data/./src/components/RelatedOrganizations.js","webpack://@performant-software/core-data/./src/components/RelatedPeople.js","webpack://@performant-software/core-data/./src/components/RelatedPlaces.js","webpack://@performant-software/core-data/./src/components/RelatedTaxonomies.js","webpack://@performant-software/core-data/./src/components/RelatedItemsList.js","webpack://@performant-software/core-data/./src/components/PlaceDetailsPanel.js","webpack://@performant-software/core-data/external commonjs \"@performant-software/geospatial\"","webpack://@performant-software/core-data/./src/components/PlaceMarker.js","webpack://@performant-software/core-data/external commonjs \"react-instantsearch\"","webpack://@performant-software/core-data/external commonjs \"react-virtualized-auto-sizer\"","webpack://@performant-software/core-data/external commonjs \"react-window\"","webpack://@performant-software/core-data/./src/components/PlaceResultsList.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","// @flow\n\nimport React from 'react';\nimport './LoadAnimation.css';\n\ntype Props = {\n /**\n * Additional class name to apply to the element.\n */\n className?: string\n};\n\n/**\n * This component renders a basic loading animation.\n */\nconst LoadAnimation = (props: Props) => {\n const className = `${props.className || ''} loader three-dots`.trim();\n\n return (\n <span className={className} />\n );\n};\n\nexport default LoadAnimation;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-dialog\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@samvera/clover-iiif/viewer\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lucide-react\");","// @flow\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport Viewer from '@samvera/clover-iiif/viewer';\nimport { Image, X } from 'lucide-react';\nimport React from 'react';\nimport type { MediaContent } from '../types/MediaContent';\nimport './MediaGallery.css';\n\ntype Props = {\n /**\n * The MediaContent record contain the IIIF manifest URL.\n */\n defaultItem: MediaContent,\n\n /**\n * Callback fired when the dialog is closed.\n */\n onClose: () => void,\n\n /**\n * Title text to display at the top of the dialog.\n */\n title?: string\n};\n\n/**\n * This component renders a IIIF Viewer for the passed MediaContent record.\n */\nconst MediaGallery = (props: Props) => (\n <Dialog.Root\n className='media-gallery'\n onOpenChange={props.onClose}\n open={Boolean(props.defaultItem)}\n >\n <Dialog.Portal>\n <Dialog.Overlay\n className='dialog-overlay'\n />\n <Dialog.Content\n className='dialog-content'\n >\n <Dialog.Title\n className='dialog-title flex items-center'\n >\n <Image\n className='h-4 w-4 mr-1.5'\n />\n { props.title }\n </Dialog.Title>\n <div\n className='pt-6 pb-2 text-sm w-full text-muted min-h-20'\n >\n { Boolean(props.defaultItem) && (\n <Viewer\n iiifContent={props.defaultItem.manifest_url}\n options={{\n informationPanel: {\n open: false\n }\n }}\n />\n )}\n </div>\n <Dialog.Close\n asChild\n >\n <button\n className='dialog-close rounded-full'\n type='button'\n >\n <X className='h-7 w-7 p-1.5' />\n </button>\n </Dialog.Close>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n);\n\nexport default MediaGallery;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"underscore\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@radix-ui/react-accordion\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"i18next\");","// @flow\n\nimport i18next from 'i18next';\n\nimport en from './en.json';\n\nconst resources = {\n en: {\n translation: en\n }\n};\n\nconst i18n = i18next.createInstance();\n\ni18n\n .init({\n debug: true,\n fallbackLng: 'en',\n lng: 'en',\n interpolation: {\n escapeValue: false,\n },\n resources\n });\n\nexport default i18n;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@samvera/clover-iiif/primitives\");","// @flow\n\nimport { Thumbnail } from '@samvera/clover-iiif/primitives';\nimport React, { useState } from 'react';\nimport _ from 'underscore';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { MediaContent } from '../types/MediaContent';\nimport MediaGallery from './MediaGallery';\n\ntype Props = {\n /**\n * The annotation page containing the media content to render.\n */\n data: AnnotationPage<MediaContent>,\n\n /**\n * Media thumbnail height.\n */\n thumbnailHeight?: number,\n\n /**\n * Media thumbnail width.\n */\n thumbnailWidth?: number\n};\n\nconst DEFAULT_THUMBNAIL_HEIGHT = 80;\nconst DEFAULT_THUMBNAIL_WIDTH = 80;\n\n/**\n * This component renders the related Core Data media records as well as a gallery viewer.\n */\nconst RelatedMedia = (props: Props) => {\n const [showGallery, setShowGallery] = useState<MediaContent>();\n\n return (\n <div\n className='p-3 pb-4 grid grid-cols-3 gap-1'\n >\n { _.map(props.data?.items, (item) => (\n <Thumbnail\n key={item.body.id}\n className='rounded shadow cursor-pointer'\n onClick={() => setShowGallery(item.body)}\n thumbnail={[{\n id: item.body.content_thumbnail_url,\n type: 'Image',\n width: props.thumbnailWidth,\n height: props.thumbnailHeight\n }]}\n />\n ))}\n <MediaGallery\n defaultItem={showGallery}\n onClose={() => setShowGallery(undefined)}\n />\n </div>\n );\n};\n\nRelatedMedia.defaultProps = {\n thumbnailHeight: DEFAULT_THUMBNAIL_HEIGHT,\n thumbnailWidth: DEFAULT_THUMBNAIL_WIDTH\n};\n\nexport default RelatedMedia;\n","// @flow\n\nimport React from 'react';\nimport _ from 'underscore';\nimport type { AnnotationPage } from '../types/AnnotationPage';\n\ntype Item = {\n id: string\n};\n\ntype Props = {\n /**\n * An annotation page containing the list of records to render.\n */\n data: AnnotationPage<Item>,\n\n /**\n * A message to display when the list is empty.\n */\n emptyMessage: string,\n\n /**\n * Render function used to determine how to present the passed item.\n */\n renderItem: (item: Item) => JSX.Element\n};\n\n/**\n * This component is a helper component used to structure the lists for the other `Related*` comnponents.\n */\nconst RelatedList = (props: Props) => {\n const { items } = props.data;\n\n if (_.isEmpty(items)) {\n return (\n <div\n className='pt-6 pl-3 pr-6 pb-8 flex items-center justify-center text-muted/50 italic'\n >\n { props.emptyMessage }\n </div>\n );\n }\n\n return (\n <ul\n className='p-3 pt-1 pb-4'\n >\n { _.map(items, (item) => (\n <li\n key={item.id}\n className='flex items-center'\n >\n { props.renderItem(item) }\n </li>\n ))}\n </ul>\n );\n};\n\nexport default RelatedList;\n","// @flow\n\nimport { Building2 } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { Organization } from '../types/Organization';\nimport RelatedList from './RelatedList';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data organizations to render.\n */\n data: AnnotationPage<Organization>\n};\n\n/**\n * This component renders the related Core Data organizations records.\n */\nconst RelatedOrganizations = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedOrganizations.labels.empty')}\n renderItem={(organization) => (\n <>\n <Building2\n className='h-4 w-4 mr-1.5'\n />\n { organization.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedOrganizations;\n","// @flow\n\nimport { UserCircle } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { Person } from '../types/Person';\nimport RelatedList from './RelatedList';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data people to render.\n */\n data: AnnotationPage<Person>\n};\n\n/**\n * This component renders the related Core Data organizations.\n */\nconst RelatedPeople = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedPeople.labels.empty')}\n renderItem={(person) => (\n <>\n <UserCircle\n className='h-4 w-4 mr-1.5'\n />\n { person.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedPeople;\n","// @flow\n\nimport { MapPin } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport type { Place } from '../types/Place';\nimport RelatedList from './RelatedList';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data places to render.\n */\n data: AnnotationPage<Place>\n};\n\n/**\n * This component renders the related Core Data places.\n */\nconst RelatedPlaces = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedPlaces.labels.empty')}\n renderItem={(place) => (\n <>\n <MapPin\n className='h-4 w-4 mr-0.5 inline-block mb-0.5'\n />\n { place.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedPlaces;\n","// @flow\n\nimport { ListTree } from 'lucide-react';\nimport React from 'react';\nimport i18n from '../i18n/i18n';\nimport type { AnnotationPage } from '../types/AnnotationPage';\nimport RelatedList from './RelatedList';\nimport type { Taxonomy } from '../types/Taxonomy';\n\ntype Props = {\n /**\n * The annotation page containing the Core Data taxonomies to render.\n */\n data: AnnotationPage<Taxonomy>\n};\n\n/**\n * This component renders the related Core Data taxonomies.\n */\nconst RelatedTaxonomies = (props: Props) => (\n <RelatedList\n data={props.data}\n emptyMessage={i18n.t('RelatedTaxonomies.labels.empty')}\n renderItem={(taxonomy) => (\n <>\n <ListTree\n className='h-4 w-4 mr-1.5'\n />\n { taxonomy.body.title }\n </>\n )}\n />\n);\n\nexport default RelatedTaxonomies;\n","// @flow\n\nimport * as Accordion from '@radix-ui/react-accordion';\nimport { AlertCircle, ChevronDown } from 'lucide-react';\nimport React from 'react';\nimport _ from 'underscore';\nimport i18n from '../i18n/i18n';\nimport LoadAnimation from './LoadAnimation';\nimport type { RelatedItems } from '../types/RelatedItems';\nimport RelatedMedia from './RelatedMedia';\nimport RelatedOrganizations from './RelatedOrganizations';\nimport RelatedPeople from './RelatedPeople';\nimport RelatedPlaces from './RelatedPlaces';\nimport RelatedTaxonomies from './RelatedTaxonomies';\nimport './RelatedItemsList.css';\n\ntype Props = {\n /**\n * A list of related items.\n */\n items: Array<RelatedItems>\n};\n\n/**\n * This component renders the passed list of related items in an accordion fashion.\n */\nconst RelatedItemsList = (props: Props) => {\n if (_.isEmpty(props.items)) {\n return null;\n }\n\n return (\n <Accordion.Root\n className='related-items-list'\n type='multiple'\n >\n { _.map(props.items, ({ data, error, ...conf }) => (\n <Accordion.Item\n key={conf.endpoint}\n value={conf.endpoint}\n >\n <Accordion.Header>\n <Accordion.Trigger\n className='accordion-trigger border-black/20 border border-t border-b-0 border-l-0 border-r-0 border-solid\n rounded-none w-full flex justify-between items-center px-3 py-3 text-sm'\n >\n <div>\n { conf.ui_label }\n { data && (\n <span className='ml-1'>\n { i18n.t('RelatedItemsList.labels.count', { count: data.items?.length })}\n </span>\n )}\n { error && (\n <AlertCircle\n className='inline ml-1.5 h-4 w-4 text-red-600 align-text-bottom'\n />\n )}\n { !(data || error) && (\n <LoadAnimation\n className='text-muted/60 ml-4'\n />\n )}\n </div>\n <ChevronDown\n className='accordion-chevron h-4 w-4'\n />\n </Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Content\n className='accordion-content text-sm leading-6'\n >\n { conf.endpoint === 'media_contents' && (\n <RelatedMedia\n data={data}\n />\n )}\n { conf.endpoint === 'organizations' && (\n <RelatedOrganizations\n data={data}\n />\n )}\n { conf.endpoint === 'people' && (\n <RelatedPeople\n data={data}\n />\n )}\n { conf.endpoint === 'places' && (\n <RelatedPlaces\n data={data}\n />\n )}\n { conf.endpoint === 'taxonomies' && (\n <RelatedTaxonomies\n data={data}\n />\n )}\n </Accordion.Content>\n </Accordion.Item>\n ))}\n </Accordion.Root>\n );\n};\n\nexport default RelatedItemsList;\n","// @flow\n\nimport { Image, X } from 'lucide-react';\nimport React, { useMemo, useRef } from 'react';\nimport _ from 'underscore';\nimport type { Place } from '../types/Place';\nimport type { RelatedItems } from '../types/RelatedItems';\nimport RelatedItemsList from './RelatedItemsList';\n\ntype Props = {\n /**\n * The place record to render.\n */\n place?: Place,\n\n /**\n * A list of items related to the place.\n */\n related: Array<RelatedItems>,\n\n /**\n * Callback fired when the panel is closed.\n */\n onClose: () => void\n};\n\n/**\n * This component renders a side panel for the passed Core Data place record.\n */\nconst PlaceDetailsPanel = (props: Props) => {\n const el = useRef<HTMLElement>(null);\n\n /**\n * Returns the first image for the passed related items.\n */\n const firstImage = useMemo(() => {\n const images = props.related.find((i) => i.endpoint === 'media_contents' && !_.isEmpty(i.data?.items));\n return images ? (images.data && images.data.items[0].body) : undefined;\n }, [props.related]);\n\n /**\n * Sets the user defined field values.\n *\n * @type {UserDefinedField[]|*[]}\n */\n const userDefined = useMemo(() => (\n props.place?.user_defined ? Object.values(props.place.user_defined) : []\n ), [props.place]);\n\n return (\n <aside\n className='flex flex-col absolute z-10 h-full w-[280px] bg-white/80 backdrop-blur shadow overflow-y-auto'\n ref={el}\n >\n <button\n className='absolute top-2 right-2 p-1.5 rounded-full z-10 bg-slate-200/60 hover:bg-slate-200 focus:outline-2 focus:outline-offset-2 focus:outline-teal-700'\n onClick={props.onClose}\n type='button'\n >\n <X className='h-4 w-4' />\n </button>\n { props.place && (\n <>\n { firstImage && (\n <div\n className='relative w-full h-[200px] flex-grow-0 flex-shrink-0 bg-muted/20 z-0'\n >\n <div\n className='absolute top-0 left-0 w-full h-full flex justify-center items-center'\n >\n <Image\n className='h-20 w-20 text-gray-400'\n strokeWidth={1}\n />\n </div>\n <div\n className='absolute top-0 left-0 w-full h-full flex justify-center items-center'\n >\n <img\n className='object-cover h-full w-full'\n src={firstImage.content_url}\n alt={firstImage.title}\n />\n </div>\n </div>\n )}\n <div\n className='p-3'\n >\n <h1\n className='pr-6 font-medium'\n >\n { props.place.properties.title }\n </h1>\n <ol\n className='text-sm mt-4 leading-6 overflow-hidden'\n >\n { _.map(userDefined, ({ label, value }) => (\n <li\n key={label}\n className='mb-2'\n >\n <div\n className='text-muted'\n >\n { label }\n </div>\n <div\n className='font-medium overflow-hidden text-ellipsis'\n >\n { value }\n </div>\n </li>\n ))}\n </ol>\n </div>\n <RelatedItemsList\n items={props.related}\n />\n </>\n )}\n </aside>\n );\n};\n\nexport default PlaceDetailsPanel;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@performant-software/geospatial\");","// @flow\n\nimport { LocationMarker } from '@performant-software/geospatial';\nimport React, { useCallback, useEffect, useState } from 'react';\n\ntype Props = {\n /**\n * The URL of the Core Data place record.\n */\n url: string\n};\n\n/**\n * This component renders a map marker for a given Core Data Place record.\n */\nconst PlaceMarker = (props: Props) => {\n const [place, setPlace] = useState();\n\n /**\n * Converts the passed data to a feature collection and sets it on the state.\n *\n * @type {(function(*): void)|*}\n */\n const onLoad = useCallback((data) => {\n const featureCollection = {\n type: 'FeatureCollection',\n features: [{\n ...data,\n properties: {\n ...data.properties,\n record_id: data.record_id\n }\n }]\n };\n\n setPlace(featureCollection);\n }, []);\n\n /**\n * Fetch the place record from the passed URL.\n */\n useEffect(() => {\n fetch(props.url)\n .then((res) => res.json())\n .then(onLoad);\n }, [props.url]);\n\n if (!place) {\n return null;\n }\n\n return (\n <LocationMarker\n data={place}\n />\n );\n};\n\nexport default PlaceMarker;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-instantsearch\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-virtualized-auto-sizer\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-window\");","// @flow\n\nimport React, { useMemo } from 'react';\nimport { Highlight } from 'react-instantsearch';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { FixedSizeList } from 'react-window';\nimport _ from 'underscore';\nimport type { Feature } from '../types/Feature';\nimport type { Place } from '../types/typesense/Place';\nimport './PlaceResultsList.css';\n\n/**\n * Converts the passed place result to a feature.\n *\n * @param result\n *\n * @returns {{\n * geometry: {coordinates: number[], type: string},\n * id: number,\n * type:\n * string,\n * properties: {\n * ccode: *[],\n * record_id: string,\n * names: *,\n * name: string,\n * id: string,\n * title: string,\n * type: string,\n * uuid: string\n * }\n * }}\n */\nconst toFeature = (result: Place) => ({\n id: parseInt(result.record_id, 10),\n type: 'Feature',\n properties: {\n id: result.record_id,\n ccode: [],\n title: result.name,\n uuid: result.uuid,\n record_id: result.record_id,\n name: result.name,\n names: _.map(result.names, (toponym) => ({ toponym })),\n type: result.type\n },\n geometry: {\n type: 'Point',\n coordinates: result.coordinates.slice().reverse()\n }\n});\n\ntype HitComponentProps = {\n hit: any,\n isHovered: boolean,\n onClick: () => void\n};\n\nconst HitComponent = (props: HitComponentProps) => {\n const { hit } = props;\n\n const className = useMemo(() => {\n const classNames = [\n 'h-[5.5em]',\n 'border-b',\n 'flex',\n 'flex-col',\n 'justify-start'\n ];\n\n if (props.isHovered) {\n classNames.add('bg-teal-700/30');\n }\n\n return classNames.join(' ');\n }, [props.isHovered]);\n\n return (\n <div\n className={className}\n >\n <button\n className='py-2 px-3 flex-grow text-left inline-flex flex-col'\n onClick={props.onClick}\n type='button'\n >\n <Highlight\n attribute='name'\n className='line-clamp-2'\n hit={hit}\n />\n <p\n className='text-muted text-xs line-clamp-1'\n >\n <Highlight\n hit={hit}\n attribute='names'\n />\n </p>\n </button>\n </div>\n );\n};\n\ntype Props = {\n /**\n * An array of search results representing `/typesense/Place` objects.\n */\n hits: Array<Place>,\n\n /**\n * The object that is currently occupying the hover state.\n */\n hover?: Feature<{ id: string }>,\n\n /**\n * Callback fired when the hover item is changed.\n */\n onHoverChange: (hover?: Feature<{ id: string }>) => void,\n\n /**\n * Callback fired when a search result is clicked.\n */\n onClick: (result: Place) => void\n};\n\ntype RowProps = {\n index: number,\n style: any\n};\n\n/**\n * This component renders a list of search results returned from a Core Data Typesense index.\n */\nconst PlaceResultsList = (props: Props) => {\n const {\n hits,\n hover,\n onClick,\n onHoverChange\n } = props;\n\n const Row = ({ index, style }: RowProps) => {\n const hit = hits[index];\n const id = parseInt(hit.record_id, 10);\n\n return (\n <div\n style={style}\n onPointerEnter={() => onHoverChange(hover?.id === id ? hover : toFeature(hit))}\n onPointerLeave={() => onHoverChange(undefined)}\n >\n <HitComponent\n hit={hit}\n isHovered={hover?.id === parseInt(hit?.record_id, 10)}\n onClick={() => onClick(hit)}\n />\n </div>\n );\n };\n\n return (\n <AutoSizer>\n {({ height, width }) => (\n <FixedSizeList\n height={height}\n itemCount={hits.length}\n width={width}\n itemSize={88}\n >\n { Row }\n </FixedSizeList>\n )}\n </AutoSizer>\n );\n};\n\nexport default PlaceResultsList;\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","require","props","className","concat","trim","React","Dialog","onOpenChange","onClose","open","Boolean","defaultItem","Image","title","Viewer","iiifContent","manifest_url","options","informationPanel","asChild","type","X","resources","en","translation","i18n","i18next","init","debug","fallbackLng","lng","interpolation","escapeValue","RelatedMedia","_props$data","_useState2","useState","showGallery","setShowGallery","_","data","items","item","Thumbnail","body","id","onClick","thumbnail","content_thumbnail_url","width","thumbnailWidth","height","thumbnailHeight","MediaGallery","undefined","defaultProps","emptyMessage","renderItem","RelatedList","t","organization","Building2","person","UserCircle","place","MapPin","taxonomy","ListTree","Accordion","_ref","_data$items","error","conf","_objectWithoutProperties","_excluded","endpoint","ui_label","count","length","AlertCircle","LoadAnimation","ChevronDown","RelatedOrganizations","RelatedPeople","RelatedPlaces","RelatedTaxonomies","el","useRef","firstImage","useMemo","images","related","find","i","_i$data","userDefined","_props$place","user_defined","values","ref","strokeWidth","src","content_url","alt","properties","label","RelatedItemsList","setPlace","onLoad","useCallback","featureCollection","features","_objectSpread","record_id","useEffect","fetch","url","then","res","json","LocationMarker","HitComponent","hit","classNames","isHovered","add","join","Highlight","attribute","hits","hover","onHoverChange","Row","index","style","parseInt","onPointerEnter","result","ccode","name","uuid","names","toponym","geometry","coordinates","slice","reverse","onPointerLeave","AutoSizer","_ref2","FixedSizeList","itemCount","itemSize"],"sourceRoot":""}
|
package/build/main.css
CHANGED
|
@@ -1,813 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
|
5
|
-
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
*,
|
|
9
|
-
::before,
|
|
10
|
-
::after {
|
|
11
|
-
box-sizing: border-box; /* 1 */
|
|
12
|
-
border-width: 0; /* 2 */
|
|
13
|
-
border-style: solid; /* 2 */
|
|
14
|
-
border-color: #e5e7eb; /* 2 */
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
::before,
|
|
18
|
-
::after {
|
|
19
|
-
--tw-content: '';
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/*
|
|
23
|
-
1. Use a consistent sensible line-height in all browsers.
|
|
24
|
-
2. Prevent adjustments of font size after orientation changes in iOS.
|
|
25
|
-
3. Use a more readable tab size.
|
|
26
|
-
4. Use the user's configured `sans` font-family by default.
|
|
27
|
-
5. Use the user's configured `sans` font-feature-settings by default.
|
|
28
|
-
6. Use the user's configured `sans` font-variation-settings by default.
|
|
29
|
-
7. Disable tap highlights on iOS
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
html,
|
|
33
|
-
:host {
|
|
34
|
-
line-height: 1.5; /* 1 */
|
|
35
|
-
-webkit-text-size-adjust: 100%; /* 2 */
|
|
36
|
-
-moz-tab-size: 4; /* 3 */
|
|
37
|
-
-o-tab-size: 4;
|
|
38
|
-
tab-size: 4; /* 3 */
|
|
39
|
-
font-family: -apple-system, Roboto, sans-serif; /* 4 */
|
|
40
|
-
font-feature-settings: normal; /* 5 */
|
|
41
|
-
font-variation-settings: normal; /* 6 */
|
|
42
|
-
-webkit-tap-highlight-color: transparent; /* 7 */
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/*
|
|
46
|
-
1. Remove the margin in all browsers.
|
|
47
|
-
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
body {
|
|
51
|
-
margin: 0; /* 1 */
|
|
52
|
-
line-height: inherit; /* 2 */
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/*
|
|
56
|
-
1. Add the correct height in Firefox.
|
|
57
|
-
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
|
|
58
|
-
3. Ensure horizontal rules are visible by default.
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
hr {
|
|
62
|
-
height: 0; /* 1 */
|
|
63
|
-
color: inherit; /* 2 */
|
|
64
|
-
border-top-width: 1px; /* 3 */
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/*
|
|
68
|
-
Add the correct text decoration in Chrome, Edge, and Safari.
|
|
69
|
-
*/
|
|
70
|
-
|
|
71
|
-
abbr:where([title]) {
|
|
72
|
-
-webkit-text-decoration: underline dotted;
|
|
73
|
-
text-decoration: underline dotted;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/*
|
|
77
|
-
Remove the default font size and weight for headings.
|
|
78
|
-
*/
|
|
79
|
-
|
|
80
|
-
h1,
|
|
81
|
-
h2,
|
|
82
|
-
h3,
|
|
83
|
-
h4,
|
|
84
|
-
h5,
|
|
85
|
-
h6 {
|
|
86
|
-
font-size: inherit;
|
|
87
|
-
font-weight: inherit;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/*
|
|
91
|
-
Reset links to optimize for opt-in styling instead of opt-out.
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
a {
|
|
95
|
-
color: inherit;
|
|
96
|
-
text-decoration: inherit;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
Add the correct font weight in Edge and Safari.
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
b,
|
|
104
|
-
strong {
|
|
105
|
-
font-weight: bolder;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/*
|
|
109
|
-
1. Use the user's configured `mono` font-family by default.
|
|
110
|
-
2. Use the user's configured `mono` font-feature-settings by default.
|
|
111
|
-
3. Use the user's configured `mono` font-variation-settings by default.
|
|
112
|
-
4. Correct the odd `em` font sizing in all browsers.
|
|
113
|
-
*/
|
|
114
|
-
|
|
115
|
-
code,
|
|
116
|
-
kbd,
|
|
117
|
-
samp,
|
|
118
|
-
pre {
|
|
119
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
|
|
120
|
-
font-feature-settings: normal; /* 2 */
|
|
121
|
-
font-variation-settings: normal; /* 3 */
|
|
122
|
-
font-size: 1em; /* 4 */
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/*
|
|
126
|
-
Add the correct font size in all browsers.
|
|
127
|
-
*/
|
|
128
|
-
|
|
129
|
-
small {
|
|
130
|
-
font-size: 80%;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/*
|
|
134
|
-
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
|
|
135
|
-
*/
|
|
136
|
-
|
|
137
|
-
sub,
|
|
138
|
-
sup {
|
|
139
|
-
font-size: 75%;
|
|
140
|
-
line-height: 0;
|
|
141
|
-
position: relative;
|
|
142
|
-
vertical-align: baseline;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
sub {
|
|
146
|
-
bottom: -0.25em;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
sup {
|
|
150
|
-
top: -0.5em;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/*
|
|
154
|
-
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
|
|
155
|
-
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
|
|
156
|
-
3. Remove gaps between table borders by default.
|
|
157
|
-
*/
|
|
158
|
-
|
|
159
|
-
table {
|
|
160
|
-
text-indent: 0; /* 1 */
|
|
161
|
-
border-color: inherit; /* 2 */
|
|
162
|
-
border-collapse: collapse; /* 3 */
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/*
|
|
166
|
-
1. Change the font styles in all browsers.
|
|
167
|
-
2. Remove the margin in Firefox and Safari.
|
|
168
|
-
3. Remove default padding in all browsers.
|
|
169
|
-
*/
|
|
170
|
-
|
|
171
|
-
button,
|
|
172
|
-
input,
|
|
173
|
-
optgroup,
|
|
174
|
-
select,
|
|
175
|
-
textarea {
|
|
176
|
-
font-family: inherit; /* 1 */
|
|
177
|
-
font-feature-settings: inherit; /* 1 */
|
|
178
|
-
font-variation-settings: inherit; /* 1 */
|
|
179
|
-
font-size: 100%; /* 1 */
|
|
180
|
-
font-weight: inherit; /* 1 */
|
|
181
|
-
line-height: inherit; /* 1 */
|
|
182
|
-
color: inherit; /* 1 */
|
|
183
|
-
margin: 0; /* 2 */
|
|
184
|
-
padding: 0; /* 3 */
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/*
|
|
188
|
-
Remove the inheritance of text transform in Edge and Firefox.
|
|
189
|
-
*/
|
|
190
|
-
|
|
191
|
-
button,
|
|
192
|
-
select {
|
|
193
|
-
text-transform: none;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/*
|
|
197
|
-
1. Correct the inability to style clickable types in iOS and Safari.
|
|
198
|
-
2. Remove default button styles.
|
|
199
|
-
*/
|
|
200
|
-
|
|
201
|
-
button,
|
|
202
|
-
[type='button'],
|
|
203
|
-
[type='reset'],
|
|
204
|
-
[type='submit'] {
|
|
205
|
-
-webkit-appearance: button; /* 1 */
|
|
206
|
-
background-color: transparent; /* 2 */
|
|
207
|
-
background-image: none; /* 2 */
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/*
|
|
211
|
-
Use the modern Firefox focus style for all focusable elements.
|
|
212
|
-
*/
|
|
213
|
-
|
|
214
|
-
:-moz-focusring {
|
|
215
|
-
outline: auto;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/*
|
|
219
|
-
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
:-moz-ui-invalid {
|
|
223
|
-
box-shadow: none;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/*
|
|
227
|
-
Add the correct vertical alignment in Chrome and Firefox.
|
|
228
|
-
*/
|
|
229
|
-
|
|
230
|
-
progress {
|
|
231
|
-
vertical-align: baseline;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/*
|
|
235
|
-
Correct the cursor style of increment and decrement buttons in Safari.
|
|
236
|
-
*/
|
|
237
|
-
|
|
238
|
-
::-webkit-inner-spin-button,
|
|
239
|
-
::-webkit-outer-spin-button {
|
|
240
|
-
height: auto;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/*
|
|
244
|
-
1. Correct the odd appearance in Chrome and Safari.
|
|
245
|
-
2. Correct the outline style in Safari.
|
|
246
|
-
*/
|
|
247
|
-
|
|
248
|
-
[type='search'] {
|
|
249
|
-
-webkit-appearance: textfield; /* 1 */
|
|
250
|
-
outline-offset: -2px; /* 2 */
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/*
|
|
254
|
-
Remove the inner padding in Chrome and Safari on macOS.
|
|
255
|
-
*/
|
|
256
|
-
|
|
257
|
-
::-webkit-search-decoration {
|
|
258
|
-
-webkit-appearance: none;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/*
|
|
262
|
-
1. Correct the inability to style clickable types in iOS and Safari.
|
|
263
|
-
2. Change font properties to `inherit` in Safari.
|
|
264
|
-
*/
|
|
265
|
-
|
|
266
|
-
::-webkit-file-upload-button {
|
|
267
|
-
-webkit-appearance: button; /* 1 */
|
|
268
|
-
font: inherit; /* 2 */
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/*
|
|
272
|
-
Add the correct display in Chrome and Safari.
|
|
273
|
-
*/
|
|
274
|
-
|
|
275
|
-
summary {
|
|
276
|
-
display: list-item;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/*
|
|
280
|
-
Removes the default spacing and border for appropriate elements.
|
|
281
|
-
*/
|
|
282
|
-
|
|
283
|
-
blockquote,
|
|
284
|
-
dl,
|
|
285
|
-
dd,
|
|
286
|
-
h1,
|
|
287
|
-
h2,
|
|
288
|
-
h3,
|
|
289
|
-
h4,
|
|
290
|
-
h5,
|
|
291
|
-
h6,
|
|
292
|
-
hr,
|
|
293
|
-
figure,
|
|
294
|
-
p,
|
|
295
|
-
pre {
|
|
296
|
-
margin: 0;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
fieldset {
|
|
300
|
-
margin: 0;
|
|
301
|
-
padding: 0;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
legend {
|
|
305
|
-
padding: 0;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
ol,
|
|
309
|
-
ul,
|
|
310
|
-
menu {
|
|
311
|
-
list-style: none;
|
|
312
|
-
margin: 0;
|
|
313
|
-
padding: 0;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/*
|
|
317
|
-
Reset default styling for dialogs.
|
|
318
|
-
*/
|
|
319
|
-
dialog {
|
|
320
|
-
padding: 0;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/*
|
|
324
|
-
Prevent resizing textareas horizontally by default.
|
|
325
|
-
*/
|
|
326
|
-
|
|
327
|
-
textarea {
|
|
328
|
-
resize: vertical;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/*
|
|
332
|
-
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
|
|
333
|
-
2. Set the default placeholder color to the user's configured gray 400 color.
|
|
334
|
-
*/
|
|
335
|
-
|
|
336
|
-
input::-moz-placeholder, textarea::-moz-placeholder {
|
|
337
|
-
opacity: 1; /* 1 */
|
|
338
|
-
color: #9ca3af; /* 2 */
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
input::placeholder,
|
|
342
|
-
textarea::placeholder {
|
|
343
|
-
opacity: 1; /* 1 */
|
|
344
|
-
color: #9ca3af; /* 2 */
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/*
|
|
348
|
-
Set the default cursor for buttons.
|
|
349
|
-
*/
|
|
350
|
-
|
|
351
|
-
button,
|
|
352
|
-
[role="button"] {
|
|
353
|
-
cursor: pointer;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/*
|
|
357
|
-
Make sure disabled buttons don't get the pointer cursor.
|
|
358
|
-
*/
|
|
359
|
-
:disabled {
|
|
360
|
-
cursor: default;
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
/*
|
|
364
|
-
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
|
|
365
|
-
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
|
|
366
|
-
This can trigger a poorly considered lint error in some tools but is included by design.
|
|
367
|
-
*/
|
|
368
|
-
|
|
369
|
-
img,
|
|
370
|
-
svg,
|
|
371
|
-
video,
|
|
372
|
-
canvas,
|
|
373
|
-
audio,
|
|
374
|
-
iframe,
|
|
375
|
-
embed,
|
|
376
|
-
object {
|
|
377
|
-
display: block; /* 1 */
|
|
378
|
-
vertical-align: middle; /* 2 */
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/*
|
|
382
|
-
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
|
|
383
|
-
*/
|
|
384
|
-
|
|
385
|
-
img,
|
|
386
|
-
video {
|
|
387
|
-
max-width: 100%;
|
|
388
|
-
height: auto;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
/* Make elements with the HTML hidden attribute stay hidden by default */
|
|
392
|
-
[hidden] {
|
|
393
|
-
display: none;
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
*, ::before, ::after {
|
|
397
|
-
--tw-border-spacing-x: 0;
|
|
398
|
-
--tw-border-spacing-y: 0;
|
|
399
|
-
--tw-translate-x: 0;
|
|
400
|
-
--tw-translate-y: 0;
|
|
401
|
-
--tw-rotate: 0;
|
|
402
|
-
--tw-skew-x: 0;
|
|
403
|
-
--tw-skew-y: 0;
|
|
404
|
-
--tw-scale-x: 1;
|
|
405
|
-
--tw-scale-y: 1;
|
|
406
|
-
--tw-pan-x: ;
|
|
407
|
-
--tw-pan-y: ;
|
|
408
|
-
--tw-pinch-zoom: ;
|
|
409
|
-
--tw-scroll-snap-strictness: proximity;
|
|
410
|
-
--tw-gradient-from-position: ;
|
|
411
|
-
--tw-gradient-via-position: ;
|
|
412
|
-
--tw-gradient-to-position: ;
|
|
413
|
-
--tw-ordinal: ;
|
|
414
|
-
--tw-slashed-zero: ;
|
|
415
|
-
--tw-numeric-figure: ;
|
|
416
|
-
--tw-numeric-spacing: ;
|
|
417
|
-
--tw-numeric-fraction: ;
|
|
418
|
-
--tw-ring-inset: ;
|
|
419
|
-
--tw-ring-offset-width: 0px;
|
|
420
|
-
--tw-ring-offset-color: #fff;
|
|
421
|
-
--tw-ring-color: rgb(59 130 246 / 0.5);
|
|
422
|
-
--tw-ring-offset-shadow: 0 0 #0000;
|
|
423
|
-
--tw-ring-shadow: 0 0 #0000;
|
|
424
|
-
--tw-shadow: 0 0 #0000;
|
|
425
|
-
--tw-shadow-colored: 0 0 #0000;
|
|
426
|
-
--tw-blur: ;
|
|
427
|
-
--tw-brightness: ;
|
|
428
|
-
--tw-contrast: ;
|
|
429
|
-
--tw-grayscale: ;
|
|
430
|
-
--tw-hue-rotate: ;
|
|
431
|
-
--tw-invert: ;
|
|
432
|
-
--tw-saturate: ;
|
|
433
|
-
--tw-sepia: ;
|
|
434
|
-
--tw-drop-shadow: ;
|
|
435
|
-
--tw-backdrop-blur: ;
|
|
436
|
-
--tw-backdrop-brightness: ;
|
|
437
|
-
--tw-backdrop-contrast: ;
|
|
438
|
-
--tw-backdrop-grayscale: ;
|
|
439
|
-
--tw-backdrop-hue-rotate: ;
|
|
440
|
-
--tw-backdrop-invert: ;
|
|
441
|
-
--tw-backdrop-opacity: ;
|
|
442
|
-
--tw-backdrop-saturate: ;
|
|
443
|
-
--tw-backdrop-sepia: ;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
::backdrop {
|
|
447
|
-
--tw-border-spacing-x: 0;
|
|
448
|
-
--tw-border-spacing-y: 0;
|
|
449
|
-
--tw-translate-x: 0;
|
|
450
|
-
--tw-translate-y: 0;
|
|
451
|
-
--tw-rotate: 0;
|
|
452
|
-
--tw-skew-x: 0;
|
|
453
|
-
--tw-skew-y: 0;
|
|
454
|
-
--tw-scale-x: 1;
|
|
455
|
-
--tw-scale-y: 1;
|
|
456
|
-
--tw-pan-x: ;
|
|
457
|
-
--tw-pan-y: ;
|
|
458
|
-
--tw-pinch-zoom: ;
|
|
459
|
-
--tw-scroll-snap-strictness: proximity;
|
|
460
|
-
--tw-gradient-from-position: ;
|
|
461
|
-
--tw-gradient-via-position: ;
|
|
462
|
-
--tw-gradient-to-position: ;
|
|
463
|
-
--tw-ordinal: ;
|
|
464
|
-
--tw-slashed-zero: ;
|
|
465
|
-
--tw-numeric-figure: ;
|
|
466
|
-
--tw-numeric-spacing: ;
|
|
467
|
-
--tw-numeric-fraction: ;
|
|
468
|
-
--tw-ring-inset: ;
|
|
469
|
-
--tw-ring-offset-width: 0px;
|
|
470
|
-
--tw-ring-offset-color: #fff;
|
|
471
|
-
--tw-ring-color: rgb(59 130 246 / 0.5);
|
|
472
|
-
--tw-ring-offset-shadow: 0 0 #0000;
|
|
473
|
-
--tw-ring-shadow: 0 0 #0000;
|
|
474
|
-
--tw-shadow: 0 0 #0000;
|
|
475
|
-
--tw-shadow-colored: 0 0 #0000;
|
|
476
|
-
--tw-blur: ;
|
|
477
|
-
--tw-brightness: ;
|
|
478
|
-
--tw-contrast: ;
|
|
479
|
-
--tw-grayscale: ;
|
|
480
|
-
--tw-hue-rotate: ;
|
|
481
|
-
--tw-invert: ;
|
|
482
|
-
--tw-saturate: ;
|
|
483
|
-
--tw-sepia: ;
|
|
484
|
-
--tw-drop-shadow: ;
|
|
485
|
-
--tw-backdrop-blur: ;
|
|
486
|
-
--tw-backdrop-brightness: ;
|
|
487
|
-
--tw-backdrop-contrast: ;
|
|
488
|
-
--tw-backdrop-grayscale: ;
|
|
489
|
-
--tw-backdrop-hue-rotate: ;
|
|
490
|
-
--tw-backdrop-invert: ;
|
|
491
|
-
--tw-backdrop-opacity: ;
|
|
492
|
-
--tw-backdrop-saturate: ;
|
|
493
|
-
--tw-backdrop-sepia: ;
|
|
494
|
-
}
|
|
495
|
-
.absolute {
|
|
496
|
-
position: absolute;
|
|
497
|
-
}
|
|
498
|
-
.relative {
|
|
499
|
-
position: relative;
|
|
500
|
-
}
|
|
501
|
-
.left-0 {
|
|
502
|
-
left: 0px;
|
|
503
|
-
}
|
|
504
|
-
.right-2 {
|
|
505
|
-
right: 0.5rem;
|
|
506
|
-
}
|
|
507
|
-
.top-0 {
|
|
508
|
-
top: 0px;
|
|
509
|
-
}
|
|
510
|
-
.top-2 {
|
|
511
|
-
top: 0.5rem;
|
|
512
|
-
}
|
|
513
|
-
.z-0 {
|
|
514
|
-
z-index: 0;
|
|
515
|
-
}
|
|
516
|
-
.z-10 {
|
|
517
|
-
z-index: 10;
|
|
518
|
-
}
|
|
519
|
-
.mb-0 {
|
|
520
|
-
margin-bottom: 0px;
|
|
521
|
-
}
|
|
522
|
-
.mb-0\.5 {
|
|
523
|
-
margin-bottom: 0.125rem;
|
|
524
|
-
}
|
|
525
|
-
.mb-2 {
|
|
526
|
-
margin-bottom: 0.5rem;
|
|
527
|
-
}
|
|
528
|
-
.ml-1 {
|
|
529
|
-
margin-left: 0.25rem;
|
|
530
|
-
}
|
|
531
|
-
.ml-1\.5 {
|
|
532
|
-
margin-left: 0.375rem;
|
|
533
|
-
}
|
|
534
|
-
.ml-4 {
|
|
535
|
-
margin-left: 1rem;
|
|
536
|
-
}
|
|
537
|
-
.mr-0 {
|
|
538
|
-
margin-right: 0px;
|
|
539
|
-
}
|
|
540
|
-
.mr-0\.5 {
|
|
541
|
-
margin-right: 0.125rem;
|
|
542
|
-
}
|
|
543
|
-
.mr-1 {
|
|
544
|
-
margin-right: 0.25rem;
|
|
545
|
-
}
|
|
546
|
-
.mr-1\.5 {
|
|
547
|
-
margin-right: 0.375rem;
|
|
548
|
-
}
|
|
549
|
-
.mt-4 {
|
|
550
|
-
margin-top: 1rem;
|
|
551
|
-
}
|
|
552
|
-
.line-clamp-1 {
|
|
553
|
-
overflow: hidden;
|
|
554
|
-
display: -webkit-box;
|
|
555
|
-
-webkit-box-orient: vertical;
|
|
556
|
-
-webkit-line-clamp: 1;
|
|
557
|
-
}
|
|
558
|
-
.line-clamp-2 {
|
|
559
|
-
overflow: hidden;
|
|
560
|
-
display: -webkit-box;
|
|
561
|
-
-webkit-box-orient: vertical;
|
|
562
|
-
-webkit-line-clamp: 2;
|
|
563
|
-
}
|
|
564
|
-
.inline-block {
|
|
565
|
-
display: inline-block;
|
|
566
|
-
}
|
|
567
|
-
.inline {
|
|
568
|
-
display: inline;
|
|
569
|
-
}
|
|
570
|
-
.flex {
|
|
571
|
-
display: flex;
|
|
572
|
-
}
|
|
573
|
-
.inline-flex {
|
|
574
|
-
display: inline-flex;
|
|
575
|
-
}
|
|
576
|
-
.grid {
|
|
577
|
-
display: grid;
|
|
578
|
-
}
|
|
579
|
-
.h-20 {
|
|
580
|
-
height: 5rem;
|
|
581
|
-
}
|
|
582
|
-
.h-4 {
|
|
583
|
-
height: 1rem;
|
|
584
|
-
}
|
|
585
|
-
.h-7 {
|
|
586
|
-
height: 1.75rem;
|
|
587
|
-
}
|
|
588
|
-
.h-\[200px\] {
|
|
589
|
-
height: 200px;
|
|
590
|
-
}
|
|
591
|
-
.h-\[5\.5em\] {
|
|
592
|
-
height: 5.5em;
|
|
593
|
-
}
|
|
594
|
-
.h-full {
|
|
595
|
-
height: 100%;
|
|
596
|
-
}
|
|
597
|
-
.min-h-20 {
|
|
598
|
-
min-height: 5rem;
|
|
599
|
-
}
|
|
600
|
-
.w-20 {
|
|
601
|
-
width: 5rem;
|
|
602
|
-
}
|
|
603
|
-
.w-4 {
|
|
604
|
-
width: 1rem;
|
|
605
|
-
}
|
|
606
|
-
.w-7 {
|
|
607
|
-
width: 1.75rem;
|
|
608
|
-
}
|
|
609
|
-
.w-\[280px\] {
|
|
610
|
-
width: 280px;
|
|
611
|
-
}
|
|
612
|
-
.w-full {
|
|
613
|
-
width: 100%;
|
|
614
|
-
}
|
|
615
|
-
.flex-shrink-0 {
|
|
616
|
-
flex-shrink: 0;
|
|
617
|
-
}
|
|
618
|
-
.flex-grow {
|
|
619
|
-
flex-grow: 1;
|
|
620
|
-
}
|
|
621
|
-
.flex-grow-0 {
|
|
622
|
-
flex-grow: 0;
|
|
623
|
-
}
|
|
624
|
-
.cursor-pointer {
|
|
625
|
-
cursor: pointer;
|
|
626
|
-
}
|
|
627
|
-
.grid-cols-3 {
|
|
628
|
-
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
629
|
-
}
|
|
630
|
-
.flex-col {
|
|
631
|
-
flex-direction: column;
|
|
632
|
-
}
|
|
633
|
-
.items-center {
|
|
634
|
-
align-items: center;
|
|
635
|
-
}
|
|
636
|
-
.justify-start {
|
|
637
|
-
justify-content: flex-start;
|
|
638
|
-
}
|
|
639
|
-
.justify-center {
|
|
640
|
-
justify-content: center;
|
|
641
|
-
}
|
|
642
|
-
.justify-between {
|
|
643
|
-
justify-content: space-between;
|
|
644
|
-
}
|
|
645
|
-
.gap-1 {
|
|
646
|
-
gap: 0.25rem;
|
|
647
|
-
}
|
|
648
|
-
.overflow-hidden {
|
|
649
|
-
overflow: hidden;
|
|
650
|
-
}
|
|
651
|
-
.overflow-y-auto {
|
|
652
|
-
overflow-y: auto;
|
|
653
|
-
}
|
|
654
|
-
.text-ellipsis {
|
|
655
|
-
text-overflow: ellipsis;
|
|
656
|
-
}
|
|
657
|
-
.rounded {
|
|
658
|
-
border-radius: 0.25rem;
|
|
659
|
-
}
|
|
660
|
-
.rounded-full {
|
|
661
|
-
border-radius: 9999px;
|
|
662
|
-
}
|
|
663
|
-
.rounded-none {
|
|
664
|
-
border-radius: 0px;
|
|
665
|
-
}
|
|
666
|
-
.border {
|
|
667
|
-
border-width: 1px;
|
|
668
|
-
}
|
|
669
|
-
.border-b {
|
|
670
|
-
border-bottom-width: 1px;
|
|
671
|
-
}
|
|
672
|
-
.border-b-0 {
|
|
673
|
-
border-bottom-width: 0px;
|
|
674
|
-
}
|
|
675
|
-
.border-l-0 {
|
|
676
|
-
border-left-width: 0px;
|
|
677
|
-
}
|
|
678
|
-
.border-r-0 {
|
|
679
|
-
border-right-width: 0px;
|
|
680
|
-
}
|
|
681
|
-
.border-t {
|
|
682
|
-
border-top-width: 1px;
|
|
683
|
-
}
|
|
684
|
-
.border-solid {
|
|
685
|
-
border-style: solid;
|
|
686
|
-
}
|
|
687
|
-
.border-black\/20 {
|
|
688
|
-
border-color: rgb(0 0 0 / 0.2);
|
|
689
|
-
}
|
|
690
|
-
.bg-muted\/20 {
|
|
691
|
-
background-color: rgb(0 5 17 / 0.2);
|
|
692
|
-
}
|
|
693
|
-
.bg-slate-200\/60 {
|
|
694
|
-
background-color: rgb(226 232 240 / 0.6);
|
|
695
|
-
}
|
|
696
|
-
.bg-teal-700\/30 {
|
|
697
|
-
background-color: rgb(15 118 110 / 0.3);
|
|
698
|
-
}
|
|
699
|
-
.bg-white\/80 {
|
|
700
|
-
background-color: rgb(255 255 255 / 0.8);
|
|
701
|
-
}
|
|
702
|
-
.object-cover {
|
|
703
|
-
-o-object-fit: cover;
|
|
704
|
-
object-fit: cover;
|
|
705
|
-
}
|
|
706
|
-
.p-1 {
|
|
707
|
-
padding: 0.25rem;
|
|
708
|
-
}
|
|
709
|
-
.p-1\.5 {
|
|
710
|
-
padding: 0.375rem;
|
|
711
|
-
}
|
|
712
|
-
.p-3 {
|
|
713
|
-
padding: 0.75rem;
|
|
714
|
-
}
|
|
715
|
-
.px-3 {
|
|
716
|
-
padding-left: 0.75rem;
|
|
717
|
-
padding-right: 0.75rem;
|
|
718
|
-
}
|
|
719
|
-
.py-2 {
|
|
720
|
-
padding-top: 0.5rem;
|
|
721
|
-
padding-bottom: 0.5rem;
|
|
722
|
-
}
|
|
723
|
-
.py-3 {
|
|
724
|
-
padding-top: 0.75rem;
|
|
725
|
-
padding-bottom: 0.75rem;
|
|
726
|
-
}
|
|
727
|
-
.pb-2 {
|
|
728
|
-
padding-bottom: 0.5rem;
|
|
729
|
-
}
|
|
730
|
-
.pb-4 {
|
|
731
|
-
padding-bottom: 1rem;
|
|
732
|
-
}
|
|
733
|
-
.pb-8 {
|
|
734
|
-
padding-bottom: 2rem;
|
|
735
|
-
}
|
|
736
|
-
.pl-3 {
|
|
737
|
-
padding-left: 0.75rem;
|
|
738
|
-
}
|
|
739
|
-
.pr-6 {
|
|
740
|
-
padding-right: 1.5rem;
|
|
741
|
-
}
|
|
742
|
-
.pt-1 {
|
|
743
|
-
padding-top: 0.25rem;
|
|
744
|
-
}
|
|
745
|
-
.pt-6 {
|
|
746
|
-
padding-top: 1.5rem;
|
|
747
|
-
}
|
|
748
|
-
.text-left {
|
|
749
|
-
text-align: left;
|
|
750
|
-
}
|
|
751
|
-
.align-text-bottom {
|
|
752
|
-
vertical-align: text-bottom;
|
|
753
|
-
}
|
|
754
|
-
.text-sm {
|
|
755
|
-
font-size: 0.875rem;
|
|
756
|
-
line-height: 1.25rem;
|
|
757
|
-
}
|
|
758
|
-
.text-xs {
|
|
759
|
-
font-size: 0.75rem;
|
|
760
|
-
line-height: 1rem;
|
|
761
|
-
}
|
|
762
|
-
.font-medium {
|
|
763
|
-
font-weight: 500;
|
|
764
|
-
}
|
|
765
|
-
.italic {
|
|
766
|
-
font-style: italic;
|
|
767
|
-
}
|
|
768
|
-
.leading-6 {
|
|
769
|
-
line-height: 1.5rem;
|
|
770
|
-
}
|
|
771
|
-
.text-gray-400 {
|
|
772
|
-
--tw-text-opacity: 1;
|
|
773
|
-
color: rgb(156 163 175 / var(--tw-text-opacity));
|
|
774
|
-
}
|
|
775
|
-
.text-muted {
|
|
776
|
-
color: #0005119e;
|
|
777
|
-
}
|
|
778
|
-
.text-muted\/50 {
|
|
779
|
-
color: rgb(0 5 17 / 0.5);
|
|
780
|
-
}
|
|
781
|
-
.text-muted\/60 {
|
|
782
|
-
color: rgb(0 5 17 / 0.6);
|
|
783
|
-
}
|
|
784
|
-
.text-red-600 {
|
|
785
|
-
--tw-text-opacity: 1;
|
|
786
|
-
color: rgb(220 38 38 / var(--tw-text-opacity));
|
|
787
|
-
}
|
|
788
|
-
.shadow {
|
|
789
|
-
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
790
|
-
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
|
|
791
|
-
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
792
|
-
}
|
|
793
|
-
.backdrop-blur {
|
|
794
|
-
--tw-backdrop-blur: blur(8px);
|
|
795
|
-
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
|
|
796
|
-
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
|
|
797
|
-
}
|
|
798
|
-
.hover\:bg-slate-200:hover {
|
|
799
|
-
--tw-bg-opacity: 1;
|
|
800
|
-
background-color: rgb(226 232 240 / var(--tw-bg-opacity));
|
|
801
|
-
}
|
|
802
|
-
.focus\:outline-2:focus {
|
|
803
|
-
outline-width: 2px;
|
|
804
|
-
}
|
|
805
|
-
.focus\:outline-offset-2:focus {
|
|
806
|
-
outline-offset: 2px;
|
|
807
|
-
}
|
|
808
|
-
.focus\:outline-teal-700:focus {
|
|
809
|
-
outline-color: #0f766e;
|
|
810
|
-
}
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
811
4
|
|
|
812
5
|
/** https://cssloaders.github.io/ MIT License **/
|
|
813
6
|
.loader.three-dots,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@performant-software/core-data",
|
|
3
|
-
"version": "1.2.0-beta.
|
|
3
|
+
"version": "1.2.0-beta.11",
|
|
4
4
|
"description": "A package of components used for Core Data",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
"build": "webpack --mode production && flow-copy-source -v src types"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@
|
|
13
|
-
"@performant-software/geospatial": "^1.2.0-beta.10",
|
|
12
|
+
"@performant-software/geospatial": "^1.2.0-beta.11",
|
|
14
13
|
"@radix-ui/react-accordion": "^1.1.2",
|
|
15
14
|
"@radix-ui/react-dialog": "^1.0.5",
|
|
16
15
|
"@samvera/clover-iiif": "^2.3.2",
|
|
@@ -22,11 +21,13 @@
|
|
|
22
21
|
"underscore": "^1.13.2"
|
|
23
22
|
},
|
|
24
23
|
"peerDependencies": {
|
|
24
|
+
"@peripleo/maplibre": "^0.3.3",
|
|
25
25
|
"react": ">= 16.13.1 < 19.0.0",
|
|
26
26
|
"react-dom": ">= 16.13.1 < 19.0.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
30
|
+
"@peripleo/maplibre": "^0.3.3",
|
|
30
31
|
"@performant-software/webpack-config": "^1.0.0",
|
|
31
32
|
"autoprefixer": "^10.4.17",
|
|
32
33
|
"mini-css-extract-plugin": "^2.8.0",
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import { useMap } from '@peripleo/maplibre';
|
|
4
3
|
import { LocationMarker } from '@performant-software/geospatial';
|
|
5
4
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
6
5
|
|
|
@@ -53,7 +52,6 @@ const PlaceMarker = (props: Props) => {
|
|
|
53
52
|
return (
|
|
54
53
|
<LocationMarker
|
|
55
54
|
data={place}
|
|
56
|
-
useMap={useMap}
|
|
57
55
|
/>
|
|
58
56
|
);
|
|
59
57
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import { useMap } from '@peripleo/maplibre';
|
|
4
3
|
import { LocationMarker } from '@performant-software/geospatial';
|
|
5
4
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
6
5
|
|
|
@@ -53,7 +52,6 @@ const PlaceMarker = (props: Props) => {
|
|
|
53
52
|
return (
|
|
54
53
|
<LocationMarker
|
|
55
54
|
data={place}
|
|
56
|
-
useMap={useMap}
|
|
57
55
|
/>
|
|
58
56
|
);
|
|
59
57
|
};
|