primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 3.59 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/hooks"),r=require("primereact/utils");function t(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var a=t(e);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},o.apply(this,arguments)}function l(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=u(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var t=0,a=function(){};return{s:a,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,i=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return l=e.done,e},e:function(e){i=!0,o=e},f:function(){try{l||null==r.return||r.return()}finally{if(i)throw o}}}}function u(e,n){if(e){if("string"==typeof e)return i(e,n);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)?i(e,n):void 0}}function i(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r<n;r++)t[r]=e[r];return t}var c=a.memo(a.forwardRef((function(e,t){var u=a.useRef(null),i=a.useRef(null),f=a.useRef(null),s=function(e){if(e){var n,r=l(e);try{for(r.s();!(n=r.n()).done;){var t=n.value;t.setMap(i.current),d(t)}}catch(e){r.e(e)}finally{r.f()}f.current=e}},d=function(n){n.addListener("click",(function(r){e.onOverlayClick&&e.onOverlayClick({originalEvent:r,overlay:n,map:i.current})})),n.getDraggable()&&p(n)},p=function(n){v(n,"dragstart",e.onOverlayDragStart),v(n,"drag",e.onOverlayDrag),v(n,"dragend",e.onOverlayDragEnd)},g=function(e,n){i.current.addListener(e,(function(e){n&&n(e)}))},v=function(e,n,r){e.addListener(n,(function(n){r&&r({originalEvent:n,overlay:e,map:i.current})}))},y=function(e){if(e){var n,r=l(e);try{for(r.s();!(n=r.n()).done;){var t=n.value;t.setMap(null),m(t)}}catch(e){r.e(e)}finally{r.f()}}},m=function(e){google.maps.event.clearListeners(e,"click"),e.getDraggable()&&(google.maps.event.clearListeners(e,"dragstart"),google.maps.event.clearListeners(e,"drag"),google.maps.event.clearListeners(e,"dragend"))},b=function(){return i.current};n.useMountEffect((function(){i.current=new google.maps.Map(u.current,e.options),e.onMapReady&&e.onMapReady({map:i.current}),s(e.overlays),g("click",e.onMapClick),g("dragend",e.onMapDragEnd),g("zoom_changed",e.onZoomChanged)})),n.useUpdateEffect((function(){return s(e.overlays),function(){y(f.current)}})),a.useImperativeHandle(t,(function(){return{props:e,getMap:b,getElement:function(){return u.current}}}));var O=r.ObjectUtils.findDiffKeys(e,c.defaultProps);return a.createElement("div",o({ref:u,style:e.style,className:e.className},O))})));c.displayName="GMap",c.defaultProps={__TYPE:"GMap",options:null,overlays:null,style:null,className:null,onMapReady:null,onMapClick:null,onMapDragEnd:null,onZoomChanged:null,onOverlayDragStart:null,onOverlayDrag:null,onOverlayDragEnd:null,onOverlayClick:null},exports.GMap=c;