@mobileaction/action-kit 1.45.0 → 1.45.2
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.
- package/CHANGELOG.md +15 -0
- package/dist/3square-bold-CJcXGzsm.js +18 -0
- package/dist/403-C7BxdMS4.js +33 -0
- package/dist/404-CrmzzOsJ.js +32 -0
- package/dist/500-ChzuizyP.js +33 -0
- package/dist/action-kit.mjs +180 -20260
- package/dist/activity-bulk-C-ZaSWp8.js +12 -0
- package/dist/add-CfLtdlT5.js +8 -0
- package/dist/add-app-B0KOgVxC.js +84 -0
- package/dist/add-bold-rJ0nWfUJ.js +7 -0
- package/dist/add-bulk-CkFgoJnG.js +11 -0
- package/dist/add-button-D8WydDUg.js +9 -0
- package/dist/add-circle-bold-DBqTkk3x.js +7 -0
- package/dist/add-circle-bulk-QF0YFF9b.js +11 -0
- package/dist/add-circle-yukhQprG.js +11 -0
- package/dist/add-square-BtF3-9Jr.js +9 -0
- package/dist/add-square-bold-Dtwj-RC4.js +7 -0
- package/dist/adjust-colorful-CFRBnedd.js +15 -0
- package/dist/affirm-QEEZEsAF.js +10 -0
- package/dist/aim-outlined-CQtHAhot.js +5 -0
- package/dist/airplane-bulk-C57TYNfm.js +8 -0
- package/dist/align-left-BpY-_KMu.js +13 -0
- package/dist/align-left-bold-hCKLkI9L.js +14 -0
- package/dist/align-left-bulk-BcZRUWo3.js +14 -0
- package/dist/alipay-6GQIdPUb.js +12 -0
- package/dist/amazon-f6mYBhSW.js +10 -0
- package/dist/amex-2-B_l_or5g.js +11 -0
- package/dist/amex-DLZu-uN7.js +9 -0
- package/dist/android-SZ9tOG27.js +10 -0
- package/dist/android-storefront-Dd8l94Xt.js +12 -0
- package/dist/angle-double-right-BDlMcWaF.js +9 -0
- package/dist/annotations-DJexnIAc.js +1257 -0
- package/dist/app-D8zF46nh.js +8 -0
- package/dist/app-store-CMr7S31B.js +7 -0
- package/dist/app-store-colorful-BondAyyq.js +24 -0
- package/dist/apple-C5dVRPeN.js +7 -0
- package/dist/apple-bold-xiJy62g9.js +8 -0
- package/dist/apple-storefront-DXOS8QRc.js +9 -0
- package/dist/apple-vision-pro-D4zEzFeC.js +20 -0
- package/dist/applepay-DRD88bt3.js +9 -0
- package/dist/appsflyer-colorful-DhCoDqxc.js +20 -0
- package/dist/arcade-bulk-Cizc7WAm.js +13 -0
- package/dist/area-chart-outlined-BHIIpVvJ.js +7 -0
- package/dist/arrow-down-DcS_1caW.js +8 -0
- package/dist/arrow-down-bold-LMQcIpLm.js +7 -0
- package/dist/arrow-down-circle-C9C94ult.js +8 -0
- package/dist/arrow-down-circle-bold-BvSy_bkK.js +7 -0
- package/dist/arrow-left-CAPpR_Dd.js +8 -0
- package/dist/arrow-left-bold-ParAfd20.js +7 -0
- package/dist/arrow-left-bulk-CiGVXFG4.js +10 -0
- package/dist/arrow-left-circle-B9w6y1TT.js +8 -0
- package/dist/arrow-left-circle-bold-Dz9HJlfJ.js +7 -0
- package/dist/arrow-left-down-line-BeGwt11h.js +7 -0
- package/dist/arrow-right-D2kBik46.js +8 -0
- package/dist/arrow-right-bold-Bv4WgIjr.js +7 -0
- package/dist/arrow-right-bulk-B-zxuGgL.js +10 -0
- package/dist/arrow-right-circle-Dnw3J9BK.js +8 -0
- package/dist/arrow-right-circle-bold-C0AfSkr9.js +7 -0
- package/dist/arrow-right-up-line-_XIuq3yQ.js +7 -0
- package/dist/arrow-up-B1p5AR6I.js +8 -0
- package/dist/arrow-up-bold-L5oKWdan.js +7 -0
- package/dist/arrow-up-circle-DVuRsMhl.js +8 -0
- package/dist/arrow-up-circle-bold-DUSXkykH.js +7 -0
- package/dist/asterisk-9AXoQkwn.js +7 -0
- package/dist/bag-bulk-FG5NqkNc.js +8 -0
- package/dist/bahai-C_Co5Kfa.js +7 -0
- package/dist/bancontact-NBMkp3hp.js +11 -0
- package/dist/bitcoin-jQBIOTGI.js +9 -0
- package/dist/bitcoincash-Cjj6dsmc.js +9 -0
- package/dist/bitpay-D9311Lnt.js +9 -0
- package/dist/book-bulk-BHrb2y_l.js +10 -0
- package/dist/book-closed-bulk-D3Yq87Ij.js +10 -0
- package/dist/book-saved-bulk-n2sN57Pv.js +9 -0
- package/dist/book-square-bulk-D8-Pp3nD.js +9 -0
- package/dist/bookmark-CjUGHEr3.js +10 -0
- package/dist/bookmark-bold-Biv-1Wba.js +8 -0
- package/dist/bookmark-bulk-BKoG9hHT.js +8 -0
- package/dist/box-empty-yjdRW5b1.js +15 -0
- package/dist/brain-D4MC-14s.js +7 -0
- package/dist/broom-DPB2Iteq.js +12 -0
- package/dist/broom-bold-CM_HmJqA.js +8 -0
- package/dist/brush-bulk-tJALzT__.js +9 -0
- package/dist/bubble-bulk-BTpL-bb7.js +9 -0
- package/dist/bucket-bulk-Ci8zpLhJ.js +10 -0
- package/dist/bullhorn-LLf-1SmO.js +7 -0
- package/dist/bus-bulk-BOr4mytN.js +11 -0
- package/dist/buy-crypto-puTvlJpl.js +14 -0
- package/dist/calendar-BlLMwoBP.js +16 -0
- package/dist/calendar-alt-BKnM7n0O.js +7 -0
- package/dist/calendar-bold-BpQAB_z8.js +8 -0
- package/dist/calendar-bulk-BzZfuqtM.js +14 -0
- package/dist/camera-bulk-BO7Eo8H6.js +9 -0
- package/dist/car-bulk-FmIXX1qs.js +10 -0
- package/dist/card-bold-CN0fE1gw.js +8 -0
- package/dist/card-bulk-DXbpwQAu.js +17 -0
- package/dist/card-wNHXTqeT.js +10 -0
- package/dist/caret-down-bold-BERscvOg.js +7 -0
- package/dist/caret-down-tvQ0wO59.js +7 -0
- package/dist/caret-left-bold-BZQbVIdi.js +7 -0
- package/dist/caret-left-r0cEVXpb.js +7 -0
- package/dist/caret-right-BiKWyqNF.js +7 -0
- package/dist/caret-right-bold-DLtiJMVR.js +7 -0
- package/dist/caret-up-BB-CRsSj.js +7 -0
- package/dist/caret-up-bold-UK8P9-08.js +7 -0
- package/dist/casino-bulk-CqvLTh7O.js +8 -0
- package/dist/category-bold-XJfqvFJ6.js +18 -0
- package/dist/category-qYgorCTW.js +19 -0
- package/dist/certificate-DYL_cT8o.js +7 -0
- package/dist/chart-2-BN26M-b-.js +9 -0
- package/dist/chart-2-bulk-BjvV0Aug.js +14 -0
- package/dist/chart-DpVpY-Vu.js +10 -0
- package/dist/chart-area-BvyvoMm3.js +7 -0
- package/dist/chart-bar-CM3Xb2mP.js +7 -0
- package/dist/chart-bold-UKhmSTE0.js +10 -0
- package/dist/chart-bulk-CTq2mnXZ.js +15 -0
- package/dist/check-B3I3zCmC.js +7 -0
- package/dist/check-line-DYj6YGse.js +7 -0
- package/dist/checkered-flag-5-3PFpmn.js +7 -0
- package/dist/chef-bulk-BEqyA56n.js +8 -0
- package/dist/chess-bulk-BPA2r7WS.js +12 -0
- package/dist/chevron-down-Deuidy6-.js +8 -0
- package/dist/chevron-left-Ctlppl-V.js +8 -0
- package/dist/chevron-right-2ieak7bv.js +8 -0
- package/dist/chevron-up-D_7NtGL8.js +8 -0
- package/dist/chevrons-down-OM00VHS8.js +7 -0
- package/dist/chevrons-left-DIT25I4_.js +7 -0
- package/dist/chevrons-right-m-EJdxEx.js +7 -0
- package/dist/chevrons-up-BZK_GrX7.js +7 -0
- package/dist/circle-CTAenz0k.js +7 -0
- package/dist/circle-exclamation-zJMdScgp.js +7 -0
- package/dist/circle-notch-DKAGZDOT.js +7 -0
- package/dist/citadele-DoufmjNd.js +9 -0
- package/dist/clipboard-BG2E7FaC.js +14 -0
- package/dist/clipboard-bold-D2N8tdmb.js +11 -0
- package/dist/clipboard-bulk-sLVuG5mo.js +14 -0
- package/dist/clipboard-close-bulk-C2Od4E0n.js +9 -0
- package/dist/clipboard-close-dwi0R13N.js +10 -0
- package/dist/clipboard-tick-Bs2j86bP.js +9 -0
- package/dist/clipboard-tick-bulk-DjbSSuqx.js +9 -0
- package/dist/clock-9hGnvEpx.js +8 -0
- package/dist/clock-bold-B3F7QJSr.js +7 -0
- package/dist/clock-bulk-Cbha__mN.js +8 -0
- package/dist/clone-CGXjd_O6.js +7 -0
- package/dist/close-CE1Ttgok.js +4 -0
- package/dist/close-circle-0PKwUI2n.js +9 -0
- package/dist/close-circle-bold-BiatlGpI.js +7 -0
- package/dist/close-circle-bulk-Co53Qhf4.js +11 -0
- package/dist/close-square--5kO3rO3.js +9 -0
- package/dist/close-square-bold-xLahqGNn.js +7 -0
- package/dist/cloud-sunny-bulk-krVwPlJq.js +8 -0
- package/dist/cloud-upload-CMQ2H2Xw.js +7 -0
- package/dist/coffee-bulk-_FwJ31qQ.js +12 -0
- package/dist/cogs-BFDHd9oV.js +7 -0
- package/dist/color-filter-5UXc6d-3.js +14 -0
- package/dist/columns-B_ddNZH6.js +8 -0
- package/dist/columns-bold-0mI_AF4E.js +8 -0
- package/dist/compass-bulk-O_dyJK8R.js +8 -0
- package/dist/compress-BTVhSIne.js +7 -0
- package/dist/contains-linear-D_ZOgtJs.js +11 -0
- package/dist/control-CRfzjsnP.js +15 -0
- package/dist/convert-shape-CVmRrL_7.js +15 -0
- package/dist/convert-shape-bold-D8EJZmLu.js +17 -0
- package/dist/convert-shape-bulk-B_pG3vuO.js +17 -0
- package/dist/copy-BGwrOBcD.js +8 -0
- package/dist/copy-bold-BZGfHMaV.js +8 -0
- package/dist/copy-bulk-BoNRDlip.js +11 -0
- package/dist/crosshairs-ChxTMv2D.js +7 -0
- package/dist/crown-B_ojP5tx.js +8 -0
- package/dist/crown-bold-BBDmNqWc.js +7 -0
- package/dist/cup-Buafqbt4.js +21 -0
- package/dist/cup-bold-Bu6x_n4h.js +11 -0
- package/dist/cup-bulk-D211-pdJ.js +20 -0
- package/dist/danger-DJpo9tCE.js +9 -0
- package/dist/danger-bold-Cg0uBFsY.js +7 -0
- package/dist/danger-bulk-CUUs6V03.js +9 -0
- package/dist/dashboard-UX0q0D9I.js +7 -0
- package/dist/data-Dv7s_0Te.js +21 -0
- package/dist/data-bold-BFrZ-O5s.js +20 -0
- package/dist/data-bulk-DBuLkwtO.js +20 -0
- package/dist/devices-CXklsSh3.js +15 -0
- package/dist/diagram-BupSoeiO.js +8 -0
- package/dist/dinersclub-D44gkCbJ.js +9 -0
- package/dist/direct-inbox-DylWmuzi.js +15 -0
- package/dist/direct-inbox-bold-CCWCw_-0.js +13 -0
- package/dist/direct-inbox-bulk-DYtg9M7Y.js +14 -0
- package/dist/direct-normal-BPBdlwBo.js +8 -0
- package/dist/direct-normal-bulk-DcOBBi4G.js +8 -0
- package/dist/discover-BkA7VSz7.js +11 -0
- package/dist/dislike-bold-BSR6hBMk.js +8 -0
- package/dist/dislike-sk_SIvgR.js +8 -0
- package/dist/document-CcwCOx8o.js +10 -0
- package/dist/document-bold-C3w4WmiX.js +8 -0
- package/dist/document-bulk-DzaJn1FI.js +17 -0
- package/dist/dollar-circle-DQDG8tR_.js +9 -0
- package/dist/dot-qgcav4-k.js +7 -0
- package/dist/download-Ci2W0i7r.js +10 -0
- package/dist/download-bold-DeSpumUD.js +12 -0
- package/dist/download-bulk-CC-3xztv.js +15 -0
- package/dist/drag-dKM4Quja.js +11 -0
- package/dist/driving-bulk-Bc59A5J9.js +14 -0
- package/dist/edit-2-BC7b2AzO.js +9 -0
- package/dist/edit-2-bold-DCcDQ9-W.js +15 -0
- package/dist/edit-2-bulk-DYtmSJfs.js +9 -0
- package/dist/edit-BNITBRCp.js +9 -0
- package/dist/edit-bold-aOLZkHZD.js +7 -0
- package/dist/element-2-bulk-C_8abf85.js +10 -0
- package/dist/element-3-bulk-B8jO18ki.js +9 -0
- package/dist/element-bulk-C0Bbk7Nz.js +10 -0
- package/dist/element-plus-ByIYHmvX.js +17 -0
- package/dist/element-plus-bold-BmLvcHY2.js +18 -0
- package/dist/ellipsis-horizontal-CsKcrR-0.js +7 -0
- package/dist/ellipsis-vertical-DPeVEBuu.js +7 -0
- package/dist/elo-Br2Vuswf.js +12 -0
- package/dist/empty-table-B0j6ii0q.js +34 -0
- package/dist/equal-vqteAAZN.js +8 -0
- package/dist/etherium-D0ZXG13p.js +15 -0
- package/dist/expand-DuSIzzBI.js +10 -0
- package/dist/expand-left-line-C6GF8pDL.js +9 -0
- package/dist/expand-right-line-nUVRZIG0.js +9 -0
- package/dist/export-2-ClebRLYO.js +12 -0
- package/dist/export-2-bold-CWP0OSu6.js +11 -0
- package/dist/export-2-bulk-b1a7U5lM.js +11 -0
- package/dist/export-BySiHfPx.js +9 -0
- package/dist/export-bold-vynOFlro.js +7 -0
- package/dist/export-bulk-B9TbCSOK.js +8 -0
- package/dist/export-data-CjRujjX4.js +292 -0
- package/dist/exporting-C0PAvbsc.js +385 -0
- package/dist/eye-Br47g2EW.js +8 -0
- package/dist/eye-bold-Z5fzao7p.js +8 -0
- package/dist/eye-bulk-DBz_d8G6.js +11 -0
- package/dist/eye-slash-bold-CUMv80Sy.js +11 -0
- package/dist/eye-slash-xR20YiVN.js +12 -0
- package/dist/facebook-CbvAFDNX.js +8 -0
- package/dist/fatrows-BxHMRsbb.js +11 -0
- package/dist/fatrows-bold-BM1VbAKy.js +11 -0
- package/dist/fatrows-bulk-f8YoN10T.js +11 -0
- package/dist/favorite-chart-B_q3MmkK.js +9 -0
- package/dist/favorite-chart-bold-_azS9_qJ.js +8 -0
- package/dist/favorite-chart-bulk-BlGR0Xib.js +9 -0
- package/dist/file-pdf-nnHph4JB.js +7 -0
- package/dist/filled-flag-BotoaJW7.js +7 -0
- package/dist/filter-DMrTVHKZ.js +8 -0
- package/dist/filter-bold-DMF6Ix0c.js +8 -0
- package/dist/filter-bulk-DUT_3jkX.js +11 -0
- package/dist/flag-CTMrF9Eb.js +8 -0
- package/dist/flash-BsgqPLm2.js +8 -0
- package/dist/flash-circle-BuB8pCG-.js +13 -0
- package/dist/flash-circle-bold-BVvk0Pcq.js +8 -0
- package/dist/flash-circle-bulk-C0jDBliA.js +11 -0
- package/dist/folder-BvkRqnRs.js +8 -0
- package/dist/folder-open-DjTx8NSO.js +9 -0
- package/dist/folder-open-bold-WUf82K9a.js +8 -0
- package/dist/font-jy1Mj0lk.js +7 -0
- package/dist/forbrugsforeningen-Puw5oXYP.js +9 -0
- package/dist/gallery-bulk-Cpa_jQnb.js +9 -0
- package/dist/game-bulk-Bc0-iAgM.js +13 -0
- package/dist/giropay-P7ytRNOH.js +11 -0
- package/dist/glass-BFzBqbqu.js +11 -0
- package/dist/glass-bold-BLfmfE_0.js +11 -0
- package/dist/glass-bulk-C01rMJA0.js +11 -0
- package/dist/global-C6hEKjM2.js +11 -0
- package/dist/google-7-D5QsPs.js +10 -0
- package/dist/google-colored-DBhyV_DN.js +15 -0
- package/dist/googlepay-DlwBRzPC.js +13 -0
- package/dist/gps-linear-C0Cxhnms.js +12 -0
- package/dist/graduation-cap-BSrPJeHm.js +9 -0
- package/dist/graduation-cap-bold-CnssljzI.js +8 -0
- package/dist/graph-T1ntmIoY.js +8 -0
- package/dist/graph-bold-CJ7i0XOV.js +8 -0
- package/dist/grid-2-Xx7q_UY2.js +10 -0
- package/dist/grid-B-4opBKq.js +10 -0
- package/dist/grid-bold-ewRclO4W.js +10 -0
- package/dist/grid-bulk-D7Zut8Ek.js +17 -0
- package/dist/hamburger-ChXWBhhM.js +9 -0
- package/dist/headset-hMv1-5kf.js +7 -0
- package/dist/health-bulk-BiO9s6Ya.js +9 -0
- package/dist/history-BgOJSIs1.js +7 -0
- package/dist/home-BzPyPhLz.js +8 -0
- package/dist/home-bold-CIP1v27j.js +7 -0
- package/dist/home-bulk--pLh1Cer.js +11 -0
- package/dist/hospital-bulk-DbCBlxeB.js +10 -0
- package/dist/house-bulk-CDJDNpL2.js +12 -0
- package/dist/ideal-CiOA2WPM.js +10 -0
- package/dist/import-BwgGRkzK.js +14 -0
- package/dist/import-bold-n9euky5T.js +8 -0
- package/dist/in-range-D8jR55Rx.js +9 -0
- package/dist/in-range-bold-CKGuXaBI.js +9 -0
- package/dist/indent-DtlWCX4l.js +7 -0
- package/dist/index-BlFaxM2B.js +20718 -0
- package/dist/info-DuYlla_w.js +7 -0
- package/dist/info-circle-2-Cx4Tuekx.js +12 -0
- package/dist/info-circle-2-bold-Czmer8mR.js +8 -0
- package/dist/info-circle-2-bulk-IhPR3kNX.js +14 -0
- package/dist/info-circle-bold-DgM_C2xu.js +7 -0
- package/dist/info-circle-foeQf5lD.js +11 -0
- package/dist/interac-k39vsnHy.js +11 -0
- package/dist/ipad-D2p1uqmd.js +8 -0
- package/dist/iphone-9WH7lW33.js +7 -0
- package/dist/jcb-D7_NMgWC.js +25 -0
- package/dist/judge-outline-BB1OqdAU.js +10 -0
- package/dist/justify-right-Bck_4jBq.js +13 -0
- package/dist/key-BnPpJtfw.js +9 -0
- package/dist/klarna-BAZl-PBq.js +9 -0
- package/dist/lamp-charge-D1AbWTQM.js +9 -0
- package/dist/lamp-charge-bulk-CEw6XHMW.js +9 -0
- package/dist/layer-CbmLIuWX.js +9 -0
- package/dist/layer-bold-Dh10LMd9.js +9 -0
- package/dist/layer-bulk-CneTA8PD.js +14 -0
- package/dist/level-linear-CnmyocS2.js +9 -0
- package/dist/lightcoin-BZ1rdGn2.js +9 -0
- package/dist/like-VWJ6kcld.js +8 -0
- package/dist/like-bold-BYHWqDCQ.js +8 -0
- package/dist/link-Bx8NgJQx.js +8 -0
- package/dist/linkedin-Mm67U72R.js +9 -0
- package/dist/list-CRpCb4cC.js +7 -0
- package/dist/loader-CF_0OWwl.js +14 -0
- package/dist/loading-DX8oema7.js +7 -0
- package/dist/location-bulk-CwbrXN8y.js +8 -0
- package/dist/location-k-Kp-Jvh.js +12 -0
- package/dist/lock-DV5xqJxa.js +9 -0
- package/dist/lock-bold-DIfxjriG.js +8 -0
- package/dist/lock-bulk-DHduithA.js +14 -0
- package/dist/lock-slash-40svIcZb.js +10 -0
- package/dist/lock-slash-bulk-oOzyzmYJ.js +11 -0
- package/dist/logout-CoSahafX.js +9 -0
- package/dist/logout-bold-DtAFwN1T.js +8 -0
- package/dist/lovely-bulk-DMckVAG3.js +8 -0
- package/dist/maestro-2-B_-WmfkU.js +9 -0
- package/dist/maestro-DI1QUKWw.js +11 -0
- package/dist/magic-pen-C_ZuAIeg.js +17 -0
- package/dist/magic-pen-bold-DK2Zldvy.js +21 -0
- package/dist/map-D9nlD3zg.js +1746 -0
- package/dist/map-bulk-b8Sr2Fmc.js +9 -0
- package/dist/map-marker-DRvbAD_X.js +8 -0
- package/dist/map-marker-bold-Baug0j5o.js +7 -0
- package/dist/mastercard-2-DCReHU5A.js +9 -0
- package/dist/mastercard-CR1i7PFG.js +11 -0
- package/dist/maximize-linear-CCWWD--f.js +10 -0
- package/dist/med-kit-Dzx627Qo.js +7 -0
- package/dist/medal-CTj_OZNe.js +8 -0
- package/dist/medal-bold-BSR6G_Fh.js +8 -0
- package/dist/menu-Cn8IB3xe.js +9 -0
- package/dist/menu-bold-bJi3sXf8.js +7 -0
- package/dist/message-CQXwA2aP.js +15 -0
- package/dist/message-bold-DGSzH5b3.js +8 -0
- package/dist/message-bulk-DmkeeBSn.js +17 -0
- package/dist/message-notif-Ba6f_BKJ.js +11 -0
- package/dist/message-text-Bp7l3HUP.js +9 -0
- package/dist/messages-2-bulk-B25uWmFb.js +9 -0
- package/dist/messages-R8UGpfJm.js +11 -0
- package/dist/messages-bold-DGVvdOR-.js +11 -0
- package/dist/messages-bulk-Du2QOYAd.js +11 -0
- package/dist/microscope-BEbq70sH.js +17 -0
- package/dist/microscope-bold-DSDepSys.js +17 -0
- package/dist/microscope-bulk-hiw0Y5qR.js +17 -0
- package/dist/milk-bulk-CxSdKEU6.js +9 -0
- package/dist/minus-CGjO90lO.js +7 -0
- package/dist/minus-bold-DQKlOnvC.js +7 -0
- package/dist/minus-square-Ds-6FtB_.js +8 -0
- package/dist/minus-square-bold-BBJ4VITq.js +7 -0
- package/dist/mobile-D8aosZ5a.js +9 -0
- package/dist/mobile-action-brzKV95_.js +40 -0
- package/dist/mobile-bold-C4rfKwzs.js +7 -0
- package/dist/mobile-bulk-Bkbtn0UN.js +14 -0
- package/dist/money-bill-CFZluOJg.js +12 -0
- package/dist/money-send-DlmQ1op8.js +14 -0
- package/dist/moneys-CvKAFahD.js +21 -0
- package/dist/moneys-bold-D1QCkYRU.js +11 -0
- package/dist/moneys-bulk-DUYwIR1z.js +20 -0
- package/dist/more-bold-BaHZT4vR.js +7 -0
- package/dist/more-bulk-BMgI8eM5.js +10 -0
- package/dist/more-circle-ZxODcqCE.js +10 -0
- package/dist/more-vertical-B3XZP8Lc.js +7 -0
- package/dist/more-zJVDEm_2.js +9 -0
- package/dist/mouse-square-bold-BFtF5tfm.js +11 -0
- package/dist/mouse-square-bulk-C4anqh_t.js +11 -0
- package/dist/mouse-square-wuNIGqpV.js +10 -0
- package/dist/music-bulk-BylgXvoM.js +9 -0
- package/dist/musicnote-bulk-DnWAOiLT.js +8 -0
- package/dist/not-contains-linear-D26FUvcO.js +12 -0
- package/dist/not-equal-C03Whu33.js +9 -0
- package/dist/not-in-range-DuiQ9Pa1.js +10 -0
- package/dist/notification-bold-Bol0sU7h.js +8 -0
- package/dist/notification-zGY9dIwv.js +9 -0
- package/dist/offline-exporting-BLnEcdCT.js +578 -0
- package/dist/outdent-BigmatWS.js +7 -0
- package/dist/outline-linear-CnmyocS2.js +9 -0
- package/dist/outline-lock-BSY2-kOq.js +9 -0
- package/dist/outline-lock-bulk-BuSi1qgm.js +9 -0
- package/dist/paper-plane-B3UrW7gE.js +7 -0
- package/dist/parenting-bulk-C_KmGK1d.js +167 -0
- package/dist/password-check-DMvBg21g.js +11 -0
- package/dist/pause-Cj28FYtM.js +8 -0
- package/dist/pause-bold-D5XIkqTi.js +8 -0
- package/dist/pause-circle-Cae0A6ty.js +9 -0
- package/dist/pause-circle-bold-DhyVBDK_.js +7 -0
- package/dist/pause-circle-bulk-Ct3GWoI8.js +9 -0
- package/dist/payoneer-D_Ims0yA.js +10 -0
- package/dist/paypal-DDeRuGvm.js +12 -0
- package/dist/paysafe-LfrdjypJ.js +11 -0
- package/dist/pen-square-De6Mul3Q.js +9 -0
- package/dist/pencil-BVNQaxcn.js +7 -0
- package/dist/people-CW9QlyJM.js +12 -0
- package/dist/people-bold-CvTpMAJm.js +12 -0
- package/dist/people-bulk-amrCUEAe.js +12 -0
- package/dist/percentage-square-CCmPpcLp.js +10 -0
- package/dist/percentage-square-bold-tlvS0n45.js +7 -0
- package/dist/play-B7g5zXrN.js +8 -0
- package/dist/play-bold-BPEt2uZ8.js +7 -0
- package/dist/play-bulk-z5laY23m.js +8 -0
- package/dist/play-circle-bold-BxajZyxU.js +11 -0
- package/dist/play-circle-xTlr-Bah.js +11 -0
- package/dist/play-console-colorful-uMVj3O96.js +20 -0
- package/dist/play-store-colorful-BI2BBcNv.js +17 -0
- package/dist/plug-CD_mn6bj.js +14 -0
- package/dist/plug-bold-BnnsTDN4.js +8 -0
- package/dist/poker-cards-bulk-CYL8LIXD.js +15 -0
- package/dist/presentation-chart-bulk-TzTWGlF2.js +16 -0
- package/dist/profile-2user-colored-bulk-LdvX_Lh5.js +20 -0
- package/dist/programming-arrows-bulk-CrCz5RVp.js +17 -0
- package/dist/project-bold-q6Y4vTWC.js +7 -0
- package/dist/puzzle-bulk-M9nLCEwX.js +21 -0
- package/dist/qiwi-BMEXmSTL.js +9 -0
- package/dist/question-DGqy4FYX.js +9 -0
- package/dist/question-bold--9xWcehb.js +7 -0
- package/dist/quickbooks-BuGT2Wil.js +13 -0
- package/dist/radar-DXWvLImO.js +13 -0
- package/dist/radar-bold-xYJn9nQ0.js +16 -0
- package/dist/radar-bulk-DEKCqw2l.js +12 -0
- package/dist/rank-D1JUY9jF.js +17 -0
- package/dist/rank-bold-CirYKj6o.js +17 -0
- package/dist/rank-bulk-Y5pOMN9L.js +14 -0
- package/dist/ranking-BTp0VocG.js +14 -0
- package/dist/ranking-bold-jWI8lq1p.js +17 -0
- package/dist/ranking-bulk-BziC-rSL.js +17 -0
- package/dist/record-circle-cuQuZdk5.js +7 -0
- package/dist/redo-bold-Bq7Mm8qW.js +7 -0
- package/dist/redo-komYif2B.js +8 -0
- package/dist/refresh-2-CEcafqsb.js +7 -0
- package/dist/refresh-D1_QxAPS.js +8 -0
- package/dist/reply-lX1U5pGz.js +7 -0
- package/dist/rocket-CDFcXfzU.js +15 -0
- package/dist/rocket-bulk-CDMbDuuu.js +15 -0
- package/dist/rotate-left-CPVgKej9.js +9 -0
- package/dist/rotate-right-DJNhwndG.js +9 -0
- package/dist/save-C4bOfVd3.js +15 -0
- package/dist/save-bold-ewC2l1LL.js +12 -0
- package/dist/scale-balanced-z4u4jHD7.js +7 -0
- package/dist/search-2-line-DRVRD3nz.js +9 -0
- package/dist/search-dollar-23lqrAiG.js +7 -0
- package/dist/search-normal-BDMnZZHY.js +8 -0
- package/dist/search-normal-bold-VwEbXhGL.js +8 -0
- package/dist/search-zoom-in-C-sz5qUW.js +15 -0
- package/dist/search-zoom-in-bold-CNgto3XJ.js +12 -0
- package/dist/search-zoom-in-bulk-w6WPTCol.js +15 -0
- package/dist/security-card-C7DX9uc_.js +11 -0
- package/dist/security-card-bold-DmMwb9qD.js +9 -0
- package/dist/selection-CGpQ4IVD.js +51 -0
- package/dist/send-DoQks9ur.js +9 -0
- package/dist/sepa-D7TYnjQL.js +10 -0
- package/dist/setting-2-linear-Bek5AmC0.js +12 -0
- package/dist/setting-bulk-_YttfQEy.js +12 -0
- package/dist/settings-DgdlQpYy.js +8 -0
- package/dist/settings-bold-Ctz8d58X.js +7 -0
- package/dist/settings-bulk-BKUqr8qO.js +11 -0
- package/dist/share-bold-D4qEkxT8.js +23 -0
- package/dist/share-bulk-RO3cQ_x4.js +23 -0
- package/dist/share-kjJsaGrj.js +12 -0
- package/dist/shield-tick-bold-C6Ae-T2c.js +7 -0
- package/dist/shop-pay-BF4Rhu1k.js +9 -0
- package/dist/shopping-cart-bold-1yJ1zQX5.js +10 -0
- package/dist/shopping-cart-qy6hFEGi.js +10 -0
- package/dist/sidebar-left-BKb_tNe-.js +12 -0
- package/dist/sidebar-left-bold-BBhTAgqG.js +11 -0
- package/dist/sidebar-left-bulk-x5Bop8BD.js +14 -0
- package/dist/sidebar-right-BdPLZYyl.js +12 -0
- package/dist/sidebar-right-bold-D0JicXZr.js +11 -0
- package/dist/sidebar-right-bulk-DlZYTeGY.js +14 -0
- package/dist/skrill-CODHfzBb.js +9 -0
- package/dist/slack-CCO7LtRc.js +12 -0
- package/dist/slash-DkdktXrD.js +8 -0
- package/dist/slash-bold-DmQ2iIpC.js +9 -0
- package/dist/slider-horizontal-U6-ttuLR.js +12 -0
- package/dist/slider-horizontal-bold-GysAEZ5z.js +12 -0
- package/dist/smart-notification-DEOAUo6P.js +11 -0
- package/dist/smart-notification-bold-DD5LkM1V.js +11 -0
- package/dist/smart-notification-bulk-BMq-In3M.js +11 -0
- package/dist/sms-BIU3AFQG.js +8 -0
- package/dist/sms-bold-DLlLpAVy.js +7 -0
- package/dist/soccer-bulk-SDKnYWlq.js +13 -0
- package/dist/social-facebook-Vsgbx4Q9.js +7 -0
- package/dist/social-linkedin-BtX3MMk4.js +8 -0
- package/dist/social-x-CJtjZfb5.js +7 -0
- package/dist/sofort-CFCEQZzO.js +9 -0
- package/dist/sort-BHzFZoxU.js +8 -0
- package/dist/sort-amount-down-DdtalMMi.js +7 -0
- package/dist/sort-bold-BWJgPjwD.js +8 -0
- package/dist/sort-bulk-Ce0DraOX.js +17 -0
- package/dist/speedometer-CA8z06Wc.js +9 -0
- package/dist/spin-dots-By-OygyV.js +17 -0
- package/dist/spin-round-CXIjkanj.js +8 -0
- package/dist/spin-three-circles-51MYjAF-.js +14 -0
- package/dist/spin-three-dots-CVoe7oun.js +8 -0
- package/dist/spinner-DBLwXGDq.js +7 -0
- package/dist/square-DDXZz6KP.js +7 -0
- package/dist/src/components/app-icon/index.vue.d.ts +2 -2
- package/dist/src/components/chart/chart.test.d.ts +1 -0
- package/dist/src/components/chart/components/ChartLoadingContainer.vue.d.ts +52 -0
- package/dist/src/components/chart/components/ChartWatermarkContainer.vue.d.ts +39 -0
- package/dist/src/components/chart/index.vue.d.ts +22 -0
- package/dist/src/components/chart/stories/chart.stories.d.ts +19 -0
- package/dist/src/components/chart/types.d.ts +98 -0
- package/dist/src/components/chart/utils.d.ts +114 -0
- package/dist/src/components/content-scroller/index.vue.d.ts +17 -8
- package/dist/src/components/date-picker/index.vue.d.ts +1 -1
- package/dist/src/components/date-picker-2/index.vue.d.ts +1 -1
- package/dist/src/components/ellipsis/index.vue.d.ts +2 -2
- package/dist/src/components/icon/utils.d.ts +19 -0
- package/dist/src/components/icon-button/index.vue.d.ts +3 -3
- package/dist/src/components/progress/components/circle.vue.d.ts +3 -3
- package/dist/src/components/progress/components/halfCircle.vue.d.ts +2 -2
- package/dist/src/components/progress/components/line.vue.d.ts +4 -4
- package/dist/src/components/progress/components/stepLine.vue.d.ts +2 -2
- package/dist/src/components/progress/index.vue.d.ts +2 -2
- package/dist/src/components/tabs-2/stories/default.stories.d.ts +3 -1
- package/dist/src/components/tooltip-2/index.vue.d.ts +2 -2
- package/dist/src/components/watchlist-button/index.vue.d.ts +3 -3
- package/dist/src/index.d.ts +4 -0
- package/dist/star-CYR6zA-5.js +7 -0
- package/dist/star-bold-BzynfdKp.js +7 -0
- package/dist/star-bulk-kS4PxU5l.js +17 -0
- package/dist/star-half-colored-C16vcthr.js +8 -0
- package/dist/status-up-BkqXBYXa.js +20 -0
- package/dist/steering-wheel-bulk-eFAnYs84.js +8 -0
- package/dist/stock-BWDjlVRw.js +2018 -0
- package/dist/stop-Csyx-j3Q.js +7 -0
- package/dist/stop-bold-DwHmvwBw.js +8 -0
- package/dist/story-qozfTqCa.js +17 -0
- package/dist/stream-D3m6CQms.js +11 -0
- package/dist/stripe-2-dGZyGbZJ.js +34 -0
- package/dist/stripe-BGLCTVe1.js +9 -0
- package/dist/style.css +1 -1
- package/dist/swap-CQKtj5nU.js +10 -0
- package/dist/swap-bold-CN0SIjRW.js +7 -0
- package/dist/sword-bulk-DSqI9OdR.js +11 -0
- package/dist/sync-3mFfFBAk.js +7 -0
- package/dist/table-list-D9ZbhecS.js +7 -0
- package/dist/tag-2-ChcYkkoA.js +9 -0
- package/dist/tag-2-bold-1gWoOqra.js +7 -0
- package/dist/tag-bold-BO6Got6Y.js +7 -0
- package/dist/tag-bulk-DMger3uW.js +11 -0
- package/dist/tag-hWyU0KQv.js +8 -0
- package/dist/tag-user-yIzNAf7h.js +9 -0
- package/dist/teacher-bulk-CwMy66kh.js +8 -0
- package/dist/thumbtack-CEiJoxPH.js +7 -0
- package/dist/tick-CM5ZL3Qz.js +7 -0
- package/dist/tick-circle-D1utoMQG.js +8 -0
- package/dist/tick-circle-bold-CwReCnyT.js +9 -0
- package/dist/tick-circle-bulk-g9qOpsmc.js +11 -0
- package/dist/tick-square-Ckv90a3j.js +8 -0
- package/dist/tick-square-bold-BXu-6zy6.js +7 -0
- package/dist/timer-DNApyCrK.js +9 -0
- package/dist/toggle-off-C4_3XQzA.js +8 -0
- package/dist/toggle-off-bold-CkVNp_Qj.js +7 -0
- package/dist/toggle-on-Ma6VQn8A.js +8 -0
- package/dist/toggle-on-bold-vPA7-vtA.js +7 -0
- package/dist/transgender-D4x9uUwb.js +7 -0
- package/dist/translate-DEip4fcd.js +28 -0
- package/dist/translate-bold-DEip4fcd.js +28 -0
- package/dist/translate-bulk-BccQsMmy.js +24 -0
- package/dist/trash-bold-D3dzoCoi.js +8 -0
- package/dist/trash-bulk-zt3TuKVz.js +17 -0
- package/dist/trash-sI_l-aeV.js +11 -0
- package/dist/trend-up-BgJyZAhr.js +9 -0
- package/dist/trend-up-bold-Dvmd1N6m.js +8 -0
- package/dist/trend-up-bulk-BUk_jEPW.js +11 -0
- package/dist/twitter-WYRG-lV1.js +7 -0
- package/dist/undo-CZW4aIBo.js +8 -0
- package/dist/undo-bold-t8JD3vg5.js +7 -0
- package/dist/unionpay-F4Wp8YvW.js +12 -0
- package/dist/unlock-88eOTtvy.js +9 -0
- package/dist/unlock-bold-CF6XBYVc.js +8 -0
- package/dist/upload-D-UfNbdq.js +10 -0
- package/dist/upload-bulk-Ds6QQDbC.js +14 -0
- package/dist/user-CLPQ1jf-.js +9 -0
- package/dist/user-avatar-BEHDLcVb.js +71 -0
- package/dist/user-default-rLZU5xJz.js +7 -0
- package/dist/user-outline-DEorumBN.js +8 -0
- package/dist/user-settings-B1b9iq-_.js +7 -0
- package/dist/user-square-BpV1PVxe.js +9 -0
- package/dist/venn-DF9EOpiq.js +444 -0
- package/dist/verifone-ntSBR0UJ.js +10 -0
- package/dist/video-bulk-CVE4bb-r.js +9 -0
- package/dist/video-play-COrJdRET.js +15 -0
- package/dist/video-play-bold-CrwVbpYx.js +14 -0
- package/dist/video-play-bulk-DCfV3wH-.js +9 -0
- package/dist/video-remove-P4CbIDet.js +11 -0
- package/dist/video-square-bulk-B84bU8eU.js +8 -0
- package/dist/visa-2-IpkhAN5c.js +8 -0
- package/dist/visa-DlGzh5bL.js +9 -0
- package/dist/volume-low-Dl8gPJP2.js +14 -0
- package/dist/warning-2-CueX3UxP.js +8 -0
- package/dist/warning-2-bold-B6eysImW.js +7 -0
- package/dist/warning-2-bulk-Nc-mh5Hb.js +9 -0
- package/dist/warning-4RjXZ8Hs.js +7 -0
- package/dist/watch-bulk-CnuBbD2z.js +10 -0
- package/dist/webmoney-BvEWju1R.js +9 -0
- package/dist/wechat-DXg2ByK_.js +9 -0
- package/dist/wifi-pHOUtbnH.js +10 -0
- package/dist/woman-DE2_-rvT.js +9 -0
- package/dist/wordcloud-BhcHo_Kt.js +222 -0
- package/dist/x-BA7jFDqs.js +9 -0
- package/dist/yandex-DGuZOb2q.js +9 -0
- package/dist/zoom-in-CAEFkw1j.js +14 -0
- package/dist/zoom-out-Dwah60p1.js +12 -0
- package/package.json +5 -2
|
@@ -0,0 +1,2018 @@
|
|
|
1
|
+
import { g as ua } from "./index-BlFaxM2B.js";
|
|
2
|
+
function ca(Dt, te) {
|
|
3
|
+
for (var H = 0; H < te.length; H++) {
|
|
4
|
+
const et = te[H];
|
|
5
|
+
if (typeof et != "string" && !Array.isArray(et)) {
|
|
6
|
+
for (const pt in et)
|
|
7
|
+
if (pt !== "default" && !(pt in Dt)) {
|
|
8
|
+
const Pt = Object.getOwnPropertyDescriptor(et, pt);
|
|
9
|
+
Pt && Object.defineProperty(Dt, pt, Pt.get ? Pt : {
|
|
10
|
+
enumerable: !0,
|
|
11
|
+
get: () => et[pt]
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return Object.freeze(Object.defineProperty(Dt, Symbol.toStringTag, { value: "Module" }));
|
|
17
|
+
}
|
|
18
|
+
var Qt = { exports: {} }, ga = Qt.exports, $i;
|
|
19
|
+
function fa() {
|
|
20
|
+
return $i || ($i = 1, function(Dt, te) {
|
|
21
|
+
(function(H, et) {
|
|
22
|
+
Dt.exports = et(H._Highcharts, H._Highcharts.Axis, H._Highcharts.Point, H._Highcharts.Series, H._Highcharts.Color, H._Highcharts.SeriesRegistry, H._Highcharts.RendererRegistry, H._Highcharts.SVGRenderer, H._Highcharts.SVGElement, H._Highcharts.Templating, H._Highcharts.Chart, H._Highcharts.Series.types.column, H._Highcharts.StackItem);
|
|
23
|
+
})(typeof window > "u" ? ga : window, (H, et, pt, Pt, Qi, ts, es, is, ss, os, rs, as, ns) => (() => {
|
|
24
|
+
let ee, ie, Ye, se;
|
|
25
|
+
var oe, re, ae, ne, le, he, de, pe, ls = { 28: (a) => {
|
|
26
|
+
a.exports = ss;
|
|
27
|
+
}, 184: (a) => {
|
|
28
|
+
a.exports = ns;
|
|
29
|
+
}, 260: (a) => {
|
|
30
|
+
a.exports = pt;
|
|
31
|
+
}, 448: (a) => {
|
|
32
|
+
a.exports = as;
|
|
33
|
+
}, 512: (a) => {
|
|
34
|
+
a.exports = ts;
|
|
35
|
+
}, 532: (a) => {
|
|
36
|
+
a.exports = et;
|
|
37
|
+
}, 540: (a) => {
|
|
38
|
+
a.exports = is;
|
|
39
|
+
}, 608: (a) => {
|
|
40
|
+
a.exports = es;
|
|
41
|
+
}, 620: (a) => {
|
|
42
|
+
a.exports = Qi;
|
|
43
|
+
}, 820: (a) => {
|
|
44
|
+
a.exports = Pt;
|
|
45
|
+
}, 944: (a) => {
|
|
46
|
+
a.exports = H;
|
|
47
|
+
}, 960: (a) => {
|
|
48
|
+
a.exports = rs;
|
|
49
|
+
}, 984: (a) => {
|
|
50
|
+
a.exports = os;
|
|
51
|
+
} }, Ne = {};
|
|
52
|
+
function R(a) {
|
|
53
|
+
var t = Ne[a];
|
|
54
|
+
if (t !== void 0) return t.exports;
|
|
55
|
+
var e = Ne[a] = { exports: {} };
|
|
56
|
+
return ls[a](e, e.exports, R), e.exports;
|
|
57
|
+
}
|
|
58
|
+
R.n = (a) => {
|
|
59
|
+
var t = a && a.__esModule ? () => a.default : () => a;
|
|
60
|
+
return R.d(t, { a: t }), t;
|
|
61
|
+
}, R.d = (a, t) => {
|
|
62
|
+
for (var e in t) R.o(t, e) && !R.o(a, e) && Object.defineProperty(a, e, { enumerable: !0, get: t[e] });
|
|
63
|
+
}, R.o = (a, t) => Object.prototype.hasOwnProperty.call(a, t);
|
|
64
|
+
var Fe = {};
|
|
65
|
+
R.d(Fe, { default: () => pa });
|
|
66
|
+
var hs = R(944), B = R.n(hs), ds = R(532), ue = R.n(ds), ps = R(260), us = R.n(ps), cs = R(820), gs = R.n(cs);
|
|
67
|
+
let { tooltipFormatter: fs } = us().prototype, { addEvent: ce, arrayMax: ms, arrayMin: xs, correctFloat: bs, defined: Ue, isArray: vs, isNumber: ys, isString: Ms, pick: Rt } = B();
|
|
68
|
+
(function(a) {
|
|
69
|
+
function t(d, r, l) {
|
|
70
|
+
!this.isXAxis && (this.series.forEach(function(h) {
|
|
71
|
+
d === "compare" && typeof r != "boolean" ? h.setCompare(r, !1) : d !== "cumulative" || Ms(r) || h.setCumulative(r, !1);
|
|
72
|
+
}), Rt(l, !0) && this.chart.redraw());
|
|
73
|
+
}
|
|
74
|
+
function e(d) {
|
|
75
|
+
let r = this, { numberFormatter: l } = r.series.chart, h = function(f) {
|
|
76
|
+
d = d.replace("{point." + f + "}", (r[f] > 0 && f === "change" ? "+" : "") + l(r[f], Rt(r.series.tooltipOptions.changeDecimals, 2)));
|
|
77
|
+
};
|
|
78
|
+
return Ue(r.change) && h("change"), Ue(r.cumulativeSum) && h("cumulativeSum"), fs.apply(this, [d]);
|
|
79
|
+
}
|
|
80
|
+
function i() {
|
|
81
|
+
let d, r = this.options.compare;
|
|
82
|
+
(r === "percent" || r === "value" || this.options.cumulative) && (d = new p(this), r === "percent" || r === "value" ? d.initCompare(r) : d.initCumulative()), this.dataModify = d;
|
|
83
|
+
}
|
|
84
|
+
function s(d) {
|
|
85
|
+
let r = d.dataExtremes, l = r.activeYData;
|
|
86
|
+
if (this.dataModify && r) {
|
|
87
|
+
let h;
|
|
88
|
+
this.options.compare ? h = [this.dataModify.modifyValue(r.dataMin), this.dataModify.modifyValue(r.dataMax)] : this.options.cumulative && vs(l) && l.length >= 2 && (h = p.getCumulativeExtremes(l)), h && (r.dataMin = xs(h), r.dataMax = ms(h));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function o(d, r) {
|
|
92
|
+
this.options.compare = this.userOptions.compare = d, this.update({}, Rt(r, !0)), this.dataModify && (d === "value" || d === "percent") ? this.dataModify.initCompare(d) : this.points.forEach((l) => {
|
|
93
|
+
delete l.change;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function n() {
|
|
97
|
+
let d = this.getColumn(this.pointArrayMap && (this.options.pointValKey || this.pointValKey) || "y", !0);
|
|
98
|
+
if (this.xAxis && d.length && this.dataModify) {
|
|
99
|
+
let r = this.getColumn("x", !0), l = this.dataTable.rowCount, h = +(this.options.compareStart !== !0);
|
|
100
|
+
for (let f = 0; f < l - h; f++) {
|
|
101
|
+
let m = d[f];
|
|
102
|
+
if (ys(m) && m !== 0 && r[f + h] >= (this.xAxis.min || 0)) {
|
|
103
|
+
this.dataModify.compareValue = m;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function c(d, r) {
|
|
110
|
+
this.setModifier("compare", d, r);
|
|
111
|
+
}
|
|
112
|
+
function u(d, r) {
|
|
113
|
+
d = Rt(d, !1), this.options.cumulative = this.userOptions.cumulative = d, this.update({}, Rt(r, !0)), this.dataModify ? this.dataModify.initCumulative() : this.points.forEach((l) => {
|
|
114
|
+
delete l.cumulativeSum;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function g(d, r) {
|
|
118
|
+
this.setModifier("cumulative", d, r);
|
|
119
|
+
}
|
|
120
|
+
a.compose = function(d, r, l) {
|
|
121
|
+
let h = r.prototype, f = l.prototype, m = d.prototype;
|
|
122
|
+
return m.setCompare || (m.setCompare = o, m.setCumulative = u, ce(d, "afterInit", i), ce(d, "afterGetExtremes", s), ce(d, "afterProcessData", n)), h.setCompare || (h.setCompare = c, h.setModifier = t, h.setCumulative = g, f.tooltipFormatter = e), d;
|
|
123
|
+
};
|
|
124
|
+
class p {
|
|
125
|
+
constructor(r) {
|
|
126
|
+
this.series = r;
|
|
127
|
+
}
|
|
128
|
+
modifyValue() {
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
static getCumulativeExtremes(r) {
|
|
132
|
+
let l = 1 / 0, h = -1 / 0;
|
|
133
|
+
return r.reduce((f, m) => {
|
|
134
|
+
let x = f + m;
|
|
135
|
+
return l = Math.min(l, x, f), h = Math.max(h, x, f), x;
|
|
136
|
+
}), [l, h];
|
|
137
|
+
}
|
|
138
|
+
initCompare(r) {
|
|
139
|
+
this.modifyValue = function(l, h) {
|
|
140
|
+
l === null && (l = 0);
|
|
141
|
+
let f = this.compareValue;
|
|
142
|
+
if (l !== void 0 && f !== void 0) {
|
|
143
|
+
if (r === "value" ? l -= f : l = l / f * 100 - 100 * (this.series.options.compareBase !== 100), h !== void 0) {
|
|
144
|
+
let m = this.series.points[h];
|
|
145
|
+
m && (m.change = l);
|
|
146
|
+
}
|
|
147
|
+
return l;
|
|
148
|
+
}
|
|
149
|
+
return 0;
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
initCumulative() {
|
|
153
|
+
this.modifyValue = function(r, l) {
|
|
154
|
+
if (r === null && (r = 0), r !== void 0 && l !== void 0) {
|
|
155
|
+
let h = l > 0 ? this.series.points[l - 1] : null;
|
|
156
|
+
h && h.cumulativeSum && (r = bs(h.cumulativeSum + r));
|
|
157
|
+
let f = this.series.points[l], m = f.series.options.cumulativeStart, x = f.x <= this.series.xAxis.max && f.x >= this.series.xAxis.min;
|
|
158
|
+
return f && (!m || x ? f.cumulativeSum = r : f.cumulativeSum = void 0), r;
|
|
159
|
+
}
|
|
160
|
+
return 0;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
a.Additions = p;
|
|
165
|
+
})(oe || (oe = {}));
|
|
166
|
+
let As = oe, { isTouchDevice: Ve } = B(), { addEvent: xt, merge: _e, pick: ge } = B(), ks = [];
|
|
167
|
+
function ws() {
|
|
168
|
+
this.navigator && this.navigator.setBaseSeries(null, !1);
|
|
169
|
+
}
|
|
170
|
+
function Ss() {
|
|
171
|
+
let a, t, e, i = this.legend, s = this.navigator;
|
|
172
|
+
if (s) {
|
|
173
|
+
a = i && i.options, t = s.xAxis, e = s.yAxis;
|
|
174
|
+
let { scrollbarHeight: o, scrollButtonSize: n } = s;
|
|
175
|
+
this.inverted ? (s.left = s.opposite ? this.chartWidth - o - s.height : this.spacing[3] + o, s.top = this.plotTop + n) : (s.left = ge(t.left, this.plotLeft + n), s.top = s.navigatorOptions.top || this.chartHeight - s.height - o - (this.scrollbar?.options.margin || 0) - this.spacing[2] - (this.rangeSelector && this.extraBottomMargin ? this.rangeSelector.getHeight() : 0) - (a && a.verticalAlign === "bottom" && a.layout !== "proximate" && a.enabled && !a.floating ? i.legendHeight + ge(a.margin, 10) : 0) - (this.titleOffset ? this.titleOffset[2] : 0)), t && e && (this.inverted ? t.options.left = e.options.left = s.left : t.options.top = e.options.top = s.top, t.setAxisSize(), e.setAxisSize());
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function Ts(a) {
|
|
179
|
+
!this.navigator && !this.scroller && (this.options.navigator.enabled || this.options.scrollbar.enabled) && (this.scroller = this.navigator = new ee(this), ge(a.redraw, !0) && this.redraw(a.animation));
|
|
180
|
+
}
|
|
181
|
+
function Es() {
|
|
182
|
+
let a = this.options;
|
|
183
|
+
(a.navigator.enabled || a.scrollbar.enabled) && (this.scroller = this.navigator = new ee(this));
|
|
184
|
+
}
|
|
185
|
+
function Os() {
|
|
186
|
+
let a = this.options, t = a.navigator, e = a.rangeSelector;
|
|
187
|
+
if ((t && t.enabled || e && e.enabled) && (!Ve && this.zooming.type === "x" || Ve && this.zooming.pinchType === "x")) return !1;
|
|
188
|
+
}
|
|
189
|
+
function Bs(a) {
|
|
190
|
+
let t = a.navigator;
|
|
191
|
+
if (t && a.xAxis[0]) {
|
|
192
|
+
let e = a.xAxis[0].getExtremes();
|
|
193
|
+
t.render(e.min, e.max);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
function Cs(a) {
|
|
197
|
+
let t = a.options.navigator || {}, e = a.options.scrollbar || {};
|
|
198
|
+
!this.navigator && !this.scroller && (t.enabled || e.enabled) && (_e(!0, this.options.navigator, t), _e(!0, this.options.scrollbar, e), delete a.options.navigator, delete a.options.scrollbar);
|
|
199
|
+
}
|
|
200
|
+
let Ds = { compose: function(a, t) {
|
|
201
|
+
if (B().pushUnique(ks, a)) {
|
|
202
|
+
let e = a.prototype;
|
|
203
|
+
ee = t, e.callbacks.push(Bs), xt(a, "afterAddSeries", ws), xt(a, "afterSetChartSize", Ss), xt(a, "afterUpdate", Ts), xt(a, "beforeRender", Es), xt(a, "beforeShowResetZoom", Os), xt(a, "update", Cs);
|
|
204
|
+
}
|
|
205
|
+
} }, { isTouchDevice: Ps } = B(), { addEvent: je, correctFloat: qe, defined: fe, isNumber: Ze, pick: Ke } = B();
|
|
206
|
+
function Rs() {
|
|
207
|
+
this.navigatorAxis || (this.navigatorAxis = new me(this));
|
|
208
|
+
}
|
|
209
|
+
function Gs(a) {
|
|
210
|
+
let t, e = this.chart, i = e.options, s = i.navigator, o = this.navigatorAxis, n = e.zooming.pinchType, c = i.rangeSelector, u = e.zooming.type;
|
|
211
|
+
if (this.isXAxis && (s?.enabled || c?.enabled)) {
|
|
212
|
+
if (u === "y" && a.trigger === "zoom") t = !1;
|
|
213
|
+
else if ((a.trigger === "zoom" && u === "xy" || Ps && n === "xy") && this.options.range) {
|
|
214
|
+
let g = o.previousZoom;
|
|
215
|
+
fe(a.min) ? o.previousZoom = [this.min, this.max] : g && (a.min = g[0], a.max = g[1], o.previousZoom = void 0);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
t !== void 0 && a.preventDefault();
|
|
219
|
+
}
|
|
220
|
+
class me {
|
|
221
|
+
static compose(t) {
|
|
222
|
+
t.keepProps.includes("navigatorAxis") || (t.keepProps.push("navigatorAxis"), je(t, "init", Rs), je(t, "setExtremes", Gs));
|
|
223
|
+
}
|
|
224
|
+
constructor(t) {
|
|
225
|
+
this.axis = t;
|
|
226
|
+
}
|
|
227
|
+
destroy() {
|
|
228
|
+
this.axis = void 0;
|
|
229
|
+
}
|
|
230
|
+
toFixedRange(t, e, i, s) {
|
|
231
|
+
let o = this.axis, n = (o.pointRange || 0) / 2, c = Ke(i, o.translate(t, !0, !o.horiz)), u = Ke(s, o.translate(e, !0, !o.horiz));
|
|
232
|
+
return fe(i) || (c = qe(c + n)), fe(s) || (u = qe(u - n)), Ze(c) && Ze(u) || (c = u = void 0), { min: c, max: u };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
var Is = R(620), zs = R.n(Is), Ls = R(512), _ = R.n(Ls);
|
|
236
|
+
let { parse: Ws } = zs(), { seriesTypes: Xs } = _(), xe = { height: 40, margin: 22, maskInside: !0, handles: { width: 7, borderRadius: 0, height: 15, symbols: ["navigator-handle", "navigator-handle"], enabled: !0, lineWidth: 1, backgroundColor: "#f2f2f2", borderColor: "#999999" }, maskFill: Ws("#667aff").setOpacity(0.3).get(), outlineColor: "#999999", outlineWidth: 1, series: { type: Xs.areaspline === void 0 ? "line" : "areaspline", fillOpacity: 0.05, lineWidth: 1, compare: null, sonification: { enabled: !1 }, dataGrouping: { approximation: "average", enabled: !0, groupPixelWidth: 2, firstAnchor: "firstPoint", anchor: "middle", lastAnchor: "lastPoint", units: [["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], ["second", [1, 2, 5, 10, 15, 30]], ["minute", [1, 2, 5, 10, 15, 30]], ["hour", [1, 2, 3, 4, 6, 8, 12]], ["day", [1, 2, 3, 4]], ["week", [1, 2, 3]], ["month", [1, 3, 6]], ["year", null]] }, dataLabels: { enabled: !1, zIndex: 2 }, id: "highcharts-navigator-series", className: "highcharts-navigator-series", lineColor: null, marker: { enabled: !1 }, threshold: null }, xAxis: { className: "highcharts-navigator-xaxis", tickLength: 0, lineWidth: 0, gridLineColor: "#e6e6e6", id: "navigator-x-axis", gridLineWidth: 1, tickPixelInterval: 200, labels: { align: "left", style: { color: "#000000", fontSize: "0.7em", opacity: 0.6, textOutline: "2px contrast" }, x: 3, y: -4 }, crosshair: !1 }, yAxis: { className: "highcharts-navigator-yaxis", gridLineWidth: 0, startOnTick: !1, endOnTick: !1, minPadding: 0.1, id: "navigator-y-axis", maxPadding: 0.1, labels: { enabled: !1 }, crosshair: !1, title: { text: void 0 }, tickLength: 0, tickWidth: 0 } }, { defined: xa, isNumber: ba, pick: va } = B(), Hs = { rect: function(a, t, e, i, s) {
|
|
237
|
+
return s?.r ? function(o, n, c, u, g) {
|
|
238
|
+
let p = g?.r || 0;
|
|
239
|
+
return [["M", o + p, n], ["L", o + c - p, n], ["A", p, p, 0, 0, 1, o + c, n + p], ["L", o + c, n + u - p], ["A", p, p, 0, 0, 1, o + c - p, n + u], ["L", o + p, n + u], ["A", p, p, 0, 0, 1, o, n + u - p], ["L", o, n + p], ["A", p, p, 0, 0, 1, o + p, n], ["Z"]];
|
|
240
|
+
}(a, t, e, i, s) : [["M", a, t], ["L", a + e, t], ["L", a + e, t + i], ["L", a, t + i], ["Z"]];
|
|
241
|
+
} }, { relativeLength: Ys } = B(), Ns = { "navigator-handle": function(a, t, e, i, s = {}) {
|
|
242
|
+
let o = s.width ? s.width / 2 : e, n = Ys(s.borderRadius || 0, Math.min(2 * o, i));
|
|
243
|
+
return [["M", -1.5, (i = s.height || i) / 2 - 3.5], ["L", -1.5, i / 2 + 4.5], ["M", 0.5, i / 2 - 3.5], ["L", 0.5, i / 2 + 4.5], ...Hs.rect(-o - 1, 0.5, 2 * o + 1, i, { r: n })];
|
|
244
|
+
} };
|
|
245
|
+
var Fs = R(608), $e = R.n(Fs);
|
|
246
|
+
let { defined: Je } = B(), Qe = { setFixedRange: function(a) {
|
|
247
|
+
let t = this.xAxis[0];
|
|
248
|
+
Je(t.dataMax) && Je(t.dataMin) && a ? this.fixedRange = Math.min(a, t.dataMax - t.dataMin) : this.fixedRange = a;
|
|
249
|
+
} }, { setOptions: Us } = B(), { composed: Vs } = B(), { getRendererType: _s } = $e(), { setFixedRange: js } = Qe, { addEvent: qs, extend: Zs, pushUnique: Ks } = B();
|
|
250
|
+
function $s() {
|
|
251
|
+
this.chart.navigator && !this.options.isInternal && this.chart.navigator.setBaseSeries(null, !1);
|
|
252
|
+
}
|
|
253
|
+
let Js = { compose: function(a, t, e) {
|
|
254
|
+
me.compose(t), Ks(Vs, "Navigator") && (a.prototype.setFixedRange = js, Zs(_s().prototype.symbols, Ns), qs(e, "afterUpdate", $s), Us({ navigator: xe }));
|
|
255
|
+
} }, { composed: Qs } = B(), { addEvent: Nt, defined: bt, pick: Ft, pushUnique: to } = B();
|
|
256
|
+
(function(a) {
|
|
257
|
+
let t;
|
|
258
|
+
function e(n) {
|
|
259
|
+
let c = Ft(n.options?.min, n.min), u = Ft(n.options?.max, n.max);
|
|
260
|
+
return { axisMin: c, axisMax: u, scrollMin: bt(n.dataMin) ? Math.min(c, n.min, n.dataMin, Ft(n.threshold, 1 / 0)) : c, scrollMax: bt(n.dataMax) ? Math.max(u, n.max, n.dataMax, Ft(n.threshold, -1 / 0)) : u };
|
|
261
|
+
}
|
|
262
|
+
function i() {
|
|
263
|
+
let n = this.scrollbar, c = n && !n.options.opposite, u = this.horiz ? 2 : c ? 3 : 1;
|
|
264
|
+
n && (this.chart.scrollbarsOffsets = [0, 0], this.chart.axisOffset[u] += n.size + (n.options.margin || 0));
|
|
265
|
+
}
|
|
266
|
+
function s() {
|
|
267
|
+
let n = this;
|
|
268
|
+
n.options?.scrollbar?.enabled && (n.options.scrollbar.vertical = !n.horiz, n.options.startOnTick = n.options.endOnTick = !1, n.scrollbar = new t(n.chart.renderer, n.options.scrollbar, n.chart), Nt(n.scrollbar, "changed", function(c) {
|
|
269
|
+
let u, g, { axisMin: p, axisMax: d, scrollMin: r, scrollMax: l } = e(n), h = l - r;
|
|
270
|
+
if (bt(p) && bt(d))
|
|
271
|
+
if (n.horiz && !n.reversed || !n.horiz && n.reversed ? (u = r + h * this.to, g = r + h * this.from) : (u = r + h * (1 - this.from), g = r + h * (1 - this.to)), this.shouldUpdateExtremes(c.DOMType)) {
|
|
272
|
+
let f = c.DOMType !== "mousemove" && c.DOMType !== "touchmove" && void 0;
|
|
273
|
+
n.setExtremes(g, u, !0, f, c);
|
|
274
|
+
} else this.setRange(this.from, this.to);
|
|
275
|
+
}));
|
|
276
|
+
}
|
|
277
|
+
function o() {
|
|
278
|
+
let n, c, u, { scrollMin: g, scrollMax: p } = e(this), d = this.scrollbar, r = this.axisTitleMargin + (this.titleOffset || 0), l = this.chart.scrollbarsOffsets, h = this.options.margin || 0;
|
|
279
|
+
if (d && l) {
|
|
280
|
+
if (this.horiz) this.opposite || (l[1] += r), d.position(this.left, this.top + this.height + 2 + l[1] - (this.opposite ? h : 0), this.width, this.height), this.opposite || (l[1] += h), n = 1;
|
|
281
|
+
else {
|
|
282
|
+
let f;
|
|
283
|
+
this.opposite && (l[0] += r), f = d.options.opposite ? this.left + this.width + 2 + l[0] - (this.opposite ? 0 : h) : this.opposite ? 0 : h, d.position(f, this.top, this.width, this.height), this.opposite && (l[0] += h), n = 0;
|
|
284
|
+
}
|
|
285
|
+
if (l[n] += d.size + (d.options.margin || 0), isNaN(g) || isNaN(p) || !bt(this.min) || !bt(this.max) || this.dataMin === this.dataMax) d.setRange(0, 1);
|
|
286
|
+
else if (this.min === this.max) {
|
|
287
|
+
let f = this.pointRange / (this.dataMax + 1);
|
|
288
|
+
c = f * this.min, u = f * (this.max + 1), d.setRange(c, u);
|
|
289
|
+
} else c = (this.min - g) / (p - g), u = (this.max - g) / (p - g), this.horiz && !this.reversed || !this.horiz && this.reversed ? d.setRange(c, u) : d.setRange(1 - u, 1 - c);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
a.compose = function(n, c) {
|
|
293
|
+
to(Qs, "Axis.Scrollbar") && (t = c, Nt(n, "afterGetOffset", i), Nt(n, "afterInit", s), Nt(n, "afterRender", o));
|
|
294
|
+
};
|
|
295
|
+
})(re || (re = {}));
|
|
296
|
+
let eo = re, be = { height: 10, barBorderRadius: 5, buttonBorderRadius: 0, buttonsEnabled: !1, liveRedraw: void 0, margin: void 0, minWidth: 6, opposite: !0, step: 0.2, zIndex: 3, barBackgroundColor: "#cccccc", barBorderWidth: 0, barBorderColor: "#cccccc", buttonArrowColor: "#333333", buttonBackgroundColor: "#e6e6e6", buttonBorderColor: "#cccccc", buttonBorderWidth: 1, rifleColor: "none", trackBackgroundColor: "rgba(255, 255, 255, 0.001)", trackBorderColor: "#cccccc", trackBorderRadius: 5, trackBorderWidth: 1 }, { defaultOptions: ve } = B(), { addEvent: io, correctFloat: ut, crisp: Ut, defined: ti, destroyObjectProperties: so, fireEvent: Gt, merge: ye, pick: It, removeEvent: oo } = B();
|
|
297
|
+
class at {
|
|
298
|
+
static compose(t) {
|
|
299
|
+
eo.compose(t, at);
|
|
300
|
+
}
|
|
301
|
+
static swapXY(t, e) {
|
|
302
|
+
return e && t.forEach((i) => {
|
|
303
|
+
let s, o = i.length;
|
|
304
|
+
for (let n = 0; n < o; n += 2) typeof (s = i[n + 1]) == "number" && (i[n + 1] = i[n + 2], i[n + 2] = s);
|
|
305
|
+
}), t;
|
|
306
|
+
}
|
|
307
|
+
constructor(t, e, i) {
|
|
308
|
+
this._events = [], this.chartX = 0, this.chartY = 0, this.from = 0, this.scrollbarButtons = [], this.scrollbarLeft = 0, this.scrollbarStrokeWidth = 1, this.scrollbarTop = 0, this.size = 0, this.to = 0, this.trackBorderWidth = 1, this.x = 0, this.y = 0, this.init(t, e, i);
|
|
309
|
+
}
|
|
310
|
+
addEvents() {
|
|
311
|
+
let t = this.options.inverted ? [1, 0] : [0, 1], e = this.scrollbarButtons, i = this.scrollbarGroup.element, s = this.track.element, o = this.mouseDownHandler.bind(this), n = this.mouseMoveHandler.bind(this), c = this.mouseUpHandler.bind(this), u = [[e[t[0]].element, "click", this.buttonToMinClick.bind(this)], [e[t[1]].element, "click", this.buttonToMaxClick.bind(this)], [s, "click", this.trackClick.bind(this)], [i, "mousedown", o], [i.ownerDocument, "mousemove", n], [i.ownerDocument, "mouseup", c], [i, "touchstart", o], [i.ownerDocument, "touchmove", n], [i.ownerDocument, "touchend", c]];
|
|
312
|
+
u.forEach(function(g) {
|
|
313
|
+
io.apply(null, g);
|
|
314
|
+
}), this._events = u;
|
|
315
|
+
}
|
|
316
|
+
buttonToMaxClick(t) {
|
|
317
|
+
let e = (this.to - this.from) * It(this.options.step, 0.2);
|
|
318
|
+
this.updatePosition(this.from + e, this.to + e), Gt(this, "changed", { from: this.from, to: this.to, trigger: "scrollbar", DOMEvent: t });
|
|
319
|
+
}
|
|
320
|
+
buttonToMinClick(t) {
|
|
321
|
+
let e = ut(this.to - this.from) * It(this.options.step, 0.2);
|
|
322
|
+
this.updatePosition(ut(this.from - e), ut(this.to - e)), Gt(this, "changed", { from: this.from, to: this.to, trigger: "scrollbar", DOMEvent: t });
|
|
323
|
+
}
|
|
324
|
+
cursorToScrollbarPosition(t) {
|
|
325
|
+
let e = this.options, i = e.minWidth > this.calculatedWidth ? e.minWidth : 0;
|
|
326
|
+
return { chartX: (t.chartX - this.x - this.xOffset) / (this.barWidth - i), chartY: (t.chartY - this.y - this.yOffset) / (this.barWidth - i) };
|
|
327
|
+
}
|
|
328
|
+
destroy() {
|
|
329
|
+
let t = this, e = t.chart.scroller;
|
|
330
|
+
t.removeEvents(), ["track", "scrollbarRifles", "scrollbar", "scrollbarGroup", "group"].forEach(function(i) {
|
|
331
|
+
t[i] && t[i].destroy && (t[i] = t[i].destroy());
|
|
332
|
+
}), e && t === e.scrollbar && (e.scrollbar = null, so(e.scrollbarButtons));
|
|
333
|
+
}
|
|
334
|
+
drawScrollbarButton(t) {
|
|
335
|
+
let e = this.renderer, i = this.scrollbarButtons, s = this.options, o = this.size, n = e.g().add(this.group);
|
|
336
|
+
if (i.push(n), s.buttonsEnabled) {
|
|
337
|
+
let c = e.rect().addClass("highcharts-scrollbar-button").add(n);
|
|
338
|
+
this.chart.styledMode || c.attr({ stroke: s.buttonBorderColor, "stroke-width": s.buttonBorderWidth, fill: s.buttonBackgroundColor }), c.attr(c.crisp({ x: -0.5, y: -0.5, width: o, height: o, r: s.buttonBorderRadius }, c.strokeWidth()));
|
|
339
|
+
let u = e.path(at.swapXY([["M", o / 2 + (t ? -1 : 1), o / 2 - 3], ["L", o / 2 + (t ? -1 : 1), o / 2 + 3], ["L", o / 2 + (t ? 2 : -2), o / 2]], s.vertical)).addClass("highcharts-scrollbar-arrow").add(i[t]);
|
|
340
|
+
this.chart.styledMode || u.attr({ fill: s.buttonArrowColor });
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
init(t, e, i) {
|
|
344
|
+
this.scrollbarButtons = [], this.renderer = t, this.userOptions = e, this.options = ye(be, ve.scrollbar, e), this.options.margin = It(this.options.margin, 10), this.chart = i, this.size = It(this.options.size, this.options.height), e.enabled && (this.render(), this.addEvents());
|
|
345
|
+
}
|
|
346
|
+
mouseDownHandler(t) {
|
|
347
|
+
let e = this.chart.pointer?.normalize(t) || t, i = this.cursorToScrollbarPosition(e);
|
|
348
|
+
this.chartX = i.chartX, this.chartY = i.chartY, this.initPositions = [this.from, this.to], this.grabbedCenter = !0;
|
|
349
|
+
}
|
|
350
|
+
mouseMoveHandler(t) {
|
|
351
|
+
let e, i = this.chart.pointer?.normalize(t) || t, s = this.options.vertical ? "chartY" : "chartX", o = this.initPositions || [];
|
|
352
|
+
this.grabbedCenter && (!t.touches || t.touches[0][s] !== 0) && (e = this.cursorToScrollbarPosition(i)[s] - this[s], this.hasDragged = !0, this.updatePosition(o[0] + e, o[1] + e), this.hasDragged && Gt(this, "changed", { from: this.from, to: this.to, trigger: "scrollbar", DOMType: t.type, DOMEvent: t }));
|
|
353
|
+
}
|
|
354
|
+
mouseUpHandler(t) {
|
|
355
|
+
this.hasDragged && Gt(this, "changed", { from: this.from, to: this.to, trigger: "scrollbar", DOMType: t.type, DOMEvent: t }), this.grabbedCenter = this.hasDragged = this.chartX = this.chartY = null;
|
|
356
|
+
}
|
|
357
|
+
position(t, e, i, s) {
|
|
358
|
+
let { buttonsEnabled: o, margin: n = 0, vertical: c } = this.options, u = this.rendered ? "animate" : "attr", g = s, p = 0;
|
|
359
|
+
this.group.show(), this.x = t, this.y = e + this.trackBorderWidth, this.width = i, this.height = s, this.xOffset = g, this.yOffset = p, c ? (this.width = this.yOffset = i = p = this.size, this.xOffset = g = 0, this.yOffset = p = o ? this.size : 0, this.barWidth = s - (o ? 2 * i : 0), this.x = t += n) : (this.height = s = this.size, this.xOffset = g = o ? this.size : 0, this.barWidth = i - (o ? 2 * s : 0), this.y = this.y + n), this.group[u]({ translateX: t, translateY: this.y }), this.track[u]({ width: i, height: s }), this.scrollbarButtons[1][u]({ translateX: c ? 0 : i - g, translateY: c ? s - p : 0 });
|
|
360
|
+
}
|
|
361
|
+
removeEvents() {
|
|
362
|
+
this._events.forEach(function(t) {
|
|
363
|
+
oo.apply(null, t);
|
|
364
|
+
}), this._events.length = 0;
|
|
365
|
+
}
|
|
366
|
+
render() {
|
|
367
|
+
let t = this.renderer, e = this.options, i = this.size, s = this.chart.styledMode, o = t.g("scrollbar").attr({ zIndex: e.zIndex }).hide().add();
|
|
368
|
+
this.group = o, this.track = t.rect().addClass("highcharts-scrollbar-track").attr({ r: e.trackBorderRadius || 0, height: i, width: i }).add(o), s || this.track.attr({ fill: e.trackBackgroundColor, stroke: e.trackBorderColor, "stroke-width": e.trackBorderWidth });
|
|
369
|
+
let n = this.trackBorderWidth = this.track.strokeWidth();
|
|
370
|
+
this.track.attr({ x: -Ut(0, n), y: -Ut(0, n) }), this.scrollbarGroup = t.g().add(o), this.scrollbar = t.rect().addClass("highcharts-scrollbar-thumb").attr({ height: i - n, width: i - n, r: e.barBorderRadius || 0 }).add(this.scrollbarGroup), this.scrollbarRifles = t.path(at.swapXY([["M", -3, i / 4], ["L", -3, 2 * i / 3], ["M", 0, i / 4], ["L", 0, 2 * i / 3], ["M", 3, i / 4], ["L", 3, 2 * i / 3]], e.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup), s || (this.scrollbar.attr({ fill: e.barBackgroundColor, stroke: e.barBorderColor, "stroke-width": e.barBorderWidth }), this.scrollbarRifles.attr({ stroke: e.rifleColor, "stroke-width": 1 })), this.scrollbarStrokeWidth = this.scrollbar.strokeWidth(), this.scrollbarGroup.translate(-Ut(0, this.scrollbarStrokeWidth), -Ut(0, this.scrollbarStrokeWidth)), this.drawScrollbarButton(0), this.drawScrollbarButton(1);
|
|
371
|
+
}
|
|
372
|
+
setRange(t, e) {
|
|
373
|
+
let i, s, o = this.options, n = o.vertical, c = o.minWidth, u = this.barWidth, g = !this.rendered || this.hasDragged || this.chart.navigator && this.chart.navigator.hasDragged ? "attr" : "animate";
|
|
374
|
+
if (!ti(u)) return;
|
|
375
|
+
let p = u * Math.min(e, 1);
|
|
376
|
+
i = Math.ceil(u * (t = Math.max(t, 0))), this.calculatedWidth = s = ut(p - i), s < c && (i = (u - c + s) * t, s = c);
|
|
377
|
+
let d = Math.floor(i + this.xOffset + this.yOffset), r = s / 2 - 0.5;
|
|
378
|
+
this.from = t, this.to = e, n ? (this.scrollbarGroup[g]({ translateY: d }), this.scrollbar[g]({ height: s }), this.scrollbarRifles[g]({ translateY: r }), this.scrollbarTop = d, this.scrollbarLeft = 0) : (this.scrollbarGroup[g]({ translateX: d }), this.scrollbar[g]({ width: s }), this.scrollbarRifles[g]({ translateX: r }), this.scrollbarLeft = d, this.scrollbarTop = 0), s <= 12 ? this.scrollbarRifles.hide() : this.scrollbarRifles.show(), o.showFull === !1 && (t <= 0 && e >= 1 ? this.group.hide() : this.group.show()), this.rendered = !0;
|
|
379
|
+
}
|
|
380
|
+
shouldUpdateExtremes(t) {
|
|
381
|
+
return It(this.options.liveRedraw, B().svg && !B().isTouchDevice && !this.chart.boosted) || t === "mouseup" || t === "touchend" || !ti(t);
|
|
382
|
+
}
|
|
383
|
+
trackClick(t) {
|
|
384
|
+
let e = this.chart.pointer?.normalize(t) || t, i = this.to - this.from, s = this.y + this.scrollbarTop, o = this.x + this.scrollbarLeft;
|
|
385
|
+
this.options.vertical && e.chartY > s || !this.options.vertical && e.chartX > o ? this.updatePosition(this.from + i, this.to + i) : this.updatePosition(this.from - i, this.to - i), Gt(this, "changed", { from: this.from, to: this.to, trigger: "scrollbar", DOMEvent: t });
|
|
386
|
+
}
|
|
387
|
+
update(t) {
|
|
388
|
+
this.destroy(), this.init(this.chart.renderer, ye(!0, this.options, t), this.chart);
|
|
389
|
+
}
|
|
390
|
+
updatePosition(t, e) {
|
|
391
|
+
e > 1 && (t = ut(1 - ut(e - t)), e = 1), t < 0 && (e = ut(e - t), t = 0), this.from = t, this.to = e;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
at.defaultOptions = be, ve.scrollbar = ye(!0, at.defaultOptions, ve.scrollbar);
|
|
395
|
+
var ro = R(540), ao = R.n(ro);
|
|
396
|
+
let { defaultOptions: Me } = B(), { isTouchDevice: no } = B(), { prototype: { symbols: ei } } = ao(), { addEvent: Y, clamp: ii, correctFloat: Vt, defined: vt, destroyObjectProperties: lo, erase: yt, extend: ho, find: po, fireEvent: Ae, isArray: si, isNumber: K, merge: Mt, pick: j, removeEvent: _t, splat: oi } = B();
|
|
397
|
+
function jt(a, ...t) {
|
|
398
|
+
let e = [].filter.call(t, K);
|
|
399
|
+
if (e.length) return Math[a].apply(0, e);
|
|
400
|
+
}
|
|
401
|
+
class qt {
|
|
402
|
+
static compose(t, e, i) {
|
|
403
|
+
Ds.compose(t, qt), Js.compose(t, e, i);
|
|
404
|
+
}
|
|
405
|
+
constructor(t) {
|
|
406
|
+
this.isDirty = !1, this.scrollbarHeight = 0, this.init(t);
|
|
407
|
+
}
|
|
408
|
+
drawHandle(t, e, i, s) {
|
|
409
|
+
let o = this.navigatorOptions.handles.height;
|
|
410
|
+
this.handles[e][s](i ? { translateX: Math.round(this.left + this.height / 2), translateY: Math.round(this.top + parseInt(t, 10) + 0.5 - o) } : { translateX: Math.round(this.left + parseInt(t, 10)), translateY: Math.round(this.top + this.height / 2 - o / 2 - 1) });
|
|
411
|
+
}
|
|
412
|
+
drawOutline(t, e, i, s) {
|
|
413
|
+
let o = this.navigatorOptions.maskInside, n = this.outline.strokeWidth(), c = n / 2, u = n % 2 / 2, g = this.scrollButtonSize, p = this.size, d = this.top, r = this.height, l = d - c, h = d + r, f = this.left, m, x;
|
|
414
|
+
i ? (m = d + e + u, e = d + t + u, x = [["M", f + r, d - g - u], ["L", f + r, m], ["L", f, m], ["M", f, e], ["L", f + r, e], ["L", f + r, d + p + g]], o && x.push(["M", f + r, m - c], ["L", f + r, e + c])) : (f -= g, t += f + g - u, e += f + g - u, x = [["M", f, l], ["L", t, l], ["L", t, h], ["M", e, h], ["L", e, l], ["L", f + p + 2 * g, l]], o && x.push(["M", t - c, l], ["L", e + c, l])), this.outline[s]({ d: x });
|
|
415
|
+
}
|
|
416
|
+
drawMasks(t, e, i, s) {
|
|
417
|
+
let o, n, c, u, g = this.left, p = this.top, d = this.height;
|
|
418
|
+
i ? (c = [g, g, g], u = [p, p + t, p + e], n = [d, d, d], o = [t, e - t, this.size - e]) : (c = [g, g + t, g + e], u = [p, p, p], n = [t, e - t, this.size - e], o = [d, d, d]), this.shades.forEach((r, l) => {
|
|
419
|
+
r[s]({ x: c[l], y: u[l], width: n[l], height: o[l] });
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
renderElements() {
|
|
423
|
+
let t = this, e = t.navigatorOptions, i = e.maskInside, s = t.chart, o = s.inverted, n = s.renderer, c = { cursor: o ? "ns-resize" : "ew-resize" }, u = t.navigatorGroup ?? (t.navigatorGroup = n.g("navigator").attr({ zIndex: 8, visibility: "hidden" }).add());
|
|
424
|
+
if ([!i, i, !i].forEach((g, p) => {
|
|
425
|
+
let d = t.shades[p] ?? (t.shades[p] = n.rect().addClass("highcharts-navigator-mask" + (p === 1 ? "-inside" : "-outside")).add(u));
|
|
426
|
+
s.styledMode || (d.attr({ fill: g ? e.maskFill : "rgba(0,0,0,0)" }), p === 1 && d.css(c));
|
|
427
|
+
}), t.outline || (t.outline = n.path().addClass("highcharts-navigator-outline").add(u)), s.styledMode || t.outline.attr({ "stroke-width": e.outlineWidth, stroke: e.outlineColor }), e.handles?.enabled) {
|
|
428
|
+
let g = e.handles, { height: p, width: d } = g;
|
|
429
|
+
[0, 1].forEach((r) => {
|
|
430
|
+
let l = g.symbols[r];
|
|
431
|
+
if (t.handles[r] && t.handles[r].symbolUrl === l) {
|
|
432
|
+
if (!t.handles[r].isImg && t.handles[r].symbolName !== l) {
|
|
433
|
+
let h = ei[l].call(ei, -d / 2 - 1, 0, d, p);
|
|
434
|
+
t.handles[r].attr({ d: h }), t.handles[r].symbolName = l;
|
|
435
|
+
}
|
|
436
|
+
} else t.handles[r]?.destroy(), t.handles[r] = n.symbol(l, -d / 2 - 1, 0, d, p, g), t.handles[r].attr({ zIndex: 7 - r }).addClass("highcharts-navigator-handle highcharts-navigator-handle-" + ["left", "right"][r]).add(u), t.addMouseEvents();
|
|
437
|
+
s.inverted && t.handles[r].attr({ rotation: 90, rotationOriginX: Math.floor(-d / 2), rotationOriginY: (p + d) / 2 }), s.styledMode || t.handles[r].attr({ fill: g.backgroundColor, stroke: g.borderColor, "stroke-width": g.lineWidth, width: g.width, height: g.height, x: -d / 2 - 1, y: 0 }).css(c);
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
update(t, e = !1) {
|
|
442
|
+
let i = this.chart, s = i.options.chart.inverted !== i.scrollbar?.options.vertical;
|
|
443
|
+
if (Mt(!0, i.options.navigator, t), this.navigatorOptions = i.options.navigator || {}, this.setOpposite(), vt(t.enabled) || s) return this.destroy(), this.navigatorEnabled = t.enabled || this.navigatorEnabled, this.init(i);
|
|
444
|
+
if (this.navigatorEnabled && (this.isDirty = !0, t.adaptToUpdatedData === !1 && this.baseSeries.forEach((o) => {
|
|
445
|
+
_t(o, "updatedData", this.updatedDataHandler);
|
|
446
|
+
}, this), t.adaptToUpdatedData && this.baseSeries.forEach((o) => {
|
|
447
|
+
o.eventsToUnbind.push(Y(o, "updatedData", this.updatedDataHandler));
|
|
448
|
+
}, this), (t.series || t.baseSeries) && this.setBaseSeries(void 0, !1), t.height || t.xAxis || t.yAxis)) {
|
|
449
|
+
this.height = t.height ?? this.height;
|
|
450
|
+
let o = this.getXAxisOffsets();
|
|
451
|
+
this.xAxis.update({ ...t.xAxis, offsets: o, [i.inverted ? "width" : "height"]: this.height, [i.inverted ? "height" : "width"]: void 0 }, !1), this.yAxis.update({ ...t.yAxis, [i.inverted ? "width" : "height"]: this.height }, !1);
|
|
452
|
+
}
|
|
453
|
+
e && i.redraw();
|
|
454
|
+
}
|
|
455
|
+
render(t, e, i, s) {
|
|
456
|
+
let o = this.chart, n = this.xAxis, c = n.pointRange || 0, u = n.navigatorAxis.fake ? o.xAxis[0] : n, g = this.navigatorEnabled, p = this.rendered, d = o.inverted, r = o.xAxis[0].minRange, l = o.xAxis[0].options.maxRange, h = this.scrollButtonSize, f, m, x, b = this.scrollbarHeight, w, v;
|
|
457
|
+
if (this.hasDragged && !vt(i)) return;
|
|
458
|
+
if (this.isDirty && this.renderElements(), t = Vt(t - c / 2), e = Vt(e + c / 2), !K(t) || !K(e)) {
|
|
459
|
+
if (!p) return;
|
|
460
|
+
i = 0, s = j(n.width, u.width);
|
|
461
|
+
}
|
|
462
|
+
this.left = j(n.left, o.plotLeft + h + (d ? o.plotWidth : 0));
|
|
463
|
+
let M = this.size = w = j(n.len, (d ? o.plotHeight : o.plotWidth) - 2 * h);
|
|
464
|
+
f = d ? b : w + 2 * h, i = j(i, n.toPixels(t, !0)), s = j(s, n.toPixels(e, !0)), K(i) && Math.abs(i) !== 1 / 0 || (i = 0, s = f);
|
|
465
|
+
let A = n.toValue(i, !0), y = n.toValue(s, !0), E = Math.abs(Vt(y - A));
|
|
466
|
+
E < r ? this.grabbedLeft ? i = n.toPixels(y - r - c, !0) : this.grabbedRight && (s = n.toPixels(A + r + c, !0)) : vt(l) && Vt(E - c) > l && (this.grabbedLeft ? i = n.toPixels(y - l - c, !0) : this.grabbedRight && (s = n.toPixels(A + l + c, !0))), this.zoomedMax = ii(Math.max(i, s), 0, M), this.zoomedMin = ii(this.fixedWidth ? this.zoomedMax - this.fixedWidth : Math.min(i, s), 0, M), this.range = this.zoomedMax - this.zoomedMin, M = Math.round(this.zoomedMax);
|
|
467
|
+
let k = Math.round(this.zoomedMin);
|
|
468
|
+
g && (this.navigatorGroup.attr({ visibility: "inherit" }), v = p && !this.hasDragged ? "animate" : "attr", this.drawMasks(k, M, d, v), this.drawOutline(k, M, d, v), this.navigatorOptions.handles.enabled && (this.drawHandle(k, 0, d, v), this.drawHandle(M, 1, d, v))), this.scrollbar && (d ? (x = this.top - h, m = this.left - b + (g || !u.opposite ? 0 : (u.titleOffset || 0) + u.axisTitleMargin), b = w + 2 * h) : (x = this.top + (g ? this.height : -b), m = this.left - h), this.scrollbar.position(m, x, f, b), this.scrollbar.setRange(this.zoomedMin / (w || 1), this.zoomedMax / (w || 1))), this.rendered = !0, this.isDirty = !1, Ae(this, "afterRender");
|
|
469
|
+
}
|
|
470
|
+
addMouseEvents() {
|
|
471
|
+
let t = this, e = t.chart, i = e.container, s = [], o, n;
|
|
472
|
+
t.mouseMoveHandler = o = function(c) {
|
|
473
|
+
t.onMouseMove(c);
|
|
474
|
+
}, t.mouseUpHandler = n = function(c) {
|
|
475
|
+
t.onMouseUp(c);
|
|
476
|
+
}, (s = t.getPartsEvents("mousedown")).push(Y(e.renderTo, "mousemove", o), Y(i.ownerDocument, "mouseup", n), Y(e.renderTo, "touchmove", o), Y(i.ownerDocument, "touchend", n)), s.concat(t.getPartsEvents("touchstart")), t.eventsToUnbind = s, t.series && t.series[0] && s.push(Y(t.series[0].xAxis, "foundExtremes", function() {
|
|
477
|
+
e.navigator.modifyNavigatorAxisExtremes();
|
|
478
|
+
}));
|
|
479
|
+
}
|
|
480
|
+
getPartsEvents(t) {
|
|
481
|
+
let e = this, i = [];
|
|
482
|
+
return ["shades", "handles"].forEach(function(s) {
|
|
483
|
+
e[s].forEach(function(o, n) {
|
|
484
|
+
i.push(Y(o.element, t, function(c) {
|
|
485
|
+
e[s + "Mousedown"](c, n);
|
|
486
|
+
}));
|
|
487
|
+
});
|
|
488
|
+
}), i;
|
|
489
|
+
}
|
|
490
|
+
shadesMousedown(t, e) {
|
|
491
|
+
t = this.chart.pointer?.normalize(t) || t;
|
|
492
|
+
let i = this.chart, s = this.xAxis, o = this.zoomedMin, n = this.size, c = this.range, u = this.left, g = t.chartX, p, d, r, l;
|
|
493
|
+
i.inverted && (g = t.chartY, u = this.top), e === 1 ? (this.grabbedCenter = g, this.fixedWidth = c, this.dragOffset = g - o) : (l = g - u - c / 2, e === 0 ? l = Math.max(0, l) : e === 2 && l + c >= n && (l = n - c, this.reversedExtremes ? (l -= c, d = this.getUnionExtremes().dataMin) : p = this.getUnionExtremes().dataMax), l !== o && (this.fixedWidth = c, vt((r = s.navigatorAxis.toFixedRange(l, l + c, d, p)).min) && Ae(this, "setRange", { min: Math.min(r.min, r.max), max: Math.max(r.min, r.max), redraw: !0, eventArguments: { trigger: "navigator" } })));
|
|
494
|
+
}
|
|
495
|
+
handlesMousedown(t, e) {
|
|
496
|
+
t = this.chart.pointer?.normalize(t) || t;
|
|
497
|
+
let i = this.chart, s = i.xAxis[0], o = this.reversedExtremes;
|
|
498
|
+
e === 0 ? (this.grabbedLeft = !0, this.otherHandlePos = this.zoomedMax, this.fixedExtreme = o ? s.min : s.max) : (this.grabbedRight = !0, this.otherHandlePos = this.zoomedMin, this.fixedExtreme = o ? s.max : s.min), i.setFixedRange(void 0);
|
|
499
|
+
}
|
|
500
|
+
onMouseMove(t) {
|
|
501
|
+
let e = this, i = e.chart, s = e.navigatorSize, o = e.range, n = e.dragOffset, c = i.inverted, u = e.left, g;
|
|
502
|
+
(!t.touches || t.touches[0].pageX !== 0) && (g = (t = i.pointer?.normalize(t) || t).chartX, c && (u = e.top, g = t.chartY), e.grabbedLeft ? (e.hasDragged = !0, e.render(0, 0, g - u, e.otherHandlePos)) : e.grabbedRight ? (e.hasDragged = !0, e.render(0, 0, e.otherHandlePos, g - u)) : e.grabbedCenter && (e.hasDragged = !0, g < n ? g = n : g > s + n - o && (g = s + n - o), e.render(0, 0, g - n, g - n + o)), e.hasDragged && e.scrollbar && j(e.scrollbar.options.liveRedraw, !no && !this.chart.boosted) && (t.DOMType = t.type, setTimeout(function() {
|
|
503
|
+
e.onMouseUp(t);
|
|
504
|
+
}, 0)));
|
|
505
|
+
}
|
|
506
|
+
onMouseUp(t) {
|
|
507
|
+
let e, i, s, o, n, c, u = this.chart, g = this.xAxis, p = this.scrollbar, d = t.DOMEvent || t, r = u.inverted, l = this.rendered && !this.hasDragged ? "animate" : "attr";
|
|
508
|
+
(this.hasDragged && (!p || !p.hasDragged) || t.trigger === "scrollbar") && (s = this.getUnionExtremes(), this.zoomedMin === this.otherHandlePos ? o = this.fixedExtreme : this.zoomedMax === this.otherHandlePos && (n = this.fixedExtreme), this.zoomedMax === this.size && (n = this.reversedExtremes ? s.dataMin : s.dataMax), this.zoomedMin === 0 && (o = this.reversedExtremes ? s.dataMax : s.dataMin), vt((c = g.navigatorAxis.toFixedRange(this.zoomedMin, this.zoomedMax, o, n)).min) && Ae(this, "setRange", { min: Math.min(c.min, c.max), max: Math.max(c.min, c.max), redraw: !0, animation: !this.hasDragged && null, eventArguments: { trigger: "navigator", triggerOp: "navigator-drag", DOMEvent: d } })), t.DOMType !== "mousemove" && t.DOMType !== "touchmove" && (this.grabbedLeft = this.grabbedRight = this.grabbedCenter = this.fixedWidth = this.fixedExtreme = this.otherHandlePos = this.hasDragged = this.dragOffset = null), this.navigatorEnabled && K(this.zoomedMin) && K(this.zoomedMax) && (i = Math.round(this.zoomedMin), e = Math.round(this.zoomedMax), this.shades && this.drawMasks(i, e, r, l), this.outline && this.drawOutline(i, e, r, l), this.navigatorOptions.handles.enabled && Object.keys(this.handles).length === this.handles.length && (this.drawHandle(i, 0, r, l), this.drawHandle(e, 1, r, l)));
|
|
509
|
+
}
|
|
510
|
+
removeEvents() {
|
|
511
|
+
this.eventsToUnbind && (this.eventsToUnbind.forEach(function(t) {
|
|
512
|
+
t();
|
|
513
|
+
}), this.eventsToUnbind = void 0), this.removeBaseSeriesEvents();
|
|
514
|
+
}
|
|
515
|
+
removeBaseSeriesEvents() {
|
|
516
|
+
let t = this.baseSeries || [];
|
|
517
|
+
this.navigatorEnabled && t[0] && (this.navigatorOptions.adaptToUpdatedData !== !1 && t.forEach(function(e) {
|
|
518
|
+
_t(e, "updatedData", this.updatedDataHandler);
|
|
519
|
+
}, this), t[0].xAxis && _t(t[0].xAxis, "foundExtremes", this.modifyBaseAxisExtremes));
|
|
520
|
+
}
|
|
521
|
+
getXAxisOffsets() {
|
|
522
|
+
return this.chart.inverted ? [this.scrollButtonSize, 0, -this.scrollButtonSize, 0] : [0, -this.scrollButtonSize, 0, this.scrollButtonSize];
|
|
523
|
+
}
|
|
524
|
+
init(t) {
|
|
525
|
+
let e = t.options, i = e.navigator || {}, s = i.enabled, o = e.scrollbar || {}, n = o.enabled, c = s && i.height || 0, u = n && o.height || 0, g = o.buttonsEnabled && u || 0;
|
|
526
|
+
this.handles = [], this.shades = [], this.chart = t, this.setBaseSeries(), this.height = c, this.scrollbarHeight = u, this.scrollButtonSize = g, this.scrollbarEnabled = n, this.navigatorEnabled = s, this.navigatorOptions = i, this.scrollbarOptions = o, this.setOpposite();
|
|
527
|
+
let p = this, d = p.baseSeries, r = t.xAxis.length, l = t.yAxis.length, h = d && d[0] && d[0].xAxis || t.xAxis[0] || { options: {} };
|
|
528
|
+
if (t.isDirtyBox = !0, p.navigatorEnabled) {
|
|
529
|
+
let f = this.getXAxisOffsets();
|
|
530
|
+
p.xAxis = new (ue())(t, Mt({ breaks: h.options.breaks, ordinal: h.options.ordinal, overscroll: h.options.overscroll }, i.xAxis, { type: "datetime", yAxis: i.yAxis?.id, index: r, isInternal: !0, offset: 0, keepOrdinalPadding: !0, startOnTick: !1, endOnTick: !1, minPadding: h.options.ordinal ? 0 : h.options.minPadding, maxPadding: h.options.ordinal ? 0 : h.options.maxPadding, zoomEnabled: !1 }, t.inverted ? { offsets: f, width: c } : { offsets: f, height: c }), "xAxis"), p.yAxis = new (ue())(t, Mt(i.yAxis, { alignTicks: !1, offset: 0, index: l, isInternal: !0, reversed: j(i.yAxis && i.yAxis.reversed, t.yAxis[0] && t.yAxis[0].reversed, !1), zoomEnabled: !1 }, t.inverted ? { width: c } : { height: c }), "yAxis"), d || i.series.data ? p.updateNavigatorSeries(!1) : t.series.length === 0 && (p.unbindRedraw = Y(t, "beforeRedraw", function() {
|
|
531
|
+
t.series.length > 0 && !p.series && (p.setBaseSeries(), p.unbindRedraw());
|
|
532
|
+
})), p.reversedExtremes = t.inverted && !p.xAxis.reversed || !t.inverted && p.xAxis.reversed, p.renderElements(), p.addMouseEvents();
|
|
533
|
+
} else p.xAxis = { chart: t, navigatorAxis: { fake: !0 }, translate: function(f, m) {
|
|
534
|
+
let x = t.xAxis[0], b = x.getExtremes(), w = x.len - 2 * g, v = jt("min", x.options.min, b.dataMin), M = jt("max", x.options.max, b.dataMax) - v;
|
|
535
|
+
return m ? f * M / w + v : w * (f - v) / M;
|
|
536
|
+
}, toPixels: function(f) {
|
|
537
|
+
return this.translate(f);
|
|
538
|
+
}, toValue: function(f) {
|
|
539
|
+
return this.translate(f, !0);
|
|
540
|
+
} }, p.xAxis.navigatorAxis.axis = p.xAxis, p.xAxis.navigatorAxis.toFixedRange = me.prototype.toFixedRange.bind(p.xAxis.navigatorAxis);
|
|
541
|
+
if (t.options.scrollbar?.enabled) {
|
|
542
|
+
let f = Mt(t.options.scrollbar, { vertical: t.inverted });
|
|
543
|
+
K(f.margin) || (f.margin = t.inverted ? -3 : 3), t.scrollbar = p.scrollbar = new at(t.renderer, f, t), Y(p.scrollbar, "changed", function(m) {
|
|
544
|
+
let x = p.size, b = x * this.to, w = x * this.from;
|
|
545
|
+
p.hasDragged = p.scrollbar.hasDragged, p.render(0, 0, w, b), this.shouldUpdateExtremes(m.DOMType) && setTimeout(function() {
|
|
546
|
+
p.onMouseUp(m);
|
|
547
|
+
});
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
p.addBaseSeriesEvents(), p.addChartEvents();
|
|
551
|
+
}
|
|
552
|
+
setOpposite() {
|
|
553
|
+
let t = this.navigatorOptions, e = this.navigatorEnabled, i = this.chart;
|
|
554
|
+
this.opposite = j(t.opposite, !!(!e && i.inverted));
|
|
555
|
+
}
|
|
556
|
+
getUnionExtremes(t) {
|
|
557
|
+
let e, i = this.chart.xAxis[0], s = this.chart.time, o = this.xAxis, n = o.options, c = i.options;
|
|
558
|
+
return t && i.dataMin === null || (e = { dataMin: j(s.parse(n?.min), jt("min", s.parse(c.min), i.dataMin, o.dataMin, o.min)), dataMax: j(s.parse(n?.max), jt("max", s.parse(c.max), i.dataMax, o.dataMax, o.max)) }), e;
|
|
559
|
+
}
|
|
560
|
+
setBaseSeries(t, e) {
|
|
561
|
+
let i = this.chart, s = this.baseSeries = [];
|
|
562
|
+
t = t || i.options && i.options.navigator.baseSeries || (i.series.length ? po(i.series, (o) => !o.options.isInternal).index : 0), (i.series || []).forEach((o, n) => {
|
|
563
|
+
!o.options.isInternal && (o.options.showInNavigator || (n === t || o.options.id === t) && o.options.showInNavigator !== !1) && s.push(o);
|
|
564
|
+
}), this.xAxis && !this.xAxis.navigatorAxis.fake && this.updateNavigatorSeries(!0, e);
|
|
565
|
+
}
|
|
566
|
+
updateNavigatorSeries(t, e) {
|
|
567
|
+
let i = this, s = i.chart, o = i.baseSeries, n = { enableMouseTracking: !1, index: null, linkedTo: null, group: "nav", padXAxis: !1, xAxis: this.navigatorOptions.xAxis?.id, yAxis: this.navigatorOptions.yAxis?.id, showInLegend: !1, stacking: void 0, isInternal: !0, states: { inactive: { opacity: 1 } } }, c = i.series = (i.series || []).filter((r) => {
|
|
568
|
+
let l = r.baseSeries;
|
|
569
|
+
return !(0 > o.indexOf(l)) || (l && (_t(l, "updatedData", i.updatedDataHandler), delete l.navigatorSeries), r.chart && r.destroy(), !1);
|
|
570
|
+
}), u, g, p = i.navigatorOptions.series, d;
|
|
571
|
+
o && o.length && o.forEach((r) => {
|
|
572
|
+
let l = r.navigatorSeries, h = ho({ color: r.color, visible: r.visible }, si(p) ? Me.navigator.series : p);
|
|
573
|
+
if (l && i.navigatorOptions.adaptToUpdatedData === !1) return;
|
|
574
|
+
n.name = "Navigator " + o.length, d = (u = r.options || {}).navigatorOptions || {}, h.dataLabels = oi(h.dataLabels), (g = Mt(u, n, h, d)).pointRange = j(h.pointRange, d.pointRange, Me.plotOptions[g.type || "line"].pointRange);
|
|
575
|
+
let f = d.data || h.data;
|
|
576
|
+
i.hasNavigatorData = i.hasNavigatorData || !!f, g.data = f || u.data?.slice(0), l && l.options ? l.update(g, e) : (r.navigatorSeries = s.initSeries(g), s.setSortedData(), r.navigatorSeries.baseSeries = r, c.push(r.navigatorSeries));
|
|
577
|
+
}), (p.data && !(o && o.length) || si(p)) && (i.hasNavigatorData = !1, (p = oi(p)).forEach((r, l) => {
|
|
578
|
+
n.name = "Navigator " + (c.length + 1), (g = Mt(Me.navigator.series, { color: s.series[l] && !s.series[l].options.isInternal && s.series[l].color || s.options.colors[l] || s.options.colors[0] }, n, r)).data = r.data, g.data && (i.hasNavigatorData = !0, c.push(s.initSeries(g)));
|
|
579
|
+
})), t && this.addBaseSeriesEvents();
|
|
580
|
+
}
|
|
581
|
+
addBaseSeriesEvents() {
|
|
582
|
+
let t = this, e = t.baseSeries || [];
|
|
583
|
+
e[0] && e[0].xAxis && e[0].eventsToUnbind.push(Y(e[0].xAxis, "foundExtremes", this.modifyBaseAxisExtremes)), e.forEach((i) => {
|
|
584
|
+
i.eventsToUnbind.push(Y(i, "show", function() {
|
|
585
|
+
this.navigatorSeries && this.navigatorSeries.setVisible(!0, !1);
|
|
586
|
+
})), i.eventsToUnbind.push(Y(i, "hide", function() {
|
|
587
|
+
this.navigatorSeries && this.navigatorSeries.setVisible(!1, !1);
|
|
588
|
+
})), this.navigatorOptions.adaptToUpdatedData !== !1 && i.xAxis && i.eventsToUnbind.push(Y(i, "updatedData", this.updatedDataHandler)), i.eventsToUnbind.push(Y(i, "remove", function() {
|
|
589
|
+
e && yt(e, i), this.navigatorSeries && t.series && (yt(t.series, this.navigatorSeries), vt(this.navigatorSeries.options) && this.navigatorSeries.remove(!1), delete this.navigatorSeries);
|
|
590
|
+
}));
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
getBaseSeriesMin(t) {
|
|
594
|
+
return this.baseSeries.reduce(function(e, i) {
|
|
595
|
+
return Math.min(e, i.getColumn("x")[0] ?? e);
|
|
596
|
+
}, t);
|
|
597
|
+
}
|
|
598
|
+
modifyNavigatorAxisExtremes() {
|
|
599
|
+
let t = this.xAxis;
|
|
600
|
+
if (t.getExtremes !== void 0) {
|
|
601
|
+
let e = this.getUnionExtremes(!0);
|
|
602
|
+
e && (e.dataMin !== t.min || e.dataMax !== t.max) && (t.min = e.dataMin, t.max = e.dataMax);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
modifyBaseAxisExtremes() {
|
|
606
|
+
let t, e, i = this.chart.navigator, s = this.getExtremes(), o = s.min, n = s.max, c = s.dataMin, u = s.dataMax, g = n - o, p = i.stickToMin, d = i.stickToMax, r = j(this.ordinal?.convertOverscroll(this.options.overscroll), 0), l = i.series && i.series[0], h = !!this.setExtremes;
|
|
607
|
+
!(this.eventArgs && this.eventArgs.trigger === "rangeSelectorButton") && (p && (t = (e = c) + g), d && (t = u + r, p || (e = Math.max(c, t - g, i.getBaseSeriesMin(l && l.xData ? l.xData[0] : -Number.MAX_VALUE)))), h && (p || d) && K(e) && (this.min = this.userMin = e, this.max = this.userMax = t)), i.stickToMin = i.stickToMax = null;
|
|
608
|
+
}
|
|
609
|
+
updatedDataHandler() {
|
|
610
|
+
let t = this.chart.navigator, e = this.navigatorSeries, i = t.reversedExtremes ? Math.round(t.zoomedMin) === 0 : Math.round(t.zoomedMax) >= Math.round(t.size);
|
|
611
|
+
t.stickToMax = j(this.chart.options.navigator && this.chart.options.navigator.stickToMax, i), t.stickToMin = t.shouldStickToMin(this, t), e && !t.hasNavigatorData && (e.options.pointStart = this.getColumn("x")[0], e.setData(this.options.data, !1, null, !1));
|
|
612
|
+
}
|
|
613
|
+
shouldStickToMin(t, e) {
|
|
614
|
+
let i = e.getBaseSeriesMin(t.getColumn("x")[0]), s = t.xAxis, o = s.max, n = s.min, c = s.options.range;
|
|
615
|
+
return !!(K(o) && K(n)) && (c && o - i > 0 ? o - i < c : n <= i);
|
|
616
|
+
}
|
|
617
|
+
addChartEvents() {
|
|
618
|
+
this.eventsToUnbind || (this.eventsToUnbind = []), this.eventsToUnbind.push(Y(this.chart, "redraw", function() {
|
|
619
|
+
let t = this.navigator, e = t && (t.baseSeries && t.baseSeries[0] && t.baseSeries[0].xAxis || this.xAxis[0]);
|
|
620
|
+
e && t.render(e.min, e.max);
|
|
621
|
+
}), Y(this.chart, "getMargins", function() {
|
|
622
|
+
let t = this.navigator, e = t.opposite ? "plotTop" : "marginBottom";
|
|
623
|
+
this.inverted && (e = t.opposite ? "marginRight" : "plotLeft"), this[e] = (this[e] || 0) + (t.navigatorEnabled || !this.inverted ? t.height + (this.scrollbar?.options.margin || 0) + t.scrollbarHeight : 0) + (t.navigatorOptions.margin || 0);
|
|
624
|
+
}), Y(qt, "setRange", function(t) {
|
|
625
|
+
this.chart.xAxis[0].setExtremes(t.min, t.max, t.redraw, t.animation, t.eventArguments);
|
|
626
|
+
}));
|
|
627
|
+
}
|
|
628
|
+
destroy() {
|
|
629
|
+
this.removeEvents(), this.xAxis && (yt(this.chart.xAxis, this.xAxis), yt(this.chart.axes, this.xAxis)), this.yAxis && (yt(this.chart.yAxis, this.yAxis), yt(this.chart.axes, this.yAxis)), (this.series || []).forEach((t) => {
|
|
630
|
+
t.destroy && t.destroy();
|
|
631
|
+
}), ["series", "xAxis", "yAxis", "shades", "outline", "scrollbarTrack", "scrollbarRifles", "scrollbarGroup", "scrollbar", "navigatorGroup", "rendered"].forEach((t) => {
|
|
632
|
+
this[t] && this[t].destroy && this[t].destroy(), this[t] = null;
|
|
633
|
+
}), [this.handles].forEach((t) => {
|
|
634
|
+
lo(t);
|
|
635
|
+
}), this.baseSeries.forEach((t) => {
|
|
636
|
+
t.navigatorSeries = void 0;
|
|
637
|
+
}), this.navigatorEnabled = !1;
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
(function(a) {
|
|
641
|
+
a.setLength = function(t, e, i) {
|
|
642
|
+
return Array.isArray(t) ? (t.length = e, t) : t[i ? "subarray" : "slice"](0, e);
|
|
643
|
+
}, a.splice = function(t, e, i, s, o = []) {
|
|
644
|
+
if (Array.isArray(t)) return Array.isArray(o) || (o = Array.from(o)), { removed: t.splice(e, i, ...o), array: t };
|
|
645
|
+
let n = Object.getPrototypeOf(t).constructor, c = t[s ? "subarray" : "slice"](e, e + i), u = new n(t.length - i + o.length);
|
|
646
|
+
return u.set(t.subarray(0, e), 0), u.set(o, e), u.set(t.subarray(e + i), e + o.length), { removed: c, array: u };
|
|
647
|
+
};
|
|
648
|
+
})(ae || (ae = {}));
|
|
649
|
+
let { setLength: uo, splice: ri } = ae, { fireEvent: ke, objectEach: zt, uniqueKey: Lt } = B(), ai = class {
|
|
650
|
+
constructor(a = {}) {
|
|
651
|
+
this.autoId = !a.id, this.columns = {}, this.id = a.id || Lt(), this.modified = this, this.rowCount = 0, this.versionTag = Lt();
|
|
652
|
+
let t = 0;
|
|
653
|
+
zt(a.columns || {}, (e, i) => {
|
|
654
|
+
this.columns[i] = e.slice(), t = Math.max(t, e.length);
|
|
655
|
+
}), this.applyRowCount(t);
|
|
656
|
+
}
|
|
657
|
+
applyRowCount(a) {
|
|
658
|
+
this.rowCount = a, zt(this.columns, (t, e) => {
|
|
659
|
+
t.length !== a && (this.columns[e] = uo(t, a));
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
deleteRows(a, t = 1) {
|
|
663
|
+
if (t > 0 && a < this.rowCount) {
|
|
664
|
+
let e = 0;
|
|
665
|
+
zt(this.columns, (i, s) => {
|
|
666
|
+
this.columns[s] = ri(i, a, t).array, e = i.length;
|
|
667
|
+
}), this.rowCount = e;
|
|
668
|
+
}
|
|
669
|
+
ke(this, "afterDeleteRows", { rowIndex: a, rowCount: t }), this.versionTag = Lt();
|
|
670
|
+
}
|
|
671
|
+
getColumn(a, t) {
|
|
672
|
+
return this.columns[a];
|
|
673
|
+
}
|
|
674
|
+
getColumns(a, t) {
|
|
675
|
+
return (a || Object.keys(this.columns)).reduce((e, i) => (e[i] = this.columns[i], e), {});
|
|
676
|
+
}
|
|
677
|
+
getRow(a, t) {
|
|
678
|
+
return (t || Object.keys(this.columns)).map((e) => this.columns[e]?.[a]);
|
|
679
|
+
}
|
|
680
|
+
setColumn(a, t = [], e = 0, i) {
|
|
681
|
+
this.setColumns({ [a]: t }, e, i);
|
|
682
|
+
}
|
|
683
|
+
setColumns(a, t, e) {
|
|
684
|
+
let i = this.rowCount;
|
|
685
|
+
zt(a, (s, o) => {
|
|
686
|
+
this.columns[o] = s.slice(), i = s.length;
|
|
687
|
+
}), this.applyRowCount(i), e?.silent || (ke(this, "afterSetColumns"), this.versionTag = Lt());
|
|
688
|
+
}
|
|
689
|
+
setRow(a, t = this.rowCount, e, i) {
|
|
690
|
+
let { columns: s } = this, o = e ? this.rowCount + 1 : t + 1;
|
|
691
|
+
zt(a, (n, c) => {
|
|
692
|
+
let u = s[c] || i?.addColumns !== !1 && Array(o);
|
|
693
|
+
u && (e ? u = ri(u, t, 0, !0, [n]).array : u[t] = n, s[c] = u);
|
|
694
|
+
}), o > this.rowCount && this.applyRowCount(o), i?.silent || (ke(this, "afterSetRows"), this.versionTag = Lt());
|
|
695
|
+
}
|
|
696
|
+
}, { addEvent: ct, correctFloat: Zt, css: co, defined: $, error: go, isNumber: ni, pick: we, timeUnits: fo, isString: mo } = B();
|
|
697
|
+
(function(a) {
|
|
698
|
+
function t(r, l, h, f, m = [], x = 0, b) {
|
|
699
|
+
let w = {}, v = this.options.tickPixelInterval, M = this.chart.time, A = [], y, E, k, T, O, S = 0, C = [], I = -Number.MAX_VALUE;
|
|
700
|
+
if (!this.options.ordinal && !this.options.breaks || !m || m.length < 3 || l === void 0) return M.getTimeTicks.apply(M, arguments);
|
|
701
|
+
let G = m.length;
|
|
702
|
+
for (y = 0; y < G; y++) {
|
|
703
|
+
if (O = y && m[y - 1] > h, m[y] < l && (S = y), y === G - 1 || m[y + 1] - m[y] > 5 * x || O) {
|
|
704
|
+
if (m[y] > I) {
|
|
705
|
+
for (E = M.getTimeTicks(r, m[S], m[y], f); E.length && E[0] <= I; ) E.shift();
|
|
706
|
+
E.length && (I = E[E.length - 1]), A.push(C.length), C = C.concat(E);
|
|
707
|
+
}
|
|
708
|
+
S = y + 1;
|
|
709
|
+
}
|
|
710
|
+
if (O) break;
|
|
711
|
+
}
|
|
712
|
+
if (E) {
|
|
713
|
+
if (T = E.info, b && T.unitRange <= fo.hour) {
|
|
714
|
+
for (S = 1, y = C.length - 1; S < y; S++) M.dateFormat("%d", C[S]) !== M.dateFormat("%d", C[S - 1]) && (w[C[S]] = "day", k = !0);
|
|
715
|
+
k && (w[C[0]] = "day"), T.higherRanks = w;
|
|
716
|
+
}
|
|
717
|
+
T.segmentStarts = A, C.info = T;
|
|
718
|
+
} else go(12, !1, this.chart);
|
|
719
|
+
if (b && $(v)) {
|
|
720
|
+
let D = C.length, z = [], L = [], W, X, N, ht, Bt, V = D;
|
|
721
|
+
for (; V--; ) X = this.translate(C[V]), N && (L[V] = N - X), z[V] = N = X;
|
|
722
|
+
for (L.sort((Ct, Jt) => Ct - Jt), (ht = L[Math.floor(L.length / 2)]) < 0.6 * v && (ht = null), V = C[D - 1] > h ? D - 1 : D, N = void 0; V--; ) Bt = Math.abs(N - (X = z[V])), N && Bt < 0.8 * v && (ht === null || Bt < 0.8 * ht) ? (w[C[V]] && !w[C[V + 1]] ? (W = V + 1, N = X) : W = V, C.splice(W, 1)) : N = X;
|
|
723
|
+
}
|
|
724
|
+
return C;
|
|
725
|
+
}
|
|
726
|
+
function e(r) {
|
|
727
|
+
let l = this.ordinal.positions;
|
|
728
|
+
if (!l) return r;
|
|
729
|
+
let h = l.length - 1, f;
|
|
730
|
+
return r < 0 ? r = l[0] : r > h ? r = l[h] : (h = Math.floor(r), f = r - h), f !== void 0 && l[h] !== void 0 ? l[h] + (f ? f * (l[h + 1] - l[h]) : 0) : r;
|
|
731
|
+
}
|
|
732
|
+
function i(r) {
|
|
733
|
+
let l = this.ordinal, h = this.old ? this.old.min : this.min, f = this.old ? this.old.transA : this.transA, m = l.getExtendedPositions();
|
|
734
|
+
if (m?.length) {
|
|
735
|
+
let x = Zt((r - h) * f + this.minPixelPadding), b = Zt(l.getIndexOfPoint(x, m)), w = Zt(b % 1);
|
|
736
|
+
if (b >= 0 && b <= m.length - 1) {
|
|
737
|
+
let v = m[Math.floor(b)], M = m[Math.ceil(b)];
|
|
738
|
+
return m[Math.floor(b)] + w * (M - v);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
return r;
|
|
742
|
+
}
|
|
743
|
+
function s(r, l) {
|
|
744
|
+
let h = a.Additions.findIndexOf(r, l, !0);
|
|
745
|
+
if (r[h] === l) return h;
|
|
746
|
+
let f = (l - r[h]) / (r[h + 1] - r[h]);
|
|
747
|
+
return h + f;
|
|
748
|
+
}
|
|
749
|
+
function o() {
|
|
750
|
+
this.ordinal || (this.ordinal = new a.Additions(this));
|
|
751
|
+
}
|
|
752
|
+
function n() {
|
|
753
|
+
let { eventArgs: r, options: l } = this;
|
|
754
|
+
if (this.isXAxis && $(l.overscroll) && l.overscroll !== 0 && ni(this.max) && ni(this.min) && (this.options.ordinal && !this.ordinal.originalOrdinalRange && this.ordinal.getExtendedPositions(!1), this.max === this.dataMax && (r?.trigger !== "pan" || this.isInternal) && r?.trigger !== "navigator")) {
|
|
755
|
+
let h = this.ordinal.convertOverscroll(l.overscroll);
|
|
756
|
+
this.max += h, !this.isInternal && $(this.userMin) && r?.trigger !== "mousewheel" && (this.min += h);
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
function c() {
|
|
760
|
+
this.horiz && !this.isDirty && (this.isDirty = this.isOrdinal && this.chart.navigator && !this.chart.navigator.adaptToUpdatedData);
|
|
761
|
+
}
|
|
762
|
+
function u() {
|
|
763
|
+
this.ordinal && (this.ordinal.beforeSetTickPositions(), this.tickInterval = this.ordinal.postProcessTickInterval(this.tickInterval));
|
|
764
|
+
}
|
|
765
|
+
function g(r) {
|
|
766
|
+
let l = this.xAxis[0], h = l.ordinal.convertOverscroll(l.options.overscroll), f = r.originalEvent.chartX, m = this.options.chart.panning, x = !1;
|
|
767
|
+
if (m && m.type !== "y" && l.options.ordinal && l.series.length && (!r.touches || r.touches.length <= 1)) {
|
|
768
|
+
let b, w, v = this.mouseDownX, M = l.getExtremes(), A = M.dataMin, y = M.dataMax, E = M.min, k = M.max, T = this.hoverPoints, O = l.closestPointRange || l.ordinal?.overscrollPointsRange, S = Math.round((v - f) / (l.translationSlope * (l.ordinal.slope || O))), C = l.ordinal.getExtendedPositions(), I = { ordinal: { positions: C, extendedOrdinalPositions: C } }, G = l.index2val, D = l.val2lin;
|
|
769
|
+
if (E <= A && S < 0 || k + h >= y && S > 0) return;
|
|
770
|
+
I.ordinal.positions ? Math.abs(S) > 1 && (T && T.forEach(function(z) {
|
|
771
|
+
z.setState();
|
|
772
|
+
}), y > (w = I.ordinal.positions)[w.length - 1] && w.push(y), this.setFixedRange(k - E), (b = l.navigatorAxis.toFixedRange(void 0, void 0, G.apply(I, [D.apply(I, [E, !0]) + S]), G.apply(I, [D.apply(I, [k, !0]) + S]))).min >= Math.min(w[0], E) && b.max <= Math.max(w[w.length - 1], k) + h && l.setExtremes(b.min, b.max, !0, !1, { trigger: "pan" }), this.mouseDownX = f, co(this.container, { cursor: "move" })) : x = !0;
|
|
773
|
+
} else x = !0;
|
|
774
|
+
x || m && /y/.test(m.type) ? h && (l.max = l.dataMax + h) : r.preventDefault();
|
|
775
|
+
}
|
|
776
|
+
function p() {
|
|
777
|
+
let r = this.xAxis;
|
|
778
|
+
r?.options.ordinal && (delete r.ordinal.index, delete r.ordinal.originalOrdinalRange);
|
|
779
|
+
}
|
|
780
|
+
function d(r, l) {
|
|
781
|
+
let h, f = this.ordinal, m = f.positions, x = f.slope, b;
|
|
782
|
+
if (!m) return r;
|
|
783
|
+
let w = m.length;
|
|
784
|
+
if (m[0] <= r && m[w - 1] >= r) h = s(m, r);
|
|
785
|
+
else {
|
|
786
|
+
if (b = f.getExtendedPositions?.(), !b?.length) return r;
|
|
787
|
+
let v = b.length;
|
|
788
|
+
x || (x = (b[v - 1] - b[0]) / v);
|
|
789
|
+
let M = s(b, m[0]);
|
|
790
|
+
if (r >= b[0] && r <= b[v - 1]) h = s(b, r) - M;
|
|
791
|
+
else {
|
|
792
|
+
if (!l) return r;
|
|
793
|
+
h = r < b[0] ? -M - (b[0] - r) / x : (r - b[v - 1]) / x + v - M;
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
return l ? h : x * (h || 0) + f.offset;
|
|
797
|
+
}
|
|
798
|
+
a.compose = function(r, l, h) {
|
|
799
|
+
let f = r.prototype;
|
|
800
|
+
return f.ordinal2lin || (f.getTimeTicks = t, f.index2val = e, f.lin2val = i, f.val2lin = d, f.ordinal2lin = f.val2lin, ct(r, "afterInit", o), ct(r, "foundExtremes", n), ct(r, "afterSetScale", c), ct(r, "initialAxisTranslation", u), ct(h, "pan", g), ct(h, "touchpan", g), ct(l, "updatedData", p)), r;
|
|
801
|
+
}, a.Additions = class {
|
|
802
|
+
constructor(r) {
|
|
803
|
+
this.index = {}, this.axis = r;
|
|
804
|
+
}
|
|
805
|
+
beforeSetTickPositions() {
|
|
806
|
+
let r = this.axis, l = r.ordinal, h = r.getExtremes(), f = h.min, m = h.max, x = r.brokenAxis?.hasBreaks, b = r.options.ordinal, w, v, M, A, y, E, k, T = [], O = Number.MAX_VALUE, S = !1, C = !1, I = !1;
|
|
807
|
+
if (b || x) {
|
|
808
|
+
let G = 0;
|
|
809
|
+
if (r.series.forEach(function(D, z) {
|
|
810
|
+
let L = D.getColumn("x", !0);
|
|
811
|
+
if (v = [], z > 0 && D.options.id !== "highcharts-navigator-series" && L.length > 1 && (C = G !== L[1] - L[0]), G = L[1] - L[0], D.boosted && (I = D.boosted), D.reserveSpace() && (D.takeOrdinalPosition !== !1 || x) && (w = (T = T.concat(L)).length, T.sort(function(W, X) {
|
|
812
|
+
return W - X;
|
|
813
|
+
}), O = Math.min(O, we(D.closestPointRange, O)), w)) {
|
|
814
|
+
for (z = 0; z < w - 1; ) T[z] !== T[z + 1] && v.push(T[z + 1]), z++;
|
|
815
|
+
v[0] !== T[0] && v.unshift(T[0]), T = v;
|
|
816
|
+
}
|
|
817
|
+
}), r.ordinal.originalOrdinalRange || (r.ordinal.originalOrdinalRange = (T.length - 1) * O), C && I && (T.pop(), T.shift()), (w = T.length) > 2) {
|
|
818
|
+
for (M = T[1] - T[0], k = w - 1; k-- && !S; ) T[k + 1] - T[k] !== M && (S = !0);
|
|
819
|
+
!r.options.keepOrdinalPadding && (T[0] - f > M || m - T[T.length - 1] > M) && (S = !0);
|
|
820
|
+
} else r.options.overscroll && (w === 2 ? O = T[1] - T[0] : w === 1 ? (O = r.ordinal.convertOverscroll(r.options.overscroll), T = [T[0], T[0] + O]) : O = l.overscrollPointsRange);
|
|
821
|
+
S || r.forceOrdinal ? (r.options.overscroll && (l.overscrollPointsRange = O, T = T.concat(l.getOverscrollPositions())), l.positions = T, A = r.ordinal2lin(Math.max(f, T[0]), !0), y = Math.max(r.ordinal2lin(Math.min(m, T[T.length - 1]), !0), 1), l.slope = E = (m - f) / (y - A), l.offset = f - A * E) : (l.overscrollPointsRange = we(r.closestPointRange, l.overscrollPointsRange), l.positions = r.ordinal.slope = l.offset = void 0);
|
|
822
|
+
}
|
|
823
|
+
r.isOrdinal = b && S, l.groupIntervalFactor = null;
|
|
824
|
+
}
|
|
825
|
+
static findIndexOf(r, l, h) {
|
|
826
|
+
let f = 0, m = r.length - 1, x;
|
|
827
|
+
for (; f < m; ) r[x = Math.ceil((f + m) / 2)] <= l ? f = x : m = x - 1;
|
|
828
|
+
return r[f] === l || h ? f : -1;
|
|
829
|
+
}
|
|
830
|
+
getExtendedPositions(r = !0) {
|
|
831
|
+
let l = this, h = l.axis, f = h.constructor.prototype, m = h.chart, x = h.series.reduce((y, E) => {
|
|
832
|
+
let k = E.currentDataGrouping;
|
|
833
|
+
return y + (k ? k.count + k.unitName : "raw");
|
|
834
|
+
}, ""), b = r ? h.ordinal.convertOverscroll(h.options.overscroll) : 0, w = h.getExtremes(), v, M, A = l.index;
|
|
835
|
+
return A || (A = l.index = {}), !A[x] && ((v = { series: [], chart: m, forceOrdinal: !1, getExtremes: function() {
|
|
836
|
+
return { min: w.dataMin, max: w.dataMax + b };
|
|
837
|
+
}, applyGrouping: f.applyGrouping, getGroupPixelWidth: f.getGroupPixelWidth, getTimeTicks: f.getTimeTicks, options: { ordinal: !0 }, ordinal: { getGroupIntervalFactor: this.getGroupIntervalFactor }, ordinal2lin: f.ordinal2lin, getIndexOfPoint: f.getIndexOfPoint, val2lin: f.val2lin }).ordinal.axis = v, h.series.forEach((y) => {
|
|
838
|
+
M = { xAxis: v, chart: m, groupPixelWidth: y.groupPixelWidth, destroyGroupedData: B().noop, getColumn: y.getColumn, applyGrouping: y.applyGrouping, getProcessedData: y.getProcessedData, reserveSpace: y.reserveSpace, visible: y.visible };
|
|
839
|
+
let E = y.getColumn("x").concat(r ? l.getOverscrollPositions() : []);
|
|
840
|
+
M.dataTable = new ai({ columns: { x: E } }), M.options = { ...y.options, dataGrouping: y.currentDataGrouping ? { firstAnchor: y.options.dataGrouping?.firstAnchor, anchor: y.options.dataGrouping?.anchor, lastAnchor: y.options.dataGrouping?.firstAnchor, enabled: !0, forced: !0, approximation: "open", units: [[y.currentDataGrouping.unitName, [y.currentDataGrouping.count]]] } : { enabled: !1 } }, v.series.push(M), y.processData.apply(M);
|
|
841
|
+
}), v.applyGrouping({ hasExtremesChanged: !0 }), M?.closestPointRange !== M?.basePointRange && M.currentDataGrouping && (v.forceOrdinal = !0), h.ordinal.beforeSetTickPositions.apply({ axis: v }), !h.ordinal.originalOrdinalRange && v.ordinal.originalOrdinalRange && (h.ordinal.originalOrdinalRange = v.ordinal.originalOrdinalRange), v.ordinal.positions && (A[x] = v.ordinal.positions)), A[x];
|
|
842
|
+
}
|
|
843
|
+
getGroupIntervalFactor(r, l, h) {
|
|
844
|
+
let f = h.getColumn("x", !0), m = f.length, x = [], b, w, v = this.groupIntervalFactor;
|
|
845
|
+
if (!v) {
|
|
846
|
+
for (w = 0; w < m - 1; w++) x[w] = f[w + 1] - f[w];
|
|
847
|
+
x.sort(function(M, A) {
|
|
848
|
+
return M - A;
|
|
849
|
+
}), b = x[Math.floor(m / 2)], r = Math.max(r, f[0]), l = Math.min(l, f[m - 1]), this.groupIntervalFactor = v = m * b / (l - r);
|
|
850
|
+
}
|
|
851
|
+
return v;
|
|
852
|
+
}
|
|
853
|
+
getIndexOfPoint(r, l) {
|
|
854
|
+
let h = this.axis, f = h.min, m = h.minPixelPadding;
|
|
855
|
+
return s(l, f) + Zt((r - m) / (h.translationSlope * (this.slope || h.closestPointRange || this.overscrollPointsRange)));
|
|
856
|
+
}
|
|
857
|
+
getOverscrollPositions() {
|
|
858
|
+
let r = this.axis, l = this.convertOverscroll(r.options.overscroll), h = this.overscrollPointsRange, f = [], m = r.dataMax;
|
|
859
|
+
if ($(h)) for (; m < r.dataMax + l; ) f.push(m += h);
|
|
860
|
+
return f;
|
|
861
|
+
}
|
|
862
|
+
postProcessTickInterval(r) {
|
|
863
|
+
let l = this.axis, h = this.slope, f = l.closestPointRange;
|
|
864
|
+
return h && f ? l.options.breaks ? f || r : r / (h / f) : r;
|
|
865
|
+
}
|
|
866
|
+
convertOverscroll(r = 0) {
|
|
867
|
+
let l = this, h = l.axis, f = function(m) {
|
|
868
|
+
return we(l.originalOrdinalRange, $(h.dataMax) && $(h.dataMin) ? h.dataMax - h.dataMin : 0) * m;
|
|
869
|
+
};
|
|
870
|
+
if (mo(r)) {
|
|
871
|
+
let m, x = parseInt(r, 10);
|
|
872
|
+
if ($(h.min) && $(h.max) && $(h.dataMin) && $(h.dataMax) && !(m = h.max - h.min == h.dataMax - h.dataMin) && (this.originalOrdinalRange = h.max - h.min), /%$/.test(r)) return f(x / 100);
|
|
873
|
+
if (/px/.test(r)) {
|
|
874
|
+
let b = Math.min(x, 0.9 * h.len) / h.len;
|
|
875
|
+
return f(b / (m ? 1 - b : 1));
|
|
876
|
+
}
|
|
877
|
+
return 0;
|
|
878
|
+
}
|
|
879
|
+
return r;
|
|
880
|
+
}
|
|
881
|
+
};
|
|
882
|
+
})(ne || (ne = {}));
|
|
883
|
+
let Se = ne, Te = { lang: { rangeSelectorZoom: "Zoom", rangeSelectorFrom: "", rangeSelectorTo: "→", rangeSelector: { allText: "All", allTitle: "View all", monthText: "{count}m", monthTitle: "View {count} {#eq count 1}month{else}months{/eq}", yearText: "{count}y", yearTitle: "View {count} {#eq count 1}year{else}years{/eq}", ytdText: "YTD", ytdTitle: "View year to date" } }, rangeSelector: { allButtonsEnabled: !1, buttons: [{ type: "month", count: 1 }, { type: "month", count: 3 }, { type: "month", count: 6 }, { type: "ytd" }, { type: "year", count: 1 }, { type: "all" }], buttonSpacing: 5, dropdown: "responsive", enabled: void 0, verticalAlign: "top", buttonTheme: { width: 28, height: 18, padding: 2, zIndex: 7 }, floating: !1, x: 0, y: 0, height: void 0, inputBoxBorderColor: "none", inputBoxHeight: 17, inputBoxWidth: void 0, inputDateFormat: "%[ebY]", inputDateParser: void 0, inputEditDateFormat: "%Y-%m-%d", inputEnabled: !0, inputPosition: { align: "right", x: 0, y: 0 }, inputSpacing: 5, selected: void 0, buttonPosition: { align: "left", x: 0, y: 0 }, inputStyle: { color: "#334eff", cursor: "pointer", fontSize: "0.8em" }, labelStyle: { color: "#666666", fontSize: "0.8em" } } }, { defaultOptions: li } = B(), { composed: xo } = B(), { addEvent: gt, defined: bo, extend: hi, isNumber: At, merge: vo, pick: di, pushUnique: yo } = B(), Ee = [];
|
|
884
|
+
function Mo() {
|
|
885
|
+
let a, t, e = this.range, i = e.type, s = this.max, o = this.chart.time, n = function(u, g) {
|
|
886
|
+
let p = o.toParts(u), d = p.slice();
|
|
887
|
+
i === "year" ? d[0] += g : d[1] += g;
|
|
888
|
+
let r = o.makeTime.apply(o, d), l = o.toParts(r);
|
|
889
|
+
return i === "month" && p[1] === l[1] && Math.abs(g) === 1 && (d[0] = p[0], d[1] = p[1], d[2] = 0), (r = o.makeTime.apply(o, d)) - u;
|
|
890
|
+
};
|
|
891
|
+
At(e) ? (a = s - e, t = e) : e && (a = s + n(s, -(e.count || 1)), this.chart && this.chart.setFixedRange(s - a));
|
|
892
|
+
let c = di(this.dataMin, Number.MIN_VALUE);
|
|
893
|
+
return At(a) || (a = c), a <= c && (a = c, t === void 0 && (t = n(a, e.count)), this.newMax = Math.min(a + t, di(this.dataMax, Number.MAX_VALUE))), At(s) ? !At(e) && e && e._offsetMin && (a += e._offsetMin) : a = void 0, a;
|
|
894
|
+
}
|
|
895
|
+
function Ao() {
|
|
896
|
+
this.rangeSelector?.redrawElements();
|
|
897
|
+
}
|
|
898
|
+
function ko() {
|
|
899
|
+
this.options.rangeSelector && this.options.rangeSelector.enabled && (this.rangeSelector = new ie(this));
|
|
900
|
+
}
|
|
901
|
+
function wo() {
|
|
902
|
+
let a = this.rangeSelector;
|
|
903
|
+
if (a) {
|
|
904
|
+
At(a.deferredYTDClick) && (a.clickButton(a.deferredYTDClick), delete a.deferredYTDClick);
|
|
905
|
+
let t = a.options.verticalAlign;
|
|
906
|
+
a.options.floating || (t === "bottom" ? this.extraBottomMargin = !0 : t !== "top" || (this.extraTopMargin = !0));
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
function pi() {
|
|
910
|
+
let a, t = this.rangeSelector;
|
|
911
|
+
if (!t) return;
|
|
912
|
+
let e = this.xAxis[0].getExtremes(), i = this.legend, s = t && t.options.verticalAlign;
|
|
913
|
+
At(e.min) && t.render(e.min, e.max), i.display && s === "top" && s === i.options.verticalAlign && (a = vo(this.spacingBox), i.options.layout === "vertical" ? a.y = this.plotTop : a.y += t.getHeight(), i.group.placed = !1, i.align(a));
|
|
914
|
+
}
|
|
915
|
+
function So() {
|
|
916
|
+
for (let a = 0, t = Ee.length; a < t; ++a) {
|
|
917
|
+
let e = Ee[a];
|
|
918
|
+
if (e[0] === this) {
|
|
919
|
+
e[1].forEach((i) => i()), Ee.splice(a, 1);
|
|
920
|
+
return;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
function To() {
|
|
925
|
+
let a = this.rangeSelector;
|
|
926
|
+
if (a?.options?.enabled) {
|
|
927
|
+
let t = a.getHeight(), e = a.options.verticalAlign;
|
|
928
|
+
a.options.floating || (e === "bottom" ? this.marginBottom += t : e === "middle" || (this.plotTop += t));
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
function Eo(a) {
|
|
932
|
+
let t = a.options.rangeSelector, e = this.extraBottomMargin, i = this.extraTopMargin, s = this.rangeSelector;
|
|
933
|
+
if (t && t.enabled && !bo(s) && this.options.rangeSelector && (this.options.rangeSelector.enabled = !0, this.rangeSelector = s = new ie(this)), this.extraBottomMargin = !1, this.extraTopMargin = !1, s) {
|
|
934
|
+
let o = t && t.verticalAlign || s.options && s.options.verticalAlign;
|
|
935
|
+
s.options.floating || (o === "bottom" ? this.extraBottomMargin = !0 : o === "middle" || (this.extraTopMargin = !0)), (this.extraBottomMargin !== e || this.extraTopMargin !== i) && (this.isDirtyBox = !0);
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
let Oo = { compose: function(a, t, e) {
|
|
939
|
+
if (ie = e, yo(xo, "RangeSelector")) {
|
|
940
|
+
let i = t.prototype;
|
|
941
|
+
a.prototype.minFromRange = Mo, gt(t, "afterGetContainer", ko), gt(t, "beforeRender", wo), gt(t, "destroy", So), gt(t, "getMargins", To), gt(t, "redraw", pi), gt(t, "update", Eo), gt(t, "beforeRedraw", Ao), i.callbacks.push(pi), hi(li, { rangeSelector: Te.rangeSelector }), hi(li.lang, Te.lang);
|
|
942
|
+
}
|
|
943
|
+
} };
|
|
944
|
+
var Bo = R(28), ui = R.n(Bo), Co = R(984), Oe = R.n(Co);
|
|
945
|
+
let { defaultOptions: Be } = B(), { format: ci } = Oe(), { addEvent: J, createElement: Wt, css: it, defined: st, destroyObjectProperties: Do, diffObjects: Po, discardElement: Ro, extend: gi, fireEvent: kt, isNumber: F, isString: Ce, merge: nt, objectEach: Go, pick: Q, splat: Io } = B();
|
|
946
|
+
function fi(a) {
|
|
947
|
+
let t = (s) => RegExp(`%[[a-zA-Z]*${s}`).test(a);
|
|
948
|
+
if (Ce(a) ? a.indexOf("%L") !== -1 : a.fractionalSecondDigits) return "text";
|
|
949
|
+
let e = Ce(a) ? ["a", "A", "d", "e", "w", "b", "B", "m", "o", "y", "Y"].some(t) : a.dateStyle || a.day || a.month || a.year, i = Ce(a) ? ["H", "k", "I", "l", "M", "S"].some(t) : a.timeStyle || a.hour || a.minute || a.second;
|
|
950
|
+
return e && i ? "datetime-local" : e ? "date" : i ? "time" : "text";
|
|
951
|
+
}
|
|
952
|
+
class Xt {
|
|
953
|
+
static compose(t, e) {
|
|
954
|
+
Oo.compose(t, e, Xt);
|
|
955
|
+
}
|
|
956
|
+
constructor(t) {
|
|
957
|
+
this.isDirty = !1, this.buttonOptions = [], this.initialButtonGroupWidth = 0, this.maxButtonWidth = () => {
|
|
958
|
+
let e = 0;
|
|
959
|
+
return this.buttons.forEach((i) => {
|
|
960
|
+
let s = i.getBBox();
|
|
961
|
+
s.width > e && (e = s.width);
|
|
962
|
+
}), e;
|
|
963
|
+
}, this.init(t);
|
|
964
|
+
}
|
|
965
|
+
clickButton(t, e) {
|
|
966
|
+
let i = this.chart, s = this.buttonOptions[t], o = i.xAxis[0], n = i.scroller && i.scroller.getUnionExtremes() || o || {}, c = s.type, u = s.dataGrouping, g = n.dataMin, p = n.dataMax, d, r = F(o?.max) ? Math.round(Math.min(o.max, p ?? o.max)) : void 0, l, h = s._range, f, m, x, b = !0;
|
|
967
|
+
if (g !== null && p !== null) {
|
|
968
|
+
if (this.setSelected(t), u && (this.forcedDataGrouping = !0, ue().prototype.setDataGrouping.call(o || { chart: this.chart }, u, !1), this.frozenStates = s.preserveDataGrouping), c === "month" || c === "year") o ? (m = { range: s, max: r, chart: i, dataMin: g, dataMax: p }, d = o.minFromRange.call(m), F(m.newMax) && (r = m.newMax), b = !1) : h = s;
|
|
969
|
+
else if (h) F(r) && (r = Math.min((d = Math.max(r - h, g)) + h, p), b = !1);
|
|
970
|
+
else if (c === "ytd")
|
|
971
|
+
if (o) !o.hasData() || F(p) && F(g) || (g = Number.MAX_VALUE, p = -Number.MAX_VALUE, i.series.forEach((w) => {
|
|
972
|
+
let v = w.getColumn("x");
|
|
973
|
+
v.length && (g = Math.min(v[0], g), p = Math.max(v[v.length - 1], p));
|
|
974
|
+
}), e = !1), F(p) && F(g) && (d = f = (x = this.getYTDExtremes(p, g)).min, r = x.max);
|
|
975
|
+
else {
|
|
976
|
+
this.deferredYTDClick = t;
|
|
977
|
+
return;
|
|
978
|
+
}
|
|
979
|
+
else c === "all" && o && (i.navigator && i.navigator.baseSeries[0] && (i.navigator.baseSeries[0].xAxis.options.range = void 0), d = g, r = p);
|
|
980
|
+
if (b && s._offsetMin && st(d) && (d += s._offsetMin), s._offsetMax && st(r) && (r += s._offsetMax), this.dropdown && (this.dropdown.selectedIndex = t + 1), o) F(d) && F(r) && (o.setExtremes(d, r, Q(e, !0), void 0, { trigger: "rangeSelectorButton", rangeSelectorButton: s }), i.setFixedRange(s._range));
|
|
981
|
+
else {
|
|
982
|
+
l = Io(i.options.xAxis || {})[0];
|
|
983
|
+
let w = J(i, "afterCreateAxes", function() {
|
|
984
|
+
let v = i.xAxis[0];
|
|
985
|
+
v.range = v.options.range = h, v.min = v.options.min = f;
|
|
986
|
+
});
|
|
987
|
+
J(i, "load", function() {
|
|
988
|
+
let v = i.xAxis[0];
|
|
989
|
+
i.setFixedRange(s._range), v.options.range = l.range, v.options.min = l.min, w();
|
|
990
|
+
});
|
|
991
|
+
}
|
|
992
|
+
kt(this, "afterBtnClick");
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
setSelected(t) {
|
|
996
|
+
this.selected = this.options.selected = t;
|
|
997
|
+
}
|
|
998
|
+
init(t) {
|
|
999
|
+
let e = this, i = t.options.rangeSelector, s = t.options.lang, o = i.buttons, n = i.selected, c = function() {
|
|
1000
|
+
let u = e.minInput, g = e.maxInput;
|
|
1001
|
+
u && u.blur && kt(u, "blur"), g && g.blur && kt(g, "blur");
|
|
1002
|
+
};
|
|
1003
|
+
e.chart = t, e.options = i, e.buttons = [], e.buttonOptions = o.map((u) => (u.type && s.rangeSelector && (u.text ?? (u.text = s.rangeSelector[`${u.type}Text`]), u.title ?? (u.title = s.rangeSelector[`${u.type}Title`])), u.text = ci(u.text, { count: u.count || 1 }), u.title = ci(u.title, { count: u.count || 1 }), u)), this.eventsToUnbind = [], this.eventsToUnbind.push(J(t.container, "mousedown", c)), this.eventsToUnbind.push(J(t, "resize", c)), o.forEach(e.computeButtonRange), n !== void 0 && o[n] && this.clickButton(n, !1), this.eventsToUnbind.push(J(t, "load", function() {
|
|
1004
|
+
t.xAxis && t.xAxis[0] && J(t.xAxis[0], "setExtremes", function(u) {
|
|
1005
|
+
F(this.max) && F(this.min) && this.max - this.min !== t.fixedRange && u.trigger !== "rangeSelectorButton" && u.trigger !== "updatedData" && e.forcedDataGrouping && !e.frozenStates && this.setDataGrouping(!1, !1);
|
|
1006
|
+
});
|
|
1007
|
+
})), this.createElements();
|
|
1008
|
+
}
|
|
1009
|
+
updateButtonStates() {
|
|
1010
|
+
let t = this, e = this.chart, i = this.dropdown, s = this.dropdownLabel, o = e.xAxis[0], n = Math.round(o.max - o.min), c = !o.hasVisibleSeries, u = 24 * 36e5, g = e.scroller && e.scroller.getUnionExtremes() || o, p = g.dataMin, d = g.dataMax, r = t.getYTDExtremes(d, p), l = r.min, h = r.max, f = t.selected, m = t.options.allButtonsEnabled, x = Array(t.buttonOptions.length).fill(0), b = F(f), w = t.buttons, v = !1, M = null;
|
|
1011
|
+
t.buttonOptions.forEach((A, y) => {
|
|
1012
|
+
let E = A._range, k = A.type, T = A.count || 1, O = A._offsetMax - A._offsetMin, S = y === f, C = E > d - p, I = E < o.minRange, G = !1, D = E === n;
|
|
1013
|
+
if (S && C && (v = !0), o.isOrdinal && o.ordinal?.positions && E && n < E) {
|
|
1014
|
+
let W = o.ordinal.positions, X = Se.Additions.findIndexOf(W, o.min, !0), N = Math.min(Se.Additions.findIndexOf(W, o.max, !0) + 1, W.length - 1);
|
|
1015
|
+
W[N] - W[X] > E && (D = !0);
|
|
1016
|
+
} else (k === "month" || k === "year") && n + 36e5 >= { month: 28, year: 365 }[k] * u * T - O && n - 36e5 <= { month: 31, year: 366 }[k] * u * T + O ? D = !0 : k === "ytd" ? (D = h - l + O === n, G = !S) : k === "all" && (D = o.max - o.min >= d - p);
|
|
1017
|
+
let z = !m && !(v && k === "all") && (C || I || c), L = v && k === "all" || !G && D || S && t.frozenStates;
|
|
1018
|
+
z ? x[y] = 3 : L && (!b || y === f) && (M = y);
|
|
1019
|
+
}), M !== null ? (x[M] = 2, t.setSelected(M), this.dropdown && (this.dropdown.selectedIndex = M + 1)) : (t.setSelected(), this.dropdown && (this.dropdown.selectedIndex = -1), s && (s.setState(0), s.attr({ text: (Be.lang.rangeSelectorZoom || "") + " ▾" })));
|
|
1020
|
+
for (let A = 0; A < x.length; A++) {
|
|
1021
|
+
let y = x[A], E = w[A];
|
|
1022
|
+
if (E.state !== y && (E.setState(y), i)) {
|
|
1023
|
+
i.options[A + 1].disabled = y === 3, y === 2 && (s && (s.setState(2), s.attr({ text: t.buttonOptions[A].text + " ▾" })), i.selectedIndex = A + 1);
|
|
1024
|
+
let k = s.getBBox();
|
|
1025
|
+
it(i, { width: `${k.width}px`, height: `${k.height}px` });
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
computeButtonRange(t) {
|
|
1030
|
+
let e = t.type, i = t.count || 1, s = { millisecond: 1, second: 1e3, minute: 6e4, hour: 36e5, day: 864e5, week: 6048e5 };
|
|
1031
|
+
s[e] ? t._range = s[e] * i : (e === "month" || e === "year") && (t._range = 24 * { month: 30, year: 365 }[e] * 36e5 * i), t._offsetMin = Q(t.offsetMin, 0), t._offsetMax = Q(t.offsetMax, 0), t._range += t._offsetMax - t._offsetMin;
|
|
1032
|
+
}
|
|
1033
|
+
getInputValue(t) {
|
|
1034
|
+
let e = t === "min" ? this.minInput : this.maxInput, i = this.chart.options.rangeSelector, s = this.chart.time;
|
|
1035
|
+
return e ? (e.type === "text" && i.inputDateParser || this.defaultInputDateParser)(e.value, s.timezone === "UTC", s) : 0;
|
|
1036
|
+
}
|
|
1037
|
+
setInputValue(t, e) {
|
|
1038
|
+
let i = this.options, s = this.chart.time, o = t === "min" ? this.minInput : this.maxInput, n = t === "min" ? this.minDateBox : this.maxDateBox;
|
|
1039
|
+
if (o) {
|
|
1040
|
+
o.setAttribute("type", fi(i.inputDateFormat || "%e %b %Y"));
|
|
1041
|
+
let c = o.getAttribute("data-hc-time"), u = st(c) ? Number(c) : void 0;
|
|
1042
|
+
if (st(e)) {
|
|
1043
|
+
let g = u;
|
|
1044
|
+
st(g) && o.setAttribute("data-hc-time-previous", g), o.setAttribute("data-hc-time", e), u = e;
|
|
1045
|
+
}
|
|
1046
|
+
o.value = s.dateFormat(this.inputTypeFormats[o.type] || i.inputEditDateFormat, u), n && n.attr({ text: s.dateFormat(i.inputDateFormat, u) });
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
setInputExtremes(t, e, i) {
|
|
1050
|
+
let s = t === "min" ? this.minInput : this.maxInput;
|
|
1051
|
+
if (s) {
|
|
1052
|
+
let o = this.inputTypeFormats[s.type], n = this.chart.time;
|
|
1053
|
+
if (o) {
|
|
1054
|
+
let c = n.dateFormat(o, e);
|
|
1055
|
+
s.min !== c && (s.min = c);
|
|
1056
|
+
let u = n.dateFormat(o, i);
|
|
1057
|
+
s.max !== u && (s.max = u);
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
showInput(t) {
|
|
1062
|
+
let e = t === "min" ? this.minDateBox : this.maxDateBox, i = t === "min" ? this.minInput : this.maxInput;
|
|
1063
|
+
if (i && e && this.inputGroup) {
|
|
1064
|
+
let s = i.type === "text", { translateX: o = 0, translateY: n = 0 } = this.inputGroup, { x: c = 0, width: u = 0, height: g = 0 } = e, { inputBoxWidth: p } = this.options;
|
|
1065
|
+
it(i, { width: s ? u + (p ? -2 : 20) + "px" : "auto", height: g - 2 + "px", border: "2px solid silver" }), s && p ? it(i, { left: o + c + "px", top: n + "px" }) : it(i, { left: Math.min(Math.round(c + o - (i.offsetWidth - u) / 2), this.chart.chartWidth - i.offsetWidth) + "px", top: n - (i.offsetHeight - g) / 2 + "px" });
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
hideInput(t) {
|
|
1069
|
+
let e = t === "min" ? this.minInput : this.maxInput;
|
|
1070
|
+
e && it(e, { top: "-9999em", border: 0, width: "1px", height: "1px" });
|
|
1071
|
+
}
|
|
1072
|
+
defaultInputDateParser(t, e, i) {
|
|
1073
|
+
return i?.parse(t) || 0;
|
|
1074
|
+
}
|
|
1075
|
+
drawInput(t) {
|
|
1076
|
+
let { chart: e, div: i, inputGroup: s } = this, o = this, n = e.renderer.style || {}, c = e.renderer, u = e.options.rangeSelector, g = Be.lang, p = t === "min";
|
|
1077
|
+
function d(x) {
|
|
1078
|
+
let { maxInput: b, minInput: w } = o, v = e.xAxis[0], M = e.scroller?.getUnionExtremes() || v, A = M.dataMin, y = M.dataMax, E = e.xAxis[0].getExtremes()[x], k = o.getInputValue(x);
|
|
1079
|
+
F(k) && k !== E && (p && b && F(A) ? k > Number(b.getAttribute("data-hc-time")) ? k = void 0 : k < A && (k = A) : w && F(y) && (k < Number(w.getAttribute("data-hc-time")) ? k = void 0 : k > y && (k = y)), k !== void 0 && v.setExtremes(p ? k : v.min, p ? v.max : k, void 0, void 0, { trigger: "rangeSelectorInput" }));
|
|
1080
|
+
}
|
|
1081
|
+
let r = g[p ? "rangeSelectorFrom" : "rangeSelectorTo"] || "", l = c.label(r, 0).addClass("highcharts-range-label").attr({ padding: 2 * !!r, height: r ? u.inputBoxHeight : 0 }).add(s), h = c.label("", 0).addClass("highcharts-range-input").attr({ padding: 2, width: u.inputBoxWidth, height: u.inputBoxHeight, "text-align": "center" }).on("click", function() {
|
|
1082
|
+
o.showInput(t), o[t + "Input"].focus();
|
|
1083
|
+
});
|
|
1084
|
+
e.styledMode || h.attr({ stroke: u.inputBoxBorderColor, "stroke-width": 1 }), h.add(s);
|
|
1085
|
+
let f = Wt("input", { name: t, className: "highcharts-range-selector" }, void 0, i);
|
|
1086
|
+
f.setAttribute("type", fi(u.inputDateFormat || "%e %b %Y")), e.styledMode || (l.css(nt(n, u.labelStyle)), h.css(nt({ color: "#333333" }, n, u.inputStyle)), it(f, gi({ position: "absolute", border: 0, boxShadow: "0 0 15px rgba(0,0,0,0.3)", width: "1px", height: "1px", padding: 0, textAlign: "center", fontSize: n.fontSize, fontFamily: n.fontFamily, top: "-9999em" }, u.inputStyle))), f.onfocus = () => {
|
|
1087
|
+
o.showInput(t);
|
|
1088
|
+
}, f.onblur = () => {
|
|
1089
|
+
f === B().doc.activeElement && d(t), o.hideInput(t), o.setInputValue(t), f.blur();
|
|
1090
|
+
};
|
|
1091
|
+
let m = !1;
|
|
1092
|
+
return f.onchange = () => {
|
|
1093
|
+
m || (d(t), o.hideInput(t), f.blur());
|
|
1094
|
+
}, f.onkeypress = (x) => {
|
|
1095
|
+
x.keyCode === 13 && d(t);
|
|
1096
|
+
}, f.onkeydown = (x) => {
|
|
1097
|
+
m = !0, (x.key === "ArrowUp" || x.key === "ArrowDown" || x.key === "Tab") && d(t);
|
|
1098
|
+
}, f.onkeyup = () => {
|
|
1099
|
+
m = !1;
|
|
1100
|
+
}, { dateBox: h, input: f, label: l };
|
|
1101
|
+
}
|
|
1102
|
+
getPosition() {
|
|
1103
|
+
let t = this.chart, e = t.options.rangeSelector, i = e.verticalAlign === "top" ? t.plotTop - t.axisOffset[0] : 0;
|
|
1104
|
+
return { buttonTop: i + e.buttonPosition.y, inputTop: i + e.inputPosition.y - 10 };
|
|
1105
|
+
}
|
|
1106
|
+
getYTDExtremes(t, e) {
|
|
1107
|
+
let i = this.chart.time, s = i.toParts(t)[0];
|
|
1108
|
+
return { max: t, min: Math.max(e, i.makeTime(s, 0)) };
|
|
1109
|
+
}
|
|
1110
|
+
createElements() {
|
|
1111
|
+
let t = this.chart, e = t.renderer, i = t.container, s = t.options, o = s.rangeSelector, n = o.inputEnabled, c = Q(s.chart.style?.zIndex, 0) + 1;
|
|
1112
|
+
o.enabled !== !1 && (this.group = e.g("range-selector-group").attr({ zIndex: 7 }).add(), this.div = Wt("div", void 0, { position: "relative", height: 0, zIndex: c }), this.buttonOptions.length && this.renderButtons(), i.parentNode && i.parentNode.insertBefore(this.div, i), n && this.createInputs());
|
|
1113
|
+
}
|
|
1114
|
+
createInputs() {
|
|
1115
|
+
this.inputGroup = this.chart.renderer.g("input-group").add(this.group);
|
|
1116
|
+
let t = this.drawInput("min");
|
|
1117
|
+
this.minDateBox = t.dateBox, this.minLabel = t.label, this.minInput = t.input;
|
|
1118
|
+
let e = this.drawInput("max");
|
|
1119
|
+
this.maxDateBox = e.dateBox, this.maxLabel = e.label, this.maxInput = e.input;
|
|
1120
|
+
}
|
|
1121
|
+
render(t, e) {
|
|
1122
|
+
if (this.options.enabled === !1) return;
|
|
1123
|
+
let i = this.chart, s = i.options.rangeSelector;
|
|
1124
|
+
if (s.inputEnabled) {
|
|
1125
|
+
this.inputGroup || this.createInputs(), this.setInputValue("min", t), this.setInputValue("max", e), this.chart.styledMode || (this.maxLabel?.css(s.labelStyle), this.minLabel?.css(s.labelStyle));
|
|
1126
|
+
let o = i.scroller && i.scroller.getUnionExtremes() || i.xAxis[0] || {};
|
|
1127
|
+
if (st(o.dataMin) && st(o.dataMax)) {
|
|
1128
|
+
let n = i.xAxis[0].minRange || 0;
|
|
1129
|
+
this.setInputExtremes("min", o.dataMin, Math.min(o.dataMax, this.getInputValue("max")) - n), this.setInputExtremes("max", Math.max(o.dataMin, this.getInputValue("min")) + n, o.dataMax);
|
|
1130
|
+
}
|
|
1131
|
+
if (this.inputGroup) {
|
|
1132
|
+
let n = 0;
|
|
1133
|
+
[this.minLabel, this.minDateBox, this.maxLabel, this.maxDateBox].forEach((c) => {
|
|
1134
|
+
if (c) {
|
|
1135
|
+
let { width: u } = c.getBBox();
|
|
1136
|
+
u && (c.attr({ x: n }), n += u + s.inputSpacing);
|
|
1137
|
+
}
|
|
1138
|
+
});
|
|
1139
|
+
}
|
|
1140
|
+
} else this.inputGroup && (this.inputGroup.destroy(), delete this.inputGroup);
|
|
1141
|
+
!this.chart.styledMode && this.zoomText && this.zoomText.css(s.labelStyle), this.alignElements(), this.updateButtonStates();
|
|
1142
|
+
}
|
|
1143
|
+
renderButtons() {
|
|
1144
|
+
var t;
|
|
1145
|
+
let { chart: e, options: i } = this, s = Be.lang, o = e.renderer, n = nt(i.buttonTheme), c = n && n.states;
|
|
1146
|
+
delete n.width, delete n.states, this.buttonGroup = o.g("range-selector-buttons").add(this.group);
|
|
1147
|
+
let u = this.dropdown = Wt("select", void 0, { position: "absolute", padding: 0, border: 0, cursor: "pointer", opacity: 1e-4 }, this.div), g = e.userOptions.rangeSelector?.buttonTheme;
|
|
1148
|
+
this.dropdownLabel = o.button("", 0, 0, () => {
|
|
1149
|
+
}, nt(n, { "stroke-width": Q(n["stroke-width"], 0), width: "auto", paddingLeft: Q(i.buttonTheme.paddingLeft, g?.padding, 8), paddingRight: Q(i.buttonTheme.paddingRight, g?.padding, 8) }), c && c.hover, c && c.select, c && c.disabled).hide().add(this.group), J(u, "touchstart", () => {
|
|
1150
|
+
u.style.fontSize = "16px";
|
|
1151
|
+
});
|
|
1152
|
+
let p = B().isMS ? "mouseover" : "mouseenter", d = B().isMS ? "mouseout" : "mouseleave";
|
|
1153
|
+
J(u, p, () => {
|
|
1154
|
+
kt(this.dropdownLabel.element, p);
|
|
1155
|
+
}), J(u, d, () => {
|
|
1156
|
+
kt(this.dropdownLabel.element, d);
|
|
1157
|
+
}), J(u, "change", () => {
|
|
1158
|
+
kt(this.buttons[u.selectedIndex - 1].element, "click");
|
|
1159
|
+
}), this.zoomText = o.label(s.rangeSelectorZoom || "", 0).attr({ padding: i.buttonTheme.padding, height: i.buttonTheme.height, paddingLeft: 0, paddingRight: 0 }).add(this.buttonGroup), this.chart.styledMode || (this.zoomText.css(i.labelStyle), (t = i.buttonTheme)["stroke-width"] ?? (t["stroke-width"] = 0)), Wt("option", { textContent: this.zoomText.textStr, disabled: !0 }, void 0, u), this.createButtons();
|
|
1160
|
+
}
|
|
1161
|
+
createButtons() {
|
|
1162
|
+
let { options: t } = this, e = nt(t.buttonTheme), i = e && e.states, s = e.width || 28;
|
|
1163
|
+
delete e.width, delete e.states, this.buttonOptions.forEach((o, n) => {
|
|
1164
|
+
this.createButton(o, n, s, i);
|
|
1165
|
+
});
|
|
1166
|
+
}
|
|
1167
|
+
createButton(t, e, i, s) {
|
|
1168
|
+
let { dropdown: o, buttons: n, chart: c, options: u } = this, g = c.renderer, p = nt(u.buttonTheme);
|
|
1169
|
+
o?.add(Wt("option", { textContent: t.title || t.text }), e + 2), n[e] = g.button(t.text ?? "", 0, 0, (d) => {
|
|
1170
|
+
let r, l = t.events && t.events.click;
|
|
1171
|
+
l && (r = l.call(t, d)), r !== !1 && this.clickButton(e), this.isActive = !0;
|
|
1172
|
+
}, p, s && s.hover, s && s.select, s && s.disabled).attr({ "text-align": "center", width: i }).add(this.buttonGroup), t.title && n[e].attr("title", t.title);
|
|
1173
|
+
}
|
|
1174
|
+
alignElements() {
|
|
1175
|
+
let { buttonGroup: t, buttons: e, chart: i, group: s, inputGroup: o, options: n, zoomText: c } = this, u = i.options, g = u.exporting && u.exporting.enabled !== !1 && u.navigation && u.navigation.buttonOptions, { buttonPosition: p, inputPosition: d, verticalAlign: r } = n, l = (f, m, x) => g && this.titleCollision(i) && r === "top" && x && m.y - f.getBBox().height - 12 < (g.y || 0) + (g.height || 0) + i.spacing[0] ? -40 : 0, h = i.plotLeft;
|
|
1176
|
+
if (s && p && d) {
|
|
1177
|
+
let f = p.x - i.spacing[3];
|
|
1178
|
+
if (t) {
|
|
1179
|
+
if (this.positionButtons(), !this.initialButtonGroupWidth) {
|
|
1180
|
+
let E = 0;
|
|
1181
|
+
c && (E += c.getBBox().width + 5), e.forEach((k, T) => {
|
|
1182
|
+
E += k.width || 0, T !== e.length - 1 && (E += n.buttonSpacing);
|
|
1183
|
+
}), this.initialButtonGroupWidth = E;
|
|
1184
|
+
}
|
|
1185
|
+
h -= i.spacing[3];
|
|
1186
|
+
let y = l(t, p, p.align === "right" || d.align === "right");
|
|
1187
|
+
this.alignButtonGroup(y), this.buttonGroup?.translateY && this.dropdownLabel.attr({ y: this.buttonGroup.translateY }), s.placed = t.placed = i.hasLoaded;
|
|
1188
|
+
}
|
|
1189
|
+
let m = 0;
|
|
1190
|
+
n.inputEnabled && o && (m = l(o, d, p.align === "right" || d.align === "right"), d.align === "left" ? f = h : d.align === "right" && (f = -Math.max(i.axisOffset[1], -m)), o.align({ y: d.y, width: o.getBBox().width, align: d.align, x: d.x + f - 2 }, !0, i.spacingBox), o.placed = i.hasLoaded), this.handleCollision(m), s.align({ verticalAlign: r }, !0, i.spacingBox);
|
|
1191
|
+
let x = s.alignAttr.translateY, b = s.getBBox().height + 20, w = 0;
|
|
1192
|
+
if (r === "bottom") {
|
|
1193
|
+
let y = i.legend && i.legend.options;
|
|
1194
|
+
w = x - (b = b + (y && y.verticalAlign === "bottom" && y.enabled && !y.floating ? i.legend.legendHeight + Q(y.margin, 10) : 0) - 20) - (n.floating ? 0 : n.y) - (i.titleOffset ? i.titleOffset[2] : 0) - 10;
|
|
1195
|
+
}
|
|
1196
|
+
r === "top" ? (n.floating && (w = 0), i.titleOffset && i.titleOffset[0] && (w = i.titleOffset[0]), w += i.margin[0] - i.spacing[0] || 0) : r === "middle" && (d.y === p.y ? w = x : (d.y || p.y) && (d.y < 0 || p.y < 0 ? w -= Math.min(d.y, p.y) : w = x - b)), s.translate(n.x, n.y + Math.floor(w));
|
|
1197
|
+
let { minInput: v, maxInput: M, dropdown: A } = this;
|
|
1198
|
+
n.inputEnabled && v && M && (v.style.marginTop = s.translateY + "px", M.style.marginTop = s.translateY + "px"), A && (A.style.marginTop = s.translateY + "px");
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
redrawElements() {
|
|
1202
|
+
let t = this.chart, { inputBoxHeight: e, inputBoxBorderColor: i } = this.options;
|
|
1203
|
+
if (this.maxDateBox?.attr({ height: e }), this.minDateBox?.attr({ height: e }), t.styledMode || (this.maxDateBox?.attr({ stroke: i }), this.minDateBox?.attr({ stroke: i })), this.isDirty) {
|
|
1204
|
+
this.isDirty = !1, this.isCollapsed = void 0;
|
|
1205
|
+
let s = this.options.buttons ?? [], o = Math.min(s.length, this.buttonOptions.length), { dropdown: n, options: c } = this, u = nt(c.buttonTheme), g = u && u.states, p = u.width || 28;
|
|
1206
|
+
if (s.length < this.buttonOptions.length) for (let d = this.buttonOptions.length - 1; d >= s.length; d--)
|
|
1207
|
+
this.buttons.pop()?.destroy(), this.dropdown?.options.remove(d + 1);
|
|
1208
|
+
for (let d = o - 1; d >= 0; d--) if (Object.keys(Po(s[d], this.buttonOptions[d])).length !== 0) {
|
|
1209
|
+
let r = s[d];
|
|
1210
|
+
this.buttons[d].destroy(), n?.options.remove(d + 1), this.createButton(r, d, p, g), this.computeButtonRange(r);
|
|
1211
|
+
}
|
|
1212
|
+
if (s.length > this.buttonOptions.length) for (let d = this.buttonOptions.length; d < s.length; d++) this.createButton(s[d], d, p, g), this.computeButtonRange(s[d]);
|
|
1213
|
+
this.buttonOptions = this.options.buttons ?? [], st(this.options.selected) && this.buttons.length && this.clickButton(this.options.selected, !1);
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
alignButtonGroup(t, e) {
|
|
1217
|
+
let { chart: i, options: s, buttonGroup: o, dropdown: n, dropdownLabel: c } = this, { buttonPosition: u } = s, g = i.plotLeft - i.spacing[3], p = u.x - i.spacing[3], d = i.plotLeft;
|
|
1218
|
+
u.align === "right" ? (p += t - g, this.hasVisibleDropdown && (d = i.chartWidth + t - this.maxButtonWidth() - 20)) : u.align === "center" && (p -= g / 2, this.hasVisibleDropdown && (d = i.chartWidth / 2 - this.maxButtonWidth())), n && it(n, { left: d + "px", top: o?.translateY + "px" }), c?.attr({ x: d }), o && o.align({ y: u.y, width: Q(e, this.initialButtonGroupWidth), align: u.align, x: p }, !0, i.spacingBox);
|
|
1219
|
+
}
|
|
1220
|
+
positionButtons() {
|
|
1221
|
+
let { buttons: t, chart: e, options: i, zoomText: s } = this, o = e.hasLoaded ? "animate" : "attr", { buttonPosition: n } = i, c = e.plotLeft, u = c;
|
|
1222
|
+
s && s.visibility !== "hidden" && (s[o]({ x: Q(c + n.x, c) }), u += n.x + s.getBBox().width + 5);
|
|
1223
|
+
for (let g = 0, p = this.buttonOptions.length; g < p; ++g) t[g].visibility !== "hidden" ? (t[g][o]({ x: u }), u += (t[g].width || 0) + i.buttonSpacing) : t[g][o]({ x: c });
|
|
1224
|
+
}
|
|
1225
|
+
handleCollision(t) {
|
|
1226
|
+
let { chart: e, buttonGroup: i, inputGroup: s, initialButtonGroupWidth: o } = this, { buttonPosition: n, dropdown: c, inputPosition: u } = this.options, g = () => {
|
|
1227
|
+
s && i && s.attr({ translateX: s.alignAttr.translateX + (e.axisOffset[1] >= -t ? 0 : -t), translateY: s.alignAttr.translateY + i.getBBox().height + 10 });
|
|
1228
|
+
};
|
|
1229
|
+
s && i ? u.align === n.align ? (g(), o > e.plotWidth + t - 20 ? this.collapseButtons() : this.expandButtons()) : o - t + s.getBBox().width > e.plotWidth ? c === "responsive" ? this.collapseButtons() : g() : this.expandButtons() : i && c === "responsive" && (o > e.plotWidth ? this.collapseButtons() : this.expandButtons()), i && (c === "always" && this.collapseButtons(), c === "never" && this.expandButtons()), this.alignButtonGroup(t);
|
|
1230
|
+
}
|
|
1231
|
+
collapseButtons() {
|
|
1232
|
+
let { buttons: t, zoomText: e } = this;
|
|
1233
|
+
this.isCollapsed !== !0 && (this.isCollapsed = !0, e.hide(), t.forEach((i) => void i.hide()), this.showDropdown());
|
|
1234
|
+
}
|
|
1235
|
+
expandButtons() {
|
|
1236
|
+
let { buttons: t, zoomText: e } = this;
|
|
1237
|
+
this.isCollapsed !== !1 && (this.isCollapsed = !1, this.hideDropdown(), e.show(), t.forEach((i) => void i.show()), this.positionButtons());
|
|
1238
|
+
}
|
|
1239
|
+
showDropdown() {
|
|
1240
|
+
let { buttonGroup: t, dropdownLabel: e, dropdown: i } = this;
|
|
1241
|
+
t && i && (e.show(), it(i, { visibility: "inherit" }), this.hasVisibleDropdown = !0);
|
|
1242
|
+
}
|
|
1243
|
+
hideDropdown() {
|
|
1244
|
+
let { dropdown: t } = this;
|
|
1245
|
+
t && (this.dropdownLabel.hide(), it(t, { visibility: "hidden", width: "1px", height: "1px" }), this.hasVisibleDropdown = !1);
|
|
1246
|
+
}
|
|
1247
|
+
getHeight() {
|
|
1248
|
+
let t = this.options, e = this.group, i = t.inputPosition, s = t.buttonPosition, o = t.y, n = s.y, c = i.y, u = 0;
|
|
1249
|
+
if (t.height) return t.height;
|
|
1250
|
+
this.alignElements(), u = e ? e.getBBox(!0).height + 13 + o : 0;
|
|
1251
|
+
let g = Math.min(c, n);
|
|
1252
|
+
return (c < 0 && n < 0 || c > 0 && n > 0) && (u += Math.abs(g)), u;
|
|
1253
|
+
}
|
|
1254
|
+
titleCollision(t) {
|
|
1255
|
+
return !(t.options.title.text || t.options.subtitle.text);
|
|
1256
|
+
}
|
|
1257
|
+
update(t, e = !0) {
|
|
1258
|
+
let i = this.chart;
|
|
1259
|
+
if (nt(!0, this.options, t), this.options.selected && this.options.selected >= this.options.buttons.length && (this.options.selected = void 0, i.options.rangeSelector.selected = void 0), st(t.enabled)) return this.destroy(), this.init(i);
|
|
1260
|
+
this.isDirty = !!t.buttons, e && this.render();
|
|
1261
|
+
}
|
|
1262
|
+
destroy() {
|
|
1263
|
+
let t = this, e = t.minInput, i = t.maxInput;
|
|
1264
|
+
t.eventsToUnbind && (t.eventsToUnbind.forEach((s) => s()), t.eventsToUnbind = void 0), Do(t.buttons), e && (e.onfocus = e.onblur = e.onchange = null), i && (i.onfocus = i.onblur = i.onchange = null), Go(t, function(s, o) {
|
|
1265
|
+
s && o !== "chart" && (s instanceof ui() ? s.destroy() : s instanceof window.HTMLElement && Ro(s), delete t[o]), s !== Xt.prototype[o] && (t[o] = null);
|
|
1266
|
+
}, this), this.buttons = [];
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
gi(Xt.prototype, { inputTypeFormats: { "datetime-local": "%Y-%m-%dT%H:%M:%S", date: "%Y-%m-%d", time: "%H:%M:%S" } });
|
|
1270
|
+
var zo = R(960), mi = R.n(zo);
|
|
1271
|
+
let { format: Lo } = Oe(), { getOptions: xi } = B(), { setFixedRange: Wo } = Qe, { addEvent: ft, clamp: bi, crisp: vi, defined: De, extend: Xo, find: Ho, isNumber: lt, isString: Yo, merge: wt, pick: ot, splat: yi } = B();
|
|
1272
|
+
function Pe(a, t, e) {
|
|
1273
|
+
return a === "xAxis" ? { minPadding: 0, maxPadding: 0, overscroll: 0, ordinal: !0 } : a === "yAxis" ? { labels: { y: -2 }, opposite: e.opposite ?? t.opposite ?? !0, showLastLabel: !!(t.categories || t.type === "category"), title: { text: void 0 } } : {};
|
|
1274
|
+
}
|
|
1275
|
+
function Mi(a, t) {
|
|
1276
|
+
if (a === "xAxis") {
|
|
1277
|
+
let e = ot(t.navigator?.enabled, xe.enabled, !0), i = { type: "datetime", categories: void 0 };
|
|
1278
|
+
return e && (i.startOnTick = !1, i.endOnTick = !1), i;
|
|
1279
|
+
}
|
|
1280
|
+
return {};
|
|
1281
|
+
}
|
|
1282
|
+
class Re extends mi() {
|
|
1283
|
+
init(t, e) {
|
|
1284
|
+
let i = xi(), s = t.xAxis, o = t.yAxis, n = ot(t.navigator?.enabled, xe.enabled, !0);
|
|
1285
|
+
t.xAxis = t.yAxis = void 0;
|
|
1286
|
+
let c = wt({ chart: { panning: { enabled: !0, type: "x" }, zooming: { pinchType: "x", mouseWheel: { type: "x" } } }, navigator: { enabled: n }, scrollbar: { enabled: ot(be.enabled, !0) }, rangeSelector: { enabled: ot(Te.rangeSelector.enabled, !0) }, title: { text: null }, tooltip: { split: ot(i.tooltip?.split, !0), crosshairs: !0 }, legend: { enabled: !1 } }, t, { isStock: !0 });
|
|
1287
|
+
t.xAxis = s, t.yAxis = o, c.xAxis = yi(t.xAxis || {}).map((u) => wt(Pe("xAxis", u, i.xAxis), u, Mi("xAxis", t))), c.yAxis = yi(t.yAxis || {}).map((u) => wt(Pe("yAxis", u, i.yAxis), u)), super.init(c, e);
|
|
1288
|
+
}
|
|
1289
|
+
createAxis(t, e) {
|
|
1290
|
+
return e.axis = wt(Pe(t, e.axis, xi()[t]), e.axis, Mi(t, this.userOptions)), super.createAxis(t, e);
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
ft(mi(), "update", function(a) {
|
|
1294
|
+
let t = a.options;
|
|
1295
|
+
"scrollbar" in t && this.navigator && (wt(!0, this.options.scrollbar, t.scrollbar), this.navigator.update({ enabled: !!this.navigator.navigatorEnabled }), delete t.scrollbar);
|
|
1296
|
+
}), function(a) {
|
|
1297
|
+
function t(g) {
|
|
1298
|
+
if (!(this.crosshair?.label?.enabled && this.cross && lt(this.min) && lt(this.max))) return;
|
|
1299
|
+
let p = this.chart, d = this.logarithmic, r = this.crosshair.label, l = this.horiz, h = this.opposite, f = this.left, m = this.top, x = this.width, b = this.options.tickPosition === "inside", w = this.crosshair.snap !== !1, v = g.e || this.cross?.e, M = g.point, A = this.crossLabel, y, E, k = r.format, T = "", O, S = 0, C = this.min, I = this.max;
|
|
1300
|
+
d && (C = d.lin2log(this.min), I = d.lin2log(this.max));
|
|
1301
|
+
let G = l ? "center" : h ? this.labelAlign === "right" ? "right" : "left" : this.labelAlign === "left" ? "left" : "center";
|
|
1302
|
+
A || (A = this.crossLabel = p.renderer.label("", 0, void 0, r.shape || "callout").addClass("highcharts-crosshair-label highcharts-color-" + (M?.series ? M.series.colorIndex : this.series[0] && this.series[0].colorIndex)).attr({ align: r.align || G, padding: ot(r.padding, 8), r: ot(r.borderRadius, 3), zIndex: 2 }).add(this.labelGroup), p.styledMode || A.attr({ fill: r.backgroundColor || M?.series?.color || "#666666", stroke: r.borderColor || "", "stroke-width": r.borderWidth || 0 }).css(Xo({ color: "#ffffff", fontWeight: "normal", fontSize: "0.7em", textAlign: "center" }, r.style || {}))), l ? (y = w ? (M.plotX || 0) + f : v.chartX, E = m + (h ? 0 : this.height)) : (y = f + this.offset + (h ? x : 0), E = w ? (M.plotY || 0) + m : v.chartY), k || r.formatter || (this.dateTime && (T = "%b %d, %Y"), k = "{value" + (T ? ":" + T : "") + "}");
|
|
1303
|
+
let D = w ? this.isXAxis ? M.x : M.y : this.toValue(l ? v.chartX : v.chartY), z = M?.series ? M.series.isPointInside(M) : lt(D) && D > C && D < I, L = "";
|
|
1304
|
+
k ? L = Lo(k, { value: D }, p) : r.formatter && lt(D) && (L = r.formatter.call(this, D)), A.attr({ text: L, x: y, y: E, visibility: z ? "inherit" : "hidden" });
|
|
1305
|
+
let W = A.getBBox();
|
|
1306
|
+
!lt(A.x) || l || h || (y = A.x - W.width / 2), lt(A.y) && (l ? (b && !h || !b && h) && (E = A.y - W.height) : E = A.y - W.height / 2), O = l ? { left: f, right: f + this.width } : { left: this.labelAlign === "left" ? f : 0, right: this.labelAlign === "right" ? f + this.width : p.chartWidth };
|
|
1307
|
+
let X = A.translateX || 0;
|
|
1308
|
+
X < O.left && (S = O.left - X), X + W.width >= O.right && (S = -(X + W.width - O.right)), A.attr({ x: Math.max(0, y + S), y: Math.max(0, E), anchorX: l ? y : this.opposite ? 0 : p.chartWidth, anchorY: l ? this.opposite ? p.chartHeight : 0 : E + W.height / 2 });
|
|
1309
|
+
}
|
|
1310
|
+
function e() {
|
|
1311
|
+
this.crossLabel && (this.crossLabel = this.crossLabel.hide());
|
|
1312
|
+
}
|
|
1313
|
+
function i(g) {
|
|
1314
|
+
let p = this.chart, d = this.options, r = p._labelPanes = p._labelPanes || {}, l = d.labels;
|
|
1315
|
+
if (p.options.isStock && this.coll === "yAxis") {
|
|
1316
|
+
let h = d.top + "," + d.height;
|
|
1317
|
+
!r[h] && l.enabled && (l.distance === 15 && this.side === 1 && (l.distance = 0), l.align === void 0 && (l.align = "right"), r[h] = this, g.align = "right", g.preventDefault());
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
function s() {
|
|
1321
|
+
let g = this.chart, p = this.options && this.options.top + "," + this.options.height;
|
|
1322
|
+
p && g._labelPanes && g._labelPanes[p] === this && delete g._labelPanes[p];
|
|
1323
|
+
}
|
|
1324
|
+
function o(g) {
|
|
1325
|
+
let p = this, d = p.isLinked && !p.series && p.linkedParent ? p.linkedParent.series : p.series, r = p.chart, l = r.renderer, h = p.left, f = p.top, m = [], x = g.translatedValue, b = g.value, w = g.force, v, M, A, y, E = [], k, T;
|
|
1326
|
+
if (r.options.isStock && g.acrossPanes !== !1 && p.coll === "xAxis" || p.coll === "yAxis") {
|
|
1327
|
+
for (let O of (g.preventDefault(), E = ((S) => {
|
|
1328
|
+
let C = S === "xAxis" ? "yAxis" : "xAxis", I = p.options[C];
|
|
1329
|
+
return lt(I) ? [r[C][I]] : Yo(I) ? [r.get(I)] : d.map((G) => G[C]);
|
|
1330
|
+
})(p.coll), p.isXAxis ? r.yAxis : r.xAxis)) if (!O.options.isInternal) {
|
|
1331
|
+
let S = O.isXAxis ? "yAxis" : "xAxis";
|
|
1332
|
+
p === (De(O.options[S]) ? r[S][O.options[S]] : r[S][0]) && E.push(O);
|
|
1333
|
+
}
|
|
1334
|
+
for (let O of (k = E.length ? [] : [p.isXAxis ? r.yAxis[0] : r.xAxis[0]], E)) k.indexOf(O) !== -1 || Ho(k, (S) => S.pos === O.pos && S.len === O.len) || k.push(O);
|
|
1335
|
+
if (lt(T = ot(x, p.translate(b || 0, void 0, void 0, g.old))))
|
|
1336
|
+
if (p.horiz) for (let O of k) {
|
|
1337
|
+
let S;
|
|
1338
|
+
y = (M = O.pos) + O.len, v = A = Math.round(T + p.transB), w !== "pass" && (v < h || v > h + p.width) && (w ? v = A = bi(v, h, h + p.width) : S = !0), S || m.push(["M", v, M], ["L", A, y]);
|
|
1339
|
+
}
|
|
1340
|
+
else for (let O of k) {
|
|
1341
|
+
let S;
|
|
1342
|
+
A = (v = O.pos) + O.len, M = y = Math.round(f + p.height - T), w !== "pass" && (M < f || M > f + p.height) && (w ? M = y = bi(M, f, f + p.height) : S = !0), S || m.push(["M", v, M], ["L", A, y]);
|
|
1343
|
+
}
|
|
1344
|
+
g.path = m.length > 0 ? l.crispPolyLine(m, g.lineWidth || 1) : void 0;
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
function n(g) {
|
|
1348
|
+
if (this.chart.options.isStock) {
|
|
1349
|
+
let p;
|
|
1350
|
+
this.is("column") || this.is("columnrange") ? p = { borderWidth: 0, shadow: !1 } : this.is("scatter") || this.is("sma") || (p = { marker: { enabled: !1, radius: 2 } }), p && (g.plotOptions[this.type] = wt(g.plotOptions[this.type], p));
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
function c() {
|
|
1354
|
+
let g = this.chart, p = this.options.dataGrouping;
|
|
1355
|
+
return this.allowDG !== !1 && p && ot(p.enabled, g.options.isStock);
|
|
1356
|
+
}
|
|
1357
|
+
function u(g, p) {
|
|
1358
|
+
for (let d = 0; d < g.length; d += 2) {
|
|
1359
|
+
let r = g[d], l = g[d + 1];
|
|
1360
|
+
De(r[1]) && r[1] === l[1] && (r[1] = l[1] = vi(r[1], p)), De(r[2]) && r[2] === l[2] && (r[2] = l[2] = vi(r[2], p));
|
|
1361
|
+
}
|
|
1362
|
+
return g;
|
|
1363
|
+
}
|
|
1364
|
+
a.compose = function(g, p, d, r) {
|
|
1365
|
+
let l = d.prototype;
|
|
1366
|
+
l.forceCropping || (ft(p, "afterDrawCrosshair", t), ft(p, "afterHideCrosshair", e), ft(p, "autoLabelAlign", i), ft(p, "destroy", s), ft(p, "getPlotLinePath", o), g.prototype.setFixedRange = Wo, l.forceCropping = c, ft(d, "setOptions", n), r.prototype.crispPolyLine = u);
|
|
1367
|
+
}, a.stockChart = function(g, p, d) {
|
|
1368
|
+
return new a(g, p, d);
|
|
1369
|
+
};
|
|
1370
|
+
}(Re || (Re = {}));
|
|
1371
|
+
let Ai = Re, { column: { prototype: { pointClass: No } } } = _().seriesTypes, { column: ki } = _().seriesTypes, { crisp: wi, extend: Si, merge: Fo } = B(), { defaultOptions: Uo } = B();
|
|
1372
|
+
class Ge extends ki {
|
|
1373
|
+
extendStem(t, e, i) {
|
|
1374
|
+
let s = t[0], o = t[1];
|
|
1375
|
+
typeof s[2] == "number" && (s[2] = Math.max(i + e, s[2])), typeof o[2] == "number" && (o[2] = Math.min(i - e, o[2]));
|
|
1376
|
+
}
|
|
1377
|
+
getPointPath(t, e) {
|
|
1378
|
+
let i = e.strokeWidth(), s = t.series, o = wi(t.plotX || 0, i), n = Math.round(t.shapeArgs.width / 2), c = [["M", o, Math.round(t.yBottom)], ["L", o, Math.round(t.plotHigh)]];
|
|
1379
|
+
if (t.close !== null) {
|
|
1380
|
+
let u = wi(t.plotClose, i);
|
|
1381
|
+
c.push(["M", o, u], ["L", o + n, u]), s.extendStem(c, i / 2, u);
|
|
1382
|
+
}
|
|
1383
|
+
return c;
|
|
1384
|
+
}
|
|
1385
|
+
drawSinglePoint(t) {
|
|
1386
|
+
let e = t.series, i = e.chart, s, o = t.graphic;
|
|
1387
|
+
t.plotY !== void 0 && (o || (t.graphic = o = i.renderer.path().add(e.group)), i.styledMode || o.attr(e.pointAttribs(t, t.selected && "select")), s = e.getPointPath(t, o), o[o ? "animate" : "attr"]({ d: s }).addClass(t.getClassName(), !0));
|
|
1388
|
+
}
|
|
1389
|
+
drawPoints() {
|
|
1390
|
+
this.points.forEach(this.drawSinglePoint);
|
|
1391
|
+
}
|
|
1392
|
+
init() {
|
|
1393
|
+
super.init.apply(this, arguments), this.options.stacking = void 0;
|
|
1394
|
+
}
|
|
1395
|
+
pointAttribs(t, e) {
|
|
1396
|
+
let i = super.pointAttribs.call(this, t, e);
|
|
1397
|
+
return delete i.fill, i;
|
|
1398
|
+
}
|
|
1399
|
+
toYData(t) {
|
|
1400
|
+
return [t.high, t.low, t.close];
|
|
1401
|
+
}
|
|
1402
|
+
translate() {
|
|
1403
|
+
let t = this, e = t.yAxis, i = this.pointArrayMap && this.pointArrayMap.slice() || [], s = i.map((o) => `plot${o.charAt(0).toUpperCase() + o.slice(1)}`);
|
|
1404
|
+
s.push("yBottom"), i.push("low"), super.translate.apply(t), t.points.forEach(function(o) {
|
|
1405
|
+
i.forEach(function(n, c) {
|
|
1406
|
+
let u = o[n];
|
|
1407
|
+
u !== null && (t.dataModify && (u = t.dataModify.modifyValue(u)), o[s[c]] = e.toPixels(u, !0));
|
|
1408
|
+
}), o.tooltipPos[1] = o.plotHigh + e.pos - t.chart.plotTop;
|
|
1409
|
+
});
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
Ge.defaultOptions = Fo(ki.defaultOptions, { lineWidth: 1, tooltip: { pointFormat: '<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>{series.chart.options.lang.stockHigh}: {point.high}<br/>{series.chart.options.lang.stockLow}: {point.low}<br/>{series.chart.options.lang.stockClose}: {point.close}<br/>' }, threshold: null, states: { hover: { lineWidth: 3 } }, stickyTracking: !0 }), Si(Ge.prototype, { pointClass: class extends No {
|
|
1413
|
+
}, animate: null, directTouch: !1, keysAffectYAxis: ["low", "high"], pointArrayMap: ["high", "low", "close"], pointAttrToOptions: { stroke: "color", "stroke-width": "lineWidth" }, pointValKey: "close" }), Si(Uo.lang, { stockOpen: "Open", stockHigh: "High", stockLow: "Low", stockClose: "Close" }), _().registerSeriesType("hlc", Ge);
|
|
1414
|
+
let { seriesTypes: { hlc: Vo } } = _();
|
|
1415
|
+
class _o extends Vo.prototype.pointClass {
|
|
1416
|
+
getClassName() {
|
|
1417
|
+
return super.getClassName.call(this) + (this.open < this.close ? " highcharts-point-up" : " highcharts-point-down");
|
|
1418
|
+
}
|
|
1419
|
+
resolveUpColor() {
|
|
1420
|
+
this.open < this.close && !this.options.color && this.series.options.upColor && (this.color = this.series.options.upColor);
|
|
1421
|
+
}
|
|
1422
|
+
resolveColor() {
|
|
1423
|
+
super.resolveColor(), this.series.is("heikinashi") || this.resolveUpColor();
|
|
1424
|
+
}
|
|
1425
|
+
getZone() {
|
|
1426
|
+
let t = super.getZone();
|
|
1427
|
+
return this.resolveUpColor(), t;
|
|
1428
|
+
}
|
|
1429
|
+
applyOptions() {
|
|
1430
|
+
return super.applyOptions.apply(this, arguments), this.resolveColor && this.resolveColor(), this;
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
let { composed: jo } = B(), { hlc: Ti } = _().seriesTypes, { addEvent: Ei, crisp: Oi, extend: Bi, merge: qo, pushUnique: Zo } = B();
|
|
1434
|
+
function Ko(a) {
|
|
1435
|
+
let t = a.options, e = t.dataGrouping;
|
|
1436
|
+
e && t.useOhlcData && t.id !== "highcharts-navigator-series" && (e.approximation = "ohlc");
|
|
1437
|
+
}
|
|
1438
|
+
function $o(a) {
|
|
1439
|
+
let t = a.options;
|
|
1440
|
+
t.useOhlcData && t.id !== "highcharts-navigator-series" && Bi(this, { pointValKey: mt.prototype.pointValKey, pointArrayMap: mt.prototype.pointArrayMap, toYData: mt.prototype.toYData });
|
|
1441
|
+
}
|
|
1442
|
+
class mt extends Ti {
|
|
1443
|
+
static compose(t, ...e) {
|
|
1444
|
+
Zo(jo, "OHLCSeries") && (Ei(t, "afterSetOptions", Ko), Ei(t, "init", $o));
|
|
1445
|
+
}
|
|
1446
|
+
getPointPath(t, e) {
|
|
1447
|
+
let i = super.getPointPath(t, e), s = e.strokeWidth(), o = Oi(t.plotX || 0, s), n = Math.round(t.shapeArgs.width / 2);
|
|
1448
|
+
if (t.open !== null) {
|
|
1449
|
+
let c = Oi(t.plotOpen, s);
|
|
1450
|
+
i.push(["M", o, c], ["L", o - n, c]), super.extendStem(i, s / 2, c);
|
|
1451
|
+
}
|
|
1452
|
+
return i;
|
|
1453
|
+
}
|
|
1454
|
+
pointAttribs(t, e) {
|
|
1455
|
+
let i = super.pointAttribs.call(this, t, e), s = this.options;
|
|
1456
|
+
return delete i.fill, !t.options.color && s.upColor && t.open < t.close && (i.stroke = s.upColor), i;
|
|
1457
|
+
}
|
|
1458
|
+
toYData(t) {
|
|
1459
|
+
return [t.open, t.high, t.low, t.close];
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
mt.defaultOptions = qo(Ti.defaultOptions, { tooltip: { pointFormat: '<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>{series.chart.options.lang.stockOpen}: {point.open}<br/>{series.chart.options.lang.stockHigh}: {point.high}<br/>{series.chart.options.lang.stockLow}: {point.low}<br/>{series.chart.options.lang.stockClose}: {point.close}<br/>' } }), Bi(mt.prototype, { pointClass: _o, pointArrayMap: ["open", "high", "low", "close"] }), _().registerSeriesType("ohlc", mt);
|
|
1463
|
+
let { column: Jo, ohlc: Ie } = _().seriesTypes, { crisp: ze, merge: Qo } = B();
|
|
1464
|
+
class Ci extends Ie {
|
|
1465
|
+
pointAttribs(t, e) {
|
|
1466
|
+
let i = Jo.prototype.pointAttribs.call(this, t, e), s = this.options, o = t.open < t.close, n = s.lineColor || this.color, c = t.color || this.color;
|
|
1467
|
+
if (i["stroke-width"] = s.lineWidth, i.fill = t.options.color || o && s.upColor || c, i.stroke = t.options.lineColor || o && s.upLineColor || n, e) {
|
|
1468
|
+
let u = s.states[e];
|
|
1469
|
+
i.fill = u.color || i.fill, i.stroke = u.lineColor || i.stroke, i["stroke-width"] = u.lineWidth || i["stroke-width"];
|
|
1470
|
+
}
|
|
1471
|
+
return i;
|
|
1472
|
+
}
|
|
1473
|
+
drawPoints() {
|
|
1474
|
+
let t = this.points, e = this.chart, i = this.yAxis.reversed;
|
|
1475
|
+
for (let s of t) {
|
|
1476
|
+
let o = s.graphic, n, c, u, g, p, d, r, l, h, f = !o;
|
|
1477
|
+
if (s.plotY !== void 0) {
|
|
1478
|
+
o || (s.graphic = o = e.renderer.path().add(this.group)), this.chart.styledMode || o.attr(this.pointAttribs(s, s.selected && "select")).shadow(this.options.shadow);
|
|
1479
|
+
let m = o.strokeWidth();
|
|
1480
|
+
r = ze(s.plotX || 0, m), u = Math.min(n = s.plotOpen, c = s.plotClose), g = Math.max(n, c), h = Math.round(s.shapeArgs.width / 2), p = i ? g !== s.yBottom : Math.round(u) !== Math.round(s.plotHigh || 0), d = i ? Math.round(u) !== Math.round(s.plotHigh || 0) : g !== s.yBottom, u = ze(u, m), g = ze(g, m), (l = []).push(["M", r - h, g], ["L", r - h, u], ["L", r + h, u], ["L", r + h, g], ["Z"], ["M", r, u], ["L", r, p ? Math.round(i ? s.yBottom : s.plotHigh) : u], ["M", r, g], ["L", r, d ? Math.round(i ? s.plotHigh : s.yBottom) : g]), o[f ? "attr" : "animate"]({ d: l }).addClass(s.getClassName(), !0);
|
|
1481
|
+
}
|
|
1482
|
+
}
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
Ci.defaultOptions = Qo(Ie.defaultOptions, { tooltip: Ie.defaultOptions.tooltip }, { states: { hover: { lineWidth: 2 } }, threshold: null, lineColor: "#000000", lineWidth: 1, upColor: "#ffffff", stickyTracking: !0 }), _().registerSeriesType("candlestick", Ci);
|
|
1486
|
+
let { column: { prototype: { pointClass: tr } } } = _().seriesTypes, { isNumber: er } = B(), ir = class extends tr {
|
|
1487
|
+
constructor() {
|
|
1488
|
+
super(...arguments), this.ttBelow = !1;
|
|
1489
|
+
}
|
|
1490
|
+
isValid() {
|
|
1491
|
+
return er(this.y) || this.y === void 0;
|
|
1492
|
+
}
|
|
1493
|
+
hasNewShapeType() {
|
|
1494
|
+
let a = this.options.shape || this.series.options.shape;
|
|
1495
|
+
return this.graphic && a && a !== this.graphic.symbolKey;
|
|
1496
|
+
}
|
|
1497
|
+
};
|
|
1498
|
+
(function(a) {
|
|
1499
|
+
let t = [];
|
|
1500
|
+
function e(s, o, n, c, u) {
|
|
1501
|
+
let g = u && u.anchorX || s, p = u && u.anchorY || o, d = this.circle(g - 1, p - 1, 2, 2);
|
|
1502
|
+
return d.push(["M", g, p], ["L", s, o + c], ["L", s, o], ["L", s + n, o], ["L", s + n, o + c], ["L", s, o + c], ["Z"]), d;
|
|
1503
|
+
}
|
|
1504
|
+
function i(s, o) {
|
|
1505
|
+
s[o + "pin"] = function(n, c, u, g, p) {
|
|
1506
|
+
let d, r = p && p.anchorX, l = p && p.anchorY;
|
|
1507
|
+
if (o === "circle" && g > u && (n -= Math.round((g - u) / 2), u = g), d = s[o](n, c, u, g, p), r && l) {
|
|
1508
|
+
let h = r;
|
|
1509
|
+
if (o === "circle") h = n + u / 2;
|
|
1510
|
+
else {
|
|
1511
|
+
let m = d[0], x = d[1];
|
|
1512
|
+
m[0] === "M" && x[0] === "L" && (h = (m[1] + x[1]) / 2);
|
|
1513
|
+
}
|
|
1514
|
+
let f = c > l ? c : c + g;
|
|
1515
|
+
d.push(["M", h, f], ["L", r, l]), d = d.concat(s.circle(r - 1, l - 1, 2, 2));
|
|
1516
|
+
}
|
|
1517
|
+
return d;
|
|
1518
|
+
};
|
|
1519
|
+
}
|
|
1520
|
+
a.compose = function(s) {
|
|
1521
|
+
if (t.indexOf(s) === -1) {
|
|
1522
|
+
t.push(s);
|
|
1523
|
+
let n = s.prototype.symbols;
|
|
1524
|
+
n.flag = e, i(n, "circle"), i(n, "square");
|
|
1525
|
+
}
|
|
1526
|
+
let o = $e().getRendererType();
|
|
1527
|
+
t.indexOf(o) && t.push(o);
|
|
1528
|
+
};
|
|
1529
|
+
})(le || (le = {}));
|
|
1530
|
+
let sr = le;
|
|
1531
|
+
var or = R(448), rr = R.n(or);
|
|
1532
|
+
let { composed: ar } = B(), { prototype: nr } = rr(), { prototype: lr } = gs(), { defined: Le, pushUnique: hr, stableSort: dr } = B();
|
|
1533
|
+
(function(a) {
|
|
1534
|
+
function t(i) {
|
|
1535
|
+
return lr.getPlotBox.call(this.options.onSeries && this.chart.get(this.options.onSeries) || this, i);
|
|
1536
|
+
}
|
|
1537
|
+
function e() {
|
|
1538
|
+
nr.translate.apply(this);
|
|
1539
|
+
let i = this, s = i.options, o = i.chart, n = i.points, c = s.onSeries, u = c && o.get(c), g = u && u.options.step, p = u && u.points, d = o.inverted, r = i.xAxis, l = i.yAxis, h = n.length - 1, f, m, x = s.onKey || "y", b = p && p.length, w = 0, v, M, A, y, E;
|
|
1540
|
+
if (u && u.visible && b) {
|
|
1541
|
+
for (w = (u.pointXOffset || 0) + (u.barW || 0) / 2, y = u.currentDataGrouping, M = p[b - 1].x + (y ? y.totalRange : 0), dr(n, (k, T) => k.x - T.x), x = "plot" + x[0].toUpperCase() + x.substr(1); b-- && n[h]; ) if (v = p[b], (f = n[h]).y = v.y, v.x <= f.x && v[x] !== void 0) {
|
|
1542
|
+
if (f.x <= M && (f.plotY = v[x], v.x < f.x && !g && (A = p[b + 1]) && A[x] !== void 0))
|
|
1543
|
+
if (Le(f.plotX) && u.is("spline")) {
|
|
1544
|
+
let k = [v.plotX || 0, v.plotY || 0], T = [A.plotX || 0, A.plotY || 0], O = v.controlPoints?.high || k, S = A.controlPoints?.low || T, C = (z, L) => Math.pow(1 - z, 3) * k[L] + 3 * (1 - z) * (1 - z) * z * O[L] + 3 * (1 - z) * z * z * S[L] + z * z * z * T[L], I = 0, G = 1, D;
|
|
1545
|
+
for (let z = 0; z < 100; z++) {
|
|
1546
|
+
let L = (I + G) / 2, W = C(L, 0);
|
|
1547
|
+
if (W === null) break;
|
|
1548
|
+
if (0.25 > Math.abs(W - f.plotX)) {
|
|
1549
|
+
D = L;
|
|
1550
|
+
break;
|
|
1551
|
+
}
|
|
1552
|
+
W < f.plotX ? I = L : G = L;
|
|
1553
|
+
}
|
|
1554
|
+
Le(D) && (f.plotY = C(D, 1), f.y = l.toValue(f.plotY, !0));
|
|
1555
|
+
} else E = (f.x - v.x) / (A.x - v.x), f.plotY += E * (A[x] - v[x]), f.y += E * (A.y - v.y);
|
|
1556
|
+
if (h--, b++, h < 0) break;
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
n.forEach((k, T) => {
|
|
1560
|
+
let O;
|
|
1561
|
+
k.plotX += w, (k.plotY === void 0 || d) && (k.plotX >= 0 && k.plotX <= r.len ? d ? (k.plotY = r.translate(k.x, 0, 1, 0, 1), k.plotX = Le(k.y) ? l.translate(k.y, 0, 0, 0, 1) : 0) : k.plotY = (r.opposite ? 0 : i.yAxis.len) + r.offset : k.shapeArgs = {}), (m = n[T - 1]) && m.plotX === k.plotX && (m.stackIndex === void 0 && (m.stackIndex = 0), O = m.stackIndex + 1), k.stackIndex = O;
|
|
1562
|
+
}), this.onSeries = u;
|
|
1563
|
+
}
|
|
1564
|
+
a.compose = function(i) {
|
|
1565
|
+
if (hr(ar, "OnSeries")) {
|
|
1566
|
+
let s = i.prototype;
|
|
1567
|
+
s.getPlotBox = t, s.translate = e;
|
|
1568
|
+
}
|
|
1569
|
+
return i;
|
|
1570
|
+
}, a.getPlotBox = t, a.translate = e;
|
|
1571
|
+
})(he || (he = {}));
|
|
1572
|
+
let pr = he, { noop: ur } = B(), { distribute: cr } = B(), { series: Di, seriesTypes: { column: Pi } } = _(), { addEvent: gr, defined: fr, extend: mr, isNumber: xr, merge: Ri, objectEach: br, wrap: vr } = B();
|
|
1573
|
+
class St extends Pi {
|
|
1574
|
+
animate(t) {
|
|
1575
|
+
t && this.setClip();
|
|
1576
|
+
}
|
|
1577
|
+
drawPoints() {
|
|
1578
|
+
let t, e, i, s, o, n, c, u, g, p, d, r = this.points, l = this.chart, h = l.renderer, f = l.inverted, m = this.options, x = m.y, b = this.yAxis, w = {}, v = [], M = xr(m.borderRadius) ? m.borderRadius : 0;
|
|
1579
|
+
for (s = r.length; s--; ) o = r[s], p = (f ? o.plotY : o.plotX) > this.xAxis.len, t = o.plotX, c = o.stackIndex, i = o.options.shape || m.shape, (e = o.plotY) !== void 0 && (e = o.plotY + x - (c !== void 0 && c * m.stackDistance)), o.anchorX = c ? void 0 : o.plotX, u = c ? void 0 : o.plotY, d = i !== "flag", n = o.graphic, e !== void 0 && t >= 0 && !p ? (n && o.hasNewShapeType() && (n = n.destroy()), n || (n = o.graphic = h.label("", 0, void 0, i, void 0, void 0, m.useHTML).addClass("highcharts-point").add(this.markerGroup), o.graphic.div && (o.graphic.div.point = o), n.isNew = !0), n.attr({ align: d ? "center" : "left", width: m.width, height: m.height, "text-align": m.textAlign, r: M }), l.styledMode || n.attr(this.pointAttribs(o)).css(Ri(m.style, o.style)).shadow(m.shadow), t > 0 && (t -= n.strokeWidth() % 2), g = { y: e, anchorY: u }, m.allowOverlapX && (g.x = t, g.anchorX = o.anchorX), n.attr({ text: o.options.title ?? m.title ?? "A" })[n.isNew ? "attr" : "animate"](g), m.allowOverlapX || (w[o.plotX] ? w[o.plotX].size = Math.max(w[o.plotX].size, n.width || 0) : w[o.plotX] = { align: 0.5 * !!d, size: n.width || 0, target: t, anchorX: t }), o.tooltipPos = [t, e + b.pos - l.plotTop]) : n && (o.graphic = n.destroy());
|
|
1580
|
+
if (!m.allowOverlapX) {
|
|
1581
|
+
let A = 100;
|
|
1582
|
+
for (let y of (br(w, function(E) {
|
|
1583
|
+
E.plotX = E.anchorX, v.push(E), A = Math.max(E.size, A);
|
|
1584
|
+
}), cr(v, f ? b.len : this.xAxis.len, A), r)) {
|
|
1585
|
+
let E = y.plotX, k = y.graphic, T = k && w[E];
|
|
1586
|
+
T && k && (fr(T.pos) ? k[k.isNew ? "attr" : "animate"]({ x: T.pos + (T.align || 0) * T.size, anchorX: y.anchorX }).show().isNew = !1 : k.hide().isNew = !0);
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
m.useHTML && this.markerGroup && vr(this.markerGroup, "on", function(A) {
|
|
1590
|
+
return ui().prototype.on.apply(A.apply(this, [].slice.call(arguments, 1)), [].slice.call(arguments, 1));
|
|
1591
|
+
});
|
|
1592
|
+
}
|
|
1593
|
+
drawTracker() {
|
|
1594
|
+
let t = this.points;
|
|
1595
|
+
for (let e of (super.drawTracker(), t)) {
|
|
1596
|
+
let i = e.graphic;
|
|
1597
|
+
i && (e.unbindMouseOver && e.unbindMouseOver(), e.unbindMouseOver = gr(i.element, "mouseover", function() {
|
|
1598
|
+
for (let s of (e.stackIndex > 0 && !e.raised && (e._y = i.y, i.attr({ y: e._y - 8 }), e.raised = !0), t)) s !== e && s.raised && s.graphic && (s.graphic.attr({ y: s._y }), s.raised = !1);
|
|
1599
|
+
}));
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
pointAttribs(t, e) {
|
|
1603
|
+
let i = this.options, s = t && t.color || this.color, o = i.lineColor, n = t && t.lineWidth, c = t && t.fillColor || i.fillColor;
|
|
1604
|
+
return e && (c = i.states[e].fillColor, o = i.states[e].lineColor, n = i.states[e].lineWidth), { fill: c || s, stroke: o || s, "stroke-width": n || i.lineWidth || 0 };
|
|
1605
|
+
}
|
|
1606
|
+
setClip() {
|
|
1607
|
+
Di.prototype.setClip.apply(this, arguments), this.options.clip !== !1 && this.sharedClipKey && this.markerGroup && this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey]);
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
St.compose = sr.compose, St.defaultOptions = Ri(Pi.defaultOptions, { borderRadius: 0, pointRange: 0, allowOverlapX: !1, shape: "flag", stackDistance: 12, textAlign: "center", tooltip: { pointFormat: "{point.text}" }, threshold: null, y: -30, fillColor: "#ffffff", lineWidth: 1, states: { hover: { lineColor: "#000000", fillColor: "#ccd3ff" } }, style: { fontSize: "0.7em", fontWeight: "bold" } }), pr.compose(St), mr(St.prototype, { allowDG: !1, forceCrop: !0, invertible: !1, noSharedTooltip: !0, pointClass: ir, sorted: !1, takeOrdinalPosition: !1, trackerGroups: ["markerGroup"], buildKDTree: ur, init: Di.prototype.init }), _().registerSeriesType("flags", St);
|
|
1611
|
+
var yr = R(184), Mr = R.n(yr);
|
|
1612
|
+
let { addEvent: Tt, find: Ar, fireEvent: We, isArray: kr, isNumber: q, pick: Et } = B();
|
|
1613
|
+
(function(a) {
|
|
1614
|
+
function t() {
|
|
1615
|
+
this.brokenAxis !== void 0 && this.brokenAxis.setBreaks(this.options.breaks, !1);
|
|
1616
|
+
}
|
|
1617
|
+
function e() {
|
|
1618
|
+
this.brokenAxis?.hasBreaks && (this.options.ordinal = !1);
|
|
1619
|
+
}
|
|
1620
|
+
function i() {
|
|
1621
|
+
let p = this.brokenAxis;
|
|
1622
|
+
if (p?.hasBreaks) {
|
|
1623
|
+
let d = this.tickPositions, r = this.tickPositions.info, l = [];
|
|
1624
|
+
for (let h = 0; h < d.length; h++) p.isInAnyBreak(d[h]) || l.push(d[h]);
|
|
1625
|
+
this.tickPositions = l, this.tickPositions.info = r;
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
function s() {
|
|
1629
|
+
this.brokenAxis || (this.brokenAxis = new g(this));
|
|
1630
|
+
}
|
|
1631
|
+
function o() {
|
|
1632
|
+
let { isDirty: p, options: { connectNulls: d }, points: r, xAxis: l, yAxis: h } = this;
|
|
1633
|
+
if (p) {
|
|
1634
|
+
let f = r.length;
|
|
1635
|
+
for (; f--; ) {
|
|
1636
|
+
let m = r[f], x = (m.y !== null || d !== !1) && (l?.brokenAxis?.isInAnyBreak(m.x, !0) || h?.brokenAxis?.isInAnyBreak(m.y, !0));
|
|
1637
|
+
m.visible = !x && m.options.visible !== !1;
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1641
|
+
function n() {
|
|
1642
|
+
this.drawBreaks(this.xAxis, ["x"]), this.drawBreaks(this.yAxis, Et(this.pointArrayMap, ["y"]));
|
|
1643
|
+
}
|
|
1644
|
+
function c(p, d) {
|
|
1645
|
+
let r, l, h, f = this, m = f.points;
|
|
1646
|
+
if (p?.brokenAxis?.hasBreaks) {
|
|
1647
|
+
let x = p.brokenAxis;
|
|
1648
|
+
d.forEach(function(b) {
|
|
1649
|
+
r = x?.breakArray || [], l = p.isXAxis ? p.min : Et(f.options.threshold, p.min);
|
|
1650
|
+
let w = p?.options?.breaks?.filter(function(v) {
|
|
1651
|
+
let M = !0;
|
|
1652
|
+
for (let A = 0; A < r.length; A++) {
|
|
1653
|
+
let y = r[A];
|
|
1654
|
+
if (y.from === v.from && y.to === v.to) {
|
|
1655
|
+
M = !1;
|
|
1656
|
+
break;
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
return M;
|
|
1660
|
+
});
|
|
1661
|
+
m.forEach(function(v) {
|
|
1662
|
+
h = Et(v["stack" + b.toUpperCase()], v[b]), r.forEach(function(M) {
|
|
1663
|
+
if (q(l) && q(h)) {
|
|
1664
|
+
let A = "";
|
|
1665
|
+
l < M.from && h > M.to || l > M.from && h < M.from ? A = "pointBreak" : (l < M.from && h > M.from && h < M.to || l > M.from && h > M.to && h < M.from) && (A = "pointInBreak"), A && We(p, A, { point: v, brk: M });
|
|
1666
|
+
}
|
|
1667
|
+
}), w?.forEach(function(M) {
|
|
1668
|
+
We(p, "pointOutsideOfBreak", { point: v, brk: M });
|
|
1669
|
+
});
|
|
1670
|
+
});
|
|
1671
|
+
});
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
function u() {
|
|
1675
|
+
let p = this.currentDataGrouping, d = p?.gapSize, r = this.points.slice(), l = this.yAxis, h = this.options.gapSize, f = r.length - 1;
|
|
1676
|
+
if (h && f > 0) {
|
|
1677
|
+
let m, x;
|
|
1678
|
+
for (this.options.gapUnit !== "value" && (h *= this.basePointRange), d && d > h && d >= this.basePointRange && (h = d); f--; ) if (x && x.visible !== !1 || (x = r[f + 1]), m = r[f], x.visible !== !1 && m.visible !== !1) {
|
|
1679
|
+
if (x.x - m.x > h) {
|
|
1680
|
+
let b = (m.x + x.x) / 2;
|
|
1681
|
+
r.splice(f + 1, 0, { isNull: !0, x: b }), l.stacking && this.options.stacking && ((l.stacking.stacks[this.stackKey][b] = new (Mr())(l, l.options.stackLabels, !1, b, this.stack)).total = 0);
|
|
1682
|
+
}
|
|
1683
|
+
x = m;
|
|
1684
|
+
}
|
|
1685
|
+
}
|
|
1686
|
+
return this.getGraphPath(r);
|
|
1687
|
+
}
|
|
1688
|
+
a.compose = function(p, d) {
|
|
1689
|
+
if (!p.keepProps.includes("brokenAxis")) {
|
|
1690
|
+
p.keepProps.push("brokenAxis"), Tt(p, "init", s), Tt(p, "afterInit", t), Tt(p, "afterSetTickPositions", i), Tt(p, "afterSetOptions", e);
|
|
1691
|
+
let r = d.prototype;
|
|
1692
|
+
r.drawBreaks = c, r.gappedPath = u, Tt(d, "afterGeneratePoints", o), Tt(d, "afterRender", n);
|
|
1693
|
+
}
|
|
1694
|
+
return p;
|
|
1695
|
+
};
|
|
1696
|
+
class g {
|
|
1697
|
+
static isInBreak(d, r) {
|
|
1698
|
+
let l = d.repeat || 1 / 0, h = d.from, f = d.to - d.from, m = r >= h ? (r - h) % l : l - (h - r) % l;
|
|
1699
|
+
return d.inclusive ? m <= f : m < f && m !== 0;
|
|
1700
|
+
}
|
|
1701
|
+
static lin2Val(d) {
|
|
1702
|
+
let r = this.brokenAxis, l = r?.breakArray;
|
|
1703
|
+
if (!l || !q(d)) return d;
|
|
1704
|
+
let h = d, f, m;
|
|
1705
|
+
for (m = 0; m < l.length && !((f = l[m]).from >= h); m++) (f.to < h || g.isInBreak(f, h)) && (h += f.len);
|
|
1706
|
+
return h;
|
|
1707
|
+
}
|
|
1708
|
+
static val2Lin(d) {
|
|
1709
|
+
let r = this.brokenAxis, l = r?.breakArray;
|
|
1710
|
+
if (!l || !q(d)) return d;
|
|
1711
|
+
let h = d, f, m;
|
|
1712
|
+
for (m = 0; m < l.length; m++) if ((f = l[m]).to <= d) h -= f.len;
|
|
1713
|
+
else {
|
|
1714
|
+
if (f.from >= d) break;
|
|
1715
|
+
if (g.isInBreak(f, d)) {
|
|
1716
|
+
h -= d - f.from;
|
|
1717
|
+
break;
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
return h;
|
|
1721
|
+
}
|
|
1722
|
+
constructor(d) {
|
|
1723
|
+
this.hasBreaks = !1, this.axis = d;
|
|
1724
|
+
}
|
|
1725
|
+
findBreakAt(d, r) {
|
|
1726
|
+
return Ar(r, function(l) {
|
|
1727
|
+
return l.from < d && d < l.to;
|
|
1728
|
+
});
|
|
1729
|
+
}
|
|
1730
|
+
isInAnyBreak(d, r) {
|
|
1731
|
+
let l = this.axis, h = l.options.breaks || [], f = h.length, m, x, b;
|
|
1732
|
+
if (f && q(d)) {
|
|
1733
|
+
for (; f--; ) g.isInBreak(h[f], d) && (m = !0, x || (x = Et(h[f].showPoints, !l.isXAxis)));
|
|
1734
|
+
b = m && r ? m && !x : m;
|
|
1735
|
+
}
|
|
1736
|
+
return b;
|
|
1737
|
+
}
|
|
1738
|
+
setBreaks(d, r) {
|
|
1739
|
+
let l = this, h = l.axis, f = h.chart.time, m = kr(d) && !!d.length && !!Object.keys(d[0]).length;
|
|
1740
|
+
h.isDirty = l.hasBreaks !== m, l.hasBreaks = m, d?.forEach((x) => {
|
|
1741
|
+
x.from = f.parse(x.from) || 0, x.to = f.parse(x.to) || 0;
|
|
1742
|
+
}), d !== h.options.breaks && (h.options.breaks = h.userOptions.breaks = d), h.forceRedraw = !0, h.series.forEach(function(x) {
|
|
1743
|
+
x.isDirty = !0;
|
|
1744
|
+
}), m || h.val2lin !== g.val2Lin || (delete h.val2lin, delete h.lin2val), m && (h.userOptions.ordinal = !1, h.lin2val = g.lin2Val, h.val2lin = g.val2Lin, h.setExtremes = function(x, b, w, v, M) {
|
|
1745
|
+
if (l.hasBreaks) {
|
|
1746
|
+
let A, y = this.options.breaks || [];
|
|
1747
|
+
for (; A = l.findBreakAt(x, y); ) x = A.to;
|
|
1748
|
+
for (; A = l.findBreakAt(b, y); ) b = A.from;
|
|
1749
|
+
b < x && (b = x);
|
|
1750
|
+
}
|
|
1751
|
+
h.constructor.prototype.setExtremes.call(this, x, b, w, v, M);
|
|
1752
|
+
}, h.setAxisTranslation = function() {
|
|
1753
|
+
if (h.constructor.prototype.setAxisTranslation.call(this), l.unitLength = void 0, l.hasBreaks) {
|
|
1754
|
+
let x = h.options.breaks || [], b = [], w = [], v = Et(h.pointRangePadding, 0), M = 0, A, y, E = h.userMin || h.min, k = h.userMax || h.max, T, O;
|
|
1755
|
+
x.forEach(function(S) {
|
|
1756
|
+
y = S.repeat || 1 / 0, q(E) && q(k) && (g.isInBreak(S, E) && (E += S.to % y - E % y), g.isInBreak(S, k) && (k -= k % y - S.from % y));
|
|
1757
|
+
}), x.forEach(function(S) {
|
|
1758
|
+
if (T = S.from, y = S.repeat || 1 / 0, q(E) && q(k)) {
|
|
1759
|
+
for (; T - y > E; ) T -= y;
|
|
1760
|
+
for (; T < E; ) T += y;
|
|
1761
|
+
for (O = T; O < k; O += y) b.push({ value: O, move: "in" }), b.push({ value: O + S.to - S.from, move: "out", size: S.breakSize });
|
|
1762
|
+
}
|
|
1763
|
+
}), b.sort(function(S, C) {
|
|
1764
|
+
return S.value === C.value ? +(S.move !== "in") - +(C.move !== "in") : S.value - C.value;
|
|
1765
|
+
}), A = 0, T = E, b.forEach(function(S) {
|
|
1766
|
+
(A += S.move === "in" ? 1 : -1) === 1 && S.move === "in" && (T = S.value), A === 0 && q(T) && (w.push({ from: T, to: S.value, len: S.value - T - (S.size || 0) }), M += S.value - T - (S.size || 0));
|
|
1767
|
+
}), l.breakArray = w, q(E) && q(k) && q(h.min) && (l.unitLength = k - E - M + v, We(h, "afterBreaks"), h.staticScale ? h.transA = h.staticScale : l.unitLength && (h.transA *= (k - h.min + v) / l.unitLength), v && (h.minPixelPadding = h.transA * (h.minPointOffset || 0)), h.min = E, h.max = k);
|
|
1768
|
+
}
|
|
1769
|
+
}), Et(r, !0) && h.chart.redraw();
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1772
|
+
a.Additions = g;
|
|
1773
|
+
})(de || (de = {}));
|
|
1774
|
+
let wr = de, Ht = B();
|
|
1775
|
+
Ht.BrokenAxis = Ht.BrokenAxis || wr, Ht.BrokenAxis.compose(Ht.Axis, Ht.Series);
|
|
1776
|
+
let U = {}, { arrayMax: Sr, arrayMin: Tr, correctFloat: Er, extend: Or, isNumber: tt } = B();
|
|
1777
|
+
function Gi(a) {
|
|
1778
|
+
let t = a.length, e = Ii(a);
|
|
1779
|
+
return tt(e) && t && (e = Er(e / t)), e;
|
|
1780
|
+
}
|
|
1781
|
+
function Ii(a) {
|
|
1782
|
+
let t = a.length, e;
|
|
1783
|
+
if (!t && a.hasNulls) e = null;
|
|
1784
|
+
else if (t) for (e = 0; t--; ) e += a[t];
|
|
1785
|
+
return e;
|
|
1786
|
+
}
|
|
1787
|
+
let zi = { average: Gi, averages: function() {
|
|
1788
|
+
let a = [];
|
|
1789
|
+
return [].forEach.call(arguments, function(t) {
|
|
1790
|
+
a.push(Gi(t));
|
|
1791
|
+
}), a[0] === void 0 ? void 0 : a;
|
|
1792
|
+
}, close: function(a) {
|
|
1793
|
+
return a.length ? a[a.length - 1] : a.hasNulls ? null : void 0;
|
|
1794
|
+
}, high: function(a) {
|
|
1795
|
+
return a.length ? Sr(a) : a.hasNulls ? null : void 0;
|
|
1796
|
+
}, hlc: function(a, t, e) {
|
|
1797
|
+
if (a = U.high(a), t = U.low(t), e = U.close(e), tt(a) || tt(t) || tt(e)) return [a, t, e];
|
|
1798
|
+
}, low: function(a) {
|
|
1799
|
+
return a.length ? Tr(a) : a.hasNulls ? null : void 0;
|
|
1800
|
+
}, ohlc: function(a, t, e, i) {
|
|
1801
|
+
if (a = U.open(a), t = U.high(t), e = U.low(e), i = U.close(i), tt(a) || tt(t) || tt(e) || tt(i)) return [a, t, e, i];
|
|
1802
|
+
}, open: function(a) {
|
|
1803
|
+
return a.length ? a[0] : a.hasNulls ? null : void 0;
|
|
1804
|
+
}, range: function(a, t) {
|
|
1805
|
+
return a = U.low(a), t = U.high(t), tt(a) || tt(t) ? [a, t] : a === null && t === null ? null : void 0;
|
|
1806
|
+
}, sum: Ii };
|
|
1807
|
+
Or(U, zi);
|
|
1808
|
+
let Ot = { common: { groupPixelWidth: 2, dateTimeLabelFormats: { millisecond: ["%[AebHMSL]", "%[AebHMSL]", "-%[HMSL]"], second: ["%[AebHMS]", "%[AebHMS]", "-%[HMS]"], minute: ["%[AebHM]", "%[AebHM]", "-%[HM]"], hour: ["%[AebHM]", "%[AebHM]", "-%[HM]"], day: ["%[AebY]", "%[Aeb]", "-%[AebY]"], week: ["%v %[AebY]", "%[Aeb]", "-%[AebY]"], month: ["%[BY]", "%[B]", "-%[BY]"], year: ["%Y", "%Y", "-%Y"] } }, seriesSpecific: { line: {}, spline: {}, area: {}, areaspline: {}, arearange: {}, column: { groupPixelWidth: 10 }, columnrange: { groupPixelWidth: 10 }, candlestick: { groupPixelWidth: 10 }, ohlc: { groupPixelWidth: 5 }, hlc: { groupPixelWidth: 5 }, heikinashi: { groupPixelWidth: 10 } }, units: [["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], ["second", [1, 2, 5, 10, 15, 30]], ["minute", [1, 2, 5, 10, 15, 30]], ["hour", [1, 2, 3, 4, 6, 8, 12]], ["day", [1]], ["week", [1]], ["month", [1, 3, 6]], ["year", null]] }, { addEvent: Li, extend: Br, merge: Cr, pick: Wi } = B();
|
|
1809
|
+
function Xi(a) {
|
|
1810
|
+
let t = this, e = t.series;
|
|
1811
|
+
e.forEach(function(i) {
|
|
1812
|
+
i.groupPixelWidth = void 0;
|
|
1813
|
+
}), e.forEach(function(i) {
|
|
1814
|
+
i.groupPixelWidth = t.getGroupPixelWidth && t.getGroupPixelWidth(), i.groupPixelWidth && (i.hasProcessed = !0), i.applyGrouping(!!a.hasExtremesChanged);
|
|
1815
|
+
});
|
|
1816
|
+
}
|
|
1817
|
+
function Dr() {
|
|
1818
|
+
let a = this.series, t = a.length, e = 0, i = !1, s, o;
|
|
1819
|
+
for (; t--; ) (o = a[t].options.dataGrouping) && (e = Math.max(e, Wi(o.groupPixelWidth, Ot.common.groupPixelWidth)), s = (a[t].dataTable.modified || a[t].dataTable).rowCount, (a[t].groupPixelWidth || s > this.chart.plotSizeX / e || s && o.forced) && (i = !0));
|
|
1820
|
+
return i ? e : 0;
|
|
1821
|
+
}
|
|
1822
|
+
function Pr() {
|
|
1823
|
+
this.series.forEach(function(a) {
|
|
1824
|
+
a.hasProcessed = !1;
|
|
1825
|
+
});
|
|
1826
|
+
}
|
|
1827
|
+
function Rr(a, t) {
|
|
1828
|
+
let e;
|
|
1829
|
+
if (t = Wi(t, !0), a || (a = { forced: !1, units: null }), this instanceof Ye) for (e = this.series.length; e--; ) this.series[e].update({ dataGrouping: a }, !1);
|
|
1830
|
+
else this.chart.options.series.forEach(function(i) {
|
|
1831
|
+
i.dataGrouping = typeof a == "boolean" ? a : Cr(a, i.dataGrouping);
|
|
1832
|
+
});
|
|
1833
|
+
this.ordinal && (this.ordinal.slope = void 0), t && this.chart.redraw();
|
|
1834
|
+
}
|
|
1835
|
+
let Gr = { compose: function(a) {
|
|
1836
|
+
Ye = a;
|
|
1837
|
+
let t = a.prototype;
|
|
1838
|
+
t.applyGrouping || (Li(a, "afterSetScale", Pr), Li(a, "postProcessData", Xi), Br(t, { applyGrouping: Xi, getGroupPixelWidth: Dr, setDataGrouping: Rr }));
|
|
1839
|
+
} }, { addEvent: Ir, getMagnitude: zr, normalizeTickInterval: Lr, timeUnits: Kt } = B();
|
|
1840
|
+
(function(a) {
|
|
1841
|
+
function t() {
|
|
1842
|
+
return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);
|
|
1843
|
+
}
|
|
1844
|
+
function e() {
|
|
1845
|
+
if (this.type !== "datetime") {
|
|
1846
|
+
this.dateTime = void 0;
|
|
1847
|
+
return;
|
|
1848
|
+
}
|
|
1849
|
+
this.dateTime || (this.dateTime = new i(this));
|
|
1850
|
+
}
|
|
1851
|
+
a.compose = function(s) {
|
|
1852
|
+
return s.keepProps.includes("dateTime") || (s.keepProps.push("dateTime"), s.prototype.getTimeTicks = t, Ir(s, "afterSetType", e)), s;
|
|
1853
|
+
};
|
|
1854
|
+
class i {
|
|
1855
|
+
constructor(o) {
|
|
1856
|
+
this.axis = o;
|
|
1857
|
+
}
|
|
1858
|
+
normalizeTimeTickInterval(o, n) {
|
|
1859
|
+
let c = n || [["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], ["second", [1, 2, 5, 10, 15, 30]], ["minute", [1, 2, 5, 10, 15, 30]], ["hour", [1, 2, 3, 4, 6, 8, 12]], ["day", [1, 2]], ["week", [1, 2]], ["month", [1, 2, 3, 4, 6]], ["year", null]], u = c[c.length - 1], g = Kt[u[0]], p = u[1], d;
|
|
1860
|
+
for (d = 0; d < c.length && (g = Kt[(u = c[d])[0]], p = u[1], !c[d + 1] || !(o <= (g * p[p.length - 1] + Kt[c[d + 1][0]]) / 2)); d++) ;
|
|
1861
|
+
g === Kt.year && o < 5 * g && (p = [1, 2, 5]);
|
|
1862
|
+
let r = Lr(o / g, p, u[0] === "year" ? Math.max(zr(o / g), 1) : 1);
|
|
1863
|
+
return { unitRange: g, count: r, unitName: u[0] };
|
|
1864
|
+
}
|
|
1865
|
+
getXDateFormat(o, n) {
|
|
1866
|
+
let { axis: c } = this, u = c.chart.time;
|
|
1867
|
+
return c.closestPointRange ? u.getDateFormat(c.closestPointRange, o, c.options.startOfWeek, n) || u.resolveDTLFormat(n.year).main : u.resolveDTLFormat(n.day).main;
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
a.Additions = i;
|
|
1871
|
+
})(pe || (pe = {}));
|
|
1872
|
+
let Wr = pe, { series: { prototype: Hi } } = _(), { addEvent: Xe, defined: Yt, error: Yi, extend: Xr, isNumber: Z, merge: He, pick: Hr, splat: Yr } = B(), Nr = Hi.generatePoints;
|
|
1873
|
+
function Fr(a) {
|
|
1874
|
+
var t, e, i;
|
|
1875
|
+
let s, o, n = this.chart, c = this.options.dataGrouping, u = this.allowDG !== !1 && c && Hr(c.enabled, n.options.isStock), g = this.reserveSpace(), p = this.currentDataGrouping, d, r, l = !1;
|
|
1876
|
+
u && !this.requireSorting && (this.requireSorting = l = !0);
|
|
1877
|
+
let h = (t = this, e = a, !!(t.isCartesian && !t.isDirty && !t.xAxis.isDirty && !t.yAxis.isDirty && !e) || !u);
|
|
1878
|
+
if (l && (this.requireSorting = !1), h) return;
|
|
1879
|
+
this.destroyGroupedData();
|
|
1880
|
+
let f = c.groupAll ? this.dataTable : this.dataTable.modified || this.dataTable, m = this.getColumn("x", !c.groupAll), x = n.plotSizeX, b = this.xAxis, w = b.getExtremes(), v = b.options.ordinal, M = this.groupPixelWidth;
|
|
1881
|
+
if (M && m && f.rowCount && x && Z(w.min)) {
|
|
1882
|
+
o = !0, this.isDirty = !0, this.points = null;
|
|
1883
|
+
let A = w.min, y = w.max, E = v && b.ordinal && b.ordinal.getGroupIntervalFactor(A, y, this) || 1, k = M * (y - A) / x * E, T = b.getTimeTicks(Wr.Additions.prototype.normalizeTimeTickInterval(k, c.units || Ot.units), Math.min(A, m[0]), Math.max(y, m[m.length - 1]), b.options.startOfWeek, m, this.closestPointRange), O = Hi.groupData.apply(this, [f, T, c.approximation]), S = O.modified, C = S.getColumn("x", !0), I = 0;
|
|
1884
|
+
for (c?.smoothed && S.rowCount && (c.firstAnchor = "firstPoint", c.anchor = "middle", c.lastAnchor = "lastPoint", Yi(32, !1, n, { "dataGrouping.smoothed": "use dataGrouping.anchor" })), s = 1; s < T.length; s++) T.info.segmentStarts && T.info.segmentStarts.indexOf(s) !== -1 || (I = Math.max(T[s] - T[s - 1], I));
|
|
1885
|
+
(d = T.info).gapSize = I, this.closestPointRange = T.info.totalRange, this.groupMap = O.groupMap, this.currentDataGrouping = d, function(G, D, z) {
|
|
1886
|
+
let L = G.options.dataGrouping, W = G.currentDataGrouping && G.currentDataGrouping.gapSize, X = G.getColumn("x");
|
|
1887
|
+
if (!(L && X.length && W && G.groupMap)) return;
|
|
1888
|
+
let N = D.length - 1, ht = L.anchor, Bt = L.firstAnchor, V = L.lastAnchor, Ct = D.length - 1, Jt = 0;
|
|
1889
|
+
if (Bt && X[0] >= D[0]) {
|
|
1890
|
+
let dt;
|
|
1891
|
+
Jt++;
|
|
1892
|
+
let Zi = G.groupMap[0].start, Ki = G.groupMap[0].length;
|
|
1893
|
+
Z(Zi) && Z(Ki) && (dt = Zi + (Ki - 1)), D[0] = { start: D[0], middle: D[0] + 0.5 * W, end: D[0] + W, firstPoint: X[0], lastPoint: dt && X[dt] }[Bt];
|
|
1894
|
+
}
|
|
1895
|
+
if (N > 0 && V && W && D[N] >= z - W) {
|
|
1896
|
+
Ct--;
|
|
1897
|
+
let dt = G.groupMap[G.groupMap.length - 1].start;
|
|
1898
|
+
D[N] = { start: D[N], middle: D[N] + 0.5 * W, end: D[N] + W, firstPoint: dt && X[dt], lastPoint: X[X.length - 1] }[V];
|
|
1899
|
+
}
|
|
1900
|
+
if (ht && ht !== "start") {
|
|
1901
|
+
let dt = W * { middle: 0.5, end: 1 }[ht];
|
|
1902
|
+
for (; Ct >= Jt; ) D[Ct] += dt, Ct--;
|
|
1903
|
+
}
|
|
1904
|
+
}(this, C || [], y), g && C && (Yt((i = C)[0]) && Z(b.min) && Z(b.dataMin) && i[0] < b.min && ((!Yt(b.options.min) && b.min <= b.dataMin || b.min === b.dataMin) && (b.min = Math.min(i[0], b.min)), b.dataMin = Math.min(i[0], b.dataMin)), Yt(i[i.length - 1]) && Z(b.max) && Z(b.dataMax) && i[i.length - 1] > b.max && ((!Yt(b.options.max) && Z(b.dataMax) && b.max >= b.dataMax || b.max === b.dataMax) && (b.max = Math.max(i[i.length - 1], b.max)), b.dataMax = Math.max(i[i.length - 1], b.dataMax))), c.groupAll && (this.allGroupedTable = S, C = (S = (r = this.cropData(S, b.min || 0, b.max || 0)).modified).getColumn("x"), this.cropStart = r.start), this.dataTable.modified = S;
|
|
1905
|
+
} else this.groupMap = void 0, this.currentDataGrouping = void 0;
|
|
1906
|
+
this.hasGroupedData = o, this.preventGraphAnimation = (p && p.totalRange) !== (d && d.totalRange);
|
|
1907
|
+
}
|
|
1908
|
+
function Ni() {
|
|
1909
|
+
this.groupedData && (this.groupedData.forEach(function(a, t) {
|
|
1910
|
+
a && (this.groupedData[t] = a.destroy ? a.destroy() : null);
|
|
1911
|
+
}, this), this.groupedData.length = 0, delete this.allGroupedTable);
|
|
1912
|
+
}
|
|
1913
|
+
function Ur() {
|
|
1914
|
+
Nr.apply(this), this.destroyGroupedData(), this.groupedData = this.hasGroupedData ? this.points : null;
|
|
1915
|
+
}
|
|
1916
|
+
function Vr() {
|
|
1917
|
+
return this.is("arearange") ? "range" : this.is("ohlc") ? "ohlc" : this.is("hlc") ? "hlc" : this.is("column") || this.options.cumulative ? "sum" : "average";
|
|
1918
|
+
}
|
|
1919
|
+
function Fi(a, t, e) {
|
|
1920
|
+
let i = a.getColumn("x", !0) || [], s = a.getColumn("y", !0), o = this, n = o.data, c = o.options && o.options.data, u = [], g = new ai(), p = [], d = a.rowCount, r = !!s, l = [], h = o.pointArrayMap, f = h && h.length, m = ["x"].concat(h || ["y"]), x = (h || ["y"]).map(() => []), b = this.options.dataGrouping && this.options.dataGrouping.groupAll, w, v, M, A = 0, y = 0, E = typeof e == "function" ? e : e && U[e] ? U[e] : U[o.getDGApproximation && o.getDGApproximation() || "average"];
|
|
1921
|
+
if (f) {
|
|
1922
|
+
let O = h.length;
|
|
1923
|
+
for (; O--; ) l.push([]);
|
|
1924
|
+
} else l.push([]);
|
|
1925
|
+
let k = f || 1;
|
|
1926
|
+
for (let O = 0; O <= d; O++) if (!(i[O] < t[0])) {
|
|
1927
|
+
for (; t[A + 1] !== void 0 && i[O] >= t[A + 1] || O === d; ) {
|
|
1928
|
+
if (w = t[A], o.dataGroupInfo = { start: b ? y : o.cropStart + y, length: l[0].length, groupStart: w }, M = E.apply(o, l), o.pointClass && !Yt(o.dataGroupInfo.options) && (o.dataGroupInfo.options = He(o.pointClass.prototype.optionsToObject.call({ series: o }, o.options.data[o.cropStart + y])), m.forEach(function(S) {
|
|
1929
|
+
delete o.dataGroupInfo.options[S];
|
|
1930
|
+
})), M !== void 0) {
|
|
1931
|
+
u.push(w);
|
|
1932
|
+
let S = Yr(M);
|
|
1933
|
+
for (let C = 0; C < S.length; C++) x[C].push(S[C]);
|
|
1934
|
+
p.push(o.dataGroupInfo);
|
|
1935
|
+
}
|
|
1936
|
+
y = O;
|
|
1937
|
+
for (let S = 0; S < k; S++) l[S].length = 0, l[S].hasNulls = !1;
|
|
1938
|
+
if (A += 1, O === d) break;
|
|
1939
|
+
}
|
|
1940
|
+
if (O === d) break;
|
|
1941
|
+
if (h) {
|
|
1942
|
+
let S, C = b ? O : o.cropStart + O, I = n && n[C] || o.pointClass.prototype.applyOptions.apply({ series: o }, [c[C]]);
|
|
1943
|
+
for (let G = 0; G < f; G++) Z(S = I[h[G]]) ? l[G].push(S) : S === null && (l[G].hasNulls = !0);
|
|
1944
|
+
} else Z(v = r ? s[O] : null) ? l[0].push(v) : v === null && (l[0].hasNulls = !0);
|
|
1945
|
+
}
|
|
1946
|
+
let T = { x: u };
|
|
1947
|
+
return (h || ["y"]).forEach((O, S) => {
|
|
1948
|
+
T[O] = x[S];
|
|
1949
|
+
}), g.setColumns(T), { groupMap: p, modified: g };
|
|
1950
|
+
}
|
|
1951
|
+
function _r(a) {
|
|
1952
|
+
let t = a.options, e = this.type, i = this.chart.options.plotOptions, s = this.useCommonDataGrouping && Ot.common, o = Ot.seriesSpecific, n = B().defaultOptions.plotOptions[e].dataGrouping;
|
|
1953
|
+
if (i && (o[e] || s)) {
|
|
1954
|
+
let c = this.chart.rangeSelector;
|
|
1955
|
+
n || (n = He(Ot.common, o[e])), t.dataGrouping = He(s, n, i.series && i.series.dataGrouping, i[e].dataGrouping, this.userOptions.dataGrouping, !t.isInternal && c && Z(c.selected) && c.buttonOptions[c.selected].dataGrouping);
|
|
1956
|
+
}
|
|
1957
|
+
}
|
|
1958
|
+
let Ui = { compose: function(a) {
|
|
1959
|
+
let t = a.prototype;
|
|
1960
|
+
t.applyGrouping || (Xe(a.prototype.pointClass, "update", function() {
|
|
1961
|
+
if (this.dataGroup) return Yi(24, !1, this.series.chart), !1;
|
|
1962
|
+
}), Xe(a, "afterSetOptions", _r), Xe(a, "destroy", Ni), Xr(t, { applyGrouping: Fr, destroyGroupedData: Ni, generatePoints: Ur, getDGApproximation: Vr, groupData: Fi }));
|
|
1963
|
+
}, groupData: Fi }, { format: jr } = Oe(), { composed: qr } = B(), { addEvent: Zr, extend: Kr, isNumber: $r, pick: Jr, pushUnique: Qr } = B();
|
|
1964
|
+
function ta(a) {
|
|
1965
|
+
let t = this.chart, e = t.time, i = a.point, s = i.series, o = s.options, n = s.tooltipOptions, c = o.dataGrouping, u = s.xAxis, g = n.xDateFormat || "", p, d, r, l, h, f = n[a.isFooter ? "footerFormat" : "headerFormat"];
|
|
1966
|
+
if (u && u.options.type === "datetime" && c && $r(i.key)) {
|
|
1967
|
+
d = s.currentDataGrouping, r = c.dateTimeLabelFormats || Ot.common.dateTimeLabelFormats, d ? (l = r[d.unitName], d.count === 1 ? g = l[0] : (g = l[1], p = l[2])) : !g && r && u.dateTime && (g = u.dateTime.getXDateFormat(i.x, n.dateTimeLabelFormats));
|
|
1968
|
+
let m = Jr(s.groupMap?.[i.index].groupStart, i.key), x = m + (d?.totalRange || 0) - 1;
|
|
1969
|
+
h = e.dateFormat(g, m), p && (h += e.dateFormat(p, x)), s.chart.styledMode && (f = this.styledModeFormat(f)), a.text = jr(f, { point: Kr(i, { key: h }), series: s }, t), a.preventDefault();
|
|
1970
|
+
}
|
|
1971
|
+
}
|
|
1972
|
+
let ea = { compose: function(a, t, e) {
|
|
1973
|
+
Gr.compose(a), Ui.compose(t), e && Qr(qr, "DataGrouping") && Zr(e, "headerFormatter", ta);
|
|
1974
|
+
}, groupData: Ui.groupData }, rt = B();
|
|
1975
|
+
rt.dataGrouping = rt.dataGrouping || {}, rt.dataGrouping.approximationDefaults = rt.dataGrouping.approximationDefaults || zi, rt.dataGrouping.approximations = rt.dataGrouping.approximations || U, ea.compose(rt.Axis, rt.Series, rt.Tooltip);
|
|
1976
|
+
let { defined: ya, isNumber: Vi, pick: ia } = B(), { addEvent: _i, isObject: sa, pick: oa, defined: ra, merge: aa } = B(), { getAssignedAxis: ji } = { getAssignedAxis: function(a) {
|
|
1977
|
+
return a.filter((t) => {
|
|
1978
|
+
let e = t.axis.getExtremes(), i = e.min, s = e.max, o = ia(t.axis.minPointOffset, 0);
|
|
1979
|
+
return Vi(i) && Vi(s) && t.value >= i - o && t.value <= s + o && !t.axis.options.isInternal;
|
|
1980
|
+
})[0];
|
|
1981
|
+
} }, qi = [], na = { enabled: !0, sensitivity: 1.1 }, la = (a) => (sa(a) || (a = { enabled: a ?? !0 }), aa(na, a)), ha = function(a, t, e, i, s, o, n) {
|
|
1982
|
+
let c = oa(n.type, a.zooming.type, ""), u = [];
|
|
1983
|
+
c === "x" ? u = e : c === "y" ? u = i : c === "xy" && (u = a.axes);
|
|
1984
|
+
let g = a.transform({ axes: u, to: { x: s - 5, y: o - 5, width: 10, height: 10 }, from: { x: s - 5 * t, y: o - 5 * t, width: 10 * t, height: 10 * t }, trigger: "mousewheel" });
|
|
1985
|
+
return g && (ra(se) && clearTimeout(se), se = setTimeout(() => {
|
|
1986
|
+
a.pointer?.drop();
|
|
1987
|
+
}, 400)), g;
|
|
1988
|
+
};
|
|
1989
|
+
function da() {
|
|
1990
|
+
let a = la(this.zooming.mouseWheel);
|
|
1991
|
+
a.enabled && _i(this.container, "wheel", (t) => {
|
|
1992
|
+
t = this.pointer?.normalize(t) || t;
|
|
1993
|
+
let { pointer: e } = this, i = e && !e.inClass(t.target, "highcharts-no-mousewheel");
|
|
1994
|
+
if (this.isInsidePlot(t.chartX - this.plotLeft, t.chartY - this.plotTop) && i) {
|
|
1995
|
+
let s = a.sensitivity || 1.1, o = t.detail || (t.deltaY || 0) / 120, n = ji(e.getCoordinates(t).xAxis), c = ji(e.getCoordinates(t).yAxis);
|
|
1996
|
+
ha(this, Math.pow(s, o), n ? [n.axis] : this.xAxis, c ? [c.axis] : this.yAxis, t.chartX, t.chartY, a) && t.preventDefault?.();
|
|
1997
|
+
}
|
|
1998
|
+
});
|
|
1999
|
+
}
|
|
2000
|
+
let $t = B();
|
|
2001
|
+
$t.MouseWheelZoom = $t.MouseWheelZoom || { compose: function(a) {
|
|
2002
|
+
qi.indexOf(a) === -1 && (qi.push(a), _i(a, "afterGetContainer", da));
|
|
2003
|
+
} }, $t.MouseWheelZoom.compose($t.Chart);
|
|
2004
|
+
let P = B();
|
|
2005
|
+
P.Navigator = P.Navigator || qt, P.OrdinalAxis = P.OrdinalAxis || Se, P.RangeSelector = P.RangeSelector || Xt, P.Scrollbar = P.Scrollbar || at, P.stockChart = P.stockChart || Ai.stockChart, P.StockChart = P.StockChart || P.stockChart, P.extend(P.StockChart, Ai), As.compose(P.Series, P.Axis, P.Point), St.compose(P.Renderer), mt.compose(P.Series), P.Navigator.compose(P.Chart, P.Axis, P.Series), P.OrdinalAxis.compose(P.Axis, P.Series, P.Chart), P.RangeSelector.compose(P.Axis, P.Chart), P.Scrollbar.compose(P.Axis), P.StockChart.compose(P.Chart, P.Axis, P.Series, P.SVGRenderer);
|
|
2006
|
+
let pa = B();
|
|
2007
|
+
return Fe.default;
|
|
2008
|
+
})());
|
|
2009
|
+
}(Qt)), Qt.exports;
|
|
2010
|
+
}
|
|
2011
|
+
var Ji = fa();
|
|
2012
|
+
const ma = /* @__PURE__ */ ua(Ji), Aa = /* @__PURE__ */ ca({
|
|
2013
|
+
__proto__: null,
|
|
2014
|
+
default: ma
|
|
2015
|
+
}, [Ji]);
|
|
2016
|
+
export {
|
|
2017
|
+
Aa as s
|
|
2018
|
+
};
|