{"version":3,"sources":["webpack:///./src/components/BackButton/BackButton.jsx","webpack:///./src/utils/useRequest.jsx","webpack:///./src/components/Floater/Floater.jsx","webpack:///./src/utils/showroomCompareMap.jsx","webpack:///./src/pages/Compare/CompareShowrooms.jsx","webpack:///./src/components/Like/Like.jsx"],"names":["BackButton","title","onClick","className","aria-label","toLowerCase","usePublicRequest","url","payload","init","loaded","type","compare","payloadStr","JSON","stringify","useState","loading","data","error","stamp","response","setResponse","useEffect","apirone","queryPublic","then","r","Date","getTime","mutate","oldResponse","softMutate","useRequest","query2","Floater","props","text","showroomCompareMap","ShowroomCompareImage","image","image2x","showroomKey","showroomId","navigate","useNavigate","href","e","preventDefault","width","height","src","srcSet","alt","Like","showroom","CompareLink","count","baseURL","xlinkHref","LatestCompares","latest","map","l","i","key","trending","observer","colspan","anon","setAnon","location","useLocation","userState","loggedIn","pathname","target","CompareShowrooms","compareItems","replace","length","split","sort","appState","cmsData","checkLikes","repositionItems","tbody","document","getElementsByClassName","getElementById","getAttribute","setAttribute","offsetTop","offsetHeight","setTimeout","reset","window","addEventListener","emptyCompare","keys","values","titles","mediaSrc","forEach","item","primary","secondary","media","undefined","mediaSrcRetina","formatUri","push","id","uuid","Object","room","properties","property","propTitle","markup","unreg","add_btn","k","index","colSpan","v","value","empty","metaTitle","join","metaDescription","metaImage","h1","aiState","setContext","Meta","description","itemProp","A1Button","itemIndex","pop","splice","compareShowroomToggle","removeItem","listingId","mode","isLiked","liked","stopPropagation","like"],"mappings":"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","file":"static/js/pages-Compare-CompareShowrooms.687b7216.chunk.js","sourcesContent":["/*\nКнопка Назад с SVG стрелкой\n*/\n\nfunction BackButton({title, onClick}) {\n return (\n \n )\n}\n\nexport default BackButton;","import {useState, useEffect} from 'react';\nimport apirone from './api';\n\n\nfunction useRequest(url, payload, init = false) {\n \n const payloadStr = JSON.stringify(payload);\n //console.log('response.init', payloadStr, init)\n const [response, setResponse] = useState({url: url, payload: payloadStr, loading: init ? false : true, data: init, error: false, stamp: false});\n useEffect(() => {\n //console.log('response.data', response.data)\n if (!response.data || response.url !== url || response.payload !== payloadStr) {\n apirone.query2(response.url, payload).then( r => {\n const stamp = new Date();\n if (r) {\n setResponse(oldResponse => {\n return {url: url, payload: payloadStr, loading: false, data: r, error: false, stamp: stamp.getTime()}\n })\n } else {\n setResponse({url: url, payload: payloadStr, loading: false, data: [], error: true, stamp: stamp.getTime()})\n }\n }) \n }\n },[url, payloadStr, response.data, response.loading]);\n \n const mutate = () => {\n setResponse({url: url, loading: true, data: false, error: false})\n }\n const softMutate = () => {\n setResponse({url: url, loading: true, data: response.data, error: false})\n }\n return {...response, mutate: mutate, softMutate: softMutate};\n}\n\n\nfunction usePublicRequest(url, payload, init = false) {\n //console.log('usePublicRequest', url, init);\n const loaded = init && ((init.type && init.type == 'page') || init.compare);\n const payloadStr = JSON.stringify(payload);\n const [response, setResponse] = useState({url: url, payload: payloadStr, loading: init ? false : true, data: init, error: false, loaded: loaded, stamp: false});\n useEffect(() => {\n //console.log('LOAD...' + (response.payload !== payloadStr ? 'Yez!' : 'No!'), response.payload, payloadStr)\n if (!response.loaded || response.url !== url || response.payload !== payloadStr) {\n \n apirone.queryPublic(url, payload).then( r => {\n const stamp = new Date();\n if (r) {\n setResponse({url: url, payload: payloadStr, loading: false, data: r, error: false, loaded: true, stamp: stamp.getTime()})\n } else {\n setResponse({url: url, payload: payloadStr, loading: false, data: [], error: true, loaded: true, stamp: stamp.getTime()})\n }\n }) \n }\n },[url, payloadStr, response.loaded]);\n \n const mutate = () => {\n setResponse(oldResponse => {return {...oldResponse, loaded: false, loading: true, url: url, payload: payloadStr}})\n }\n const softMutate = () => {\n setResponse(oldResponse => {return {...oldResponse, loaded: false, error: false, loading: true, url: url, payload: payloadStr}})\n //setResponse({url: url, loading: true, data: response.data, error: false})\n }\n return {...response, mutate: mutate, softMutate: softMutate};\n}\n\n\nexport default useRequest;\n\nexport {usePublicRequest}\n","/*\nБлок, для отображения загрузки контента или временной заглушки. \nПо умолчанию ..., можно указать текст. Рендерится по центру родителя светлым шрифтом.\n*/\n\n\nconst Floater = (props) => {\n return (\n
{props.text ? props.text : '...'}
\n )\n}\n\nexport default Floater;\n","const showroomCompareMap = {\"Main\":{\"view\": \"view\",\"manufacturer\":\"Manufacturer\",\"aircraft-type\":\"Aircraft Type\",\"base-aircraft-price-usd\":\"Base Aircraft Price (USD)\",\"factory-assist\":\"Factory Assist\",\"kit-incl-powerplant\":\"Kit incl. Powerplant\",\"kit-excl-powerplant\":\"Kit excl. Powerplant\",\"direct-operating-cost\":\"Direct Operating Cost\",\"doc-nm\":\"DOC / nm\",\"doc-nm-seat\":\"DOC / nm / Seat\",\"max-cruise-speed-kts\":\"Max Cruise Speed (ktas)\",\"max-range-nm-aircraft-summary\":\"Max Range (nm)\",\"useful-load-lbs-aircraft-summary\":\"Useful Load (lbs)\",\"total-seats\":\"Total Seats\",\"cockpit\":\"Cockpit\",\"standard-cabin-seats\":\"Standard Cabin Seats\",\"max-cabin-seats\":\"Max Cabin Seats\",\"min-crew\":\"Min Crew\",\"flight-deck-base-spec\":\"Flight Deck (Base Spec)\",\"flight-rules-aircraft-summary\":\"Flight Rules\",\"certification\":\"Certification\",\"oem-verification\":\"OEM Verification\",\"max-passengers-aircraft-summary\":\"Max Passengers\",\"standard-passengers\":\"Standard Passengers\"},\"Weights\":{\"mramp-lbs\":\"MRAMP (lbs)\",\"mtow-lbs\":\"MTOW (lbs)\",\"mtow-external-load-lbs\":\"MTOW External Load (lbs)\",\"max-external-load-lbs\":\"Max External Load (lbs)\",\"mlw-lbs\":\"MLW (lbs)\",\"mzfw-lbs\":\"MZFW (lbs)\",\"bow-lbs\":\"BOW (lbs)\",\"bew-lbs\":\"BEW (lbs)\",\"useful-load-lbs\":\"Useful Load (lbs)\",\"max-payload-lbs\":\"Max Payload (lbs)\",\"fuel-capacity-lbs\":\"Fuel Capacity (lbs)\",\"useful-load-max-fuel-lbs\":\"Useful Load Max Fuel (lbs)\",\"payload-max-fuel-lbs\":\"Payload Max Fuel (lbs)\",\"max-baggage-weight-lbs\":\"Max Baggage Weight (lbs)\",\"hopper-capacity-lbs\":\"Hopper Capacity (lbs)\",\"hopper-capacity\":\"Hopper Capacity\",\"mgw-aerobatic-lbs\":\"MGW - Aerobatic (lbs)\",\"mgw-aerobatic-dual-lbs\":\"MGW - Aerobatic Dual (lbs)\",\"fuel-capacity-aero-lbs\":\"Fuel Capacity - Aero (lbs)\"},\"Dimensions\":{\"wingspan-ft\":\"Wingspan (ft)\",\"rotor-diameter-ft\":\"Rotor Diameter (ft)\",\"width-ft\":\"Width (ft)\",\"overall-height-ft\":\"Overall Height (ft)\",\"length-ft\":\"Length (ft)\",\"cabin-height-ft\":\"Cabin Height (ft)\",\"aisle-step-ft\":\"Aisle Step (ft)\",\"cabin-width-ft\":\"Cabin Width (ft)\",\"cabin-width-floor-ft\":\"Cabin Width - Floor (ft)\",\"cabin-length-ft\":\"Cabin Length (ft)\",\"cabin-length-seating-ft\":\"Cabin Length - Seating (ft)\",\"cabin-volume-cu-ft\":\"Cabin Volume (cu. ft)\",\"baggage-volume-int-cu-ft\":\"Baggage Volume Int. (cu. ft)\",\"baggage-volume-ext-cu-ft\":\"Baggage Volume Ext. (cu. ft)\",\"hopper-capacity-gal\":\"Hopper Capacity (gal)\"},\"Engine\":{\"no-of-engines\":\"No. of Engines\",\"manufacturer\":\"Manufacturer\",\"model\":\"Model\",\"horsepower\":\"Horsepower\",\"thrust-lbs\":\"Thrust (lbs)\",\"flat-rating\":\"Flat Rating\",\"fadec\":\"FADEC\",\"tbo-hrs\":\"TBO (hrs)\",\"tbo-cyc\":\"TBO (cyc)\",\"tbo-yrs\":\"TBO (yrs)\",\"fuel-type\":\"Fuel Type\",\"fuel-delivery\":\"Fuel Delivery\",\"fuel-capacity-gal\":\"Fuel Capacity (gal)\",\"usable-fuel-gal\":\"Usable Fuel (gal)\",\"fuel-burn-gph\":\"Fuel Burn (gph)\",\"fuel-burn-lbph\":\"Fuel Burn (lbph)\",\"nmpg\":\"NMPG\",\"fuel-capacity-aero-gal\":\"Fuel Capacity - Aero (gal)\"},\"Avionics\":{\"flight-deck\":\"Flight Deck\",\"flight-rules\":\"Flight Rules\",\"standby-instrument\":\"Standby Instrument\",\"efis\":\"EFIS\",\"fms\":\"FMS\",\"autopilot\":\"Autopilot\",\"pfd\":\"PFD\",\"mfd\":\"MFD\",\"gps\":\"GPS\",\"ahrs\":\"AHRS\",\"flight-director\":\"Flight Director\",\"adc\":\"ADC\",\"transponder\":\"Transponder\",\"vhf-com\":\"VHF Com\",\"vhf-nav\":\"VHF NAV\",\"adf\":\"ADF\",\"dme\":\"DME\"},\"Cabin\":{\"total-seats-cabin\":\"Total Seats\",\"cockpit-cabin\":\"Cockpit\",\"standard-cabin-seats-cabin\":\"Standard Cabin Seats\",\"max-cabin-seats-cabin\":\"Max Cabin Seats\",\"min-crew-cabin\":\"Min Crew\",\"configuration\":\"Configuration\",\"doors\":\"Doors\",\"cargo-door\":\"Cargo Door\",\"connectivity\":\"Connectivity\",\"lavatory\":\"Lavatory\",\"lavatory-location\":\"Lavatory Location\",\"galley-refreshment\":\"Galley / Refreshment\",\"galley-location\":\"Galley Location\",\"crew-rest\":\"Crew Rest\",\"jump-seat\":\"Jump Seat\",\"max-cabin-altitude\":\"Max Cabin Altitude (ft)\",\"sl-cabin-altitude\":\"SL Cabin Altitude (ft)\",\"cabin-pressure\":\"Cabin Pressure (psi)\",\"max-passengers\":\"Max Passengers\",\"typical-passengers\":\"Typical Passengers\",\"cabin-altitude\":\"Cabin Altitude (ft)\"},\"Other\":{\"prop-manufacturer\":\"Prop Manufacturer\",\"prop-description\":\"Prop Description\",\"prop-diameter\":\"Prop Diameter\",\"prop-tbo-hrs\":\"Prop TBO (hrs)\",\"prop-tbo-yrs\":\"Prop TBO (yrs)\",\"apu-manufacturer\":\"APU Manufacturer\",\"apu-model\":\"APU Model\",\"apu-tbo-hrs\":\"APU TBO (hrs)\",\"apu-tbo-cyc\":\"APU TBO (cyc)\",\"apu-tbo-yrs\":\"APU TBO (yrs)\",\"gear-type\":\"Gear Type\",\"wheel-size\":\"Wheel Size\",\"float-manufacturer\":\"Float Manufacturer\",\"float-type\":\"Float Type\",\"rotorhead\":\"Rotorhead\",\"tail-rotor\":\"Tail Rotor\",\"float-size\":\"Float Size\",\"prop-model\":\"Prop Model\"},\"Warranty\":{\"pilot-training-credits\":\"Pilot Training Credits\",\"mtx-training-credits\":\"MTX Training Credits\",\"airframe-yrs\":\"Airframe (Yrs)\",\"airframe-hrs\":\"Airframe (Hrs)\",\"engine-yrs\":\"Engine (Yrs)\",\"engine-hrs\":\"Engine (Hrs)\",\"apu-yrs\":\"APU (Yrs)\",\"apu-hrs\":\"APU (Hrs)\",\"prop-yrs\":\"Prop (Yrs)\",\"prop-hrs\":\"Prop (Hrs)\",\"avionics-yrs\":\"Avionics (Yrs)\"},\"Performance\":{\"max-cruise-speed-mach\":\"Max Cruise Speed (Mach)\",\"max-cruise-speed-ktas\":\"Max Cruise Speed (ktas)\",\"cruise-speed-85-ktas\":\"Cruise Speed @ 85% (ktas)\",\"cruise-speed-75-ktas\":\"Cruise Speed @ 75% (ktas)\",\"long-range-cruise-mach\":\"Long Range Cruise (Mach)\",\"long-range-cruise-ktas\":\"Long Range Cruise (ktas)\",\"vref-kias\":\"Vref (kias)\",\"max-speed-vne\":\"Max Speed (Vne)\",\"stall-speed-clean-kias\":\"Stall Speed - Clean (kias)\",\"stall-speed-flaps-kias\":\"Stall Speed - Flaps (kias)\",\"max-range-nm\":\"Max Range (nm)\",\"range-85-nm\":\"Range @ 85% (nm)\",\"range-75\":\"Range @ 75%\",\"range-seats-full-nm\":\"Range Seats Full (nm)\",\"max-range-crew-4-nm\":\"Max Range Crew + 4 (nm)\",\"max-range-crew-6-nm\":\"Max Range Crew + 6 (nm)\",\"max-range-crew-8-nm\":\"Max Range Crew + 8 (nm)\",\"endurance-hrs\":\"Endurance (hrs)\",\"min-take-off-roll-ft\":\"Min. Take-Off Roll (ft)\",\"take-off-fl-ft\":\"Take-off FL (ft)\",\"take-off-roll-ft\":\"Take-off Roll (ft)\",\"take-off-50ft-obst-ft\":\"Take-Off >50ft Obst. (ft)\",\"take-off-5000-isa-10\":\"Take-Off (5000 / ISA + 10)\",\"take-off-water-run-ft\":\"Take-Off Water Run (ft)\",\"min-landing-roll-ft\":\"Min. Landing Roll (ft)\",\"landing-roll-ft\":\"Landing Roll (ft)\",\"landing-50ft-obst-ft\":\"Landing >50ft Obst. (ft)\",\"landing-water-run-ft\":\"Landing Water Run (ft)\",\"max-climb-rate-fpm\":\"Max Climb Rate (fpm)\",\"service-ceiling-ft\":\"Service Ceiling (ft)\",\"hover-ige-ft\":\"Hover IGE (ft)\",\"hover-oge-ft\":\"Hover OGE (ft)\",\"max-glide-ratio\":\"Max Glide Ratio\",\"g-limits\":\"G Limit - MGW\",\"max-wave-height-ft\":\"Max Wave Height (ft)\",\"max-speed-aero-kias\":\"Max Aerobatic Speed (kias)\",\"stall-speed-aero-mgw-kias\":\"Stall Speed - Aero MGW (kias)\",\"g-limit-aero\":\"G Limit - Aero\",\"g-limit-aero-dual\":\"G Limit - Aero Dual\",\"max-roll-rate-deg-sec\":\"Max Roll Rate (deg/sec)\"}};\n\nexport default showroomCompareMap;","import {useState, useEffect} from 'react';\nimport apirone from '../../utils/api';\nimport showroomCompareMap from '../../utils/showroomCompareMap';\nimport { useLocation, useNavigate } from 'react-router-dom';\n//import Image from \"../../components/Image/Image\";\nimport Floater from \"../../components/Floater/Floater\";\n//import Compare from \"../../components/Compare/Compare\";\nimport Like from '../../components/Like/Like';\nimport Meta from '../../components/Meta/Meta';\nimport BackButton from '../../components/BackButton/BackButton';\nimport appState from '../../stores/appState';\nimport aiState from '../../stores/aiState';\nimport userState from '../../stores/userState';\nimport useRequest, {usePublicRequest} from '../../utils/useRequest';\nimport {observer} from 'mobx-react-lite';\nimport A1Button from '../../components/A1Button/A1Button';\n\n\n\nfunction ShowroomCompareImage({image, image2x, title, showroomKey, showroomId}) {\n const navigate = useNavigate();\n const url = '/aircraft-showroom/' + showroomKey;\n return (\n {e.preventDefault(); navigate(url);}} className=\"showroom_compare_image\">\n {title}\n
\n \n
\n
\n )\n}\n\n\n\nfunction CompareLink({title, url, count}) {\n const navigate = useNavigate();\n const handleNavigate = e => {\n e.preventDefault();\n navigate(url);\n }\n return (\n
\n \n
\n \n
\n
\n {title}\n
\n
\n {'(' + count + ')'}\n
\n
\n
\n )\n}\n\nfunction LatestCompares({data}) {\n const navigate = useNavigate();\n return (\n
\n
\n

Latest

\n {data.latest && data.latest.map((l,i) => )}\n
\n
\n

Trending

\n {data.trending && data.trending.map((l,i) => )}\n
\n
\n )\n}\n\n\nconst CompareLogInBanner = observer(({colspan}) => {\n const [anon, setAnon] = useState(true);\n const location = useLocation();\n useEffect(() => {\n setAnon(!userState.loggedIn);\n }, [userState.loggedIn]);\n\n if (anon) {\n return (\n \n \n Show all\n \n \n ) \n }\n\n return null;\n});\n\n\nconst CompareShowrooms = observer((props) => {\n const location = useLocation();\n const navigate = useNavigate();\n const comparePath = location.pathname.replace(/\\/compare\\/?/,'');\n const compareItems = comparePath.length > 5 ? location.pathname.replace(/\\/compare\\/?/,'').split(',').sort() : [];\n const {loading, data, error} = usePublicRequest('/api/compare', {compare: compareItems}, appState.cmsData.compare);\n const url = apirone.baseURL + location.pathname;\n const textPart = data.text ? data.text : false;\n //console.log('CompareShowrooms',textPart)\n\n userState.checkLikes();\n\n const repositionItems = () => {\n const tbody = document.getElementsByClassName('hdn');\n var a;\n for (var i=0; i {\n setTimeout(repositionItems, 0);\n setTimeout(repositionItems, 1500);\n setAnon(!userState.loggedIn);\n appState.reset();\n }, [userState.loggedIn, location.pathname]);\n\n useEffect(() => {\n window.addEventListener('resize', repositionItems, true);\n\n\n }, [])\n \n if (loading) return
\n if (error) return
\n const compare = data.compare;\n const latest = data.latest;\n const emptyCompare = compare.length == 0 || (compare.length == 1 && compare[0] == '');\n\n const removeItem = (id) => {\n \n var key = -1;\n compare.forEach((item, itemIndex) => { if (item.id == id) key = itemIndex })\n //console.log('remove', key, id);\n //const key = compare.indexOf(id);\n if (key >= 0) {\n const url = compare[key].url.split('/').pop();\n //console.log(url, key);\n compare.splice(key, 1);\n userState.compareShowroomToggle(url);\n\n navigate('/compare/' + compare.map(item => item.url.split('/').pop()).sort().join(','));\n }\n }\n\n let keys = {'Main': {'view':[]}};\n let values = {};\n let titles = [];\n let mediaSrc = false;\n\n compare.forEach(item => {\n //console.log('ITEM', item);\n /*if (!mediaSrc) {\n mediaSrc = item.secondary ? apirone.baseURL + item.secondary : false;\n }*/\n\n const primary = item.primary;\n const secondary = item.secondary;\n const media = secondary !== undefined ? secondary : primary;\n mediaSrc = (media !== undefined && media !== null) ? (media?.formatUri ? apirone.baseURL + media.formatUri.replace('{format}', 'pridea_showroom_card') : apirone.baseURL + media) : null;\n const mediaSrcRetina = mediaSrc !== null ? mediaSrc.replace('pridea_showroom_card', 'pridea_showroom_card_2x') : null;\n\n titles.push(item.title);\n values[item.id] = {};\n values[item.id]['view'] = \n });\n\n\n Object.keys(showroomCompareMap).forEach(room => {\n const properties = showroomCompareMap[room];\n Object.keys(properties).forEach( property => {\n const propTitle = properties[property];\n compare.forEach(item => {\n if (item[property]) {\n if (values[item.id] == undefined) values[item.id] = {};\n values[item.id][propTitle] = item[property];\n if (keys[room] == undefined) keys[room] = {};\n keys[room][propTitle] = 1;\n }\n })\n });\n });\n\n //console.log(keys, values);\n\n\n const colspan = compare.length;\n let markup = [];\n let unreg = [];\n\n const add_btn = (
\n {e.preventDefault();navigate('/new-aircraft-showroom')}} href=\"/new-aircraft-showroom\" title=\"Explore aircraft showroom\">\n \n Add aircraft\n \n
);\n \n\n Object.keys(keys).forEach((k, index) => {\n if (k !== \"Main\") {\n if (anon) unreg.push(Show all)\n //\n }\n markup.push(\n \n \n {k !== \"Main\" &&\n <>\n {k}\n \n } \n {Object.keys(keys[k]).map((v, i) => {\n return (\n \n {v == 'view' ? add_btn : v}\n {\n compare.map((item, i) => {\n let value = '-';\n if (values[item.id] !== undefined) {\n if (values[item.id][v] !== undefined) {\n value = values[item.id][v];\n }\n }\n return {value}\n })\n }\n \n );\n })}\n \n )\n });\n\n const empty = compareItems.length == 0;\n const metaTitle = empty ? \n 'Latest aircraft comparisons | AIR.ONE | New Aircraft Showroom' : \n 'Compare new ' + titles.join(' vs ') + ' | AIR.ONE | New Aircraft Showroom';\n const metaDescription = empty ?\n 'AIR.ONE latest aircraft showroom comparisons. Easy way to compare airplanes, helicopters and jets specification and performance.' :\n 'AIR.ONE showroom comparison tool gives you an easy way to compare aircraft specification and performance to determine which one best fits your requirements. ' + titles.join(' vs ');\n const metaImage = empty ? null : mediaSrc;\n const h1 = emptyCompare ? 'Comparisons' : 'Compare ' + titles.join(' vs ');\n\n aiState.setContext('User is comparing ' + titles.join(' vs ') + '.');\n \n return(\n
\n \n
\n
\n
\n {navigate(-1)}} />\n
\n

{h1}

\n
\n
\n \n {!emptyCompare && \n
\n \n {markup}\n \n \n \n \n {\n compare.map((item) => {\n return \n })\n }\n \n \n
{removeItem(item.id)}}>Remove
\n {unreg}\n
\n }\n {emptyCompare &&\n
\n \n
\n }\n\n \n
\n )\n});\n\n\nexport default CompareShowrooms;\n\n\n","/*\nКнопка с сердечком\n*/\n\nimport React, {useState} from 'react';\nimport { observer } from \"mobx-react-lite\";\nimport userState from '../../stores/userState';\nimport { useNavigate } from 'react-router-dom';\n\nconst Like = observer((props) => {\n\tif (!props.listingId && !props.showroom) return null;\n\n\tconst mode = props.listingId ? 1 : 0;\n\tconst id = props.listingId ? props.listingId : props.showroom;\n\n\tconst navigate = useNavigate();\n\tconst className = props.className? props.className : 'btn btn_like';\n\tconst isLiked = userState.liked(id, mode);\n\n\n\treturn (\n\t\t\t\t\t\t\t\n\t);\n})\n\nexport default Like;"],"sourceRoot":""}