smartyz-web-sdk 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2666 @@
1
+ import { reactive as o0, computed as X, ref as C, watch as W, onMounted as g2, resolveComponent as C2, openBlock as m, createElementBlock as T, createElementVNode as u, normalizeStyle as f2, normalizeClass as r2, withDirectives as M2, toDisplayString as z, createBlock as U, withCtx as L, createTextVNode as N, createCommentVNode as D, createVNode as K, unref as Y2, vShow as V2, renderSlot as r0, onUnmounted as n0, Fragment as T2, renderList as E2, withModifiers as A2 } from "vue";
2
+ const E0 = "data:image/svg+xml,%3csvg%20width='64'%20height='58'%20viewBox='0%200%2064%2058'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.4'%3e%3cpath%20d='M30.852%2024.1077C31.68%2023.5969%2033.0303%2023.5969%2033.8582%2024.1077L55.6009%2037.3501C56.4288%2037.8511%2056.4288%2038.6763%2055.6009%2039.1871L33.8582%2052.4196C33.0303%2052.9305%2031.68%2052.9305%2030.852%2052.4196L9.10934%2039.1871C8.28142%2038.6763%208.28142%2037.8511%209.10934%2037.3501L30.852%2024.1077Z'%20stroke='url(%23paint0_linear_10_3993)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%2014.0579C31.68%2013.5471%2033.0303%2013.5471%2033.8582%2014.0579L55.6009%2027.2905C56.4288%2027.8013%2056.4288%2028.6265%2055.6009%2029.1275L33.8582%2042.3699C33.0303%2042.8807%2031.68%2042.8807%2030.852%2042.3699L9.10934%2029.1275C8.28142%2028.6265%208.28142%2027.8013%209.10934%2027.2905L30.852%2014.0579Z'%20stroke='url(%23paint1_linear_10_3993)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%208.26203C31.68%207.7512%2033.0303%207.7512%2033.8582%208.26203L55.6009%2021.5044C56.4288%2022.0054%2056.4288%2022.8306%2055.6009%2023.3414L33.8582%2036.574C33.0303%2037.0848%2031.68%2037.0848%2030.852%2036.574L9.10934%2023.3414C8.28142%2022.8306%208.28142%2022.0054%209.10934%2021.5044L30.852%208.26203Z'%20stroke='url(%23paint2_linear_10_3993)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%201.37576C31.68%200.874748%2033.0303%200.874748%2033.8582%201.37576L55.6009%2014.6181C56.4288%2015.129%2056.4288%2015.9443%2055.6009%2016.4552L33.8582%2029.6975C33.0303%2030.1985%2031.68%2030.1985%2030.852%2029.6975L9.10934%2016.4552C8.28142%2015.9443%208.28142%2015.129%209.10934%2014.6181L30.852%201.37576Z'%20stroke='url(%23paint3_linear_10_3993)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.2'%3e%3cpath%20d='M30.852%2028.3025C31.68%2027.8015%2033.0303%2027.8015%2033.8582%2028.3025L55.6009%2041.5449C56.4288%2042.0557%2056.4288%2042.8711%2055.6009%2043.3819L33.8582%2056.6243C33.0303%2057.1253%2031.68%2057.1253%2030.852%2056.6243L9.10934%2043.3819C8.28142%2042.8711%208.28142%2042.0557%209.10934%2041.5449L30.852%2028.3025Z'%20stroke='url(%23paint4_linear_10_3993)'%20stroke-width='2'/%3e%3c/g%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.4087%2033.7646V34.9238C56.4087%2034.9828%2056.3989%2035.0417%2056.389%2035.1007V35.1105C56.3693%2035.1694%2056.3594%2035.2284%2056.3299%2035.2873V35.2971C56.3102%2035.3561%2056.2806%2035.415%2056.251%2035.474C56.2116%2035.5427%2056.1623%2035.6017%2056.1229%2035.6606V35.6705C56.0637%2035.7392%2055.9948%2035.808%2055.9159%2035.8767V35.8866C55.7976%2035.9946%2055.6596%2036.0929%2055.5019%2036.1911C55.5019%2036.1911%2055.4724%2036.2009%2055.4625%2036.2107V35.0712C55.4625%2035.0712%2055.4921%2035.0614%2055.5019%2035.0516C55.6596%2034.9533%2055.7976%2034.8551%2055.9159%2034.747C55.9849%2034.6783%2056.0539%2034.6095%2056.113%2034.5309C56.1623%2034.472%2056.2116%2034.4032%2056.2412%2034.3442V34.3344C56.2806%2034.2853%2056.3102%2034.2264%2056.3299%2034.1674V34.1576C56.3496%2034.0986%2056.3693%2034.0495%2056.3791%2033.9906V33.9709C56.389%2033.9316%2056.3989%2033.8825%2056.4087%2033.8334V33.7843C56.4087%2033.7843%2056.4087%2033.7745%2056.4087%2033.7646Z'%20fill='url(%23paint5_linear_10_3993)'/%3e%3cpath%20d='M55.3541%2033.7545V34.8941C55.3541%2034.5699%2055.1274%2034.2457%2054.7036%2034.0001V32.8606C55.1373%2033.1062%2055.3541%2033.4303%2055.3541%2033.7545Z'%20fill='%238399A7'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9.30612%2032.8606V34.0001L9.27655%2034.0198C9.16813%2034.0787%209.07943%2034.1475%209.00058%2034.2162V34.2261C8.9513%2034.2654%208.90202%2034.3145%208.86259%2034.3636C8.83302%2034.4029%208.80345%2034.4422%208.77388%2034.4913V34.5011C8.75417%2034.5404%208.73446%2034.5699%208.71475%2034.6092V34.619C8.70489%2034.6583%208.69504%2034.6878%208.68518%2034.7271V34.7467C8.67532%2034.786%208.66547%2034.8253%208.66547%2034.8646V33.7251C8.66547%2033.6956%208.67532%2033.6563%208.68518%2033.6268V33.6072C8.69504%2033.5679%208.70489%2033.5286%208.71475%2033.4893V33.4795C8.73446%2033.4402%208.75417%2033.4009%208.77388%2033.3616V33.3518C8.80345%2033.3125%208.83302%2033.2634%208.86259%2033.2241C8.90202%2033.1749%208.9513%2033.1258%209.00058%2033.0865C9.07943%2033.0079%209.16813%2032.9392%209.27655%2032.8802L9.30612%2032.8606Z'%20fill='%238399A7'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M31.7979%2021.5241C31.7191%2021.5241%2031.6402%2021.5339%2031.5614%2021.5437C31.4628%2021.5535%2031.3741%2021.5634%2031.2755%2021.583C31.1376%2021.6027%2030.9996%2021.642%2030.8616%2021.6813C30.6842%2021.7402%2030.5265%2021.809%2030.3885%2021.8875V20.748C30.5363%2020.6694%2030.694%2020.6006%2030.8616%2020.5417C30.9996%2020.5024%2031.1376%2020.4631%2031.2755%2020.4435C31.3741%2020.4238%2031.4628%2020.414%2031.5515%2020.4042C31.6402%2020.3943%2031.7191%2020.3845%2031.7979%2020.3845H32.0246C32.1035%2020.3845%2032.1725%2020.3944%2032.2414%2020.3944C32.3203%2020.4042%2032.3893%2020.4042%2032.4583%2020.414C32.5371%2020.4336%2032.6061%2020.4435%2032.6751%2020.4533C32.754%2020.4729%2032.8328%2020.4926%2032.9018%2020.5122C33.0004%2020.5417%2033.0891%2020.5712%2033.1679%2020.6006C33.2862%2020.6399%2033.3848%2020.6989%2033.4833%2020.748V21.8875C33.3848%2021.8384%2033.2763%2021.7893%2033.1679%2021.7402C33.0792%2021.7009%2032.9905%2021.6714%2032.9018%2021.6518C32.823%2021.6321%2032.7441%2021.6125%2032.6751%2021.5928C32.5963%2021.583%2032.5273%2021.5634%2032.4583%2021.5535C32.3794%2021.5437%2032.3104%2021.5437%2032.2414%2021.5339C32.1725%2021.5241%2032.0936%2021.5241%2032.0246%2021.5241H31.7979Z'%20fill='%238399A7'/%3e%3cpath%20d='M54.7038%2032.8607V34.0002L33.4835%2021.8876V20.748L54.7038%2032.8607Z'%20fill='%238399A7'/%3e%3cpath%20d='M30.3889%2020.748L30.379%2021.8876L9.30652%2034.0002V32.8607L30.3889%2020.748Z'%20fill='%238399A7'/%3e%3cpath%20d='M8.56734%2035.0711V36.2106C7.92669%2035.8471%207.60144%2035.3658%207.60144%2034.8844V33.7449C7.60144%2034.2262%207.92669%2034.7076%208.56734%2035.0711Z'%20fill='%238399A7'/%3e%3cpath%20d='M55.4629%2035.071V36.2106L34.3806%2048.3232L34.3904%2047.1837L55.4629%2035.071Z'%20fill='%23B7BDC2'/%3e%3cpath%20d='M29.7876%2047.1837V48.3232L8.56732%2036.2106V35.071L29.7876%2047.1837Z'%20fill='%238399A7'/%3e%3cpath%20d='M55.453%2032.4382C56.7244%2033.1651%2056.7343%2034.344%2055.4628%2035.071L34.3805%2047.1836C33.1189%2047.9105%2031.0589%2047.9105%2029.7875%2047.1836L8.56717%2035.071C7.29572%2034.344%207.28587%2033.1553%208.55731%2032.4382L29.6397%2020.3157C30.9012%2019.5888%2032.9612%2019.5888%2034.2326%2020.3157L55.453%2032.4382ZM33.6314%2046.7612L54.7137%2034.6387C55.5712%2034.1574%2055.5614%2033.3518%2054.7039%2032.8606L33.4836%2020.748C32.6261%2020.2568%2031.2364%2020.2568%2030.3887%2020.748L9.30638%2032.8606C8.45875%2033.3518%208.45875%2034.1574%209.31624%2034.6387L30.5366%2046.7612C31.394%2047.2425%2032.7838%2047.2425%2033.6413%2046.7612H33.6314Z'%20fill='%23BCCDD6'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M30.2507%2047.4095C30.3788%2047.4587%2030.5069%2047.498%2030.6449%2047.5373C30.7632%2047.5667%2030.8716%2047.5962%2030.9899%2047.6158C31.0983%2047.6453%2031.2067%2047.665%2031.3151%2047.6748C31.4235%2047.6944%2031.5221%2047.7043%2031.6305%2047.7141C31.7389%2047.7141%2031.8375%2047.7239%2031.9459%2047.7337V47.7239H32.281C32.4092%2047.7239%2032.5176%2047.7141%2032.6358%2047.7042C32.7837%2047.6846%2032.9217%2047.665%2033.0498%2047.6453C33.2666%2047.606%2033.4736%2047.5569%2033.6707%2047.498V47.4881C33.927%2047.4095%2034.1734%2047.3015%2034.3902%2047.1836V48.3231C34.1636%2048.4509%2033.927%2048.5491%2033.6707%2048.6277V48.6375C33.4736%2048.6965%2033.2666%2048.7456%2033.0597%2048.7849C32.9217%2048.8045%2032.7837%2048.8242%2032.6457%2048.8438C32.5176%2048.8536%2032.3993%2048.8634%2032.281%2048.8733V48.8634C32.1627%2048.8733%2032.0543%2048.8733%2031.9459%2048.8634V48.8733C31.8375%2048.8733%2031.7291%2048.8635%2031.6207%2048.8536C31.5122%2048.8438%2031.4137%2048.834%2031.3151%2048.8143C31.1968%2048.8045%2031.0884%2048.7849%2030.9899%2048.7652V48.7554C30.8716%2048.7357%2030.7533%2048.7063%2030.6449%2048.6768C30.5069%2048.6375%2030.3788%2048.5982%2030.2507%2048.5491C30.0831%2048.4803%2029.9254%2048.4017%2029.7874%2048.3231V47.1836C29.9353%2047.2622%2030.093%2047.3408%2030.2507%2047.4095Z'%20fill='url(%23paint6_linear_10_3993)'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.61102%2033.7447V7.34839L56.4089%207.35819V33.784C56.4089%2033.8528%2056.399%2033.9117%2056.3892%2033.9706C56.3695%2034.0394%2056.3596%2034.0983%2056.3399%2034.1573C56.3103%2034.2162%2056.2906%2034.2752%2056.2512%2034.3341C56.2118%2034.4029%2056.1724%2034.4618%2056.1231%2034.5306C56.0639%2034.5993%2055.9949%2034.6779%2055.9161%2034.7467C55.7978%2034.8548%2055.6697%2034.953%2055.5021%2035.0512C55.4923%2035.0611%2055.4627%2035.0709%2055.4627%2035.0709L34.3902%2047.1835C34.1734%2047.3014%2033.9368%2047.4095%2033.6707%2047.4881C33.4736%2047.5568%2033.2765%2047.6059%2033.0596%2047.6452C32.9217%2047.6649%2032.7935%2047.6944%2032.6457%2047.7042C32.5274%2047.714%2032.4091%2047.7238%2032.281%2047.7238C32.1726%2047.7238%2032.0642%2047.7238%2031.9459%2047.7238C31.8375%2047.7238%2031.7291%2047.714%2031.6206%2047.714C31.5221%2047.7042%2031.4235%2047.6944%2031.3151%2047.6747C31.2067%2047.6649%2031.0983%2047.6452%2030.9899%2047.6158C30.8716%2047.5961%2030.7632%2047.5667%2030.6449%2047.5372C30.5069%2047.4979%2030.3886%2047.4586%2030.2506%2047.4095C30.0929%2047.3407%2029.9352%2047.2621%2029.7874%2047.1835L8.56707%2035.0709C7.92642%2034.7074%207.61102%2034.2261%207.61102%2033.7447Z'%20fill='url(%23paint7_linear_10_3993)'/%3e%3cpath%20d='M7.60139%2030.2673V37.9593L4.339%2035.7293C3.18583%2034.9532%203.18583%2033.2636%204.339%2032.4875L7.60139%2030.2673Z'%20stroke='url(%23paint8_linear_10_3993)'%20stroke-width='1.5'/%3e%3cg%20opacity='0.3'%3e%3cpath%20d='M5.12727%2030.2673V37.9593L1.86488%2035.7293C0.711707%2034.9532%200.711707%2033.2636%201.86488%2032.4875L5.12727%2030.2673Z'%20stroke='url(%23paint9_linear_10_3993)'%20stroke-width='1.5'/%3e%3c/g%3e%3cpath%20d='M56.3895%2030.2673V37.9593L59.6617%2035.7293C60.8149%2034.9532%2060.8149%2033.2636%2059.6617%2032.4875L56.3895%2030.2673Z'%20stroke='url(%23paint10_linear_10_3993)'%20stroke-width='1.5'/%3e%3cg%20opacity='0.3'%3e%3cpath%20d='M58.8727%2030.2673V37.9593L62.1351%2035.7293C63.2883%2034.9532%2063.2883%2033.2636%2062.1351%2032.4875L58.8727%2030.2673Z'%20stroke='url(%23paint11_linear_10_3993)'%20stroke-width='1.5'/%3e%3c/g%3e%3cpath%20d='M22.39%2034.978C22.0056%2034.5972%2021.7004%2034.144%2021.4921%2033.6445C21.2839%2033.1451%2021.1766%2032.6093%2021.1766%2032.0682C21.1766%2031.5271%2021.2839%2030.9913%2021.4921%2030.4919C21.7004%2029.9924%2022.0056%2029.5392%2022.39%2029.1584C22.9396%2028.614%2023.63%2028.2335%2024.3838%2028.0597C25.1375%2027.8859%2025.9248%2027.9256%2026.6573%2028.1743L26.7342%2028.2003L26.6815%2028.2624C26.4056%2028.5976%2026.0918%2028.9428%2025.8213%2029.2374L25.8007%2029.2591L25.7708%2029.2548C25.6208%2029.2311%2025.4693%2029.219%2025.3176%2029.2187C24.9417%2029.2175%2024.5694%2029.2903%2024.2217%2029.4331C23.874%2029.5758%2023.5579%2029.7856%2023.2913%2030.0505C23.0247%2030.3154%2022.8129%2030.6302%2022.668%2030.977C22.5231%2031.3237%2022.4479%2031.6956%2022.4467%2032.0714C22.4479%2032.4473%2022.5231%2032.8192%2022.668%2033.1659C22.8129%2033.5127%2023.0247%2033.8275%2023.2913%2034.0924C23.5579%2034.3573%2023.874%2034.5671%2024.2217%2034.7098C24.5694%2034.8526%2024.9417%2034.9254%2025.3176%2034.9242C26.0783%2034.9247%2026.8083%2034.6243%2027.3484%2034.0886C27.6679%2033.7696%2027.9072%2033.3795%2028.0467%2032.9501C28.1862%2032.5208%2028.2219%2032.0644%2028.1508%2031.6186L28.1461%2031.5897L28.1682%2031.5691C28.4571%2031.3008%2028.7712%2031.0275%2029.1479%2030.7151L29.2107%2030.6628L29.2381%2030.7404C29.4841%2031.4694%2029.5217%2032.2526%2029.3466%2033.0018C29.1716%2033.751%2028.7908%2034.4364%2028.2473%2034.9809C27.469%2035.7544%2026.4158%2036.1876%2025.3186%2036.1856C24.2212%2036.1867%2023.1682%2035.7523%2022.3904%2034.978H22.39ZM37.3844%2035.9646C36.8703%2035.7952%2036.3948%2035.5257%2035.9851%2035.1719C35.5755%2034.818%2035.2399%2034.3866%2034.9976%2033.9025C34.7552%2033.4184%2034.611%2032.8912%2034.5732%2032.3512C34.5354%2031.8112%2034.6047%2031.269%2034.7772%2030.7559L34.8032%2030.6801L34.8661%2030.7303C35.2041%2030.9981%2035.5329%2031.2774%2035.8519%2031.5677L35.8743%2031.5883L35.8696%2031.6183C35.7984%2032.0646%2035.8346%2032.5215%2035.9754%2032.951C36.1161%2033.3805%2036.3573%2033.7703%2036.6788%2034.0879C37.2202%2034.6226%2037.9508%2034.9219%2038.7117%2034.9208C39.4726%2034.9196%2040.2023%2034.6181%2040.7421%2034.0818C41.0085%2033.8173%2041.2198%2033.5026%2041.3639%2033.1559C41.508%2032.8093%2041.5819%2032.4375%2041.5815%2032.0621C41.581%2031.6867%2041.5061%2031.3151%2041.3612%2030.9688C41.2162%2030.6225%2041.0041%2030.3084%2040.737%2030.0445C40.471%2029.7792%2040.1552%2029.5691%2039.8077%2029.4262C39.4602%2029.2833%2039.088%2029.2104%2038.7123%2029.2118C38.5599%2029.2118%2038.4078%2029.2237%2038.2573%2029.2479L38.2269%2029.2526L38.2063%2029.2299C37.916%2028.9119%2037.6349%2028.5855%2037.3635%2028.2513L37.3129%2028.1888L37.3895%2028.1628C37.8152%2028.0213%2038.2608%2027.9494%2038.7094%2027.9497C39.2527%2027.9476%2039.7911%2028.0535%2040.2932%2028.2612C40.7953%2028.4688%2041.2512%2028.7742%2041.6344%2029.1594C42.1776%2029.6988%2042.5588%2030.3797%2042.7346%2031.1248C42.9104%2031.8699%2042.8738%2032.6494%2042.6289%2033.3747C42.3498%2034.1938%2041.8212%2034.9049%2041.1172%2035.408C40.4132%2035.9111%2039.5693%2036.181%2038.7039%2036.1798C38.2554%2036.1798%2037.8098%2036.1069%2037.3844%2035.9646ZM36.7117%2032.3004C36.7113%2032.0103%2036.7674%2031.723%2036.8767%2031.4543C35.5858%2030.2388%2033.7856%2028.7763%2032.4975%2028.6532C32.3441%2028.6409%2031.7421%2028.6409%2031.572%2028.6593C30.2749%2028.8038%2028.4773%2030.2793%2027.1953%2031.4901C27.2813%2031.732%2027.3253%2031.9866%2027.3253%2032.2433C27.3226%2032.8443%2027.0814%2033.4195%2026.6549%2033.8428C26.2284%2034.2661%2025.6513%2034.5028%2025.0503%2034.501C24.7527%2034.5023%2024.4577%2034.4449%2024.1823%2034.3321C23.9069%2034.2194%2023.6563%2034.0534%2023.4451%2033.8438C23.2338%2033.6342%2023.0659%2033.3849%2022.951%2033.1104C22.8361%2032.8358%2022.7764%2032.5413%2022.7753%2032.2437C22.7764%2031.9461%2022.8361%2031.6516%2022.951%2031.377C23.0659%2031.1025%2023.2338%2030.8532%2023.4451%2030.6436C23.6563%2030.434%2023.9069%2030.268%2024.1823%2030.1553C24.4577%2030.0425%2024.7527%2029.9851%2025.0503%2029.9864C25.3384%2029.986%2025.6238%2030.0402%2025.8917%2030.146C27.0404%2028.9446%2028.4141%2027.2976%2028.6842%2026.0402C28.7344%2025.6278%2028.7423%2025.2114%2028.7084%2024.7972C28.5163%2023.5203%2027.0726%2021.7819%2025.8758%2020.5339C25.6294%2020.6217%2025.3697%2020.6665%2025.1081%2020.6665C24.8105%2020.6678%2024.5155%2020.6104%2024.2401%2020.4976C23.9646%2020.3848%2023.7141%2020.2189%2023.5028%2020.0093C23.2916%2019.7996%2023.1237%2019.5504%2023.0088%2019.2759C22.8938%2019.0013%2022.8342%2018.7068%2022.8331%2018.4092C22.8342%2018.1115%2022.8938%2017.817%2023.0088%2017.5425C23.1237%2017.2679%2023.2916%2017.0187%2023.5028%2016.8091C23.7141%2016.5994%2023.9646%2016.4335%2024.2401%2016.3207C24.5155%2016.208%2024.8105%2016.1506%2025.1081%2016.1519C25.4057%2016.1507%2025.7006%2016.2081%2025.976%2016.3209C26.2513%2016.4337%2026.5018%2016.5996%2026.713%2016.8092C26.9243%2017.0187%2027.0922%2017.2679%2027.2072%2017.5423C27.3221%2017.8168%2027.3819%2018.1112%2027.3831%2018.4088C27.3832%2018.6928%2027.3293%2018.9741%2027.2242%2019.2379C28.5502%2020.487%2030.411%2021.999%2031.7067%2022.0492C31.8223%2022.0492%2032.3155%2022.055%2032.4614%2022.043C33.7524%2021.9484%2035.5695%2020.4708%2036.8728%2019.2441C36.766%2018.9782%2036.7113%2018.6943%2036.7117%2018.4077C36.7127%2018.1101%2036.7723%2017.8155%2036.8872%2017.5409C37.0021%2017.2663%2037.17%2017.0171%2037.3813%2016.8074C37.5926%2016.5977%2037.8431%2016.4318%2038.1186%2016.319C38.394%2016.2062%2038.689%2016.1488%2038.9867%2016.1501C39.2843%2016.1488%2039.5793%2016.2063%2039.8548%2016.3191C40.1302%2016.4319%2040.3807%2016.5978%2040.592%2016.8075C40.8033%2017.0172%2040.9712%2017.2664%2041.0861%2017.541C41.201%2017.8156%2041.2607%2018.1101%2041.2617%2018.4077C41.2585%2019.0084%2041.0173%2019.5834%2040.5908%2020.0064C40.1643%2020.4294%2039.5874%2020.666%2038.9867%2020.6643C38.7285%2020.6643%2038.4721%2020.621%2038.2284%2020.5354C36.9439%2021.8769%2035.3738%2023.7818%2035.3778%2025.0771V25.5736C35.3351%2026.8678%2036.9341%2028.8092%2038.2359%2030.168C38.4775%2030.0842%2038.7314%2030.0415%2038.9871%2030.0416C39.2847%2030.0404%2039.5797%2030.0978%2039.8551%2030.2106C40.1306%2030.3235%2040.3811%2030.4894%2040.5924%2030.6991C40.8036%2030.9088%2040.9715%2031.158%2041.0864%2031.4326C41.2013%2031.7071%2041.261%2032.0017%2041.2621%2032.2993C41.2591%2032.9001%2041.0179%2033.4752%2040.5914%2033.8983C40.1648%2034.3215%2039.5879%2034.5581%2038.9871%2034.5563C38.6896%2034.5575%2038.3947%2034.5002%2038.1194%2034.3875C37.844%2034.2748%2037.5936%2034.109%2037.3823%2033.8996C37.171%2033.6901%2037.0031%2033.441%2036.8881%2033.1666C36.7731%2032.8923%2036.7133%2032.5979%2036.7121%2032.3004H36.7117ZM30.6367%2023.9428C30.4524%2024.1257%2030.3061%2024.3433%2030.2064%2024.5831C30.1067%2024.8228%2030.0555%2025.08%2030.0558%2025.3396C30.0562%2025.5993%2030.108%2025.8563%2030.2083%2026.0958C30.3087%2026.3353%2030.4555%2026.5526%2030.6403%2026.735C31.015%2027.1049%2031.5205%2027.3122%2032.047%2027.3117C32.5736%2027.3112%2033.0787%2027.1031%2033.4527%2026.7324C33.6363%2026.5495%2033.7821%2026.3322%2033.8815%2026.0928C33.9809%2025.8535%2034.0321%2025.5968%2034.0321%2025.3376C34.0321%2025.0784%2033.9809%2024.8218%2033.8815%2024.5824C33.7821%2024.3431%2033.6363%2024.1257%2033.4527%2023.9428L33.4498%2023.9399C33.0763%2023.5693%2032.5712%2023.3616%2032.0451%2023.3622C31.5174%2023.3611%2031.0108%2023.5696%2030.6367%2023.9418V23.9428ZM31.1704%2026.2251C31.0536%2026.11%2030.9609%2025.9728%2030.8976%2025.8216C30.8344%2025.6703%2030.8019%2025.5079%2030.8021%2025.3439C30.801%2025.18%2030.8331%2025.0174%2030.8964%2024.8662C30.9597%2024.7149%2031.0529%2024.5779%2031.1704%2024.4636C31.2868%2024.347%2031.425%2024.2547%2031.5771%2024.1918C31.7293%2024.1289%2031.8923%2024.0967%2032.057%2024.097C32.391%2024.0963%2032.7106%2024.2306%2032.9439%2024.4697C33.06%2024.585%2033.1521%2024.7222%2033.2149%2024.8733C33.2777%2025.0245%2033.3098%2025.1866%2033.3095%2025.3502C33.3092%2025.5139%2033.2765%2025.6759%2033.2131%2025.8268C33.1498%2025.9777%2033.0572%2026.1145%2032.9406%2026.2294C32.8243%2026.3448%2032.6864%2026.4361%2032.5348%2026.4982C32.3832%2026.5603%2032.2208%2026.5919%2032.057%2026.5912H32.0483C31.8851%2026.5912%2031.7235%2026.5588%2031.5728%2026.4959C31.4222%2026.433%2031.2856%2026.3408%2031.1708%2026.2247L31.1704%2026.2251ZM22.3893%2021.5436C20.847%2019.9544%2020.847%2017.427%2022.3893%2015.8381C23.9804%2014.199%2026.5944%2014.1481%2028.248%2015.724C28.7955%2016.2719%2029.1778%2016.9629%2029.351%2017.718C29.5242%2018.473%2029.4813%2019.2615%2029.2273%2019.9934L29.2013%2020.0699L29.1388%2020.0172C28.7777%2019.7186%2028.4607%2019.4355%2028.1638%2019.1505L28.1425%2019.1303L28.1472%2019.1014C28.2209%2018.6531%2028.1865%2018.1936%2028.047%2017.7612C27.9074%2017.3288%2027.6667%2016.9359%2027.3448%2016.6152C26.8057%2016.0807%2026.0774%2015.7807%2025.3183%2015.7803C24.5591%2015.7767%2023.8295%2016.0749%2023.2901%2016.6092C22.7507%2017.1435%2022.4457%2017.8702%2022.442%2018.6295C22.4427%2019.0054%2022.5175%2019.3776%2022.6621%2019.7247C22.8066%2020.0718%2023.0181%2020.387%2023.2845%2020.6524C23.5509%2020.9177%2023.8669%2021.128%2024.2146%2021.2712C24.5622%2021.4144%2024.9347%2021.4877%2025.3107%2021.4869C25.4681%2021.4869%2025.6249%2021.4743%2025.7801%2021.449L25.8101%2021.444L25.8303%2021.4663C26.1033%2021.7552%2026.4204%2022.099%2026.7021%2022.4338L26.7544%2022.4959L26.6775%2022.5219C26.2391%2022.6735%2025.7783%2022.7508%2025.3147%2022.7508H25.2988C24.7581%2022.7516%2024.2225%2022.6452%2023.7231%2022.438C23.2237%2022.2307%2022.7703%2021.9266%2022.3889%2021.5433H22.3893V21.5436ZM38.7032%2022.7479C38.2516%2022.7486%2037.8029%2022.6764%2037.3743%2022.5341L37.2971%2022.5081L37.3498%2022.4457C37.6227%2022.112%2037.9058%2021.7869%2038.1988%2021.4707L38.2193%2021.4483L38.2493%2021.453C38.6991%2021.5256%2039.1597%2021.4906%2039.5934%2021.3509C40.027%2021.2111%2040.4214%2020.9707%2040.7442%2020.6491C41.0103%2020.3845%2041.2214%2020.0698%2041.3651%2019.7231C41.5089%2019.3764%2041.5825%2019.0047%2041.5818%2018.6294C41.5811%2018.2541%2041.506%2017.8827%2041.3608%2017.5366C41.2157%2017.1905%2041.0034%2016.8766%2040.7363%2016.613C40.1945%2016.079%2039.4639%2015.7802%2038.7032%2015.7816C37.9424%2015.7829%2037.2129%2016.0843%2036.6731%2016.6202C36.3536%2016.9392%2036.1143%2017.3294%2035.9748%2017.7587C35.8352%2018.1881%2035.7994%2018.6444%2035.8703%2019.0902L35.875%2019.1202L35.8526%2019.1404C35.4915%2019.4705%2035.1708%2019.7442%2034.8718%2019.9782L34.8086%2020.0273L34.7823%2019.9526C34.5339%2019.2249%2034.4955%2018.442%2034.6714%2017.6935C34.8473%2016.9451%2035.2304%2016.2612%2035.7768%2015.7203C37.3993%2014.1145%2040.0123%2014.1159%2041.6329%2015.7232C42.0169%2016.1044%2042.3216%2016.5577%2042.5295%2017.0572C42.7375%2017.5566%2042.8445%2018.0922%2042.8445%2018.6332C42.8445%2019.1742%2042.7375%2019.7099%2042.5295%2020.2093C42.3216%2020.7088%2042.0169%2021.1621%2041.6329%2021.5433C41.2505%2021.9253%2040.7965%2022.2284%2040.2969%2022.435C39.7973%2022.6416%2039.2619%2022.7478%2038.7213%2022.7476H38.7032V22.7479Z'%20fill='white'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_10_3993'%20x1='32.3586'%20y1='23.7317'%20x2='32.3586'%20y2='52.8076'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_10_3993'%20x1='32.3586'%20y1='13.6786'%20x2='32.3586'%20y2='42.7545'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_10_3993'%20x1='32.3586'%20y1='7.88708'%20x2='32.3586'%20y2='36.963'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint3_linear_10_3993'%20x1='32.3586'%20y1='1.00487'%20x2='32.3586'%20y2='30.0808'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint4_linear_10_3993'%20x1='32.3586'%20y1='27.9279'%20x2='32.3586'%20y2='57.0039'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint5_linear_10_3993'%20x1='55.5149'%20y1='35.513'%20x2='56.5734'%20y2='34.8105'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23B7BDC2'/%3e%3cstop%20offset='1'%20stop-color='%23A8ADB0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint6_linear_10_3993'%20x1='29.8838'%20y1='48.873'%20x2='34.303'%20y2='48.873'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238399A7'/%3e%3cstop%20offset='1'%20stop-color='%23B7BDC2'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint7_linear_10_3993'%20x1='32.0138'%20y1='7.34981'%20x2='32.0138'%20y2='47.7327'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%230E77BC'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='%23009AFF'%20stop-opacity='0.760784'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint8_linear_10_3993'%20x1='1.9546'%20y1='34.1148'%20x2='7.61118'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint9_linear_10_3993'%20x1='-0.520374'%20y1='34.1148'%20x2='5.13621'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint10_linear_10_3993'%20x1='62.0558'%20y1='34.1148'%20x2='56.3993'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint11_linear_10_3993'%20x1='64.5301'%20y1='34.1148'%20x2='58.8735'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e", A0 = "data:image/svg+xml,%3csvg%20width='64'%20height='58'%20viewBox='0%200%2064%2058'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.4'%3e%3cpath%20d='M30.852%2024.1077C31.68%2023.5969%2033.0303%2023.5969%2033.8582%2024.1077L55.6009%2037.3501C56.4288%2037.8511%2056.4288%2038.6763%2055.6009%2039.1871L33.8582%2052.4196C33.0303%2052.9305%2031.68%2052.9305%2030.852%2052.4196L9.10934%2039.1871C8.28142%2038.6763%208.28142%2037.8511%209.10934%2037.3501L30.852%2024.1077Z'%20stroke='url(%23paint0_linear_10_4030)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%2014.0579C31.68%2013.5471%2033.0303%2013.5471%2033.8582%2014.0579L55.6009%2027.2905C56.4288%2027.8013%2056.4288%2028.6265%2055.6009%2029.1275L33.8582%2042.3699C33.0303%2042.8807%2031.68%2042.8807%2030.852%2042.3699L9.10934%2029.1275C8.28142%2028.6265%208.28142%2027.8013%209.10934%2027.2905L30.852%2014.0579Z'%20stroke='url(%23paint1_linear_10_4030)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%208.26203C31.68%207.7512%2033.0303%207.7512%2033.8582%208.26203L55.6009%2021.5044C56.4288%2022.0054%2056.4288%2022.8306%2055.6009%2023.3414L33.8582%2036.574C33.0303%2037.0848%2031.68%2037.0848%2030.852%2036.574L9.10934%2023.3414C8.28142%2022.8306%208.28142%2022.0054%209.10934%2021.5044L30.852%208.26203Z'%20stroke='url(%23paint2_linear_10_4030)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%201.37576C31.68%200.874748%2033.0303%200.874748%2033.8582%201.37576L55.6009%2014.6181C56.4288%2015.129%2056.4288%2015.9443%2055.6009%2016.4552L33.8582%2029.6975C33.0303%2030.1985%2031.68%2030.1985%2030.852%2029.6975L9.10934%2016.4552C8.28142%2015.9443%208.28142%2015.129%209.10934%2014.6181L30.852%201.37576Z'%20stroke='url(%23paint3_linear_10_4030)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.2'%3e%3cpath%20d='M30.852%2028.3025C31.68%2027.8015%2033.0303%2027.8015%2033.8582%2028.3025L55.6009%2041.5449C56.4288%2042.0557%2056.4288%2042.8711%2055.6009%2043.3819L33.8582%2056.6243C33.0303%2057.1253%2031.68%2057.1253%2030.852%2056.6243L9.10934%2043.3819C8.28142%2042.8711%208.28142%2042.0557%209.10934%2041.5449L30.852%2028.3025Z'%20stroke='url(%23paint4_linear_10_4030)'%20stroke-width='2'/%3e%3c/g%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.4087%2033.7646V34.9238C56.4087%2034.9828%2056.3989%2035.0417%2056.389%2035.1007V35.1105C56.3693%2035.1694%2056.3594%2035.2284%2056.3299%2035.2873V35.2971C56.3102%2035.3561%2056.2806%2035.415%2056.251%2035.474C56.2116%2035.5427%2056.1623%2035.6017%2056.1229%2035.6606V35.6705C56.0637%2035.7392%2055.9948%2035.808%2055.9159%2035.8767V35.8866C55.7976%2035.9946%2055.6596%2036.0929%2055.5019%2036.1911C55.5019%2036.1911%2055.4724%2036.2009%2055.4625%2036.2107V35.0712C55.4625%2035.0712%2055.4921%2035.0614%2055.5019%2035.0516C55.6596%2034.9533%2055.7976%2034.8551%2055.9159%2034.747C55.9849%2034.6783%2056.0539%2034.6095%2056.113%2034.5309C56.1623%2034.472%2056.2116%2034.4032%2056.2412%2034.3442V34.3344C56.2806%2034.2853%2056.3102%2034.2264%2056.3299%2034.1674V34.1576C56.3496%2034.0986%2056.3693%2034.0495%2056.3791%2033.9906V33.9709C56.389%2033.9316%2056.3989%2033.8825%2056.4087%2033.8334V33.7843C56.4087%2033.7843%2056.4087%2033.7745%2056.4087%2033.7646Z'%20fill='url(%23paint5_linear_10_4030)'/%3e%3cpath%20d='M55.3541%2033.7545V34.8941C55.3541%2034.5699%2055.1274%2034.2457%2054.7036%2034.0001V32.8606C55.1373%2033.1062%2055.3541%2033.4303%2055.3541%2033.7545Z'%20fill='%238399A7'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9.30612%2032.8606V34.0001L9.27655%2034.0198C9.16813%2034.0787%209.07943%2034.1475%209.00058%2034.2162V34.2261C8.9513%2034.2654%208.90202%2034.3145%208.86259%2034.3636C8.83302%2034.4029%208.80345%2034.4422%208.77388%2034.4913V34.5011C8.75417%2034.5404%208.73446%2034.5699%208.71475%2034.6092V34.619C8.70489%2034.6583%208.69504%2034.6878%208.68518%2034.7271V34.7467C8.67532%2034.786%208.66547%2034.8253%208.66547%2034.8646V33.7251C8.66547%2033.6956%208.67532%2033.6563%208.68518%2033.6268V33.6072C8.69504%2033.5679%208.70489%2033.5286%208.71475%2033.4893V33.4795C8.73446%2033.4402%208.75417%2033.4009%208.77388%2033.3616V33.3518C8.80345%2033.3125%208.83302%2033.2634%208.86259%2033.2241C8.90202%2033.1749%208.9513%2033.1258%209.00058%2033.0865C9.07943%2033.0079%209.16813%2032.9392%209.27655%2032.8802L9.30612%2032.8606Z'%20fill='%238399A7'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M31.7979%2021.5241C31.7191%2021.5241%2031.6402%2021.5339%2031.5614%2021.5437C31.4628%2021.5535%2031.3741%2021.5634%2031.2755%2021.583C31.1376%2021.6027%2030.9996%2021.642%2030.8616%2021.6813C30.6842%2021.7402%2030.5265%2021.809%2030.3885%2021.8875V20.748C30.5363%2020.6694%2030.694%2020.6006%2030.8616%2020.5417C30.9996%2020.5024%2031.1376%2020.4631%2031.2755%2020.4435C31.3741%2020.4238%2031.4628%2020.414%2031.5515%2020.4042C31.6402%2020.3943%2031.7191%2020.3845%2031.7979%2020.3845H32.0246C32.1035%2020.3845%2032.1725%2020.3944%2032.2414%2020.3944C32.3203%2020.4042%2032.3893%2020.4042%2032.4583%2020.414C32.5371%2020.4336%2032.6061%2020.4435%2032.6751%2020.4533C32.754%2020.4729%2032.8328%2020.4926%2032.9018%2020.5122C33.0004%2020.5417%2033.0891%2020.5712%2033.1679%2020.6006C33.2862%2020.6399%2033.3848%2020.6989%2033.4833%2020.748V21.8875C33.3848%2021.8384%2033.2763%2021.7893%2033.1679%2021.7402C33.0792%2021.7009%2032.9905%2021.6714%2032.9018%2021.6518C32.823%2021.6321%2032.7441%2021.6125%2032.6751%2021.5928C32.5963%2021.583%2032.5273%2021.5634%2032.4583%2021.5535C32.3794%2021.5437%2032.3104%2021.5437%2032.2414%2021.5339C32.1725%2021.5241%2032.0936%2021.5241%2032.0246%2021.5241H31.7979Z'%20fill='%238399A7'/%3e%3cpath%20d='M54.7038%2032.8607V34.0002L33.4835%2021.8876V20.748L54.7038%2032.8607Z'%20fill='%238399A7'/%3e%3cpath%20d='M30.3889%2020.748L30.379%2021.8876L9.30652%2034.0002V32.8607L30.3889%2020.748Z'%20fill='%238399A7'/%3e%3cpath%20d='M8.56734%2035.0711V36.2106C7.92669%2035.8471%207.60144%2035.3658%207.60144%2034.8844V33.7449C7.60144%2034.2262%207.92669%2034.7076%208.56734%2035.0711Z'%20fill='%238399A7'/%3e%3cpath%20d='M55.4629%2035.071V36.2106L34.3806%2048.3232L34.3904%2047.1837L55.4629%2035.071Z'%20fill='%23B7BDC2'/%3e%3cpath%20d='M29.7876%2047.1837V48.3232L8.56732%2036.2106V35.071L29.7876%2047.1837Z'%20fill='%238399A7'/%3e%3cpath%20d='M55.453%2032.4382C56.7244%2033.1651%2056.7343%2034.344%2055.4628%2035.071L34.3805%2047.1836C33.1189%2047.9105%2031.0589%2047.9105%2029.7875%2047.1836L8.56717%2035.071C7.29572%2034.344%207.28587%2033.1553%208.55731%2032.4382L29.6397%2020.3157C30.9012%2019.5888%2032.9612%2019.5888%2034.2326%2020.3157L55.453%2032.4382ZM33.6314%2046.7612L54.7137%2034.6387C55.5712%2034.1574%2055.5614%2033.3518%2054.7039%2032.8606L33.4836%2020.748C32.6261%2020.2568%2031.2364%2020.2568%2030.3887%2020.748L9.30638%2032.8606C8.45875%2033.3518%208.45875%2034.1574%209.31624%2034.6387L30.5366%2046.7612C31.394%2047.2425%2032.7838%2047.2425%2033.6413%2046.7612H33.6314Z'%20fill='%23BCCDD6'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M30.2507%2047.4095C30.3788%2047.4587%2030.5069%2047.498%2030.6449%2047.5373C30.7632%2047.5667%2030.8716%2047.5962%2030.9899%2047.6158C31.0983%2047.6453%2031.2067%2047.665%2031.3151%2047.6748C31.4235%2047.6944%2031.5221%2047.7043%2031.6305%2047.7141C31.7389%2047.7141%2031.8375%2047.7239%2031.9459%2047.7337V47.7239H32.281C32.4092%2047.7239%2032.5176%2047.7141%2032.6358%2047.7042C32.7837%2047.6846%2032.9217%2047.665%2033.0498%2047.6453C33.2666%2047.606%2033.4736%2047.5569%2033.6707%2047.498V47.4881C33.927%2047.4095%2034.1734%2047.3015%2034.3902%2047.1836V48.3231C34.1636%2048.4509%2033.927%2048.5491%2033.6707%2048.6277V48.6375C33.4736%2048.6965%2033.2666%2048.7456%2033.0597%2048.7849C32.9217%2048.8045%2032.7837%2048.8242%2032.6457%2048.8438C32.5176%2048.8536%2032.3993%2048.8634%2032.281%2048.8733V48.8634C32.1627%2048.8733%2032.0543%2048.8733%2031.9459%2048.8634V48.8733C31.8375%2048.8733%2031.7291%2048.8635%2031.6207%2048.8536C31.5122%2048.8438%2031.4137%2048.834%2031.3151%2048.8143C31.1968%2048.8045%2031.0884%2048.7849%2030.9899%2048.7652V48.7554C30.8716%2048.7357%2030.7533%2048.7063%2030.6449%2048.6768C30.5069%2048.6375%2030.3788%2048.5982%2030.2507%2048.5491C30.0831%2048.4803%2029.9254%2048.4017%2029.7874%2048.3231V47.1836C29.9353%2047.2622%2030.093%2047.3408%2030.2507%2047.4095Z'%20fill='url(%23paint6_linear_10_4030)'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.61102%2033.7447V7.34839L56.4089%207.35819V33.784C56.4089%2033.8528%2056.399%2033.9117%2056.3892%2033.9706C56.3695%2034.0394%2056.3596%2034.0983%2056.3399%2034.1573C56.3103%2034.2162%2056.2906%2034.2752%2056.2512%2034.3341C56.2118%2034.4029%2056.1724%2034.4618%2056.1231%2034.5306C56.0639%2034.5993%2055.9949%2034.6779%2055.9161%2034.7467C55.7978%2034.8548%2055.6697%2034.953%2055.5021%2035.0512C55.4923%2035.0611%2055.4627%2035.0709%2055.4627%2035.0709L34.3902%2047.1835C34.1734%2047.3014%2033.9368%2047.4095%2033.6707%2047.4881C33.4736%2047.5568%2033.2765%2047.6059%2033.0596%2047.6452C32.9217%2047.6649%2032.7935%2047.6944%2032.6457%2047.7042C32.5274%2047.714%2032.4091%2047.7238%2032.281%2047.7238C32.1726%2047.7238%2032.0642%2047.7238%2031.9459%2047.7238C31.8375%2047.7238%2031.7291%2047.714%2031.6206%2047.714C31.5221%2047.7042%2031.4235%2047.6944%2031.3151%2047.6747C31.2067%2047.6649%2031.0983%2047.6452%2030.9899%2047.6158C30.8716%2047.5961%2030.7632%2047.5667%2030.6449%2047.5372C30.5069%2047.4979%2030.3886%2047.4586%2030.2506%2047.4095C30.0929%2047.3407%2029.9352%2047.2621%2029.7874%2047.1835L8.56707%2035.0709C7.92642%2034.7074%207.61102%2034.2261%207.61102%2033.7447Z'%20fill='url(%23paint7_linear_10_4030)'/%3e%3cg%20clip-path='url(%23clip0_10_4030)'%3e%3cpath%20d='M37.3702%2016.8862C35.8426%2016.8888%2034.3501%2017.3443%2033.0813%2018.1951C31.8126%2019.0459%2030.8247%2020.2539%2030.2425%2021.6662C29.6603%2023.0785%2029.51%2024.6317%2029.8105%2026.1294C30.1111%2027.6272%2030.8491%2029.0021%2031.9311%2030.0805C33.0131%2031.1588%2034.3906%2031.892%2035.8893%2032.1875C37.3881%2032.4829%2038.9408%2032.3273%2040.3511%2031.7402C41.7614%2031.1532%2042.966%2030.1612%2043.8124%2028.8895C44.6589%2027.6179%2045.1093%2026.1238%2045.1066%2024.5962C45.1008%2022.5486%2044.283%2020.5869%2042.8327%2019.1415C41.3823%2017.6961%2039.4178%2016.885%2037.3702%2016.8862ZM36.6862%2028.9905C36.5506%2029.1174%2036.3719%2029.188%2036.1862%2029.188C36.0005%2029.188%2035.8218%2029.1174%2035.6862%2028.9905L35.1337%2028.438L31.8457%2025.15C31.7189%2025.0145%2031.6483%2024.8357%2031.6483%2024.6501C31.6483%2024.4644%2031.7189%2024.2857%2031.8457%2024.1501L32.3982%2023.5976C32.5338%2023.4707%2032.7125%2023.4001%2032.8982%2023.4001C33.0839%2023.4001%2033.2626%2023.4707%2033.3982%2023.5976L36.1878%2026.3872L41.4505%2021.1245C41.5861%2020.9976%2041.7648%2020.9271%2041.9505%2020.9271C42.1361%2020.9271%2042.3149%2020.9976%2042.4504%2021.1245L43.0029%2021.677C43.1298%2021.8126%2043.2004%2021.9913%2043.2004%2022.177C43.2004%2022.3627%2043.1298%2022.5414%2043.0029%2022.6769L36.6862%2028.9905Z'%20fill='white'/%3e%3cpath%20d='M37.3702%2014.5163C39.7055%2014.5213%2041.973%2015.3013%2043.8172%2016.7341V14.0579C43.8172%2013.0909%2042.8708%2012.3501%2041.7193%2012.3501H21.1236C19.9464%2012.3501%2019.0258%2013.0896%2019.0258%2014.0579V22.8517H27.1361C27.6142%2020.4928%2028.8956%2018.3727%2030.7617%2016.8528C32.6279%2015.3329%2034.9634%2014.5071%2037.3702%2014.5163ZM28.7737%2030.8034H20.9186C20.8046%2030.7789%2020.6865%2030.7803%2020.5731%2030.8074C20.4597%2030.8344%2020.3537%2030.8865%2020.263%2030.9598C20.1723%2031.0331%2020.0991%2031.1258%2020.0489%2031.231C19.9986%2031.3363%2019.9725%2031.4514%2019.9725%2031.568C19.9725%2031.6847%2019.9986%2031.7998%2020.0489%2031.905C20.0991%2032.0103%2020.1723%2032.103%2020.263%2032.1763C20.3537%2032.2496%2020.4597%2032.3017%2020.5731%2032.3287C20.6865%2032.3558%2020.8046%2032.3571%2020.9186%2032.3327H30.0786C29.5901%2031.8711%2029.1526%2031.3584%2028.7737%2030.8034ZM26.9298%2024.406H19V25.2725C19.0521%2025.779%2019.3013%2026.2446%2019.6938%2026.5689C20.0863%2026.8931%2020.5907%2027.05%2021.0979%2027.0055H27.1104C26.9765%2026.3168%2026.9081%2025.6169%2026.906%2024.9153C26.926%2024.7464%2026.934%2024.5762%2026.9298%2024.406Z'%20fill='white'/%3e%3c/g%3e%3cpath%20d='M7.60139%2030.2673V37.9593L4.339%2035.7293C3.18583%2034.9532%203.18583%2033.2636%204.339%2032.4875L7.60139%2030.2673Z'%20stroke='url(%23paint8_linear_10_4030)'%20stroke-width='1.5'/%3e%3cg%20opacity='0.3'%3e%3cpath%20d='M5.12727%2030.2673V37.9593L1.86488%2035.7293C0.711707%2034.9532%200.711707%2033.2636%201.86488%2032.4875L5.12727%2030.2673Z'%20stroke='url(%23paint9_linear_10_4030)'%20stroke-width='1.5'/%3e%3c/g%3e%3cpath%20d='M56.3895%2030.2673V37.9593L59.6617%2035.7293C60.8149%2034.9532%2060.8149%2033.2636%2059.6617%2032.4875L56.3895%2030.2673Z'%20stroke='url(%23paint10_linear_10_4030)'%20stroke-width='1.5'/%3e%3cg%20opacity='0.3'%3e%3cpath%20d='M58.8727%2030.2673V37.9593L62.1351%2035.7293C63.2883%2034.9532%2063.2883%2033.2636%2062.1351%2032.4875L58.8727%2030.2673Z'%20stroke='url(%23paint11_linear_10_4030)'%20stroke-width='1.5'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_10_4030'%20x1='32.3586'%20y1='23.7317'%20x2='32.3586'%20y2='52.8076'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_10_4030'%20x1='32.3586'%20y1='13.6786'%20x2='32.3586'%20y2='42.7545'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_10_4030'%20x1='32.3586'%20y1='7.88708'%20x2='32.3586'%20y2='36.963'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint3_linear_10_4030'%20x1='32.3586'%20y1='1.00487'%20x2='32.3586'%20y2='30.0808'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint4_linear_10_4030'%20x1='32.3586'%20y1='27.9279'%20x2='32.3586'%20y2='57.0039'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint5_linear_10_4030'%20x1='55.5149'%20y1='35.513'%20x2='56.5734'%20y2='34.8105'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23B7BDC2'/%3e%3cstop%20offset='1'%20stop-color='%23A8ADB0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint6_linear_10_4030'%20x1='29.8838'%20y1='48.873'%20x2='34.303'%20y2='48.873'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238399A7'/%3e%3cstop%20offset='1'%20stop-color='%23B7BDC2'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint7_linear_10_4030'%20x1='32.0138'%20y1='7.34981'%20x2='32.0138'%20y2='47.7327'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%230E77BC'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='%23009AFF'%20stop-opacity='0.760784'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint8_linear_10_4030'%20x1='1.9546'%20y1='34.1148'%20x2='7.61118'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint9_linear_10_4030'%20x1='-0.520374'%20y1='34.1148'%20x2='5.13621'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint10_linear_10_4030'%20x1='62.0558'%20y1='34.1148'%20x2='56.3993'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint11_linear_10_4030'%20x1='64.5301'%20y1='34.1148'%20x2='58.8735'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_10_4030'%3e%3crect%20width='26.1133'%20height='20'%20fill='white'%20transform='translate(19%2012.3501)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e", k0 = "data:image/svg+xml,%3csvg%20width='64'%20height='58'%20viewBox='0%200%2064%2058'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.4'%3e%3cpath%20d='M30.852%2024.1077C31.68%2023.5969%2033.0303%2023.5969%2033.8582%2024.1077L55.6009%2037.3501C56.4288%2037.8511%2056.4288%2038.6763%2055.6009%2039.1871L33.8582%2052.4196C33.0303%2052.9305%2031.68%2052.9305%2030.852%2052.4196L9.10934%2039.1871C8.28142%2038.6763%208.28142%2037.8511%209.10934%2037.3501L30.852%2024.1077Z'%20stroke='url(%23paint0_linear_10_4065)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%2014.0579C31.68%2013.5471%2033.0303%2013.5471%2033.8582%2014.0579L55.6009%2027.2905C56.4288%2027.8013%2056.4288%2028.6265%2055.6009%2029.1275L33.8582%2042.3699C33.0303%2042.8807%2031.68%2042.8807%2030.852%2042.3699L9.10934%2029.1275C8.28142%2028.6265%208.28142%2027.8013%209.10934%2027.2905L30.852%2014.0579Z'%20stroke='url(%23paint1_linear_10_4065)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%208.26203C31.68%207.7512%2033.0303%207.7512%2033.8582%208.26203L55.6009%2021.5044C56.4288%2022.0054%2056.4288%2022.8306%2055.6009%2023.3414L33.8582%2036.574C33.0303%2037.0848%2031.68%2037.0848%2030.852%2036.574L9.10934%2023.3414C8.28142%2022.8306%208.28142%2022.0054%209.10934%2021.5044L30.852%208.26203Z'%20stroke='url(%23paint2_linear_10_4065)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M30.852%201.37576C31.6799%200.874748%2033.0302%200.874748%2033.8581%201.37576L55.6009%2014.6181C56.4288%2015.129%2056.4288%2015.9443%2055.6009%2016.4552L33.8581%2029.6975C33.0302%2030.1985%2031.6799%2030.1985%2030.852%2029.6975L9.10931%2016.4552C8.28139%2015.9443%208.28139%2015.129%209.10931%2014.6181L30.852%201.37576Z'%20stroke='url(%23paint3_linear_10_4065)'%20stroke-width='2'/%3e%3c/g%3e%3cg%20opacity='0.2'%3e%3cpath%20d='M30.852%2028.3025C31.68%2027.8015%2033.0303%2027.8015%2033.8582%2028.3025L55.6009%2041.5449C56.4288%2042.0557%2056.4288%2042.8711%2055.6009%2043.3819L33.8582%2056.6243C33.0303%2057.1253%2031.68%2057.1253%2030.852%2056.6243L9.10934%2043.3819C8.28142%2042.8711%208.28142%2042.0557%209.10934%2041.5449L30.852%2028.3025Z'%20stroke='url(%23paint4_linear_10_4065)'%20stroke-width='2'/%3e%3c/g%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M56.4087%2033.7646V34.9238C56.4087%2034.9828%2056.3989%2035.0417%2056.389%2035.1007V35.1105C56.3693%2035.1694%2056.3594%2035.2284%2056.3299%2035.2873V35.2971C56.3102%2035.3561%2056.2806%2035.415%2056.251%2035.474C56.2116%2035.5427%2056.1623%2035.6017%2056.1229%2035.6606V35.6705C56.0637%2035.7392%2055.9948%2035.808%2055.9159%2035.8767V35.8866C55.7976%2035.9946%2055.6596%2036.0929%2055.5019%2036.1911C55.5019%2036.1911%2055.4724%2036.2009%2055.4625%2036.2107V35.0712C55.4625%2035.0712%2055.4921%2035.0614%2055.5019%2035.0516C55.6596%2034.9533%2055.7976%2034.8551%2055.9159%2034.747C55.9849%2034.6783%2056.0539%2034.6095%2056.113%2034.5309C56.1623%2034.472%2056.2116%2034.4032%2056.2412%2034.3442V34.3344C56.2806%2034.2853%2056.3102%2034.2264%2056.3299%2034.1674V34.1576C56.3496%2034.0986%2056.3693%2034.0495%2056.3791%2033.9906V33.9709C56.389%2033.9316%2056.3989%2033.8825%2056.4087%2033.8334V33.7843C56.4087%2033.7843%2056.4087%2033.7745%2056.4087%2033.7646Z'%20fill='url(%23paint5_linear_10_4065)'/%3e%3cpath%20d='M55.3541%2033.7545V34.8941C55.3541%2034.5699%2055.1274%2034.2457%2054.7036%2034.0001V32.8606C55.1373%2033.1062%2055.3541%2033.4303%2055.3541%2033.7545Z'%20fill='%238399A7'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9.30612%2032.8606V34.0001L9.27655%2034.0198C9.16813%2034.0787%209.07943%2034.1475%209.00058%2034.2162V34.2261C8.9513%2034.2654%208.90202%2034.3145%208.86259%2034.3636C8.83302%2034.4029%208.80345%2034.4422%208.77388%2034.4913V34.5011C8.75417%2034.5404%208.73446%2034.5699%208.71475%2034.6092V34.619C8.70489%2034.6583%208.69504%2034.6878%208.68518%2034.7271V34.7467C8.67532%2034.786%208.66547%2034.8253%208.66547%2034.8646V33.7251C8.66547%2033.6956%208.67532%2033.6563%208.68518%2033.6268V33.6072C8.69504%2033.5679%208.70489%2033.5286%208.71475%2033.4893V33.4795C8.73446%2033.4402%208.75417%2033.4009%208.77388%2033.3616V33.3518C8.80345%2033.3125%208.83302%2033.2634%208.86259%2033.2241C8.90202%2033.1749%208.9513%2033.1258%209.00058%2033.0865C9.07943%2033.0079%209.16813%2032.9392%209.27655%2032.8802L9.30612%2032.8606Z'%20fill='%238399A7'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M31.7979%2021.5241C31.7191%2021.5241%2031.6402%2021.5339%2031.5614%2021.5437C31.4628%2021.5535%2031.3741%2021.5634%2031.2755%2021.583C31.1376%2021.6027%2030.9996%2021.642%2030.8616%2021.6813C30.6842%2021.7402%2030.5265%2021.809%2030.3885%2021.8875V20.748C30.5363%2020.6694%2030.694%2020.6006%2030.8616%2020.5417C30.9996%2020.5024%2031.1376%2020.4631%2031.2755%2020.4435C31.3741%2020.4238%2031.4628%2020.414%2031.5515%2020.4042C31.6402%2020.3943%2031.7191%2020.3845%2031.7979%2020.3845H32.0246C32.1035%2020.3845%2032.1725%2020.3944%2032.2414%2020.3944C32.3203%2020.4042%2032.3893%2020.4042%2032.4583%2020.414C32.5371%2020.4336%2032.6061%2020.4435%2032.6751%2020.4533C32.754%2020.4729%2032.8328%2020.4926%2032.9018%2020.5122C33.0004%2020.5417%2033.0891%2020.5712%2033.1679%2020.6006C33.2862%2020.6399%2033.3848%2020.6989%2033.4833%2020.748V21.8875C33.3848%2021.8384%2033.2763%2021.7893%2033.1679%2021.7402C33.0792%2021.7009%2032.9905%2021.6714%2032.9018%2021.6518C32.823%2021.6321%2032.7441%2021.6125%2032.6751%2021.5928C32.5963%2021.583%2032.5273%2021.5634%2032.4583%2021.5535C32.3794%2021.5437%2032.3104%2021.5437%2032.2414%2021.5339C32.1725%2021.5241%2032.0936%2021.5241%2032.0246%2021.5241H31.7979Z'%20fill='%238399A7'/%3e%3cpath%20d='M54.7038%2032.8607V34.0002L33.4835%2021.8876V20.748L54.7038%2032.8607Z'%20fill='%238399A7'/%3e%3cpath%20d='M30.3889%2020.748L30.379%2021.8876L9.30652%2034.0002V32.8607L30.3889%2020.748Z'%20fill='%238399A7'/%3e%3cpath%20d='M8.56734%2035.0711V36.2106C7.92669%2035.8471%207.60144%2035.3658%207.60144%2034.8844V33.7449C7.60144%2034.2262%207.92669%2034.7076%208.56734%2035.0711Z'%20fill='%238399A7'/%3e%3cpath%20d='M55.4629%2035.071V36.2106L34.3806%2048.3232L34.3904%2047.1837L55.4629%2035.071Z'%20fill='%23B7BDC2'/%3e%3cpath%20d='M29.7876%2047.1837V48.3232L8.56732%2036.2106V35.071L29.7876%2047.1837Z'%20fill='%238399A7'/%3e%3cpath%20d='M55.453%2032.4382C56.7244%2033.1651%2056.7343%2034.344%2055.4628%2035.071L34.3805%2047.1836C33.1189%2047.9105%2031.0589%2047.9105%2029.7875%2047.1836L8.56717%2035.071C7.29572%2034.344%207.28587%2033.1553%208.55731%2032.4382L29.6397%2020.3157C30.9012%2019.5888%2032.9612%2019.5888%2034.2326%2020.3157L55.453%2032.4382ZM33.6314%2046.7612L54.7137%2034.6387C55.5712%2034.1574%2055.5614%2033.3518%2054.7039%2032.8606L33.4836%2020.748C32.6261%2020.2568%2031.2364%2020.2568%2030.3887%2020.748L9.30638%2032.8606C8.45875%2033.3518%208.45875%2034.1574%209.31624%2034.6387L30.5366%2046.7612C31.394%2047.2425%2032.7838%2047.2425%2033.6413%2046.7612H33.6314Z'%20fill='%23BCCDD6'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M30.2507%2047.4095C30.3788%2047.4587%2030.5069%2047.498%2030.6449%2047.5373C30.7632%2047.5667%2030.8716%2047.5962%2030.9899%2047.6158C31.0983%2047.6453%2031.2067%2047.665%2031.3151%2047.6748C31.4235%2047.6944%2031.5221%2047.7043%2031.6305%2047.7141C31.7389%2047.7141%2031.8375%2047.7239%2031.9459%2047.7337V47.7239H32.281C32.4092%2047.7239%2032.5176%2047.7141%2032.6358%2047.7042C32.7837%2047.6846%2032.9217%2047.665%2033.0498%2047.6453C33.2666%2047.606%2033.4736%2047.5569%2033.6707%2047.498V47.4881C33.927%2047.4095%2034.1734%2047.3015%2034.3902%2047.1836V48.3231C34.1636%2048.4509%2033.927%2048.5491%2033.6707%2048.6277V48.6375C33.4736%2048.6965%2033.2666%2048.7456%2033.0597%2048.7849C32.9217%2048.8045%2032.7837%2048.8242%2032.6457%2048.8438C32.5176%2048.8536%2032.3993%2048.8634%2032.281%2048.8733V48.8634C32.1627%2048.8733%2032.0543%2048.8733%2031.9459%2048.8634V48.8733C31.8375%2048.8733%2031.7291%2048.8635%2031.6207%2048.8536C31.5122%2048.8438%2031.4137%2048.834%2031.3151%2048.8143C31.1968%2048.8045%2031.0884%2048.7849%2030.9899%2048.7652V48.7554C30.8716%2048.7357%2030.7533%2048.7063%2030.6449%2048.6768C30.5069%2048.6375%2030.3788%2048.5982%2030.2507%2048.5491C30.0831%2048.4803%2029.9254%2048.4017%2029.7874%2048.3231V47.1836C29.9353%2047.2622%2030.093%2047.3408%2030.2507%2047.4095Z'%20fill='url(%23paint6_linear_10_4065)'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.61102%2033.7447V7.34839L56.4089%207.35819V33.784C56.4089%2033.8528%2056.399%2033.9117%2056.3892%2033.9706C56.3695%2034.0394%2056.3596%2034.0983%2056.3399%2034.1573C56.3103%2034.2162%2056.2906%2034.2752%2056.2512%2034.3341C56.2118%2034.4029%2056.1724%2034.4618%2056.1231%2034.5306C56.0639%2034.5993%2055.9949%2034.6779%2055.9161%2034.7467C55.7978%2034.8548%2055.6697%2034.953%2055.5021%2035.0512C55.4923%2035.0611%2055.4627%2035.0709%2055.4627%2035.0709L34.3902%2047.1835C34.1734%2047.3014%2033.9368%2047.4095%2033.6707%2047.4881C33.4736%2047.5568%2033.2765%2047.6059%2033.0596%2047.6452C32.9217%2047.6649%2032.7935%2047.6944%2032.6457%2047.7042C32.5274%2047.714%2032.4091%2047.7238%2032.281%2047.7238C32.1726%2047.7238%2032.0642%2047.7238%2031.9459%2047.7238C31.8375%2047.7238%2031.7291%2047.714%2031.6206%2047.714C31.5221%2047.7042%2031.4235%2047.6944%2031.3151%2047.6747C31.2067%2047.6649%2031.0983%2047.6452%2030.9899%2047.6158C30.8716%2047.5961%2030.7632%2047.5667%2030.6449%2047.5372C30.5069%2047.4979%2030.3886%2047.4586%2030.2506%2047.4095C30.0929%2047.3407%2029.9352%2047.2621%2029.7874%2047.1835L8.56707%2035.0709C7.92642%2034.7074%207.61102%2034.2261%207.61102%2033.7447Z'%20fill='url(%23paint7_linear_10_4065)'/%3e%3cpath%20d='M40.3571%2017.7666C41.3828%2017.7666%2042.2143%2018.5981%2042.2143%2019.6237V21.4809H43.1429C44.1685%2021.4809%2045%2022.3124%2045%2023.338V27.0523C45%2028.078%2044.1685%2028.9095%2043.1429%2028.9095H42.2143V30.7666C42.2143%2031.7923%2041.3828%2032.6237%2040.3571%2032.6237H20.8571C19.8315%2032.6237%2019%2031.7923%2019%2030.7666V19.6237C19%2018.5981%2019.8315%2017.7666%2020.8571%2017.7666H40.3571ZM43.1429%2027.0523V23.338H40.3571V19.6237H20.8571V30.7666H40.3571V27.0523H43.1429Z'%20fill='white'/%3e%3cpath%20d='M38.6162%2020.6685C39.0803%2020.6685%2039.3124%2020.9007%2039.3125%2021.3647V29.0259C39.3124%2029.49%2039.0803%2029.7221%2038.6162%2029.7222H22.5986C22.1344%2029.7222%2021.9014%2029.4901%2021.9014%2029.0259V21.3647C21.9015%2020.9006%2022.1344%2020.6685%2022.5986%2020.6685H38.6162ZM29.5449%2021.2212C29.3822%2021.2212%2029.2307%2021.3%2029.1377%2021.4302L29.1016%2021.4888L27.1152%2025.2808C27.0341%2025.4357%2027.0403%2025.6223%2027.1309%2025.772C27.2215%2025.9214%2027.3838%2026.0132%2027.5586%2026.0132H29.4375L28.7002%2028.8159C28.6418%2029.0379%2028.7421%2029.272%2028.9434%2029.3823C29.1445%2029.4923%2029.3952%2029.4511%2029.5508%2029.2827L33.8848%2024.5884C34.0193%2024.4425%2034.0541%2024.2302%2033.9746%2024.0483C33.8949%2023.8666%2033.715%2023.7486%2033.5166%2023.7485H31.8379L33.1875%2022.0298C33.3057%2021.8794%2033.3276%2021.6745%2033.2441%2021.5024C33.1605%2021.3306%2032.9861%2021.2214%2032.7949%2021.2212H29.5449Z'%20fill='white'/%3e%3cpath%20d='M7.60139%2030.2673V37.9593L4.339%2035.7293C3.18583%2034.9532%203.18583%2033.2636%204.339%2032.4875L7.60139%2030.2673Z'%20stroke='url(%23paint8_linear_10_4065)'%20stroke-width='1.5'/%3e%3cg%20opacity='0.3'%3e%3cpath%20d='M5.12727%2030.2673V37.9593L1.86488%2035.7293C0.711707%2034.9532%200.711707%2033.2636%201.86488%2032.4875L5.12727%2030.2673Z'%20stroke='url(%23paint9_linear_10_4065)'%20stroke-width='1.5'/%3e%3c/g%3e%3cpath%20d='M56.3895%2030.2673V37.9593L59.6617%2035.7293C60.8149%2034.9532%2060.8149%2033.2636%2059.6617%2032.4875L56.3895%2030.2673Z'%20stroke='url(%23paint10_linear_10_4065)'%20stroke-width='1.5'/%3e%3cg%20opacity='0.3'%3e%3cpath%20d='M58.8727%2030.2673V37.9593L62.1351%2035.7293C63.2883%2034.9532%2063.2883%2033.2636%2062.1351%2032.4875L58.8727%2030.2673Z'%20stroke='url(%23paint11_linear_10_4065)'%20stroke-width='1.5'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_10_4065'%20x1='32.3586'%20y1='23.7317'%20x2='32.3586'%20y2='52.8076'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_10_4065'%20x1='32.3586'%20y1='13.6786'%20x2='32.3586'%20y2='42.7545'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_10_4065'%20x1='32.3586'%20y1='7.88708'%20x2='32.3586'%20y2='36.963'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint3_linear_10_4065'%20x1='32.3586'%20y1='1.00487'%20x2='32.3586'%20y2='30.0808'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint4_linear_10_4065'%20x1='32.3586'%20y1='27.9279'%20x2='32.3586'%20y2='57.0039'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint5_linear_10_4065'%20x1='55.5149'%20y1='35.513'%20x2='56.5734'%20y2='34.8105'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23B7BDC2'/%3e%3cstop%20offset='1'%20stop-color='%23A8ADB0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint6_linear_10_4065'%20x1='29.8838'%20y1='48.873'%20x2='34.303'%20y2='48.873'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238399A7'/%3e%3cstop%20offset='1'%20stop-color='%23B7BDC2'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint7_linear_10_4065'%20x1='32.0138'%20y1='7.34981'%20x2='32.0138'%20y2='47.7327'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%230E77BC'%20stop-opacity='0'/%3e%3cstop%20offset='1'%20stop-color='%23009AFF'%20stop-opacity='0.760784'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint8_linear_10_4065'%20x1='1.9546'%20y1='34.1148'%20x2='7.61118'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint9_linear_10_4065'%20x1='-0.520374'%20y1='34.1148'%20x2='5.13621'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint10_linear_10_4065'%20x1='62.0558'%20y1='34.1148'%20x2='56.3993'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint11_linear_10_4065'%20x1='64.5301'%20y1='34.1148'%20x2='58.8735'%20y2='34.1148'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%236C8C99'/%3e%3cstop%20offset='0.884029'%20stop-color='%23576E77'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e", P0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAgCAYAAADjaQM7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH3SURBVHgBtVZLTsMwEH1OYAFCKOxYQGUWCNjBCSgnoDdoOQFwgvYI5QQchXICWCCVzwIEPUCEUFfgYRz6TeLaU5W3STT2+GXGz88B5oDukk7uKIEQEeaAiVBfX0EdQsxFxmhQhBqEEJNtd6nBD60I1a0uVQWpcrIoHrcvjnAuSIWSTLbC4P16nYx99rGRHqk0JF9UmYnRzMfWVsOrC66srKoB0vc9tYEABFf2A1QdQ0moUILJVFRs4Wgsdo+JyfTfl2vXuD0G+oEOsQgyWvKL4HsZp745XoHMEEYeKR+DnVnHwFuZCdwPRuLzS38byanC4lSPX84kG/ogAuHzy5lkLGmR92ULxu5WOskyuRO8ci6AUHNdrE4yE8svxwESl1+WSl8gdxdK/bK0MqPkt3AOpX5Z3kYlF0ZhiZLzWSCTyt1JxscgL5QCWTS/MArIC2VKIAsQRh5TfjlVmcAHQ5Gsr45vgxGZrYofISq8N0CLDM74/c03mRQaw/dRG60w+Da+diYROhSj1dtVt5Nxmxcp1HnRqivXGJz0DlRnRFZ5IrtXemqWQmoI7a8+rny/a5vcmWWFprLOT0hyH9r+2FeXGZn1QRbGja+KEGSk/HM0+GfRg3AmlIys8ky2fbXQKkKhX+iY9/aC7Nq8z1lwi4P4R9hqK490/gsTjbnHrj+4xQAAAABJRU5ErkJggg==", D0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAA8CAYAAAB8SnrYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAYnSURBVHgBnVhbbFRFGP7/s2e3UHpZAtpoFRuIYIgikkhEE2k0MeEJ+iCUB6EkRBMFrYkCJiZtIwmpvIAiT01sExMJNSk8EU0UiBLBqJQH5AW1hlsCCNvtAt222/Gfc5nzz+Vswb+dPXPm8n3/bWZnB6GarBvKw6ypThCwGkC0AGBL2IEFeh+m5xHAzFE41DaSBoHO1vahFhBTX2Kl3Fp7+wJk716B7PgNyEyMBTMq2Xqo5BrgXuNSmJjTLOv9RNTjIrIJNg524mS5q+7f4fycW+cIray6hIgmoQ5RengllOavJKsqPXC4fV86Qftgd6Zc7Jr3zxBkJouEGPwnEr1LAmFMrmQb4VZLG1Rq6smS17vj9gzXPDNR3DM/AB8DtwhLr9gab7oMs8b+gnL9olaxbOMonP/mdDIy8HnlbNPF/rz0s4iBNAuEbVEAgJoplWwD3Fy4oSCydc/JmHjh3EpX/Y0zOrhTc1cP/YmoSJeQa+fcPpeXSRIqQNpnyrf+bro4YPkbGJ1I57BkOlMDNxd3EMfkXI+0X5ujNBQcONBGxBwRulEEK0afVxmH2YULALm698hFYl1t4Q81WAGD+c6x4/boz+CTJXvnsvRPq0+fy72JYpVguoOri93r37su21uIQOSDnE+weEUPukiDs8Urj4LcWvwEj6emDiEeJMKG+JqWGpErYUXcBWnbmJMgnMS8rmmcFoP7s8pnKhnJLvSYVBHhaoi3kKSRQ/0PcOF++nabcAaaq+akRHDq4scTdf3TwMMnGgFW4xHBDJhvATjVq0aIEaFI2jDp9e8PDBRYUsVkeICP2nxMJ6hCiNpDf0ETWqQT6PFCN7DZIMz+8M2zxmKEycoTzY/A7l3vW/0Dn/XC0089GTS9tWkDvEkl7tfXQRW3LyDwof6DsObVlw1LkNpWE8HigE3W17yy2sRnCy1FPtnVGfC3bX6bgadIgIzauUatA5d8+M7WQLPN23bCpavXdHS0q1zzmCTVAmmuJNh7oA+O/XDSHpCkfFXx4rHcBun33R91wrHvT8Leg30W6INIspuy3JRBldWP9+wDl+LVtEb9XJlYEG8hsoyOlQKQ0WLJ1tr6sjHzBmwCNS+STdt2QENDHQwc6LU60QFkHoZR7U9qHehnjkuXrwaZ89LKFfDBtq3aZIsI+RuGLmKp6gyylFNnfgsyaAdl0otExLC08ygq0ITPtoC5iRN9+kUfnPrldxj4vJcy69FAK4z2CRVM5PpD1MdO3ZBmQiQd23dCkYLeTyThQkXwGIGyILIKweEit6DKpI53d8LlK9cCoNjH8q/vq0H4+dfhAPi74z/Ct8d/CscwFyFsGBTzzu7luImpkcbAtWbt3E22egCXlmxn3wfGTsnBMQ5d7BbU69XEd4LHu6Iiil0aBxBB/2Wjf4tZBMjhEVTQFJgqhmtiT6ttBq0TiR+jatqDDagK25zR2DFE2rkIWYpVI2AZAJbrU9I8JPDQ8j+C6RLU4mCCawc3kdQDAs8JgCweLMgwEzgniS1AT2mV5LYdF2APhq+DG4ShBR63QKkLfO/U3gV3uVAuMZ+JBZ5nQmiiZblxXk8D11zkzbAaTY1VTQj224XHIGmXv5NH5P2CloqGJSZ4+L3EtRXqGZcpulOipgIR4MhkzXzLHTa6kYIOlyQE4aUIgQ3TVQKcGJ/dzFzBvhx4Rgg9v4UDnGfTvblLZe2IB7X+/lLjEpjGXAgejROcjBFp1xMGeFIHump7nCyoHPWgv60w7dWcKOaXaXcQmtmgB05Rqw/QwEtNq2A6V98PhzZG90U4tWVs7rOFKb9eC1RkBnOP7vf4k7tninx/t2lVgbTvke8hATGRFT3XF7TBpF/HLph0i3g+mRIElm4iC4vWy7duiSnbkzu784OnxTNvwHjDotaa4p905xPfNjo2N4dUco1we+F6mM42dMPh9b1xe0YbdX7wJJGM3pm34gWyYFbNnSvspJAM46te0O1W6aHnofjYa3RPV7uLgyejTGn/uoVmdtHtY0eOLpZq6fbKp5tIX177YOhnuXbKtc1wl9JRUJLIOMZumZlAI8quJT3X0dtyKvmwQ4zIBSrXEEyU9sORLYU0iP8AEj8wt/SkQW0AAAAASUVORK5CYII=";
3
+ function v2() {
4
+ return v2 = Object.assign ? Object.assign.bind() : function(t) {
5
+ for (var e = 1; e < arguments.length; e++) {
6
+ var a = arguments[e];
7
+ for (var s in a) ({}).hasOwnProperty.call(a, s) && (t[s] = a[s]);
8
+ }
9
+ return t;
10
+ }, v2.apply(null, arguments);
11
+ }
12
+ const O0 = {
13
+ locale: "zh_CN",
14
+ today: "今天",
15
+ now: "此刻",
16
+ backToToday: "返回今天",
17
+ ok: "确定",
18
+ timeSelect: "选择时间",
19
+ dateSelect: "选择日期",
20
+ weekSelect: "选择周",
21
+ clear: "清除",
22
+ month: "月",
23
+ year: "年",
24
+ previousMonth: "上个月 (翻页上键)",
25
+ nextMonth: "下个月 (翻页下键)",
26
+ monthSelect: "选择月份",
27
+ yearSelect: "选择年份",
28
+ decadeSelect: "选择年代",
29
+ yearFormat: "YYYY年",
30
+ dayFormat: "D日",
31
+ dateFormat: "YYYY年M月D日",
32
+ dateTimeFormat: "YYYY年M月D日 HH时mm分ss秒",
33
+ previousYear: "上一年 (Control键加左方向键)",
34
+ nextYear: "下一年 (Control键加右方向键)",
35
+ previousDecade: "上一年代",
36
+ nextDecade: "下一年代",
37
+ previousCentury: "上一世纪",
38
+ nextCentury: "下一世纪"
39
+ }, F0 = {
40
+ placeholder: "请选择时间",
41
+ rangePlaceholder: ["开始时间", "结束时间"]
42
+ }, O2 = {
43
+ lang: v2({
44
+ placeholder: "请选择日期",
45
+ yearPlaceholder: "请选择年份",
46
+ quarterPlaceholder: "请选择季度",
47
+ monthPlaceholder: "请选择月份",
48
+ weekPlaceholder: "请选择周",
49
+ rangePlaceholder: ["开始日期", "结束日期"],
50
+ rangeYearPlaceholder: ["开始年份", "结束年份"],
51
+ rangeMonthPlaceholder: ["开始月份", "结束月份"],
52
+ rangeQuarterPlaceholder: ["开始季度", "结束季度"],
53
+ rangeWeekPlaceholder: ["开始周", "结束周"]
54
+ }, O0),
55
+ timePickerLocale: v2({}, F0)
56
+ };
57
+ O2.lang.ok = "确定";
58
+ const O = [];
59
+ for (let t = 0; t < 256; ++t)
60
+ O.push((t + 256).toString(16).slice(1));
61
+ function I0(t, e = 0) {
62
+ return (O[t[e + 0]] + O[t[e + 1]] + O[t[e + 2]] + O[t[e + 3]] + "-" + O[t[e + 4]] + O[t[e + 5]] + "-" + O[t[e + 6]] + O[t[e + 7]] + "-" + O[t[e + 8]] + O[t[e + 9]] + "-" + O[t[e + 10]] + O[t[e + 11]] + O[t[e + 12]] + O[t[e + 13]] + O[t[e + 14]] + O[t[e + 15]]).toLowerCase();
63
+ }
64
+ let k2;
65
+ const B0 = new Uint8Array(16);
66
+ function R0() {
67
+ if (!k2) {
68
+ if (typeof crypto > "u" || !crypto.getRandomValues)
69
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
70
+ k2 = crypto.getRandomValues.bind(crypto);
71
+ }
72
+ return k2(B0);
73
+ }
74
+ const U0 = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), $2 = { randomUUID: U0 };
75
+ function m2(t, e, a) {
76
+ var i;
77
+ if ($2.randomUUID && !t)
78
+ return $2.randomUUID();
79
+ t = t || {};
80
+ const s = t.random ?? ((i = t.rng) == null ? void 0 : i.call(t)) ?? R0();
81
+ if (s.length < 16)
82
+ throw new Error("Random bytes length must be >= 16");
83
+ return s[6] = s[6] & 15 | 64, s[8] = s[8] & 63 | 128, I0(s);
84
+ }
85
+ const H0 = { class: "sys-VideoFrame-container-jessibuca" }, z0 = { class: "sys-VideoFrame-content" }, G0 = ["id"], j0 = { class: "sys-VideoFrame-Item-top-btns" }, Z0 = { class: "sys-VideoFrame-playbackItem" }, Y0 = ["id"], $0 = {
86
+ key: 0,
87
+ class: "sys-VideoFrame-Item-hzh"
88
+ }, N0 = ["id"], X0 = { class: "sys-VideoFrame-Half-Screen-top" }, W0 = { class: "sys-VideoFrame-Half-Screen-top-btns" }, J0 = { class: "sys-VideoFrame-playbackItem" }, Q0 = {
89
+ __name: "videoFrame",
90
+ props: {
91
+ playbackType: {
92
+ type: Boolean,
93
+ default: !1
94
+ },
95
+ mouseType: {
96
+ type: Boolean,
97
+ default: !0
98
+ },
99
+ smallType: {
100
+ type: Boolean,
101
+ default: !1
102
+ },
103
+ moveType: {
104
+ type: Boolean,
105
+ default: !1
106
+ },
107
+ zpType: {
108
+ type: Boolean,
109
+ default: !0
110
+ },
111
+ ytType: {
112
+ type: Boolean,
113
+ default: !0
114
+ },
115
+ hfType: {
116
+ type: Boolean,
117
+ default: !0
118
+ },
119
+ qpType: {
120
+ type: Boolean,
121
+ default: !0
122
+ },
123
+ bpType: {
124
+ type: Boolean,
125
+ default: !0
126
+ },
127
+ qxType: {
128
+ type: Boolean,
129
+ default: !0
130
+ },
131
+ // 半屏状态
132
+ HalfFull: {
133
+ type: Boolean,
134
+ default: !1
135
+ },
136
+ // 全屏状态
137
+ Full: {
138
+ type: Boolean,
139
+ default: !1
140
+ },
141
+ // 云台控制状态
142
+ ControlType: {
143
+ type: Boolean,
144
+ default: !1
145
+ },
146
+ width: {
147
+ type: String,
148
+ default: "346px"
149
+ },
150
+ height: {
151
+ type: String,
152
+ default: "195px"
153
+ },
154
+ HalfFullWidth: {
155
+ type: String,
156
+ default: "1263px"
157
+ },
158
+ HalfFullHeight: {
159
+ type: String,
160
+ default: "627px"
161
+ },
162
+ styleColor: {
163
+ type: String,
164
+ default: "rgba(0, 149, 255, 1)"
165
+ },
166
+ popupBackgroundColor: {
167
+ type: String,
168
+ default: "#2f3f50"
169
+ },
170
+ popupInnerColor: {
171
+ type: String,
172
+ default: "rgba(18, 37, 58, 0.3)"
173
+ },
174
+ popupInnerOpacityColor: {
175
+ type: String,
176
+ default: "#edffff30"
177
+ },
178
+ // 颜色主题-目前支持绿色和蓝色
179
+ styleType: {
180
+ type: String,
181
+ default: "blue"
182
+ },
183
+ title: {
184
+ type: String,
185
+ default: "摄像机:实时视频"
186
+ }
187
+ },
188
+ emits: [
189
+ "setFull",
190
+ "setHalfFull",
191
+ "setScreenshot",
192
+ "setClose",
193
+ "update:HalfFull",
194
+ "update:Full",
195
+ "setControlType",
196
+ "update:ControlType",
197
+ "setplaybackTime"
198
+ ],
199
+ setup(t, { emit: e }) {
200
+ const a = t, s = e, i = o0({
201
+ posX: window.innerWidth / 2,
202
+ // 初始X位置
203
+ posY: window.innerHeight / 2,
204
+ // 初始Y位置
205
+ isDragging: !1,
206
+ // 是否正在拖动
207
+ dragOffsetX: 0,
208
+ // X偏移量
209
+ dragOffsetY: 0,
210
+ // Y偏移量
211
+ posX1: window.innerWidth / 2,
212
+ // 初始X位置
213
+ posY1: window.innerHeight / 2,
214
+ // 初始Y位置
215
+ isDragging1: !1,
216
+ // 是否正在拖动
217
+ dragOffsetX1: 0,
218
+ // X偏移量
219
+ dragOffsetY1: 0
220
+ // Y偏移量
221
+ }), l = X(() => a.moveType && !c.value ? {
222
+ top: `${i.posY1}px`,
223
+ left: `${i.posX1}px`,
224
+ transform: "translate(-50%, -50%)",
225
+ position: "absolute",
226
+ zIndex: 9
227
+ } : _.value ? {
228
+ top: `${i.posY1}px`,
229
+ left: `${i.posX1}px`,
230
+ transform: "translate(-50%, -50%)",
231
+ position: "fixed",
232
+ zIndex: 9
233
+ } : null), r = X(() => a.smallType ? {
234
+ width: a.HalfFullWidth,
235
+ height: a.HalfFullHeight,
236
+ transform: "translate(-50%, -50%)"
237
+ } : {
238
+ top: i.posY + "px",
239
+ left: i.posX + "px",
240
+ width: a.HalfFullWidth,
241
+ height: a.HalfFullHeight,
242
+ transform: "translate(-50%, -50%)"
243
+ }), p = X(() => _.value ? {
244
+ top: "0px",
245
+ left: "7px",
246
+ transform: "translate(-50%, -50%)",
247
+ position: "fixed",
248
+ zIndex: 9999999,
249
+ width: "1930px",
250
+ height: "1009px"
251
+ } : {
252
+ width: a.width,
253
+ height: a.height,
254
+ display: c.value && a.moveType ? "none" : "block"
255
+ }), c = C(a.HalfFull), _ = C(a.Full), v = C(a.ControlType), w = C(null), k = C(null), g = C(null), f = C(m2()), E = C(m2()), B = C(m2()), x = C(!1), M = C(), S = C(!1), A = (d) => {
256
+ S.value = !1, M.value = null;
257
+ const o = /* @__PURE__ */ new Date(), h = new Date(o.getTime() - d * 60 * 1e3);
258
+ s("setplaybackTime", dayjs(h).format("YYYY-MM-DD HH:mm:ss"));
259
+ }, P = (d) => {
260
+ S.value = !1, M.value = null, s("setplaybackTime", dayjs(d).format("YYYY-MM-DD HH:mm:ss"));
261
+ }, Y = (d) => {
262
+ i.isDragging = !0, i.dragOffsetX = d.clientX - i.posX, i.dragOffsetY = d.clientY - i.posY, document.addEventListener("mousemove", $), document.addEventListener("mouseup", j);
263
+ }, $ = (d) => {
264
+ i.isDragging && (i.posX = d.clientX - i.dragOffsetX, i.posY = d.clientY - i.dragOffsetY);
265
+ }, j = () => {
266
+ i.isDragging = !1, document.removeEventListener("mousemove", $), document.removeEventListener("mouseup", j);
267
+ }, d2 = (d) => {
268
+ _.value || (i.isDragging1 = !0, i.dragOffsetX1 = d.clientX - i.posX1, i.dragOffsetY1 = d.clientY - i.posY1, document.addEventListener("mousemove", c2), document.addEventListener("mouseup", F));
269
+ }, c2 = (d) => {
270
+ i.isDragging1 && (i.posX1 = d.clientX - i.dragOffsetX1, i.posY1 = d.clientY - i.dragOffsetY1);
271
+ }, F = () => {
272
+ i.isDragging1 = !1, document.removeEventListener("mousemove", c2), document.removeEventListener("mouseup", F);
273
+ }, q = () => {
274
+ v.value = !v.value, s("setControlType", v.value), s("update:ControlType", v.value);
275
+ };
276
+ W(
277
+ () => a.ControlType,
278
+ (d, o) => {
279
+ v.value = d, s("setControlType", v.value);
280
+ }
281
+ );
282
+ const p2 = () => {
283
+ c.value = !c.value, s("setHalfFull", c.value), i.posX = window.innerWidth / 2, i.posY = window.innerHeight / 2, i2(c.value), s("update:HalfFull", c.value);
284
+ };
285
+ W(
286
+ () => a.HalfFull,
287
+ (d, o) => {
288
+ console.log(d), c.value = d, s("setHalfFull", c.value), i.posX = window.innerWidth / 2, i.posY = window.innerHeight / 2, i2(c.value);
289
+ }
290
+ );
291
+ const i2 = (d) => {
292
+ const o = document.getElementById(f.value), h = document.getElementById(E.value);
293
+ if (!o || !h) {
294
+ console.error("Elements not found.");
295
+ return;
296
+ }
297
+ let n = document.getElementById(B.value);
298
+ if (n || (n = document.getElementById(B.value)), !n) {
299
+ console.error("sys-VideoFrame-Item-center not found.");
300
+ return;
301
+ }
302
+ d ? (n.parentNode.removeChild(n), h.appendChild(n)) : h.contains(n) && (h.removeChild(n), o.appendChild(n));
303
+ };
304
+ document.addEventListener("fullscreenchange", () => {
305
+ _.value = document.fullscreenElement;
306
+ });
307
+ const s2 = () => {
308
+ s("setClose");
309
+ }, h2 = () => {
310
+ a.mouseType && (x.value = !0);
311
+ }, L2 = () => {
312
+ a.mouseType && (x.value = !1);
313
+ };
314
+ return g2(() => {
315
+ a.styleType === "green" ? (document.documentElement.style.setProperty("--sys-VideoFrame-Popup-border-color", "rgba(137, 176, 153, 1)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-background-color", "rgba(80, 80, 80, 1)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-select-color", "rgba(137, 176, 153, 1)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-inner-color", "rgba(198, 255, 222, 0.2)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-inner-opacity-color", "#edffff30")) : a.styleType === "blue" ? (document.documentElement.style.setProperty("--sys-VideoFrame-Popup-border-color", "rgba(0, 149, 255, 1)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-background-color", "#2f3f50"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-select-color", "rgba(0, 149, 255, 1)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-inner-color", "rgba(18, 37, 58, 0.3)"), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-inner-opacity-color", "#edffff30")) : a.styleType === "customize" && (document.documentElement.style.setProperty("--sys-VideoFrame-Popup-border-color", a.styleColor), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-background-color", a.popupBackgroundColor), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-select-color", a.styleColor), document.documentElement.style.setProperty("--sys-VideoFrame-Popup-inner-color", a.popupInnerColor), document.documentElement.style.setProperty(
316
+ "--sys-VideoFrame-Popup-inner-opacity-color",
317
+ a.popupInnerOpacityColor
318
+ ));
319
+ }), (d, o) => {
320
+ const h = C2("a-tooltip"), n = C2("a-date-picker"), b = C2("a-popover");
321
+ return m(), T("div", H0, [
322
+ u("div", {
323
+ style: f2(l.value),
324
+ onMouseenter: h2,
325
+ onMouseleave: L2
326
+ }, [
327
+ u("div", {
328
+ ref_key: "fullscreenElement",
329
+ ref: g,
330
+ class: "sys-VideoFrame",
331
+ style: f2(p.value)
332
+ }, [
333
+ u("div", z0, [
334
+ u("div", {
335
+ ref_key: "videoItemRef",
336
+ ref: w,
337
+ id: f.value,
338
+ class: r2(c.value ? "sys-VideoFrame-Item hzh" : "sys-VideoFrame-Item")
339
+ }, [
340
+ M2(u("div", {
341
+ class: "sys-VideoFrame-Item-top",
342
+ onMousedown: d2
343
+ }, [
344
+ u("h3", null, z(a.title), 1),
345
+ u("div", j0, [
346
+ a.ytType ? (m(), U(h, {
347
+ key: 0,
348
+ color: "rgba(22, 30, 40, 0.75)"
349
+ }, {
350
+ title: L(() => [...o[12] || (o[12] = [
351
+ N("云台控制", -1)
352
+ ])]),
353
+ default: L(() => [
354
+ v.value ? (m(), T("div", {
355
+ key: 0,
356
+ class: "sys-active-yt videoIcon",
357
+ onClick: q
358
+ })) : (m(), T("div", {
359
+ key: 1,
360
+ class: "sys-yt videoIcon",
361
+ onClick: q
362
+ }))
363
+ ]),
364
+ _: 1
365
+ })) : D("", !0),
366
+ c.value ? D("", !0) : (m(), U(b, {
367
+ key: 1,
368
+ open: S.value,
369
+ "onUpdate:open": o[5] || (o[5] = (y) => S.value = y),
370
+ trigger: "click",
371
+ overlayClassName: "sys-VideoFrame-popover",
372
+ placement: "bottom"
373
+ }, {
374
+ content: L(() => [
375
+ u("div", {
376
+ class: "sys-VideoFrame-playbackItem",
377
+ onClick: o[0] || (o[0] = (y) => A(10))
378
+ }, "近十分钟"),
379
+ u("div", {
380
+ class: "sys-VideoFrame-playbackItem",
381
+ onClick: o[1] || (o[1] = (y) => A(60))
382
+ }, "近一小时"),
383
+ u("div", {
384
+ class: "sys-VideoFrame-playbackItem",
385
+ onClick: o[2] || (o[2] = (y) => A(180))
386
+ }, "近三小时"),
387
+ u("div", Z0, [
388
+ o[13] || (o[13] = u("div", { class: "sys-VideoFrame-playbackItem-box" }, "自定义", -1)),
389
+ K(n, {
390
+ class: "sys-VideoFrame-picker",
391
+ popupClassName: "sys-VideoFrame-Popup",
392
+ locale: Y2(O2),
393
+ value: M.value,
394
+ "onUpdate:value": o[3] || (o[3] = (y) => M.value = y),
395
+ "show-time": "",
396
+ placeholder: "",
397
+ onOk: P
398
+ }, null, 8, ["locale", "value"])
399
+ ])
400
+ ]),
401
+ default: L(() => [
402
+ a.hfType && !_.value ? (m(), U(h, {
403
+ key: 0,
404
+ color: "rgba(22, 30, 40, 0.75)"
405
+ }, {
406
+ title: L(() => [...o[14] || (o[14] = [
407
+ N("回放", -1)
408
+ ])]),
409
+ default: L(() => [
410
+ u("div", {
411
+ class: "sys-hf videoIcon",
412
+ onClick: o[4] || (o[4] = (...y) => d.toggleDropdown && d.toggleDropdown(...y))
413
+ })
414
+ ]),
415
+ _: 1
416
+ })) : D("", !0)
417
+ ]),
418
+ _: 1
419
+ }, 8, ["open"])),
420
+ a.qxType ? (m(), U(h, {
421
+ key: 2,
422
+ color: "rgba(22, 30, 40, 0.75)"
423
+ }, {
424
+ title: L(() => [...o[15] || (o[15] = [
425
+ N("关闭", -1)
426
+ ])]),
427
+ default: L(() => [
428
+ u("div", {
429
+ class: "sys-close videoIcon",
430
+ onClick: s2
431
+ })
432
+ ]),
433
+ _: 1
434
+ })) : D("", !0)
435
+ ])
436
+ ], 544), [
437
+ [V2, !1]
438
+ ]),
439
+ u("div", {
440
+ class: "sys-VideoFrame-Item-center",
441
+ id: B.value
442
+ }, [
443
+ r0(d.$slots, "VideoContent")
444
+ ], 8, Y0),
445
+ c.value ? (m(), T("div", $0, " 以“画中画”模式播放 ")) : D("", !0)
446
+ ], 10, G0)
447
+ ])
448
+ ], 4),
449
+ M2(u("div", {
450
+ class: "sys-VideoFrame-Half-Screen",
451
+ style: f2(r.value),
452
+ onMousedown: Y
453
+ }, [
454
+ o[20] || (o[20] = u("div", { class: "sys-VideoFrame-Half-Screen-one" }, null, -1)),
455
+ o[21] || (o[21] = u("div", { class: "sys-VideoFrame-Half-Screen-two" }, null, -1)),
456
+ o[22] || (o[22] = u("div", { class: "sys-VideoFrame-Half-Screen-three" }, null, -1)),
457
+ u("div", {
458
+ class: "sys-VideoFrame-Half-Screen-content",
459
+ id: E.value,
460
+ ref_key: "videoItemHalfRef",
461
+ ref: k
462
+ }, [
463
+ M2(u("div", X0, [
464
+ u("h3", null, z(a.title), 1),
465
+ u("div", W0, [
466
+ a.ytType && !t.playbackType ? (m(), U(h, {
467
+ key: 0,
468
+ color: "rgba(22, 30, 40, 0.75)"
469
+ }, {
470
+ title: L(() => [...o[16] || (o[16] = [
471
+ N("云台控制", -1)
472
+ ])]),
473
+ default: L(() => [
474
+ v.value ? (m(), T("div", {
475
+ key: 0,
476
+ class: "sys-active-yt videoIcon",
477
+ onClick: q
478
+ })) : (m(), T("div", {
479
+ key: 1,
480
+ class: "sys-yt videoIcon",
481
+ onClick: q
482
+ }))
483
+ ]),
484
+ _: 1
485
+ })) : D("", !0),
486
+ a.hfType && c.value && !_.value ? (m(), U(b, {
487
+ key: 1,
488
+ open: S.value,
489
+ "onUpdate:open": o[11] || (o[11] = (y) => S.value = y),
490
+ trigger: "click",
491
+ overlayClassName: "sys-VideoFrame-popover",
492
+ placement: "bottom"
493
+ }, {
494
+ content: L(() => [
495
+ u("div", {
496
+ class: "sys-VideoFrame-playbackItem",
497
+ onClick: o[6] || (o[6] = (y) => A(10))
498
+ }, "近十分钟"),
499
+ u("div", {
500
+ class: "sys-VideoFrame-playbackItem",
501
+ onClick: o[7] || (o[7] = (y) => A(60))
502
+ }, "近一小时"),
503
+ u("div", {
504
+ class: "sys-VideoFrame-playbackItem",
505
+ onClick: o[8] || (o[8] = (y) => A(180))
506
+ }, "近三小时"),
507
+ u("div", J0, [
508
+ o[17] || (o[17] = u("div", { class: "sys-VideoFrame-playbackItem-box" }, "自定义", -1)),
509
+ K(n, {
510
+ class: "sys-VideoFrame-picker",
511
+ popupClassName: "sys-VideoFrame-Popup",
512
+ locale: Y2(O2),
513
+ value: M.value,
514
+ "onUpdate:value": o[9] || (o[9] = (y) => M.value = y),
515
+ "show-time": "",
516
+ placeholder: "",
517
+ onOk: P
518
+ }, null, 8, ["locale", "value"])
519
+ ])
520
+ ]),
521
+ default: L(() => [
522
+ a.hfType ? (m(), U(h, {
523
+ key: 0,
524
+ color: "rgba(22, 30, 40, 0.75)"
525
+ }, {
526
+ title: L(() => [...o[18] || (o[18] = [
527
+ N("回放", -1)
528
+ ])]),
529
+ default: L(() => [
530
+ u("div", {
531
+ class: "sys-hf videoIcon",
532
+ onClick: o[10] || (o[10] = (...y) => d.toggleDropdown && d.toggleDropdown(...y))
533
+ })
534
+ ]),
535
+ _: 1
536
+ })) : D("", !0)
537
+ ]),
538
+ _: 1
539
+ }, 8, ["open"])) : D("", !0),
540
+ !_.value && a.bpType ? (m(), U(h, {
541
+ key: 2,
542
+ color: "rgba(22, 30, 40, 0.75)"
543
+ }, {
544
+ title: L(() => [
545
+ N(z(c.value ? "非半屏" : "半屏"), 1)
546
+ ]),
547
+ default: L(() => [
548
+ c.value ? (m(), T("div", {
549
+ key: 0,
550
+ class: "sys-active-bp videoIcon",
551
+ onClick: p2
552
+ })) : (m(), T("div", {
553
+ key: 1,
554
+ class: "sys-bp videoIcon",
555
+ onClick: p2
556
+ }))
557
+ ]),
558
+ _: 1
559
+ })) : D("", !0),
560
+ a.qxType && !t.playbackType ? (m(), U(h, {
561
+ key: 3,
562
+ color: "rgba(22, 30, 40, 0.75)"
563
+ }, {
564
+ title: L(() => [...o[19] || (o[19] = [
565
+ N("关闭", -1)
566
+ ])]),
567
+ default: L(() => [
568
+ u("div", {
569
+ class: "sys-close videoIcon",
570
+ onClick: s2
571
+ })
572
+ ]),
573
+ _: 1
574
+ })) : D("", !0)
575
+ ])
576
+ ], 512), [
577
+ [V2, x.value]
578
+ ])
579
+ ], 8, N0)
580
+ ], 36), [
581
+ [V2, c.value]
582
+ ])
583
+ ], 36)
584
+ ]);
585
+ };
586
+ }
587
+ };
588
+ var l0 = typeof global == "object" && global && global.Object === Object && global, q0 = typeof self == "object" && self && self.Object === Object && self, e2 = l0 || q0 || Function("return this")(), y2 = e2.Symbol, u0 = Object.prototype, K0 = u0.hasOwnProperty, ee = u0.toString, o2 = y2 ? y2.toStringTag : void 0;
589
+ function te(t) {
590
+ var e = K0.call(t, o2), a = t[o2];
591
+ try {
592
+ t[o2] = void 0;
593
+ var s = !0;
594
+ } catch {
595
+ }
596
+ var i = ee.call(t);
597
+ return s && (e ? t[o2] = a : delete t[o2]), i;
598
+ }
599
+ var ae = Object.prototype, ie = ae.toString;
600
+ function se(t) {
601
+ return ie.call(t);
602
+ }
603
+ var oe = "[object Null]", re = "[object Undefined]", N2 = y2 ? y2.toStringTag : void 0;
604
+ function w2(t) {
605
+ return t == null ? t === void 0 ? re : oe : N2 && N2 in Object(t) ? te(t) : se(t);
606
+ }
607
+ function u2(t) {
608
+ return t != null && typeof t == "object";
609
+ }
610
+ var F2 = Array.isArray;
611
+ function Q(t) {
612
+ var e = typeof t;
613
+ return t != null && (e == "object" || e == "function");
614
+ }
615
+ function d0(t) {
616
+ return t;
617
+ }
618
+ var ne = "[object AsyncFunction]", le = "[object Function]", ue = "[object GeneratorFunction]", de = "[object Proxy]";
619
+ function U2(t) {
620
+ if (!Q(t))
621
+ return !1;
622
+ var e = w2(t);
623
+ return e == le || e == ue || e == ne || e == de;
624
+ }
625
+ var P2 = e2["__core-js_shared__"], X2 = (function() {
626
+ var t = /[^.]+$/.exec(P2 && P2.keys && P2.keys.IE_PROTO || "");
627
+ return t ? "Symbol(src)_1." + t : "";
628
+ })();
629
+ function ce(t) {
630
+ return !!X2 && X2 in t;
631
+ }
632
+ var pe = Function.prototype, he = pe.toString;
633
+ function Ce(t) {
634
+ if (t != null) {
635
+ try {
636
+ return he.call(t);
637
+ } catch {
638
+ }
639
+ try {
640
+ return t + "";
641
+ } catch {
642
+ }
643
+ }
644
+ return "";
645
+ }
646
+ var fe = /[\\^$.*+?()[\]{}|]/g, me = /^\[object .+?Constructor\]$/, ve = Function.prototype, ye = Object.prototype, _e = ve.toString, ge = ye.hasOwnProperty, we = RegExp(
647
+ "^" + _e.call(ge).replace(fe, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
648
+ );
649
+ function xe(t) {
650
+ if (!Q(t) || ce(t))
651
+ return !1;
652
+ var e = U2(t) ? we : me;
653
+ return e.test(Ce(t));
654
+ }
655
+ function Se(t, e) {
656
+ return t == null ? void 0 : t[e];
657
+ }
658
+ function H2(t, e) {
659
+ var a = Se(t, e);
660
+ return xe(a) ? a : void 0;
661
+ }
662
+ var W2 = Object.create, be = /* @__PURE__ */ (function() {
663
+ function t() {
664
+ }
665
+ return function(e) {
666
+ if (!Q(e))
667
+ return {};
668
+ if (W2)
669
+ return W2(e);
670
+ t.prototype = e;
671
+ var a = new t();
672
+ return t.prototype = void 0, a;
673
+ };
674
+ })();
675
+ function Le(t, e, a) {
676
+ switch (a.length) {
677
+ case 0:
678
+ return t.call(e);
679
+ case 1:
680
+ return t.call(e, a[0]);
681
+ case 2:
682
+ return t.call(e, a[0], a[1]);
683
+ case 3:
684
+ return t.call(e, a[0], a[1], a[2]);
685
+ }
686
+ return t.apply(e, a);
687
+ }
688
+ function Me(t, e) {
689
+ var a = -1, s = t.length;
690
+ for (e || (e = Array(s)); ++a < s; )
691
+ e[a] = t[a];
692
+ return e;
693
+ }
694
+ var Ve = 800, Te = 16, Ee = Date.now;
695
+ function Ae(t) {
696
+ var e = 0, a = 0;
697
+ return function() {
698
+ var s = Ee(), i = Te - (s - a);
699
+ if (a = s, i > 0) {
700
+ if (++e >= Ve)
701
+ return arguments[0];
702
+ } else
703
+ e = 0;
704
+ return t.apply(void 0, arguments);
705
+ };
706
+ }
707
+ function ke(t) {
708
+ return function() {
709
+ return t;
710
+ };
711
+ }
712
+ var _2 = (function() {
713
+ try {
714
+ var t = H2(Object, "defineProperty");
715
+ return t({}, "", {}), t;
716
+ } catch {
717
+ }
718
+ })(), Pe = _2 ? function(t, e) {
719
+ return _2(t, "toString", {
720
+ configurable: !0,
721
+ enumerable: !1,
722
+ value: ke(e),
723
+ writable: !0
724
+ });
725
+ } : d0, De = Ae(Pe), Oe = 9007199254740991, Fe = /^(?:0|[1-9]\d*)$/;
726
+ function c0(t, e) {
727
+ var a = typeof t;
728
+ return e = e ?? Oe, !!e && (a == "number" || a != "symbol" && Fe.test(t)) && t > -1 && t % 1 == 0 && t < e;
729
+ }
730
+ function z2(t, e, a) {
731
+ e == "__proto__" && _2 ? _2(t, e, {
732
+ configurable: !0,
733
+ enumerable: !0,
734
+ value: a,
735
+ writable: !0
736
+ }) : t[e] = a;
737
+ }
738
+ function x2(t, e) {
739
+ return t === e || t !== t && e !== e;
740
+ }
741
+ var Ie = Object.prototype, Be = Ie.hasOwnProperty;
742
+ function Re(t, e, a) {
743
+ var s = t[e];
744
+ (!(Be.call(t, e) && x2(s, a)) || a === void 0 && !(e in t)) && z2(t, e, a);
745
+ }
746
+ function Ue(t, e, a, s) {
747
+ var i = !a;
748
+ a || (a = {});
749
+ for (var l = -1, r = e.length; ++l < r; ) {
750
+ var p = e[l], c = void 0;
751
+ c === void 0 && (c = t[p]), i ? z2(a, p, c) : Re(a, p, c);
752
+ }
753
+ return a;
754
+ }
755
+ var J2 = Math.max;
756
+ function He(t, e, a) {
757
+ return e = J2(e === void 0 ? t.length - 1 : e, 0), function() {
758
+ for (var s = arguments, i = -1, l = J2(s.length - e, 0), r = Array(l); ++i < l; )
759
+ r[i] = s[e + i];
760
+ i = -1;
761
+ for (var p = Array(e + 1); ++i < e; )
762
+ p[i] = s[i];
763
+ return p[e] = a(r), Le(t, this, p);
764
+ };
765
+ }
766
+ function ze(t, e) {
767
+ return De(He(t, e, d0), t + "");
768
+ }
769
+ var Ge = 9007199254740991;
770
+ function p0(t) {
771
+ return typeof t == "number" && t > -1 && t % 1 == 0 && t <= Ge;
772
+ }
773
+ function G2(t) {
774
+ return t != null && p0(t.length) && !U2(t);
775
+ }
776
+ function je(t, e, a) {
777
+ if (!Q(a))
778
+ return !1;
779
+ var s = typeof e;
780
+ return (s == "number" ? G2(a) && c0(e, a.length) : s == "string" && e in a) ? x2(a[e], t) : !1;
781
+ }
782
+ function Ze(t) {
783
+ return ze(function(e, a) {
784
+ var s = -1, i = a.length, l = i > 1 ? a[i - 1] : void 0, r = i > 2 ? a[2] : void 0;
785
+ for (l = t.length > 3 && typeof l == "function" ? (i--, l) : void 0, r && je(a[0], a[1], r) && (l = i < 3 ? void 0 : l, i = 1), e = Object(e); ++s < i; ) {
786
+ var p = a[s];
787
+ p && t(e, p, s, l);
788
+ }
789
+ return e;
790
+ });
791
+ }
792
+ var Ye = Object.prototype;
793
+ function h0(t) {
794
+ var e = t && t.constructor, a = typeof e == "function" && e.prototype || Ye;
795
+ return t === a;
796
+ }
797
+ function $e(t, e) {
798
+ for (var a = -1, s = Array(t); ++a < t; )
799
+ s[a] = e(a);
800
+ return s;
801
+ }
802
+ var Ne = "[object Arguments]";
803
+ function Q2(t) {
804
+ return u2(t) && w2(t) == Ne;
805
+ }
806
+ var C0 = Object.prototype, Xe = C0.hasOwnProperty, We = C0.propertyIsEnumerable, I2 = Q2(/* @__PURE__ */ (function() {
807
+ return arguments;
808
+ })()) ? Q2 : function(t) {
809
+ return u2(t) && Xe.call(t, "callee") && !We.call(t, "callee");
810
+ };
811
+ function Je() {
812
+ return !1;
813
+ }
814
+ var f0 = typeof exports == "object" && exports && !exports.nodeType && exports, q2 = f0 && typeof module == "object" && module && !module.nodeType && module, Qe = q2 && q2.exports === f0, K2 = Qe ? e2.Buffer : void 0, qe = K2 ? K2.isBuffer : void 0, m0 = qe || Je, Ke = "[object Arguments]", e3 = "[object Array]", t3 = "[object Boolean]", a3 = "[object Date]", i3 = "[object Error]", s3 = "[object Function]", o3 = "[object Map]", r3 = "[object Number]", n3 = "[object Object]", l3 = "[object RegExp]", u3 = "[object Set]", d3 = "[object String]", c3 = "[object WeakMap]", p3 = "[object ArrayBuffer]", h3 = "[object DataView]", C3 = "[object Float32Array]", f3 = "[object Float64Array]", m3 = "[object Int8Array]", v3 = "[object Int16Array]", y3 = "[object Int32Array]", _3 = "[object Uint8Array]", g3 = "[object Uint8ClampedArray]", w3 = "[object Uint16Array]", x3 = "[object Uint32Array]", V = {};
815
+ V[C3] = V[f3] = V[m3] = V[v3] = V[y3] = V[_3] = V[g3] = V[w3] = V[x3] = !0;
816
+ V[Ke] = V[e3] = V[p3] = V[t3] = V[h3] = V[a3] = V[i3] = V[s3] = V[o3] = V[r3] = V[n3] = V[l3] = V[u3] = V[d3] = V[c3] = !1;
817
+ function S3(t) {
818
+ return u2(t) && p0(t.length) && !!V[w2(t)];
819
+ }
820
+ function b3(t) {
821
+ return function(e) {
822
+ return t(e);
823
+ };
824
+ }
825
+ var v0 = typeof exports == "object" && exports && !exports.nodeType && exports, n2 = v0 && typeof module == "object" && module && !module.nodeType && module, L3 = n2 && n2.exports === v0, D2 = L3 && l0.process, e0 = (function() {
826
+ try {
827
+ var t = n2 && n2.require && n2.require("util").types;
828
+ return t || D2 && D2.binding && D2.binding("util");
829
+ } catch {
830
+ }
831
+ })(), t0 = e0 && e0.isTypedArray, y0 = t0 ? b3(t0) : S3;
832
+ function M3(t, e) {
833
+ var a = F2(t), s = !a && I2(t), i = !a && !s && m0(t), l = !a && !s && !i && y0(t), r = a || s || i || l, p = r ? $e(t.length, String) : [], c = p.length;
834
+ for (var _ in t)
835
+ r && // Safari 9 has enumerable `arguments.length` in strict mode.
836
+ (_ == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
837
+ i && (_ == "offset" || _ == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
838
+ l && (_ == "buffer" || _ == "byteLength" || _ == "byteOffset") || // Skip index properties.
839
+ c0(_, c)) || p.push(_);
840
+ return p;
841
+ }
842
+ function V3(t, e) {
843
+ return function(a) {
844
+ return t(e(a));
845
+ };
846
+ }
847
+ function T3(t) {
848
+ var e = [];
849
+ if (t != null)
850
+ for (var a in Object(t))
851
+ e.push(a);
852
+ return e;
853
+ }
854
+ var E3 = Object.prototype, A3 = E3.hasOwnProperty;
855
+ function k3(t) {
856
+ if (!Q(t))
857
+ return T3(t);
858
+ var e = h0(t), a = [];
859
+ for (var s in t)
860
+ s == "constructor" && (e || !A3.call(t, s)) || a.push(s);
861
+ return a;
862
+ }
863
+ function _0(t) {
864
+ return G2(t) ? M3(t) : k3(t);
865
+ }
866
+ var l2 = H2(Object, "create");
867
+ function P3() {
868
+ this.__data__ = l2 ? l2(null) : {}, this.size = 0;
869
+ }
870
+ function D3(t) {
871
+ var e = this.has(t) && delete this.__data__[t];
872
+ return this.size -= e ? 1 : 0, e;
873
+ }
874
+ var O3 = "__lodash_hash_undefined__", F3 = Object.prototype, I3 = F3.hasOwnProperty;
875
+ function B3(t) {
876
+ var e = this.__data__;
877
+ if (l2) {
878
+ var a = e[t];
879
+ return a === O3 ? void 0 : a;
880
+ }
881
+ return I3.call(e, t) ? e[t] : void 0;
882
+ }
883
+ var R3 = Object.prototype, U3 = R3.hasOwnProperty;
884
+ function H3(t) {
885
+ var e = this.__data__;
886
+ return l2 ? e[t] !== void 0 : U3.call(e, t);
887
+ }
888
+ var z3 = "__lodash_hash_undefined__";
889
+ function G3(t, e) {
890
+ var a = this.__data__;
891
+ return this.size += this.has(t) ? 0 : 1, a[t] = l2 && e === void 0 ? z3 : e, this;
892
+ }
893
+ function J(t) {
894
+ var e = -1, a = t == null ? 0 : t.length;
895
+ for (this.clear(); ++e < a; ) {
896
+ var s = t[e];
897
+ this.set(s[0], s[1]);
898
+ }
899
+ }
900
+ J.prototype.clear = P3;
901
+ J.prototype.delete = D3;
902
+ J.prototype.get = B3;
903
+ J.prototype.has = H3;
904
+ J.prototype.set = G3;
905
+ function j3() {
906
+ this.__data__ = [], this.size = 0;
907
+ }
908
+ function S2(t, e) {
909
+ for (var a = t.length; a--; )
910
+ if (x2(t[a][0], e))
911
+ return a;
912
+ return -1;
913
+ }
914
+ var Z3 = Array.prototype, Y3 = Z3.splice;
915
+ function $3(t) {
916
+ var e = this.__data__, a = S2(e, t);
917
+ if (a < 0)
918
+ return !1;
919
+ var s = e.length - 1;
920
+ return a == s ? e.pop() : Y3.call(e, a, 1), --this.size, !0;
921
+ }
922
+ function N3(t) {
923
+ var e = this.__data__, a = S2(e, t);
924
+ return a < 0 ? void 0 : e[a][1];
925
+ }
926
+ function X3(t) {
927
+ return S2(this.__data__, t) > -1;
928
+ }
929
+ function W3(t, e) {
930
+ var a = this.__data__, s = S2(a, t);
931
+ return s < 0 ? (++this.size, a.push([t, e])) : a[s][1] = e, this;
932
+ }
933
+ function G(t) {
934
+ var e = -1, a = t == null ? 0 : t.length;
935
+ for (this.clear(); ++e < a; ) {
936
+ var s = t[e];
937
+ this.set(s[0], s[1]);
938
+ }
939
+ }
940
+ G.prototype.clear = j3;
941
+ G.prototype.delete = $3;
942
+ G.prototype.get = N3;
943
+ G.prototype.has = X3;
944
+ G.prototype.set = W3;
945
+ var g0 = H2(e2, "Map");
946
+ function J3() {
947
+ this.size = 0, this.__data__ = {
948
+ hash: new J(),
949
+ map: new (g0 || G)(),
950
+ string: new J()
951
+ };
952
+ }
953
+ function Q3(t) {
954
+ var e = typeof t;
955
+ return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null;
956
+ }
957
+ function b2(t, e) {
958
+ var a = t.__data__;
959
+ return Q3(e) ? a[typeof e == "string" ? "string" : "hash"] : a.map;
960
+ }
961
+ function q3(t) {
962
+ var e = b2(this, t).delete(t);
963
+ return this.size -= e ? 1 : 0, e;
964
+ }
965
+ function K3(t) {
966
+ return b2(this, t).get(t);
967
+ }
968
+ function et(t) {
969
+ return b2(this, t).has(t);
970
+ }
971
+ function tt(t, e) {
972
+ var a = b2(this, t), s = a.size;
973
+ return a.set(t, e), this.size += a.size == s ? 0 : 1, this;
974
+ }
975
+ function t2(t) {
976
+ var e = -1, a = t == null ? 0 : t.length;
977
+ for (this.clear(); ++e < a; ) {
978
+ var s = t[e];
979
+ this.set(s[0], s[1]);
980
+ }
981
+ }
982
+ t2.prototype.clear = J3;
983
+ t2.prototype.delete = q3;
984
+ t2.prototype.get = K3;
985
+ t2.prototype.has = et;
986
+ t2.prototype.set = tt;
987
+ var w0 = V3(Object.getPrototypeOf, Object), at = "[object Object]", it = Function.prototype, st = Object.prototype, x0 = it.toString, ot = st.hasOwnProperty, rt = x0.call(Object);
988
+ function nt(t) {
989
+ if (!u2(t) || w2(t) != at)
990
+ return !1;
991
+ var e = w0(t);
992
+ if (e === null)
993
+ return !0;
994
+ var a = ot.call(e, "constructor") && e.constructor;
995
+ return typeof a == "function" && a instanceof a && x0.call(a) == rt;
996
+ }
997
+ function lt() {
998
+ this.__data__ = new G(), this.size = 0;
999
+ }
1000
+ function ut(t) {
1001
+ var e = this.__data__, a = e.delete(t);
1002
+ return this.size = e.size, a;
1003
+ }
1004
+ function dt(t) {
1005
+ return this.__data__.get(t);
1006
+ }
1007
+ function ct(t) {
1008
+ return this.__data__.has(t);
1009
+ }
1010
+ var pt = 200;
1011
+ function ht(t, e) {
1012
+ var a = this.__data__;
1013
+ if (a instanceof G) {
1014
+ var s = a.__data__;
1015
+ if (!g0 || s.length < pt - 1)
1016
+ return s.push([t, e]), this.size = ++a.size, this;
1017
+ a = this.__data__ = new t2(s);
1018
+ }
1019
+ return a.set(t, e), this.size = a.size, this;
1020
+ }
1021
+ function a2(t) {
1022
+ var e = this.__data__ = new G(t);
1023
+ this.size = e.size;
1024
+ }
1025
+ a2.prototype.clear = lt;
1026
+ a2.prototype.delete = ut;
1027
+ a2.prototype.get = dt;
1028
+ a2.prototype.has = ct;
1029
+ a2.prototype.set = ht;
1030
+ var S0 = typeof exports == "object" && exports && !exports.nodeType && exports, a0 = S0 && typeof module == "object" && module && !module.nodeType && module, Ct = a0 && a0.exports === S0, i0 = Ct ? e2.Buffer : void 0;
1031
+ i0 && i0.allocUnsafe;
1032
+ function ft(t, e) {
1033
+ return t.slice();
1034
+ }
1035
+ var s0 = e2.Uint8Array;
1036
+ function mt(t) {
1037
+ var e = new t.constructor(t.byteLength);
1038
+ return new s0(e).set(new s0(t)), e;
1039
+ }
1040
+ function vt(t, e) {
1041
+ var a = mt(t.buffer);
1042
+ return new t.constructor(a, t.byteOffset, t.length);
1043
+ }
1044
+ function yt(t) {
1045
+ return typeof t.constructor == "function" && !h0(t) ? be(w0(t)) : {};
1046
+ }
1047
+ function _t(t) {
1048
+ return function(e, a, s) {
1049
+ for (var i = -1, l = Object(e), r = s(e), p = r.length; p--; ) {
1050
+ var c = r[++i];
1051
+ if (a(l[c], c, l) === !1)
1052
+ break;
1053
+ }
1054
+ return e;
1055
+ };
1056
+ }
1057
+ var gt = _t();
1058
+ function B2(t, e, a) {
1059
+ (a !== void 0 && !x2(t[e], a) || a === void 0 && !(e in t)) && z2(t, e, a);
1060
+ }
1061
+ function wt(t) {
1062
+ return u2(t) && G2(t);
1063
+ }
1064
+ function R2(t, e) {
1065
+ if (!(e === "constructor" && typeof t[e] == "function") && e != "__proto__")
1066
+ return t[e];
1067
+ }
1068
+ function xt(t) {
1069
+ return Ue(t, _0(t));
1070
+ }
1071
+ function St(t, e, a, s, i, l, r) {
1072
+ var p = R2(t, a), c = R2(e, a), _ = r.get(c);
1073
+ if (_) {
1074
+ B2(t, a, _);
1075
+ return;
1076
+ }
1077
+ var v = l ? l(p, c, a + "", t, e, r) : void 0, w = v === void 0;
1078
+ if (w) {
1079
+ var k = F2(c), g = !k && m0(c), f = !k && !g && y0(c);
1080
+ v = c, k || g || f ? F2(p) ? v = p : wt(p) ? v = Me(p) : g ? (w = !1, v = ft(c)) : f ? (w = !1, v = vt(c)) : v = [] : nt(c) || I2(c) ? (v = p, I2(p) ? v = xt(p) : (!Q(p) || U2(p)) && (v = yt(c))) : w = !1;
1081
+ }
1082
+ w && (r.set(c, v), i(v, c, s, l, r), r.delete(c)), B2(t, a, v);
1083
+ }
1084
+ function b0(t, e, a, s, i) {
1085
+ t !== e && gt(e, function(l, r) {
1086
+ if (i || (i = new a2()), Q(l))
1087
+ St(t, e, r, a, b0, s, i);
1088
+ else {
1089
+ var p = s ? s(R2(t, r), l, r + "", t, e, i) : void 0;
1090
+ p === void 0 && (p = l), B2(t, r, p);
1091
+ }
1092
+ }, _0);
1093
+ }
1094
+ var bt = Ze(function(t, e, a) {
1095
+ b0(t, e, a);
1096
+ });
1097
+ const L0 = (t, e) => {
1098
+ const a = t.__vccOpts || t;
1099
+ for (const [s, i] of e)
1100
+ a[s] = i;
1101
+ return a;
1102
+ }, Lt = { class: "JessibucaPlayer" }, Mt = ["id"], Vt = {
1103
+ __name: "JessibucaPlayer",
1104
+ props: {
1105
+ url: {
1106
+ type: String,
1107
+ required: !0
1108
+ },
1109
+ options: {
1110
+ type: Object,
1111
+ default: () => ({})
1112
+ }
1113
+ },
1114
+ setup(t, { expose: e }) {
1115
+ const a = {
1116
+ decoder: "./jesncrypt/decoder-pro.js",
1117
+ debug: !1,
1118
+ // 是否开启控制台调试打印
1119
+ debugLevel: "false",
1120
+ // debug模式下的日志级别,支持debug、warn,默认是warn
1121
+ videoBuffer: 0.1,
1122
+ // 设置缓冲时长,单位秒。
1123
+ videoBufferDelay: 0.3,
1124
+ // 设置最大缓冲延迟时长,单位秒,如果延迟超过该值,就会进行丢帧处理。
1125
+ isResize: !0,
1126
+ // 当为true的时候:视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边。 等同于 setScaleMode(1),当为false的时候:视频画面完全填充canvas区域,画面会被拉伸。等同于 setScaleMode(0)
1127
+ forceNoOffscreen: !1,
1128
+ // 是否不使用离屏模式(提升渲染能力)
1129
+ supportDblclickFullscreen: !1,
1130
+ // 是否支持屏幕的双击事件,触发全屏,取消全屏事件。
1131
+ loadingText: "加载中",
1132
+ // 加载提示文字。
1133
+ /* 超时配置 */
1134
+ timeout: 10,
1135
+ // 设置超时时长, 单位秒,在连接成功之前(loading)和播放中途(heart),如果超过设定时长无数据返回,则回调timeout事件
1136
+ mseWaitVideoCanplayTimeout: 3,
1137
+ // 流异常超时时长,不能比loadingTimeout大
1138
+ loadingTimeout: 3,
1139
+ // 设置超时时长, 单位秒,在刚开始播放的时候,在连接成功之前,如果超过设定时长无数据返回,则回调timeout事件
1140
+ loadingTimeoutReplay: !0,
1141
+ // 加载超时是否重试
1142
+ loadingTimeoutReplayTimes: 3,
1143
+ // 加载超时重试次数,-1无限重试
1144
+ heartTimeout: 5,
1145
+ // 设置超时时长, 单位秒,播放中途,如果超过设定时长无数据返回,则回调timeout事件
1146
+ heartTimeoutReplay: !0,
1147
+ // 播放超时是否重试
1148
+ heartTimeoutReplayTime: 5,
1149
+ // 播放超时重试次数,-1无限重试
1150
+ heartTimeoutReplayUseLastFrameShow: !0,
1151
+ // 播放过程中,超时重连时,是否使用最后一帧来显示。
1152
+ /* 解码配置 */
1153
+ useMSE: !1,
1154
+ // 是否开启MediaSource硬解码
1155
+ useWCS: !0,
1156
+ // 是否开启Webcodecs硬解码
1157
+ autoWasm: !0,
1158
+ // 是否在其他模式不支持的情况下,自动启用wasm
1159
+ useSIMD: !0,
1160
+ // 是否使用SIMD 软解码,仅仅wasm软解码的时候有效
1161
+ /* 音频配置 */
1162
+ muted: !1,
1163
+ // 是否静音。
1164
+ isNotMute: !1,
1165
+ // 是否开启声音,默认是关闭声音播放的。
1166
+ audioEngine: "worklet",
1167
+ // 音频解码引擎
1168
+ /* 渲染配置 */
1169
+ hasAudio: !1,
1170
+ // 是否包含音频
1171
+ useVideoRender: !0,
1172
+ // 是否使用video标签进行渲染
1173
+ useCanvasRender: !1,
1174
+ // 是否使用canvas标签进行渲染
1175
+ useWebGPU: !1,
1176
+ // true使用Webgpu进行渲染、false使用Webgl进行渲染
1177
+ /* 按钮配置 */
1178
+ hiddenControl: !1,
1179
+ // 隐藏控制栏
1180
+ controlAutoHide: !0,
1181
+ // 控制栏是否自动隐藏
1182
+ showBandwidth: !1,
1183
+ // 是否显示网速
1184
+ operateBtns: {
1185
+ // 配置底部操作按钮
1186
+ fullscreen: !0,
1187
+ // 是否显示全屏按钮
1188
+ screenshot: !0,
1189
+ // 是否显示截图按钮
1190
+ play: !0,
1191
+ // 是否显示播放暂停按钮
1192
+ audio: !0,
1193
+ // 是否显示声音按钮
1194
+ record: !0,
1195
+ // 是否显示录制按钮
1196
+ ptz: !1,
1197
+ // 是否显示PTZ轮盘按钮
1198
+ quality: !0,
1199
+ // 是否显示清晰度按钮
1200
+ close: !1,
1201
+ // 是否显示关闭按钮(会销毁播放器)
1202
+ zoom: !1,
1203
+ // 是否显示电子放大
1204
+ scale: !1,
1205
+ // 是否显示scale(拉伸、缩放)按钮
1206
+ performance: !1,
1207
+ // 是否显示性能按钮
1208
+ face: !1
1209
+ // 是否显示人脸识别按钮
1210
+ },
1211
+ extendOperateBtns: {
1212
+ // 添加自定义按钮
1213
+ },
1214
+ toolBar: {
1215
+ // 默认按钮配置(可替换或删除)
1216
+ screenshot: {
1217
+ icon: "path/to/your-icon.png",
1218
+ // 替换为自定义图标路径
1219
+ click: function() {
1220
+ player.screenshot();
1221
+ }
1222
+ }
1223
+ // 其他按钮配置...
1224
+ }
1225
+ }, s = t, i = C(null), l = o0({
1226
+ id: m2()
1227
+ }), r = C(null), p = X(() => document.getElementById(l.id)), c = X(() => ({
1228
+ ...a,
1229
+ container: p.value
1230
+ })), _ = X(() => bt({}, c.value, s.options)), v = () => {
1231
+ p.value && (r.value = new ResizeObserver(() => {
1232
+ i.value && i.value.resize();
1233
+ }), r.value.observe(p.value));
1234
+ }, w = () => {
1235
+ if (!p.value) {
1236
+ console.error("Jessibuca 播放器容器未找到");
1237
+ return;
1238
+ }
1239
+ try {
1240
+ i.value = new window.JessibucaPro(_.value), s.url && i.value.play(s.url);
1241
+ } catch (f) {
1242
+ console.error("初始化 Jessibuca 播放器失败:", f);
1243
+ }
1244
+ }, k = () => {
1245
+ i.value && (i.value.destroy(), i.value = null);
1246
+ }, g = () => {
1247
+ i.value && i.value.pause();
1248
+ };
1249
+ return W(
1250
+ () => s.url,
1251
+ (f, E) => {
1252
+ f && i.value && i.value.play(f);
1253
+ }
1254
+ ), g2(() => {
1255
+ setTimeout(() => {
1256
+ w();
1257
+ }, 1e3), v();
1258
+ }), n0(() => {
1259
+ k();
1260
+ }), e({
1261
+ destroyPlayer: k,
1262
+ pausePlayer: g
1263
+ }), (f, E) => (m(), T("div", Lt, [
1264
+ u("div", {
1265
+ id: l.id,
1266
+ style: { height: "100%" }
1267
+ }, [
1268
+ r0(f.$slots, "Content", {}, () => [
1269
+ E[0] || (E[0] = u("div", { class: "JessibucaPlayer-status" }, "暂无视频画面", -1))
1270
+ ], !0)
1271
+ ], 8, Mt)
1272
+ ]));
1273
+ }
1274
+ }, Tt = /* @__PURE__ */ L0(Vt, [["__scopeId", "data-v-ecc8060e"]]), Et = { class: "player" }, At = {
1275
+ __name: "videoItem",
1276
+ props: {
1277
+ deviceId: {
1278
+ type: String,
1279
+ default: "34020000001180000101"
1280
+ },
1281
+ channelId: {
1282
+ type: String,
1283
+ default: "34020000001320000033"
1284
+ },
1285
+ url: {
1286
+ type: String,
1287
+ default: ""
1288
+ }
1289
+ },
1290
+ setup(t, { expose: e }) {
1291
+ const a = t, s = C(null), i = C(!1), l = C(!1), r = C(!1), p = C(0), c = C(0), _ = C(""), v = C(""), w = C(["000000-240000-C"]), k = C(!1), g = C({
1292
+ cameraName: "摄像头",
1293
+ cameraType: "0"
1294
+ }), f = async (x) => {
1295
+ var $, j;
1296
+ l.value = !0, r.value = !0;
1297
+ const M = /* @__PURE__ */ new Date(), S = new Date(x), A = M.toDateString() === S.toDateString();
1298
+ let P;
1299
+ A ? P = M : (P = new Date(S), P.setHours(23, 59, 59, 0)), w.value = [`${dayjs(x).format("HHmmss")}-${dayjs(P).format("HHmmss")}-C`];
1300
+ const Y = await getVideoPlaybackUrl(
1301
+ a.deviceId,
1302
+ a.channelId,
1303
+ x,
1304
+ dayjs(P).format("YYYY-MM-DD HH:mm:ss")
1305
+ );
1306
+ ($ = Y.data) != null && $.flv && (url.value = (j = Y.data) == null ? void 0 : j.flv, c.value = dayjs(x).diff(dayjs(x).startOf("day"), "second") + 1, p.value = 1), _.value = x, v.value = dayjs(P).format("YYYY-MM-DD HH:mm:ss"), console.log(
1307
+ {
1308
+ startTime: x,
1309
+ endTime: dayjs(P).format("YYYY-MM-DD HH:mm:ss")
1310
+ },
1311
+ Y,
1312
+ "playback time range"
1313
+ );
1314
+ }, E = async () => {
1315
+ g.value.cameraName = "摄像头";
1316
+ };
1317
+ return e({
1318
+ handleDestroy: () => {
1319
+ var x;
1320
+ (x = s.value) == null || x.destroyPlayer();
1321
+ }
1322
+ }), W(
1323
+ () => l.value,
1324
+ (x, M) => {
1325
+ x || E();
1326
+ }
1327
+ ), g2(() => {
1328
+ E();
1329
+ }), (x, M) => (m(), U(Q0, {
1330
+ title: `${g.value.cameraName}:${k.value ? "视频回放" : "实时视频"}`,
1331
+ ControlType: i.value,
1332
+ "onUpdate:ControlType": M[0] || (M[0] = (S) => i.value = S),
1333
+ HalfFull: l.value,
1334
+ "onUpdate:HalfFull": M[1] || (M[1] = (S) => l.value = S),
1335
+ playbackType: r.value,
1336
+ qxType: !1,
1337
+ ytType: !1,
1338
+ hfType: !1,
1339
+ onSetplaybackTime: f,
1340
+ onSetClose: x.setClose
1341
+ }, {
1342
+ VideoContent: L(() => [
1343
+ u("div", Et, [
1344
+ K(Tt, {
1345
+ ref_key: "playerRef",
1346
+ ref: s,
1347
+ url: t.url,
1348
+ width: "100%",
1349
+ options: {}
1350
+ }, {
1351
+ Content: L(() => [...M[2] || (M[2] = [])]),
1352
+ _: 1
1353
+ }, 8, ["url"])
1354
+ ])
1355
+ ]),
1356
+ _: 1
1357
+ }, 8, ["title", "ControlType", "HalfFull", "playbackType", "onSetClose"]));
1358
+ }
1359
+ }, kt = /* @__PURE__ */ L0(At, [["__scopeId", "data-v-d948ede0"]]);
1360
+ class j2 {
1361
+ constructor() {
1362
+ this.video = document.createElement("video"), this.video.crossOrigin = "anonymous", this.video.loop = !0, this.video.muted = !0, this.video.playsInline = !0, this.video.autoplay = !1, this.video.style.display = "none", document.body.appendChild(this.video), this.player = null, this.url = null, this._reconnectCount = 0, this._maxReconnectCount = 15, this._reconnectInterval = 3e4, this._reconnectTimer = null, this._status = "idle", this._statusStartTime = Date.now(), this._lastError = null, this._statistics = {
1363
+ bufferDelay: 0,
1364
+ // 缓冲延迟(秒)
1365
+ downloadSpeed: 0,
1366
+ // 下载速度(KB/s)
1367
+ decodedFrames: 0,
1368
+ droppedFrames: 0
1369
+ }, this._frameCatchInterval = null, this._frameCatchPeriod = 2e3, this._maxBufferDelay = 5, this._seekOffset = 0.5, this._onVideoEventBound = this._onVideoEvent.bind(this);
1370
+ }
1371
+ get status() {
1372
+ return this._status;
1373
+ }
1374
+ get statistics() {
1375
+ return { ...this._statistics };
1376
+ }
1377
+ _setStatus(e, a = {}) {
1378
+ const s = Date.now(), i = s - this._statusStartTime;
1379
+ console.log(`[SyzVideoPlayer] 状态变化: ${this._status}(${i}ms) -> ${e}`, a), this._status = e, this._statusStartTime = s;
1380
+ }
1381
+ init(e) {
1382
+ this.url = e;
1383
+ }
1384
+ play() {
1385
+ this._resetReconnectCount(), this._setStatus("loading"), this._createPlayer();
1386
+ }
1387
+ _createPlayer() {
1388
+ this.player = flvjs.createPlayer({
1389
+ type: "flv",
1390
+ url: this.url,
1391
+ isLive: !0,
1392
+ hasAudio: !1
1393
+ }), this.player.attachMediaElement(this.video), this.player.load(), this.player.on(flvjs.Events.ERROR, (e, a, s) => {
1394
+ console.warn("FLV Player Error:", e, a, s), this._lastError = { type: e, detail: a, info: s, time: Date.now() }, this._setStatus("error", { errorType: e, errorDetail: a, errorInfo: s }), e === flvjs.ErrorTypes.NETWORK_ERROR && this._scheduleReconnect();
1395
+ }), this.player.on(flvjs.Events.STATISTICS_INFO, (e) => {
1396
+ this._statistics.downloadSpeed = e.speed || 0, e.decodedFrames !== void 0 && (this._statistics.decodedFrames = e.decodedFrames), e.droppedFrames !== void 0 && (this._statistics.droppedFrames = e.droppedFrames);
1397
+ }), this.video.addEventListener("canplay", this._onVideoEventBound), this.video.addEventListener("playing", this._onVideoEventBound), this.video.addEventListener("pause", this._onVideoEventBound), this.video.addEventListener("waiting", this._onVideoEventBound), this.video.addEventListener("stalled", this._onVideoEventBound), this.video.addEventListener("ended", this._onVideoEventBound), this.video.addEventListener("error", this._onVideoEventBound), this.video.addEventListener("canplay", () => {
1398
+ this._resetReconnectCount(), this.player.play();
1399
+ }, { once: !0 }), this._startFrameCatch();
1400
+ }
1401
+ _onVideoEvent(e) {
1402
+ switch (e.type) {
1403
+ case "canplay":
1404
+ break;
1405
+ case "playing":
1406
+ this._setStatus("playing");
1407
+ break;
1408
+ case "pause":
1409
+ !this.video.ended && this.video.readyState < 4 && this._setStatus("paused");
1410
+ break;
1411
+ case "waiting":
1412
+ case "stalled":
1413
+ this._status === "playing" && this._setStatus("loading");
1414
+ break;
1415
+ case "ended":
1416
+ this._setStatus("idle");
1417
+ break;
1418
+ case "error":
1419
+ this._lastError = { type: "VIDEO_ERROR", detail: this.video.error, time: Date.now() }, this._setStatus("error", { videoError: this.video.error });
1420
+ break;
1421
+ }
1422
+ }
1423
+ _scheduleReconnect() {
1424
+ if (!this._reconnectTimer) {
1425
+ if (this._reconnectCount >= this._maxReconnectCount) {
1426
+ console.error(`重连次数已达上限 (${this._maxReconnectCount}次),停止重连`), this._setStatus("error", { reason: "max_reconnect_reached" });
1427
+ return;
1428
+ }
1429
+ this._reconnectCount++, this._setStatus("reconnecting", { count: this._reconnectCount, max: this._maxReconnectCount }), console.log(`计划第 ${this._reconnectCount}/${this._maxReconnectCount} 次重连,${this._reconnectInterval / 1e3}秒后执行...`), this._reconnectTimer = setTimeout(() => {
1430
+ console.log(`执行第 ${this._reconnectCount} 次重连...`), this.destroy(), this._createPlayer();
1431
+ }, this._reconnectInterval);
1432
+ }
1433
+ }
1434
+ _resetReconnectCount() {
1435
+ this._reconnectCount = 0;
1436
+ }
1437
+ _startFrameCatch() {
1438
+ this._stopFrameCatch(), this._frameCatchInterval = setInterval(() => {
1439
+ this._checkAndCatchFrame();
1440
+ }, this._frameCatchPeriod);
1441
+ }
1442
+ _stopFrameCatch() {
1443
+ this._frameCatchInterval && (clearInterval(this._frameCatchInterval), this._frameCatchInterval = null);
1444
+ }
1445
+ _checkAndCatchFrame() {
1446
+ if (!this.video || this.video.readyState < 2) return;
1447
+ const e = this.video.buffered;
1448
+ if (!e || e.length === 0) return;
1449
+ const a = this.video.currentTime, s = e.end(e.length - 1), i = s - a;
1450
+ if (this._statistics.bufferDelay = parseFloat(i.toFixed(2)), i > this._maxBufferDelay) {
1451
+ const l = s - this._seekOffset;
1452
+ console.log(`[追帧] 缓冲延迟 ${i.toFixed(2)}s > ${this._maxBufferDelay}s,seek 到 ${l.toFixed(2)}s`), this.video.currentTime = l;
1453
+ }
1454
+ }
1455
+ pause() {
1456
+ var e;
1457
+ (e = this.player) == null || e.pause(), this.video.pause(), this._setStatus("paused");
1458
+ }
1459
+ switchUrl(e) {
1460
+ this.destroy(), this.init(e), this.play();
1461
+ }
1462
+ stop() {
1463
+ this.destroy(), this._setStatus("idle");
1464
+ }
1465
+ destroy() {
1466
+ this._reconnectTimer && (clearTimeout(this._reconnectTimer), this._reconnectTimer = null), this._stopFrameCatch(), this.video.removeEventListener("canplay", this._onVideoEventBound), this.video.removeEventListener("playing", this._onVideoEventBound), this.video.removeEventListener("pause", this._onVideoEventBound), this.video.removeEventListener("waiting", this._onVideoEventBound), this.video.removeEventListener("stalled", this._onVideoEventBound), this.video.removeEventListener("ended", this._onVideoEventBound), this.video.removeEventListener("error", this._onVideoEventBound), this.player && (this.player.pause(), this.player.unload(), this.player.detachMediaElement(), this.player.destroy(), this.player = null);
1467
+ }
1468
+ }
1469
+ class M0 {
1470
+ constructor(e, a, s = {}) {
1471
+ this.viewer = e, this.video = a, this.flipY = s.flipY || !1, this.generateMipmap = s.generateMipmap || !1, this.texture = new Cesium.Texture({
1472
+ context: e.scene.context,
1473
+ source: this.video,
1474
+ width: 1,
1475
+ height: 1,
1476
+ pixelFormat: Cesium.PixelFormat.RGBA,
1477
+ pixelDatatype: Cesium.PixelDatatype.UNSIGNED_BYTE
1478
+ }), this.lastUpdate = 0, this.enabled = !1;
1479
+ }
1480
+ update() {
1481
+ this.enabled && (this.flipY && (this.texture._flipY = !0), this.texture.copyFrom({ source: this.video }), this.generateMipmap && this.texture.generateMipmap());
1482
+ }
1483
+ stop() {
1484
+ this.destroy();
1485
+ }
1486
+ destroy() {
1487
+ var e;
1488
+ (e = this.texture) == null || e.destroy(), this.viewer = null, this.video = null;
1489
+ }
1490
+ }
1491
+ class V0 {
1492
+ constructor(e, a) {
1493
+ this.viewer = e, this.guid = a.guid || a.id, this.options = a, this.player = new j2(), this._modelTexture = null, this.texture = null, this.model = null, this._updateOnce = !1, this._destroyed = !1;
1494
+ }
1495
+ async init() {
1496
+ if (this._destroyed) return;
1497
+ let e = this.options.video_url || "";
1498
+ e && e.startsWith("rtsp://") && (e = this._convertRtspToWs(e)), this.player.init(e), await this._loadModel();
1499
+ }
1500
+ async _loadModel() {
1501
+ let e = this.options.world_pos;
1502
+ if (typeof e == "string")
1503
+ try {
1504
+ e = JSON.parse(e);
1505
+ } catch (r) {
1506
+ console.warn("解析 world_pos 失败:", r), e = null;
1507
+ }
1508
+ if (!e && this.options.elementData && this.options.elementData._worldMapPos) {
1509
+ const r = this.options.elementData._worldMapPos;
1510
+ e = { longitude: r.x, latitude: r.y, altitude: r.z };
1511
+ }
1512
+ if (!e) {
1513
+ console.error("缺少位置信息:", this.options);
1514
+ return;
1515
+ }
1516
+ const a = Cesium.Cartesian3.fromDegrees(
1517
+ e.longitude,
1518
+ e.latitude,
1519
+ e.altitude || 1
1520
+ ), s = Cesium.Transforms.eastNorthUpToFixedFrame(a), i = this._createShader();
1521
+ let l = this.options.model_url || this.options.url || "";
1522
+ if (l && !l.endsWith(".glb") && (l = l + ".glb"), this.model = await Cesium.Model.fromGltfAsync({
1523
+ url: l,
1524
+ modelMatrix: s,
1525
+ customShader: i,
1526
+ id: this.guid
1527
+ }), this._destroyed) {
1528
+ this.model && this.model.destroy(), this.model = null;
1529
+ return;
1530
+ }
1531
+ this.viewer.scene.primitives.add(this.model), this.model.readyEvent.addEventListener((r) => {
1532
+ var k;
1533
+ if (this._destroyed) return;
1534
+ const p = r.boundingSphere.center, c = {
1535
+ x: p.x,
1536
+ y: p.y,
1537
+ z: p.z
1538
+ }, _ = new Cesium.Cartesian3(1, 1, 1), v = Cesium.Matrix4.fromScale(_);
1539
+ r.modelMatrix = Cesium.Matrix4.multiply(
1540
+ r.modelMatrix,
1541
+ v,
1542
+ new Cesium.Matrix4()
1543
+ );
1544
+ let w = { x: 0, y: 0, z: 0 };
1545
+ if (this.options.euler_angles)
1546
+ try {
1547
+ w = typeof this.options.euler_angles == "string" ? JSON.parse(this.options.euler_angles) : this.options.euler_angles;
1548
+ } catch (g) {
1549
+ console.warn("解析 euler_angles 失败:", g);
1550
+ }
1551
+ else (k = this.options.elementData) != null && k._iveEuler && (w = this.options.elementData._iveEuler);
1552
+ if (w && (w.z !== 0 || w.y !== 0 || w.x !== 0)) {
1553
+ let g = r.modelMatrix;
1554
+ const f = w;
1555
+ if (f.z > 1e-4 || f.z < -1e-4) {
1556
+ const S = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(f.z)), A = Cesium.Matrix4.fromRotation(S);
1557
+ g = Cesium.Matrix4.multiply(g, A, new Cesium.Matrix4());
1558
+ }
1559
+ if (f.y > 1e-4 || f.y < -1e-4) {
1560
+ const S = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(f.y)), A = Cesium.Matrix4.fromRotation(S);
1561
+ g = Cesium.Matrix4.multiply(g, A, new Cesium.Matrix4());
1562
+ }
1563
+ if (f.x > 1e-4 || f.x < -1e-4) {
1564
+ const S = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(f.x)), A = Cesium.Matrix4.fromRotation(S);
1565
+ g = Cesium.Matrix4.multiply(g, A, new Cesium.Matrix4());
1566
+ }
1567
+ r.modelMatrix = g;
1568
+ const E = r.boundingSphere.center, B = new Cesium.Cartesian3(
1569
+ c.x,
1570
+ c.y,
1571
+ c.z
1572
+ ), x = Cesium.Cartesian3.subtract(
1573
+ B,
1574
+ E,
1575
+ new Cesium.Cartesian3()
1576
+ ), M = Cesium.Matrix4.fromTranslation(x);
1577
+ Cesium.Matrix4.multiply(M, r.modelMatrix, r.modelMatrix);
1578
+ }
1579
+ }, this);
1580
+ }
1581
+ update() {
1582
+ var e, a;
1583
+ (e = this._videoTexture) != null && e.enabled && this.player.video.readyState >= 2 && ((a = this._videoTexture) == null || a.update(), this._updateOnce || (this.model.customShader._textureManager._textures.SmartTexture = this._videoTexture.texture, this._updateOnce = !0));
1584
+ }
1585
+ play() {
1586
+ this.player.play(), this.player.video.addEventListener("playing", () => {
1587
+ console.log("第一帧已显示在屏幕上!"), this._videoTexture = new M0(this.viewer, this.player.video), this._videoTexture.enabled = !0;
1588
+ }, { once: !0 });
1589
+ }
1590
+ pause() {
1591
+ this.player.pause();
1592
+ }
1593
+ switchUrl(e) {
1594
+ this.player.switchUrl(e);
1595
+ }
1596
+ stop() {
1597
+ this.player.stop(), this._videoTexture && (this._videoTexture.enabled = !1, this._videoTexture.stop(), this._videoTexture = null), this._updateOnce = !1;
1598
+ }
1599
+ destroy() {
1600
+ var e;
1601
+ this._destroyed = !0, this.stop(), this.model && ((e = this.viewer) == null || e.scene.primitives.remove(this.model), this.model = null), this.viewer = null;
1602
+ }
1603
+ show() {
1604
+ this.model && (this.model.show = !0);
1605
+ }
1606
+ hide() {
1607
+ this.model && (this.model.show = !1);
1608
+ }
1609
+ _createShader() {
1610
+ let e = this.options.preview_url || "";
1611
+ return !e && this.options.url && (e = this.options.url + ".preview.png"), new Cesium.CustomShader({
1612
+ uniforms: {
1613
+ SmartTexture: {
1614
+ type: "sampler2D",
1615
+ value: new Cesium.TextureUniform({
1616
+ url: e
1617
+ })
1618
+ }
1619
+ },
1620
+ mode: "REPLACE_MATERIAL",
1621
+ fragmentShaderText: `
1622
+ void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
1623
+ {
1624
+ vec2 texCoord = fsInput.attributes.texCoord_0;
1625
+ texCoord.y = 1.0 - texCoord.y;
1626
+ material.diffuse = texture(SmartTexture, texCoord).rgb;
1627
+ }
1628
+ `
1629
+ });
1630
+ }
1631
+ _convertRtspToWs(e, a = 8001) {
1632
+ if (!e || !e.startsWith("rtsp://")) return e;
1633
+ const s = /^rtsp:\/\/([^:]+):(\d+)\/(.+)$/, i = e.match(s);
1634
+ if (i) {
1635
+ const [, l, , r] = i;
1636
+ return `ws://${l}:${a}/${r}.live.flv`;
1637
+ }
1638
+ return e;
1639
+ }
1640
+ }
1641
+ class Pt {
1642
+ constructor(e, a) {
1643
+ this.viewer = e, this.planes = /* @__PURE__ */ new Map(), this._destroyed = !1, this.readyPromise = this._init(a), this._tickHandler = () => {
1644
+ this.update();
1645
+ }, this.viewer.clock.onTick.addEventListener(this._tickHandler);
1646
+ }
1647
+ async whenReady() {
1648
+ return this.readyPromise;
1649
+ }
1650
+ async _init(e) {
1651
+ await Promise.allSettled(
1652
+ e.map((a) => this.add(a))
1653
+ );
1654
+ }
1655
+ async add(e) {
1656
+ if (this._destroyed) return;
1657
+ const a = new V0(this.viewer, e);
1658
+ if (await a.init(), this._destroyed) {
1659
+ a.destroy();
1660
+ return;
1661
+ }
1662
+ this.planes.set(e.guid || e.id, a);
1663
+ }
1664
+ update() {
1665
+ this.planes.forEach((e) => {
1666
+ e.update();
1667
+ });
1668
+ }
1669
+ /**
1670
+ * 根据guid获取plane的街道代码
1671
+ */
1672
+ _getStreetCode(e) {
1673
+ const a = this.planes.get(e);
1674
+ return a && a.options.street_code || null;
1675
+ }
1676
+ /**
1677
+ * 获取同一街道下的所有plane guid列表
1678
+ */
1679
+ _getSameStreetPlanes(e) {
1680
+ const a = this._getStreetCode(e);
1681
+ if (!a) return [e];
1682
+ const s = [];
1683
+ return this.planes.forEach((i, l) => {
1684
+ i.options.street_code === a && s.push(l);
1685
+ }), s;
1686
+ }
1687
+ updateVideoPlane(e) {
1688
+ const a = e.guid || e.id;
1689
+ if (!this.planes.get(a)) return;
1690
+ let i = [a];
1691
+ (e.playState === 0 || e.playState === 3) && e.openSameStreet !== !1 && (i = this._getSameStreetPlanes(a)), e.playState === 4 && e.closeSameStreet === !0 && (i = this._getSameStreetPlanes(a)), i.forEach((l) => {
1692
+ const r = this.planes.get(l);
1693
+ if (r)
1694
+ switch (e.playState) {
1695
+ case 0:
1696
+ r.switchUrl(e.videoUrl), r.play();
1697
+ break;
1698
+ case 1:
1699
+ r.switchUrl(e.videoUrl);
1700
+ break;
1701
+ case 2:
1702
+ r.pause();
1703
+ break;
1704
+ case 3:
1705
+ r.play();
1706
+ break;
1707
+ case 4:
1708
+ r.stop();
1709
+ break;
1710
+ }
1711
+ });
1712
+ }
1713
+ remove(e) {
1714
+ const a = this.planes.get(e);
1715
+ a && (a.destroy(), this.planes.delete(e));
1716
+ }
1717
+ destroy() {
1718
+ this._destroyed = !0, this._tickHandler && this.viewer && (this.viewer.clock.onTick.removeEventListener(this._tickHandler), this._tickHandler = null), this.planes.forEach((e) => {
1719
+ e.destroy();
1720
+ }), this.planes.clear(), this.viewer = null;
1721
+ }
1722
+ show(e) {
1723
+ const a = this.planes.get(e);
1724
+ a && a.show();
1725
+ }
1726
+ hide(e) {
1727
+ const a = this.planes.get(e);
1728
+ a && a.hide();
1729
+ }
1730
+ showAll() {
1731
+ this.planes.forEach((e) => e.show());
1732
+ }
1733
+ hideAll() {
1734
+ this.planes.forEach((e) => e.hide());
1735
+ }
1736
+ }
1737
+ const Dt = {
1738
+ /**
1739
+ * 将视频孪生体数据转换为旧格式(用于VideoPlane)
1740
+ */
1741
+ transformVideoTwin(t) {
1742
+ let e = t.world_pos;
1743
+ if (typeof e == "string")
1744
+ try {
1745
+ e = JSON.parse(e);
1746
+ } catch {
1747
+ e = null;
1748
+ }
1749
+ let a = t.euler_angles;
1750
+ if (typeof a == "string")
1751
+ try {
1752
+ a = JSON.parse(a);
1753
+ } catch {
1754
+ a = { x: 0, y: 0, z: 0 };
1755
+ }
1756
+ return {
1757
+ guid: t.id,
1758
+ id: t.id,
1759
+ name: t.name,
1760
+ url: t.model_url,
1761
+ // 兼容旧字段
1762
+ model_url: t.model_url,
1763
+ video_url: t.video_url,
1764
+ preview_url: t.preview_url,
1765
+ world_pos: e,
1766
+ euler_angles: a,
1767
+ view_point_id: t.view_point_id,
1768
+ country_code: t.country_code,
1769
+ street_code: t.street_code,
1770
+ elementData: {
1771
+ _worldMapPos: e ? {
1772
+ x: e.longitude,
1773
+ y: e.latitude,
1774
+ z: e.altitude
1775
+ } : null,
1776
+ _subVecData: [{
1777
+ _videoUrl: t.video_url
1778
+ }],
1779
+ _iveEuler: a || { x: 0, y: 0, z: 0 }
1780
+ }
1781
+ };
1782
+ },
1783
+ /**
1784
+ * 按 country_code 分组,转换为旧的 area 格式
1785
+ */
1786
+ groupByArea(t, e) {
1787
+ const a = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
1788
+ return e && e.forEach((i) => {
1789
+ i.county_code && !s.has(i.county_code.toString()) && s.set(i.county_code.toString(), i.county_name || i.region_name);
1790
+ }), t.forEach((i) => {
1791
+ const l = i.country_code || "unknown";
1792
+ a.has(l) || a.set(l, {
1793
+ areaCode: l,
1794
+ name: s.get(l) || `区域${l}`,
1795
+ content: []
1796
+ }), a.get(l).content.push(this.transformVideoTwin(i));
1797
+ }), Array.from(a.values());
1798
+ }
1799
+ }, Ot = new Cesium.Matrix4(
1800
+ 0.5,
1801
+ 0,
1802
+ 0,
1803
+ 0.5,
1804
+ 0,
1805
+ 0.5,
1806
+ 0,
1807
+ 0.5,
1808
+ 0,
1809
+ 0,
1810
+ 0.5,
1811
+ 0.5,
1812
+ 0,
1813
+ 0,
1814
+ 0,
1815
+ 1
1816
+ );
1817
+ class Ft {
1818
+ /**
1819
+ * @param {Cesium.Viewer} viewer
1820
+ * @param {Object} options
1821
+ * @param {Cesium.Cartesian3} options.position - 相机世界坐标位置(外参)
1822
+ * @param {number} [options.heading=0] - 航向角(度),正北为0顺时针(外参)
1823
+ * @param {number} [options.pitch=0] - 俯仰角(度),水平为0向上为正(外参)
1824
+ * @param {number} [options.roll=0] - 翻滚角(度)
1825
+ * @param {number} [options.fov=37] - 垂直视场角(度),用于初始化内参
1826
+ * @param {number} [options.aspectRatio=16/9] - 宽高比,配合 fov 计算水平视场
1827
+ * @param {number} [options.viewDistance=500] - 视锥可视距离(far)
1828
+ * @param {number} [options.viewNearDistance=0.1] - 近裁面距离
1829
+ */
1830
+ constructor(e, a) {
1831
+ this.viewer = e, this.CameraId = a.id || Math.random().toString(36).substr(2), this.position = a.position || Cesium.Cartesian3.ZERO, this.heading = a.heading || 0, this.pitch = a.pitch || 0, this.roll = a.roll || 0, this.fov = a.fov || 37, this.aspectRatio = a.aspectRatio || 16 / 9, this.viewDistance = a.viewDistance || 500, this.viewNearDistance = a.viewNearDistance || 0.1, this.frustumOutlineColor = a.contourLineColor || a.frustumOutlineColor, this.enabled = typeof a.enabled == "boolean" ? a.enabled : !0, this.softShadows = typeof a.softShadows == "boolean" ? a.softShadows : !0, this.size = a.size || 2048, this.alpha = a.alpha || 1, this.textureType = a.textureType || 1, this.player = new j2(), this._videoTexture = null, this._updateHandler = null, this.postStage = null, this.lightCamera = null, this.shadowMap = null, this.frustumOutline = null, this.GLSL = `
1832
+ in vec2 v_textureCoordinates;
1833
+ uniform sampler2D colorTexture;
1834
+ uniform sampler2D depthTexture;
1835
+ uniform sampler2D shadowMap_texture;
1836
+
1837
+ uniform mat4 camera_projection_matrix;
1838
+ uniform mat4 camera_view_matrix;
1839
+ uniform mat4 scaleBiasMatrix;
1840
+
1841
+ uniform mat4 scene_camera_matrix;
1842
+
1843
+ uniform mat4 shadowMap_matrix;
1844
+ uniform vec4 shadowMap_lightPositionEC;
1845
+ uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness;
1846
+ uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth;
1847
+ uniform int helsing_textureType;
1848
+ uniform sampler2D helsing_texture;
1849
+ uniform float helsing_alpha;
1850
+ uniform vec4 helsing_visibleAreaColor;
1851
+ uniform vec4 helsing_invisibleAreaColor;
1852
+
1853
+ vec4 toEye(in vec2 uv, in float depth){
1854
+ vec2 xy = vec2((uv.x * 2.0 - 1.0),(uv.y * 2.0 - 1.0));
1855
+ vec4 posInCamera =czm_inverseProjection * vec4(xy, depth, 1.0);
1856
+ posInCamera =posInCamera / posInCamera.w;
1857
+ return posInCamera;
1858
+ }
1859
+ float getDepth(in vec4 depth){
1860
+ float z_window = czm_unpackDepth(depth);
1861
+ z_window = czm_reverseLogDepth(z_window);
1862
+ float n_range = czm_depthRange.near;
1863
+ float f_range = czm_depthRange.far;
1864
+ return (2.0 * z_window - n_range - f_range) / (f_range - n_range);
1865
+ }
1866
+ float _czm_sampleShadowMap(sampler2D shadowMap, vec2 uv){
1867
+ return texture(shadowMap, uv).r;
1868
+ }
1869
+ float _czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth){
1870
+ return step(depth, _czm_sampleShadowMap(shadowMap, uv));
1871
+ }
1872
+ float _czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters){
1873
+ float depthBias = shadowParameters.depthBias;
1874
+ float depth = shadowParameters.depth;
1875
+ float nDotL = shadowParameters.nDotL;
1876
+ float normalShadingSmooth = shadowParameters.normalShadingSmooth;
1877
+ float darkness = shadowParameters.darkness;
1878
+ vec2 uv = shadowParameters.texCoords;
1879
+ depth -= depthBias;
1880
+ vec2 texelStepSize = shadowParameters.texelStepSize;
1881
+ float radius = 1.0;
1882
+ float dx0 = -texelStepSize.x * radius;
1883
+ float dy0 = -texelStepSize.y * radius;
1884
+ float dx1 = texelStepSize.x * radius;
1885
+ float dy1 = texelStepSize.y * radius;
1886
+ float visibility = (_czm_shadowDepthCompare(shadowMap, uv, depth)
1887
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth)
1888
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth)
1889
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth)
1890
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth)
1891
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth)
1892
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth)
1893
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth)
1894
+ + _czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth)
1895
+ ) * (1.0 / 9.0);
1896
+ return visibility;
1897
+ }
1898
+
1899
+ bool visible(in vec4 result)
1900
+ {
1901
+ result.x/=result.w;
1902
+ result.y/=result.w;
1903
+ result.z/=result.w;
1904
+ return result.x>=-1.&&result.x<=1.
1905
+ &&result.y>=-1.&&result.y<=1.
1906
+ &&result.z>=-1.&&result.z<=1.;
1907
+ }
1908
+ void main(){
1909
+ const float PI = 3.141592653589793;
1910
+ vec4 color = texture(colorTexture, v_textureCoordinates);
1911
+ vec4 currentDepth = texture(depthTexture, v_textureCoordinates);
1912
+ if(currentDepth.r >= 1.0){
1913
+ out_FragColor = color;
1914
+ return;
1915
+ }
1916
+ float depth = getDepth(currentDepth);
1917
+ vec4 positionEC = toEye(v_textureCoordinates, depth);
1918
+ vec3 normalEC = vec3(1.0);
1919
+ czm_shadowParameters shadowParameters;
1920
+ shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy;
1921
+ shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z;
1922
+ shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w;
1923
+ shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w;
1924
+ shadowParameters.depthBias *= max(depth * 0.01, 1.0);
1925
+
1926
+ vec4 wordPos = czm_inverseView * positionEC;
1927
+ vec4 vcPos = camera_view_matrix * wordPos;
1928
+
1929
+ vec4 shadowPosition = shadowMap_matrix * positionEC;
1930
+ shadowPosition /= shadowPosition.w;
1931
+ if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))){
1932
+ out_FragColor = color;
1933
+ return;
1934
+ }
1935
+
1936
+ vec3 directionEC = positionEC.xyz-shadowMap_lightPositionEC.xyz;
1937
+ float distance = length(directionEC);
1938
+ directionEC = normalize(directionEC);
1939
+
1940
+ vec3 directionWC = czm_inverseViewRotation * directionEC;
1941
+
1942
+ float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0);
1943
+
1944
+ shadowParameters.texCoords = shadowPosition.xy;
1945
+ shadowParameters.depth = shadowPosition.z;
1946
+ shadowParameters.nDotL = nDotL;
1947
+ float visibility = _czm_shadowVisibility(shadowMap_texture, shadowParameters);
1948
+ if (helsing_textureType < 2){
1949
+ vec4 videoColor = texture(helsing_texture, shadowPosition.xy);
1950
+ if (visibility == 1.0){
1951
+ out_FragColor = mix(color, vec4(videoColor.xyz, 1.0), helsing_alpha * videoColor.a);
1952
+ }
1953
+ else{
1954
+ if(abs(shadowPosition.z - 0.0) < 0.001){
1955
+ return;
1956
+ }
1957
+ out_FragColor = color;
1958
+ }
1959
+ }
1960
+ else{
1961
+
1962
+ }
1963
+ }`;
1964
+ }
1965
+ init() {
1966
+ this._createLightCamera(), this._createShadowMap(), this._drawFrustumOutline();
1967
+ }
1968
+ /**
1969
+ * 更新无人机外参(持续调用)
1970
+ * @param {Object} pose
1971
+ * @param {Cesium.Cartesian3} [pose.position] - 新位置
1972
+ * @param {number} [pose.heading] - 新航向角(度)
1973
+ * @param {number} [pose.pitch] - 新俯仰角(度)
1974
+ * @param {number} [pose.roll] - 新翻滚角(度)
1975
+ * @param {number} [pose.fov] - 新视场角(度,可选)
1976
+ */
1977
+ updatePose(e) {
1978
+ if (e) {
1979
+ if (e.position !== void 0 && (this.position = e.position), e.heading !== void 0 && (this.heading = e.heading), e.pitch !== void 0 && (this.pitch = e.pitch), e.roll !== void 0 && (this.roll = e.roll), e.fov !== void 0) {
1980
+ this.fov = e.fov;
1981
+ const a = Cesium.Math.toRadians(this.fov);
1982
+ this.lightCamera.frustum.fov = a, this.lightCamera.frustum.aspectRatio = this.aspectRatio;
1983
+ }
1984
+ this.lightCamera.position = this.position, this.lightCamera.setView({
1985
+ destination: this.position,
1986
+ orientation: {
1987
+ heading: Cesium.Math.toRadians(this.heading),
1988
+ pitch: Cesium.Math.toRadians(this.pitch),
1989
+ roll: Cesium.Math.toRadians(this.roll)
1990
+ }
1991
+ }), this._updateFrustumPositions();
1992
+ }
1993
+ }
1994
+ play(e) {
1995
+ e || (e = {}), e.url && this.player.init(e.url), this.player.play();
1996
+ const a = () => {
1997
+ this._videoTexture = new M0(this.viewer, this.player.video, {
1998
+ flipY: !0,
1999
+ generateMipmap: !0
2000
+ }), this._videoTexture.enabled = !0, this._updateHandler = () => {
2001
+ var s;
2002
+ (s = this._videoTexture) == null || s.update();
2003
+ }, this.viewer.clock.onTick.addEventListener(this._updateHandler), this._createPostStage();
2004
+ };
2005
+ this.player.video.readyState >= 3 ? a() : this.player.video.addEventListener("canplay", a, { once: !0 });
2006
+ }
2007
+ update() {
2008
+ var e;
2009
+ (e = this._videoTexture) == null || e.update();
2010
+ }
2011
+ stop() {
2012
+ this.player.stop(), this._videoTexture && (this._videoTexture.enabled = !1, this._videoTexture.stop(), this._videoTexture = null), this.postStage && this.viewer && (this.viewer.scene.postProcessStages.remove(this.postStage), this.postStage = null), this._updateHandler && this.viewer && (this.viewer.clock.onTick.removeEventListener(this._updateHandler), this._updateHandler = null);
2013
+ }
2014
+ destroy() {
2015
+ var e, a;
2016
+ this.stop(), this.frustumOutline && this.viewer && (this.viewer.scene.primitives.remove(this.frustumOutline), this.frustumOutline = null, this._frustumPolylines = null), this.sketch && this.viewer && (this.viewer.entities.remove(this.sketch), this.sketch = null), this.shadowMap && this.viewer && (this.viewer.scene.shadowMap === this.shadowMap && (this.viewer.scene.shadowMap = void 0), (a = (e = this.shadowMap).destroy) == null || a.call(e), this.shadowMap = null), this.lightCamera = null, this.player.destroy(), this.viewer = null;
2017
+ }
2018
+ _createPostStage() {
2019
+ const e = this, a = e.shadowMap._isPointLight ? e.shadowMap._pointBias : e.shadowMap._primitiveBias, s = new Cesium.PostProcessStage({
2020
+ fragmentShader: e.GLSL,
2021
+ uniforms: {
2022
+ helsing_textureType: function() {
2023
+ return e.textureType;
2024
+ },
2025
+ helsing_texture: function() {
2026
+ var i;
2027
+ return (i = e._videoTexture) == null ? void 0 : i.texture;
2028
+ },
2029
+ helsing_alpha: function() {
2030
+ return e.alpha;
2031
+ },
2032
+ helsing_visibleAreaColor: function() {
2033
+ return e.visibleAreaColor;
2034
+ },
2035
+ helsing_invisibleAreaColor: function() {
2036
+ return e.invisibleAreaColor;
2037
+ },
2038
+ shadowMap_texture: function() {
2039
+ return e.shadowMap._shadowMapTexture;
2040
+ },
2041
+ shadowMap_matrix: function() {
2042
+ return e.shadowMap._shadowMapMatrix;
2043
+ },
2044
+ camera_projection_matrix: function() {
2045
+ return e.lightCamera.frustum.projectionMatrix;
2046
+ },
2047
+ camera_view_matrix: function() {
2048
+ return e.lightCamera.viewMatrix;
2049
+ },
2050
+ scene_camera_matrix: this.viewer.scene.camera.inverseViewMatrix,
2051
+ scaleBiasMatrix: Ot,
2052
+ shadowMap_lightPositionEC: function() {
2053
+ return e.shadowMap._lightPositionEC;
2054
+ },
2055
+ shadowMap_texelSizeDepthBiasAndNormalShadingSmooth: function() {
2056
+ const i = new Cesium.Cartesian2();
2057
+ return i.x = 1 / e.shadowMap._textureSize.x, i.y = 1 / e.shadowMap._textureSize.y, Cesium.Cartesian4.fromElements(
2058
+ i.x,
2059
+ i.y,
2060
+ a.depthBias,
2061
+ a.normalShadingSmooth,
2062
+ new Cesium.Cartesian4()
2063
+ );
2064
+ },
2065
+ shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness: function() {
2066
+ return Cesium.Cartesian4.fromElements(
2067
+ a.normalOffsetScale,
2068
+ e.shadowMap._distance,
2069
+ e.shadowMap.maximumDistance,
2070
+ e.shadowMap._darkness,
2071
+ new Cesium.Cartesian4()
2072
+ );
2073
+ }
2074
+ }
2075
+ });
2076
+ this.postStage = e.viewer.scene.postProcessStages.add(s);
2077
+ }
2078
+ _createShadowMap() {
2079
+ this.shadowMap = new Cesium.ShadowMap({
2080
+ context: this.viewer.scene.context,
2081
+ lightCamera: this.lightCamera,
2082
+ enabled: this.enabled,
2083
+ cascadesEnabled: !1,
2084
+ size: this.size,
2085
+ softShadows: this.softShadows,
2086
+ normalOffset: !1,
2087
+ fromLightSource: !1
2088
+ }), this.viewer.scene.shadowMap = this.shadowMap;
2089
+ }
2090
+ _createLightCamera() {
2091
+ this.lightCamera = new Cesium.Camera(this.viewer.scene), this.lightCamera.position = this.position, this.lightCamera.frustum.near = this.viewNearDistance, this.lightCamera.frustum.far = this.viewDistance;
2092
+ const e = Cesium.Math.toRadians(this.fov);
2093
+ this.lightCamera.frustum.fov = e, this.lightCamera.frustum.aspectRatio = this.aspectRatio, this.lightCamera.setView({
2094
+ destination: this.position,
2095
+ orientation: {
2096
+ heading: Cesium.Math.toRadians(this.heading),
2097
+ pitch: Cesium.Math.toRadians(this.pitch),
2098
+ roll: Cesium.Math.toRadians(this.roll)
2099
+ }
2100
+ });
2101
+ }
2102
+ /**
2103
+ * 计算视锥8个顶点(近面4角 + 远面4角)
2104
+ */
2105
+ _computeFrustumCorners() {
2106
+ const e = this.lightCamera, a = this.viewNearDistance, s = this.viewDistance, l = Cesium.Math.toRadians(this.fov) / 2, r = this.aspectRatio, p = Math.tan(l), c = a * p, _ = c * r, v = s * p, w = v * r, k = Cesium.Cartesian3.clone(e.directionWC), g = Cesium.Cartesian3.clone(e.upWC), f = Cesium.Cartesian3.clone(e.rightWC);
2107
+ function E(M, S, A) {
2108
+ const P = Cesium.Cartesian3.add(
2109
+ e.positionWC,
2110
+ Cesium.Cartesian3.multiplyByScalar(k, M, new Cesium.Cartesian3()),
2111
+ new Cesium.Cartesian3()
2112
+ );
2113
+ return [
2114
+ Cesium.Cartesian3.add(P, Cesium.Cartesian3.add(
2115
+ Cesium.Cartesian3.multiplyByScalar(f, -S, new Cesium.Cartesian3()),
2116
+ Cesium.Cartesian3.multiplyByScalar(g, A, new Cesium.Cartesian3()),
2117
+ new Cesium.Cartesian3()
2118
+ ), new Cesium.Cartesian3()),
2119
+ Cesium.Cartesian3.add(P, Cesium.Cartesian3.add(
2120
+ Cesium.Cartesian3.multiplyByScalar(f, S, new Cesium.Cartesian3()),
2121
+ Cesium.Cartesian3.multiplyByScalar(g, A, new Cesium.Cartesian3()),
2122
+ new Cesium.Cartesian3()
2123
+ ), new Cesium.Cartesian3()),
2124
+ Cesium.Cartesian3.add(P, Cesium.Cartesian3.add(
2125
+ Cesium.Cartesian3.multiplyByScalar(f, S, new Cesium.Cartesian3()),
2126
+ Cesium.Cartesian3.multiplyByScalar(g, -A, new Cesium.Cartesian3()),
2127
+ new Cesium.Cartesian3()
2128
+ ), new Cesium.Cartesian3()),
2129
+ Cesium.Cartesian3.add(P, Cesium.Cartesian3.add(
2130
+ Cesium.Cartesian3.multiplyByScalar(f, -S, new Cesium.Cartesian3()),
2131
+ Cesium.Cartesian3.multiplyByScalar(g, -A, new Cesium.Cartesian3()),
2132
+ new Cesium.Cartesian3()
2133
+ ), new Cesium.Cartesian3())
2134
+ ];
2135
+ }
2136
+ const B = E(a, _, c), x = E(s, w, v);
2137
+ return { nearCorners: B, farCorners: x };
2138
+ }
2139
+ /**
2140
+ * 创建视锥线框(PolylineCollection 方式,可动态更新)
2141
+ */
2142
+ _drawFrustumOutline() {
2143
+ const e = this.frustumOutlineColor ? this.frustumOutlineColor instanceof Cesium.Color ? this.frustumOutlineColor : Cesium.Color.fromCssColorString(this.frustumOutlineColor) : Cesium.Color.GREEN, a = new Cesium.PolylineCollection(), s = e;
2144
+ for (let i = 0; i < 12; i++)
2145
+ a.add({
2146
+ positions: [Cesium.Cartesian3.ZERO, Cesium.Cartesian3.ZERO],
2147
+ width: 1.5,
2148
+ material: Cesium.Material.fromType("Color", { color: s })
2149
+ });
2150
+ this.frustumOutline = this.viewer.scene.primitives.add(a), this._frustumPolylines = a, this._updateFrustumPositions();
2151
+ }
2152
+ /**
2153
+ * 更新视锥线框顶点(updatePose 调用,不重建 Primitive)
2154
+ */
2155
+ _updateFrustumPositions() {
2156
+ if (!this._frustumPolylines) return;
2157
+ const { nearCorners: e, farCorners: a } = this._computeFrustumCorners(), i = this._frustumPolylines._polylines;
2158
+ let l = 0;
2159
+ for (let r = 0; r < 4; r++) {
2160
+ const p = (r + 1) % 4;
2161
+ i[l].positions = [e[r], e[p]], l++;
2162
+ }
2163
+ for (let r = 0; r < 4; r++) {
2164
+ const p = (r + 1) % 4;
2165
+ i[l].positions = [a[r], a[p]], l++;
2166
+ }
2167
+ for (let r = 0; r < 4; r++)
2168
+ i[l].positions = [e[r], a[r]], l++;
2169
+ }
2170
+ _drawSketch() {
2171
+ const e = Cesium.Math.toDegrees(this.fov * this.aspectRatio / 2), a = Cesium.Math.toDegrees(this.fov / 2);
2172
+ this.sketch = this.viewer.entities.add({
2173
+ name: "sketch",
2174
+ id: this.CameraId,
2175
+ position: this.position,
2176
+ orientation: Cesium.Transforms.headingPitchRollQuaternion(
2177
+ this.position,
2178
+ Cesium.HeadingPitchRoll.fromDegrees(
2179
+ this.heading - e,
2180
+ this.pitch,
2181
+ this.roll
2182
+ )
2183
+ ),
2184
+ ellipsoid: {
2185
+ radii: new Cesium.Cartesian3(this.viewDistance, this.viewDistance, this.viewDistance),
2186
+ minimumClock: Cesium.Math.toRadians(-e),
2187
+ maximumClock: Cesium.Math.toRadians(e),
2188
+ minimumCone: Cesium.Math.toRadians(a + 7.75),
2189
+ maximumCone: Cesium.Math.toRadians(180 - a - 7.75),
2190
+ fill: !1,
2191
+ outline: !0,
2192
+ subdivisions: 256,
2193
+ stackPartitions: 64,
2194
+ slicePartitions: 64,
2195
+ outlineColor: Cesium.Color.YELLOWGREEN
2196
+ }
2197
+ });
2198
+ }
2199
+ createTextureFromCanvas(e) {
2200
+ var a = new Cesium.Texture({
2201
+ context: this.viewer.scene.context,
2202
+ source: {
2203
+ width: e.width,
2204
+ height: e.height,
2205
+ arrayBufferView: e
2206
+ },
2207
+ flipY: !1,
2208
+ pixelFormat: Cesium.PixelFormat.RGBA,
2209
+ pixelDatatype: Cesium.PixelDatatype.UNSIGNED_BYTE,
2210
+ sampler: new Cesium.Sampler({
2211
+ wrapS: Cesium.TextureWrap.CLAMP_TO_EDGE,
2212
+ wrapT: Cesium.TextureWrap.CLAMP_TO_EDGE
2213
+ })
2214
+ });
2215
+ return a;
2216
+ }
2217
+ }
2218
+ const It = { class: "uav-container-box" }, Bt = {
2219
+ key: 0,
2220
+ class: "uav-container"
2221
+ }, Rt = { class: "uav-header" }, Ut = { class: "title" }, Ht = { class: "uav-body" }, zt = { class: "uav-video" }, Gt = { class: "uav-list-group" }, jt = { class: "uav-list" }, Zt = {
2222
+ key: 0,
2223
+ class: "uav-item-null"
2224
+ }, Yt = ["onClick"], $t = { class: "uav-item-content" }, Nt = { class: "uav-operate" }, Xt = ["onClick"], Wt = ["onClick"], Jt = ["onClick"], Qt = { class: "uav-info-group" }, qt = { class: "uav-info-detail" }, Kt = { class: "uav-info-base grid space-between" }, ea = { key: 0 }, ta = { key: 1 }, aa = { key: 2 }, ia = { class: "nameValue" }, sa = { class: "name" }, oa = { class: "value" }, ra = { class: "uav-info-attitude" }, na = { class: "compass" }, la = { class: "attitude" }, T0 = {
2225
+ __name: "index",
2226
+ props: {
2227
+ // 组件显示隐藏控制
2228
+ uavShow: {
2229
+ type: Boolean,
2230
+ default: !1
2231
+ },
2232
+ uavTitle: {
2233
+ type: String,
2234
+ default: "无人机信息"
2235
+ },
2236
+ activeType: {
2237
+ type: Boolean,
2238
+ default: !1
2239
+ },
2240
+ // 动态传入无人机列表数据
2241
+ virtualCameraList: {
2242
+ type: Array,
2243
+ default: () => []
2244
+ },
2245
+ // 是否使用外部传入的数据(默认true,如果为false则内部通过fetch获取)
2246
+ useExternalData: {
2247
+ type: Boolean,
2248
+ default: !1
2249
+ },
2250
+ // 无人机列表接口地址
2251
+ droneListAPiUrl: {
2252
+ type: String,
2253
+ default: ""
2254
+ },
2255
+ // 无人机动态信息接口
2256
+ droneWsUrl: {
2257
+ type: String,
2258
+ default: ""
2259
+ },
2260
+ // 视频平台地址
2261
+ vacApiIpPort: {
2262
+ type: String,
2263
+ default: ""
2264
+ },
2265
+ // 设备ID
2266
+ deviceId: {
2267
+ type: String,
2268
+ default: ""
2269
+ },
2270
+ // Cesium viewer实例对象挂载
2271
+ cesiumViewer: {
2272
+ type: Object,
2273
+ default: null
2274
+ },
2275
+ // 虚拟相机参数配置
2276
+ virtualCameraOptions: {
2277
+ type: Object,
2278
+ default: () => ({
2279
+ fov: 20,
2280
+ viewDistance: 5e4,
2281
+ frustumOutlineColor: "#FF0000"
2282
+ })
2283
+ }
2284
+ },
2285
+ emits: ["update:uavShow", "close", "track", "handleOperate"],
2286
+ setup(t, { emit: e }) {
2287
+ const a = t, s = e, i = C(a.uavTitle), l = C(0), r = C(a.uavShow), p = C(""), c = C("1"), _ = C("follow"), v = C(""), w = C([]), k = C(null);
2288
+ C(0);
2289
+ const g = C(10), f = C(/* @__PURE__ */ new Map());
2290
+ let E = null;
2291
+ const B = X(() => a.useExternalData && a.virtualCameraList.length > 0 ? a.virtualCameraList : w.value), x = C([
2292
+ {
2293
+ type: "name",
2294
+ name: "名称",
2295
+ value: "-- --"
2296
+ },
2297
+ {
2298
+ type: "status",
2299
+ name: "状态",
2300
+ value: "-- --"
2301
+ },
2302
+ {
2303
+ type: "battery",
2304
+ name: "电量",
2305
+ value: "-- --"
2306
+ }
2307
+ ]), M = C([
2308
+ {
2309
+ name: "速度",
2310
+ value: ""
2311
+ },
2312
+ {
2313
+ name: "高度H",
2314
+ value: ""
2315
+ },
2316
+ {
2317
+ name: "高度E",
2318
+ value: ""
2319
+ },
2320
+ {
2321
+ name: "经度",
2322
+ value: ""
2323
+ },
2324
+ {
2325
+ name: "纬度",
2326
+ value: ""
2327
+ }
2328
+ ]), S = [
2329
+ { name: "速度", value: "--" },
2330
+ { name: "高度H", value: "--" },
2331
+ { name: "高度E", value: "--" },
2332
+ { name: "经度", value: "--" },
2333
+ { name: "纬度", value: "--" }
2334
+ ], A = () => {
2335
+ r.value = !r.value;
2336
+ }, P = C(null), Y = (d) => {
2337
+ v.value = d.guid, console.log(d);
2338
+ }, $ = (d, o) => {
2339
+ console.log(d, o), i.value = o.name, c.value = o.guid, _.value = d, x.value = [
2340
+ { type: "name", name: "名称", value: (o == null ? void 0 : o.name) ?? "--" },
2341
+ { type: "status", name: "状态", value: "--" },
2342
+ { type: "battery", name: "电量", value: "--" }
2343
+ ], M.value = S;
2344
+ }, j = (d, o, h) => {
2345
+ if (console.log(d, o, h), d === "begin") {
2346
+ o.isRunning = !0, p.value = `ws://${a.vacApiIpPort}/rtp/${a.deviceId}_${o.gbCode}.live.flv` || o.flv;
2347
+ const n = a.cesiumViewer || window.CesiumViewer;
2348
+ if (!n) {
2349
+ console.error("Cesium viewer 未找到,请检查!");
2350
+ return;
2351
+ }
2352
+ const b = n.camera.positionCartographic, y = Cesium.Math.toDegrees(b.longitude), R = Cesium.Math.toDegrees(b.latitude), Z = b.height;
2353
+ L2(o.guid, o.flv, {
2354
+ position: Cesium.Cartesian3.fromDegrees(y, R, Z),
2355
+ ...a.virtualCameraOptions
2356
+ });
2357
+ }
2358
+ d === "stop" && (o.isRunning = !1, E && (E.destroy(), f.value.delete(o.guid), E = null)), k.value = o.guid, s("handleOperate", { type: d, item: o, videoInfo: h });
2359
+ }, d2 = async (d, { method: o = "POST", body: h = null } = {}) => {
2360
+ try {
2361
+ const n = { method: o };
2362
+ h && o !== "GET" && (n.body = h), n.headers = { "Content-Type": "application/json" };
2363
+ const b = await fetch(d, n);
2364
+ if (!b.ok) throw new Error(`HTTP ${b.status}: ${b.statusText}`);
2365
+ const y = await b.json(), R = y == null ? void 0 : y.data;
2366
+ if (!Array.isArray(R))
2367
+ return console.warn("返回数据异常,data 不是数组:", R), w.value = [], [];
2368
+ const Z = R.map((H) => ({
2369
+ guid: H.sn,
2370
+ id: H.id,
2371
+ name: H.name,
2372
+ state: H.state || "unknown",
2373
+ // 提供默认值
2374
+ flv: H.flv,
2375
+ isRunning: !1,
2376
+ ...H
2377
+ }));
2378
+ return w.value = Z, Z;
2379
+ } catch (n) {
2380
+ throw console.error("获取无人机列表失败:", n), w.value = [], n;
2381
+ }
2382
+ }, c2 = C(/* @__PURE__ */ new Set());
2383
+ let F = null;
2384
+ const q = (d) => {
2385
+ if (!d && F) {
2386
+ F.send(JSON.stringify({ method: "drone", data: ["关闭无人机!"] })), F.close(), F = null, c2.value.clear(), console.log("无人机ws 已关闭");
2387
+ return;
2388
+ }
2389
+ F || (F = new WebSocket(`ws://${a.droneWsUrl}`), F.onopen = () => {
2390
+ }, F.onmessage = (o) => {
2391
+ var b;
2392
+ let h = null;
2393
+ try {
2394
+ h = JSON.parse(o == null ? void 0 : o.data);
2395
+ } catch (y) {
2396
+ console.error("JSON解析失败,消息内容:", o.data, "错误:", y);
2397
+ return;
2398
+ }
2399
+ if (!(h != null && h.data) || ((b = h == null ? void 0 : h.data) == null ? void 0 : b.length) === 0) {
2400
+ console.warn("数据数组为空:", h);
2401
+ return;
2402
+ }
2403
+ const n = h == null ? void 0 : h.data[0];
2404
+ if (n)
2405
+ try {
2406
+ const y = Number(n.longitude) || 1, R = Number(n.latitude) || 1, Z = Number(n.height) || 1, H = Number(n.gimbalPitch) || 1, Z2 = Number(n.gimbalYaw) || 1, I = Number(n.attitudeHead) || 1;
2407
+ if (k.value !== n.sn)
2408
+ return;
2409
+ p2(y, R, Z, I, H), g.value = I, x.value = [
2410
+ { type: "name", name: "名称", value: n.name ?? "--" },
2411
+ { type: "status", name: "状态", value: n.state == "1" ? "在线" : "离线" },
2412
+ { type: "battery", name: "电量", value: n.battery ?? "--" }
2413
+ ], M.value = [
2414
+ { name: "速度", value: n.speed ?? "--" },
2415
+ { name: "高度H", value: n.height ?? "--" },
2416
+ { name: "高度E", value: n.elevation ?? "--" },
2417
+ { name: "经度", value: n.longitude ?? "--" },
2418
+ { name: "纬度", value: n.latitude ?? "--" }
2419
+ ];
2420
+ } catch (y) {
2421
+ console.error("更新虚拟相机位置失败:", y);
2422
+ }
2423
+ }, F.onclose = function() {
2424
+ console.log("连接关闭"), F = null;
2425
+ });
2426
+ }, p2 = async (d, o, h, n, b) => {
2427
+ const y = Cesium.Cartesian3.fromDegrees(d, o, h);
2428
+ E.updatePose({
2429
+ position: y,
2430
+ heading: n,
2431
+ pitch: b
2432
+ });
2433
+ const R = Math.max(500, h * 1.5);
2434
+ (a.cesiumViewer || window.CesiumViewer).camera.lookAt(
2435
+ y,
2436
+ new Cesium.HeadingPitchRange(
2437
+ n,
2438
+ // 保持与无人机航向一致
2439
+ Cesium.Math.toRadians(-90),
2440
+ // 固定俯视角度70度
2441
+ R
2442
+ // 动态观察距离
2443
+ )
2444
+ );
2445
+ }, i2 = () => {
2446
+ console.log("销毁所有虚拟相机,共", f.value.size, "个"), f.value.forEach((d, o) => {
2447
+ try {
2448
+ d.destroy(), console.log("虚拟相机", o, "已销毁");
2449
+ } catch (h) {
2450
+ console.error("销毁虚拟相机", o, "失败:", h);
2451
+ }
2452
+ }), f.value.clear(), E = null;
2453
+ }, s2 = () => {
2454
+ var d;
2455
+ (d = P.value) == null || d.handleDestroy();
2456
+ }, h2 = () => {
2457
+ s2(), i2(), c.value = "", _.value = "", k.value = null, s("update:uavShow", !1);
2458
+ }, L2 = (d, o, h = {}) => {
2459
+ console.log("启动无人机", a.cesiumViewer, window.CesiumViewer);
2460
+ const n = a.cesiumViewer || window.CesiumViewer;
2461
+ if (!n)
2462
+ return console.error("Cesium viewer 未就绪"), {
2463
+ destroy: () => console.warn("未创建虚拟相机,无需销毁")
2464
+ };
2465
+ const b = n.camera.positionCartographic, y = Cesium.Math.toDegrees(b.longitude), R = Cesium.Math.toDegrees(b.latitude), Z = b.height, Z2 = { ...{
2466
+ id: `drone_${d}`,
2467
+ position: Cesium.Cartesian3.fromDegrees(y, R, Z),
2468
+ heading: 45,
2469
+ pitch: -75,
2470
+ fov: 60,
2471
+ viewDistance: 1e4,
2472
+ frustumOutlineColor: "#00FF00"
2473
+ }, ...h }, I = new Ft(n, Z2);
2474
+ return f.value.set(d, I), console.log("已创建虚拟相机:", f.value, d, I), E = I, I.init(), I.play({ url: o }), {
2475
+ vc: I,
2476
+ destroy: () => {
2477
+ I && (I.destroy(), f.value.delete(d), E === I && (E = null), console.log("VirtualCamera 已销毁"));
2478
+ }
2479
+ };
2480
+ };
2481
+ return W(
2482
+ () => a.activeType,
2483
+ (d, o) => {
2484
+ console.log("activeType:" + d);
2485
+ }
2486
+ ), W(() => a.uavShow, (d) => {
2487
+ console.log("无人机面板显隐:" + d), r.value = d, d && d2(a.droneListAPiUrl), q(d);
2488
+ }), W(() => a.uavTitle, (d) => {
2489
+ i.value = d;
2490
+ }), g2(() => {
2491
+ d2(a.droneListAPiUrl);
2492
+ }), n0(() => {
2493
+ s2(), i2(), h2();
2494
+ }), (d, o) => {
2495
+ const h = C2("a-tooltip");
2496
+ return m(), T("div", It, [
2497
+ r.value ? (m(), T("div", Bt, [
2498
+ u("div", Rt, [
2499
+ u("h3", Ut, z(i.value), 1),
2500
+ u("span", {
2501
+ class: "close",
2502
+ onClick: h2
2503
+ })
2504
+ ]),
2505
+ u("div", Ht, [
2506
+ u("div", zt, [
2507
+ r.value ? (m(), U(kt, {
2508
+ url: p.value,
2509
+ title: "",
2510
+ key: l.value,
2511
+ ref_key: "videoItemRef",
2512
+ ref: P
2513
+ }, null, 8, ["url"])) : D("", !0)
2514
+ ]),
2515
+ u("div", Gt, [
2516
+ o[5] || (o[5] = u("div", { class: "uav-header2" }, "无人机列表", -1)),
2517
+ u("div", jt, [
2518
+ B.value.length === 0 ? (m(), T("div", Zt, "暂无数据")) : (m(!0), T(T2, { key: 1 }, E2(B.value, (n) => (m(), T("div", {
2519
+ key: n == null ? void 0 : n.guid,
2520
+ class: r2(["uav-item flex align-items", { active: v.value === n.guid }]),
2521
+ onClick: (b) => Y(n)
2522
+ }, [
2523
+ u("div", $t, [
2524
+ c.value === n.guid ? (m(), T("div", {
2525
+ key: 0,
2526
+ class: r2(["status-bar", _.value === "follow"])
2527
+ }, null, 2)) : D("", !0),
2528
+ u("div", {
2529
+ class: r2(["uav-name", c.value === n.guid ? "activeFly" : ""])
2530
+ }, z(n.name), 3)
2531
+ ]),
2532
+ u("div", Nt, [
2533
+ u("div", {
2534
+ class: "operate-item",
2535
+ onClick: A2((b) => $("follow", n), ["stop"])
2536
+ }, [
2537
+ K(h, null, {
2538
+ title: L(() => [...o[0] || (o[0] = [
2539
+ u("span", null, "跟随", -1)
2540
+ ])]),
2541
+ default: L(() => [
2542
+ u("i", {
2543
+ class: r2(["smart-ui-icons smart-ui-icon-chaosong", c.value === n.guid ? "uav-fllow-active" : ""]),
2544
+ title: "跟随"
2545
+ }, null, 2)
2546
+ ]),
2547
+ _: 2
2548
+ }, 1024)
2549
+ ], 8, Xt),
2550
+ n.isRunning ? D("", !0) : (m(), T("div", {
2551
+ key: 0,
2552
+ class: "operate-item",
2553
+ onClick: A2((b) => j("begin", n), ["stop"])
2554
+ }, [
2555
+ K(h, null, {
2556
+ title: L(() => [...o[1] || (o[1] = [
2557
+ u("span", null, "融合开", -1)
2558
+ ])]),
2559
+ default: L(() => [
2560
+ o[2] || (o[2] = u("i", {
2561
+ class: "smart-ui-icons smart-ui-icon-play",
2562
+ title: "融合开"
2563
+ }, null, -1))
2564
+ ]),
2565
+ _: 1
2566
+ })
2567
+ ], 8, Wt)),
2568
+ n.isRunning ? (m(), T("div", {
2569
+ key: 1,
2570
+ class: "operate-item",
2571
+ onClick: A2((b) => j("stop", n), ["stop"])
2572
+ }, [
2573
+ K(h, null, {
2574
+ title: L(() => [...o[3] || (o[3] = [
2575
+ u("span", null, "融合关", -1)
2576
+ ])]),
2577
+ default: L(() => [
2578
+ o[4] || (o[4] = u("i", {
2579
+ class: "smart-ui-icons smart-ui-icon-stop",
2580
+ title: "融合关"
2581
+ }, null, -1))
2582
+ ]),
2583
+ _: 1
2584
+ })
2585
+ ], 8, Jt)) : D("", !0)
2586
+ ])
2587
+ ], 10, Yt))), 128))
2588
+ ])
2589
+ ]),
2590
+ u("div", Qt, [
2591
+ o[9] || (o[9] = u("div", { class: "uav-header2" }, "无人机信息", -1)),
2592
+ u("div", qt, [
2593
+ u("div", Kt, [
2594
+ (m(!0), T(T2, null, E2(x.value, (n, b) => (m(), T("div", {
2595
+ key: b,
2596
+ class: "flex align-items uav-icon"
2597
+ }, [
2598
+ n.type == "name" ? (m(), T("div", ea, [...o[6] || (o[6] = [
2599
+ u("img", { src: E0 }, null, -1)
2600
+ ])])) : D("", !0),
2601
+ n.type == "status" ? (m(), T("div", ta, [...o[7] || (o[7] = [
2602
+ u("img", {
2603
+ src: A0,
2604
+ alt: ""
2605
+ }, null, -1)
2606
+ ])])) : D("", !0),
2607
+ n.type == "battery" ? (m(), T("div", aa, [...o[8] || (o[8] = [
2608
+ u("img", {
2609
+ src: k0,
2610
+ alt: ""
2611
+ }, null, -1)
2612
+ ])])) : D("", !0),
2613
+ u("div", ia, [
2614
+ u("div", sa, z(n.name), 1),
2615
+ u("div", oa, z(n.value), 1)
2616
+ ])
2617
+ ]))), 128))
2618
+ ]),
2619
+ u("div", ra, [
2620
+ u("div", na, [
2621
+ u("img", {
2622
+ src: P0,
2623
+ style: f2(`transform:rotate(${g.value}deg) `)
2624
+ }, null, 4)
2625
+ ]),
2626
+ u("div", la, [
2627
+ (m(!0), T(T2, null, E2(M.value, (n) => (m(), T("p", {
2628
+ key: n.name
2629
+ }, z(n.name) + ":" + z(n.value), 1))), 128))
2630
+ ])
2631
+ ])
2632
+ ])
2633
+ ])
2634
+ ])
2635
+ ])) : D("", !0),
2636
+ u("div", {
2637
+ class: "uav-collpase",
2638
+ onClick: A
2639
+ }, [...o[10] || (o[10] = [
2640
+ u("img", {
2641
+ src: D0,
2642
+ alt: "展开/收起"
2643
+ }, null, -1)
2644
+ ])])
2645
+ ]);
2646
+ };
2647
+ }
2648
+ }, da = {
2649
+ UavComponent: T0,
2650
+ SyzVideoPlayer: j2,
2651
+ VideoPlane: V0,
2652
+ VideoPlaneManager: Pt,
2653
+ DataTransformer: Dt
2654
+ };
2655
+ function ca(t) {
2656
+ t.component("UavComponent", T0);
2657
+ }
2658
+ export {
2659
+ Dt as DataTransformer,
2660
+ j2 as SyzVideoPlayer,
2661
+ T0 as UavComponent,
2662
+ V0 as VideoPlane,
2663
+ Pt as VideoPlaneManager,
2664
+ da as default,
2665
+ ca as install
2666
+ };