{"version":3,"file":"script.min.js","sources":["../../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../../block-editor/blocks/state-map/script.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","// add an slight delay to requestAnimationFrame\nconst requestAnimationFrame = function(fn) {\n\treturn window.requestAnimationFrame(() => window.requestAnimationFrame(fn));\n}\n\n// note: ie11 or jquery do not support classList/addClass on svg elements - manipulate class attribute directly\nconst addSvgClass = function( node, className ) {\n\tlet nodeClass = `${node.getAttribute('class')} ${className}`;\n\tnode.setAttribute( 'class', nodeClass );\n\n\treturn nodeClass;\n}\n\nconst removeSvgClass = function( node, className ) {\n\tlet nodeClass = node.getAttribute('class').replace( ( new RegExp( `\\\\b${className}\\\\b`) ), '' ).trim();\n\tnode.setAttribute( 'class', nodeClass );\n\n\treturn nodeClass;\n}\n\nclass MapState {\n\tconstructor( map, node ) {\n\t\tthis.map = map;\n\t\tthis.node = node;\n\n\t\tthis.detail = document.createElement( 'div' );\n\t\tthis.detail.className = 'state-profiles-map__detail';\n\t\tthis.detailActiveClass = 'state-profiles-map__detail--active';\n\t\tthis.activeClass = 'state-profiles-map__state--active';\n\t\tthis.active = false;\n\n\t\tthis.resetCoords();\n\n\t\tthis.key = this.node.getAttribute('abbr');\n\t\tthis.status = this.node.getAttribute('status');\n\n\t\tif ( 'active' === this.status ) {\n \n\t\t\tthis.node.addEventListener( 'click', (e) => {\n\t\t\t\tif ( this.active ) {\n\t\t\t\t\tthis.map.deactivate( this.key );\n\t\t\t\t} else {\n\t\t\t\t\t// set custom coords originating from mouse click and not center of the state\n\t\t\t\t\tthis.coords = { x: e.clientX, y: e.clientY };\n\n\t\t\t\t\t// on desktop be relative to the map and not fixed\n\t\t\t\t\tif ( this.map.getMode() === 'desktop' ) {\n\t\t\t\t\t\tlet mapRect = this.map.node.getBoundingClientRect();\n\t\t\t\t\t\tthis.coords.x -= mapRect.left;\n\t\t\t\t\t\tthis.coords.y -= mapRect.top;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.map.activate( this.key );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tresetCoords() {\n\t\tconst rect = this.node.getBoundingClientRect();\n\t\t\n\t\tthis.coords = {\n\t\t\tx: rect.left + ( rect.width / 2 ),\n\t\t\ty: rect.top + ( rect.height / 2 ),\n\t\t}\n\t}\n\n\tactivate() {\n\t\tthis.template();\n\n\t\taddSvgClass( this.node, this.activeClass );\n\t\t\n\t\tthis.detail.style.left = `${this.coords.x - 20}px`;\n\t\tthis.detail.style.top = `${this.coords.y - 150}px`;\n\t\tthis.map.node.appendChild( this.detail );\n\t\trequestAnimationFrame(() => {\n\t\t\tthis.detail.classList.add( this.detailActiveClass );\n\t\t\t// this.detail.style.top = '';\n\t\t\t// this.detail.style.left = '';\n\t\t});\n\n\t\tthis.active = true;\n\t}\n\n\tdeactivate() {\n\t\tthis.detail.style.left = `${this.coords.x}px`;\n\t\tthis.detail.style.top = `${this.coords.y}px`;\n\t\tremoveSvgClass( this.node, this.activeClass );\n\n\t\trequestAnimationFrame(() => {\n\t\t\tthis.detail.classList.remove( this.detailActiveClass );\n\n\t\t\tlet transitionend = (e) => {\n\t\t\t\tif ( e.target === this.detail && e.propertyName === 'transform' ) {\n\t\t\t\t\tthis.detail.removeEventListener('transitionend', transitionend);\n\t\t\t\t\tthis.detail.parentNode.removeChild(this.detail);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.detail.addEventListener('transitionend', transitionend);\n\t\t});\n\n\t\tthis.active = false;\n\t}\n\n\ttemplate() {\n\t\tif ( ! this.detail.innerHTML ) {\n\t\t\tconst closeDiv = document.createElement('div');\n\t\t\tconst close = document.createElement('button');\n\t\t\tclose.className = 'state-profiles-map__close';\n\t\t\tclose.addEventListener('click', () => this.map.deactivate() );\n\t\t\tclose.innerHTML = '×';\n\t\t\tcloseDiv.appendChild(close);\n\n\t\t\tthis.detail.appendChild(closeDiv);\n// window.addEventListener('click', () => this.map.deactivate() );\n\t\t\tconst contentDiv = document.createElement('div');\n\t\t\tcontentDiv.className = 'state-profiles-map__detail-content';\n\t\t\tthis.detail.appendChild(contentDiv);\n\t\t\tif ( this.node.getAttribute('name') ) {\n\t\t\t\tcontentDiv.insertAdjacentHTML( 'beforeend', `
${this.node.getAttribute('name')}
\n
\n Explore\n \n
` );\n \n\t\t\t}\n\t\t}\n\t}\n}\n\nclass StateMuniMap {\n\tconstructor( node ) {\n\t\tthis.node = node;\n\t\tthis.active = null;\n\t\tthis.activeClass = 'state-profiles-map--active';\n\t\tthis.map = this.node.querySelector('svg');\n this.mapContent = this.node.querySelector('.state-map__content');\n\t\tthis.states = {};\n this.selectHeading = document.createElement('h6');\n this.selectHeading.innerText = \"Explore A State\";\n\t\tthis.selectLabel = document.createElement('label');\n \n \n\t\tthis.selectLabelA11y = document.createElement( 'span' );\n\t\tthis.selectLabelA11y.className = 'a11y';\n\t\tthis.selectLabelA11y.innerText = \"Select a State\";\n\n\t\tthis.select = document.createElement('select');\n\t\tthis.select.className = 'state-profiles-map__select';\n\t\tthis.select.insertAdjacentHTML( 'afterbegin', '' );\n\t\tthis.select.addEventListener( 'change', () => {\n\t\t\tif ( this.select.value ) {\n\t\t\t\tthis.states[ this.select.value ].resetCoords();\n\t\t\t\tthis.activate( this.select.value );\n\t\t\t} else {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t} );\n this.selectLabel.appendChild(this.selectHeading);\n\t\tthis.selectLabel.appendChild(this.selectLabelA11y);\n\t\tthis.selectLabel.appendChild(this.select);\n\t\tthis.mapContent.appendChild( this.selectLabel );\n\n\t\tArray.from( this.node.querySelectorAll( '.state-profiles-map__state' ) ).map( state => {\n\t\t\tconst abbr = state.getAttribute('abbr');\n\n\t\t\tif ( state.getAttribute('status') === 'active' ) {\n\t\t\t\tthis.select.insertAdjacentHTML( 'beforeend', `` );\n\t\t\t}\n\n\t\t\tthis.states[ abbr ] = new MapState( this, state );\n\t\t} );\n\n\t\tdocument.addEventListener('keyup', (e) => {\n\t\t\tif ( this.active !== null && e.key === 'Escape' ) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t} );\n\n\t\tthis._handleResize = () => {\n\t\t\tvar width = Math.min( this.map.getAttribute('width'), this.map.parentNode.offsetWidth );\n\t\t\tvar height = width * this.map.getAttribute('height') / this.map.getAttribute('width');\n\t\t\tthis.map.style.width = width + 'px';\n\t\t\tthis.map.style.height = height + 'px';\n\n\t\t\tif ( this.active ) {\n\t\t\t\tthis.states[ this.active ].resetCoords();\n\t\t\t}\n\t\t}\n\n\t\twindow.addEventListener('resize', this._handleResize);\n\t\tthis._handleResize();\n\t}\n\n\tgetMode() {\n\t\tif ( document.body.clientWidth < 800 ) {\n\t\t\treturn 'mobile';\n\t\t}\n\n\t\treturn 'desktop';\n\t}\n\n\tactivate( key ) {\n\t\tif ( this.active !== null ) {\n\t\t\tthis.states[ this.active ].deactivate();\n\t\t}\n\n\t\tif ( this.getMode() === 'mobile' ) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t}\n\n\t\tthis.active = key;\n\t\tthis.states[ this.active ].activate();\n\t\tthis.select.value = this.states[ this.active ].key;\n\t\tthis.node.classList.add(this.activeClass);\n\t}\n\n\tdeactivate() {\n\t\tif ( this.active !== null ) {\n\t\t\tthis.states[ this.active ].deactivate();\n\t\t\tthis.node.classList.remove(this.activeClass);\n\t\t}\n\n\t\tthis.active = null;\n\t\tthis.select.value = '';\n\t\tdocument.body.style.overflow = '';\n\t}\n}\n\nStateMuniMap.instances = Array.from( document.querySelectorAll( '.state-profiles-map' ) ).map( node => new StateMuniMap( node ) );\n\nexport default StateMuniMap;\n"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","requestAnimationFrame","fn","window","MapState","map","node","_this","this","detail","document","createElement","className","detailActiveClass","activeClass","active","resetCoords","getAttribute","status","addEventListener","e","deactivate","coords","x","clientX","y","clientY","getMode","mapRect","getBoundingClientRect","left","top","activate","rect","width","height","nodeClass","_this2","template","setAttribute","style","concat","appendChild","classList","add","_this3","replace","RegExp","trim","remove","transitionend","propertyName","removeEventListener","parentNode","removeChild","_this4","innerHTML","closeDiv","close","contentDiv","insertAdjacentHTML","toLowerCase","StateMuniMap","_this5","querySelector","mapContent","states","selectHeading","innerText","selectLabel","selectLabelA11y","select","value","Array","from","querySelectorAll","state","abbr","_handleResize","Math","min","offsetWidth","body","clientWidth","overflow","instances"],"mappings":"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"}