UNPKG

@progress/kendo-react-map

Version:
9 lines (8 loc) 6.31 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react"),k=require("prop-types"),I=require("@progress/kendo-charts"),T=require("./events/map-event-builder.js"),v=require("./store/store.js"),g=require("./store/reducer.js"),L=require("./MapContext.js"),S=require("./tooltip/MapTooltip.js"),h=require("@progress/kendo-react-common"),f=require("./package-metadata.js"),w=require("./events/dom-event.js"),c=require("@progress/kendo-svg-icons");function A(p){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(p){for(const t in p)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(p,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>p[t]})}}return e.default=p,Object.freeze(e)}const a=A(O),b={mapMarkerTargetIcon:c.mapMarkerTargetIcon,mapMarkerIcon:c.mapMarkerIcon,plusIcon:c.plusIcon,minusIcon:c.minusIcon,caretAltUpIcon:c.caretAltUpIcon,caretAltDownIcon:c.caretAltDownIcon,caretAltLeftIcon:c.caretAltLeftIcon,caretAltRightIcon:c.caretAltRightIcon},M="svg",u=class u extends a.Component{constructor(e){super(e),this.mapInstance=null,this._element=null,this.optionsStore={},this.optionsUnsubscriber=Function.prototype,this.observersStore={},this.showLicenseWatermark=!1,this.iconsType=M,this.svgIcons=b,this.onInit=t=>{this.mapInstance=t.sender},this.onRender=t=>{this.mapInstance!==null&&this.trigger("render",t)},this.onMapMouseLeave=t=>{const n=w.toDomEvent(this,t);this.triggerDomEvent("onMouseLeave",n)?t.preventDefault():this.mapInstance!==null&&this.mapInstance.hideTooltip()},this.showLicenseWatermark=!h.validatePackage(f.packageMetadata,{component:"Map"}),this.licenseMessage=h.getLicenseMessage(f.packageMetadata),this.optionsStore=v(g.optionsReducer),this.observersStore=v(g.observersReducer),this.childrenObserver=new I.InstanceObserver(this,{onMouseLeave:"onChildMouseLeave"}),this.contextValue={optionsStore:this.optionsStore,observersStore:this.observersStore,childrenObserver:this.childrenObserver},this.mapObserver=new I.InstanceObserver(this,{init:"onInit"})}get element(){return this._element}componentDidMount(){this.instantiateCoreMap(),this.optionsUnsubscriber=this.optionsStore.subscribe(this.refresh.bind(this))}componentWillUnmount(){this.optionsUnsubscriber(),this.mapInstance!==null&&(this.mapInstance.destroy(),this.mapInstance=null)}componentDidUpdate(e){const{dir:t,children:n,...s}=this.props;this.mapInstance!==null&&(Object.entries(e).filter(r=>r[0]!=="dir"&&r[0]!=="children").some(r=>{const[i,l]=r;return!(s.hasOwnProperty(i)&&s[i]===l)})&&this.refresh(),e.dir)}render(){const{style:e={},className:t,children:n}=this.props,s=Object.assign({},e,{position:"relative"}),o=a.createElement("div",{className:t,style:s,key:"mapElement"},a.createElement("div",{ref:r=>{this._element=r},className:"k-map",onMouseLeave:this.onMapMouseLeave},n));return a.createElement(a.Fragment,null,a.createElement(h.IconsContext.Consumer,null,r=>a.createElement(L.MapContext.Provider,{value:this.contextValue},a.createElement(S.MapTooltip,{key:"tooltip"}),o,this.setIcons(r))),this.showLicenseWatermark&&a.createElement(h.WatermarkOverlay,{message:this.licenseMessage}))}getMapOptions(){const{center:e,controls:t,minZoom:n,maxZoom:s,minSize:o,pannable:r,wraparound:i,zoom:l,zoomable:y}=this.props;let m={center:e,controls:t,minZoom:n,maxZoom:s,minSize:o,pannable:r,wraparound:i,zoom:l,zoomable:y,icons:{type:this.iconsType,svgIcons:this.svgIcons}};return m=Object.assign(m,this.optionsStore.getState()),m}get layers(){var e;return(e=this.mapInstance)==null?void 0:e.layers}get extent(){var e;return(e=this.mapInstance)==null?void 0:e.extent()}set extent(e){var t;(t=this.mapInstance)==null||t.extent(e)}resize(){}viewSize(){var e;return(e=this.mapInstance)==null?void 0:e.viewSize()}eventOffset(e){var t;return(t=this.mapInstance)==null?void 0:t.eventOffset(e)}eventToLayer(e){var t;return(t=this.mapInstance)==null?void 0:t.eventToLayer(e)}eventToLocation(e){var t;return(t=this.mapInstance)==null?void 0:t.eventToLocation(e)}eventToView(e){var t;return(t=this.mapInstance)==null?void 0:t.eventToView(e)}layerToLocation(e,t){var n;return(n=this.mapInstance)==null?void 0:n.layerToLocation(e,t)}locationToLayer(e,t){var n;return(n=this.mapInstance)==null?void 0:n.locationToLayer(e,t)}locationToView(e){var t;return(t=this.mapInstance)==null?void 0:t.locationToView(e)}viewToLocation(e,t){var n;return(n=this.mapInstance)==null?void 0:n.viewToLocation(e,t)}loadMarkers(e){const t=this.mapInstance.markers;t&&t._load(e)}refresh(){if(this.mapInstance!==null){const e=this.getMapOptions();this.props.onRefresh?this.props.onRefresh.call(void 0,e,this.mapInstance):this.mapInstance.setOptions(e)}}instantiateCoreMap(){const e=this.getMapOptions();this.mapInstance=new I.Map(this.element,e,{},{observer:this.mapObserver,sender:this})}trigger(e,t){const n=e==="click"?"mapClick":e,s=T.create(n,t,this),o="on"+n.charAt(0).toUpperCase()+n.slice(1),r=this.observersStore.getState();let i=!1;for(let l=0;l<r.length;l++)r[l].trigger(n,t)&&(i=!0);return i===!1&&s&&this.props.hasOwnProperty(o)?(this.props[o].call(void 0,s),s.isDefaultPrevented&&s.isDefaultPrevented()):i}requiresHandlers(e){for(let t=0;t<e.length;t++){const n=e[t],s="on"+n.charAt(0).toUpperCase()+n.slice(1);if(this.props.hasOwnProperty(s))return!0}return!1}triggerDomEvent(e,t){const n=this.observersStore.getState();let s=!1;for(let o=0;o<n.length;o++)n[o].trigger(e,t)&&(s=!0);return s}setIcons(e){const{type:t,icons:n={}}=e,s={...b},o={mapMarkerTargetIcon:n.mapMarkerTargetIcon,mapMarkerIcon:n.mapMarkerIcon,plusIcon:n.plusIcon,minusIcon:n.minusIcon,caretAltUpIcon:n.caretAltUpIcon,caretAltDownIcon:n.caretAltDownIcon,caretAltLeftIcon:n.caretAltLeftIcon,caretAltRightIcon:n.caretAltRightIcon};let r;for(r in o)if(o[r]){const i=o[r];i&&typeof i!="string"&&(s[r]=i)}return this.svgIcons=s,this.iconsType=t||M,null}};u.propTypes={dir:k.string},u.defaultProps={};let d=u;exports.Map=d;