1"use strict";(self.webpackChunknestseekers=self.webpackChunknestseekers||[]).push([["react_components_pages_ManageBorders_ManageBordersPage_tsx"],{"./react/components/pages/ManageBorders/ManageBordersPage.tsx"(e,n,t){t.r(n),t.d(n,{default:()=>D});var r=t("./node_modules/@radix-ui/react-icons/dist/react-icons.esm.js"),o=t("./node_modules/@vis.gl/react-google-maps/dist/index.modern.mjs"),a=t("./node_modules/react/index.js"),i=t("./react/components/PageHeader.tsx");const l=function(){return a.createElement("div",null,a.createElement(i.A,null,"Region Borders"))};var c=function(e){if("string"==typeof e&&(e=JSON.parse(e)),!e||!e.coordinates)return[];var n=[];return"MultiPolygon"===e.type?e.coordinates.forEach(function(e){e.forEach(function(e){var t=e.map(function(e){return new google.maps.LatLng(e[1],e[0])});n.push(t)})}):"Polygon"===e.type&&e.coordinates.forEach(function(e){var t=e.map(function(e){return new google.maps.LatLng(e[1],e[0])});n.push(t)}),n.length>0?[n[0]]:[]};function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var s=(0,a.forwardRef)(function(e,n){var t=function(e){var n,t=e.onClick,r=e.onDrag,i=e.onDragStart,l=e.onDragEnd,c=e.onMouseOver,s=e.onMouseOut,d=e.onDoubleClick,f=e.paths,g=function(e,n){if(null==e)return{};var t,r,o,a={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(t=Reflect.ownKeys(e),o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,n){if(null==e)return{};var t,r,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t]);return o}(e,n),Object.getOwnPropertySymbols)for(t=Object.getOwnPropertySymbols(e),o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(e,["onClick","onDrag","onDragStart","onDragEnd","onMouseOver","onMouseOut","onDoubleClick","paths"]),m=(0,a.useRef)({});Object.assign(m.current,{onClick:t,onDrag:r,onDragStart:i,onDragEnd:l,onMouseOver:c,onMouseOut:s,onDoubleClick:d});var p=(0,a.useRef)(new google.maps.Polygon).current;(0,a.useMemo)(function(){p.setOptions(g)},[p,g]);var h=null===(n=(0,a.useContext)(o.QX))||void 0===n?void 0:n.map;return(0,a.useMemo)(function(){p.setPaths(f)},[p,f]),(0,a.useEffect)(function(){if(h)return p.setMap(h),function(){p.setMap(null)};void 0===h&&console.error("<Polygon> has to be inside a Map component.")},[h]),(0,a.useEffect)(function(){if(p){var e=google.maps.event;return[["click","onClick"],["drag","onDrag"],["dragstart","onDragStart"],["dragend","onDragEnd"],["mouseover","onMouseOver"],["mouseout","onMouseOut"],["dblclick","onDoubleClick"]].forEach(function(n){var t,r,o=(r=2,function(e){if(Array.isArray(e))return e}(t=n)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,a=[],i=!0,l=!1;try{for(t=t.call(e);!(i=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==t.return||t.return()}finally{if(l)throw o}}return a}}(t,r)||function(e,n){if(e){if("string"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(t):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}(t,r)||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.")}()),a=o[0],i=o[1];e.addListener(p,a,function(e){var n=m.current[i];n&&(e.stop(),n(e))})}),function(){e.clearInstanceListeners(p)}}},[p]),p}(e);return(0,a.useImperativeHandle)(n,function(){return t},[]),null}),d={lat:40.7,lng:-20},f=function(e){var n=e.border,t=e.onDoubleClick,r=e.onClick,o=e.editing,i=void 0!==o&&o,l=e.selected,u=void 0!==l&&l,d=(0,a.useMemo)(function(){return n.geojson?c(n.geojson):[]},[n]),f=(0,a.useCallback)(function(){t&&t(n)},[t,n]),g=(0,a.useCallback)(function(){r&&r(n)}
1,[r,n]),m=n.is_region?500:1e3;return u&&(m+=100),0==d.length?null:a.createElement(s,{paths:d[0],zIndex:m,strokeColor:n.is_region?"#ff8904":"#0c4cb3",strokeOpacity:u?1:.5,strokeWeight:u?3:2,fillColor:n.is_region?"#ffd6a7":"#3b82f6",fillOpacity:u?.3:.1,onDoubleClick:f,onClick:g,editable:i})},g=function(e){var n=e.border,t=e.onPathsChanged,r=(0,a.useRef)(null),o=(0,a.useMemo)(function(){return n.geojson?c(n.geojson):[]},[n]),i=(0,a.useCallback)(function(){if(r.current&&t){var e=r.current.getPaths().getArray().map(function(e){return e.getArray()});t(n,e)}},[n,t]);return 0==o.length?null:a.createElement(s,{ref:r,paths:o[0],strokeColor:"#0c4cb3",strokeOpacity:1,strokeWeight:3,fillColor:"#3b82f6",fillOpacity:.3,editable:!0,onClick:i,onMouseOut:i,onDragEnd:i})};const m=function(e){var n=e.borders,t=e.selectedBorder,r=e.selectBorder,i=e.setEditingBorder,l=e.handleSetEditedPaths,c=e.editingBorder,u=(0,a.useCallback)(function(e){r&&r(e)},[r]),s=(0,a.useCallback)(function(e){r(e),e.can_change&&i(e)},[r,i]),m=(0,a.useCallback)(function(e,n){e.can_change&&l(n)},[]),p=(0,a.useMemo)(function(){return c?[a.createElement(g,{border:c,key:"".concat(c.is_region?"r":"n","-").concat(c.id),onPathsChanged:m})]:n.map(function(e){return a.createElement(f,{border:e,key:"".concat(e.is_region?"r":"n","-").concat(e.id),onDoubleClick:s,onClick:u,selected:(null==t?void 0:t.id)===e.id})})},[t,n,c,s,u,m]);return a.createElement(o.T5,{defaultCenter:d,defaultZoom:2,gestureHandling:"greedy",disableDefaultUI:!0},a.createElement(a.Fragment,null,p))};var p=function(e){var n=function(e){if(!e||!e.coordinates)return[];var n=[];return"MultiPolygon"===e.type?e.coordinates.forEach(function(e){e.forEach(function(e){var t=e.map(function(e){return new google.maps.LatLng(e[1],e[0])});n.push(t)})}):"Polygon"===e.type&&e.coordinates.forEach(function(e){var t=e.map(function(e){return new google.maps.LatLng(e[1],e[0])});n.push(t)}),n.length>0?[n[0]]:[]}(e);return function(e){var n=new google.maps.LatLngBounds;return e.forEach(function(e){e.forEach(function(e){return n.extend(e)})}),n}(n)},h=t("./react/api/staffAPI.ts");function b(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function v(e,n,t,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void t(e)}l.done?n(c):Promise.resolve(c).then(r,o)}function y(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function i(e){v(a,r,o,i,l,"next",e)}function l(e){v(a,r,o,i,l,"throw",e)}i(void 0)})}}function E(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){E(e,n,t[n])})}return e}function w(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,a=[],i=!0,l=!1;try{for(t=t.call(e);!(i=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==t.return||t.return()}finally{if(l)throw o}}return a}}(e,n)||j(e,n)||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.")}()}function S(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||j(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,n){if(e){if("string"==typeof e)return b(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(t):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?b(e,n):void 0}}function N(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:c(0)}),l(i,"throw",{value:c(1)}),l(i,"return",{value:c(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function c(l){return function(c){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=n.call(e,a)}catch(e){l=[6,e],r=0}finally{t=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}var O=function(e){var n={},t={};return e.forEach(function(e){var r=JSON.parse(e.geojson||"{}");r.coordinates&&(n[e.id]=p(r)),e.neighborhoods&&Object.values(e.neighborhoods).forEac
1h(function(e){var n=JSON.parse(e.geojson||"{}");n.coordinates&&(t[e.id]=p(n))}),e.regions&&Object.values(e.regions).forEach(function(e){var r=JSON.parse(e.geojson||"{}");r.coordinates&&(n[e.id]=p(r)),e.neighborhoods&&Object.values(e.neighborhoods).forEach(function(e){var n=JSON.parse(e.geojson||"{}");n.coordinates&&(t[e.id]=p(n))})})}),{regionBounds:n,neighborhoodBounds:t}},k=t("./react/components/App/UserMenuContent.tsx"),C=t("./react/components/links/Breadcrumbs.tsx");const _=function(e){var n,t,o,i,l=e.region,c=e.selectedNeighborhood,u=e.selectedRegion,s=e.selectRegion,d=e.selectNeighborhood;return l?a.createElement("div",null,null===(n=l.regions)||void 0===n?void 0:n.map(function(e){var n;return a.createElement("div",{key:"region-".concat(e.id)},a.createElement("button",{onClick:function(){s(e)},className:"w-full text-left px-6 py-3 border-b border-gray-100 hover:bg-cyan-50 ".concat((null==u?void 0:u.id)===e.id?"bg-cyan-50 border-cyan-200":"")},a.createElement("div",{className:"flex items-center space-x-2"},a.createElement("span",{className:"font-bold text-gray-800"},e.name),!e.is_mapped&&a.createElement(r.Pip,{className:"w-4 h-4 text-orange-500"}))),null===(n=e.neighborhoods)||void 0===n?void 0:n.map(function(e){return a.createElement("button",{key:"neighborhood-".concat(e.id),onClick:function(){return d(e.id)},className:"w-full text-left px-10 py-2 border-b border-gray-100 hover:bg-cyan-50 ".concat((null==c?void 0:c.id)===e.id?"bg-cyan-50 border-cyan-200":"")},a.createElement("div",{className:"flex items-center space-x-2"},a.createElement("span",{className:"text-sm text-gray-600"},e.name),!e.is_mapped&&a.createElement(r.Pip,{className:"w-4 h-4 text-orange-500"})))}))}),null===(t=l.neighborhoods)||void 0===t?void 0:t.map(function(e){return a.createElement("button",{key:"direct-neighborhood-".concat(e.id),onClick:function(){return d(e.id)},className:"w-full text-left px-6 py-3 border-b border-gray-100 hover:bg-cyan-50 ".concat((null==c?void 0:c.id)===e.id?"bg-cyan-50 border-cyan-200":"")},a.createElement("div",{className:"flex items-center space-x-2"},!e.is_mapped&&a.createElement(r.Pip,{className:"w-4 h-4 text-orange-500"}),a.createElement("span",{className:"text-gray-700"},e.name)))}),!(null===(o=l.regions)||void 0===o?void 0:o.length)&&!(null===(i=l.neighborhoods)||void 0===i?void 0:i.length)&&a.createElement("div",{className:"p-4 text-center text-gray-500 text-sm"},"No neighborhoods or sub-regions found")):null};var A=t("./react/components/shadcn/ui/button.tsx"),R=t("./react/routes/admin.ts"),M=t("./react/utils/shadcn.ts"),P=function(e){var n,t,r=e.currentSelection,o=e.handleSelectBorder;return a.createElement("h2",{className:"text-2xl text-gray-900 space-x-3"},(null===(n=r.parent)||void 0===n?void 0:n.parent)?a.createElement(a.Fragment,null,a.createElement("button",{className:"hover:underline",onClick:function(){var e;return o((null===(e=r.parent)||void 0===e?void 0:e.parent)||null)}},r.parent.parent.name),a.createElement("span",{className:"text-sm text-gray-400 px-1"},">")):null,(null===(t=r.parent)||void 0===t?void 0:t.name)?a.createElement(a.Fragment,null,a.createElement("button",{className:"hover:underline",onClick:function(){return o(r.parent||null)}},r.parent.name),a.createElement("span",{className:"text-sm text-gray-400 px-1"},">")):null,a.createElement("span",{className:"font-bold"},r.name))};function B(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var I=function(){var e,n,t=(e=(0,a.useState)(""),n=2,function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,a=[],i=!0,l=!1;try{for(t=t.call(e);!(i=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==t.return||t.return()}finally{if(l)throw o}}return a}}(e,n)||function(e,n){if(e){if("string"==typeof e)return B(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(t):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?B(e,n):void 0}}
1(e,n)||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=t[0],c=t[1],u=function(){var e=(0,o.ko)(),n=w((0,a.useState)(null),2),t=n[0],r=n[1],i=w((0,a.useState)(null),2),l=i[0],c=i[1],u=w((0,a.useState)(null),2),s=u[0],d=u[1],f=w((0,a.useState)(!1),2),g=f[0],m=f[1],p=w((0,a.useState)(null),2),b=p[0],v=p[1],E=w((0,a.useState)(null),2),j=E[0],k=E[1],C=w((0,a.useState)({regions:{},neighborhoods:{}}),2),_=C[0],A=C[1],R=(0,h.paU)(),M=R.data,P=R.refetch,B=(0,a.useMemo)(function(){return M||[]},[M]);(0,a.useEffect)(function(){var e=O(B),n=e.regionBounds,t=e.neighborhoodBounds;A(function(e){return{regions:x({},e.regions,n),neighborhoods:x({},e.neighborhoods,t)}})},[B]);var I=(0,a.useMemo)(function(){return B.filter(function(e){return!e.parent_id})},[B]),D=(0,h.IF4)((null==t?void 0:t.id)||0,{},{query:{enabled:!!(null==t?void 0:t.id)}}),L=(0,a.useMemo)(function(){return D.data||null},[D.data]);(0,a.useEffect)(function(){if(L){var e=O([L]),n=e.regionBounds,t=e.neighborhoodBounds;A(function(e){return{regions:x({},e.regions,n),neighborhoods:x({},e.neighborhoods,t)}})}},[L]);var T=(0,a.useMemo)(function(){if(l){var e=B.find(function(e){return e.id===l.region_id}),n=e?B.find(function(n){return n.id===e.parent_id}):null;return{id:l.id,name:l.name,parent_id:l.region_id,unmapped:!l.geojson,is_region:!1,can_change:l.can_change,active:l.active,parent:e?{id:e.id,name:e.name,parent:n?{id:n.id,name:n.name}:null}:null}}if(L){var t=B.find(function(e){return e.id===L.parent_id});return{id:L.id,name:L.name,parent_id:L.parent_id,unmapped:!L.geojson,is_region:!0,can_change:L.can_change,active:L.active,parent:t?{id:t.id,name:t.name,can_change:t.can_change}:null}}},[l,s,L]),z=function(e){r(e||null),d(null),c(null)},$=function(e){var n;if(L){var t=null===(n=L.neighborhoods)||void 0===n?void 0:n.find(function(n){return n.id===e});if(!t){var r=!0,o=!1,a=void 0;try{for(var i,l=(L.regions||[])[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var u;if(t=null===(u=i.value.neighborhoods)||void 0===u?void 0:u.find(function(n){return n.id===e}))break}}catch(e){o=!0,a=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}}c(t||null)}},J=(0,a.useCallback)(function(e,n){return y(function(){return N(this,function(t){switch(t.label){case 0:return e.is_region?[4,(0,h.dbY)(e.id,{geojson:n})]:[3,2];case 1:return t.sent(),[3,4];case 2:return[4,(0,h.jMX)(e.id,{geojson:n})];case 3:t.sent(),t.label=4;case 4:return[4,D.refetch()];case 5:return t.sent(),[4,P()];case 6:return t.sent(),[2]}})})()},[]),U=(0,a.useMemo)(function(){var e,n,t=B.map(function(e){return{id:e.id,name:e.name,geojson:e.geojson,is_region:!0,sort_order:999,can_change:e.can_change}}),r=[];return L&&(null===(e=L.neighborhoods)||void 0===e||e.forEach(function(e){r.push({id:e.id,name:e.name,geojson:e.geojson,is_region:!1,sort_order:0,can_change:e.can_change})}),null===(n=L.regions)||void 0===n||n.forEach(function(e){var n;null===(n=e.neighborhoods)||void 0===n||n.forEach(function(e){r.push({id:e.id,name:e.name,geojson:e.geojson,is_region:!1,sort_order:0,can_change:e.can_change})})})),S(t).concat(S(r))},[B,L]),H=(0,a.useCallback)(function(n){var t=_.regions[n];t&&e&&e.fitBounds(t)},[_.regions,e]),F=(0,a.useCallback)(function(n){var t=_.neighborhoods[n];t&&e&&e.fitBounds(t)},[_.neighborhoods,e]);return{selectedRegion:t,selectedNeighborhood:l,selectedChildRegion:s,isEditing:g,editingBorder:j,allBorders:U,allRegions:B,topLevelRegions:I,selectedRegionDetail:L,currentSelection:T,handleSelectMapRegion:function(e){if(e)if(e.is_region){var n=B.find(function(n){return n.id===e.id});n&&z(n)}else $(e.id)},handleSelectRegion:z,handleSelectChildRegion:function(e){d(e),c(null)},handleSelectNeighborhood:$,handleStartEditing:function(){if(m(!0),k(T),T)if(T.is_region){var e,n=null===(e=B.find(function(e){return e.id===T.id}))||void 0===e?void 0:e.geojson;if(n)return void v(JSON.parse(n))}else{var t,r,o=null==L||null===(r=L.neighborhoods)||void 0===r||null===(t=r.find(function(e){return e.id===T.id}))||void 0===t?void 0:t.geojson;if(o)return void v(JSON.parse(o))}v(null)},handleCancelEditing:function(){m(!1),v(null)},handleSaveEdit:function(){return y(function(){return N(this,function(e){switch(e.label){case 0:return T&&b?[4,J(T,b)]:[3,2];case 1:e.sent(),e.label=2;case 2:return m(!1),[2]}})})()},handleCreateSquare:function(){return y(function(){var n,t,r,o;return N(this,function(a){switch(a.label){case 0:return T?(n=function(){var n=e.getBounds(),t=n.getNorthEast(),r=n.getSouthWest
1(),o=t.lat()-r.lat(),a=t.lng()-r.lng(),i=.1,l=r.lat()+o*i,c=t.lat()-o*i,u=r.lng()+a*i,s=t.lng()-a*i;return{type:"MultiPolygon",coordinates:[[[[u,l],[s,l],[s,c],[u,c],[u,l]]]]}},t=T.is_region,r=T.id,o=n(),t?[4,(0,h.dbY)(r,{geojson:o})]:[3,2]):[2];case 1:return a.sent(),[3,4];case 2:return[4,(0,h.jMX)(r,{geojson:o})];case 3:a.sent(),a.label=4;case 4:return[4,P()];case 5:return a.sent(),[4,D.refetch()];case 6:return a.sent(),[2]}})})()},setEditedGeojson:v,zoomToRegion:H,zoomToNeighborhood:F}}(),s=u.allBorders,d=u.allRegions,f=u.currentSelection,g=u.editingBorder,p=u.handleCancelEditing,b=u.handleCreateSquare,v=u.handleSaveEdit,E=u.handleSelectMapRegion,j=u.handleSelectNeighborhood,k=u.handleSelectRegion,C=u.handleStartEditing,R=u.isEditing,I=u.selectedChildRegion,D=u.selectedNeighborhood,L=u.selectedRegion,T=u.selectedRegionDetail,z=u.setEditedGeojson,$=u.topLevelRegions,J=u.zoomToNeighborhood,U=u.zoomToRegion,H=i.trim()?d.filter(function(e){return e.name.toLowerCase().includes(i.toLowerCase())}):null,F=(0,a.useCallback)(function(e){var n=function(e){if(!e||0===e.length)return null;for(var n=e[0],t=[],r=0;r<n.length;r++){var o=n[r];t.push([o.lng(),o.lat()])}var a=t[0],i=t[t.length-1];return a[0]===i[0]&&a[1]===i[1]||t.push(a),{type:"MultiPolygon",coordinates:[[t]]}}(e);z(n)},[z]),K=(0,a.useCallback)(function(e){k(e),e.is_mapped&&U(e.id)},[k,U]),X=(0,a.useCallback)(function(e){j(e),J(e)},[j,J]);return a.createElement("div",{className:"space-y-6"},a.createElement("div",{className:"bg-white rounded-lg shadow-sm border p-6"},f?a.createElement("div",{className:"flex justify-between items-start space-y-3"},a.createElement("div",{className:"w-full"},a.createElement("div",{className:"flex items-center gap-3"},a.createElement(P,{currentSelection:f,handleSelectBorder:E}),!1===f.active&&a.createElement("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-bold bg-red-100 text-red-700 border border-red-300 uppercase tracking-wide"},"Not Active")),f.can_change&&a.createElement("div",null,a.createElement("a",{href:f.is_region?"/admin/nsproperties/region/".concat(f.id,"/"):"/admin/nsproperties/neighborhood/".concat(f.id,"/"),target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline text-sm"},f.is_region?"Edit Region":"Edit Neighborhood"))),f.unmapped&&f.can_change&&a.createElement("div",{className:"bg-yellow-50 border border-yellow-200 rounded-md p-4"},a.createElement("p",{className:"text-yellow-800 font-semibold mb-2"},"This region/neighborhood is unmapped. Zoom the map into the area you want to create a border for."),a.createElement(A.$,{variant:"default",onClick:b,className:"px-4 py-2 bg-green-500 text-white rounded-md hover:bg-green-600 mt-2"},"CREATE BORDER")),f.can_change&&a.createElement("div",{className:"flex space-x-2"},a.createElement(A.$,{variant:"default",onClick:C},"EDIT BORDER"),R&&a.createElement(A.$,{variant:"default",onClick:v},"SAVE"),R&&a.createElement(A.$,{variant:"ghost",onClick:p},"CANCEL"))):a.createElement(l,null)),a.createElement("div",{className:"flex flex-col md:flex-row md:space-x-8 space-y-6 md:space-y-0"},a.createElement("div",{className:"bg-white rounded-lg shadow-sm border md:w-80 "},a.createElement("div",{className:"w-full md:w-80 space-y-4"},a.createElement("div",{className:"bg-white rounded-lg shadow-sm border"},a.createElement("div",{className:"p-4 border-b border-gray-200 space-y-2"},a.createElement("h3",{className:"font-medium text-gray-900"},"Regions"),a.createElement("input",{type:"search",placeholder:"Search regionsâ¦",value:i,onChange:function(e){return c(e.target.value)},className:"w-full px-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-cyan-500"})),a.createElement("div",{className:"".concat(R?"opacity-50 pointer-events-none":"")},(null!=H?H:$).map(function(e){var n,t,o,i;return a.createElement("button",{key:e.id,onClick:function(){return K(e)},className:(0,M.cn)("w-full text-left px-4 py-3 border-b border-gray-100 hover:bg-cyan-50",{"bg-cyan-50 border-cyan-300 font-semibold":(null==L?void 0:L.id)===e.id||(null==f?void 0:f.parent_id)===e.id||(null==f||null===(o=f.parent)||void 0===o||null===(t=o.parent)||void 0===t?void 0:t.id)===e.id})},a.createElement("div",{className:"flex items-center space-x-2"},!e.is_mapped&&a.createElement(r.Pip,{className:"w-4 h-4 text-orange-500"}),a.createElement("span",null,e.name),H&&e.parent_id&&a.createElement("span",{className:"text-xs text-gray-400 ml-1"},"(",null!==(n=null===(i=d.find(function(n){return n.id===e.parent_id}))||void 0===i?void 0:i.name)&&void 0!==n?n:"",")")))}),0===(null==H?void 0:H.length)&&a.createElement("p",{className:"px-4 py-3 text-sm text-gray-500"}
1,"No regions found."))))),a.createElement("div",{className:"flex-1 bg-gray-100 rounded-lg border h-96 md:h-[750px]"},a.createElement(m,{borders:s,selectedBorder:f,selectBorder:E,editingBorder:R?g.is_region?L:D:null,setEditingBorder:C,handleSetEditedPaths:F})),a.createElement("div",{className:(0,M.cn)("transition-opacity w-80",{"opacity-50 pointer-events-none":R})},a.createElement("div",{className:"p-4 border-b border-gray-200"},a.createElement("h3",{className:"font-semibold text-gray-900"},L?L.name:"")),T?a.createElement(_,{region:T,selectedRegion:I,selectRegion:K,selectedNeighborhood:D,selectNeighborhood:X}):a.createElement("div",{className:"p-4 text-center text-gray-500 text-sm"},"Select a region to view its neighborhoods"))))};const D=function(){var e=[{url:(0,R.B)(R.w.AdminHome),title:"home"},{title:"Admin"},{title:"Manage Regions Borders"}];return a.createElement(k.A,null,a.createElement(C.A,{items:e}),a.createElement(o.c4,{apiKey:"AIzaSyCQhcm0JamjysTy4HutZXmoeyAHh4r-ZjQ"},a.createElement(I,null)))}},"./react/components/shadcn/ui/button.tsx"(e,n,t){t.d(n,{$:()=>g,r:()=>f});var r=t("./node_modules/react/index.js"),o=t("./node_modules/@radix-ui/react-slot/dist/index.mjs"),a=t("./node_modules/class-variance-authority/dist/index.mjs"),i=t("./react/utils/shadcn.ts");function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function c(e){if(Array.isArray(e))return e}function u(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e,n){if(e){if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(t):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?l(e,n):void 0}}var f=(0,a.F)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),g=r.forwardRef(function(e,n){var t,a=c(t=[e,n])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||d(t)||s(),l=a[0],g=a.slice(1),m=l.className,p=l.variant,h=l.size,b=l.asChild,v=void 0!==b&&b,y=function(e,n){if(null==e)return{};var t,r,o,a={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(t=Reflect.ownKeys(e),o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,n){if(null==e)return{};var t,r,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t]);return o}(e,n),Object.getOwnPropertySymbols)for(t=Object.getOwnPropertySymbols(e),o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(l,["className","variant","size","asChild"]),E=function(e,n){return c(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,a=[],i=!0,l=!1;try{for(t=t.call(e);!(i=(r=t.next()).done)&&(a.push(r.value),!n||a.length!==n);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==t.return||t.return()}finally{if(l)throw o}}return a}}
1(e,n)||d(e,n)||s()}(g,1)[0],x=v?o.DX:"button";return r.createElement(x,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){u(e,n,t[n])})}return e}({className:(0,i.cn)(f({variant:p,size:h,className:m})),ref:E},y))});g.displayName="Button"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.