@usecapsule/core-components 3.1.2 → 3.2.0-dev.0
Sign up to get free protection for your applications and to get access to all the features.
- package/css/capsule-core.css +0 -26
- package/css/capsule-core.css.map +1 -1
- package/dist/capsule/capsule.esm.js +1 -1
- package/dist/capsule/capsule.esm.js.map +1 -1
- package/dist/capsule/{p-65c8f8cd.entry.js → p-1bb78dd3.entry.js} +2 -2
- package/dist/capsule/p-29340cea.entry.js +2 -0
- package/dist/capsule/p-29340cea.entry.js.map +1 -0
- package/dist/capsule/p-3fca138b.entry.js +2 -0
- package/dist/capsule/{p-62118adb.entry.js → p-6dcaee48.entry.js} +2 -2
- package/dist/capsule/{p-48bb5cfe.js → p-7dde3172.js} +1 -1
- package/dist/capsule/p-7dde3172.js.map +1 -0
- package/dist/capsule/{p-89a4e92e.entry.js → p-895001cf.entry.js} +2 -2
- package/dist/capsule/{p-edd0c1f9.entry.js → p-a6aaf3f4.entry.js} +2 -2
- package/dist/capsule/{p-b0a84b18.entry.js → p-b976b6f0.entry.js} +2 -2
- package/dist/capsule/p-c4220447.entry.js +29 -0
- package/dist/capsule/p-c4220447.entry.js.map +1 -0
- package/dist/cjs/capsule.cjs.js +3 -3
- package/dist/cjs/capsule.cjs.js.map +1 -1
- package/dist/cjs/{cpsl-alert_33.cjs.entry.js → cpsl-alert_34.cjs.entry.js} +2747 -2697
- package/dist/cjs/cpsl-alert_34.cjs.entry.js.map +1 -0
- package/dist/cjs/cpsl-animation.cjs.entry.js +1 -1
- package/dist/cjs/cpsl-col.cjs.entry.js +1 -1
- package/dist/cjs/cpsl-grid.cjs.entry.js +1 -1
- package/dist/cjs/cpsl-identicon.cjs.entry.js +62 -0
- package/dist/cjs/cpsl-identicon.cjs.entry.js.map +1 -0
- package/dist/cjs/cpsl-info-box.cjs.entry.js +2 -2
- package/dist/cjs/cpsl-modal-v2.cjs.entry.js +2 -2
- package/dist/cjs/cpsl-row.cjs.entry.js +2 -2
- package/dist/cjs/{index-15f80342.js → index-528f7428.js} +7 -3
- package/dist/cjs/index-528f7428.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/assets/icons/double-arc.svg +13 -0
- package/dist/collection/assets/icons/index.js +236 -234
- package/dist/collection/assets/icons/index.js.map +1 -1
- package/dist/collection/assets/icons/single-arc.svg +11 -0
- package/dist/collection/assets/images/index.js +2 -0
- package/dist/collection/assets/images/index.js.map +1 -0
- package/dist/collection/collection-manifest.json +4 -2
- package/dist/collection/components/cpsl-alert/cpsl-alert.js +1 -1
- package/dist/collection/components/cpsl-button/cpsl-button.stories.js +50 -0
- package/dist/collection/components/cpsl-button/cpsl-button.stories.js.map +1 -0
- package/dist/collection/components/cpsl-hero/cpsl-hero.css +245 -0
- package/dist/collection/components/cpsl-hero/cpsl-hero.js +52 -0
- package/dist/collection/components/cpsl-hero/cpsl-hero.js.map +1 -0
- package/dist/collection/components/cpsl-hero/cpsl-hero.stories.js +17 -0
- package/dist/collection/components/cpsl-hero/cpsl-hero.stories.js.map +1 -0
- package/dist/collection/components/cpsl-hero/test/cpsl-hero.e2e.js +29 -0
- package/dist/collection/components/cpsl-hero/test/cpsl-hero.e2e.js.map +1 -0
- package/dist/collection/components/cpsl-hero/test/cpsl-hero.spec.js +37 -0
- package/dist/collection/components/cpsl-hero/test/cpsl-hero.spec.js.map +1 -0
- package/dist/collection/components/cpsl-icon/cpsl-icon.js +2 -2
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.css +69 -0
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.js +100 -0
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.js.map +1 -0
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.stories.js +12 -0
- package/dist/collection/components/cpsl-identicon/cpsl-identicon.stories.js.map +1 -0
- package/dist/collection/components/cpsl-identicon/test/cpsl-identicon.e2e.js +29 -0
- package/dist/collection/components/cpsl-identicon/test/cpsl-identicon.e2e.js.map +1 -0
- package/dist/collection/components/cpsl-identicon/test/cpsl-identicon.spec.js +37 -0
- package/dist/collection/components/cpsl-identicon/test/cpsl-identicon.spec.js.map +1 -0
- package/dist/collection/components/cpsl-info-box/cpsl-info-box.js +1 -1
- package/dist/collection/components/cpsl-input/cpsl-input.js +5 -5
- package/dist/collection/components/cpsl-input/cpsl-input.js.map +1 -1
- package/dist/collection/components/cpsl-modal-v2/cpsl-modal-v2.js +1 -1
- package/dist/collection/components/cpsl-nav-button-group/cpsl-nav-button-group.js +1 -1
- package/dist/collection/components/cpsl-overlay/cpsl-overlay.js +1 -1
- package/dist/collection/components/cpsl-pagination/cpsl-pagination.js +1 -1
- package/dist/collection/components/cpsl-pill/cpsl-pill.js +1 -1
- package/dist/collection/components/cpsl-popover/cpsl-popover.js +2 -2
- package/dist/collection/components/cpsl-qr-code/cpsl-qr-code.js +1 -1
- package/dist/collection/components/cpsl-radio/cpsl-radio.js +1 -1
- package/dist/collection/components/cpsl-row/cpsl-row.js +1 -1
- package/dist/collection/components/cpsl-select/cpsl-select.js +1 -1
- package/dist/collection/components/cpsl-select-item/cpsl-select-item.js +1 -1
- package/dist/collection/components/cpsl-slide-button/cpsl-slide-button.js +3 -3
- package/dist/collection/components/cpsl-spinner/cpsl-spinner.css +26 -0
- package/dist/collection/components/cpsl-spinner/cpsl-spinner.js +2 -2
- package/dist/collection/components/cpsl-switch/cpsl-switch.js +1 -1
- package/dist/collection/components/cpsl-tab/cpsl-tab.js +1 -1
- package/dist/collection/components/cpsl-table/cpsl-table.js +1 -1
- package/dist/collection/components/cpsl-tabs/cpsl-tabs.js +1 -1
- package/dist/collection/components/cpsl-text/cpsl-text.js +1 -1
- package/dist/collection/components/cpsl-tile-button/cpsl-tile-button.js +2 -2
- package/dist/collection/interface.js.map +1 -1
- package/dist/esm/capsule.js +4 -4
- package/dist/esm/capsule.js.map +1 -1
- package/dist/esm/{cpsl-alert_33.entry.js → cpsl-alert_34.entry.js} +2747 -2698
- package/dist/esm/cpsl-alert_34.entry.js.map +1 -0
- package/dist/esm/cpsl-animation.entry.js +1 -1
- package/dist/esm/cpsl-col.entry.js +1 -1
- package/dist/esm/cpsl-grid.entry.js +1 -1
- package/dist/esm/cpsl-identicon.entry.js +58 -0
- package/dist/esm/cpsl-identicon.entry.js.map +1 -0
- package/dist/esm/cpsl-info-box.entry.js +2 -2
- package/dist/esm/cpsl-modal-v2.entry.js +2 -2
- package/dist/esm/cpsl-row.entry.js +2 -2
- package/dist/esm/{index-2c447f86.js → index-b188f201.js} +7 -3
- package/dist/esm/index-b188f201.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/scripts/buildAssets.js +90 -0
- package/dist/scripts/buildAssets.js.map +1 -0
- package/dist/types/Users/{taylorbosch/Documents/GitHub/Capsule/component-library/core/.stencil/scripts/buildIconLibrary.d.ts → briancorbin/Documents/Programming/Capsule/component-library/core/.stencil/scripts/buildAssets.d.ts} +3 -0
- package/dist/types/assets/icons/index.d.ts +91 -89
- package/dist/types/assets/images/index.d.ts +5 -0
- package/dist/types/components/cpsl-button/cpsl-button.stories.d.ts +15 -0
- package/dist/types/components/cpsl-hero/cpsl-hero.d.ts +4 -0
- package/dist/types/components/cpsl-hero/cpsl-hero.stories.d.ts +13 -0
- package/dist/types/components/cpsl-identicon/cpsl-identicon.d.ts +5 -0
- package/dist/types/components/cpsl-identicon/cpsl-identicon.stories.d.ts +10 -0
- package/dist/types/components.d.ts +44 -0
- package/dist/types/interface.d.ts +2 -0
- package/package.json +20 -5
- package/dist/capsule/p-48bb5cfe.js.map +0 -1
- package/dist/capsule/p-8a920cb7.entry.js +0 -2
- package/dist/capsule/p-efd2de80.entry.js +0 -29
- package/dist/capsule/p-efd2de80.entry.js.map +0 -1
- package/dist/cjs/cpsl-alert_33.cjs.entry.js.map +0 -1
- package/dist/cjs/index-15f80342.js.map +0 -1
- package/dist/esm/cpsl-alert_33.entry.js.map +0 -1
- package/dist/esm/index-2c447f86.js.map +0 -1
- package/dist/scripts/buildIconLibrary.js +0 -33
- package/dist/scripts/buildIconLibrary.js.map +0 -1
- /package/dist/capsule/{p-65c8f8cd.entry.js.map → p-1bb78dd3.entry.js.map} +0 -0
- /package/dist/capsule/{p-8a920cb7.entry.js.map → p-3fca138b.entry.js.map} +0 -0
- /package/dist/capsule/{p-62118adb.entry.js.map → p-6dcaee48.entry.js.map} +0 -0
- /package/dist/capsule/{p-89a4e92e.entry.js.map → p-895001cf.entry.js.map} +0 -0
- /package/dist/capsule/{p-edd0c1f9.entry.js.map → p-a6aaf3f4.entry.js.map} +0 -0
- /package/dist/capsule/{p-b0a84b18.entry.js.map → p-b976b6f0.entry.js.map} +0 -0
- /package/dist/collection/assets/icons/{AD.svg → flags/AD.svg} +0 -0
- /package/dist/collection/assets/icons/{AE.svg → flags/AE.svg} +0 -0
- /package/dist/collection/assets/icons/{AF.svg → flags/AF.svg} +0 -0
- /package/dist/collection/assets/icons/{AG.svg → flags/AG.svg} +0 -0
- /package/dist/collection/assets/icons/{AI.svg → flags/AI.svg} +0 -0
- /package/dist/collection/assets/icons/{AL.svg → flags/AL.svg} +0 -0
- /package/dist/collection/assets/icons/{AM.svg → flags/AM.svg} +0 -0
- /package/dist/collection/assets/icons/{AO.svg → flags/AO.svg} +0 -0
- /package/dist/collection/assets/icons/{AR.svg → flags/AR.svg} +0 -0
- /package/dist/collection/assets/icons/{AS.svg → flags/AS.svg} +0 -0
- /package/dist/collection/assets/icons/{AT.svg → flags/AT.svg} +0 -0
- /package/dist/collection/assets/icons/{AU.svg → flags/AU.svg} +0 -0
- /package/dist/collection/assets/icons/{AW.svg → flags/AW.svg} +0 -0
- /package/dist/collection/assets/icons/{AX.svg → flags/AX.svg} +0 -0
- /package/dist/collection/assets/icons/{AZ.svg → flags/AZ.svg} +0 -0
- /package/dist/collection/assets/icons/{BA.svg → flags/BA.svg} +0 -0
- /package/dist/collection/assets/icons/{BB.svg → flags/BB.svg} +0 -0
- /package/dist/collection/assets/icons/{BD.svg → flags/BD.svg} +0 -0
- /package/dist/collection/assets/icons/{BE.svg → flags/BE.svg} +0 -0
- /package/dist/collection/assets/icons/{BF.svg → flags/BF.svg} +0 -0
- /package/dist/collection/assets/icons/{BG.svg → flags/BG.svg} +0 -0
- /package/dist/collection/assets/icons/{BH.svg → flags/BH.svg} +0 -0
- /package/dist/collection/assets/icons/{BI.svg → flags/BI.svg} +0 -0
- /package/dist/collection/assets/icons/{BJ.svg → flags/BJ.svg} +0 -0
- /package/dist/collection/assets/icons/{BL.svg → flags/BL.svg} +0 -0
- /package/dist/collection/assets/icons/{BM.svg → flags/BM.svg} +0 -0
- /package/dist/collection/assets/icons/{BN.svg → flags/BN.svg} +0 -0
- /package/dist/collection/assets/icons/{BO.svg → flags/BO.svg} +0 -0
- /package/dist/collection/assets/icons/{BQ.svg → flags/BQ.svg} +0 -0
- /package/dist/collection/assets/icons/{BQ2.svg → flags/BQ2.svg} +0 -0
- /package/dist/collection/assets/icons/{BQ3.svg → flags/BQ3.svg} +0 -0
- /package/dist/collection/assets/icons/{BR.svg → flags/BR.svg} +0 -0
- /package/dist/collection/assets/icons/{BS.svg → flags/BS.svg} +0 -0
- /package/dist/collection/assets/icons/{BT.svg → flags/BT.svg} +0 -0
- /package/dist/collection/assets/icons/{BW.svg → flags/BW.svg} +0 -0
- /package/dist/collection/assets/icons/{BY.svg → flags/BY.svg} +0 -0
- /package/dist/collection/assets/icons/{BZ.svg → flags/BZ.svg} +0 -0
- /package/dist/collection/assets/icons/{CA.svg → flags/CA.svg} +0 -0
- /package/dist/collection/assets/icons/{CC.svg → flags/CC.svg} +0 -0
- /package/dist/collection/assets/icons/{CD.svg → flags/CD.svg} +0 -0
- /package/dist/collection/assets/icons/{CD2.svg → flags/CD2.svg} +0 -0
- /package/dist/collection/assets/icons/{CF.svg → flags/CF.svg} +0 -0
- /package/dist/collection/assets/icons/{CH.svg → flags/CH.svg} +0 -0
- /package/dist/collection/assets/icons/{CK.svg → flags/CK.svg} +0 -0
- /package/dist/collection/assets/icons/{CL.svg → flags/CL.svg} +0 -0
- /package/dist/collection/assets/icons/{CM.svg → flags/CM.svg} +0 -0
- /package/dist/collection/assets/icons/{CN.svg → flags/CN.svg} +0 -0
- /package/dist/collection/assets/icons/{CO.svg → flags/CO.svg} +0 -0
- /package/dist/collection/assets/icons/{CR.svg → flags/CR.svg} +0 -0
- /package/dist/collection/assets/icons/{CU.svg → flags/CU.svg} +0 -0
- /package/dist/collection/assets/icons/{CW.svg → flags/CW.svg} +0 -0
- /package/dist/collection/assets/icons/{CX.svg → flags/CX.svg} +0 -0
- /package/dist/collection/assets/icons/{CY.svg → flags/CY.svg} +0 -0
- /package/dist/collection/assets/icons/{CZ.svg → flags/CZ.svg} +0 -0
- /package/dist/collection/assets/icons/{DE.svg → flags/DE.svg} +0 -0
- /package/dist/collection/assets/icons/{DJ.svg → flags/DJ.svg} +0 -0
- /package/dist/collection/assets/icons/{DK.svg → flags/DK.svg} +0 -0
- /package/dist/collection/assets/icons/{DM.svg → flags/DM.svg} +0 -0
- /package/dist/collection/assets/icons/{DO.svg → flags/DO.svg} +0 -0
- /package/dist/collection/assets/icons/{DS.svg → flags/DS.svg} +0 -0
- /package/dist/collection/assets/icons/{DZ.svg → flags/DZ.svg} +0 -0
- /package/dist/collection/assets/icons/{EC.svg → flags/EC.svg} +0 -0
- /package/dist/collection/assets/icons/{EE.svg → flags/EE.svg} +0 -0
- /package/dist/collection/assets/icons/{EG.svg → flags/EG.svg} +0 -0
- /package/dist/collection/assets/icons/{EH.svg → flags/EH.svg} +0 -0
- /package/dist/collection/assets/icons/{ER.svg → flags/ER.svg} +0 -0
- /package/dist/collection/assets/icons/{ES.svg → flags/ES.svg} +0 -0
- /package/dist/collection/assets/icons/{ET.svg → flags/ET.svg} +0 -0
- /package/dist/collection/assets/icons/{FI.svg → flags/FI.svg} +0 -0
- /package/dist/collection/assets/icons/{FJ.svg → flags/FJ.svg} +0 -0
- /package/dist/collection/assets/icons/{FK.svg → flags/FK.svg} +0 -0
- /package/dist/collection/assets/icons/{FM.svg → flags/FM.svg} +0 -0
- /package/dist/collection/assets/icons/{FO.svg → flags/FO.svg} +0 -0
- /package/dist/collection/assets/icons/{FR.svg → flags/FR.svg} +0 -0
- /package/dist/collection/assets/icons/{GA.svg → flags/GA.svg} +0 -0
- /package/dist/collection/assets/icons/{GB-2.svg → flags/GB-2.svg} +0 -0
- /package/dist/collection/assets/icons/{GB.svg → flags/GB.svg} +0 -0
- /package/dist/collection/assets/icons/{GD.svg → flags/GD.svg} +0 -0
- /package/dist/collection/assets/icons/{GE.svg → flags/GE.svg} +0 -0
- /package/dist/collection/assets/icons/{GG.svg → flags/GG.svg} +0 -0
- /package/dist/collection/assets/icons/{GH.svg → flags/GH.svg} +0 -0
- /package/dist/collection/assets/icons/{GI.svg → flags/GI.svg} +0 -0
- /package/dist/collection/assets/icons/{GL.svg → flags/GL.svg} +0 -0
- /package/dist/collection/assets/icons/{GM.svg → flags/GM.svg} +0 -0
- /package/dist/collection/assets/icons/{GN.svg → flags/GN.svg} +0 -0
- /package/dist/collection/assets/icons/{GQ.svg → flags/GQ.svg} +0 -0
- /package/dist/collection/assets/icons/{GR.svg → flags/GR.svg} +0 -0
- /package/dist/collection/assets/icons/{GT.svg → flags/GT.svg} +0 -0
- /package/dist/collection/assets/icons/{GU.svg → flags/GU.svg} +0 -0
- /package/dist/collection/assets/icons/{GW.svg → flags/GW.svg} +0 -0
- /package/dist/collection/assets/icons/{GY.svg → flags/GY.svg} +0 -0
- /package/dist/collection/assets/icons/{HK.svg → flags/HK.svg} +0 -0
- /package/dist/collection/assets/icons/{HN.svg → flags/HN.svg} +0 -0
- /package/dist/collection/assets/icons/{HR.svg → flags/HR.svg} +0 -0
- /package/dist/collection/assets/icons/{HT.svg → flags/HT.svg} +0 -0
- /package/dist/collection/assets/icons/{HU.svg → flags/HU.svg} +0 -0
- /package/dist/collection/assets/icons/{ID.svg → flags/ID.svg} +0 -0
- /package/dist/collection/assets/icons/{IE.svg → flags/IE.svg} +0 -0
- /package/dist/collection/assets/icons/{IL.svg → flags/IL.svg} +0 -0
- /package/dist/collection/assets/icons/{IM.svg → flags/IM.svg} +0 -0
- /package/dist/collection/assets/icons/{IN.svg → flags/IN.svg} +0 -0
- /package/dist/collection/assets/icons/{IO.svg → flags/IO.svg} +0 -0
- /package/dist/collection/assets/icons/{IQ.svg → flags/IQ.svg} +0 -0
- /package/dist/collection/assets/icons/{IR.svg → flags/IR.svg} +0 -0
- /package/dist/collection/assets/icons/{IS.svg → flags/IS.svg} +0 -0
- /package/dist/collection/assets/icons/{IT.svg → flags/IT.svg} +0 -0
- /package/dist/collection/assets/icons/{JE.svg → flags/JE.svg} +0 -0
- /package/dist/collection/assets/icons/{JM.svg → flags/JM.svg} +0 -0
- /package/dist/collection/assets/icons/{JO.svg → flags/JO.svg} +0 -0
- /package/dist/collection/assets/icons/{JP.svg → flags/JP.svg} +0 -0
- /package/dist/collection/assets/icons/{KE.svg → flags/KE.svg} +0 -0
- /package/dist/collection/assets/icons/{KG.svg → flags/KG.svg} +0 -0
- /package/dist/collection/assets/icons/{KH.svg → flags/KH.svg} +0 -0
- /package/dist/collection/assets/icons/{KI.svg → flags/KI.svg} +0 -0
- /package/dist/collection/assets/icons/{KM.svg → flags/KM.svg} +0 -0
- /package/dist/collection/assets/icons/{KN.svg → flags/KN.svg} +0 -0
- /package/dist/collection/assets/icons/{KP.svg → flags/KP.svg} +0 -0
- /package/dist/collection/assets/icons/{KR.svg → flags/KR.svg} +0 -0
- /package/dist/collection/assets/icons/{KW.svg → flags/KW.svg} +0 -0
- /package/dist/collection/assets/icons/{KY.svg → flags/KY.svg} +0 -0
- /package/dist/collection/assets/icons/{KZ.svg → flags/KZ.svg} +0 -0
- /package/dist/collection/assets/icons/{LA.svg → flags/LA.svg} +0 -0
- /package/dist/collection/assets/icons/{LB.svg → flags/LB.svg} +0 -0
- /package/dist/collection/assets/icons/{LC.svg → flags/LC.svg} +0 -0
- /package/dist/collection/assets/icons/{LI.svg → flags/LI.svg} +0 -0
- /package/dist/collection/assets/icons/{LK.svg → flags/LK.svg} +0 -0
- /package/dist/collection/assets/icons/{LR.svg → flags/LR.svg} +0 -0
- /package/dist/collection/assets/icons/{LS.svg → flags/LS.svg} +0 -0
- /package/dist/collection/assets/icons/{LT.svg → flags/LT.svg} +0 -0
- /package/dist/collection/assets/icons/{LU.svg → flags/LU.svg} +0 -0
- /package/dist/collection/assets/icons/{LV.svg → flags/LV.svg} +0 -0
- /package/dist/collection/assets/icons/{LY.svg → flags/LY.svg} +0 -0
- /package/dist/collection/assets/icons/{MA.svg → flags/MA.svg} +0 -0
- /package/dist/collection/assets/icons/{MC.svg → flags/MC.svg} +0 -0
- /package/dist/collection/assets/icons/{MD.svg → flags/MD.svg} +0 -0
- /package/dist/collection/assets/icons/{ME.svg → flags/ME.svg} +0 -0
- /package/dist/collection/assets/icons/{MG.svg → flags/MG.svg} +0 -0
- /package/dist/collection/assets/icons/{MH.svg → flags/MH.svg} +0 -0
- /package/dist/collection/assets/icons/{MK.svg → flags/MK.svg} +0 -0
- /package/dist/collection/assets/icons/{ML.svg → flags/ML.svg} +0 -0
- /package/dist/collection/assets/icons/{MM.svg → flags/MM.svg} +0 -0
- /package/dist/collection/assets/icons/{MN.svg → flags/MN.svg} +0 -0
- /package/dist/collection/assets/icons/{MO.svg → flags/MO.svg} +0 -0
- /package/dist/collection/assets/icons/{MP.svg → flags/MP.svg} +0 -0
- /package/dist/collection/assets/icons/{MQ.svg → flags/MQ.svg} +0 -0
- /package/dist/collection/assets/icons/{MR.svg → flags/MR.svg} +0 -0
- /package/dist/collection/assets/icons/{MS.svg → flags/MS.svg} +0 -0
- /package/dist/collection/assets/icons/{MT.svg → flags/MT.svg} +0 -0
- /package/dist/collection/assets/icons/{MU.svg → flags/MU.svg} +0 -0
- /package/dist/collection/assets/icons/{MV.svg → flags/MV.svg} +0 -0
- /package/dist/collection/assets/icons/{MW.svg → flags/MW.svg} +0 -0
- /package/dist/collection/assets/icons/{MX.svg → flags/MX.svg} +0 -0
- /package/dist/collection/assets/icons/{MY.svg → flags/MY.svg} +0 -0
- /package/dist/collection/assets/icons/{MZ.svg → flags/MZ.svg} +0 -0
- /package/dist/collection/assets/icons/{NA.svg → flags/NA.svg} +0 -0
- /package/dist/collection/assets/icons/{NE.svg → flags/NE.svg} +0 -0
- /package/dist/collection/assets/icons/{NF.svg → flags/NF.svg} +0 -0
- /package/dist/collection/assets/icons/{NG.svg → flags/NG.svg} +0 -0
- /package/dist/collection/assets/icons/{NI.svg → flags/NI.svg} +0 -0
- /package/dist/collection/assets/icons/{NL.svg → flags/NL.svg} +0 -0
- /package/dist/collection/assets/icons/{NO.svg → flags/NO.svg} +0 -0
- /package/dist/collection/assets/icons/{NP.svg → flags/NP.svg} +0 -0
- /package/dist/collection/assets/icons/{NR.svg → flags/NR.svg} +0 -0
- /package/dist/collection/assets/icons/{NU.svg → flags/NU.svg} +0 -0
- /package/dist/collection/assets/icons/{NZ.svg → flags/NZ.svg} +0 -0
- /package/dist/collection/assets/icons/{OM.svg → flags/OM.svg} +0 -0
- /package/dist/collection/assets/icons/{PA.svg → flags/PA.svg} +0 -0
- /package/dist/collection/assets/icons/{PE.svg → flags/PE.svg} +0 -0
- /package/dist/collection/assets/icons/{PF.svg → flags/PF.svg} +0 -0
- /package/dist/collection/assets/icons/{PG.svg → flags/PG.svg} +0 -0
- /package/dist/collection/assets/icons/{PH.svg → flags/PH.svg} +0 -0
- /package/dist/collection/assets/icons/{PK.svg → flags/PK.svg} +0 -0
- /package/dist/collection/assets/icons/{PL.svg → flags/PL.svg} +0 -0
- /package/dist/collection/assets/icons/{PN.svg → flags/PN.svg} +0 -0
- /package/dist/collection/assets/icons/{PR.svg → flags/PR.svg} +0 -0
- /package/dist/collection/assets/icons/{PS.svg → flags/PS.svg} +0 -0
- /package/dist/collection/assets/icons/{PT.svg → flags/PT.svg} +0 -0
- /package/dist/collection/assets/icons/{PW.svg → flags/PW.svg} +0 -0
- /package/dist/collection/assets/icons/{PY.svg → flags/PY.svg} +0 -0
- /package/dist/collection/assets/icons/{QA.svg → flags/QA.svg} +0 -0
- /package/dist/collection/assets/icons/{RO.svg → flags/RO.svg} +0 -0
- /package/dist/collection/assets/icons/{RS.svg → flags/RS.svg} +0 -0
- /package/dist/collection/assets/icons/{RU.svg → flags/RU.svg} +0 -0
- /package/dist/collection/assets/icons/{RW.svg → flags/RW.svg} +0 -0
- /package/dist/collection/assets/icons/{SA.svg → flags/SA.svg} +0 -0
- /package/dist/collection/assets/icons/{SB.svg → flags/SB.svg} +0 -0
- /package/dist/collection/assets/icons/{SC.svg → flags/SC.svg} +0 -0
- /package/dist/collection/assets/icons/{SE.svg → flags/SE.svg} +0 -0
- /package/dist/collection/assets/icons/{SG.svg → flags/SG.svg} +0 -0
- /package/dist/collection/assets/icons/{SI.svg → flags/SI.svg} +0 -0
- /package/dist/collection/assets/icons/{SK.svg → flags/SK.svg} +0 -0
- /package/dist/collection/assets/icons/{SL.svg → flags/SL.svg} +0 -0
- /package/dist/collection/assets/icons/{SM.svg → flags/SM.svg} +0 -0
- /package/dist/collection/assets/icons/{SN.svg → flags/SN.svg} +0 -0
- /package/dist/collection/assets/icons/{SO.svg → flags/SO.svg} +0 -0
- /package/dist/collection/assets/icons/{SR.svg → flags/SR.svg} +0 -0
- /package/dist/collection/assets/icons/{SS.svg → flags/SS.svg} +0 -0
- /package/dist/collection/assets/icons/{ST.svg → flags/ST.svg} +0 -0
- /package/dist/collection/assets/icons/{SV.svg → flags/SV.svg} +0 -0
- /package/dist/collection/assets/icons/{SX.svg → flags/SX.svg} +0 -0
- /package/dist/collection/assets/icons/{SY.svg → flags/SY.svg} +0 -0
- /package/dist/collection/assets/icons/{SZ.svg → flags/SZ.svg} +0 -0
- /package/dist/collection/assets/icons/{TC.svg → flags/TC.svg} +0 -0
- /package/dist/collection/assets/icons/{TD.svg → flags/TD.svg} +0 -0
- /package/dist/collection/assets/icons/{TG.svg → flags/TG.svg} +0 -0
- /package/dist/collection/assets/icons/{TH.svg → flags/TH.svg} +0 -0
- /package/dist/collection/assets/icons/{TJ.svg → flags/TJ.svg} +0 -0
- /package/dist/collection/assets/icons/{TK.svg → flags/TK.svg} +0 -0
- /package/dist/collection/assets/icons/{TL.svg → flags/TL.svg} +0 -0
- /package/dist/collection/assets/icons/{TM.svg → flags/TM.svg} +0 -0
- /package/dist/collection/assets/icons/{TN.svg → flags/TN.svg} +0 -0
- /package/dist/collection/assets/icons/{TO.svg → flags/TO.svg} +0 -0
- /package/dist/collection/assets/icons/{TR.svg → flags/TR.svg} +0 -0
- /package/dist/collection/assets/icons/{TT.svg → flags/TT.svg} +0 -0
- /package/dist/collection/assets/icons/{TV.svg → flags/TV.svg} +0 -0
- /package/dist/collection/assets/icons/{TW.svg → flags/TW.svg} +0 -0
- /package/dist/collection/assets/icons/{TZ.svg → flags/TZ.svg} +0 -0
- /package/dist/collection/assets/icons/{UA.svg → flags/UA.svg} +0 -0
- /package/dist/collection/assets/icons/{UG.svg → flags/UG.svg} +0 -0
- /package/dist/collection/assets/icons/{US.svg → flags/US.svg} +0 -0
- /package/dist/collection/assets/icons/{UY.svg → flags/UY.svg} +0 -0
- /package/dist/collection/assets/icons/{UZ.svg → flags/UZ.svg} +0 -0
- /package/dist/collection/assets/icons/{VC.svg → flags/VC.svg} +0 -0
- /package/dist/collection/assets/icons/{VE.svg → flags/VE.svg} +0 -0
- /package/dist/collection/assets/icons/{VG.svg → flags/VG.svg} +0 -0
- /package/dist/collection/assets/icons/{VI.svg → flags/VI.svg} +0 -0
- /package/dist/collection/assets/icons/{VN.svg → flags/VN.svg} +0 -0
- /package/dist/collection/assets/icons/{VU.svg → flags/VU.svg} +0 -0
- /package/dist/collection/assets/icons/{WS.svg → flags/WS.svg} +0 -0
- /package/dist/collection/assets/icons/{YE.svg → flags/YE.svg} +0 -0
- /package/dist/collection/assets/icons/{ZA.svg → flags/ZA.svg} +0 -0
- /package/dist/collection/assets/icons/{ZM.svg → flags/ZM.svg} +0 -0
- /package/dist/collection/assets/icons/{ZW.svg → flags/ZW.svg} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"cpsl-alert.cpsl-app-bar.cpsl-avatar.cpsl-button.cpsl-button-group.cpsl-card.cpsl-checkbox.cpsl-code-input.cpsl-divider.cpsl-drawer.cpsl-dropdown.cpsl-file-upload.cpsl-hero.cpsl-icon.cpsl-input.cpsl-modal.cpsl-nav-button-group.cpsl-overlay.cpsl-pagination.cpsl-pill.cpsl-popover.cpsl-progress-indicator.cpsl-qr-code.cpsl-radio.cpsl-select.cpsl-select-item.cpsl-slide-button.cpsl-spinner.cpsl-switch.cpsl-tab.cpsl-table.cpsl-tabs.cpsl-text.cpsl-tile-button.entry.js","mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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E,WAAW,EAAC,MAAM,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,EAAE,MAAM,EAAC,YAAY,EAAE,YAAY,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,EAAE,CAAC,EAAC,YAAY,EAAE,YAAY,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,GAAG,EAAE,GAAG,EAAC,GAAG,EAAE,GAAG,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,GAAG,EAAE,GAAG,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,GAAG,EAAE,GAAG,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAA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C,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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AAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,K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CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,MAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,MAAK,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,MAAK,OAAO,CAAC,CAAC,CAAC,KAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,MAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CA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AC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EA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AAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,C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AC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CA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,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC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,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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Y,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAA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","names":["AlertCircle","Image","inputIds","_assertThisInitialized","_inheritsLoose","_reverting","_context","_bigNum","_isFunction","_isUndefined","_isObject","_windowExists","_isArray","_win","_coreInitted","_doc","gsap","_emptyFunc","_round","_setDefaults","_docElement","_tempDiv","_RAD2DEG","_transformProp","_transformOriginProp","_getStyleSaver","_supports3D","_createElement","_initCore","_body","_identityMatrix","_getDocScrollTop","_getDocScrollLeft","_isFixed"],"sources":["src/components/cpsl-alert/cpsl-alert.scss?tag=cpsl-alert&encapsulation=shadow","src/components/cpsl-alert/cpsl-alert.tsx","src/components/cpsl-app-bar/cpsl-app-bar.scss?tag=cpsl-app-bar&encapsulation=shadow","src/components/cpsl-app-bar/cpsl-app-bar.tsx","src/components/cpsl-avatar/cpsl-avatar.scss?tag=cpsl-avatar&encapsulation=shadow","src/components/cpsl-avatar/cpsl-avatar.tsx","src/components/cpsl-button/cpsl-button.scss?tag=cpsl-button&encapsulation=shadow","src/components/cpsl-button/cpsl-button.tsx","src/components/cpsl-button-group/cpsl-button-group.scss?tag=cpsl-button-group&encapsulation=shadow","src/components/cpsl-button-group/cpsl-button-group.tsx","src/components/cpsl-card/cpsl-card.scss?tag=cpsl-card&encapsulation=shadow","src/components/cpsl-card/cpsl-card.tsx","src/components/cpsl-checkbox/cpsl-checkbox.scss?tag=cpsl-checkbox&encapsulation=shadow","src/components/cpsl-checkbox/cpsl-checkbox.tsx","src/components/cpsl-code-input/cpsl-code-input.scss?tag=cpsl-code-input&encapsulation=shadow","src/components/cpsl-code-input/cpsl-code-input.tsx","src/components/cpsl-divider/cpsl-divider.scss?tag=cpsl-divider&encapsulation=shadow","src/components/cpsl-divider/cpsl-divider.tsx","src/components/cpsl-drawer/cpsl-drawer.scss?tag=cpsl-drawer&encapsulation=shadow","src/components/cpsl-drawer/cpsl-drawer.tsx","src/assets/icons/index.ts","src/components/cpsl-dropdown/cpsl-dropdown.scss?tag=cpsl-dropdown&encapsulation=shadow","src/components/cpsl-dropdown/cpsl-dropdown.tsx","src/components/cpsl-file-upload/cpsl-file-upload.scss?tag=cpsl-file-upload&encapsulation=shadow","src/components/cpsl-file-upload/cpsl-file-upload.tsx","src/assets/images/index.ts","src/components/cpsl-hero/cpsl-hero.scss?tag=cpsl-hero&encapsulation=shadow","src/components/cpsl-hero/cpsl-hero.tsx","src/components/cpsl-icon/cpsl-icon.scss?tag=cpsl-icon&encapsulation=shadow","src/components/cpsl-icon/cpsl-icon.tsx","src/components/cpsl-input/cpsl-input.scss?tag=cpsl-input&encapsulation=shadow","src/components/cpsl-input/cpsl-input.tsx","../node_modules/gsap/gsap-core.js","../node_modules/gsap/CSSPlugin.js","../node_modules/gsap/index.js","../node_modules/gsap/utils/matrix.js","../node_modules/gsap/Draggable.js","src/components/cpsl-modal/cpsl-modal.scss?tag=cpsl-modal&encapsulation=shadow","src/components/cpsl-modal/cpsl-modal.tsx","src/components/cpsl-nav-button-group/cpsl-nav-button-group.scss?tag=cpsl-nav-button-group&encapsulation=shadow","src/components/cpsl-nav-button-group/cpsl-nav-button-group.tsx","src/components/cpsl-overlay/cpsl-overlay.scss?tag=cpsl-overlay&encapsulation=shadow","src/components/cpsl-overlay/cpsl-overlay.tsx","src/components/cpsl-pagination/cpsl-pagination.scss?tag=cpsl-pagination&encapsulation=shadow","src/components/cpsl-pagination/cpsl-pagination.tsx","src/components/cpsl-pill/cpsl-pill.scss?tag=cpsl-pill&encapsulation=shadow","src/components/cpsl-pill/cpsl-pill.tsx","src/components/cpsl-popover/cpsl-popover.scss?tag=cpsl-popover&encapsulation=shadow","src/components/cpsl-popover/cpsl-popover.tsx","src/components/cpsl-progress-indicator/cpsl-progress-indicator.scss?tag=cpsl-progress-indicator&encapsulation=shadow","src/components/cpsl-progress-indicator/cpsl-progress-indicator.tsx","../node_modules/qr-code-styling/lib/qr-code-styling.js","src/components/cpsl-qr-code/cpsl-qr-code.scss?tag=cpsl-qr-code&encapsulation=shadow","src/components/cpsl-qr-code/cpsl-qr-code.tsx","src/components/cpsl-radio/cpsl-radio.scss?tag=cpsl-radio&encapsulation=shadow","src/components/cpsl-radio/cpsl-radio.tsx","src/components/cpsl-select/cpsl-select.scss?tag=cpsl-select&encapsulation=shadow","src/components/cpsl-select/cpsl-select.tsx","src/components/cpsl-select-item/cpsl-select-item.scss?tag=cpsl-select-item&encapsulation=shadow","src/components/cpsl-select-item/cpsl-select-item.tsx","src/components/cpsl-slide-button/cpsl-slide-button.scss?tag=cpsl-slide-button&encapsulation=shadow","src/components/cpsl-slide-button/cpsl-slide-button.tsx","src/components/cpsl-spinner/cpsl-spinner.scss?tag=cpsl-spinner&encapsulation=shadow","src/components/cpsl-spinner/cpsl-spinner.tsx","src/components/cpsl-switch/cpsl-switch.scss?tag=cpsl-switch&encapsulation=shadow","src/components/cpsl-switch/cpsl-switch.tsx","src/components/cpsl-tab/cpsl-tab.scss?tag=cpsl-tab&encapsulation=shadow","src/components/cpsl-tab/cpsl-tab.tsx","src/components/cpsl-table/cpsl-table.scss?tag=cpsl-table&encapsulation=shadow","src/components/cpsl-table/cpsl-table.tsx","src/components/cpsl-tabs/cpsl-tabs.scss?tag=cpsl-tabs&encapsulation=shadow","src/components/cpsl-tabs/cpsl-tabs.tsx","src/components/cpsl-text/cpsl-text.scss?tag=cpsl-text&encapsulation=shadow","src/components/cpsl-text/cpsl-text.tsx","src/components/cpsl-tile-button/cpsl-tile-button.scss?tag=cpsl-tile-button&encapsulation=shadow","src/components/cpsl-tile-button/cpsl-tile-button.tsx"],"sourcesContent":["@import '../../themes/capsule.globals';\n\n:host {\n --container-gap: 8px;\n\n --container-padding-top: 14px;\n --container-padding-bottom: 14px;\n --container-padding-start: 16px;\n --container-padding-end: 16px;\n\n --container-font-size: var(--cpsl-font-size-body-m);\n\n --container-border-width: 1px;\n --container-border-radius: var(--cpsl-border-radius-alert);\n\n --container-background-color: var(--cpsl-color-background-0);\n --container-color: var(--cpsl-color-text-primary);\n --container-icon-color: var(--container-color);\n\n display: inline-block;\n font-family: $font-family-base;\n}\n\n:host(.error) {\n --container-border-color: var(--cpsl-color-utility-red);\n}\n\n:host(.warning) {\n --container-border-color: var(--cpsl-color-utility-yellow);\n}\n\n:host(.success) {\n --container-border-color: var(--cpsl-color-utility-green);\n}\n\n:host {\n cpsl-icon {\n --icon-color: var(--container-icon-color);\n --height: 20px;\n --width: 20px;\n }\n}\n\n.alert-container {\n @include border-radius(var(--container-border-radius));\n @include padding(var(--container-padding-top), var(--container-padding-end), var(--container-padding-bottom), var(--container-padding-start));\n\n font-size: var(--container-font-size);\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--container-gap);\n\n border-style: solid;\n border-width: var(--container-border-width);\n border-color: var(--container-border-color);\n\n background-color: var(--container-background-color);\n color: var(--container-color);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { IconType } from '../../interface';\n\n@Component({\n tag: 'cpsl-alert',\n styleUrl: 'cpsl-alert.scss',\n shadow: true,\n})\nexport class CpslAlert {\n /**\n * The name of the icon to show.\n */\n @Prop() icon?: IconType;\n\n /**\n * The variant of alert.\n * Options are: `\"error\"` | `\"warning\"` | `\"success\"` | `\"custom\"`\n * Default is: `\"error\"`.\n */\n @Prop() variant?: 'error' | 'warning' | 'success' | 'custom' = 'error';\n\n private get iconType(): IconType | undefined {\n if (Boolean(this.icon)) {\n this.icon;\n }\n\n switch (this.variant) {\n case 'custom': {\n return undefined;\n }\n case 'success': {\n return 'checkCircle';\n }\n case 'warning': {\n return 'alertCircle';\n }\n case 'error':\n default: {\n return 'alertCircle';\n }\n }\n }\n\n render() {\n return (\n <Host class={{ error: this.variant === 'error', warning: this.variant === 'warning', success: this.variant === 'success' }}>\n <div class=\"alert-container\">\n {this.iconType && <cpsl-icon icon={this.iconType} />}\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","@use 'sass:map';\n@import '../../themes/capsule.globals';\n\n:host {\n display: block;\n\n position: relative;\n top: 0;\n width: 100%;\n z-index: map.get($z-indices, 'app-bar');\n}\n\n.container {\n display: flex;\n width: 100%;\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-app-bar',\n styleUrl: 'cpsl-app-bar.scss',\n shadow: true,\n})\nexport class CpslAppBar {\n /**\n * Height of the app bar.\n */\n @Prop() height: number;\n\n /**\n * The position of the drawer.\n * Default is `fixed`.\n */\n @Prop() position?: 'fixed' | 'static' = 'fixed';\n\n /**\n * Override z-index.\n */\n @Prop() zIndexOverride?: number;\n\n render() {\n return (\n <Host\n style={{\n // position: this.position,\n height: `${this.height}px`,\n ...(Boolean(this.zIndexOverride) ? { zIndex: `${this.zIndexOverride}` } : {}),\n }}\n >\n <div\n class=\"container\"\n part=\"container\"\n style={{\n position: this.position,\n height: `${this.height}px`,\n }}\n >\n <slot></slot>\n </div>\n {this.position === 'fixed' && (\n <div\n style={{\n height: `${this.height}px`,\n }}\n />\n )}\n </Host>\n );\n }\n}\n",":host {\n --container-border-color: var(--cpsl-color-avatar-border);\n --container-border-width: 1px;\n --container-border-radius: var(--cpsl-border-radius-avatar);\n --container-background-color: var(--cpsl-color-avatar-surface);\n --container-padding: 4px;\n --container-height: 40px;\n --container-width: 40px;\n\n display: block;\n height: 100%;\n width: 100%;\n}\n\nspan {\n display: inline-block;\n height: var(--container-height);\n width: var(--container-width);\n border: var(--container-border-width) solid var(--container-border-color);\n border-radius: var(--container-border-radius);\n padding: var(--container-padding);\n background-color: var(--container-background-color);\n\n &.round {\n border-radius: 1000px;\n }\n}\n\nimg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-avatar',\n styleUrl: 'cpsl-avatar.scss',\n shadow: true,\n})\nexport class CpslAvatar {\n /**\n * The alternate text for the avatar image.\n */\n @Prop() alt?: string;\n\n /**\n * The source of the avatar image.\n */\n @Prop() src: string;\n\n /**\n * The variant of the avatar.\n * Options are: `\"round\"`, `\"square\".\n * Default is: `\"square\"`.\n */\n @Prop() variant?: 'round' | 'square' = 'square';\n\n render() {\n return (\n <Host>\n <span class={{ round: this.variant === 'round' }}>\n <img src={this.src} alt={this.alt ?? 'avatar'} />\n </span>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --button-border-width: 1px;\n --button-border-width-start: var(--button-border-width);\n --button-border-width-end: var(--button-border-width);\n --button-border-width-top: var(--button-border-width);\n --button-border-width-bottom: var(--button-border-width);\n --button-gap: 8px;\n --button-justify-content: center;\n --button-border-radius-top-start: var(--button-border-radius);\n --button-border-radius-top-end: var(--button-border-radius);\n --button-border-radius-bottom-end: var(--button-border-radius);\n --button-border-radius-bottom-start: var(--button-border-radius);\n --button-padding-start: 16px;\n --button-padding-end: 16px;\n --button-icon-size: var(--cpls-font-size-body-l);\n --button-font-weight: 500;\n\n // ******\n // PRIMARY BUTTON\n // ******\n // DEFAULT\n --button-primary-color: var(--cpsl-color-primary-button-text);\n --button-primary-background-color: var(--cpsl-color-primary-button-surface-default);\n --button-primary-border-color: var(--cpsl-color-primary-button-border-default);\n --button-primary-icon-color: var(--cpsl-color-primary-button-text);\n // DISABLED\n --button-primary-disabled-color: var(--cpsl-color-text-disabled);\n --button-primary-disabled-background-color: var(--cpsl-color-primary-button-surface-disabled);\n --button-primary-disabled-border-color: var(--cpsl-color-primary-button-border-disabled);\n --button-primary-disabled-icon-color: var(--cpsl-color-primary-button-text);\n // HOVER\n --button-primary-hover-color: var(--cpsl-color-primary-button-text);\n --button-primary-hover-background-color: var(--cpsl-color-primary-button-surface-hover);\n --button-primary-hover-border-color: var(--cpsl-color-primary-button-surface-hover);\n --button-primary-hover-icon-color: var(--cpsl-color-primary-button-text);\n // ACTIVE\n --button-primary-active-color: var(--cpsl-color-primary-button-text);\n --button-primary-active-background-color: var(--cpsl-color-primary-button-surface-pressed);\n --button-primary-active-border-color: var(--cpsl-color-primary-button-surface-pressed);\n --button-primary-active-icon-color: var(--cpsl-color-primary-button-text);\n\n // ******\n // SECONDARY BUTTON\n // ******\n // DEFAULT\n --button-secondary-color: var(--cpsl-color-secondary-button-text);\n --button-secondary-background-color: var(--cpsl-color-secondary-button-surface-default);\n --button-secondary-border-color: var(--cpsl-color-secondary-button-border-default);\n --button-secondary-icon-color: var(--cpsl-color-secondary-button-text);\n // DISABLED\n --button-secondary-disabled-color: var(--cpsl-color-text-disabled);\n --button-secondary-disabled-background-color: var(--cpsl-color-secondary-button-surface-disabled);\n --button-secondary-disabled-border-color: var(--cpsl-color-secondary-button-border-disabled);\n --button-secondary-disabled-icon-color: var(--cpsl-color-secondary-button-text);\n // HOVER\n --button-secondary-hover-color: var(--cpsl-color-secondary-button-text);\n --button-secondary-hover-background-color: var(--cpsl-color-secondary-button-surface-hover);\n --button-secondary-hover-border-color: var(--cpsl-color-secondary-button-border-default);\n --button-secondary-hover-icon-color: var(--cpsl-color-secondary-button-text);\n // ACTIVE\n --button-secondary-active-color: var(--cpsl-color-secondary-button-text);\n --button-secondary-active-background-color: var(--cpsl-color-secondary-button-surface-pressed);\n --button-secondary-active-border-color: var(--cpsl-color-secondary-button-border-default);\n --button-secondary-active-icon-color: var(--cpsl-color-secondary-button-text);\n\n // ******\n // GHOST BUTTON\n // ******\n // DEFAULT\n --button-ghost-color: var(--cpsl-color-ghost-button-default);\n // DISABLED\n --button-ghost-disabled-color: var(--cpsl-color-ghost-button-disabled);\n // HOVER\n --button-ghost-hover-color: var(--cpsl-color-ghost-button-hover);\n\n // ******\n // DESTRUCTIVE BUTTON\n // ******\n // DEFAULT\n --button-destructive-color: var(--cpsl-color-destructive-button-text);\n --button-destructive-background-color: var(--cpsl-color-destructive-button-surface-default);\n --button-destructive-border-color: var(--cpsl-color-destructive-button-border-default);\n --button-destructive-icon-color: var(--cpsl-color-destructive-button-text);\n // DISABLED\n --button-destructive-disabled-color: var(--cpsl-color-text-disabled);\n --button-destructive-disabled-background-color: var(--cpsl-color-destructive-button-surface-disabled);\n --button-destructive-disabled-border-color: var(--cpsl-color-destructive-button-border-disabled);\n --button-destructive-disabled-icon-color: var(--cpsl-color-destructive-button-text);\n // HOVER\n --button-destructive-hover-color: var(--cpsl-color-destructive-button-text);\n --button-destructive-hover-background-color: var(--cpsl-color-destructive-button-surface-hover);\n --button-destructive-hover-border-color: var(--cpsl-color-destructive-button-border-default);\n --button-destructive-hover-icon-color: var(--cpsl-color-destructive-button-text);\n // ACTIVE\n --button-destructive-active-color: var(--cpsl-color-destructive-button-text);\n --button-destructive-active-background-color: var(--cpsl-color-destructive-button-surface-pressed);\n --button-destructive-active-border-color: var(--cpsl-color-destructive-button-border-default);\n --button-destructive-active-icon-color: var(--cpsl-color-destructive-button-text);\n\n height: fit-content;\n width: fit-content;\n\n a {\n height: fit-content;\n width: auto !important;\n }\n\n display: inline-block;\n\n font-family: $font-family-base;\n -webkit-tap-highlight-color: transparent;\n}\n\n:host(.full-width) {\n width: 100%;\n display: block;\n\n & .button-native {\n width: 100%;\n }\n}\n\n:host(.small) {\n --button-font-size: var(--cpsl-font-size-body-s);\n --button-padding-top: 12px;\n --button-padding-bottom: 12px;\n --button-icon-size: var(--cpsl-font-size-body-m);\n}\n\n:host(.small.primary) {\n --button-padding-top: 13px;\n --button-padding-bottom: 13px;\n}\n\n:host(.medium) {\n --button-font-size: var(--cpsl-font-size-body-m);\n --button-padding-top: 14px;\n --button-padding-bottom: 14px;\n --button-icon-size: var(--cpsl-font-size-body-l);\n\n & :host(.primary) {\n --button-padding-top: 15px;\n --button-padding-bottom: 15px;\n }\n}\n\n:host(.medium.primary) {\n --button-padding-top: 15px;\n --button-padding-bottom: 15px;\n}\n\n:host(.disabled) {\n cursor: default;\n pointer-events: none;\n}\n\n:host {\n ::slotted(cpsl-icon) {\n --height: var(--button-icon-size);\n --width: var(--button-icon-size);\n }\n}\n\n:host(.primary) {\n --button-border-radius: var(--cpsl-border-radius-primary-button);\n --button-color: var(--button-primary-color);\n --button-background-color: var(--button-primary-background-color);\n --button-border-color: var(--button-primary-border-color);\n --button-padding-start: 17px;\n --button-padding-end: 17px;\n --button-border-width: 0px;\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-primary-icon-color);\n }\n\n &:host(.disabled) {\n --button-color: var(--button-primary-disabled-color);\n --button-background-color: var(--button-primary-disabled-background-color);\n --button-border-color: var(--button-primary-disabled-border-color);\n --button-outline-color: transparent;\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-primary-disabled-icon-color);\n }\n }\n\n :not(.disabled) {\n &:hover {\n --button-color: var(--button-primary-hover-color);\n --button-background-color: var(--button-primary-hover-background-color);\n --button-border-color: var(--button-primary-hover-border-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-primary-hover-icon-color);\n }\n }\n &:active {\n --button-color: var(--button-primary-active-color);\n --button-background-color: var(--button-primary-active-background-color);\n --button-border-color: var(--button-primary-active-border-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-primary-active-icon-color);\n }\n }\n &:focus-visible {\n --button-outline-color: var(--cpsl-color-primary-button-outline);\n }\n }\n}\n\n:host(.secondary) {\n --button-border-radius: var(--cpsl-border-radius-destructive-button);\n --button-color: var(--button-secondary-color);\n --button-background-color: var(--button-secondary-background-color);\n --button-border-color: var(--button-secondary-border-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-secondary-icon-color);\n }\n\n &:host(.disabled) {\n --button-color: var(--button-secondary-disabled-color);\n --button-background-color: var(--button-secondary-disabled-background-color);\n --button-border-color: var(--button-secondary-disabled-border-color);\n --button-outline-color: transparent;\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-secondary-disabled-icon-color);\n }\n }\n\n :not(.disabled) {\n &:hover {\n --button-color: var(--button-secondary-hover-color);\n --button-border-color: var(--button-secondary-hover-border-color);\n --button-background-color: var(--button-secondary-hover-background-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-secondary-hover-icon-color);\n }\n }\n &:active {\n --button-color: var(--button-secondary-active-color);\n --button-border-color: var(--button-secondary-active-border-color);\n --button-background-color: var(--button-secondary-active-background-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-secondary-active-icon-color);\n }\n }\n &:focus-visible {\n --button-outline-color: var(--cpsl-color-secondary-button-outline);\n }\n }\n}\n\n:host(.ghost) {\n --button-color: var(--button-ghost-color);\n --button-background-color: transparent;\n --button-border-color: transparent;\n --button-outline-color: transparent;\n\n --button-padding-start: 0px;\n --button-padding-end: 0px;\n --button-padding-top: 0px;\n --button-padding-bottom: 0px;\n --button-border-width: 0px;\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-ghost-color);\n --height: var(--cpsl-font-size-body-xl);\n --width: var(--cpsl-font-size-body-xl);\n }\n\n &:host(.disabled) {\n --button-color: var(--button-ghost-disabled-color);\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-ghost-disabled-color);\n }\n }\n\n :not(.disabled) {\n &:hover {\n --button-color: var(--button-ghost-hover-color);\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-ghost-hover-color);\n }\n }\n }\n}\n\n:host(.destructive) {\n --button-border-radius: var(--cpsl-border-radius-secondary-button);\n --button-color: var(--button-destructive-color);\n --button-background-color: var(--button-destructive-background-color);\n --button-border-color: var(--button-destructive-border-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-destructive-icon-color);\n }\n\n &:host(.disabled) {\n --button-color: var(--button-destructive-disabled-color);\n --button-background-color: var(--button-destructive-disabled-background-color);\n --button-border-color: var(--button-destructive-disabled-border-color);\n --button-outline-color: transparent;\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-destructive-disabled-icon-color);\n }\n }\n\n :not(.disabled) {\n &:hover {\n --button-color: var(--button-destructive-hover-color);\n --button-border-color: var(--button-destructive-hover-border-color);\n --button-background-color: var(--button-destructive-hover-background-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-destructive-hover-icon-color);\n }\n }\n &:active {\n --button-color: var(--button-destructive-active-color);\n --button-border-color: var(--button-destructive-active-border-color);\n --button-background-color: var(--button-destructive-active-background-color);\n\n ::slotted(cpsl-icon) {\n --icon-color: var(--button-destructive-active-icon-color);\n }\n }\n &:focus-visible {\n --button-outline-color: var(--cpsl-color-destructive-button-outline);\n }\n }\n}\n\n.button-native {\n @include border-radius(\n var(--button-border-radius-top-start),\n var(--button-border-radius-top-end),\n var(--button-border-radius-bottom-end),\n var(--button-border-radius-bottom-start)\n );\n @include padding(var(--button-padding-top), var(--button-padding-end), var(--button-padding-bottom), var(--button-padding-start));\n\n font-size: var(--button-font-size);\n font-weight: var(--button-font-weight);\n font-family: inherit;\n white-space: nowrap;\n text-decoration: none;\n\n border: 0px solid transparent;\n border-width: var(--button-border-width-top) var(--button-border-width-end) var(--button-border-width-bottom) var(--button-border-width-start);\n\n cursor: pointer;\n\n color: var(--button-color);\n background: var(--button-background-color);\n border-color: var(--button-border-color);\n\n display: flex;\n justify-content: var(--button-justify-content);\n align-items: center;\n height: 100%;\n gap: var(--button-gap);\n word-break: break-all;\n\n outline-color: var(--button-outline-color);\n -webkit-tap-highlight-color: transparent;\n}\n\n:host {\n ::slotted(cpsl-text) {\n color: var(--button-color);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-button',\n styleUrl: 'cpsl-button.scss',\n shadow: true,\n})\nexport class CpslButton {\n /**\n * The tag for the button.\n * Options are: `\"button\"`, `\"a\".\n * Default is: `\"button\"`.\n */\n @Prop() as?: 'button' | 'a' = 'button';\n\n /**\n * If the button is disabled.\n * Default is: false.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /**\n * Whether the button takes the full width of it's container.\n * Default is: false.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * href to use when using a link.\n */\n @Prop() href?: string;\n\n /**\n * The size of the button.\n * Options are: `\"small\"`, `\"medium\".\n * Default is: `\"medium\"`.\n */\n @Prop() size?: 'small' | 'medium' = 'medium';\n\n /**\n * target to use when using a link.\n */\n @Prop() target?: string;\n\n /**\n * The variant of the button.\n * Options are: `\"primary\"`, `\"secondary\", `\"icon\", `\"text\"`.\n * Default is: `\"primary\"`.\n */\n @Prop({ reflect: true }) variant?: 'primary' | 'secondary' | 'ghost' | 'destructive' = 'primary';\n\n render() {\n return (\n <Host\n class={{\n // VARIANTS\n 'primary': this.variant === 'primary',\n 'secondary': this.variant === 'secondary',\n 'ghost': this.variant === 'ghost',\n 'destructive': this.variant === 'destructive',\n // STATE\n 'disabled': this.disabled,\n 'full-width': this.fullWidth,\n // SIZES\n 'small': this.size === 'small',\n 'medium': this.size === 'medium',\n }}\n >\n <this.as href={this.href} target={this.target} part=\"button-native\" class=\"button-native\">\n <slot name=\"start\"></slot>\n <slot></slot>\n <slot name=\"end\"></slot>\n </this.as>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --button-size: 32px;\n\n display: flex;\n}\n\n:host {\n ::slotted(cpsl-button:first-child) {\n --button-border-radius-top-end: 0px;\n --button-border-radius-bottom-end: 0px;\n }\n ::slotted(cpsl-button:last-child) {\n --button-border-width-start: 0px;\n --button-border-radius-top-start: 0px;\n --button-border-radius-bottom-start: 0px;\n }\n ::slotted(cpsl-button:not(:first-child):not(:last-child)) {\n --button-border-width-start: 0px;\n --button-border-radius-top-start: 0px;\n --button-border-radius-bottom-start: 0px;\n --button-border-radius-top-end: 0px;\n --button-border-radius-bottom-end: 0px;\n }\n ::slotted(cpsl-button) {\n --button-color: var(--cpsl-color-text-tertiary);\n --button-padding-start: 0px;\n --button-padding-end: 0px;\n --button-padding-top: 0px;\n --button-padding-bottom: 0px;\n --button-border-radius: var(--cpsl-border-radius-button-group);\n height: var(--button-size);\n width: var(--button-size);\n }\n ::slotted(cpsl-button.selected) {\n --button-color: var(--cpsl-color-text-primary);\n }\n}\n","import { Component, Host, Prop, Element, h, Watch } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-button-group',\n styleUrl: 'cpsl-button-group.scss',\n shadow: true,\n})\nexport class CpslButtonGroup {\n @Element() el!: HTMLCpslButtonGroupElement;\n\n /**\n * The id of the selected button.\n */\n @Prop() selectedId?: string;\n\n @Watch('selectedId')\n selectItem() {\n this.buttonSlots.forEach(item => {\n if (item.id === this.selectedId) {\n item.classList.add('selected');\n } else {\n item.classList.remove('selected');\n }\n });\n }\n\n componentWillRender() {\n this.buttonSlots.forEach(item => {\n item.setAttribute('variant', 'secondary');\n item.setAttribute('full-width', 'true');\n this.selectItem();\n });\n\n if (Boolean(this.otherSlots?.length)) {\n console.error('cpsl-button is the only valid child of cpsl-button-group');\n this.otherSlots.forEach(item => item.remove());\n }\n }\n\n private get buttonSlots() {\n return this.el.querySelectorAll('cpsl-button');\n }\n\n private get otherSlots() {\n return this.el.querySelectorAll('&> *:not(cpsl-button)');\n }\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --card-padding-top: 24px;\n --card-padding-end: 24px;\n --card-padding-bottom: 24px;\n --card-padding-start: 24px;\n --card-border-width: 1px;\n --card-border-color: var(--cpsl-color-card-border);\n --card-border-radius: var(--cpsl-border-radius-card);\n --card-background-color: var(--cpsl-color-card-surface);\n\n display: block;\n}\n\n.card {\n @include padding(var(--card-padding-top), var(--card-padding-end), var(--card-padding-bottom), var(--card-padding-start));\n\n display: block;\n box-sizing: border-box;\n overflow: hidden;\n\n border: var(--card-border-width) solid var(--card-border-color);\n border-radius: var(--card-border-radius);\n background: var(--card-background-color);\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-card',\n styleUrl: 'cpsl-card.scss',\n shadow: true,\n})\nexport class CpslCard {\n render() {\n return (\n <Host>\n <div class={{ card: true }} part=\"card-container\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n // CONTAINER\n --container-height: 20px;\n --container-width: 20px;\n --container-border-radius: var(--cpsl-border-radius-checkbox);\n --container-border-width: 2px;\n --container-background-color-default: var(--cpsl-color-checkbox-surface-default);\n --container-border-color-default: var(--cpsl-color-checkbox-border-default);\n --container-background-color-checked: var(--cpsl-color-checkbox-surface-checked);\n --container-border-color-checked: var(--cpsl-color-checkbox-border-checked);\n\n // ICON\n --icon-height: 16px;\n --icon-width: 16px;\n --checkbox-icon-color: var(--cpsl-color-checkbox-icon);\n\n display: block;\n position: relative;\n\n height: var(--container-height);\n width: var(--container-width);\n cursor: pointer;\n}\n\ninput {\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 0px;\n opacity: 0;\n}\n\nspan.container {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-radius: var(--container-border-radius);\n border: var(--container-border-width) solid;\n background: var(--container-background-color-default);\n border-color: var(--container-border-color-default);\n\n transition: all 0.15s ease-in-out;\n\n cpsl-icon {\n --height: var(--icon-height);\n --width: var(--icon-width);\n opacity: 0;\n --icon-color: var(--checkbox-icon-color);\n transition: all 0.15s ease-in-out;\n }\n\n &.checked {\n background: var(--container-background-color-checked);\n border-color: var(--container-border-color-checked);\n\n cpsl-icon {\n opacity: 1;\n }\n }\n}\n","import { Component, EventEmitter, Host, Prop, Event, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-checkbox',\n styleUrl: 'cpsl-checkbox.scss',\n shadow: true,\n})\nexport class CpslCheckbox {\n /**\n * Whether or not the checkbox is checked.\n */\n @Prop() checked: boolean;\n\n /**\n * Emitted when the checkbox state changes.\n */\n @Event() cpslCheckboxChanged!: EventEmitter<boolean>;\n\n private handleCheckboxClick = () => {\n this.cpslCheckboxChanged.emit(!this.checked);\n };\n\n render() {\n return (\n <Host>\n <input type=\"checkbox\" checked={this.checked} />\n <span onClick={this.handleCheckboxClick} class={{ container: true, checked: this.checked }}>\n <cpsl-icon icon=\"check\" />\n </span>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --input-width: 40px;\n --input-height: 54px;\n\n --input-border-radius: var(--cpsl-border-radius-input);\n --input-border-color: var(--cpsl-color-input-border-placeholder);\n --input-border-width: 1px;\n --input-background-color: var(--cpsl-color-input-surface-default);\n --input-border-error-color: var(--cpsl-color-input-border-error);\n\n --input-font-size: #{dynamic-font-clamp(1, 20px, 1.5)};\n --input-color: var(--cpsl-color-text-primary);\n\n --helper-text-color: var(--cpsl-color-text-secondary);\n --helper-text-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-color: var(--cpsl-color-text-secondary);\n --helper-text-icon-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-size: 16px;\n --helper-text-font-size: 12px;\n --helper-text-margin-top: 6px;\n\n display: block;\n font-family: $font-family-base;\n}\n\n.code-container {\n display: flex;\n gap: 8px;\n}\n\n.code-input {\n font-family: $font-family-base;\n @include border-radius(var(--input-border-radius));\n font-size: var(--input-font-size);\n\n border-color: var(--input-border-color);\n border-width: var(--input-border-width);\n border-style: solid;\n\n font-size: var(--input-font-size);\n color: var(--input-color);\n\n width: var(--input-width);\n height: var(--input-height);\n background: var(--input-background-color);\n\n box-sizing: border-box;\n text-align: center;\n outline: none;\n\n &:focus {\n --input-border-color: var(--cpsl-color-input-border-active);\n }\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n}\n\n.code-input .error-container {\n border-color: var(--input-border-error-color);\n}\n\ninput[type='number'] {\n -moz-appearance: textfield;\n}\n\n.helper-text-container {\n flex-basis: 100%;\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--helper-text-color);\n font-size: var(--helper-text-font-size);\n\n margin-top: var(--helper-text-margin-top);\n\n cpsl-icon {\n --height: var(--helper-text-icon-size);\n --width: var(--helper-text-icon-size);\n --icon-color: var(--helper-text-icon-color);\n }\n}\n\n.error-text {\n color: var(--helper-text-error-color);\n\n cpsl-icon {\n --icon-color: var(--helper-text-icon-error-color);\n }\n}\n","import { Component, Host, h, Prop, Element, Event, EventEmitter } from '@stencil/core';\nimport { CodeChangeEventDetail } from './code-change-interface';\n\n@Component({\n tag: 'cpsl-code-input',\n styleUrl: 'cpsl-code-input.scss',\n shadow: true,\n})\nexport class CpslCodeInput {\n @Element() el!: HTMLCpslCodeInputElement;\n\n /**\n * Value of the code.\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ mutable: true }) code: string;\n\n /**\n * Error text to show below the input. If this is provided the input will enter an error state.\n */\n @Prop() errorText?: string;\n\n /**\n * Helper text to show below the input. If `\"errorText\"` is provided that will take precedence.\n */\n @Prop() helperText?: string;\n\n /**\n * Length of the code.\n */\n @Prop() length: number;\n\n /**\n * Type of characters to accept in the code.\n * Defaults to number.\n */\n @Prop() type?: 'number' | 'string' = 'number';\n\n /**\n * The `cpslInput` event is fired each time the user modifies the input's value.\n */\n @Event() cpslInput!: EventEmitter<CodeChangeEventDetail>;\n\n private handleInput = (ind: number, ev: InputEvent) => {\n const inputElements = this.inputs;\n if (ev.inputType == 'insertText') {\n if (this.type === 'number' && isNaN(parseInt(ev.data))) {\n inputElements[ind].value = '';\n return;\n }\n inputElements[Math.min(this.length - 1, ind + 1)].focus();\n\n const newCode = `${this.code ?? ''}${ev.data}`;\n this.cpslInput.emit({ value: newCode });\n this.code = newCode;\n }\n };\n\n private handleKeyDown = (ind: number, ev: KeyboardEvent) => {\n const inputElements = this.inputs;\n\n switch (ev.key) {\n case 'Backspace': {\n let newCode;\n if (!inputElements[ind].value) {\n inputElements[Math.max(0, ind - 1)].value = '';\n inputElements[Math.max(0, ind - 1)].focus();\n newCode = this.code.substring(0, ind - 1);\n } else {\n newCode = this.code.substring(0, ind);\n }\n this.cpslInput.emit({ value: newCode });\n this.code = newCode;\n break;\n }\n case 'ArrowLeft': {\n setTimeout(() => {\n this.inputs[ind].setSelectionRange(1, 1);\n }, 0);\n break;\n }\n default: {\n break;\n }\n }\n };\n\n private handleFocus = (ind: number) => {\n const inputElements = this.inputs;\n\n for (const input of inputElements) {\n if (!input.value) {\n input.focus();\n break;\n } else if (input.id === `code-input-${this.length - 1}`) {\n input.focus();\n break;\n }\n }\n\n setTimeout(() => {\n inputElements[ind].setSelectionRange(1, 1);\n }, 0);\n };\n\n // TODO: figure out why pasting a string populates the first input\n private handlePaste = (e: ClipboardEvent) => {\n const inputElements = this.inputs;\n const pastedCode = e.clipboardData.getData('text');\n\n if (this.type === 'number' && isNaN(parseInt(pastedCode))) {\n // Remove illegal value from the first input. Not using a timeout here doesn't change the value properly.\n setTimeout(() => {\n inputElements[0].value = '';\n }, 0);\n return;\n }\n\n this.cpslInput.emit({\n value: pastedCode,\n });\n inputElements.forEach((input, index) => {\n input.value = pastedCode.charAt(index);\n });\n inputElements[this.length - 1].focus();\n };\n\n private get inputs() {\n return Array.from(this.el.shadowRoot.querySelectorAll('input'));\n }\n\n render() {\n return (\n <Host>\n <div class=\"code-container\">\n {new Array(this.length).fill(0).map((_, i) => (\n <input\n class={{ 'code-input': true, 'error': Boolean(this.errorText) }}\n id={`code-input-${i}`}\n maxLength={1}\n onKeyDown={ev => this.handleKeyDown(i, ev)}\n onInput={ev => this.handleInput(i, ev)}\n onFocus={() => this.handleFocus(i)}\n onPaste={this.handlePaste}\n min={0}\n max={9}\n value={this.code?.[i]}\n inputMode={this.type === 'number' ? 'numeric' : 'text'}\n />\n ))}\n </div>\n {(this.errorText || this.helperText) && (\n <div class={{ 'helper-text-container': true, 'error-text': Boolean(this.errorText) }}>\n <cpsl-icon icon={Boolean(this.errorText) ? 'alertCircle' : 'infoCircle'} />\n <span>{this.errorText ?? this.helperText}</span>\n </div>\n )}\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --divider-height: 1px;\n --divider-color: var(--cpsl-color-divider);\n\n display: flex;\n align-items: center;\n height: 24px;\n color: var(--cpsl-color-text-subtle);\n\n font-family: $font-family-base;\n font-size: #{dynamic-font-clamp(1, 14px, 1.5)};\n font-weight: 600;\n gap: 16px;\n}\n\n:host div {\n flex: 1;\n background: var(--divider-color);\n height: var(--divider-height);\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-divider',\n styleUrl: 'cpsl-divider.scss',\n shadow: true,\n})\nexport class CpslDivider {\n render() {\n return (\n <Host>\n <div />\n <slot></slot>\n <div />\n </Host>\n );\n }\n}\n","@use 'sass:map';\n@import '../../themes/capsule.globals';\n\n:host {\n display: flex;\n\n position: fixed;\n z-index: map.get($z-indices, 'drawer');\n}\n\n:host(.left) {\n left: 0;\n top: 0;\n transition: left;\n}\n\n:host(.right) {\n right: 0;\n top: 0;\n transition: right;\n}\n\n:host(.top) {\n top: 0;\n left: 0;\n transition: top;\n}\n\n:host(.bottom) {\n bottom: 0;\n left: 0;\n transition: bottom;\n}\n\n.container {\n flex: 1;\n overflow: auto;\n z-index: map.get($z-indices, 'drawer');\n}\n","import { Component, Host, Prop, Element, h, State } from '@stencil/core';\nimport { DEFAULT_Z_INDICES } from '../../constants';\n\n@Component({\n tag: 'cpsl-drawer',\n styleUrl: 'cpsl-drawer.scss',\n shadow: true,\n})\nexport class CpslDrawer {\n @Element() el!: HTMLCpslDrawerElement;\n\n @State() closedAnchorPosition?: string;\n @State() showTransition: boolean;\n\n /**\n * Side from which the drawer will enter from.\n */\n @Prop() anchor: 'top' | 'bottom' | 'left' | 'right';\n\n /**\n * Starting anchor position.\n */\n @Prop() anchorPosition?: number;\n\n /**\n * Hides the overlay for temporary drawers.\n */\n @Prop() noOverlay?: boolean;\n\n /**\n * Whether the drawer is open or not.\n */\n @Prop() open: boolean;\n\n /**\n * Size (height or width) of the drawer.\n */\n @Prop() size: number | 'auto';\n\n /**\n * Duration in seconds of the open/close animation.\n * Default is 0.15.\n */\n @Prop() transitionDuration?: number = 0.15;\n\n /**\n * Transition timing function to use.\n * Default is ease-in-out.\n */\n @Prop() transitionFunction?: string = 'ease-in-out';\n\n /**\n * The variant of the drawer.\n * `temporary` drawers will cover content and contain a backdrop. `permanent` drawers will sit beside content, i.e. desktop navigation.\n * Default is `temporary`.\n */\n @Prop() variant?: 'temporary' | 'permanent' = 'temporary';\n\n /**\n * Override z-index.\n */\n @Prop() zIndexOverride?: number;\n\n componentDidLoad() {\n this.closedAnchorPosition = `-${this.getContainerHeight()}px`;\n // Show transition after initial render\n setTimeout(() => {\n this.showTransition = true;\n }, 100);\n }\n\n private getContainerHeight() {\n return this.containerEl?.clientHeight;\n }\n\n private get containerEl() {\n return this.el.shadowRoot.getElementById('container');\n }\n\n render() {\n const setHeight = this.anchor === 'top' || this.anchor === 'bottom';\n const startingAnchor = `${this.anchorPosition}px` ?? '0px';\n const size = this.size === 'auto' ? 'auto' : `${this.size}px`;\n\n return (\n <Host\n style={{\n width: setHeight ? '100vw' : size,\n height: setHeight ? size : '100vh',\n transitionDuration: `${this.showTransition ? this.transitionDuration : 0}s`,\n transitionTimingFunction: `${this.transitionFunction}`,\n [this.anchor]: this.open || this.variant === 'permanent' ? startingAnchor : this.closedAnchorPosition,\n opacity: this.closedAnchorPosition === undefined ? '0' : '1',\n ...(Boolean(this.zIndexOverride) ? { zIndex: `${this.zIndexOverride}` } : {}),\n }}\n class={{\n top: this.anchor === 'top',\n bottom: this.anchor === 'bottom',\n left: this.anchor === 'left',\n right: this.anchor === 'right',\n }}\n >\n {this.variant === 'temporary' && !this.noOverlay && <cpsl-overlay open={this.open} zIndexOverride={DEFAULT_Z_INDICES.modal + 1} />}\n <div id=\"container\" class=\"container\" part=\"container\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","import AlertCircle from './alert-circle.svg';import AngelListBrand from './angel-list-brand.svg';import AngelList from './angel-list.svg';import AppleBrand from './apple-brand.svg';import Apple from './apple.svg';import ArrowNarrow from './arrow-narrow.svg';import Arrow from './arrow.svg';import BackupKit from './backup-kit.svg';import Brush from './brush.svg';import CapsuleLogo from './capsule-logo.svg';import CapsuleRingsDark from './capsule-rings-dark.svg';import CapsuleRings from './capsule-rings.svg';import Capsule from './capsule.svg';import CheckCircle from './check-circle.svg';import Check from './check.svg';import ChevronUp from './chevron-up.svg';import Clock from './clock.svg';import Close from './close.svg';import ClubhouseBrand from './clubhouse-brand.svg';import Clubhouse from './clubhouse.svg';import Copy from './copy.svg';import Cube from './cube.svg';import DecentBrand from './decent-brand.svg';import Decent from './decent.svg';import DiscordBrand from './discord-brand.svg';import Discord from './discord.svg';import DoubleArc from './double-arc.svg';import DownloadCloud from './download-cloud.svg';import DribbbleBrand from './dribbble-brand.svg';import Dribbble from './dribbble.svg';import Earth from './earth.svg';import EyeOff from './eye-off.svg';import Eye from './eye.svg';import FacebookBrand from './facebook-brand.svg';import Facebook from './facebook.svg';import FarcasterBrand from './farcaster-brand.svg';import Farcaster from './farcaster.svg';import FigmaBrand from './figma-brand.svg';import Figma from './figma.svg';import File from './file.svg';import GithubBrand from './github-brand.svg';import Github from './github.svg';import GoogleBrand from './google-brand.svg';import Google from './google.svg';import HelpCircle from './help-circle.svg';import HeroEmail from './hero-email.svg';import HeroLock from './hero-lock.svg';import HeroPasskey from './hero-passkey.svg';import HeroPhone from './hero-phone.svg';import HeroWallet from './hero-wallet.svg';import Home from './home.svg';import Image from './image.svg';import InfoCircle from './info-circle.svg';import InstagramBrand from './instagram-brand.svg';import Instagram from './instagram.svg';import Key from './key.svg';import Lightning01 from './lightning-01.svg';import Lightning from './lightning.svg';import LinkedinBrand from './linkedin-brand.svg';import Linkedin from './linkedin.svg';import Mail from './mail.svg';import Menu from './menu.svg';import MoreLoginOptions from './more-login-options.svg';import Phone from './phone.svg';import PintrestBrand from './pintrest-brand.svg';import Pintrest from './pintrest.svg';import PlusCircle from './plus-circle.svg';import RampNetworkBrand from './ramp-network-brand.svg';import RampNetwork from './ramp-network.svg';import RedditBrand from './reddit-brand.svg';import Reddit from './reddit.svg';import Refresh from './refresh.svg';import Settings from './settings.svg';import SignalBrand from './signal-brand.svg';import Signal from './signal.svg';import SingleArc from './single-arc.svg';import SnapchatBrand from './snapchat-brand.svg';import Snapchat from './snapchat.svg';import Stars from './stars.svg';import TelegramBrand from './telegram-brand.svg';import Telegram from './telegram.svg';import TikTokBrand from './tik-tok-brand.svg';import TikTok from './tik-tok.svg';import TumblrBrand from './tumblr-brand.svg';import Tumblr from './tumblr.svg';import TwitterBrand from './twitter-brand.svg';import Twitter from './twitter.svg';import Wallet from './wallet.svg';import X from './x.svg';import YoutubeBrand from './youtube-brand.svg';import Youtube from './youtube.svg';import AD from './flags/AD.svg';import AE from './flags/AE.svg';import AF from './flags/AF.svg';import AG from './flags/AG.svg';import AI from './flags/AI.svg';import AL from './flags/AL.svg';import AM from './flags/AM.svg';import AO from './flags/AO.svg';import AR from './flags/AR.svg';import AS from './flags/AS.svg';import AT from './flags/AT.svg';import AU from './flags/AU.svg';import AW from './flags/AW.svg';import AX from './flags/AX.svg';import AZ from './flags/AZ.svg';import BA from './flags/BA.svg';import BB from './flags/BB.svg';import BD from './flags/BD.svg';import BE from './flags/BE.svg';import BF from './flags/BF.svg';import BG from './flags/BG.svg';import BH from './flags/BH.svg';import BI from './flags/BI.svg';import BJ from './flags/BJ.svg';import BL from './flags/BL.svg';import BM from './flags/BM.svg';import BN from './flags/BN.svg';import BO from './flags/BO.svg';import BQ from './flags/BQ.svg';import BQ2 from './flags/BQ2.svg';import BQ3 from './flags/BQ3.svg';import BR from './flags/BR.svg';import BS from './flags/BS.svg';import BT from './flags/BT.svg';import BW from './flags/BW.svg';import BY from './flags/BY.svg';import BZ from './flags/BZ.svg';import CA from './flags/CA.svg';import CC from './flags/CC.svg';import CD from './flags/CD.svg';import CD2 from './flags/CD2.svg';import CF from './flags/CF.svg';import CH from './flags/CH.svg';import CK from './flags/CK.svg';import CL from './flags/CL.svg';import CM from './flags/CM.svg';import CN from './flags/CN.svg';import CO from './flags/CO.svg';import CR from './flags/CR.svg';import CU from './flags/CU.svg';import CW from './flags/CW.svg';import CX from './flags/CX.svg';import CY from './flags/CY.svg';import CZ from './flags/CZ.svg';import DE from './flags/DE.svg';import DJ from './flags/DJ.svg';import DK from './flags/DK.svg';import DM from './flags/DM.svg';import DO from './flags/DO.svg';import DS from './flags/DS.svg';import DZ from './flags/DZ.svg';import EC from './flags/EC.svg';import EE from './flags/EE.svg';import EG from './flags/EG.svg';import EH from './flags/EH.svg';import ER from './flags/ER.svg';import ES from './flags/ES.svg';import ET from './flags/ET.svg';import FI from './flags/FI.svg';import FJ from './flags/FJ.svg';import FK from './flags/FK.svg';import FM from './flags/FM.svg';import FO from './flags/FO.svg';import FR from './flags/FR.svg';import GA from './flags/GA.svg';import GB2 from './flags/GB-2.svg';import GB from './flags/GB.svg';import GD from './flags/GD.svg';import GE from './flags/GE.svg';import GG from './flags/GG.svg';import GH from './flags/GH.svg';import GI from './flags/GI.svg';import GL from './flags/GL.svg';import GM from './flags/GM.svg';import GN from './flags/GN.svg';import GQ from './flags/GQ.svg';import GR from './flags/GR.svg';import GT from './flags/GT.svg';import GU from './flags/GU.svg';import GW from './flags/GW.svg';import GY from './flags/GY.svg';import HK from './flags/HK.svg';import HN from './flags/HN.svg';import HR from './flags/HR.svg';import HT from './flags/HT.svg';import HU from './flags/HU.svg';import ID from './flags/ID.svg';import IE from './flags/IE.svg';import IL from './flags/IL.svg';import IM from './flags/IM.svg';import IN from './flags/IN.svg';import IO from './flags/IO.svg';import IQ from './flags/IQ.svg';import IR from './flags/IR.svg';import IS from './flags/IS.svg';import IT from './flags/IT.svg';import JE from './flags/JE.svg';import JM from './flags/JM.svg';import JO from './flags/JO.svg';import JP from './flags/JP.svg';import KE from './flags/KE.svg';import KG from './flags/KG.svg';import KH from './flags/KH.svg';import KI from './flags/KI.svg';import KM from './flags/KM.svg';import KN from './flags/KN.svg';import KP from './flags/KP.svg';import KR from './flags/KR.svg';import KW from './flags/KW.svg';import KY from './flags/KY.svg';import KZ from './flags/KZ.svg';import LA from './flags/LA.svg';import LB from './flags/LB.svg';import LC from './flags/LC.svg';import LI from './flags/LI.svg';import LK from './flags/LK.svg';import LR from './flags/LR.svg';import LS from './flags/LS.svg';import LT from './flags/LT.svg';import LU from './flags/LU.svg';import LV from './flags/LV.svg';import LY from './flags/LY.svg';import MA from './flags/MA.svg';import MC from './flags/MC.svg';import MD from './flags/MD.svg';import ME from './flags/ME.svg';import MG from './flags/MG.svg';import MH from './flags/MH.svg';import MK from './flags/MK.svg';import ML from './flags/ML.svg';import MM from './flags/MM.svg';import MN from './flags/MN.svg';import MO from './flags/MO.svg';import MP from './flags/MP.svg';import MQ from './flags/MQ.svg';import MR from './flags/MR.svg';import MS from './flags/MS.svg';import MT from './flags/MT.svg';import MU from './flags/MU.svg';import MV from './flags/MV.svg';import MW from './flags/MW.svg';import MX from './flags/MX.svg';import MY from './flags/MY.svg';import MZ from './flags/MZ.svg';import NA from './flags/NA.svg';import NE from './flags/NE.svg';import NF from './flags/NF.svg';import NG from './flags/NG.svg';import NI from './flags/NI.svg';import NL from './flags/NL.svg';import NO from './flags/NO.svg';import NP from './flags/NP.svg';import NR from './flags/NR.svg';import NU from './flags/NU.svg';import NZ from './flags/NZ.svg';import OM from './flags/OM.svg';import PA from './flags/PA.svg';import PE from './flags/PE.svg';import PF from './flags/PF.svg';import PG from './flags/PG.svg';import PH from './flags/PH.svg';import PK from './flags/PK.svg';import PL from './flags/PL.svg';import PN from './flags/PN.svg';import PR from './flags/PR.svg';import PS from './flags/PS.svg';import PT from './flags/PT.svg';import PW from './flags/PW.svg';import PY from './flags/PY.svg';import QA from './flags/QA.svg';import RO from './flags/RO.svg';import RS from './flags/RS.svg';import RU from './flags/RU.svg';import RW from './flags/RW.svg';import SA from './flags/SA.svg';import SB from './flags/SB.svg';import SC from './flags/SC.svg';import SE from './flags/SE.svg';import SG from './flags/SG.svg';import SI from './flags/SI.svg';import SK from './flags/SK.svg';import SL from './flags/SL.svg';import SM from './flags/SM.svg';import SN from './flags/SN.svg';import SO from './flags/SO.svg';import SR from './flags/SR.svg';import SS from './flags/SS.svg';import ST from './flags/ST.svg';import SV from './flags/SV.svg';import SX from './flags/SX.svg';import SY from './flags/SY.svg';import SZ from './flags/SZ.svg';import TC from './flags/TC.svg';import TD from './flags/TD.svg';import TG from './flags/TG.svg';import TH from './flags/TH.svg';import TJ from './flags/TJ.svg';import TK from './flags/TK.svg';import TL from './flags/TL.svg';import TM from './flags/TM.svg';import TN from './flags/TN.svg';import TO from './flags/TO.svg';import TR from './flags/TR.svg';import TT from './flags/TT.svg';import TV from './flags/TV.svg';import TW from './flags/TW.svg';import TZ from './flags/TZ.svg';import UA from './flags/UA.svg';import UG from './flags/UG.svg';import US from './flags/US.svg';import UY from './flags/UY.svg';import UZ from './flags/UZ.svg';import VC from './flags/VC.svg';import VE from './flags/VE.svg';import VG from './flags/VG.svg';import VI from './flags/VI.svg';import VN from './flags/VN.svg';import VU from './flags/VU.svg';import WS from './flags/WS.svg';import YE from './flags/YE.svg';import ZA from './flags/ZA.svg';import ZM from './flags/ZM.svg';import ZW from './flags/ZW.svg';\nexport const Icons = {alertCircle: AlertCircle,angelListBrand: AngelListBrand,angelList: AngelList,appleBrand: AppleBrand,apple: Apple,arrowNarrow: ArrowNarrow,arrow: Arrow,backupKit: BackupKit,brush: Brush,capsuleLogo: CapsuleLogo,capsuleRingsDark: CapsuleRingsDark,capsuleRings: CapsuleRings,capsule: Capsule,checkCircle: CheckCircle,check: Check,chevronUp: ChevronUp,clock: Clock,close: Close,clubhouseBrand: ClubhouseBrand,clubhouse: Clubhouse,copy: Copy,cube: Cube,decentBrand: DecentBrand,decent: Decent,discordBrand: DiscordBrand,discord: Discord,doubleArc: DoubleArc,downloadCloud: DownloadCloud,dribbbleBrand: DribbbleBrand,dribbble: Dribbble,earth: Earth,eyeOff: EyeOff,eye: Eye,facebookBrand: FacebookBrand,facebook: Facebook,farcasterBrand: FarcasterBrand,farcaster: Farcaster,figmaBrand: FigmaBrand,figma: Figma,file: File,githubBrand: GithubBrand,github: Github,googleBrand: GoogleBrand,google: Google,helpCircle: HelpCircle,heroEmail: HeroEmail,heroLock: HeroLock,heroPasskey: HeroPasskey,heroPhone: HeroPhone,heroWallet: HeroWallet,home: Home,image: Image,infoCircle: InfoCircle,instagramBrand: InstagramBrand,instagram: Instagram,key: Key,lightning01: Lightning01,lightning: Lightning,linkedinBrand: LinkedinBrand,linkedin: Linkedin,mail: Mail,menu: Menu,moreLoginOptions: MoreLoginOptions,phone: Phone,pintrestBrand: PintrestBrand,pintrest: Pintrest,plusCircle: PlusCircle,rampNetworkBrand: RampNetworkBrand,rampNetwork: RampNetwork,redditBrand: RedditBrand,reddit: Reddit,refresh: Refresh,settings: Settings,signalBrand: SignalBrand,signal: Signal,singleArc: SingleArc,snapchatBrand: SnapchatBrand,snapchat: Snapchat,stars: Stars,telegramBrand: TelegramBrand,telegram: Telegram,tikTokBrand: TikTokBrand,tikTok: TikTok,tumblrBrand: TumblrBrand,tumblr: Tumblr,twitterBrand: TwitterBrand,twitter: Twitter,wallet: Wallet,x: X,youtubeBrand: YoutubeBrand,youtube: Youtube,AD: AD,AE: AE,AF: AF,AG: AG,AI: AI,AL: AL,AM: AM,AO: AO,AR: AR,AS: AS,AT: AT,AU: AU,AW: AW,AX: AX,AZ: AZ,BA: BA,BB: BB,BD: BD,BE: BE,BF: BF,BG: BG,BH: BH,BI: BI,BJ: BJ,BL: BL,BM: BM,BN: BN,BO: BO,BQ: BQ,BQ2: BQ2,BQ3: BQ3,BR: BR,BS: BS,BT: BT,BW: BW,BY: BY,BZ: BZ,CA: CA,CC: CC,CD: CD,CD2: CD2,CF: CF,CH: CH,CK: CK,CL: CL,CM: CM,CN: CN,CO: CO,CR: CR,CU: CU,CW: CW,CX: CX,CY: CY,CZ: CZ,DE: DE,DJ: DJ,DK: DK,DM: DM,DO: DO,DS: DS,DZ: DZ,EC: EC,EE: EE,EG: EG,EH: EH,ER: ER,ES: ES,ET: ET,FI: FI,FJ: FJ,FK: FK,FM: FM,FO: FO,FR: FR,GA: GA,GB2: GB2,GB: GB,GD: GD,GE: GE,GG: GG,GH: GH,GI: GI,GL: GL,GM: GM,GN: GN,GQ: GQ,GR: GR,GT: GT,GU: GU,GW: GW,GY: GY,HK: HK,HN: HN,HR: HR,HT: HT,HU: HU,ID: ID,IE: IE,IL: IL,IM: IM,IN: IN,IO: IO,IQ: IQ,IR: IR,IS: IS,IT: IT,JE: JE,JM: JM,JO: JO,JP: JP,KE: KE,KG: KG,KH: KH,KI: KI,KM: KM,KN: KN,KP: KP,KR: KR,KW: KW,KY: KY,KZ: KZ,LA: LA,LB: LB,LC: LC,LI: LI,LK: LK,LR: LR,LS: LS,LT: LT,LU: LU,LV: LV,LY: LY,MA: MA,MC: MC,MD: MD,ME: ME,MG: MG,MH: MH,MK: MK,ML: ML,MM: MM,MN: MN,MO: MO,MP: MP,MQ: MQ,MR: MR,MS: MS,MT: MT,MU: MU,MV: MV,MW: MW,MX: MX,MY: MY,MZ: MZ,NA: NA,NE: NE,NF: NF,NG: NG,NI: NI,NL: NL,NO: NO,NP: NP,NR: NR,NU: NU,NZ: NZ,OM: OM,PA: PA,PE: PE,PF: PF,PG: PG,PH: PH,PK: PK,PL: PL,PN: PN,PR: PR,PS: PS,PT: PT,PW: PW,PY: PY,QA: QA,RO: RO,RS: RS,RU: RU,RW: RW,SA: SA,SB: SB,SC: SC,SE: SE,SG: SG,SI: SI,SK: SK,SL: SL,SM: SM,SN: SN,SO: SO,SR: SR,SS: SS,ST: ST,SV: SV,SX: SX,SY: SY,SZ: SZ,TC: TC,TD: TD,TG: TG,TH: TH,TJ: TJ,TK: TK,TL: TL,TM: TM,TN: TN,TO: TO,TR: TR,TT: TT,TV: TV,TW: TW,TZ: TZ,UA: UA,UG: UG,US: US,UY: UY,UZ: UZ,VC: VC,VE: VE,VG: VG,VI: VI,VN: VN,VU: VU,WS: WS,YE: YE,ZA: ZA,ZM: ZM,ZW: ZW,}","@import '../../themes/capsule.globals';\n\n:host {\n display: block;\n position: relative;\n font-family: Arial, sans-serif;\n\n --input-color: var(--cpsl-color-text-primary);\n --container-background-color: var(--cpsl-color-input-surface-default);\n --container-border-color: var(--cpsl-color-input-border-active);\n --scrollbar-color: var(--cpsl-color-text-subtle);\n --divider-color: var(--cpsl-color-divider);\n --input-placeholder-color: var(--cpsl-color-text-secondary);\n --input-font-size: var(--cpsl-font-size-body-m);\n --button-hover-color: var(--cpsl-color-tile-button-surface-hover);\n font-family: $font-family-base;\n}\n\n.input-container {\n position: relative;\n width: 100%;\n}\n\n::slotted(cpsl-dropdown) {\n position: absolute;\n width: 100%;\n top: 100%;\n left: 0;\n z-index: 2;\n}\n\n.dropdown-button {\n display: flex;\n width: 100%;\n padding: 0 4px;\n background: none;\n border: none;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n color: var(--input-color);\n}\n\n.dropdown-button span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n}\n\n.dropdown-button div {\n margin-left: 8px;\n display: flex;\n align-items: center;\n}\n\n.dropdown-options {\n display: none;\n position: fixed;\n list-style: none;\n padding: 0;\n margin-top: 4px;\n border: 1px solid var(--container-border-color);\n border-radius: 8px;\n z-index: 999999999999;\n overflow-y: auto; /* Enable vertical scrolling */\n max-height: 300px; /* Initial max height */\n box-sizing: border-box; /* Includes padding and border in the height */\n background-color: var(--container-background-color); /* Background color for the ul component */\n}\n\n.dropdown-options.open {\n display: block;\n}\n\n.dropdown-options li {\n padding: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--cpsl-color-divider);\n color: var(--input-color);\n background: var(--container-background-color);\n font-size: var(--input-font-size);\n}\n\n.dropdown-options li:hover {\n background-color: var(--button-hover-color);\n}\n\n.dropdown-options li svg {\n width: 24px;\n height: 24px;\n margin-right: 8px;\n padding: 0 8px;\n vertical-align: middle; /* Ensure vertical alignment */\n}\n\n/* Custom Scrollbar Styles */\n.dropdown-options::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n background-color: transparent; /* Transparent scrollbar track color */\n}\n\n.dropdown-options::-webkit-scrollbar-thumb {\n background-color: var(--scrollbar-color);\n border-radius: 10px;\n border: 2px solid transparent;\n background-clip: content-box;\n height: 8px;\n}\n\n.dropdown-options::-webkit-scrollbar-track {\n background: transparent; /* Transparent scrollbar track color */\n}\n\n.dropdown-value {\n margin-left: 8px;\n color: var(--cpsl-color-text-secondary);\n}\n\n.dropdown-button .chevron {\n transition: transform 0.3s ease;\n}\n\n.dropdown-button .chevron.closed {\n transform: rotate(180deg);\n}\n\n.search-bar {\n padding: 0; /* Remove padding */\n border-bottom: 1px solid var(--cpsl-color-divider);\n position: sticky; /* Make the search bar sticky */\n top: 0; /* Stick to the top of the container */\n background: var(--container-background-color); /* Ensure background color matches the dropdown */\n z-index: 1; /* Ensure it stays above other items */\n}\n\n.search-bar input {\n width: 100%;\n padding: 8px; /* Add padding to match list item */\n border: none; /* Remove inner border */\n box-sizing: border-box;\n font-size: var(--input-font-size);\n color: var(--input-color);\n background-color: var(--container-background-color);\n border-radius: 0; /* Remove border radius for a flat look */\n}\n\n.search-bar input::placeholder {\n color: var(--input-placeholder-color);\n}\n\n.search-bar input:focus {\n outline: none;\n border-color: transparent; /* Ensure no border on focus */\n}\n","import { Component, Host, h, Prop, State, Element, ComponentInterface, Watch, Listen, EventEmitter, Event } from '@stencil/core';\nimport { Icons } from '../../assets/icons';\nimport { DropdownInputEventDetail } from './dropdown-interface';\n\n@Component({\n tag: 'cpsl-dropdown',\n styleUrl: 'cpsl-dropdown.scss',\n shadow: true,\n})\nexport class CpslDropdown implements ComponentInterface {\n @Element() el: HTMLCpslDropdownElement;\n\n /**\n * Width of the dropdown\n */\n @Prop() width: string = '100%';\n\n /**\n * Whether or not to include search capability\n */\n @Prop() hasCpslSearch: boolean = false;\n\n @State() isOpen: boolean = false;\n @State() searchQuery: string = '';\n @State() filteredItems: Array<DropdownInputEventDetail> = [];\n\n /**\n * Items to be presented in the dropdown\n */\n @Prop() items: Array<DropdownInputEventDetail> = [];\n\n /**\n * The selected item in the dropdown\n */\n @Prop({ mutable: true }) selectedItem?: DropdownInputEventDetail | null = null;\n\n /**\n * Event emitted when the selected item changes\n */\n @Event() selectedItemChange!: EventEmitter<DropdownInputEventDetail>;\n\n @Watch('selectedItem')\n handleSelectedItemChange(newValue: DropdownInputEventDetail | null) {\n if (newValue !== null) {\n this.selectItem(newValue, false);\n }\n }\n\n private toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n };\n\n private selectItem = (item: DropdownInputEventDetail, emitEvent: boolean = true) => {\n this.selectedItem = item;\n this.isOpen = false;\n if (emitEvent) {\n this.selectedItemChange.emit(this.selectedItem);\n }\n };\n\n private handleItemSelect = (item: DropdownInputEventDetail) => () => {\n this.selectItem(item);\n };\n\n private handleSearchQueryChange = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n this.searchQuery = target.value;\n this.filteredItems = this.items.filter(item => item.label.toLowerCase().includes(this.searchQuery.toLowerCase()));\n };\n\n @Watch('isOpen')\n handleOpenChange() {\n if (this.isOpen) {\n this.adjustPosition();\n this.addClickOutsideListener();\n } else {\n this.removeClickOutsideListener();\n }\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n if (this.isOpen) {\n this.adjustPosition();\n }\n }\n\n private adjustPosition() {\n const dropdownOptions = this.el.shadowRoot.querySelector('.dropdown-options') as HTMLElement;\n const parentRect = this.el.parentElement?.getBoundingClientRect();\n const searchBar = this.el.shadowRoot.querySelector('.search-bar') as HTMLElement;\n const viewportHeight = window.innerHeight;\n\n if (parentRect) {\n this.width = `${parentRect.width}px`;\n dropdownOptions.style.left = `${parentRect.x}px`;\n if (window.innerWidth <= 480) {\n searchBar.style.maxHeight = `30px`;\n dropdownOptions.style.top = `425px`;\n dropdownOptions.style.maxHeight = '110px';\n return;\n }\n dropdownOptions.style.top = `${parentRect.y + parentRect.height}px`;\n\n const availableHeight = viewportHeight - parentRect.bottom;\n dropdownOptions.style.maxHeight = `${availableHeight - 8}px`;\n }\n }\n\n private addClickOutsideListener() {\n window.addEventListener('click', this.handleClickOutside);\n }\n\n private removeClickOutsideListener() {\n window.removeEventListener('click', this.handleClickOutside);\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n if (this.isOpen && !this.el.contains(event.target as Node)) {\n this.isOpen = false;\n }\n };\n\n componentWillLoad() {\n if (this.items.length > 0) {\n this.filteredItems = [...this.items];\n if (this.selectedItem !== null) {\n this.selectItem(this.selectedItem, false);\n } else {\n this.selectedItem = this.items[0];\n }\n }\n }\n\n disconnectedCallback() {\n this.removeClickOutsideListener();\n }\n\n render() {\n return (\n <Host>\n <button class=\"dropdown-button\" onClick={this.toggleDropdown}>\n {`${this.selectedItem?.selectedLabel || this.selectedItem?.label} ${this.selectedItem?.value}`}\n <div class={`chevron ${this.isOpen ? '' : 'closed'}`} innerHTML={Icons['chevronUp']} />\n </button>\n <ul class={{ 'dropdown-options': true, 'open': this.isOpen }} style={{ width: this.width }}>\n {this.hasCpslSearch && (\n <li class=\"search-bar\">\n <input type=\"text\" placeholder=\"Search...\" value={this.searchQuery} onInput={this.handleSearchQueryChange} />\n </li>\n )}\n {this.filteredItems.map(item => (\n <li onClick={this.handleItemSelect(item)}>\n <span innerHTML={Icons[item.icon]}></span>\n {item.label} <span class=\"dropdown-value\">{item.value}</span>\n </li>\n ))}\n </ul>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --container-box-shadow: none;\n --container-box-shadow-color: var(--cpsl-color-file-border-placeholder);\n --container-border-color: var(--cpsl-color-file-border-placeholder);\n --container-border-color-error: var(--cpsl-color-file-border-error);\n --container-background-color: var(--cpsl-color-file-surface-default);\n --container-background-color-disabled: var(--cpsl-color-file-surface-disabled);\n --container-background-color-drag: var(--cpsl-color-file-surface-drag);\n --container-border-width: 1px;\n --container-border-radius: var(--cpsl-border-radius-file);\n --container-padding-top: 12px;\n --container-padding-bottom: 12px;\n --container-padding-end: 12px;\n --container-padding-start: 12px;\n --container-height: 48px;\n --container-gap: 8px;\n\n --optional-label-color: var(--cpsl-color-text-secondary);\n --label-color: var(--cpsl-color-text-primary);\n --label-font-size: var(--cpsl-font-size-body-s);\n --label-margin-bottom: 0px;\n\n --helper-text-color: var(--cpsl-color-text-secondary);\n --helper-text-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-color: var(--cpsl-color-text-secondary);\n --helper-text-icon-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-size: 16px;\n --helper-text-font-size: var(--cpsl-font-size-body-xs);\n --helper-text-margin-top: 0px;\n\n --sample-img-height: 40px;\n --sample-img-width: 40px;\n --sample-img-border-radius: 8px;\n\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n font-family: $font-family-base;\n}\n\n.container {\n @include padding(var(--container-padding-top), var(--container-padding-end), var(--container-padding-bottom), var(--container-padding-start));\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n flex-wrap: wrap;\n width: 100%;\n gap: var(--container-gap);\n cursor: pointer;\n position: relative;\n\n border-style: solid;\n border-width: var(--container-border-width);\n border-color: var(--container-border-color);\n border-radius: var(--container-border-radius);\n background: var(--container-background-color);\n\n box-shadow: var(--container-box-shadow);\n\n &.drag,\n &:active {\n background: var(--container-background-color-drag);\n }\n\n &.drag-error {\n cursor: no-drop;\n }\n\n &.error {\n border-color: var(--container-border-color-error);\n }\n}\n\ninput {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n margin: 0px;\n opacity: 0;\n cursor: pointer;\n}\n\n.sample-img {\n height: var(--sample-img-height);\n width: var(--sample-img-width);\n border-radius: var(--sample-img-border-radius);\n object-fit: contain;\n}\n\n.sample-image-name-container {\n display: flex;\n gap: 4px;\n align-items: center;\n text-align: center;\n\n cpsl-icon {\n z-index: 10000;\n --height: 16px;\n --width: 16px;\n }\n}\n\n.inline-text {\n display: inline-block;\n}\n\n.sample-image-name {\n display: inline-block;\n color: var(--cpsl-color-text-tertiary);\n}\n\n.label-container {\n flex: 1;\n}\n\n.file-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 8px;\n justify-content: center;\n align-items: center;\n}\n\n.label {\n display: inline-block;\n color: var(--label-color);\n font-size: var(--label-font-size);\n font-weight: 500;\n\n margin-bottom: var(--label-margin-bottom);\n}\n\n.optional-label {\n display: inline-block;\n color: var(--optional-label-color);\n // TODO: this will use a typography size once typography changes\n font-size: var(--label-font-size);\n font-weight: 500;\n}\n\n.helper-text-container {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--helper-text-color);\n font-size: var(--helper-text-font-size);\n font-weight: 500;\n\n margin-top: var(--helper-text-margin-top);\n\n cpsl-icon {\n --height: var(--helper-text-icon-size);\n --width: var(--helper-text-icon-size);\n --icon-color: var(--helper-text-icon-color);\n }\n}\n\n.error-text {\n color: var(--helper-text-error-color);\n\n cpsl-icon {\n --icon-color: var(--helper-text-icon-error-color);\n }\n}\n","import { Component, Host, Prop, Event, h, EventEmitter, State, Fragment, Element } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-file-upload',\n styleUrl: 'cpsl-file-upload.scss',\n shadow: true,\n})\nexport class CpslFileUpload {\n @Element() el!: HTMLCpslFileUploadElement;\n\n private inputId = `cpsl-file-upload-${inputIds++}`;\n\n @State() file?: File;\n @State() dragOver?: boolean;\n @State() dragError?: boolean;\n @State() isUploading?: boolean;\n @State() uploadError?: boolean;\n\n /**\n * Error text to show below the input. If this is provided the input will enter an error state.\n */\n @Prop() errorText?: string;\n\n /**\n * Filename for the external source of the selected file.\n */\n @Prop() externalFilename?: string;\n\n /**\n * External source for the selected file.\n */\n @Prop() externalSrc?: string;\n\n /**\n * Valid file types.\n */\n @Prop() fileTypes?: string[];\n\n /**\n * Helper text to show below the input. If `\"errorText\"` is provided that will take precedence.\n */\n @Prop() helperText?: string;\n\n /**\n * The label for the input.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the label will display an \"optional\" tag.\n */\n @Prop() showOptionalLabel = false;\n\n /**\n * Function to trigger file upload to server.\n * Returns: boolean indicating success or failure.\n */\n @Prop() uploadFile?: (file: File) => Promise<boolean>;\n\n /**\n * Emitted when the file is dropped in the input.\n */\n @Event() cpslOnDrop!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the file drag enters the input.\n */\n @Event() cpslOnDragEnter!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the file drag leaves the input.\n */\n @Event() cpslOnDragLeave!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the file changes.\n */\n @Event() cpslFileChange!: EventEmitter<File>;\n\n /**\n * Emitted when the file is removed.\n */\n @Event() cpslFileRemoved!: EventEmitter<void>;\n\n private handleDrop = async (ev: DragEvent) => {\n ev.preventDefault();\n\n const item = Array.from(ev.dataTransfer.items)?.[0];\n\n if (item && this.isValidFile(item.type)) {\n const file = item.getAsFile();\n await this.addFile(file);\n }\n\n this.dragOver = false;\n this.dragError = false;\n\n this.cpslOnDrop.emit(ev);\n };\n\n private handleDragEnter = (ev: DragEvent) => {\n ev.preventDefault();\n\n this.dragOver = true;\n\n const item = Array.from(ev.dataTransfer.items)?.[0];\n\n if (item && this.isValidFile(item.type)) {\n this.dragError = true;\n }\n\n this.cpslOnDragEnter.emit(ev);\n };\n\n private handleDragLeave = (ev: DragEvent) => {\n ev.preventDefault();\n\n this.dragOver = false;\n this.dragError = false;\n\n this.cpslOnDragLeave.emit(ev);\n };\n\n private handleInputChange = async (ev: Event) => {\n ev.preventDefault();\n\n const input = this.inputEl;\n\n if (Boolean(input.files.length)) {\n const file = input.files[0];\n\n if (this.isValidFile(file.type)) {\n await this.addFile(file);\n }\n }\n };\n\n private isValidFile = (type: string) => {\n if (Boolean(this.fileTypes?.length) ? !this.fileTypes.includes(type) : false) {\n return false;\n }\n\n return true;\n };\n\n private addFile = async (file: File) => {\n this.file = file;\n this.cpslFileChange.emit(file);\n this.uploadError = false;\n this.isUploading = true;\n const uploadSuccess = Boolean(this.uploadFile) ? await this.uploadFile(file) : true;\n if (!uploadSuccess) {\n this.uploadError = true;\n const input = this.inputEl;\n input.value = '';\n }\n this.isUploading = false;\n };\n\n private removeFile = (e: MouseEvent) => {\n e.preventDefault();\n\n this.file = undefined;\n\n const input = this.inputEl;\n input.value = '';\n\n this.cpslFileRemoved.emit();\n };\n\n get inputEl() {\n return this.el.shadowRoot.getElementById(this.inputId) as HTMLInputElement;\n }\n\n get FileContent() {\n const hasFile = Boolean(this.file) || Boolean(this.externalSrc);\n const isUploading = this.isUploading;\n const error = this.uploadError;\n\n const text = !hasFile ? (\n <Fragment>\n {'Drag file here or '}\n <cpsl-text class=\"inline-text\" variant=\"bodyXS\">\n upload file\n </cpsl-text>\n </Fragment>\n ) : isUploading ? (\n `${this.file.name} is uploading`\n ) : error ? (\n 'Upload Failed'\n ) : (\n this.file?.name || this.externalFilename || ''\n );\n const TopElement = !hasFile ? (\n <cpsl-icon icon=\"image\" />\n ) : isUploading ? (\n <cpsl-spinner />\n ) : error ? (\n <cpsl-icon icon=\"close\" />\n ) : (\n <img class=\"sample-img\" src={Boolean(this.file) ? URL.createObjectURL(this.file) : this.externalSrc} alt=\"Sample Image\" />\n );\n\n return (\n <Fragment>\n {TopElement}\n <span class=\"sample-image-name-container\">\n <cpsl-text class=\"sample-image-name\" variant=\"bodyXS\">\n {text}\n </cpsl-text>\n {hasFile && !error && !isUploading && <cpsl-icon icon=\"close\" onClick={this.removeFile} />}\n </span>\n </Fragment>\n );\n }\n\n render() {\n return (\n <Host>\n {this.label && (\n <label class=\"label\" htmlFor={this.inputId}>\n {this.label}\n {this.required ? '*' : ' '}\n {!this.required && this.showOptionalLabel ? <span class=\"optional-label\">(optional)</span> : ''}\n </label>\n )}\n <slot name=\"label\"></slot>\n <div class={{ 'container': true, 'error': Boolean(this.errorText), 'drag': this.dragOver, 'drag-error': this.dragError }}>\n <div class={{ 'label-container': true }}>\n <slot name=\"left-content\"></slot>\n </div>\n <div class={{ 'file-container': true }}>{this.FileContent}</div>\n <input\n id={this.inputId}\n type=\"file\"\n accept={this.fileTypes?.join(', ') ?? '*'}\n files={Boolean(this.file) ? [this.file] : undefined}\n onDrop={this.handleDrop}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n onChange={this.handleInputChange}\n />\n </div>\n {(this.errorText || this.helperText) && (\n <div class={{ 'helper-text-container': true, 'error-text': Boolean(this.errorText) }}>\n <span>{this.errorText ?? this.helperText}</span>\n </div>\n )}\n </Host>\n );\n }\n}\n\nlet inputIds = 0;\n","export const Images = {heroDefault: \"data:image/png;base64,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\",heroPending: \"data:image/png;base64,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\",heroSuccess: \"data:image/png;base64,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\",}","@import '../../themes/capsule.globals';\n\n:host {\n position: relative;\n top: 0;\n right: 0;\n left: 0;\n width: 100%;\n height: 180px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n:host > .background {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 50%;\n transform: translateY(-25%);\n left: 0;\n right: 0;\n z-index: 0;\n}\n\n:host > .background > .ring {\n position: absolute;\n top: 45px;\n left: 50%;\n transform: translate(-50%, -50%);\n flex-shrink: 0;\n transition: box-shadow 0.3s;\n}\n\n:host(.connection) > .background {\n .ring1 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.07);\n }\n\n .ring2 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.05);\n }\n\n .ring3 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.04);\n }\n}\n\n:host(.pending) > .background {\n .ring0 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.2);\n }\n\n .ring1 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.08);\n }\n\n .ring2 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.06);\n }\n\n .ring3 {\n box-shadow: 0px 0px 20px rgb(0, 0, 0, 0.04);\n }\n\n}\n\n:host(.failed) > .background > {\n .ring0 {\n box-shadow: 0px 0px 20px rgba(240, 68, 56, 0.1);\n }\n\n .ring1 {\n box-shadow: 0px 0px 20px rgba(240, 68, 56, 0.08);\n }\n\n .ring2 {\n box-shadow: 0px 0px 20px rgba(240, 68, 56, 0.06);\n }\n\n .ring3 {\n box-shadow: 0px 0px 20px rgba(240, 68, 56, 0.04);\n }\n}\n\n:host(.approved) > .background {\n .ring1 {\n box-shadow: 0px 0px 20px rgb(219, 0, 179, 0.1);\n }\n\n .ring2 {\n box-shadow: 0px 0px 20px rgb(219, 0, 51, 0.1);\n }\n\n .ring3 {\n box-shadow: 0px 0px 20px rgb(254, 83, 48, 0.1);\n }\n}\n\n:host > .background > .ring3 {\n width: 480px;\n height: 480px;\n border-radius: 480px;\n}\n\n:host > .background > .ring2 {\n width: 360px;\n height: 360px;\n border-radius: 360px;\n}\n\n:host > .background > .ring1 {\n width: 240px;\n height: 240px;\n border-radius: 240px;\n}\n\n:host > .background > .ring0 {\n width: 120px;\n height: 120px;\n border-radius: 120px;\n}\n\n:host > .background > .ringCenter.connection {\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n position: absolute;\n top: 45px;\n left: 50%;\n transform: translate(-50%, -50%);\n\n width: 160px;\n height: 160px;\n border-radius: 160px;\n\n & img {\n width: 100%;\n height: 100%;\n animation: spin 2s linear infinite;\n }\n}\n\n:host > .background > .ringCenter.approved {\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n position: absolute;\n top: 45px;\n left: 50%;\n transform: translate(-50%, -50%);\n\n width: 160px;\n height: 160px;\n border-radius: 160px;\n\n & img {\n width: 100%;\n height: 100%;\n animation: spin 2s linear infinite;\n }\n}\n\n:host > .background > .ringCenter.pending {\n @keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n position: absolute;\n top: 45px;\n left: 50%;\n transform: translate(-50%, -50%);\n\n width: 82px;\n height: 82px;\n border-radius: 82px;\n\n & img {\n width: 100%;\n height: 100%;\n animation: spin 2s linear infinite;\n }\n}\n\n:host > .background > .fadeOut {\n position: absolute;\n height: 200%;\n right: 0;\n bottom: -100%;\n left: 0;\n background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);\n}\n\n:host > .children {\n z-index: 1;\n}\n\n:host(.connection) > .children > .connectDiagramContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 40px;\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { Images } from '../../assets/images';\n\nconst Checkmark = () => (\n <svg width=\"48\" height=\"35\" viewBox=\"0 0 48 35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M47.219 1.11439C48.2604 2.15579 48.2604 3.84423 47.219 4.88563L17.8856 34.219C16.8442 35.2604 15.1558 35.2604 14.1144 34.219L0.781049 20.8856C-0.26035 19.8442 -0.26035 18.1558 0.781049 17.1144C1.82245 16.073 3.51089 16.073 4.55229 17.1144L16 28.5621L43.4477 1.11439C44.4891 0.0729939 46.1776 0.0729939 47.219 1.11439Z\"\n fill=\"url(#paint0_linear_841_278)\"\n />\n <defs>\n <linearGradient id=\"paint0_linear_841_278\" x1=\"48\" y1=\"17.6667\" x2=\"0\" y2=\"17.6667\" gradientUnits=\"userSpaceOnUse\">\n <stop stop-color=\"#BC82F3\" />\n <stop offset=\"0.485\" stop-color=\"#FF6778\" />\n <stop offset=\"1\" stop-color=\"#FFBA71\" />\n </linearGradient>\n </defs>\n </svg>\n);\n\nconst AlertCircle = () => (\n <svg width=\"58\" height=\"58\" viewBox=\"0 0 58 58\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M29 18.3333V29M29 39.6666H29.0267M55.6667 29C55.6667 43.7276 43.7276 55.6666 29 55.6666C14.2724 55.6666 2.33333 43.7276 2.33333 29C2.33333 14.2724 14.2724 2.33331 29 2.33331C43.7276 2.33331 55.6667 14.2724 55.6667 29Z\"\n stroke=\"#F04438\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n);\n\n@Component({\n tag: 'cpsl-hero',\n styleUrl: 'cpsl-hero.scss',\n shadow: true,\n})\nexport class CpslHero {\n /**\n * The variant of the button.\n * Options are: `\"default\"`, `\"loading\", `\"success\".\n * Default is: `\"default\"`.\n */\n @Prop({ reflect: true }) variant?: 'connection' | 'pending' | 'approved' | 'failed' = 'connection';\n\n render() {\n return (\n <Host\n class={{\n // VARIANTS\n connection: this.variant === 'connection',\n pending: this.variant === 'pending',\n approved: this.variant === 'approved',\n failed: this.variant === 'failed',\n }}\n >\n <div class=\"background\">\n <div class=\"ring ring3\" />\n <div class=\"ring ring2\" />\n <div class=\"ring ring1\" />\n <div class=\"ring ring0\" />\n {this.variant === 'connection' && (\n <div class={`ringCenter connection`}>\n <img src={Images.heroDefault} />\n </div>\n )}\n {this.variant === 'pending' && (\n <div class={`ringCenter pending`}>\n <img src={Images.heroPending} />\n </div>\n )}\n\n {this.variant === 'approved' && (\n <div class={`ringCenter approved`}>\n <img src={Images.heroSuccess} />\n </div>\n )}\n <div class=\"fadeOut\" />\n </div>\n <div class=\"children\">\n {this.variant === 'connection' && (\n <div class=\"connectDiagramContainer\">\n <slot name=\"connectionLeft\" />\n <slot name=\"connectionRight\" />\n </div>\n )}\n {this.variant === 'failed' && AlertCircle()}\n {this.variant === 'approved' && Checkmark()}\n </div>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n display: block;\n\n --height: 24px;\n --width: 24px;\n\n --icon-color: var(--cpsl-color-text-primary);\n --icon-fill-color: var(--cpsl-color-text-primary);\n --icon-stroke-color: var(--cpsl-color-text-primary);\n\n width: var(--width);\n height: var(--height);\n}\n\n:host div {\n display: flex;\n\n width: var(--width);\n height: var(--height);\n\n color: var(--icon-color);\n}\n\n:host svg {\n width: var(--width);\n height: var(--height);\n\n & .background-16 {\n fill: var(--cpsl-color-background-16);\n }\n\n & .foreground-0 {\n fill: var(--cpsl-color-foreground-0);\n }\n\n & .fill {\n fill: var(--icon-fill-color);\n }\n\n & .stroke {\n stroke: var(--icon-stroke-color);\n }\n}\n\n:host img {\n width: var(--width);\n height: var(--height);\n\n object-fit: contain;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { IconType } from '../../interface';\nimport { Icons } from '../../assets/icons';\n\n@Component({\n tag: 'cpsl-icon',\n styleUrl: 'cpsl-icon.scss',\n shadow: true,\n})\nexport class CpslIcon {\n /**\n * The external source of the icon. If both `icon` and `src` are provided, `icon` will be used.\n */\n @Prop() src?: string;\n\n /**\n * The name of the icon. If both `icon` and `src` are provided, `icon` will be used.\n */\n @Prop() icon?: IconType;\n\n render() {\n return (\n <Host part=\"icon\" role=\"img\">\n {!Boolean(this.icon) ? <img src={this.src} /> : <div innerHTML={Icons[this.icon]} />}\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --container-box-shadow: none;\n --container-box-shadow-color: none;\n --container-border-color: var(--cpsl-color-input-border-active);\n --container-border-error-color: var(--cpsl-color-input-border-error);\n --container-background-color: var(--cpsl-color-input-surface-default);\n --container-background-color-disabled: var(--cpsl-color-input-surface-disabled);\n --container-border-width: 1px;\n --container-border-radius: var(--cpsl-border-radius-input);\n --container-padding-top: 0px;\n --container-padding-bottom: 0px;\n --container-padding-end: 12px;\n --container-padding-start: 12px;\n --container-height: 48px;\n --container-gap: 8px;\n\n --input-background-color: var(--cpsl-color-input-surface-default);\n --input-background-color-disabled: var(--cpsl-color-input-surface-disabled);\n --input-color: var(--cpsl-color-text-primary);\n --input-placeholder-color: var(--cpsl-color-text-secondary);\n --input-font-size: var(--cpsl-font-size-body-m);\n\n --optional-label-color: var(--cpsl-color-text-secondary);\n --label-color: var(--cpsl-color-text-primary);\n --label-font-size: var(--cpsl-font-size-body-s);\n --label-margin-bottom: 0px;\n\n --helper-text-color: var(--cpsl-color-text-secondary);\n --helper-text-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-color: var(--cpsl-color-text-secondary);\n --helper-text-icon-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-size: 16px;\n --helper-text-font-size: var(--cpsl-font-size-body-xs);\n --helper-text-margin-top: 0px;\n\n --button-padding: 4px;\n\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n font-family: $font-family-base;\n}\n\n:host(:not(.has-value)) {\n --container-border-color: var(--cpsl-color-input-border-placeholder);\n --input-color: var(--cpsl-color-text-secondary);\n}\n\n:host(.disabled) {\n --container-background-color: var(--container-background-color-disabled);\n --input-background-color: var(--input-background-color-disabled);\n --input-color: var(--cpsl-color-text-disabled);\n --container-border-color: transparent;\n}\n\n:host(.focused) {\n --container-box-shadow: 0px 0px 0px 2px var(--container-box-shadow-color);\n --container-border-color: var(--cpsl-color-input-border-active);\n --container-background-color: var(--cpsl-color-input-surface-default);\n}\n\n.input-container {\n @include padding(var(--container-padding-top), var(--container-padding-end), var(--container-padding-bottom), var(--container-padding-start));\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: var(--container-height);\n gap: var(--container-gap);\n\n border-style: solid;\n border-width: var(--container-border-width);\n border-color: var(--container-border-color);\n border-radius: var(--container-border-radius);\n background: var(--container-background-color);\n\n box-shadow: var(--container-box-shadow);\n}\n\n.error-container {\n border-color: var(--container-border-error-color);\n}\n\n.native-input {\n flex: 1;\n min-width: 0;\n border: none;\n height: 100%;\n box-sizing: border-box;\n\n font-size: var(--input-font-size);\n color: var(--input-color);\n background: var(--input-background-color);\n\n &:focus,\n &:focus-visible {\n outline: none;\n }\n\n &::placeholder {\n color: var(--input-placeholder-color);\n opacity: 1; /* Firefox */\n }\n\n font-family: $font-family-base;\n}\n\n.label {\n display: inline-block;\n color: var(--label-color);\n font-size: var(--label-font-size);\n font-weight: 500;\n\n margin-bottom: var(--label-margin-bottom);\n}\n\n.optional-label {\n display: inline-block;\n color: var(--optional-label-color);\n // TODO: this will use a typography size once typography changes\n font-size: var(--label-font-size);\n font-weight: 500;\n}\n\n.helper-text-container {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--helper-text-color);\n font-size: var(--helper-text-font-size);\n font-weight: 500;\n\n margin-top: var(--helper-text-margin-top);\n\n cpsl-icon {\n --height: var(--helper-text-icon-size);\n --width: var(--helper-text-icon-size);\n --icon-color: var(--helper-text-icon-color);\n }\n}\n\n.error-text {\n color: var(--helper-text-error-color);\n\n cpsl-icon {\n --icon-color: var(--helper-text-icon-error-color);\n }\n}\n\n:host {\n ::slotted([slot='start']) {\n flex: 0 0 auto;\n }\n ::slotted([slot='end']) {\n flex: 0 0 auto;\n }\n ::slotted(cpsl-icon) {\n --icon-color: var(--input-color);\n }\n ::slotted(cpsl-button) {\n width: calc(var(--container-height) - var(--button-padding) * 2);\n height: calc(var(--container-height) - var(--button-padding) * 2);\n --button-border-radius: calc(var(--container-border-radius) - 2px);\n }\n slot[name='end']::slotted(cpsl-button) {\n margin-right: calc(calc(var(--container-padding-end) - var(--button-padding)) * -1);\n }\n slot[name='start']::slotted(cpsl-button) {\n margin-left: calc(calc(var(--container-padding-end) - var(--button-padding)) * -1);\n }\n}\n","import { Component, Host, Prop, h, Event, EventEmitter, State, Element, Watch } from '@stencil/core';\nimport { AutocompleteTypes, IconType, TextFieldTypes } from '../../interface';\nimport { InputChangeEventDetail, InputInputEventDetail } from './input-interface';\n\n@Component({\n tag: 'cpsl-input',\n styleUrl: 'cpsl-input.scss',\n shadow: true,\n})\nexport class CpslInput {\n private nativeInput?: HTMLInputElement;\n @Element() el!: HTMLCpslInputElement;\n\n private inputId = `cpsl-input-${inputIds++}`;\n /**\n * The value of the input when the input is focused.\n */\n private focusedValue?: string | number | null;\n\n @State() hasFocus = false;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n * Available options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() autocapitalize = 'off';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: AutocompleteTypes = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * Whether to disable auto disabling of the slotted components.\n */\n @Prop() noAutoDisable: boolean;\n\n /**\n * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.\n *\n * This may not be sufficient for the element to be focused on page load.\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() autofocus = false;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop() disabled = false;\n\n /**\n * A hint to the browser for which enter key to display.\n * Possible values: `\"enter\"`, `\"done\"`, `\"go\"`, `\"next\"`,\n * `\"previous\"`, `\"search\"`, and `\"send\"`.\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';\n\n /**\n * Error text to show below the input. If this is provided the input will enter an error state.\n */\n @Prop() errorText?: string;\n\n /**\n * Helper text to show below the input. If `\"errorText\"` is provided that will take precedence.\n */\n @Prop() helperText?: string;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() inputmode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';\n\n /**\n * The label for the input.\n */\n @Prop() label?: string;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string | number;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string | number;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, `\"date\"`, or `\"password\"`, otherwise it is ignored. When the type attribute is `\"date\"`, `pattern` will only be used in browsers that do not support the `\"date\"` input type natively. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date for more information.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n * This property applies only when the `type` property is set to `\"email\"`,\n * `\"number\"`, `\"password\"`, `\"search\"`, `\"tel\"`, `\"text\"`, or `\"url\"`, otherwise it is ignored.\n */\n @Prop() placeholder?: string;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the label will display an \"optional\" tag.\n */\n @Prop() showOptionalLabel = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() spellcheck = false;\n\n /**\n * The external source of the icon at the start of the input. If both `startIcon` and `startIconSrc` are provided, `startIcon` will be used.\n */\n @Prop() startIconSrc?: string;\n\n /**\n * The name of the icon at the start of the input. If both `startIcon` and `startIconSrc` are provided, `startIcon` will be used.\n */\n @Prop() startIcon?: IconType;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The type of control to display. The default type is `text`.\n */\n @Prop() type: TextFieldTypes = 'text';\n\n /**\n * The value of the controlled input.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * The `cpslInput` event is fired each time the user modifies the input's value.\n * Unlike the `cpslChange` event, the `cpslInput` event is fired for each alteration\n * to the input's value. This typically happens for each keystroke as the user types.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() cpslInput!: EventEmitter<InputInputEventDetail>;\n\n /**\n * The `cpslChange` event is fired when the user modifies the input's value.\n * Unlike the `cpslInput` event, the `cpslChange` event is only fired when changes\n * are committed, not as the user types.\n *\n * Depending on the way the users interacts with the element, the `cpslChange`\n * event fires at a different moment:\n * - When the element loses focus after its value has changed: for elements\n * where the user's interaction is typing.\n */\n @Event() cpslChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() cpslBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() cpslFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when something has been paste into the input.\n */\n @Event() cpslPaste!: EventEmitter<ClipboardEvent>;\n\n @Watch('disabled')\n handleDisable() {\n if (this.disabled) {\n this.disableSlots();\n } else {\n this.enableSlots();\n }\n }\n\n /**\n * Update the native input element when the value changes\n */\n // @Watch('value')\n // protected valueChanged() {\n // const nativeInput = this.nativeInput;\n // const value = this.value;\n // if (nativeInput && nativeInput.value !== value) {\n // nativeInput.value = value;\n // }\n // Boolean(value) ? this.disableSlots() : this.enableSlots();\n // }\n\n componentDidLoad() {\n this.initButtons();\n if (Boolean(this.value)) {\n this.enableSlots();\n } else {\n this.disableSlots();\n }\n }\n\n private disableSlots() {\n if (!this.noAutoDisable) {\n this.endEl?.setAttribute('disabled', 'true');\n this.startEl?.setAttribute('disabled', 'true');\n }\n }\n\n private enableSlots() {\n this.endEl?.setAttribute('disabled', 'false');\n this.startEl?.setAttribute('disabled', 'false');\n }\n\n private initButtons() {\n if (this.endEl?.tagName === 'CPSL-BUTTON') {\n this.endEl.setAttribute('full-width', 'true');\n this.endEl.addEventListener('mousedown', e => {\n e.preventDefault();\n });\n }\n if (this.startEl?.tagName === 'CPSL-BUTTON') {\n this.startEl.setAttribute('full-width', 'true');\n this.startEl.addEventListener('mousedown', e => {\n e.preventDefault();\n });\n }\n }\n\n /**\n * Emits a `cpslInput` event.\n */\n private emitInputChange(event?: Event) {\n this.cpslInput.emit({ value: this.nativeInput.value, event });\n }\n\n /**\n * Emits a `cpslChange` event.\n *\n * This API should be called for user committed changes.\n * This API should not be used for external value changes.\n */\n private emitValueChange(event?: Event) {\n const { value } = this;\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n // Emitting a value change should update the internal state for tracking the focused value\n this.focusedValue = newValue;\n this.cpslChange.emit({ value: newValue, event });\n }\n\n private onInput = (ev: InputEvent) => {\n const input = ev.target as HTMLInputElement | null;\n if (Boolean(input)) {\n this.value = input.value || '';\n input.value === '' ? this.disableSlots() : this.enableSlots();\n }\n\n this.emitInputChange(ev);\n };\n\n private onChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n /**\n * Emits the `cpslChange` event when the input value\n * is different than the value when the input was focused.\n */\n this.emitValueChange(ev);\n }\n\n this.cpslBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.cpslFocus.emit(ev);\n };\n\n private onPaste = (ev: ClipboardEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n\n const input = ev.target as HTMLInputElement;\n const pasteData = ev.clipboardData?.getData('text') || '';\n\n // Manually set the value\n input.value = input.value + pasteData;\n this.value = this.value + pasteData;\n pasteData === '' ? this.disableSlots() : this.enableSlots();\n\n // Emit the cpslPaste event\n this.cpslPaste.emit(ev);\n\n // Emit the cpslChange event since the value was modified by paste\n this.emitInputChange(ev);\n };\n\n private focusInput = () => {\n this.nativeInput.focus();\n };\n\n private get startEl() {\n return this.el.querySelector('[slot=\"start\"]');\n }\n\n private get endEl() {\n return this.el.querySelector('[slot=\"end\"]');\n }\n\n render() {\n return (\n <Host class={{ 'disabled': this.disabled, 'focused': this.hasFocus, 'has-value': Boolean(this.focusedValue) || Boolean(this.value) }}>\n {this.label && (\n <label class=\"label\" htmlFor={this.inputId}>\n {this.label}\n {this.required ? '*' : ' '}\n {!this.required && this.showOptionalLabel ? <span class=\"optional-label\">(optional)</span> : ''}\n </label>\n )}\n <div class={{ 'input-container': true, 'error-container': Boolean(this.errorText) }}>\n <slot name=\"start\"></slot>\n <input\n class=\"native-input\"\n ref={input => (this.nativeInput = input)}\n id={this.inputId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalize}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n enterKeyHint={this.enterkeyhint}\n inputMode={this.inputmode}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder || ''}\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n type={this.type}\n value={this.value}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.focusInput}\n onPaste={this.onPaste}\n />\n <slot name=\"end\"></slot>\n </div>\n {(this.errorText || this.helperText) && (\n <div class={{ 'helper-text-container': true, 'error-text': Boolean(this.errorText) }}>\n <span>{this.errorText ?? this.helperText}</span>\n </div>\n )}\n </Host>\n );\n }\n}\n\nlet inputIds = 0;\n","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * GSAP 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _reverting,\n _context,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi,\n // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\n_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _startAtRevertConfig = {\n suppressEvents: true,\n isStart: true,\n kill: false\n},\n _revertConfigNoKill = {\n suppressEvents: true,\n kill: false\n},\n _revertConfig = {\n suppressEvents: true\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 10000000) / 10000000 || 0;\n},\n // increased precision mostly for timing values.\n_parseRelative = function _parseRelative(start, value) {\n var operator = value.charAt(0),\n end = parseFloat(value.substr(2));\n start = parseFloat(start);\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && !_reverting && _lazyRender();\n animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));\n _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {\n return function (obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults[p]);\n }\n };\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {\n // in case, for example, the _start is moved on a tween that has already rendered, or if it's being inserted into a timeline BEFORE where the playhead is currently. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning. Special case: if it's a timeline (has .add() method) and no duration, we can skip rendering because the user may be populating it AFTER adding it to a parent timeline (unconventional, but possible, and we wouldn't want it to get removed if the parent's autoRemoveChildren is true).\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n _isFromOrFromStart(child) || (timeline._recent = child);\n skipChecks || _postAddChecks(timeline, child);\n timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\n\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {\n _initTween(tween, time, tTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [tTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_isFromOrFromStart = function _isFromOrFromStart(_ref2) {\n var data = _ref2.data;\n return data === \"isFromStart\" || data === \"isStart\";\n},\n _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\n // if iteration changed\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents && !_reverting) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _roundPrecise(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\n animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc,\n totalDuration: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position, percentAnimation) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset,\n isPercent;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n offset = position.charAt(0);\n isPercent = position.substr(-1) === \"%\";\n i = position.indexOf(\"=\");\n\n if (offset === \"<\" || offset === \">\") {\n i >= 0 && (position = position.replace(/=/, \"\"));\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n }\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\n\n if (isPercent && percentAnimation) {\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n }\n\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _createTweenType = function _createTweenType(type, params, timeline) {\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars,\n parent;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = timeline;\n\n if (type) {\n irVars = vars;\n parent = timeline;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return new Tween(params[0], vars, params[varsIndex + 1]);\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value, v) {\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, scope, leaveStrings) {\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n selector = function selector(value) {\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n return function (v) {\n var el = value.current || value.nativeElement || value;\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n };\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt < l && wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\n\n return function (raw) {\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n prevContext = _context,\n context = animation._ctx,\n params,\n scope,\n result;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n context && (_context = context);\n result = params ? callback.apply(scope, params) : callback.call(scope);\n _context = prevContext;\n return result;\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _registerPluginQueue = [],\n _createPlugin = function _createPlugin(config) {\n if (!config) return;\n config = !config.name && config[\"default\"] || config; // UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n if (_windowExists() || config.headless) {\n // edge case: some build tools may pass in a null/undefined value\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n } else {\n _registerPluginQueue.push(config);\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\n// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\n// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\n_hue = function _hue(h, m1, m2) {\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _registerPluginQueue.forEach(_createPlugin);\n }\n\n _raf = typeof requestAnimationFrame !== \"undefined\" && requestAnimationFrame;\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback, once, prioritize) {\n var func = once ? function (t, d, f, v) {\n callback(t, d, f, v);\n\n _self.remove(func);\n } : callback;\n\n _self.remove(callback);\n\n _listeners[prioritize ? \"unshift\" : \"push\"](func);\n\n _wake();\n\n return func;\n },\n remove: function remove(callback, i) {\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars) {\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n\n if (_context) {\n this._ctx = _context;\n\n _context.data.push(this);\n }\n\n _tickerActive || _ticker.wake();\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent && parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() > 0 ? 1 : 0;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value, suppressEvents) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\n //(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false);\n\n _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\n\n\n return _recacheAncestors(this);\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detached parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.revert = function revert(config) {\n if (config === void 0) {\n config = _revertConfig;\n }\n\n var prevIsReverting = _reverting;\n _reverting = config;\n\n if (this._initted || this._startAt) {\n this.timeline && this.timeline.revert(config);\n this.totalTime(-0.01, config.suppressEvents);\n }\n\n this.data !== \"nested\" && config.kill !== false && this.kill();\n _reverting = prevIsReverting;\n return this;\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (Math.abs(animation._ts) || 1);\n animation = animation._dp;\n }\n\n return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). \"_sat\" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert().\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n var time = this._time;\n this._rDelay = value;\n\n _onUpdateTotalDuration(this);\n\n return time ? this.time(time) : this;\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, position) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\n vars.reversed && _this.reverse();\n vars.paused && _this.paused(true);\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n _createTweenType(0, arguments, this);\n\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n _createTweenType(1, arguments, this);\n\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n _createTweenType(2, arguments, this);\n\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),\n // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://gsap.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the \"repeatDelay\" portion\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; // if the playhead is landing exactly at the end of an iteration, use that totalTime rather than only the duration, otherwise it'll skip the 2nd render since it's effectively at the same time.\n\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\n\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n if (!prevTime && time && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position, child));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result.filter((v, i) => result.indexOf(v) === i);\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n initted,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n\n if (!initted) {\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n initted = 1;\n }\n\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate(soft) {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate(soft);\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this, soft);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n\n if (pt || pt === 0) {\n // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\n end = pt;\n }\n }\n }\n\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\n if (!isNaN(parsedStart * end) && end !== \"\") {\n // fun fact: any number multiplied by \"\" is evaluated as the number 0!\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_forceAllPropTweens,\n _initTween = function _initTween(tween, time, tTime) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n if (!tl || keyframes && !vars.stagger) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n\n if (prevStartAt) {\n prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\n\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\n // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\n\n prevStartAt._lazy = 0;\n }\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: !prevStartAt && _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate && function () {\n return _callback(tween, \"onUpdate\");\n },\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set.\n\n tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween\n\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\n\n if (immediateRender) {\n if (dur && time <= 0 && tTime <= 0) {\n // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (!prevStartAt) {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline!\n\n tween._startAt._sat = tween; // used in globalTime()\n\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n tween._zTime = time;\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = tween._ptCache = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n\n keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\n},\n _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],\n pt,\n rootPT,\n lookup,\n i;\n\n if (!ptCache) {\n ptCache = tween._ptCache[property] = [];\n lookup = tween._ptLookup;\n i = tween._targets.length;\n\n while (i--) {\n pt = lookup[i][property];\n\n if (pt && pt.d && pt.d._pt) {\n // it's a plugin, so find the nested PropTween\n pt = pt.d._pt;\n\n while (pt && pt.p !== property && pt.fp !== property) {\n // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\n pt = pt._next;\n }\n }\n\n if (!pt) {\n // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\n // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\n _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\n\n tween.vars[property] = \"+=0\";\n\n _initTween(tween, time);\n\n _forceAllPropTweens = 0;\n return skipRecursion ? _warn(property + \" not eligible for reset\") : 1; // if someone tries to do a quickTo() on a special property like borderRadius which must get split into 4 different properties, that's not eligible for .resetTo().\n }\n\n ptCache.push(pt);\n }\n }\n\n i = ptCache.length;\n\n while (i--) {\n rootPT = ptCache[i];\n pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\n\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n pt.c = value - pt.s;\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\n\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\n }\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n // parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\n_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {\n var ease = obj.ease || easeEach || \"power1.inOut\",\n p,\n a;\n\n if (_isArray(obj)) {\n a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease\n\n obj.forEach(function (value, i) {\n return a.push({\n t: i / (obj.length - 1) * 100,\n v: value,\n e: ease\n });\n });\n } else {\n for (p in obj) {\n a = allProps[p] || (allProps[p] = []);\n p === \"ease\" || a.push({\n t: parseFloat(prop),\n v: obj[p],\n e: ease\n });\n }\n }\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\n _staggerPropsToSkip = {};\n\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function (name) {\n return _staggerPropsToSkip[name] = 1;\n});\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, position, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n position.duration = vars;\n vars = position;\n position = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = vars.parent || _globalTimeline,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://gsap.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {},\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\n }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\n\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n l = parsedTargets.length;\n staggerFunc = stagger && distribute(stagger);\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = _copyExcluding(vars, _staggerPropsToSkip);\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n tl._ease = _easeMap.none;\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n } else if (keyframes) {\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\n ease: \"none\"\n }));\n\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n var time = 0,\n a,\n kf,\n v;\n\n if (_isArray(keyframes)) {\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\n } else {\n copy = {};\n\n for (p in keyframes) {\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n }\n\n for (p in copy) {\n a = copy[p].sort(function (a, b) {\n return a.t - b.t;\n });\n time = 0;\n\n for (i = 0; i < a.length; i++) {\n kf = a[i];\n v = {\n ease: kf.e,\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\n };\n v[p] = kf.v;\n tl.to(parsedTargets, v, time);\n time += v.duration;\n }\n }\n\n tl.duration() < duration && tl.to({}, {\n duration: duration - tl.duration()\n }); // in case keyframes didn't go to 100%\n }\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\n\n vars.reversed && _this3.reverse();\n vars.paused && _this3.paused(true);\n\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay) || 0); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n isNegative = totalTime < 0,\n tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {\n //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && isNegative) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === _roundPrecise(tTime / cycleDuration)) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted && iteration === prevIteration) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n this._tTime = tTime;\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock && this._time !== cycleDuration && this._initted) {\n // this._time will === cycleDuration when we render at EXACTLY the end of an iteration. Without this condition, it'd often do the repeatRefresh render TWICE (again on the very next tick).\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {\n // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values. But we also don't want to dump if we're doing a repeatRefresh render!\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n if (time && !prevTime && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate(soft) {\n // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate(soft);\n return _Animation2.prototype.invalidate.call(this, soft);\n };\n\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {\n _tickerActive || _ticker.wake();\n this._ts || this.play();\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\n ratio;\n this._initted || _initTween(this, time);\n ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\n // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\n // if (_isObject(property)) { // performance optimization\n // \tfor (p in property) {\n // \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\n // \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n // \t\t}\n // \t}\n // } else {\n\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {\n return this.resetTo(property, value, start, startIsRelative, 1); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n } //}\n\n\n _alignPlayhead(this, 0);\n\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n return this.render(0);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return _createTweenType(1, arguments);\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return _createTweenType(2, arguments);\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n\nvar _media = [],\n _listeners = {},\n _emptyArray = [],\n _lastMediaTime = 0,\n _contextID = 0,\n _dispatch = function _dispatch(type) {\n return (_listeners[type] || _emptyArray).map(function (f) {\n return f();\n });\n},\n _onMediaChange = function _onMediaChange() {\n var time = Date.now(),\n matches = [];\n\n if (time - _lastMediaTime > 2) {\n _dispatch(\"matchMediaInit\");\n\n _media.forEach(function (c) {\n var queries = c.queries,\n conditions = c.conditions,\n match,\n p,\n anyMatch,\n toggled;\n\n for (p in queries) {\n match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\n\n match && (anyMatch = 1);\n\n if (match !== conditions[p]) {\n conditions[p] = match;\n toggled = 1;\n }\n }\n\n if (toggled) {\n c.revert();\n anyMatch && matches.push(c);\n }\n });\n\n _dispatch(\"matchMediaRevert\");\n\n matches.forEach(function (c) {\n return c.onMatch(c, function (func) {\n return c.add(null, func);\n });\n });\n _lastMediaTime = time;\n\n _dispatch(\"matchMedia\");\n }\n};\n\nvar Context = /*#__PURE__*/function () {\n function Context(func, scope) {\n this.selector = scope && selector(scope);\n this.data = [];\n this._r = []; // returned/cleanup functions\n\n this.isReverted = false;\n this.id = _contextID++; // to work around issues that frameworks like Vue cause by making things into Proxies which make it impossible to do something like _media.indexOf(this) because \"this\" would no longer refer to the Context instance itself - it'd refer to a Proxy! We needed a way to identify the context uniquely\n\n func && this.add(func);\n }\n\n var _proto5 = Context.prototype;\n\n _proto5.add = function add(name, func, scope) {\n // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function.\n // if (name && _isFunction(name.revert)) {\n // \tthis.data.push(name);\n // \treturn (name._ctx = this);\n // }\n if (_isFunction(name)) {\n scope = func;\n func = name;\n name = _isFunction;\n }\n\n var self = this,\n f = function f() {\n var prev = _context,\n prevSelector = self.selector,\n result;\n prev && prev !== self && prev.data.push(self);\n scope && (self.selector = selector(scope));\n _context = self;\n result = func.apply(self, arguments);\n _isFunction(result) && self._r.push(result);\n _context = prev;\n self.selector = prevSelector;\n self.isReverted = false;\n return result;\n };\n\n self.last = f;\n return name === _isFunction ? f(self, function (func) {\n return self.add(null, func);\n }) : name ? self[name] = f : f;\n };\n\n _proto5.ignore = function ignore(func) {\n var prev = _context;\n _context = null;\n func(this);\n _context = prev;\n };\n\n _proto5.getTweens = function getTweens() {\n var a = [];\n this.data.forEach(function (e) {\n return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\n });\n return a;\n };\n\n _proto5.clear = function clear() {\n this._r.length = this.data.length = 0;\n };\n\n _proto5.kill = function kill(revert, matchMedia) {\n var _this4 = this;\n\n if (revert) {\n (function () {\n var tweens = _this4.getTweens(),\n i = _this4.data.length,\n t;\n\n while (i--) {\n // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\n t = _this4.data[i];\n\n if (t.data === \"isFlip\") {\n t.revert();\n t.getChildren(true, true, false).forEach(function (tween) {\n return tweens.splice(tweens.indexOf(tween), 1);\n });\n }\n } // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\n\n\n tweens.map(function (t) {\n return {\n g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity,\n t: t\n };\n }).sort(function (a, b) {\n return b.g - a.g || -Infinity;\n }).forEach(function (o) {\n return o.t.revert(revert);\n }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\n\n i = _this4.data.length;\n\n while (i--) {\n // make sure we loop backwards so that, for example, SplitTexts that were created later on the same element get reverted first\n t = _this4.data[i];\n\n if (t instanceof Timeline) {\n if (t.data !== \"nested\") {\n t.scrollTrigger && t.scrollTrigger.revert();\n t.kill(); // don't revert() the timeline because that's duplicating efforts since we already reverted all the tweens\n }\n } else {\n !(t instanceof Tween) && t.revert && t.revert(revert);\n }\n }\n\n _this4._r.forEach(function (f) {\n return f(revert, _this4);\n });\n\n _this4.isReverted = true;\n })();\n } else {\n this.data.forEach(function (e) {\n return e.kill && e.kill();\n });\n }\n\n this.clear();\n\n if (matchMedia) {\n var i = _media.length;\n\n while (i--) {\n // previously, we checked _media.indexOf(this), but some frameworks like Vue enforce Proxy objects that make it impossible to get the proper result that way, so we must use a unique ID number instead.\n _media[i].id === this.id && _media.splice(i, 1);\n }\n }\n };\n\n _proto5.revert = function revert(config) {\n this.kill(config || {});\n };\n\n return Context;\n}();\n\nvar MatchMedia = /*#__PURE__*/function () {\n function MatchMedia(scope) {\n this.contexts = [];\n this.scope = scope;\n _context && _context.data.push(this);\n }\n\n var _proto6 = MatchMedia.prototype;\n\n _proto6.add = function add(conditions, func, scope) {\n _isObject(conditions) || (conditions = {\n matches: conditions\n });\n var context = new Context(0, scope || this.scope),\n cond = context.conditions = {},\n mq,\n p,\n active;\n _context && !context.selector && (context.selector = _context.selector); // in case a context is created inside a context. Like a gsap.matchMedia() that's inside a scoped gsap.context()\n\n this.contexts.push(context);\n func = context.add(\"onMatch\", func);\n context.queries = conditions;\n\n for (p in conditions) {\n if (p === \"all\") {\n active = 1;\n } else {\n mq = _win.matchMedia(conditions[p]);\n\n if (mq) {\n _media.indexOf(context) < 0 && _media.push(context);\n (cond[p] = mq.matches) && (active = 1);\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n }\n }\n }\n\n active && func(context, function (f) {\n return context.add(null, f);\n });\n return this;\n } // refresh() {\n // \tlet time = _lastMediaTime,\n // \t\tmedia = _media;\n // \t_lastMediaTime = -1;\n // \t_media = this.contexts;\n // \t_onMediaChange();\n // \t_lastMediaTime = time;\n // \t_media = media;\n // }\n ;\n\n _proto6.revert = function revert(config) {\n this.kill(config || {});\n };\n\n _proto6.kill = function kill(revert) {\n this.contexts.forEach(function (c) {\n return c.kill(revert, true);\n });\n };\n\n return MatchMedia;\n}();\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n quickTo: function quickTo(target, property, vars) {\n var _merge2;\n\n var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = \"+=0.1\", _merge2.paused = true, _merge2), vars || {})),\n func = function func(value, start, startIsRelative) {\n return tween.resetTo(property, value, start, startIsRelative);\n };\n\n func.tween = tween;\n return func;\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref3) {\n var name = _ref3.name,\n effect = _ref3.effect,\n plugins = _ref3.plugins,\n defaults = _ref3.defaults,\n extendTimeline = _ref3.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n context: function context(func, scope) {\n return func ? new Context(func, scope) : _context;\n },\n matchMedia: function matchMedia(scope) {\n return new MatchMedia(scope);\n },\n matchMediaRefresh: function matchMediaRefresh() {\n return _media.forEach(function (c) {\n var cond = c.conditions,\n found,\n p;\n\n for (p in cond) {\n if (cond[p]) {\n cond[p] = false;\n found = 1;\n }\n }\n\n found && c.revert();\n }) || _onMediaChange();\n },\n addEventListener: function addEventListener(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n },\n removeEventListener: function removeEventListener(type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n selector: selector,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n reverting: function reverting() {\n return _reverting;\n },\n context: function context(toAdd) {\n if (toAdd && _context) {\n _context.data.push(toAdd);\n\n toAdd._ctx = _context;\n }\n\n return _context;\n },\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt, v;\n this.tween = tween;\n\n for (p in vars) {\n v = target.getAttribute(p) || \"\";\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt.op = p;\n pt.b = v; // record the beginning value so we can revert()\n\n this._props.push(p);\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\n\n pt = pt._next;\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.12.5\";\n_coreReady = 1;\n_windowExists() && _wake();\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative };","/*!\n * CSSPlugin 3.12.5\n * https://gsap.com\n *\n * Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n\n var target = this.target,\n style = target.style,\n cache = target._gsap;\n\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n\n property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n\n if (cache.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n\n property = _transformProp;\n }\n\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n},\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n},\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n }\n\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n\n i = _reverting();\n\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n\n if (cache.zOrigin && style[_transformOriginProp]) {\n style[_transformOriginProp] += \" \" + cache.zOrigin + \"px\"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs.\n\n cache.zOrigin = 0;\n cache.renderTransform();\n }\n\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n},\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n });\n return saver;\n},\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a <defs> element and/or <mask>. We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a <symbol> or <defs>). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style,\n first2Chars;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n first2Chars = property.substr(0, 2);\n\n if (first2Chars === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(first2Chars === \"--\" ? property : property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n if (toPercent && (property === \"height\" || property === \"width\")) {\n // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding.\n var v = target.style[property];\n target.style[property] = amount + unit;\n px = target[measureProperty];\n v ? target.style[property] = v : _removeProperty(target, property);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n }\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n startValue = target.style[prop];\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n startValue ? target.style[prop] = startValue : _removeProperty(target, prop);\n }\n\n a = [start, end];\n\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n\n _removeIndependentTransforms(style);\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin); // if (!(\"xOrigin\" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration\n // \txOrigin -= bounds.x;\n // \tyOrigin -= bounds.y;\n // }\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute.\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n\n style.scale = style.rotate = style.translate = \"none\";\n }\n\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || !uncache && cache.zOrigin || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || startValue === \"auto\" || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n inlineProps.push(\"visibility\", 0, style.visibility);\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","/*!\n * matrix 3.12.5\n * https://gsap.com\n *\n * Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _doc,\n _win,\n _docElement,\n _body,\n _divContainer,\n _svgContainer,\n _identityMatrix,\n _gEl,\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _hasOffsetBug,\n _setDoc = function _setDoc(element) {\n var doc = element.ownerDocument || element;\n\n if (!(_transformProp in element.style) && \"msTransform\" in element.style) {\n //to improve compatibility with old Microsoft browsers\n _transformProp = \"msTransform\";\n _transformOriginProp = _transformProp + \"Origin\";\n }\n\n while (doc.parentNode && (doc = doc.parentNode)) {}\n\n _win = window;\n _identityMatrix = new Matrix2D();\n\n if (doc) {\n _doc = doc;\n _docElement = doc.documentElement;\n _body = doc.body;\n _gEl = _doc.createElementNS(\"http://www.w3.org/2000/svg\", \"g\"); // prevent any existing CSS from transforming it\n\n _gEl.style.transform = \"none\"; // now test for the offset reporting bug. Use feature detection instead of browser sniffing to make things more bulletproof and future-proof. Hopefully Safari will fix their bug soon.\n\n var d1 = doc.createElement(\"div\"),\n d2 = doc.createElement(\"div\"),\n root = doc && (doc.body || doc.firstElementChild);\n\n if (root && root.appendChild) {\n root.appendChild(d1);\n d1.appendChild(d2);\n d1.setAttribute(\"style\", \"position:static;transform:translate3d(0,0,1px)\");\n _hasOffsetBug = d2.offsetParent !== d1;\n root.removeChild(d1);\n }\n }\n\n return doc;\n},\n _forceNonZeroScale = function _forceNonZeroScale(e) {\n // walks up the element's ancestors and finds any that had their scale set to 0 via GSAP, and changes them to 0.0001 to ensure that measurements work. Firefox has a bug that causes it to incorrectly report getBoundingClientRect() when scale is 0.\n var a, cache;\n\n while (e && e !== _body) {\n cache = e._gsap;\n cache && cache.uncache && cache.get(e, \"x\"); // force re-parsing of transforms if necessary\n\n if (cache && !cache.scaleX && !cache.scaleY && cache.renderTransform) {\n cache.scaleX = cache.scaleY = 1e-4;\n cache.renderTransform(1, cache);\n a ? a.push(cache) : a = [cache];\n }\n\n e = e.parentNode;\n }\n\n return a;\n},\n // possible future addition: pass an element to _forceDisplay() and it'll walk up all its ancestors and make sure anything with display: none is set to display: block, and if there's no parentNode, it'll add it to the body. It returns an Array that you can then feed to _revertDisplay() to have it revert all the changes it made.\n// _forceDisplay = e => {\n// \tlet a = [],\n// \t\tparent;\n// \twhile (e && e !== _body) {\n// \t\tparent = e.parentNode;\n// \t\t(_win.getComputedStyle(e).display === \"none\" || !parent) && a.push(e, e.style.display, parent) && (e.style.display = \"block\");\n// \t\tparent || _body.appendChild(e);\n// \t\te = parent;\n// \t}\n// \treturn a;\n// },\n// _revertDisplay = a => {\n// \tfor (let i = 0; i < a.length; i+=3) {\n// \t\ta[i+1] ? (a[i].style.display = a[i+1]) : a[i].style.removeProperty(\"display\");\n// \t\ta[i+2] || a[i].parentNode.removeChild(a[i]);\n// \t}\n// },\n_svgTemps = [],\n //we create 3 elements for SVG, and 3 for other DOM elements and cache them for performance reasons. They get nested in _divContainer and _svgContainer so that just one element is added to the DOM on each successive attempt. Again, performance is key.\n_divTemps = [],\n _getDocScrollTop = function _getDocScrollTop() {\n return _win.pageYOffset || _doc.scrollTop || _docElement.scrollTop || _body.scrollTop || 0;\n},\n _getDocScrollLeft = function _getDocScrollLeft() {\n return _win.pageXOffset || _doc.scrollLeft || _docElement.scrollLeft || _body.scrollLeft || 0;\n},\n _svgOwner = function _svgOwner(element) {\n return element.ownerSVGElement || ((element.tagName + \"\").toLowerCase() === \"svg\" ? element : null);\n},\n _isFixed = function _isFixed(element) {\n if (_win.getComputedStyle(element).position === \"fixed\") {\n return true;\n }\n\n element = element.parentNode;\n\n if (element && element.nodeType === 1) {\n // avoid document fragments which will throw an error.\n return _isFixed(element);\n }\n},\n _createSibling = function _createSibling(element, i) {\n if (element.parentNode && (_doc || _setDoc(element))) {\n var svg = _svgOwner(element),\n ns = svg ? svg.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\" : \"http://www.w3.org/1999/xhtml\",\n type = svg ? i ? \"rect\" : \"g\" : \"div\",\n x = i !== 2 ? 0 : 100,\n y = i === 3 ? 100 : 0,\n css = \"position:absolute;display:block;pointer-events:none;margin:0;padding:0;\",\n e = _doc.createElementNS ? _doc.createElementNS(ns.replace(/^https/, \"http\"), type) : _doc.createElement(type);\n\n if (i) {\n if (!svg) {\n if (!_divContainer) {\n _divContainer = _createSibling(element);\n _divContainer.style.cssText = css;\n }\n\n e.style.cssText = css + \"width:0.1px;height:0.1px;top:\" + y + \"px;left:\" + x + \"px\";\n\n _divContainer.appendChild(e);\n } else {\n _svgContainer || (_svgContainer = _createSibling(element));\n e.setAttribute(\"width\", 0.01);\n e.setAttribute(\"height\", 0.01);\n e.setAttribute(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n\n _svgContainer.appendChild(e);\n }\n }\n\n return e;\n }\n\n throw \"Need document and parent.\";\n},\n _consolidate = function _consolidate(m) {\n // replaces SVGTransformList.consolidate() because a bug in Firefox causes it to break pointer events. See https://gsap.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n var c = new Matrix2D(),\n i = 0;\n\n for (; i < m.numberOfItems; i++) {\n c.multiply(m.getItem(i).matrix);\n }\n\n return c;\n},\n _getCTM = function _getCTM(svg) {\n var m = svg.getCTM(),\n transform;\n\n if (!m) {\n // Firefox returns null for getCTM() on root <svg> elements, so this is a workaround using a <g> that we temporarily append.\n transform = svg.style[_transformProp];\n svg.style[_transformProp] = \"none\"; // a bug in Firefox causes css transforms to contaminate the getCTM()\n\n svg.appendChild(_gEl);\n m = _gEl.getCTM();\n svg.removeChild(_gEl);\n transform ? svg.style[_transformProp] = transform : svg.style.removeProperty(_transformProp.replace(/([A-Z])/g, \"-$1\").toLowerCase());\n }\n\n return m || _identityMatrix.clone(); // Firefox will still return null if the <svg> has a width/height of 0 in the browser.\n},\n _placeSiblings = function _placeSiblings(element, adjustGOffset) {\n var svg = _svgOwner(element),\n isRootSVG = element === svg,\n siblings = svg ? _svgTemps : _divTemps,\n parent = element.parentNode,\n container,\n m,\n b,\n x,\n y,\n cs;\n\n if (element === _win) {\n return element;\n }\n\n siblings.length || siblings.push(_createSibling(element, 1), _createSibling(element, 2), _createSibling(element, 3));\n container = svg ? _svgContainer : _divContainer;\n\n if (svg) {\n if (isRootSVG) {\n b = _getCTM(element);\n x = -b.e / b.a;\n y = -b.f / b.d;\n m = _identityMatrix;\n } else if (element.getBBox) {\n b = element.getBBox();\n m = element.transform ? element.transform.baseVal : {}; // IE11 doesn't follow the spec.\n\n m = !m.numberOfItems ? _identityMatrix : m.numberOfItems > 1 ? _consolidate(m) : m.getItem(0).matrix; // don't call m.consolidate().matrix because a bug in Firefox makes pointer events not work when consolidate() is called on the same tick as getBoundingClientRect()! See https://gsap.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n\n x = m.a * b.x + m.c * b.y;\n y = m.b * b.x + m.d * b.y;\n } else {\n // may be a <mask> which has no getBBox() so just use defaults instead of throwing errors.\n m = new Matrix2D();\n x = y = 0;\n }\n\n if (adjustGOffset && element.tagName.toLowerCase() === \"g\") {\n x = y = 0;\n }\n\n (isRootSVG ? svg : parent).appendChild(container);\n container.setAttribute(\"transform\", \"matrix(\" + m.a + \",\" + m.b + \",\" + m.c + \",\" + m.d + \",\" + (m.e + x) + \",\" + (m.f + y) + \")\");\n } else {\n x = y = 0;\n\n if (_hasOffsetBug) {\n // some browsers (like Safari) have a bug that causes them to misreport offset values. When an ancestor element has a transform applied, it's supposed to treat it as if it's position: relative (new context). Safari botches this, so we need to find the closest ancestor (between the element and its offsetParent) that has a transform applied and if one is found, grab its offsetTop/Left and subtract them to compensate.\n m = element.offsetParent;\n b = element;\n\n while (b && (b = b.parentNode) && b !== m && b.parentNode) {\n if ((_win.getComputedStyle(b)[_transformProp] + \"\").length > 4) {\n x = b.offsetLeft;\n y = b.offsetTop;\n b = 0;\n }\n }\n }\n\n cs = _win.getComputedStyle(element);\n\n if (cs.position !== \"absolute\" && cs.position !== \"fixed\") {\n m = element.offsetParent;\n\n while (parent && parent !== m) {\n // if there's an ancestor element between the element and its offsetParent that's scrolled, we must factor that in.\n x += parent.scrollLeft || 0;\n y += parent.scrollTop || 0;\n parent = parent.parentNode;\n }\n }\n\n b = container.style;\n b.top = element.offsetTop - y + \"px\";\n b.left = element.offsetLeft - x + \"px\";\n b[_transformProp] = cs[_transformProp];\n b[_transformOriginProp] = cs[_transformOriginProp]; // b.border = m.border;\n // b.borderLeftStyle = m.borderLeftStyle;\n // b.borderTopStyle = m.borderTopStyle;\n // b.borderLeftWidth = m.borderLeftWidth;\n // b.borderTopWidth = m.borderTopWidth;\n\n b.position = cs.position === \"fixed\" ? \"fixed\" : \"absolute\";\n element.parentNode.appendChild(container);\n }\n\n return container;\n},\n _setMatrix = function _setMatrix(m, a, b, c, d, e, f) {\n m.a = a;\n m.b = b;\n m.c = c;\n m.d = d;\n m.e = e;\n m.f = f;\n return m;\n};\n\nexport var Matrix2D = /*#__PURE__*/function () {\n function Matrix2D(a, b, c, d, e, f) {\n if (a === void 0) {\n a = 1;\n }\n\n if (b === void 0) {\n b = 0;\n }\n\n if (c === void 0) {\n c = 0;\n }\n\n if (d === void 0) {\n d = 1;\n }\n\n if (e === void 0) {\n e = 0;\n }\n\n if (f === void 0) {\n f = 0;\n }\n\n _setMatrix(this, a, b, c, d, e, f);\n }\n\n var _proto = Matrix2D.prototype;\n\n _proto.inverse = function inverse() {\n var a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f,\n determinant = a * d - b * c || 1e-10;\n return _setMatrix(this, d / determinant, -b / determinant, -c / determinant, a / determinant, (c * f - d * e) / determinant, -(a * f - b * e) / determinant);\n };\n\n _proto.multiply = function multiply(matrix) {\n var a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f,\n a2 = matrix.a,\n b2 = matrix.c,\n c2 = matrix.b,\n d2 = matrix.d,\n e2 = matrix.e,\n f2 = matrix.f;\n return _setMatrix(this, a2 * a + c2 * c, a2 * b + c2 * d, b2 * a + d2 * c, b2 * b + d2 * d, e + e2 * a + f2 * c, f + e2 * b + f2 * d);\n };\n\n _proto.clone = function clone() {\n return new Matrix2D(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n\n _proto.equals = function equals(matrix) {\n var a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f;\n return a === matrix.a && b === matrix.b && c === matrix.c && d === matrix.d && e === matrix.e && f === matrix.f;\n };\n\n _proto.apply = function apply(point, decoratee) {\n if (decoratee === void 0) {\n decoratee = {};\n }\n\n var x = point.x,\n y = point.y,\n a = this.a,\n b = this.b,\n c = this.c,\n d = this.d,\n e = this.e,\n f = this.f;\n decoratee.x = x * a + y * c + e || 0;\n decoratee.y = x * b + y * d + f || 0;\n return decoratee;\n };\n\n return Matrix2D;\n}(); // Feed in an element and it'll return a 2D matrix (optionally inverted) so that you can translate between coordinate spaces.\n// Inverting lets you translate a global point into a local coordinate space. No inverting lets you go the other way.\n// We needed this to work around various browser bugs, like Firefox doesn't accurately report getScreenCTM() when there\n// are transforms applied to ancestor elements.\n// The matrix math to convert any x/y coordinate is as follows, which is wrapped in a convenient apply() method of Matrix2D above:\n// tx = m.a * x + m.c * y + m.e\n// ty = m.b * x + m.d * y + m.f\n\nexport function getGlobalMatrix(element, inverse, adjustGOffset, includeScrollInFixed) {\n // adjustGOffset is typically used only when grabbing an element's PARENT's global matrix, and it ignores the x/y offset of any SVG <g> elements because they behave in a special way.\n if (!element || !element.parentNode || (_doc || _setDoc(element)).documentElement === element) {\n return new Matrix2D();\n }\n\n var zeroScales = _forceNonZeroScale(element),\n svg = _svgOwner(element),\n temps = svg ? _svgTemps : _divTemps,\n container = _placeSiblings(element, adjustGOffset),\n b1 = temps[0].getBoundingClientRect(),\n b2 = temps[1].getBoundingClientRect(),\n b3 = temps[2].getBoundingClientRect(),\n parent = container.parentNode,\n isFixed = !includeScrollInFixed && _isFixed(element),\n m = new Matrix2D((b2.left - b1.left) / 100, (b2.top - b1.top) / 100, (b3.left - b1.left) / 100, (b3.top - b1.top) / 100, b1.left + (isFixed ? 0 : _getDocScrollLeft()), b1.top + (isFixed ? 0 : _getDocScrollTop()));\n\n parent.removeChild(container);\n\n if (zeroScales) {\n b1 = zeroScales.length;\n\n while (b1--) {\n b2 = zeroScales[b1];\n b2.scaleX = b2.scaleY = 0;\n b2.renderTransform(1, b2);\n }\n }\n\n return inverse ? m.inverse() : m;\n}\nexport { _getDocScrollTop, _getDocScrollLeft, _setDoc, _isFixed, _getCTM }; // export function getMatrix(element) {\n// \t_doc || _setDoc(element);\n// \tlet m = (_win.getComputedStyle(element)[_transformProp] + \"\").substr(7).match(/[-.]*\\d+[.e\\-+]*\\d*[e\\-\\+]*\\d*/g),\n// \t\tis2D = m && m.length === 6;\n// \treturn !m || m.length < 6 ? new Matrix2D() : new Matrix2D(+m[0], +m[1], +m[is2D ? 2 : 4], +m[is2D ? 3 : 5], +m[is2D ? 4 : 12], +m[is2D ? 5 : 13]);\n// }","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * Draggable 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n */\n\n/* eslint-disable */\nimport { getGlobalMatrix, Matrix2D } from \"./utils/matrix.js\";\n\nvar gsap,\n _win,\n _doc,\n _docElement,\n _body,\n _tempDiv,\n _placeholderDiv,\n _coreInitted,\n _checkPrefix,\n _toArray,\n _supportsPassive,\n _isTouchDevice,\n _touchEventLookup,\n _isMultiTouching,\n _isAndroid,\n InertiaPlugin,\n _defaultCursor,\n _supportsPointer,\n _context,\n _getStyleSaver,\n _dragCount = 0,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _emptyFunc = function _emptyFunc() {\n return false;\n},\n _transformProp = \"transform\",\n _transformOriginProp = \"transformOrigin\",\n _round = function _round(value) {\n return Math.round(value * 10000) / 10000;\n},\n _isArray = Array.isArray,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _RAD2DEG = 180 / Math.PI,\n _bigNum = 1e20,\n _identityMatrix = new Matrix2D(),\n _getTime = Date.now || function () {\n return new Date().getTime();\n},\n _renderQueue = [],\n _lookup = {},\n //when a Draggable is created, the target gets a unique _gsDragID property that allows gets associated with the Draggable instance for quick lookups in Draggable.get(). This avoids circular references that could cause gc problems.\n_lookupCount = 0,\n _clickableTagExp = /^(?:a|input|textarea|button|select)$/i,\n _lastDragTime = 0,\n _temp1 = {},\n // a simple object we reuse and populate (usually x/y properties) to conserve memory and improve performance.\n_windowProxy = {},\n //memory/performance optimization - we reuse this object during autoScroll to store window-related bounds/offsets.\n_copy = function _copy(obj, factor) {\n var copy = {},\n p;\n\n for (p in obj) {\n copy[p] = factor ? obj[p] * factor : obj[p];\n }\n\n return copy;\n},\n _extend = function _extend(obj, defaults) {\n for (var p in defaults) {\n if (!(p in obj)) {\n obj[p] = defaults[p];\n }\n }\n\n return obj;\n},\n _setTouchActionForAllDescendants = function _setTouchActionForAllDescendants(elements, value) {\n var i = elements.length,\n children;\n\n while (i--) {\n value ? elements[i].style.touchAction = value : elements[i].style.removeProperty(\"touch-action\");\n children = elements[i].children;\n children && children.length && _setTouchActionForAllDescendants(children, value);\n }\n},\n _renderQueueTick = function _renderQueueTick() {\n return _renderQueue.forEach(function (func) {\n return func();\n });\n},\n _addToRenderQueue = function _addToRenderQueue(func) {\n _renderQueue.push(func);\n\n if (_renderQueue.length === 1) {\n gsap.ticker.add(_renderQueueTick);\n }\n},\n _renderQueueTimeout = function _renderQueueTimeout() {\n return !_renderQueue.length && gsap.ticker.remove(_renderQueueTick);\n},\n _removeFromRenderQueue = function _removeFromRenderQueue(func) {\n var i = _renderQueue.length;\n\n while (i--) {\n if (_renderQueue[i] === func) {\n _renderQueue.splice(i, 1);\n }\n }\n\n gsap.to(_renderQueueTimeout, {\n overwrite: true,\n delay: 15,\n duration: 0,\n onComplete: _renderQueueTimeout,\n data: \"_draggable\"\n }); //remove the \"tick\" listener only after the render queue is empty for 15 seconds (to improve performance). Adding/removing it constantly for every click/touch wouldn't deliver optimal speed, and we also don't want the ticker to keep calling the render method when things are idle for long periods of time (we want to improve battery life on mobile devices).\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n if (!(p in obj)) {\n obj[p] = defaults[p];\n }\n }\n\n return obj;\n},\n _addListener = function _addListener(element, type, func, capture) {\n if (element.addEventListener) {\n var touchType = _touchEventLookup[type];\n capture = capture || (_supportsPassive ? {\n passive: false\n } : null);\n element.addEventListener(touchType || type, func, capture);\n touchType && type !== touchType && element.addEventListener(type, func, capture); //some browsers actually support both, so must we. But pointer events cover all.\n }\n},\n _removeListener = function _removeListener(element, type, func, capture) {\n if (element.removeEventListener) {\n var touchType = _touchEventLookup[type];\n element.removeEventListener(touchType || type, func, capture);\n touchType && type !== touchType && element.removeEventListener(type, func, capture);\n }\n},\n _preventDefault = function _preventDefault(event) {\n event.preventDefault && event.preventDefault();\n event.preventManipulation && event.preventManipulation(); //for some Microsoft browsers\n},\n _hasTouchID = function _hasTouchID(list, ID) {\n var i = list.length;\n\n while (i--) {\n if (list[i].identifier === ID) {\n return true;\n }\n }\n},\n _onMultiTouchDocumentEnd = function _onMultiTouchDocumentEnd(event) {\n _isMultiTouching = event.touches && _dragCount < event.touches.length;\n\n _removeListener(event.target, \"touchend\", _onMultiTouchDocumentEnd);\n},\n _onMultiTouchDocument = function _onMultiTouchDocument(event) {\n _isMultiTouching = event.touches && _dragCount < event.touches.length;\n\n _addListener(event.target, \"touchend\", _onMultiTouchDocumentEnd);\n},\n _getDocScrollTop = function _getDocScrollTop(doc) {\n return _win.pageYOffset || doc.scrollTop || doc.documentElement.scrollTop || doc.body.scrollTop || 0;\n},\n _getDocScrollLeft = function _getDocScrollLeft(doc) {\n return _win.pageXOffset || doc.scrollLeft || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0;\n},\n _addScrollListener = function _addScrollListener(e, callback) {\n _addListener(e, \"scroll\", callback);\n\n if (!_isRoot(e.parentNode)) {\n _addScrollListener(e.parentNode, callback);\n }\n},\n _removeScrollListener = function _removeScrollListener(e, callback) {\n _removeListener(e, \"scroll\", callback);\n\n if (!_isRoot(e.parentNode)) {\n _removeScrollListener(e.parentNode, callback);\n }\n},\n _isRoot = function _isRoot(e) {\n return !!(!e || e === _docElement || e.nodeType === 9 || e === _doc.body || e === _win || !e.nodeType || !e.parentNode);\n},\n _getMaxScroll = function _getMaxScroll(element, axis) {\n var dim = axis === \"x\" ? \"Width\" : \"Height\",\n scroll = \"scroll\" + dim,\n client = \"client\" + dim;\n return Math.max(0, _isRoot(element) ? Math.max(_docElement[scroll], _body[scroll]) - (_win[\"inner\" + dim] || _docElement[client] || _body[client]) : element[scroll] - element[client]);\n},\n _recordMaxScrolls = function _recordMaxScrolls(e, skipCurrent) {\n //records _gsMaxScrollX and _gsMaxScrollY properties for the element and all ancestors up the chain so that we can cap it, otherwise dragging beyond the edges with autoScroll on can endlessly scroll.\n var x = _getMaxScroll(e, \"x\"),\n y = _getMaxScroll(e, \"y\");\n\n if (_isRoot(e)) {\n e = _windowProxy;\n } else {\n _recordMaxScrolls(e.parentNode, skipCurrent);\n }\n\n e._gsMaxScrollX = x;\n e._gsMaxScrollY = y;\n\n if (!skipCurrent) {\n e._gsScrollX = e.scrollLeft || 0;\n e._gsScrollY = e.scrollTop || 0;\n }\n},\n _setStyle = function _setStyle(element, property, value) {\n var style = element.style;\n\n if (!style) {\n return;\n }\n\n if (_isUndefined(style[property])) {\n property = _checkPrefix(property, element) || property;\n }\n\n if (value == null) {\n style.removeProperty && style.removeProperty(property.replace(/([A-Z])/g, \"-$1\").toLowerCase());\n } else {\n style[property] = value;\n }\n},\n _getComputedStyle = function _getComputedStyle(element) {\n return _win.getComputedStyle(element instanceof Element ? element : element.host || (element.parentNode || {}).host || element);\n},\n //the \"host\" stuff helps to accommodate ShadowDom objects.\n_tempRect = {},\n //reuse to reduce garbage collection tasks\n_parseRect = function _parseRect(e) {\n //accepts a DOM element, a mouse event, or a rectangle object and returns the corresponding rectangle with left, right, width, height, top, and bottom properties\n if (e === _win) {\n _tempRect.left = _tempRect.top = 0;\n _tempRect.width = _tempRect.right = _docElement.clientWidth || e.innerWidth || _body.clientWidth || 0;\n _tempRect.height = _tempRect.bottom = (e.innerHeight || 0) - 20 < _docElement.clientHeight ? _docElement.clientHeight : e.innerHeight || _body.clientHeight || 0;\n return _tempRect;\n }\n\n var doc = e.ownerDocument || _doc,\n r = !_isUndefined(e.pageX) ? {\n left: e.pageX - _getDocScrollLeft(doc),\n top: e.pageY - _getDocScrollTop(doc),\n right: e.pageX - _getDocScrollLeft(doc) + 1,\n bottom: e.pageY - _getDocScrollTop(doc) + 1\n } : !e.nodeType && !_isUndefined(e.left) && !_isUndefined(e.top) ? e : _toArray(e)[0].getBoundingClientRect();\n\n if (_isUndefined(r.right) && !_isUndefined(r.width)) {\n r.right = r.left + r.width;\n r.bottom = r.top + r.height;\n } else if (_isUndefined(r.width)) {\n //some browsers don't include width and height properties. We can't just set them directly on r because some browsers throw errors, so create a new generic object.\n r = {\n width: r.right - r.left,\n height: r.bottom - r.top,\n right: r.right,\n left: r.left,\n bottom: r.bottom,\n top: r.top\n };\n }\n\n return r;\n},\n _dispatchEvent = function _dispatchEvent(target, type, callbackName) {\n var vars = target.vars,\n callback = vars[callbackName],\n listeners = target._listeners[type],\n result;\n\n if (_isFunction(callback)) {\n result = callback.apply(vars.callbackScope || target, vars[callbackName + \"Params\"] || [target.pointerEvent]);\n }\n\n if (listeners && target.dispatchEvent(type) === false) {\n result = false;\n }\n\n return result;\n},\n _getBounds = function _getBounds(target, context) {\n //accepts any of the following: a DOM element, jQuery object, selector text, or an object defining bounds as {top, left, width, height} or {minX, maxX, minY, maxY}. Returns an object with left, top, width, and height properties.\n var e = _toArray(target)[0],\n top,\n left,\n offset;\n\n if (!e.nodeType && e !== _win) {\n if (!_isUndefined(target.left)) {\n offset = {\n x: 0,\n y: 0\n }; //_getOffsetTransformOrigin(context); //the bounds should be relative to the origin\n\n return {\n left: target.left - offset.x,\n top: target.top - offset.y,\n width: target.width,\n height: target.height\n };\n }\n\n left = target.min || target.minX || target.minRotation || 0;\n top = target.min || target.minY || 0;\n return {\n left: left,\n top: top,\n width: (target.max || target.maxX || target.maxRotation || 0) - left,\n height: (target.max || target.maxY || 0) - top\n };\n }\n\n return _getElementBounds(e, context);\n},\n _point1 = {},\n //we reuse to minimize garbage collection tasks.\n_getElementBounds = function _getElementBounds(element, context) {\n context = _toArray(context)[0];\n var isSVG = element.getBBox && element.ownerSVGElement,\n doc = element.ownerDocument || _doc,\n left,\n right,\n top,\n bottom,\n matrix,\n p1,\n p2,\n p3,\n p4,\n bbox,\n width,\n height,\n cs;\n\n if (element === _win) {\n top = _getDocScrollTop(doc);\n left = _getDocScrollLeft(doc);\n right = left + (doc.documentElement.clientWidth || element.innerWidth || doc.body.clientWidth || 0);\n bottom = top + ((element.innerHeight || 0) - 20 < doc.documentElement.clientHeight ? doc.documentElement.clientHeight : element.innerHeight || doc.body.clientHeight || 0); //some browsers (like Firefox) ignore absolutely positioned elements, and collapse the height of the documentElement, so it could be 8px, for example, if you have just an absolutely positioned div. In that case, we use the innerHeight to resolve this.\n } else if (context === _win || _isUndefined(context)) {\n return element.getBoundingClientRect();\n } else {\n left = top = 0;\n\n if (isSVG) {\n bbox = element.getBBox();\n width = bbox.width;\n height = bbox.height;\n } else {\n if (element.viewBox && (bbox = element.viewBox.baseVal)) {\n left = bbox.x || 0;\n top = bbox.y || 0;\n width = bbox.width;\n height = bbox.height;\n }\n\n if (!width) {\n cs = _getComputedStyle(element);\n bbox = cs.boxSizing === \"border-box\";\n width = (parseFloat(cs.width) || element.clientWidth || 0) + (bbox ? 0 : parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth));\n height = (parseFloat(cs.height) || element.clientHeight || 0) + (bbox ? 0 : parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth));\n }\n }\n\n right = width;\n bottom = height;\n }\n\n if (element === context) {\n return {\n left: left,\n top: top,\n width: right - left,\n height: bottom - top\n };\n }\n\n matrix = getGlobalMatrix(context, true).multiply(getGlobalMatrix(element));\n p1 = matrix.apply({\n x: left,\n y: top\n });\n p2 = matrix.apply({\n x: right,\n y: top\n });\n p3 = matrix.apply({\n x: right,\n y: bottom\n });\n p4 = matrix.apply({\n x: left,\n y: bottom\n });\n left = Math.min(p1.x, p2.x, p3.x, p4.x);\n top = Math.min(p1.y, p2.y, p3.y, p4.y);\n return {\n left: left,\n top: top,\n width: Math.max(p1.x, p2.x, p3.x, p4.x) - left,\n height: Math.max(p1.y, p2.y, p3.y, p4.y) - top\n };\n},\n _parseInertia = function _parseInertia(draggable, snap, max, min, factor, forceZeroVelocity) {\n var vars = {},\n a,\n i,\n l;\n\n if (snap) {\n if (factor !== 1 && snap instanceof Array) {\n //some data must be altered to make sense, like if the user passes in an array of rotational values in degrees, we must convert it to radians. Or for scrollLeft and scrollTop, we invert the values.\n vars.end = a = [];\n l = snap.length;\n\n if (_isObject(snap[0])) {\n //if the array is populated with objects, like points ({x:100, y:200}), make copies before multiplying by the factor, otherwise we'll mess up the originals and the user may reuse it elsewhere.\n for (i = 0; i < l; i++) {\n a[i] = _copy(snap[i], factor);\n }\n } else {\n for (i = 0; i < l; i++) {\n a[i] = snap[i] * factor;\n }\n }\n\n max += 1.1; //allow 1.1 pixels of wiggle room when snapping in order to work around some browser inconsistencies in the way bounds are reported which can make them roughly a pixel off. For example, if \"snap:[-$('#menu').width(), 0]\" was defined and #menu had a wrapper that was used as the bounds, some browsers would be one pixel off, making the minimum -752 for example when snap was [-753,0], thus instead of snapping to -753, it would snap to 0 since -753 was below the minimum.\n\n min -= 1.1;\n } else if (_isFunction(snap)) {\n vars.end = function (value) {\n var result = snap.call(draggable, value),\n copy,\n p;\n\n if (factor !== 1) {\n if (_isObject(result)) {\n copy = {};\n\n for (p in result) {\n copy[p] = result[p] * factor;\n }\n\n result = copy;\n } else {\n result *= factor;\n }\n }\n\n return result; //we need to ensure that we can scope the function call to the Draggable instance itself so that users can access important values like maxX, minX, maxY, minY, x, and y from within that function.\n };\n } else {\n vars.end = snap;\n }\n }\n\n if (max || max === 0) {\n vars.max = max;\n }\n\n if (min || min === 0) {\n vars.min = min;\n }\n\n if (forceZeroVelocity) {\n vars.velocity = 0;\n }\n\n return vars;\n},\n _isClickable = function _isClickable(element) {\n //sometimes it's convenient to mark an element as clickable by adding a data-clickable=\"true\" attribute (in which case we won't preventDefault() the mouse/touch event). This method checks if the element is an <a>, <input>, or <button> or has the data-clickable or contentEditable attribute set to true (or any of its parent elements).\n var data;\n return !element || !element.getAttribute || element === _body ? false : (data = element.getAttribute(\"data-clickable\")) === \"true\" || data !== \"false\" && (_clickableTagExp.test(element.nodeName + \"\") || element.getAttribute(\"contentEditable\") === \"true\") ? true : _isClickable(element.parentNode);\n},\n _setSelectable = function _setSelectable(elements, selectable) {\n var i = elements.length,\n e;\n\n while (i--) {\n e = elements[i];\n e.ondragstart = e.onselectstart = selectable ? null : _emptyFunc;\n gsap.set(e, {\n lazy: true,\n userSelect: selectable ? \"text\" : \"none\"\n });\n }\n},\n _isFixed = function _isFixed(element) {\n if (_getComputedStyle(element).position === \"fixed\") {\n return true;\n }\n\n element = element.parentNode;\n\n if (element && element.nodeType === 1) {\n // avoid document fragments which will throw an error.\n return _isFixed(element);\n }\n},\n _supports3D,\n _addPaddingBR,\n //The ScrollProxy class wraps an element's contents into another div (we call it \"content\") that we either add padding when necessary or apply a translate3d() transform in order to overscroll (scroll past the boundaries). This allows us to simply set the scrollTop/scrollLeft (or top/left for easier reverse-axis orientation, which is what we do in Draggable) and it'll do all the work for us. For example, if we tried setting scrollTop to -100 on a normal DOM element, it wouldn't work - it'd look the same as setting it to 0, but if we set scrollTop of a ScrollProxy to -100, it'll give the correct appearance by either setting paddingTop of the wrapper to 100 or applying a 100-pixel translateY.\nScrollProxy = function ScrollProxy(element, vars) {\n element = gsap.utils.toArray(element)[0];\n vars = vars || {};\n var content = document.createElement(\"div\"),\n style = content.style,\n node = element.firstChild,\n offsetTop = 0,\n offsetLeft = 0,\n prevTop = element.scrollTop,\n prevLeft = element.scrollLeft,\n scrollWidth = element.scrollWidth,\n scrollHeight = element.scrollHeight,\n extraPadRight = 0,\n maxLeft = 0,\n maxTop = 0,\n elementWidth,\n elementHeight,\n contentHeight,\n nextNode,\n transformStart,\n transformEnd;\n\n if (_supports3D && vars.force3D !== false) {\n transformStart = \"translate3d(\";\n transformEnd = \"px,0px)\";\n } else if (_transformProp) {\n transformStart = \"translate(\";\n transformEnd = \"px)\";\n }\n\n this.scrollTop = function (value, force) {\n if (!arguments.length) {\n return -this.top();\n }\n\n this.top(-value, force);\n };\n\n this.scrollLeft = function (value, force) {\n if (!arguments.length) {\n return -this.left();\n }\n\n this.left(-value, force);\n };\n\n this.left = function (value, force) {\n if (!arguments.length) {\n return -(element.scrollLeft + offsetLeft);\n }\n\n var dif = element.scrollLeft - prevLeft,\n oldOffset = offsetLeft;\n\n if ((dif > 2 || dif < -2) && !force) {\n //if the user interacts with the scrollbar (or something else scrolls it, like the mouse wheel), we should kill any tweens of the ScrollProxy.\n prevLeft = element.scrollLeft;\n gsap.killTweensOf(this, {\n left: 1,\n scrollLeft: 1\n });\n this.left(-prevLeft);\n\n if (vars.onKill) {\n vars.onKill();\n }\n\n return;\n }\n\n value = -value; //invert because scrolling works in the opposite direction\n\n if (value < 0) {\n offsetLeft = value - 0.5 | 0;\n value = 0;\n } else if (value > maxLeft) {\n offsetLeft = value - maxLeft | 0;\n value = maxLeft;\n } else {\n offsetLeft = 0;\n }\n\n if (offsetLeft || oldOffset) {\n if (!this._skip) {\n style[_transformProp] = transformStart + -offsetLeft + \"px,\" + -offsetTop + transformEnd;\n }\n\n if (offsetLeft + extraPadRight >= 0) {\n style.paddingRight = offsetLeft + extraPadRight + \"px\";\n }\n }\n\n element.scrollLeft = value | 0;\n prevLeft = element.scrollLeft; //don't merge this with the line above because some browsers adjust the scrollLeft after it's set, so in order to be 100% accurate in tracking it, we need to ask the browser to report it.\n };\n\n this.top = function (value, force) {\n if (!arguments.length) {\n return -(element.scrollTop + offsetTop);\n }\n\n var dif = element.scrollTop - prevTop,\n oldOffset = offsetTop;\n\n if ((dif > 2 || dif < -2) && !force) {\n //if the user interacts with the scrollbar (or something else scrolls it, like the mouse wheel), we should kill any tweens of the ScrollProxy.\n prevTop = element.scrollTop;\n gsap.killTweensOf(this, {\n top: 1,\n scrollTop: 1\n });\n this.top(-prevTop);\n\n if (vars.onKill) {\n vars.onKill();\n }\n\n return;\n }\n\n value = -value; //invert because scrolling works in the opposite direction\n\n if (value < 0) {\n offsetTop = value - 0.5 | 0;\n value = 0;\n } else if (value > maxTop) {\n offsetTop = value - maxTop | 0;\n value = maxTop;\n } else {\n offsetTop = 0;\n }\n\n if (offsetTop || oldOffset) {\n if (!this._skip) {\n style[_transformProp] = transformStart + -offsetLeft + \"px,\" + -offsetTop + transformEnd;\n }\n }\n\n element.scrollTop = value | 0;\n prevTop = element.scrollTop;\n };\n\n this.maxScrollTop = function () {\n return maxTop;\n };\n\n this.maxScrollLeft = function () {\n return maxLeft;\n };\n\n this.disable = function () {\n node = content.firstChild;\n\n while (node) {\n nextNode = node.nextSibling;\n element.appendChild(node);\n node = nextNode;\n }\n\n if (element === content.parentNode) {\n //in case disable() is called when it's already disabled.\n element.removeChild(content);\n }\n };\n\n this.enable = function () {\n node = element.firstChild;\n\n if (node === content) {\n return;\n }\n\n while (node) {\n nextNode = node.nextSibling;\n content.appendChild(node);\n node = nextNode;\n }\n\n element.appendChild(content);\n this.calibrate();\n };\n\n this.calibrate = function (force) {\n var widthMatches = element.clientWidth === elementWidth,\n cs,\n x,\n y;\n prevTop = element.scrollTop;\n prevLeft = element.scrollLeft;\n\n if (widthMatches && element.clientHeight === elementHeight && content.offsetHeight === contentHeight && scrollWidth === element.scrollWidth && scrollHeight === element.scrollHeight && !force) {\n return; //no need to recalculate things if the width and height haven't changed.\n }\n\n if (offsetTop || offsetLeft) {\n x = this.left();\n y = this.top();\n this.left(-element.scrollLeft);\n this.top(-element.scrollTop);\n }\n\n cs = _getComputedStyle(element); //first, we need to remove any width constraints to see how the content naturally flows so that we can see if it's wider than the containing element. If so, we've got to record the amount of overage so that we can apply that as padding in order for browsers to correctly handle things. Then we switch back to a width of 100% (without that, some browsers don't flow the content correctly)\n\n if (!widthMatches || force) {\n style.display = \"block\";\n style.width = \"auto\";\n style.paddingRight = \"0px\";\n extraPadRight = Math.max(0, element.scrollWidth - element.clientWidth); //if the content is wider than the container, we need to add the paddingLeft and paddingRight in order for things to behave correctly.\n\n if (extraPadRight) {\n extraPadRight += parseFloat(cs.paddingLeft) + (_addPaddingBR ? parseFloat(cs.paddingRight) : 0);\n }\n }\n\n style.display = \"inline-block\";\n style.position = \"relative\";\n style.overflow = \"visible\";\n style.verticalAlign = \"top\";\n style.boxSizing = \"content-box\";\n style.width = \"100%\";\n style.paddingRight = extraPadRight + \"px\"; //some browsers neglect to factor in the bottom padding when calculating the scrollHeight, so we need to add that padding to the content when that happens. Allow a 2px margin for error\n\n if (_addPaddingBR) {\n style.paddingBottom = cs.paddingBottom;\n }\n\n elementWidth = element.clientWidth;\n elementHeight = element.clientHeight;\n scrollWidth = element.scrollWidth;\n scrollHeight = element.scrollHeight;\n maxLeft = element.scrollWidth - elementWidth;\n maxTop = element.scrollHeight - elementHeight;\n contentHeight = content.offsetHeight;\n style.display = \"block\";\n\n if (x || y) {\n this.left(x);\n this.top(y);\n }\n };\n\n this.content = content;\n this.element = element;\n this._skip = false;\n this.enable();\n},\n _initCore = function _initCore(required) {\n if (_windowExists() && document.body) {\n var nav = window && window.navigator;\n _win = window;\n _doc = document;\n _docElement = _doc.documentElement;\n _body = _doc.body;\n _tempDiv = _createElement(\"div\");\n _supportsPointer = !!window.PointerEvent;\n _placeholderDiv = _createElement(\"div\");\n _placeholderDiv.style.cssText = \"visibility:hidden;height:1px;top:-1px;pointer-events:none;position:relative;clear:both;cursor:grab\";\n _defaultCursor = _placeholderDiv.style.cursor === \"grab\" ? \"grab\" : \"move\";\n _isAndroid = nav && nav.userAgent.toLowerCase().indexOf(\"android\") !== -1; //Android handles touch events in an odd way and it's virtually impossible to \"feature test\" so we resort to UA sniffing\n\n _isTouchDevice = \"ontouchstart\" in _docElement && \"orientation\" in _win || nav && (nav.MaxTouchPoints > 0 || nav.msMaxTouchPoints > 0);\n\n _addPaddingBR = function () {\n //this function is in charge of analyzing browser behavior related to padding. It sets the _addPaddingBR to true if the browser doesn't normally factor in the bottom or right padding on the element inside the scrolling area, and it sets _addPaddingLeft to true if it's a browser that requires the extra offset (offsetLeft) to be added to the paddingRight (like Opera).\n var div = _createElement(\"div\"),\n child = _createElement(\"div\"),\n childStyle = child.style,\n parent = _body,\n val;\n\n childStyle.display = \"inline-block\";\n childStyle.position = \"relative\";\n div.style.cssText = \"width:90px;height:40px;padding:10px;overflow:auto;visibility:hidden\";\n div.appendChild(child);\n parent.appendChild(div);\n val = child.offsetHeight + 18 > div.scrollHeight; //div.scrollHeight should be child.offsetHeight + 20 because of the 10px of padding on each side, but some browsers ignore one side. We allow a 2px margin of error.\n\n parent.removeChild(div);\n return val;\n }();\n\n _touchEventLookup = function (types) {\n //we create an object that makes it easy to translate touch event types into their \"pointer\" counterparts if we're in a browser that uses those instead. Like IE10 uses \"MSPointerDown\" instead of \"touchstart\", for example.\n var standard = types.split(\",\"),\n converted = (\"onpointerdown\" in _tempDiv ? \"pointerdown,pointermove,pointerup,pointercancel\" : \"onmspointerdown\" in _tempDiv ? \"MSPointerDown,MSPointerMove,MSPointerUp,MSPointerCancel\" : types).split(\",\"),\n obj = {},\n i = 4;\n\n while (--i > -1) {\n obj[standard[i]] = converted[i];\n obj[converted[i]] = standard[i];\n } //to avoid problems in iOS 9, test to see if the browser supports the \"passive\" option on addEventListener().\n\n\n try {\n _docElement.addEventListener(\"test\", null, Object.defineProperty({}, \"passive\", {\n get: function get() {\n _supportsPassive = 1;\n }\n }));\n } catch (e) {}\n\n return obj;\n }(\"touchstart,touchmove,touchend,touchcancel\");\n\n _addListener(_doc, \"touchcancel\", _emptyFunc); //some older Android devices intermittently stop dispatching \"touchmove\" events if we don't listen for \"touchcancel\" on the document. Very strange indeed.\n\n\n _addListener(_win, \"touchmove\", _emptyFunc); //works around Safari bugs that still allow the page to scroll even when we preventDefault() on the touchmove event.\n\n\n _body && _body.addEventListener(\"touchstart\", _emptyFunc); //works around Safari bug: https://gsap.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\n _addListener(_doc, \"contextmenu\", function () {\n for (var p in _lookup) {\n if (_lookup[p].isPressed) {\n _lookup[p].endDrag();\n }\n }\n });\n\n gsap = _coreInitted = _getGSAP();\n }\n\n if (gsap) {\n InertiaPlugin = gsap.plugins.inertia;\n\n _context = gsap.core.context || function () {};\n\n _checkPrefix = gsap.utils.checkPrefix;\n _transformProp = _checkPrefix(_transformProp);\n _transformOriginProp = _checkPrefix(_transformOriginProp);\n _toArray = gsap.utils.toArray;\n _getStyleSaver = gsap.core.getStyleSaver;\n _supports3D = !!_checkPrefix(\"perspective\");\n } else if (required) {\n console.warn(\"Please gsap.registerPlugin(Draggable)\");\n }\n};\n\nvar EventDispatcher = /*#__PURE__*/function () {\n function EventDispatcher(target) {\n this._listeners = {};\n this.target = target || this;\n }\n\n var _proto = EventDispatcher.prototype;\n\n _proto.addEventListener = function addEventListener(type, callback) {\n var list = this._listeners[type] || (this._listeners[type] = []);\n\n if (!~list.indexOf(callback)) {\n list.push(callback);\n }\n };\n\n _proto.removeEventListener = function removeEventListener(type, callback) {\n var list = this._listeners[type],\n i = list && list.indexOf(callback);\n i >= 0 && list.splice(i, 1);\n };\n\n _proto.dispatchEvent = function dispatchEvent(type) {\n var _this = this;\n\n var result;\n (this._listeners[type] || []).forEach(function (callback) {\n return callback.call(_this, {\n type: type,\n target: _this.target\n }) === false && (result = false);\n });\n return result; //if any of the callbacks return false, pass that along.\n };\n\n return EventDispatcher;\n}();\n\nexport var Draggable = /*#__PURE__*/function (_EventDispatcher) {\n _inheritsLoose(Draggable, _EventDispatcher);\n\n function Draggable(target, vars) {\n var _this2;\n\n _this2 = _EventDispatcher.call(this) || this;\n _coreInitted || _initCore(1);\n target = _toArray(target)[0]; //in case the target is a selector object or selector text\n\n _this2.styles = _getStyleSaver && _getStyleSaver(target, \"transform,left,top\");\n\n if (!InertiaPlugin) {\n InertiaPlugin = gsap.plugins.inertia;\n }\n\n _this2.vars = vars = _copy(vars || {});\n _this2.target = target;\n _this2.x = _this2.y = _this2.rotation = 0;\n _this2.dragResistance = parseFloat(vars.dragResistance) || 0;\n _this2.edgeResistance = isNaN(vars.edgeResistance) ? 1 : parseFloat(vars.edgeResistance) || 0;\n _this2.lockAxis = vars.lockAxis;\n _this2.autoScroll = vars.autoScroll || 0;\n _this2.lockedAxis = null;\n _this2.allowEventDefault = !!vars.allowEventDefault;\n gsap.getProperty(target, \"x\"); // to ensure that transforms are instantiated.\n\n var type = (vars.type || \"x,y\").toLowerCase(),\n xyMode = ~type.indexOf(\"x\") || ~type.indexOf(\"y\"),\n rotationMode = type.indexOf(\"rotation\") !== -1,\n xProp = rotationMode ? \"rotation\" : xyMode ? \"x\" : \"left\",\n yProp = xyMode ? \"y\" : \"top\",\n allowX = !!(~type.indexOf(\"x\") || ~type.indexOf(\"left\") || type === \"scroll\"),\n allowY = !!(~type.indexOf(\"y\") || ~type.indexOf(\"top\") || type === \"scroll\"),\n minimumMovement = vars.minimumMovement || 2,\n self = _assertThisInitialized(_this2),\n triggers = _toArray(vars.trigger || vars.handle || target),\n killProps = {},\n dragEndTime = 0,\n checkAutoScrollBounds = false,\n autoScrollMarginTop = vars.autoScrollMarginTop || 40,\n autoScrollMarginRight = vars.autoScrollMarginRight || 40,\n autoScrollMarginBottom = vars.autoScrollMarginBottom || 40,\n autoScrollMarginLeft = vars.autoScrollMarginLeft || 40,\n isClickable = vars.clickableTest || _isClickable,\n clickTime = 0,\n gsCache = target._gsap || gsap.core.getCache(target),\n isFixed = _isFixed(target),\n getPropAsNum = function getPropAsNum(property, unit) {\n return parseFloat(gsCache.get(target, property, unit));\n },\n ownerDoc = target.ownerDocument || _doc,\n enabled,\n scrollProxy,\n startPointerX,\n startPointerY,\n startElementX,\n startElementY,\n hasBounds,\n hasDragCallback,\n hasMoveCallback,\n maxX,\n minX,\n maxY,\n minY,\n touch,\n touchID,\n rotationOrigin,\n dirty,\n old,\n snapX,\n snapY,\n snapXY,\n isClicking,\n touchEventTarget,\n matrix,\n interrupted,\n allowNativeTouchScrolling,\n touchDragAxis,\n isDispatching,\n clickDispatch,\n trustedClickDispatch,\n isPreventingDefault,\n innerMatrix,\n dragged,\n onContextMenu = function onContextMenu(e) {\n //used to prevent long-touch from triggering a context menu.\n // (self.isPressed && e.which < 2) && self.endDrag() // previously ended drag when context menu was triggered, but instead we should just stop propagation and prevent the default event behavior.\n _preventDefault(e);\n\n e.stopImmediatePropagation && e.stopImmediatePropagation();\n return false;\n },\n //this method gets called on every tick of TweenLite.ticker which allows us to synchronize the renders to the core engine (which is typically synchronized with the display refresh via requestAnimationFrame). This is an optimization - it's better than applying the values inside the \"mousemove\" or \"touchmove\" event handler which may get called many times inbetween refreshes.\n render = function render(suppressEvents) {\n if (self.autoScroll && self.isDragging && (checkAutoScrollBounds || dirty)) {\n var e = target,\n autoScrollFactor = self.autoScroll * 15,\n //multiplying by 15 just gives us a better \"feel\" speed-wise.\n parent,\n isRoot,\n rect,\n pointerX,\n pointerY,\n changeX,\n changeY,\n gap;\n checkAutoScrollBounds = false;\n _windowProxy.scrollTop = _win.pageYOffset != null ? _win.pageYOffset : ownerDoc.documentElement.scrollTop != null ? ownerDoc.documentElement.scrollTop : ownerDoc.body.scrollTop;\n _windowProxy.scrollLeft = _win.pageXOffset != null ? _win.pageXOffset : ownerDoc.documentElement.scrollLeft != null ? ownerDoc.documentElement.scrollLeft : ownerDoc.body.scrollLeft;\n pointerX = self.pointerX - _windowProxy.scrollLeft;\n pointerY = self.pointerY - _windowProxy.scrollTop;\n\n while (e && !isRoot) {\n //walk up the chain and sense wherever the pointer is within 40px of an edge that's scrollable.\n isRoot = _isRoot(e.parentNode);\n parent = isRoot ? _windowProxy : e.parentNode;\n rect = isRoot ? {\n bottom: Math.max(_docElement.clientHeight, _win.innerHeight || 0),\n right: Math.max(_docElement.clientWidth, _win.innerWidth || 0),\n left: 0,\n top: 0\n } : parent.getBoundingClientRect();\n changeX = changeY = 0;\n\n if (allowY) {\n gap = parent._gsMaxScrollY - parent.scrollTop;\n\n if (gap < 0) {\n changeY = gap;\n } else if (pointerY > rect.bottom - autoScrollMarginBottom && gap) {\n checkAutoScrollBounds = true;\n changeY = Math.min(gap, autoScrollFactor * (1 - Math.max(0, rect.bottom - pointerY) / autoScrollMarginBottom) | 0);\n } else if (pointerY < rect.top + autoScrollMarginTop && parent.scrollTop) {\n checkAutoScrollBounds = true;\n changeY = -Math.min(parent.scrollTop, autoScrollFactor * (1 - Math.max(0, pointerY - rect.top) / autoScrollMarginTop) | 0);\n }\n\n if (changeY) {\n parent.scrollTop += changeY;\n }\n }\n\n if (allowX) {\n gap = parent._gsMaxScrollX - parent.scrollLeft;\n\n if (gap < 0) {\n changeX = gap;\n } else if (pointerX > rect.right - autoScrollMarginRight && gap) {\n checkAutoScrollBounds = true;\n changeX = Math.min(gap, autoScrollFactor * (1 - Math.max(0, rect.right - pointerX) / autoScrollMarginRight) | 0);\n } else if (pointerX < rect.left + autoScrollMarginLeft && parent.scrollLeft) {\n checkAutoScrollBounds = true;\n changeX = -Math.min(parent.scrollLeft, autoScrollFactor * (1 - Math.max(0, pointerX - rect.left) / autoScrollMarginLeft) | 0);\n }\n\n if (changeX) {\n parent.scrollLeft += changeX;\n }\n }\n\n if (isRoot && (changeX || changeY)) {\n _win.scrollTo(parent.scrollLeft, parent.scrollTop);\n\n setPointerPosition(self.pointerX + changeX, self.pointerY + changeY);\n }\n\n e = parent;\n }\n }\n\n if (dirty) {\n var x = self.x,\n y = self.y;\n\n if (rotationMode) {\n self.deltaX = x - parseFloat(gsCache.rotation);\n self.rotation = x;\n gsCache.rotation = x + \"deg\";\n gsCache.renderTransform(1, gsCache);\n } else {\n if (scrollProxy) {\n if (allowY) {\n self.deltaY = y - scrollProxy.top();\n scrollProxy.top(y);\n }\n\n if (allowX) {\n self.deltaX = x - scrollProxy.left();\n scrollProxy.left(x);\n }\n } else if (xyMode) {\n if (allowY) {\n self.deltaY = y - parseFloat(gsCache.y);\n gsCache.y = y + \"px\";\n }\n\n if (allowX) {\n self.deltaX = x - parseFloat(gsCache.x);\n gsCache.x = x + \"px\";\n }\n\n gsCache.renderTransform(1, gsCache);\n } else {\n if (allowY) {\n self.deltaY = y - parseFloat(target.style.top || 0);\n target.style.top = y + \"px\";\n }\n\n if (allowX) {\n self.deltaX = x - parseFloat(target.style.left || 0);\n target.style.left = x + \"px\";\n }\n }\n }\n\n if (hasDragCallback && !suppressEvents && !isDispatching) {\n isDispatching = true; //in case onDrag has an update() call (avoid endless loop)\n\n if (_dispatchEvent(self, \"drag\", \"onDrag\") === false) {\n if (allowX) {\n self.x -= self.deltaX;\n }\n\n if (allowY) {\n self.y -= self.deltaY;\n }\n\n render(true);\n }\n\n isDispatching = false;\n }\n }\n\n dirty = false;\n },\n //copies the x/y from the element (whether that be transforms, top/left, or ScrollProxy's top/left) to the Draggable's x and y (and rotation if necessary) properties so that they reflect reality and it also (optionally) applies any snapping necessary. This is used by the InertiaPlugin tween in an onUpdate to ensure things are synced and snapped.\n syncXY = function syncXY(skipOnUpdate, skipSnap) {\n var x = self.x,\n y = self.y,\n snappedValue,\n cs;\n\n if (!target._gsap) {\n //just in case the _gsap cache got wiped, like if the user called clearProps on the transform or something (very rare).\n gsCache = gsap.core.getCache(target);\n }\n\n gsCache.uncache && gsap.getProperty(target, \"x\"); // trigger a re-cache\n\n if (xyMode) {\n self.x = parseFloat(gsCache.x);\n self.y = parseFloat(gsCache.y);\n } else if (rotationMode) {\n self.x = self.rotation = parseFloat(gsCache.rotation);\n } else if (scrollProxy) {\n self.y = scrollProxy.top();\n self.x = scrollProxy.left();\n } else {\n self.y = parseFloat(target.style.top || (cs = _getComputedStyle(target)) && cs.top) || 0;\n self.x = parseFloat(target.style.left || (cs || {}).left) || 0;\n }\n\n if ((snapX || snapY || snapXY) && !skipSnap && (self.isDragging || self.isThrowing)) {\n if (snapXY) {\n _temp1.x = self.x;\n _temp1.y = self.y;\n snappedValue = snapXY(_temp1);\n\n if (snappedValue.x !== self.x) {\n self.x = snappedValue.x;\n dirty = true;\n }\n\n if (snappedValue.y !== self.y) {\n self.y = snappedValue.y;\n dirty = true;\n }\n }\n\n if (snapX) {\n snappedValue = snapX(self.x);\n\n if (snappedValue !== self.x) {\n self.x = snappedValue;\n\n if (rotationMode) {\n self.rotation = snappedValue;\n }\n\n dirty = true;\n }\n }\n\n if (snapY) {\n snappedValue = snapY(self.y);\n\n if (snappedValue !== self.y) {\n self.y = snappedValue;\n }\n\n dirty = true;\n }\n }\n\n dirty && render(true);\n\n if (!skipOnUpdate) {\n self.deltaX = self.x - x;\n self.deltaY = self.y - y;\n\n _dispatchEvent(self, \"throwupdate\", \"onThrowUpdate\");\n }\n },\n buildSnapFunc = function buildSnapFunc(snap, min, max, factor) {\n if (min == null) {\n min = -_bigNum;\n }\n\n if (max == null) {\n max = _bigNum;\n }\n\n if (_isFunction(snap)) {\n return function (n) {\n var edgeTolerance = !self.isPressed ? 1 : 1 - self.edgeResistance; //if we're tweening, disable the edgeTolerance because it's already factored into the tweening values (we don't want to apply it multiple times)\n\n return snap.call(self, (n > max ? max + (n - max) * edgeTolerance : n < min ? min + (n - min) * edgeTolerance : n) * factor) * factor;\n };\n }\n\n if (_isArray(snap)) {\n return function (n) {\n var i = snap.length,\n closest = 0,\n absDif = _bigNum,\n val,\n dif;\n\n while (--i > -1) {\n val = snap[i];\n dif = val - n;\n\n if (dif < 0) {\n dif = -dif;\n }\n\n if (dif < absDif && val >= min && val <= max) {\n closest = i;\n absDif = dif;\n }\n }\n\n return snap[closest];\n };\n }\n\n return isNaN(snap) ? function (n) {\n return n;\n } : function () {\n return snap * factor;\n };\n },\n buildPointSnapFunc = function buildPointSnapFunc(snap, minX, maxX, minY, maxY, radius, factor) {\n radius = radius && radius < _bigNum ? radius * radius : _bigNum; //so we don't have to Math.sqrt() in the functions. Performance optimization.\n\n if (_isFunction(snap)) {\n return function (point) {\n var edgeTolerance = !self.isPressed ? 1 : 1 - self.edgeResistance,\n x = point.x,\n y = point.y,\n result,\n dx,\n dy; //if we're tweening, disable the edgeTolerance because it's already factored into the tweening values (we don't want to apply it multiple times)\n\n point.x = x = x > maxX ? maxX + (x - maxX) * edgeTolerance : x < minX ? minX + (x - minX) * edgeTolerance : x;\n point.y = y = y > maxY ? maxY + (y - maxY) * edgeTolerance : y < minY ? minY + (y - minY) * edgeTolerance : y;\n result = snap.call(self, point);\n\n if (result !== point) {\n point.x = result.x;\n point.y = result.y;\n }\n\n if (factor !== 1) {\n point.x *= factor;\n point.y *= factor;\n }\n\n if (radius < _bigNum) {\n dx = point.x - x;\n dy = point.y - y;\n\n if (dx * dx + dy * dy > radius) {\n point.x = x;\n point.y = y;\n }\n }\n\n return point;\n };\n }\n\n if (_isArray(snap)) {\n return function (p) {\n var i = snap.length,\n closest = 0,\n minDist = _bigNum,\n x,\n y,\n point,\n dist;\n\n while (--i > -1) {\n point = snap[i];\n x = point.x - p.x;\n y = point.y - p.y;\n dist = x * x + y * y;\n\n if (dist < minDist) {\n closest = i;\n minDist = dist;\n }\n }\n\n return minDist <= radius ? snap[closest] : p;\n };\n }\n\n return function (n) {\n return n;\n };\n },\n calculateBounds = function calculateBounds() {\n var bounds, targetBounds, snap, snapIsRaw;\n hasBounds = false;\n\n if (scrollProxy) {\n scrollProxy.calibrate();\n self.minX = minX = -scrollProxy.maxScrollLeft();\n self.minY = minY = -scrollProxy.maxScrollTop();\n self.maxX = maxX = self.maxY = maxY = 0;\n hasBounds = true;\n } else if (!!vars.bounds) {\n bounds = _getBounds(vars.bounds, target.parentNode); //could be a selector/jQuery object or a DOM element or a generic object like {top:0, left:100, width:1000, height:800} or {minX:100, maxX:1100, minY:0, maxY:800}\n\n if (rotationMode) {\n self.minX = minX = bounds.left;\n self.maxX = maxX = bounds.left + bounds.width;\n self.minY = minY = self.maxY = maxY = 0;\n } else if (!_isUndefined(vars.bounds.maxX) || !_isUndefined(vars.bounds.maxY)) {\n bounds = vars.bounds;\n self.minX = minX = bounds.minX;\n self.minY = minY = bounds.minY;\n self.maxX = maxX = bounds.maxX;\n self.maxY = maxY = bounds.maxY;\n } else {\n targetBounds = _getBounds(target, target.parentNode);\n self.minX = minX = Math.round(getPropAsNum(xProp, \"px\") + bounds.left - targetBounds.left);\n self.minY = minY = Math.round(getPropAsNum(yProp, \"px\") + bounds.top - targetBounds.top);\n self.maxX = maxX = Math.round(minX + (bounds.width - targetBounds.width));\n self.maxY = maxY = Math.round(minY + (bounds.height - targetBounds.height));\n }\n\n if (minX > maxX) {\n self.minX = maxX;\n self.maxX = maxX = minX;\n minX = self.minX;\n }\n\n if (minY > maxY) {\n self.minY = maxY;\n self.maxY = maxY = minY;\n minY = self.minY;\n }\n\n if (rotationMode) {\n self.minRotation = minX;\n self.maxRotation = maxX;\n }\n\n hasBounds = true;\n }\n\n if (vars.liveSnap) {\n snap = vars.liveSnap === true ? vars.snap || {} : vars.liveSnap;\n snapIsRaw = _isArray(snap) || _isFunction(snap);\n\n if (rotationMode) {\n snapX = buildSnapFunc(snapIsRaw ? snap : snap.rotation, minX, maxX, 1);\n snapY = null;\n } else {\n if (snap.points) {\n snapXY = buildPointSnapFunc(snapIsRaw ? snap : snap.points, minX, maxX, minY, maxY, snap.radius, scrollProxy ? -1 : 1);\n } else {\n if (allowX) {\n snapX = buildSnapFunc(snapIsRaw ? snap : snap.x || snap.left || snap.scrollLeft, minX, maxX, scrollProxy ? -1 : 1);\n }\n\n if (allowY) {\n snapY = buildSnapFunc(snapIsRaw ? snap : snap.y || snap.top || snap.scrollTop, minY, maxY, scrollProxy ? -1 : 1);\n }\n }\n }\n }\n },\n onThrowComplete = function onThrowComplete() {\n self.isThrowing = false;\n\n _dispatchEvent(self, \"throwcomplete\", \"onThrowComplete\");\n },\n onThrowInterrupt = function onThrowInterrupt() {\n self.isThrowing = false;\n },\n animate = function animate(inertia, forceZeroVelocity) {\n var snap, snapIsRaw, tween, overshootTolerance;\n\n if (inertia && InertiaPlugin) {\n if (inertia === true) {\n snap = vars.snap || vars.liveSnap || {};\n snapIsRaw = _isArray(snap) || _isFunction(snap);\n inertia = {\n resistance: (vars.throwResistance || vars.resistance || 1000) / (rotationMode ? 10 : 1)\n };\n\n if (rotationMode) {\n inertia.rotation = _parseInertia(self, snapIsRaw ? snap : snap.rotation, maxX, minX, 1, forceZeroVelocity);\n } else {\n if (allowX) {\n inertia[xProp] = _parseInertia(self, snapIsRaw ? snap : snap.points || snap.x || snap.left, maxX, minX, scrollProxy ? -1 : 1, forceZeroVelocity || self.lockedAxis === \"x\");\n }\n\n if (allowY) {\n inertia[yProp] = _parseInertia(self, snapIsRaw ? snap : snap.points || snap.y || snap.top, maxY, minY, scrollProxy ? -1 : 1, forceZeroVelocity || self.lockedAxis === \"y\");\n }\n\n if (snap.points || _isArray(snap) && _isObject(snap[0])) {\n inertia.linkedProps = xProp + \",\" + yProp;\n inertia.radius = snap.radius; //note: we also disable liveSnapping while throwing if there's a \"radius\" defined, otherwise it looks weird to have the item thrown past a snapping point but live-snapping mid-tween. We do this by altering the onUpdateParams so that \"skipSnap\" parameter is true for syncXY.\n }\n }\n }\n\n self.isThrowing = true;\n overshootTolerance = !isNaN(vars.overshootTolerance) ? vars.overshootTolerance : vars.edgeResistance === 1 ? 0 : 1 - self.edgeResistance + 0.2;\n\n if (!inertia.duration) {\n inertia.duration = {\n max: Math.max(vars.minDuration || 0, \"maxDuration\" in vars ? vars.maxDuration : 2),\n min: !isNaN(vars.minDuration) ? vars.minDuration : overshootTolerance === 0 || _isObject(inertia) && inertia.resistance > 1000 ? 0 : 0.5,\n overshoot: overshootTolerance\n };\n }\n\n self.tween = tween = gsap.to(scrollProxy || target, {\n inertia: inertia,\n data: \"_draggable\",\n inherit: false,\n onComplete: onThrowComplete,\n onInterrupt: onThrowInterrupt,\n onUpdate: vars.fastMode ? _dispatchEvent : syncXY,\n onUpdateParams: vars.fastMode ? [self, \"onthrowupdate\", \"onThrowUpdate\"] : snap && snap.radius ? [false, true] : []\n });\n\n if (!vars.fastMode) {\n if (scrollProxy) {\n scrollProxy._skip = true; // Microsoft browsers have a bug that causes them to briefly render the position incorrectly (it flashes to the end state when we seek() the tween even though we jump right back to the current position, and this only seems to happen when we're affecting both top and left), so we set a _suspendTransforms flag to prevent it from actually applying the values in the ScrollProxy.\n }\n\n tween.render(1e9, true, true); // force to the end. Remember, the duration will likely change upon initting because that's when InertiaPlugin calculates it.\n\n syncXY(true, true);\n self.endX = self.x;\n self.endY = self.y;\n\n if (rotationMode) {\n self.endRotation = self.x;\n }\n\n tween.play(0);\n syncXY(true, true);\n\n if (scrollProxy) {\n scrollProxy._skip = false; //Microsoft browsers have a bug that causes them to briefly render the position incorrectly (it flashes to the end state when we seek() the tween even though we jump right back to the current position, and this only seems to happen when we're affecting both top and left), so we set a _suspendTransforms flag to prevent it from actually applying the values in the ScrollProxy.\n }\n }\n } else if (hasBounds) {\n self.applyBounds();\n }\n },\n updateMatrix = function updateMatrix(shiftStart) {\n var start = matrix,\n p;\n matrix = getGlobalMatrix(target.parentNode, true);\n\n if (shiftStart && self.isPressed && !matrix.equals(start || new Matrix2D())) {\n //if the matrix changes WHILE the element is pressed, we must adjust the startPointerX and startPointerY accordingly, so we invert the original matrix and figure out where the pointerX and pointerY were in the global space, then apply the new matrix to get the updated coordinates.\n p = start.inverse().apply({\n x: startPointerX,\n y: startPointerY\n });\n matrix.apply(p, p);\n startPointerX = p.x;\n startPointerY = p.y;\n }\n\n if (matrix.equals(_identityMatrix)) {\n //if there are no transforms, we can optimize performance by not factoring in the matrix\n matrix = null;\n }\n },\n recordStartPositions = function recordStartPositions() {\n var edgeTolerance = 1 - self.edgeResistance,\n offsetX = isFixed ? _getDocScrollLeft(ownerDoc) : 0,\n offsetY = isFixed ? _getDocScrollTop(ownerDoc) : 0,\n parsedOrigin,\n x,\n y;\n\n if (xyMode) {\n // in case the user set it as a different unit, like animating the x to \"100%\". We must convert it back to px!\n gsCache.x = getPropAsNum(xProp, \"px\") + \"px\";\n gsCache.y = getPropAsNum(yProp, \"px\") + \"px\";\n gsCache.renderTransform();\n }\n\n updateMatrix(false);\n _point1.x = self.pointerX - offsetX;\n _point1.y = self.pointerY - offsetY;\n matrix && matrix.apply(_point1, _point1);\n startPointerX = _point1.x; //translate to local coordinate system\n\n startPointerY = _point1.y;\n\n if (dirty) {\n setPointerPosition(self.pointerX, self.pointerY);\n render(true);\n }\n\n innerMatrix = getGlobalMatrix(target);\n\n if (scrollProxy) {\n calculateBounds();\n startElementY = scrollProxy.top();\n startElementX = scrollProxy.left();\n } else {\n //if the element is in the process of tweening, don't force snapping to occur because it could make it jump. Imagine the user throwing, then before it's done, clicking on the element in its inbetween state.\n if (isTweening()) {\n syncXY(true, true);\n calculateBounds();\n } else {\n self.applyBounds();\n }\n\n if (rotationMode) {\n parsedOrigin = target.ownerSVGElement ? [gsCache.xOrigin - target.getBBox().x, gsCache.yOrigin - target.getBBox().y] : (_getComputedStyle(target)[_transformOriginProp] || \"0 0\").split(\" \");\n rotationOrigin = self.rotationOrigin = getGlobalMatrix(target).apply({\n x: parseFloat(parsedOrigin[0]) || 0,\n y: parseFloat(parsedOrigin[1]) || 0\n });\n syncXY(true, true);\n x = self.pointerX - rotationOrigin.x - offsetX;\n y = rotationOrigin.y - self.pointerY + offsetY;\n startElementX = self.x; //starting rotation (x always refers to rotation in type:\"rotation\", measured in degrees)\n\n startElementY = self.y = Math.atan2(y, x) * _RAD2DEG;\n } else {\n //parent = !isFixed && target.parentNode;\n //startScrollTop = parent ? parent.scrollTop || 0 : 0;\n //startScrollLeft = parent ? parent.scrollLeft || 0 : 0;\n startElementY = getPropAsNum(yProp, \"px\"); //record the starting top and left values so that we can just add the mouse's movement to them later.\n\n startElementX = getPropAsNum(xProp, \"px\");\n }\n }\n\n if (hasBounds && edgeTolerance) {\n if (startElementX > maxX) {\n startElementX = maxX + (startElementX - maxX) / edgeTolerance;\n } else if (startElementX < minX) {\n startElementX = minX - (minX - startElementX) / edgeTolerance;\n }\n\n if (!rotationMode) {\n if (startElementY > maxY) {\n startElementY = maxY + (startElementY - maxY) / edgeTolerance;\n } else if (startElementY < minY) {\n startElementY = minY - (minY - startElementY) / edgeTolerance;\n }\n }\n }\n\n self.startX = startElementX = _round(startElementX);\n self.startY = startElementY = _round(startElementY);\n },\n isTweening = function isTweening() {\n return self.tween && self.tween.isActive();\n },\n removePlaceholder = function removePlaceholder() {\n if (_placeholderDiv.parentNode && !isTweening() && !self.isDragging) {\n //_placeholderDiv just props open auto-scrolling containers so they don't collapse as the user drags left/up. We remove it after dragging (and throwing, if necessary) finishes.\n _placeholderDiv.parentNode.removeChild(_placeholderDiv);\n }\n },\n //called when the mouse is pressed (or touch starts)\n onPress = function onPress(e, force) {\n var i;\n\n if (!enabled || self.isPressed || !e || (e.type === \"mousedown\" || e.type === \"pointerdown\") && !force && _getTime() - clickTime < 30 && _touchEventLookup[self.pointerEvent.type]) {\n //when we DON'T preventDefault() in order to accommodate touch-scrolling and the user just taps, many browsers also fire a mousedown/mouseup sequence AFTER the touchstart/touchend sequence, thus it'd result in two quick \"click\" events being dispatched. This line senses that condition and halts it on the subsequent mousedown.\n isPreventingDefault && e && enabled && _preventDefault(e); // in some browsers, we must listen for multiple event types like touchstart, pointerdown, mousedown. The first time this function is called, we record whether or not we _preventDefault() so that on duplicate calls, we can do the same if necessary.\n\n return;\n }\n\n interrupted = isTweening();\n dragged = false; // we need to track whether or not it was dragged in this interaction so that if, for example, the user calls .endDrag() to FORCE it to stop and then they keep the mouse pressed down and eventually release, that would normally cause an onClick but we have to skip it in that case if there was dragging that occurred.\n\n self.pointerEvent = e;\n\n if (_touchEventLookup[e.type]) {\n //note: on iOS, BOTH touchmove and mousemove are dispatched, but the mousemove has pageY and pageX of 0 which would mess up the calculations and needlessly hurt performance.\n touchEventTarget = ~e.type.indexOf(\"touch\") ? e.currentTarget || e.target : ownerDoc; //pointer-based touches (for Microsoft browsers) don't remain locked to the original target like other browsers, so we must use the document instead. The event type would be \"MSPointerDown\" or \"pointerdown\".\n\n _addListener(touchEventTarget, \"touchend\", onRelease);\n\n _addListener(touchEventTarget, \"touchmove\", onMove); // possible future change if PointerEvents are more standardized: https://developer.mozilla.org/en-US/docs/Web/API/Element/setPointerCapture\n\n\n _addListener(touchEventTarget, \"touchcancel\", onRelease);\n\n _addListener(ownerDoc, \"touchstart\", _onMultiTouchDocument);\n } else {\n touchEventTarget = null;\n\n _addListener(ownerDoc, \"mousemove\", onMove); //attach these to the document instead of the box itself so that if the user's mouse moves too quickly (and off of the box), things still work.\n\n }\n\n touchDragAxis = null;\n\n if (!_supportsPointer || !touchEventTarget) {\n _addListener(ownerDoc, \"mouseup\", onRelease);\n\n e && e.target && _addListener(e.target, \"mouseup\", onRelease); //we also have to listen directly on the element because some browsers don't bubble up the event to the _doc on elements with contentEditable=\"true\"\n }\n\n isClicking = isClickable.call(self, e.target) && vars.dragClickables === false && !force;\n\n if (isClicking) {\n _addListener(e.target, \"change\", onRelease); //in some browsers, when you mousedown on a <select> element, no mouseup gets dispatched! So we listen for a \"change\" event instead.\n\n\n _dispatchEvent(self, \"pressInit\", \"onPressInit\");\n\n _dispatchEvent(self, \"press\", \"onPress\");\n\n _setSelectable(triggers, true); //accommodates things like inputs and elements with contentEditable=\"true\" (otherwise user couldn't drag to select text)\n\n\n isPreventingDefault = false;\n return;\n }\n\n allowNativeTouchScrolling = !touchEventTarget || allowX === allowY || self.vars.allowNativeTouchScrolling === false || self.vars.allowContextMenu && e && (e.ctrlKey || e.which > 2) ? false : allowX ? \"y\" : \"x\"; //note: in Chrome, right-clicking (for a context menu) fires onPress and it doesn't have the event.which set properly, so we must look for event.ctrlKey. If the user wants to allow context menus we should of course sense it here and not allow native touch scrolling.\n\n isPreventingDefault = !allowNativeTouchScrolling && !self.allowEventDefault;\n\n if (isPreventingDefault) {\n _preventDefault(e);\n\n _addListener(_win, \"touchforcechange\", _preventDefault); //works around safari bug: https://gsap.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\n }\n\n if (e.changedTouches) {\n //touch events store the data slightly differently\n e = touch = e.changedTouches[0];\n touchID = e.identifier;\n } else if (e.pointerId) {\n touchID = e.pointerId; //for some Microsoft browsers\n } else {\n touch = touchID = null;\n }\n\n _dragCount++;\n\n _addToRenderQueue(render); //causes the Draggable to render on each \"tick\" of gsap.ticker (performance optimization - updating values in a mousemove can cause them to happen too frequently, like multiple times between frame redraws which is wasteful, and it also prevents values from updating properly in IE8)\n\n\n startPointerY = self.pointerY = e.pageY; //record the starting x and y so that we can calculate the movement from the original in _onMouseMove\n\n startPointerX = self.pointerX = e.pageX;\n\n _dispatchEvent(self, \"pressInit\", \"onPressInit\");\n\n if (allowNativeTouchScrolling || self.autoScroll) {\n _recordMaxScrolls(target.parentNode);\n }\n\n if (target.parentNode && self.autoScroll && !scrollProxy && !rotationMode && target.parentNode._gsMaxScrollX && !_placeholderDiv.parentNode && !target.getBBox) {\n //add a placeholder div to prevent the parent container from collapsing when the user drags the element left.\n _placeholderDiv.style.width = target.parentNode.scrollWidth + \"px\";\n target.parentNode.appendChild(_placeholderDiv);\n }\n\n recordStartPositions();\n self.tween && self.tween.kill();\n self.isThrowing = false;\n gsap.killTweensOf(scrollProxy || target, killProps, true); //in case the user tries to drag it before the last tween is done.\n\n scrollProxy && gsap.killTweensOf(target, {\n scrollTo: 1\n }, true); //just in case the original target's scroll position is being tweened somewhere else.\n\n self.tween = self.lockedAxis = null;\n\n if (vars.zIndexBoost || !rotationMode && !scrollProxy && vars.zIndexBoost !== false) {\n target.style.zIndex = Draggable.zIndex++;\n }\n\n self.isPressed = true;\n hasDragCallback = !!(vars.onDrag || self._listeners.drag);\n hasMoveCallback = !!(vars.onMove || self._listeners.move);\n\n if (vars.cursor !== false || vars.activeCursor) {\n i = triggers.length;\n\n while (--i > -1) {\n gsap.set(triggers[i], {\n cursor: vars.activeCursor || vars.cursor || (_defaultCursor === \"grab\" ? \"grabbing\" : _defaultCursor)\n });\n }\n }\n\n _dispatchEvent(self, \"press\", \"onPress\");\n },\n //called every time the mouse/touch moves\n onMove = function onMove(e) {\n var originalEvent = e,\n touches,\n pointerX,\n pointerY,\n i,\n dx,\n dy;\n\n if (!enabled || _isMultiTouching || !self.isPressed || !e) {\n isPreventingDefault && e && enabled && _preventDefault(e); // in some browsers, we must listen for multiple event types like touchmove, pointermove, mousemove. The first time this function is called, we record whether or not we _preventDefault() so that on duplicate calls, we can do the same if necessary.\n\n return;\n }\n\n self.pointerEvent = e;\n touches = e.changedTouches;\n\n if (touches) {\n //touch events store the data slightly differently\n e = touches[0];\n\n if (e !== touch && e.identifier !== touchID) {\n //Usually changedTouches[0] will be what we're looking for, but in case it's not, look through the rest of the array...(and Android browsers don't reuse the event like iOS)\n i = touches.length;\n\n while (--i > -1 && (e = touches[i]).identifier !== touchID && e.target !== target) {} // Some Android devices dispatch a touchstart AND pointerdown initially, and then only pointermove thus the touchID may not match because it was grabbed from the touchstart event whereas the pointer event is the one that the browser dispatches for move, so if the event target matches this Draggable's target, let it through.\n\n\n if (i < 0) {\n return;\n }\n }\n } else if (e.pointerId && touchID && e.pointerId !== touchID) {\n //for some Microsoft browsers, we must attach the listener to the doc rather than the trigger so that when the finger moves outside the bounds of the trigger, things still work. So if the event we're receiving has a pointerId that doesn't match the touchID, ignore it (for multi-touch)\n return;\n }\n\n if (touchEventTarget && allowNativeTouchScrolling && !touchDragAxis) {\n //Android browsers force us to decide on the first \"touchmove\" event if we should allow the default (scrolling) behavior or preventDefault(). Otherwise, a \"touchcancel\" will be fired and then no \"touchmove\" or \"touchend\" will fire during the scrolling (no good).\n _point1.x = e.pageX - (isFixed ? _getDocScrollLeft(ownerDoc) : 0);\n _point1.y = e.pageY - (isFixed ? _getDocScrollTop(ownerDoc) : 0);\n matrix && matrix.apply(_point1, _point1);\n pointerX = _point1.x;\n pointerY = _point1.y;\n dx = Math.abs(pointerX - startPointerX);\n dy = Math.abs(pointerY - startPointerY);\n\n if (dx !== dy && (dx > minimumMovement || dy > minimumMovement) || _isAndroid && allowNativeTouchScrolling === touchDragAxis) {\n touchDragAxis = dx > dy && allowX ? \"x\" : \"y\";\n\n if (allowNativeTouchScrolling && touchDragAxis !== allowNativeTouchScrolling) {\n _addListener(_win, \"touchforcechange\", _preventDefault); // prevents native touch scrolling from taking over if the user started dragging in the other direction in iOS Safari\n\n }\n\n if (self.vars.lockAxisOnTouchScroll !== false && allowX && allowY) {\n self.lockedAxis = touchDragAxis === \"x\" ? \"y\" : \"x\";\n _isFunction(self.vars.onLockAxis) && self.vars.onLockAxis.call(self, originalEvent);\n }\n\n if (_isAndroid && allowNativeTouchScrolling === touchDragAxis) {\n onRelease(originalEvent);\n return;\n }\n }\n }\n\n if (!self.allowEventDefault && (!allowNativeTouchScrolling || touchDragAxis && allowNativeTouchScrolling !== touchDragAxis) && originalEvent.cancelable !== false) {\n _preventDefault(originalEvent);\n\n isPreventingDefault = true;\n } else if (isPreventingDefault) {\n isPreventingDefault = false;\n }\n\n if (self.autoScroll) {\n checkAutoScrollBounds = true;\n }\n\n setPointerPosition(e.pageX, e.pageY, hasMoveCallback);\n },\n setPointerPosition = function setPointerPosition(pointerX, pointerY, invokeOnMove) {\n var dragTolerance = 1 - self.dragResistance,\n edgeTolerance = 1 - self.edgeResistance,\n prevPointerX = self.pointerX,\n prevPointerY = self.pointerY,\n prevStartElementY = startElementY,\n prevX = self.x,\n prevY = self.y,\n prevEndX = self.endX,\n prevEndY = self.endY,\n prevEndRotation = self.endRotation,\n prevDirty = dirty,\n xChange,\n yChange,\n x,\n y,\n dif,\n temp;\n self.pointerX = pointerX;\n self.pointerY = pointerY;\n\n if (isFixed) {\n pointerX -= _getDocScrollLeft(ownerDoc);\n pointerY -= _getDocScrollTop(ownerDoc);\n }\n\n if (rotationMode) {\n y = Math.atan2(rotationOrigin.y - pointerY, pointerX - rotationOrigin.x) * _RAD2DEG;\n dif = self.y - y;\n\n if (dif > 180) {\n startElementY -= 360;\n self.y = y;\n } else if (dif < -180) {\n startElementY += 360;\n self.y = y;\n }\n\n if (self.x !== startElementX || Math.abs(startElementY - y) > minimumMovement) {\n self.y = y;\n x = startElementX + (startElementY - y) * dragTolerance;\n } else {\n x = startElementX;\n }\n } else {\n if (matrix) {\n temp = pointerX * matrix.a + pointerY * matrix.c + matrix.e;\n pointerY = pointerX * matrix.b + pointerY * matrix.d + matrix.f;\n pointerX = temp;\n }\n\n yChange = pointerY - startPointerY;\n xChange = pointerX - startPointerX;\n\n if (yChange < minimumMovement && yChange > -minimumMovement) {\n yChange = 0;\n }\n\n if (xChange < minimumMovement && xChange > -minimumMovement) {\n xChange = 0;\n }\n\n if ((self.lockAxis || self.lockedAxis) && (xChange || yChange)) {\n temp = self.lockedAxis;\n\n if (!temp) {\n self.lockedAxis = temp = allowX && Math.abs(xChange) > Math.abs(yChange) ? \"y\" : allowY ? \"x\" : null;\n\n if (temp && _isFunction(self.vars.onLockAxis)) {\n self.vars.onLockAxis.call(self, self.pointerEvent);\n }\n }\n\n if (temp === \"y\") {\n yChange = 0;\n } else if (temp === \"x\") {\n xChange = 0;\n }\n }\n\n x = _round(startElementX + xChange * dragTolerance);\n y = _round(startElementY + yChange * dragTolerance);\n }\n\n if ((snapX || snapY || snapXY) && (self.x !== x || self.y !== y && !rotationMode)) {\n if (snapXY) {\n _temp1.x = x;\n _temp1.y = y;\n temp = snapXY(_temp1);\n x = _round(temp.x);\n y = _round(temp.y);\n }\n\n if (snapX) {\n x = _round(snapX(x));\n }\n\n if (snapY) {\n y = _round(snapY(y));\n }\n }\n\n if (hasBounds) {\n if (x > maxX) {\n x = maxX + Math.round((x - maxX) * edgeTolerance);\n } else if (x < minX) {\n x = minX + Math.round((x - minX) * edgeTolerance);\n }\n\n if (!rotationMode) {\n if (y > maxY) {\n y = Math.round(maxY + (y - maxY) * edgeTolerance);\n } else if (y < minY) {\n y = Math.round(minY + (y - minY) * edgeTolerance);\n }\n }\n }\n\n if (self.x !== x || self.y !== y && !rotationMode) {\n if (rotationMode) {\n self.endRotation = self.x = self.endX = x;\n dirty = true;\n } else {\n if (allowY) {\n self.y = self.endY = y;\n dirty = true; //a flag that indicates we need to render the target next time the TweenLite.ticker dispatches a \"tick\" event (typically on a requestAnimationFrame) - this is a performance optimization (we shouldn't render on every move because sometimes many move events can get dispatched between screen refreshes, and that'd be wasteful to render every time)\n }\n\n if (allowX) {\n self.x = self.endX = x;\n dirty = true;\n }\n }\n\n if (!invokeOnMove || _dispatchEvent(self, \"move\", \"onMove\") !== false) {\n if (!self.isDragging && self.isPressed) {\n self.isDragging = dragged = true;\n\n _dispatchEvent(self, \"dragstart\", \"onDragStart\");\n }\n } else {\n //revert because the onMove returned false!\n self.pointerX = prevPointerX;\n self.pointerY = prevPointerY;\n startElementY = prevStartElementY;\n self.x = prevX;\n self.y = prevY;\n self.endX = prevEndX;\n self.endY = prevEndY;\n self.endRotation = prevEndRotation;\n dirty = prevDirty;\n }\n }\n },\n //called when the mouse/touch is released\n onRelease = function onRelease(e, force) {\n if (!enabled || !self.isPressed || e && touchID != null && !force && (e.pointerId && e.pointerId !== touchID && e.target !== target || e.changedTouches && !_hasTouchID(e.changedTouches, touchID))) {\n //for some Microsoft browsers, we must attach the listener to the doc rather than the trigger so that when the finger moves outside the bounds of the trigger, things still work. So if the event we're receiving has a pointerId that doesn't match the touchID, ignore it (for multi-touch)\n isPreventingDefault && e && enabled && _preventDefault(e); // in some browsers, we must listen for multiple event types like touchend, pointerup, mouseup. The first time this function is called, we record whether or not we _preventDefault() so that on duplicate calls, we can do the same if necessary.\n\n return;\n }\n\n self.isPressed = false;\n var originalEvent = e,\n wasDragging = self.isDragging,\n isContextMenuRelease = self.vars.allowContextMenu && e && (e.ctrlKey || e.which > 2),\n placeholderDelayedCall = gsap.delayedCall(0.001, removePlaceholder),\n touches,\n i,\n syntheticEvent,\n eventTarget,\n syntheticClick;\n\n if (touchEventTarget) {\n _removeListener(touchEventTarget, \"touchend\", onRelease);\n\n _removeListener(touchEventTarget, \"touchmove\", onMove);\n\n _removeListener(touchEventTarget, \"touchcancel\", onRelease);\n\n _removeListener(ownerDoc, \"touchstart\", _onMultiTouchDocument);\n } else {\n _removeListener(ownerDoc, \"mousemove\", onMove);\n }\n\n _removeListener(_win, \"touchforcechange\", _preventDefault);\n\n if (!_supportsPointer || !touchEventTarget) {\n _removeListener(ownerDoc, \"mouseup\", onRelease);\n\n e && e.target && _removeListener(e.target, \"mouseup\", onRelease);\n }\n\n dirty = false;\n\n if (wasDragging) {\n dragEndTime = _lastDragTime = _getTime();\n self.isDragging = false;\n }\n\n _removeFromRenderQueue(render);\n\n if (isClicking && !isContextMenuRelease) {\n if (e) {\n _removeListener(e.target, \"change\", onRelease);\n\n self.pointerEvent = originalEvent;\n }\n\n _setSelectable(triggers, false);\n\n _dispatchEvent(self, \"release\", \"onRelease\");\n\n _dispatchEvent(self, \"click\", \"onClick\");\n\n isClicking = false;\n return;\n }\n\n i = triggers.length;\n\n while (--i > -1) {\n _setStyle(triggers[i], \"cursor\", vars.cursor || (vars.cursor !== false ? _defaultCursor : null));\n }\n\n _dragCount--;\n\n if (e) {\n touches = e.changedTouches;\n\n if (touches) {\n //touch events store the data slightly differently\n e = touches[0];\n\n if (e !== touch && e.identifier !== touchID) {\n //Usually changedTouches[0] will be what we're looking for, but in case it's not, look through the rest of the array...(and Android browsers don't reuse the event like iOS)\n i = touches.length;\n\n while (--i > -1 && (e = touches[i]).identifier !== touchID && e.target !== target) {}\n\n if (i < 0 && !force) {\n return;\n }\n }\n }\n\n self.pointerEvent = originalEvent;\n self.pointerX = e.pageX;\n self.pointerY = e.pageY;\n }\n\n if (isContextMenuRelease && originalEvent) {\n _preventDefault(originalEvent);\n\n isPreventingDefault = true;\n\n _dispatchEvent(self, \"release\", \"onRelease\");\n } else if (originalEvent && !wasDragging) {\n isPreventingDefault = false;\n\n if (interrupted && (vars.snap || vars.bounds)) {\n //otherwise, if the user clicks on the object while it's animating to a snapped position, and then releases without moving 3 pixels, it will just stay there (it should animate/snap)\n animate(vars.inertia || vars.throwProps);\n }\n\n _dispatchEvent(self, \"release\", \"onRelease\");\n\n if ((!_isAndroid || originalEvent.type !== \"touchmove\") && originalEvent.type.indexOf(\"cancel\") === -1) {\n //to accommodate native scrolling on Android devices, we have to immediately call onRelease() on the first touchmove event, but that shouldn't trigger a \"click\".\n _dispatchEvent(self, \"click\", \"onClick\");\n\n if (_getTime() - clickTime < 300) {\n _dispatchEvent(self, \"doubleclick\", \"onDoubleClick\");\n }\n\n eventTarget = originalEvent.target || target; //old IE uses srcElement\n\n clickTime = _getTime();\n\n syntheticClick = function syntheticClick() {\n // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular \"click\" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the \"real\"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the \"real\" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched.\n if (clickTime !== clickDispatch && self.enabled() && !self.isPressed && !originalEvent.defaultPrevented) {\n if (eventTarget.click) {\n //some browsers (like mobile Safari) don't properly trigger the click event\n eventTarget.click();\n } else if (ownerDoc.createEvent) {\n syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, self.pointerEvent.screenX, self.pointerEvent.screenY, self.pointerX, self.pointerY, false, false, false, false, 0, null);\n eventTarget.dispatchEvent(syntheticEvent);\n }\n }\n };\n\n if (!_isAndroid && !originalEvent.defaultPrevented) {\n //iOS Safari requires the synthetic click to happen immediately or else it simply won't work, but Android doesn't play nice.\n gsap.delayedCall(0.05, syntheticClick); //in addition to the iOS bug workaround, there's a Firefox issue with clicking on things like a video to play, so we must fake a click event in a slightly delayed fashion. Previously, we listened for the \"click\" event with \"capture\" false which solved the video-click-to-play issue, but it would allow the \"click\" event to be dispatched twice like if you were using a jQuery.click() because that was handled in the capture phase, thus we had to switch to the capture phase to avoid the double-dispatching, but do the delayed synthetic click. Don't fire it too fast (like 0.00001) because we want to give the native event a chance to fire first as it's \"trusted\".\n }\n }\n } else {\n animate(vars.inertia || vars.throwProps); //will skip if inertia/throwProps isn't defined or InertiaPlugin isn't loaded.\n\n if (!self.allowEventDefault && originalEvent && (vars.dragClickables !== false || !isClickable.call(self, originalEvent.target)) && wasDragging && (!allowNativeTouchScrolling || touchDragAxis && allowNativeTouchScrolling === touchDragAxis) && originalEvent.cancelable !== false) {\n isPreventingDefault = true;\n\n _preventDefault(originalEvent);\n } else {\n isPreventingDefault = false;\n }\n\n _dispatchEvent(self, \"release\", \"onRelease\");\n }\n\n isTweening() && placeholderDelayedCall.duration(self.tween.duration()); //sync the timing so that the placeholder DIV gets\n\n wasDragging && _dispatchEvent(self, \"dragend\", \"onDragEnd\");\n return true;\n },\n updateScroll = function updateScroll(e) {\n if (e && self.isDragging && !scrollProxy) {\n var parent = e.target || target.parentNode,\n deltaX = parent.scrollLeft - parent._gsScrollX,\n deltaY = parent.scrollTop - parent._gsScrollY;\n\n if (deltaX || deltaY) {\n if (matrix) {\n startPointerX -= deltaX * matrix.a + deltaY * matrix.c;\n startPointerY -= deltaY * matrix.d + deltaX * matrix.b;\n } else {\n startPointerX -= deltaX;\n startPointerY -= deltaY;\n }\n\n parent._gsScrollX += deltaX;\n parent._gsScrollY += deltaY;\n setPointerPosition(self.pointerX, self.pointerY);\n }\n }\n },\n onClick = function onClick(e) {\n //this was a huge pain in the neck to align all the various browsers and their behaviors. Chrome, Firefox, Safari, Opera, Android, and Microsoft Edge all handle events differently! Some will only trigger native behavior (like checkbox toggling) from trusted events. Others don't even support isTrusted, but require 2 events to flow through before triggering native behavior. Edge treats everything as trusted but also mandates that 2 flow through to trigger the correct native behavior.\n var time = _getTime(),\n recentlyClicked = time - clickTime < 100,\n recentlyDragged = time - dragEndTime < 50,\n alreadyDispatched = recentlyClicked && clickDispatch === clickTime,\n defaultPrevented = self.pointerEvent && self.pointerEvent.defaultPrevented,\n alreadyDispatchedTrusted = recentlyClicked && trustedClickDispatch === clickTime,\n trusted = e.isTrusted || e.isTrusted == null && recentlyClicked && alreadyDispatched; //note: Safari doesn't support isTrusted, and it won't properly execute native behavior (like toggling checkboxes) on the first synthetic \"click\" event - we must wait for the 2nd and treat it as trusted (but stop propagation at that point). Confusing, I know. Don't you love cross-browser compatibility challenges?\n\n\n if ((alreadyDispatched || recentlyDragged && self.vars.suppressClickOnDrag !== false) && e.stopImmediatePropagation) {\n e.stopImmediatePropagation();\n }\n\n if (recentlyClicked && !(self.pointerEvent && self.pointerEvent.defaultPrevented) && (!alreadyDispatched || trusted && !alreadyDispatchedTrusted)) {\n //let the first click pass through unhindered. Let the next one only if it's trusted, then no more (stop quick-succession ones)\n if (trusted && alreadyDispatched) {\n trustedClickDispatch = clickTime;\n }\n\n clickDispatch = clickTime;\n return;\n }\n\n if (self.isPressed || recentlyDragged || recentlyClicked) {\n if (!trusted || !e.detail || !recentlyClicked || defaultPrevented) {\n _preventDefault(e);\n }\n }\n\n if (!recentlyClicked && !recentlyDragged && !dragged) {\n // for script-triggered event dispatches, like element.click()\n e && e.target && (self.pointerEvent = e);\n\n _dispatchEvent(self, \"click\", \"onClick\");\n }\n },\n localizePoint = function localizePoint(p) {\n return matrix ? {\n x: p.x * matrix.a + p.y * matrix.c + matrix.e,\n y: p.x * matrix.b + p.y * matrix.d + matrix.f\n } : {\n x: p.x,\n y: p.y\n };\n };\n\n old = Draggable.get(target);\n old && old.kill(); // avoids duplicates (an element can only be controlled by one Draggable)\n //give the user access to start/stop dragging...\n\n _this2.startDrag = function (event, align) {\n var r1, r2, p1, p2;\n onPress(event || self.pointerEvent, true); //if the pointer isn't on top of the element, adjust things accordingly\n\n if (align && !self.hitTest(event || self.pointerEvent)) {\n r1 = _parseRect(event || self.pointerEvent);\n r2 = _parseRect(target);\n p1 = localizePoint({\n x: r1.left + r1.width / 2,\n y: r1.top + r1.height / 2\n });\n p2 = localizePoint({\n x: r2.left + r2.width / 2,\n y: r2.top + r2.height / 2\n });\n startPointerX -= p1.x - p2.x;\n startPointerY -= p1.y - p2.y;\n }\n\n if (!self.isDragging) {\n self.isDragging = dragged = true;\n\n _dispatchEvent(self, \"dragstart\", \"onDragStart\");\n }\n };\n\n _this2.drag = onMove;\n\n _this2.endDrag = function (e) {\n return onRelease(e || self.pointerEvent, true);\n };\n\n _this2.timeSinceDrag = function () {\n return self.isDragging ? 0 : (_getTime() - dragEndTime) / 1000;\n };\n\n _this2.timeSinceClick = function () {\n return (_getTime() - clickTime) / 1000;\n };\n\n _this2.hitTest = function (target, threshold) {\n return Draggable.hitTest(self.target, target, threshold);\n };\n\n _this2.getDirection = function (from, diagonalThreshold) {\n //from can be \"start\" (default), \"velocity\", or an element\n var mode = from === \"velocity\" && InertiaPlugin ? from : _isObject(from) && !rotationMode ? \"element\" : \"start\",\n xChange,\n yChange,\n ratio,\n direction,\n r1,\n r2;\n\n if (mode === \"element\") {\n r1 = _parseRect(self.target);\n r2 = _parseRect(from);\n }\n\n xChange = mode === \"start\" ? self.x - startElementX : mode === \"velocity\" ? InertiaPlugin.getVelocity(target, xProp) : r1.left + r1.width / 2 - (r2.left + r2.width / 2);\n\n if (rotationMode) {\n return xChange < 0 ? \"counter-clockwise\" : \"clockwise\";\n } else {\n diagonalThreshold = diagonalThreshold || 2;\n yChange = mode === \"start\" ? self.y - startElementY : mode === \"velocity\" ? InertiaPlugin.getVelocity(target, yProp) : r1.top + r1.height / 2 - (r2.top + r2.height / 2);\n ratio = Math.abs(xChange / yChange);\n direction = ratio < 1 / diagonalThreshold ? \"\" : xChange < 0 ? \"left\" : \"right\";\n\n if (ratio < diagonalThreshold) {\n if (direction !== \"\") {\n direction += \"-\";\n }\n\n direction += yChange < 0 ? \"up\" : \"down\";\n }\n }\n\n return direction;\n };\n\n _this2.applyBounds = function (newBounds, sticky) {\n var x, y, forceZeroVelocity, e, parent, isRoot;\n\n if (newBounds && vars.bounds !== newBounds) {\n vars.bounds = newBounds;\n return self.update(true, sticky);\n }\n\n syncXY(true);\n calculateBounds();\n\n if (hasBounds && !isTweening()) {\n x = self.x;\n y = self.y;\n\n if (x > maxX) {\n x = maxX;\n } else if (x < minX) {\n x = minX;\n }\n\n if (y > maxY) {\n y = maxY;\n } else if (y < minY) {\n y = minY;\n }\n\n if (self.x !== x || self.y !== y) {\n forceZeroVelocity = true;\n self.x = self.endX = x;\n\n if (rotationMode) {\n self.endRotation = x;\n } else {\n self.y = self.endY = y;\n }\n\n dirty = true;\n render(true);\n\n if (self.autoScroll && !self.isDragging) {\n _recordMaxScrolls(target.parentNode);\n\n e = target;\n _windowProxy.scrollTop = _win.pageYOffset != null ? _win.pageYOffset : ownerDoc.documentElement.scrollTop != null ? ownerDoc.documentElement.scrollTop : ownerDoc.body.scrollTop;\n _windowProxy.scrollLeft = _win.pageXOffset != null ? _win.pageXOffset : ownerDoc.documentElement.scrollLeft != null ? ownerDoc.documentElement.scrollLeft : ownerDoc.body.scrollLeft;\n\n while (e && !isRoot) {\n //walk up the chain and sense wherever the scrollTop/scrollLeft exceeds the maximum.\n isRoot = _isRoot(e.parentNode);\n parent = isRoot ? _windowProxy : e.parentNode;\n\n if (allowY && parent.scrollTop > parent._gsMaxScrollY) {\n parent.scrollTop = parent._gsMaxScrollY;\n }\n\n if (allowX && parent.scrollLeft > parent._gsMaxScrollX) {\n parent.scrollLeft = parent._gsMaxScrollX;\n }\n\n e = parent;\n }\n }\n }\n\n if (self.isThrowing && (forceZeroVelocity || self.endX > maxX || self.endX < minX || self.endY > maxY || self.endY < minY)) {\n animate(vars.inertia || vars.throwProps, forceZeroVelocity);\n }\n }\n\n return self;\n };\n\n _this2.update = function (applyBounds, sticky, ignoreExternalChanges) {\n if (sticky && self.isPressed) {\n // in case the element was repositioned in the document flow, thus its x/y may be identical but its position is actually quite different.\n var m = getGlobalMatrix(target),\n p = innerMatrix.apply({\n x: self.x - startElementX,\n y: self.y - startElementY\n }),\n m2 = getGlobalMatrix(target.parentNode, true);\n m2.apply({\n x: m.e - p.x,\n y: m.f - p.y\n }, p);\n self.x -= p.x - m2.e;\n self.y -= p.y - m2.f;\n render(true);\n recordStartPositions();\n }\n\n var x = self.x,\n y = self.y;\n updateMatrix(!sticky);\n\n if (applyBounds) {\n self.applyBounds();\n } else {\n dirty && ignoreExternalChanges && render(true);\n syncXY(true);\n }\n\n if (sticky) {\n setPointerPosition(self.pointerX, self.pointerY);\n dirty && render(true);\n }\n\n if (self.isPressed && !sticky && (allowX && Math.abs(x - self.x) > 0.01 || allowY && Math.abs(y - self.y) > 0.01 && !rotationMode)) {\n recordStartPositions();\n }\n\n if (self.autoScroll) {\n _recordMaxScrolls(target.parentNode, self.isDragging);\n\n checkAutoScrollBounds = self.isDragging;\n render(true); //in case reparenting occurred.\n\n _removeScrollListener(target, updateScroll);\n\n _addScrollListener(target, updateScroll);\n }\n\n return self;\n };\n\n _this2.enable = function (type) {\n var setVars = {\n lazy: true\n },\n id,\n i,\n trigger;\n\n if (vars.cursor !== false) {\n setVars.cursor = vars.cursor || _defaultCursor;\n }\n\n if (gsap.utils.checkPrefix(\"touchCallout\")) {\n setVars.touchCallout = \"none\";\n }\n\n if (type !== \"soft\") {\n _setTouchActionForAllDescendants(triggers, allowX === allowY ? \"none\" : vars.allowNativeTouchScrolling && target.scrollHeight === target.clientHeight === (target.scrollWidth === target.clientHeight) || vars.allowEventDefault ? \"manipulation\" : allowX ? \"pan-y\" : \"pan-x\"); // Some browsers like Internet Explorer will fire a pointercancel event when the user attempts to drag when touchAction is \"manipulate\" because it's perceived as a pan. If the element has scrollable content in only one direction, we should use pan-x or pan-y accordingly so that the pointercancel doesn't prevent dragging.\n\n\n i = triggers.length;\n\n while (--i > -1) {\n trigger = triggers[i];\n _supportsPointer || _addListener(trigger, \"mousedown\", onPress);\n\n _addListener(trigger, \"touchstart\", onPress);\n\n _addListener(trigger, \"click\", onClick, true); // note: used to pass true for capture but it prevented click-to-play-video functionality in Firefox.\n\n\n gsap.set(trigger, setVars);\n\n if (trigger.getBBox && trigger.ownerSVGElement && allowX !== allowY) {\n // a bug in chrome doesn't respect touch-action on SVG elements - it only works if we set it on the parent SVG.\n gsap.set(trigger.ownerSVGElement, {\n touchAction: vars.allowNativeTouchScrolling || vars.allowEventDefault ? \"manipulation\" : allowX ? \"pan-y\" : \"pan-x\"\n });\n }\n\n vars.allowContextMenu || _addListener(trigger, \"contextmenu\", onContextMenu);\n }\n\n _setSelectable(triggers, false);\n }\n\n _addScrollListener(target, updateScroll);\n\n enabled = true;\n\n if (InertiaPlugin && type !== \"soft\") {\n InertiaPlugin.track(scrollProxy || target, xyMode ? \"x,y\" : rotationMode ? \"rotation\" : \"top,left\");\n }\n\n target._gsDragID = id = \"d\" + _lookupCount++;\n _lookup[id] = self;\n\n if (scrollProxy) {\n scrollProxy.enable();\n scrollProxy.element._gsDragID = id;\n }\n\n (vars.bounds || rotationMode) && recordStartPositions();\n vars.bounds && self.applyBounds();\n return self;\n };\n\n _this2.disable = function (type) {\n var dragging = self.isDragging,\n i = triggers.length,\n trigger;\n\n while (--i > -1) {\n _setStyle(triggers[i], \"cursor\", null);\n }\n\n if (type !== \"soft\") {\n _setTouchActionForAllDescendants(triggers, null);\n\n i = triggers.length;\n\n while (--i > -1) {\n trigger = triggers[i];\n\n _setStyle(trigger, \"touchCallout\", null);\n\n _removeListener(trigger, \"mousedown\", onPress);\n\n _removeListener(trigger, \"touchstart\", onPress);\n\n _removeListener(trigger, \"click\", onClick, true);\n\n _removeListener(trigger, \"contextmenu\", onContextMenu);\n }\n\n _setSelectable(triggers, true);\n\n if (touchEventTarget) {\n _removeListener(touchEventTarget, \"touchcancel\", onRelease);\n\n _removeListener(touchEventTarget, \"touchend\", onRelease);\n\n _removeListener(touchEventTarget, \"touchmove\", onMove);\n }\n\n _removeListener(ownerDoc, \"mouseup\", onRelease);\n\n _removeListener(ownerDoc, \"mousemove\", onMove);\n }\n\n _removeScrollListener(target, updateScroll);\n\n enabled = false;\n\n if (InertiaPlugin && type !== \"soft\") {\n InertiaPlugin.untrack(scrollProxy || target, xyMode ? \"x,y\" : rotationMode ? \"rotation\" : \"top,left\");\n self.tween && self.tween.kill();\n }\n\n scrollProxy && scrollProxy.disable();\n\n _removeFromRenderQueue(render);\n\n self.isDragging = self.isPressed = isClicking = false;\n dragging && _dispatchEvent(self, \"dragend\", \"onDragEnd\");\n return self;\n };\n\n _this2.enabled = function (value, type) {\n return arguments.length ? value ? self.enable(type) : self.disable(type) : enabled;\n };\n\n _this2.kill = function () {\n self.isThrowing = false;\n self.tween && self.tween.kill();\n self.disable();\n gsap.set(triggers, {\n clearProps: \"userSelect\"\n });\n delete _lookup[target._gsDragID];\n return self;\n };\n\n _this2.revert = function () {\n this.kill();\n this.styles && this.styles.revert();\n };\n\n if (~type.indexOf(\"scroll\")) {\n scrollProxy = _this2.scrollProxy = new ScrollProxy(target, _extend({\n onKill: function onKill() {\n //ScrollProxy's onKill() gets called if/when the ScrollProxy senses that the user interacted with the scroll position manually (like using the scrollbar). IE9 doesn't fire the \"mouseup\" properly when users drag the scrollbar of an element, so this works around that issue.\n self.isPressed && onRelease(null);\n }\n }, vars)); //a bug in many Android devices' stock browser causes scrollTop to get forced back to 0 after it is altered via JS, so we set overflow to \"hidden\" on mobile/touch devices (they hide the scroll bar anyway). That works around the bug. (This bug is discussed at https://code.google.com/p/android/issues/detail?id=19625)\n\n target.style.overflowY = allowY && !_isTouchDevice ? \"auto\" : \"hidden\";\n target.style.overflowX = allowX && !_isTouchDevice ? \"auto\" : \"hidden\";\n target = scrollProxy.content;\n }\n\n if (rotationMode) {\n killProps.rotation = 1;\n } else {\n if (allowX) {\n killProps[xProp] = 1;\n }\n\n if (allowY) {\n killProps[yProp] = 1;\n }\n }\n\n gsCache.force3D = \"force3D\" in vars ? vars.force3D : true; //otherwise, normal dragging would be in 2D and then as soon as it's released and there's an inertia tween, it'd jump to 3D which can create an initial jump due to the work the browser must to do layerize it.\n\n _context(_assertThisInitialized(_this2));\n\n _this2.enable();\n\n return _this2;\n }\n\n Draggable.register = function register(core) {\n gsap = core;\n\n _initCore();\n };\n\n Draggable.create = function create(targets, vars) {\n _coreInitted || _initCore(true);\n return _toArray(targets).map(function (target) {\n return new Draggable(target, vars);\n });\n };\n\n Draggable.get = function get(target) {\n return _lookup[(_toArray(target)[0] || {})._gsDragID];\n };\n\n Draggable.timeSinceDrag = function timeSinceDrag() {\n return (_getTime() - _lastDragTime) / 1000;\n };\n\n Draggable.hitTest = function hitTest(obj1, obj2, threshold) {\n if (obj1 === obj2) {\n return false;\n }\n\n var r1 = _parseRect(obj1),\n r2 = _parseRect(obj2),\n top = r1.top,\n left = r1.left,\n right = r1.right,\n bottom = r1.bottom,\n width = r1.width,\n height = r1.height,\n isOutside = r2.left > right || r2.right < left || r2.top > bottom || r2.bottom < top,\n overlap,\n area,\n isRatio;\n\n if (isOutside || !threshold) {\n return !isOutside;\n }\n\n isRatio = (threshold + \"\").indexOf(\"%\") !== -1;\n threshold = parseFloat(threshold) || 0;\n overlap = {\n left: Math.max(left, r2.left),\n top: Math.max(top, r2.top)\n };\n overlap.width = Math.min(right, r2.right) - overlap.left;\n overlap.height = Math.min(bottom, r2.bottom) - overlap.top;\n\n if (overlap.width < 0 || overlap.height < 0) {\n return false;\n }\n\n if (isRatio) {\n threshold *= 0.01;\n area = overlap.width * overlap.height;\n return area >= width * height * threshold || area >= r2.width * r2.height * threshold;\n }\n\n return overlap.width > threshold && overlap.height > threshold;\n };\n\n return Draggable;\n}(EventDispatcher);\n\n_setDefaults(Draggable.prototype, {\n pointerX: 0,\n pointerY: 0,\n startX: 0,\n startY: 0,\n deltaX: 0,\n deltaY: 0,\n isDragging: false,\n isPressed: false\n});\n\nDraggable.zIndex = 1000;\nDraggable.version = \"3.12.5\";\n_getGSAP() && gsap.registerPlugin(Draggable);\nexport { Draggable as default };","@use 'sass:map';\n@import '../../themes/capsule.globals';\n\n:host {\n --container-width: 360px;\n --container-gap: 16px;\n --container-border-radius: var(--cpsl-border-radius-modal);\n --container-border-width: 1px;\n --container-border-color: var(--cpsl-color-modal-border);\n --container-background-color: var(--cpsl-color-modal-surface-footer);\n --container-padding-bottom: 16px;\n --container-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.12);\n\n --inner-container-background-color: var(--cpsl-color-modal-surface-main);\n --inner-container-border-radius: var(--cpsl-border-radius-modal);\n --inner-container-box-shadow: 0px 1px 2px 0px var(--cpsl-color-alpha-black-8);\n --inner-container-padding-top: 16px;\n --inner-container-padding-end: 16px;\n --inner-container-padding-bottom: 24px;\n --inner-container-padding-start: 16px;\n --inner-container-margin-bottom: 16px;\n\n display: block;\n z-index: map.get($z-indices, 'modal');\n position: relative;\n}\n\n:host {\n cpsl-overlay {\n z-index: map.get($z-indices, 'modal');\n }\n}\n\n:host(.include-mobile-styling) {\n @media (max-width: 480px) {\n .modal-wrapper {\n scale: none;\n top: 100%;\n left: 0;\n height: unset;\n opacity: 1;\n }\n\n .modal-container {\n width: 100%;\n max-width: none;\n\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n }\n}\n\n:host(.no-overlay) {\n z-index: map.get($z-indices, 'modal-no-overlay');\n}\n\n.modal-header {\n position: sticky;\n top: 0;\n padding-top: var(--inner-container-padding-top);\n background: var(--inner-container-background-color);\n}\n\n.modal-wrapper {\n z-index: map.get($z-indices, 'modal');\n position: fixed;\n top: 0;\n left: 0;\n display: none;\n height: 100%;\n width: 100%;\n justify-content: center;\n align-items: center;\n scale: 0.8;\n opacity: 0;\n transform: none;\n}\n\n.modal-container {\n position: relative;\n overflow: hidden;\n @include padding(var(--container-padding-top), var(--container-padding-end), var(--container-padding-bottom), var(--container-padding-start));\n\n width: var(--container-width);\n display: flex;\n flex-direction: column;\n\n border: var(--container-border-width) solid var(--container-border-color);\n border-radius: var(--container-border-radius);\n box-shadow: var(--container-box-shadow);\n\n background: var(--container-background-color);\n\n max-width: 95vw;\n max-height: 95vh;\n max-height: 95dvh;\n overflow: auto;\n\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n /* Hide scrollbar for Chrome, Safari and Opera */\n ::-webkit-scrollbar {\n display: none;\n }\n}\n\n.modal-inner-container {\n @include padding(0, var(--inner-container-padding-end), var(--inner-container-padding-bottom), var(--inner-container-padding-start));\n margin-bottom: var(--inner-container-margin-bottom);\n\n border-radius: var(--inner-container-border-radius);\n box-shadow: var(--inner-container-box-shadow);\n background: var(--inner-container-background-color);\n}\n\n.expanded {\n height: 0px;\n overflow: hidden;\n display: none;\n}\n\n.modal-inner-container.no-footer {\n margin-bottom: 0px;\n box-shadow: none;\n}\n\n.modal-container.no-footer {\n padding-bottom: 0px;\n}\n\n.no-opacity {\n opacity: 0;\n}\n","import { Component, Element, Host, Prop, State, Watch, h, Event, EventEmitter } from '@stencil/core';\nimport gsap from 'gsap';\nimport Draggable from 'gsap/Draggable';\nimport { MOBILE_SIZE } from '../../constants';\n\ngsap.registerPlugin(Draggable);\nconst mm = gsap.matchMedia();\n@Component({\n tag: 'cpsl-modal',\n styleUrl: 'cpsl-modal.scss',\n shadow: true,\n})\nexport class CpslModal {\n private draggable: Draggable;\n private expandFooterTl: gsap.core.Timeline;\n private hasAnimatedIn: boolean;\n\n @Element() el!: HTMLCpslModalElement;\n\n @State() hasFooter: boolean;\n\n /**\n * Duration in seconds of the modal entering.\n * Default is .15.\n */\n @Prop() enterTransitionDuration?: number = 0.15;\n\n /**\n * Duration in seconds of the modal exiting.\n * Default is .15.\n */\n @Prop() exitTransitionDuration?: number = 0.15;\n\n /**\n * Whether or not to show `footerExpandedFooter` and `footerExpandedHeader` slots.\n */\n @Prop() footerExpanded?: boolean;\n\n /**\n * Duration in seconds of the footer expansion animation.\n * Default is 0.15.\n */\n @Prop() footerTransitionDuration?: number = 0.15;\n\n /**\n * Whether or not to show the overlay. This will always show the modal, regardless of the value of `open`.\n */\n @Prop() noOverlay?: boolean;\n\n /**\n * Whether or not to show the modal.\n */\n @Prop() open: boolean;\n\n /**\n * Emitted when enter animation starts.\n */\n @Event() cpslModalEntering!: EventEmitter<null>;\n\n /**\n * Emitted when enter animation finishes.\n */\n @Event() cpslModalEntered!: EventEmitter<null>;\n\n /**\n * Emitted when exit animation starts.\n */\n @Event() cpslModalExiting!: EventEmitter<null>;\n\n /**\n * Emitted when exit animation finishes.\n */\n @Event() cpslModalExited!: EventEmitter<null>;\n\n /**\n * Emitted when exit animation finishes.\n */\n @Event() cpslModalRequestClose!: EventEmitter<null>;\n\n /**\n * Override z-index.\n */\n @Prop() zIndexOverride?: number;\n\n @Watch('footerExpanded')\n toggleHeight() {\n this.footerExpanded ? this.expandFooterTl.play() : this.expandFooterTl.reverse();\n }\n\n @Watch('open')\n toggleModal() {\n if (this.hasAnimatedIn) {\n this.handleAnimation();\n }\n }\n\n componentDidLoad() {\n this.handleAnimation();\n this.hasAnimatedIn = true;\n\n mm.add(`(min-width: ${MOBILE_SIZE + 1}px)`, () => {\n this.draggable?.disable();\n gsap.timeline({}).set(this.modalWrapperEl, { yPercent: 0, scale: this.open ? 1 : 0.8, opacity: this.open ? 1 : 0 });\n });\n mm.add(`(max-width: ${MOBILE_SIZE}px)`, () => {\n this.initDraggable();\n gsap.timeline({}).set(this.modalWrapperEl, { scale: 1, opacity: 1, yPercent: this.open ? -100 : 0 });\n });\n\n this.hasFooter = this.footerSlotEl.assignedNodes().length >= 1;\n this.footerSlotEl.addEventListener('slotchange', () => {\n if (this.footerSlotEl.assignedNodes().length >= 1) {\n this.hasFooter = true;\n } else {\n this.hasFooter = false;\n }\n });\n }\n\n private handleAnimation() {\n if (this.open) {\n if (window.innerWidth >= MOBILE_SIZE + 1) {\n gsap\n .timeline({\n onStart: () => {\n this.cpslModalEntering.emit();\n },\n onComplete: () => {\n this.addExpandAnim();\n this.cpslModalEntered.emit();\n },\n })\n .set(this.modalWrapperEl, { display: 'flex', yPercent: 0 })\n .to(this.modalWrapperEl, {\n scale: 1,\n opacity: 1,\n duration: this.enterTransitionDuration,\n });\n } else {\n gsap\n .timeline({\n onStart: () => {\n this.cpslModalEntering.emit();\n },\n onComplete: () => {\n this.addExpandAnim();\n this.cpslModalEntered.emit();\n },\n })\n .set(this.modalWrapperEl, { display: 'flex', scale: 1, opacity: 1 })\n .to(this.modalWrapperEl, {\n yPercent: -100,\n duration: this.enterTransitionDuration,\n });\n }\n } else {\n if (window.innerWidth >= MOBILE_SIZE + 1) {\n gsap\n .timeline({\n onStart: () => {\n this.cpslModalExiting.emit();\n },\n onComplete: () => {\n this.cpslModalExited.emit();\n this.modalWrapperEl?.style.setProperty('display', 'none');\n },\n })\n .to(this.modalWrapperEl, {\n scale: 0.8,\n opacity: 0,\n duration: this.exitTransitionDuration,\n });\n } else {\n gsap\n .timeline({\n onStart: () => {\n this.cpslModalExiting.emit();\n },\n onComplete: () => {\n this.cpslModalExited.emit();\n this.modalWrapperEl?.style.setProperty('display', 'none');\n },\n })\n .to(this.modalWrapperEl, {\n yPercent: 0,\n duration: this.exitTransitionDuration,\n })\n .set(this.modalContainerEl, { y: 0 });\n }\n }\n }\n\n private addExpandAnim() {\n setTimeout(() => {\n this.expandFooterTl = gsap\n .timeline({\n reversed: true,\n paused: true,\n onReverseComplete: () => {\n this.contentEl.style.setProperty('height', 'auto');\n },\n defaults: {\n duration: this.footerTransitionDuration,\n },\n })\n .set(this.footerExpandedEl, { overflow: 'auto', display: 'block' })\n .set(this.headerExpandedEl, { display: 'block' })\n .to(this.innerContainerEl, { paddingBottom: '8px' })\n .to(this.contentEl, { height: '0px', overflow: 'hidden', opacity: 0 }, '<')\n .to(this.footerEl, { height: '0px', overflow: 'hidden', opacity: 0 }, '<')\n .to(this.footerExpandedEl, { height: 'auto', opacity: 1 }, '<')\n .to(this.headerExpandedEl, { height: 'auto', opacity: 1 }, '<');\n }, 10);\n }\n\n private getDraggableHeight = () => {\n return this.innerContainerEl.clientHeight;\n };\n\n private initDraggable() {\n this.draggable = Draggable.create(this.modalContainerEl, {\n trigger: this.headerEl,\n dragClickables: false,\n type: 'y',\n edgeResistance: 0.2,\n liveSnap: {\n y: function (y) {\n if (y < 0) return 0; // Restricts dragging to down\n return y;\n },\n },\n onDrag: () => {\n const y = gsap.utils.mapRange(0, this.getDraggableHeight(), 1, 0, this.draggable.y);\n gsap.set(this.overlayEl, { opacity: y });\n },\n onDragEnd: () => {\n if (this.draggable.y > 60) {\n this.cpslModalRequestClose.emit();\n } else {\n gsap.set(this.overlayEl, { opacity: 1 });\n gsap.set(this.modalWrapperEl, { yPercent: -100 });\n gsap.set(this.modalContainerEl, { y: 0 });\n }\n },\n })[0];\n }\n\n private get footerEl() {\n return this.el.shadowRoot.getElementById('modal-footer');\n }\n\n private get footerExpandedEl() {\n return this.el.shadowRoot.getElementById('modal-footer-expanded');\n }\n\n private get headerExpandedEl() {\n return this.el.shadowRoot.getElementById('modal-header-expanded');\n }\n\n private get innerContainerEl() {\n return this.el.shadowRoot.getElementById('modal-inner-container');\n }\n\n private get contentEl() {\n return this.el.shadowRoot.getElementById('modal-content');\n }\n\n private get modalWrapperEl() {\n return this.el.shadowRoot.getElementById('modal-wrapper');\n }\n\n private get modalContainerEl() {\n return this.el.shadowRoot.getElementById('modal-container');\n }\n\n private get overlayEl() {\n return this.el.shadowRoot.getElementById('overlay');\n }\n\n private get footerSlotEl() {\n return this.footerEl.querySelectorAll('slot')[0];\n }\n\n private get headerEl() {\n return this.el.shadowRoot.getElementById('modal-header');\n }\n\n private get Modal() {\n return (\n <div class={{ 'modal-container': true, 'no-footer': !this.hasFooter }} part=\"modal-container\" id=\"modal-container\">\n <slot></slot>\n <div id=\"modal-inner-container\" class={{ 'modal-inner-container': true, 'no-footer': !this.hasFooter }} part=\"modal-inner-container\">\n <div id=\"modal-content\" part=\"modal-content\">\n <div id=\"modal-header\" class=\"modal-header\" part=\"modal-header\">\n <slot name=\"header\"></slot>\n </div>\n <div id=\"modal-body\" class=\"modal-body\" part=\"modal-body\">\n <slot name=\"body\"></slot>\n </div>\n </div>\n <div id=\"modal-header-expanded\" class={{ 'modal-header': true, 'expanded': true, 'no-opacity': true }} part=\"modal-header-expanded\">\n <slot name=\"footerExpandedHeader\"></slot>\n </div>\n </div>\n <div id=\"modal-footer\" part=\"modal-footer\">\n <slot name=\"footer\"></slot>\n </div>\n <div id=\"modal-footer-expanded\" class={{ 'expanded': true, 'no-opacity': true }} part=\"modal-footer-expanded\">\n <slot name=\"footerExpandedFooter\"></slot>\n </div>\n </div>\n );\n }\n\n render() {\n if (this.noOverlay) {\n return (\n <Host style={Boolean(this.zIndexOverride) ? { zIndex: `${this.zIndexOverride}` } : {}} class=\"no-overlay\">\n {this.Modal}\n </Host>\n );\n }\n\n return (\n <Host style={Boolean(this.zIndexOverride) ? { zIndex: `${this.zIndexOverride}` } : {}} class={{ 'include-mobile-styling': true }}>\n <cpsl-overlay\n zIndexOverride={Boolean(this.zIndexOverride) ? this.zIndexOverride : undefined}\n id=\"overlay\"\n open={this.open}\n enterTransitionDuration={this.enterTransitionDuration}\n exitTransitionDuration={this.exitTransitionDuration}\n />\n <div id=\"modal-wrapper\" class=\"modal-wrapper\">\n {this.Modal}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: flex;\n flex-direction: column;\n\n gap: 8px;\n padding: 0px 16px;\n box-sizing: border-box;\n width: 100%;\n}\n\n:host {\n ::slotted(cpsl-button) {\n --button-padding-start: 8px;\n --button-padding-end: 8px;\n --button-padding-top: 8px;\n --button-padding-bottom: 8px;\n --button-justify-content: start;\n\n // DEFAULT\n --button-primary-color: var(--cpsl-color-background-48);\n --button-primary-background-color: var(--cpsl-color-background-0);\n --button-primary-border-color: var(--cpsl-color-background-0);\n --button-primary-icon-color: var(--cpsl-color-background-48);\n // DISABLED\n --button-primary-disabled-color: var(--cpsl-color-background-48);\n --button-primary-disabled-background-color: var(--cpsl-color-background-0);\n --button-primary-disabled-border-color: var(--cpsl-color-background-0);\n --button-primary-disabled-icon-color: var(--cpsl-color-background-48);\n // HOVER\n --button-primary-hover-color: var(--cpsl-color-background-48);\n --button-primary-hover-background-color: var(--cpsl-color-background-4);\n --button-primary-hover-border-color: var(--cpsl-color-background-4);\n --button-primary-hover-icon-color: var(--cpsl-color-background-48);\n // ACTIVE\n --button-primary-active-color: var(--cpsl-color-background-48);\n --button-primary-active-background-color: var(--cpsl-color-background-4);\n --button-primary-active-border-color: var(--cpsl-color-background-4);\n --button-primary-active-icon-color: var(--cpsl-color-background-48);\n }\n\n ::slotted(cpsl-button.selected) {\n // DEFAULT\n --button-primary-color: var(--cpsl-color-text-primary);\n --button-primary-background-color: var(--cpsl-color-background-4);\n --button-primary-border-color: var(--cpsl-color-background-4);\n --button-primary-icon-color: var(--cpsl-color-text-primary);\n // DISABLED\n --button-primary-disabled-color: var(--cpsl-color-text-primary);\n --button-primary-disabled-background-color: var(--cpsl-color-background-4);\n --button-primary-disabled-border-color: var(--cpsl-color-background-4);\n --button-primary-disabled-icon-color: var(--cpsl-color-text-primary);\n // HOVER\n --button-primary-hover-color: var(--cpsl-color-text-primary);\n --button-primary-hover-background-color: var(--cpsl-color-background-4);\n --button-primary-hover-border-color: var(--cpsl-color-background-4);\n --button-primary-hover-icon-color: var(--cpsl-color-text-primary);\n // ACTIVE\n --button-primary-active-color: var(--cpsl-color-text-primary);\n --button-primary-active-background-color: var(--cpsl-color-background-4);\n --button-primary-active-border-color: var(--cpsl-color-background-4);\n --button-primary-active-icon-color: var(--cpsl-color-text-primary);\n }\n}\n","import { Component, Host, Element, Prop, Watch, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-nav-button-group',\n styleUrl: 'cpsl-nav-button-group.scss',\n shadow: true,\n})\nexport class CpslNavButtonGroup {\n @Element() el!: HTMLCpslNavButtonGroupElement;\n\n /**\n * The id of the selected button.\n */\n @Prop() selectedId?: string;\n\n @Watch('selectedId')\n selectItem() {\n this.buttonSlots.forEach(item => {\n if (item.id === this.selectedId) {\n item.classList.add('selected');\n } else {\n item.classList.remove('selected');\n }\n });\n }\n\n componentWillRender() {\n this.buttonSlots.forEach(item => {\n item.setAttribute('variant', 'primary');\n item.setAttribute('full-width', 'true');\n this.selectItem();\n });\n\n if (Boolean(this.otherSlots?.length)) {\n console.error('cpsl-button is the only valid child of cpsl-nav-button-group');\n this.otherSlots.forEach(item => item.remove());\n }\n }\n\n private get buttonSlots() {\n return this.el.querySelectorAll('cpsl-button');\n }\n\n private get otherSlots() {\n return this.el.querySelectorAll('&> *:not(cpsl-button)');\n }\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n","@use 'sass:map';\n@import '../../themes/capsule.globals';\n\n:host {\n position: fixed;\n width: 100%;\n height: 100%;\n inset: 0px;\n\n z-index: map.get($z-indices, 'overlay');\n\n opacity: 0%;\n display: none;\n\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.14) 0%, rgba(0, 0, 0, 0.7) 100%);\n}\n\n:host(.over-modal) {\n z-index: map.get($z-indices, 'modal');\n}\n","import { Component, Host, Prop, h, Element, Watch } from '@stencil/core';\nimport gsap from 'gsap';\n\n@Component({\n tag: 'cpsl-overlay',\n styleUrl: 'cpsl-overlay.scss',\n shadow: true,\n})\nexport class CpslOverlay {\n @Element() el!: HTMLCpslOverlayElement;\n\n /**\n * Duration in seconds of the fade out animation.\n * Default is .5.\n */\n @Prop() enterTransitionDuration?: number = 0.5;\n\n /**\n * Duration in seconds of the fade out animation.\n * Default is .5.\n */\n @Prop() exitTransitionDuration?: number = 0.5;\n\n /**\n * Whether or not to show the overlay.\n */\n @Prop() open: boolean;\n\n /**\n * Override z-index.\n */\n @Prop() zIndexOverride?: number;\n\n @Watch('open')\n toggleHeight() {\n this.open\n ? gsap.timeline({ defaults: { duration: this.enterTransitionDuration } }).to(this.el, { display: 'block', opacity: 1 })\n : gsap.timeline({ defaults: { duration: this.exitTransitionDuration } }).to(this.el, { display: 'none', opacity: 0 });\n\n if (this.open) {\n document.documentElement.style.overflow = 'hidden';\n } else {\n // Setting a timeout here to prevent modal from shifting when the scroll bar appears\n setTimeout(() => {\n document.documentElement.style.overflow = 'auto';\n }, this.exitTransitionDuration * 1000);\n }\n }\n\n componentDidLoad() {\n if (this.open) {\n gsap.timeline({ defaults: { duration: this.enterTransitionDuration } }).to(this.el, { display: 'block', opacity: 1 });\n document.documentElement.style.overflow = 'hidden';\n }\n }\n\n render() {\n return (\n <Host style={Boolean(this.zIndexOverride) ? { zIndex: `${this.zIndexOverride}` } : {}}>\n <slot></slot>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n display: block;\n}\n\n.icon {\n --height: 20px;\n --width: 20px;\n}\n\n.start-icon {\n transform: rotate(180deg);\n}\n\n.arrow-button {\n --button-secondary-icon-color: var(--cpsl-color-text-tertiary);\n}\n","import { Component, Host, Prop, State, Event, h, EventEmitter, Watch } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-pagination',\n styleUrl: 'cpsl-pagination.scss',\n shadow: true,\n})\nexport class CpslPagination {\n @State() currentPage = 0;\n\n /**\n * The initial page to select.\n * Default is 0.\n */\n @Prop() initialPage?: number;\n\n /**\n * The total number of pages.\n */\n @Prop() totalPages: number;\n\n /**\n * The number of pages visible to select.\n * Default is 5.\n * Min is 5.\n */\n\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ mutable: true }) visiblePages?: number = 5;\n\n /**\n * Emitted when exit animation finishes.\n */\n @Event() cpslPaginationChanged!: EventEmitter<number>;\n\n @Watch('currentPage')\n watchChange() {\n this.cpslPaginationChanged.emit(this.currentPage);\n }\n\n componentWillLoad() {\n this.currentPage = this.initialPage ?? 0;\n if (this.visiblePages < 5) {\n this.visiblePages = 5;\n }\n }\n\n private handlePrevClick = () => {\n if (this.currentPage > 0) {\n this.currentPage--;\n }\n };\n\n private handleNextClick = () => {\n if (this.currentPage < this.totalPages - 1) {\n this.currentPage++;\n }\n };\n\n private handlePageClick = (value: number) => () => {\n if (value >= 0 && value <= this.totalPages - 1) {\n this.currentPage = value;\n }\n };\n\n render() {\n const filteredPages: number[] = this.totalPages <= this.visiblePages ? [...Array(this.totalPages).keys()] : [];\n\n if (this.totalPages > this.visiblePages) {\n filteredPages.push(0);\n\n const isFirstSelected = this.currentPage === 0;\n const isLastSelected = this.currentPage === this.totalPages - 1;\n const isFirstOrLastSelected = isFirstSelected || isLastSelected;\n\n let remainingVisible = this.visiblePages - (isFirstOrLastSelected ? 2 : 3);\n const halfRemaining = Math.round(remainingVisible / 2);\n const numberBefore = Math.max(this.currentPage - 1, 0);\n const numberAfter = Math.max(this.totalPages - 2 - this.currentPage, 0);\n let beforeHalf = halfRemaining;\n let afterHalf = remainingVisible - halfRemaining;\n\n if (numberBefore >= beforeHalf) {\n if (numberAfter < afterHalf) {\n beforeHalf += afterHalf - numberAfter;\n afterHalf = numberAfter;\n }\n } else {\n afterHalf += beforeHalf - numberBefore;\n beforeHalf = numberBefore;\n }\n\n while (beforeHalf > 0) {\n filteredPages.push(this.currentPage - beforeHalf);\n beforeHalf--;\n }\n\n if (!isFirstSelected) {\n filteredPages.push(this.currentPage);\n }\n\n const pagesAfter: number[] = [];\n while (afterHalf > 0) {\n pagesAfter.push(this.currentPage + afterHalf);\n afterHalf--;\n }\n\n filteredPages.push(...pagesAfter.reverse());\n\n if (!isLastSelected) {\n filteredPages.push(this.totalPages - 1);\n }\n }\n\n return (\n <Host>\n <cpsl-button-group selectedId={`${this.currentPage}`}>\n <cpsl-button class=\"arrow-button\" onClick={this.handlePrevClick}>\n <cpsl-icon class={{ 'icon': true, 'start-icon': true }} icon=\"arrowNarrow\" />\n </cpsl-button>\n {filteredPages.map(page => (\n <cpsl-button key={page} variant=\"secondary\" fullWidth id={`${page}`} onClick={this.handlePageClick(page)}>\n <cpsl-text variant=\"bodyS\">{page + 1}</cpsl-text>\n </cpsl-button>\n ))}\n <cpsl-button class=\"arrow-button\" onClick={this.handleNextClick}>\n <cpsl-icon class=\"icon\" icon=\"arrowNarrow\" />\n </cpsl-button>\n </cpsl-button-group>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --pill-text-color: var(--cpsl-pill-text);\n --pill-text-size: #{dynamic-font-clamp(1, 10px, 1.5)};\n --pill-text-line-height: 100%;\n\n --pill-container-height: 18px;\n --pill-container-background-color: var(--cpsl-color-pill-container-background);\n --pill-container-border-color: var(--cpsl-color-pill-container-border);\n --pill-container-padding-start: 8px;\n --pill-container-padding-end: 8px;\n --pill-container-border-radius: var(--cpsl-border-radius-pill);\n\n font-family: $font-family-base;\n display: inline-block;\n}\n\n.pill-container {\n @include padding(var(--pill-container-padding-top), var(--pill-container-padding-end), var(--pill-container-padding-bottom), var(--pill-container-padding-start));\n\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n\n height: var(--pill-container-height);\n\n background: var(--pill-container-background-color);\n border: 1px solid;\n border-color: var(--pill-container-border-color);\n border-radius: var(--pill-container-border-radius);\n\n color: var(--pill-text-color);\n font-size: var(--pill-text-size);\n line-height: var(--pill-text-line-height);\n\n span {\n display: inline-block;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-pill',\n styleUrl: 'cpsl-pill.scss',\n shadow: true,\n})\nexport class CpslPill {\n /**\n * Text of the pill.\n */\n @Prop() text: string;\n\n render() {\n return (\n <Host>\n <div class=\"pill-container\">\n <span>{this.text}</span>\n </div>\n </Host>\n );\n }\n}\n","@use 'sass:map';\n@import '../../themes/capsule.globals';\n\n:host {\n position: fixed;\n display: block;\n\n z-index: -1;\n overflow: auto;\n}\n\n:host(.open) {\n z-index: map.get($z-indices, 'popover');\n}\n\n.container {\n visibility: hidden;\n}\n\n.open {\n visibility: visible;\n z-index: map.get($z-indices, 'popover');\n}\n\n:host(.transform-h-left) {\n transform: translateX(0);\n}\n\n:host(.transform-h-center) {\n transform: translateX(-50%);\n}\n\n:host(.transform-h-right) {\n transform: translateX(-100%);\n}\n\n:host(.transform-v-top) {\n transform: translateY(0);\n}\n\n:host(.transform-v-center) {\n transform: translateY(-50%);\n}\n\n:host(.transform-v-bottom) {\n transform: translateY(-100%);\n}\n","import { Component, Host, Prop, State, Watch, Element, h, Method, Event, EventEmitter } from '@stencil/core';\nimport { InteractionCallback } from '../../interface';\n\n@Component({\n tag: 'cpsl-popover',\n styleUrl: 'cpsl-popover.scss',\n shadow: true,\n})\nexport class CpslPopover {\n private triggerEl?: HTMLElement | null;\n private destroyTriggerInteraction?: () => void;\n\n @Element() el!: HTMLCpslPopoverElement;\n\n @State() open = false;\n private triggerClicked = false;\n @State() positionX?: number;\n @State() positionY?: number;\n\n /**\n * ID for the element that the popover anchors to.\n */\n @Prop() anchorEl?: HTMLElement;\n\n /**\n * Vertical anchor origin.\n * Options are: `\"left\"`, `\"center\"`, `\"right\"`.\n * Default is: `\"left\"`.\n */\n @Prop() anchorOriginHorizontal?: 'left' | 'center' | 'right' = 'left';\n\n /**\n * Vertical anchor origin.\n * Options are: `\"top\"`, `\"center\"`, `\"bottom\"`.\n * Default is: `\"bottom\"`.\n */\n @Prop() anchorOriginVertical?: 'top' | 'center' | 'bottom' = 'bottom';\n\n /**\n * If `true` the container will use the width of the content, else it will be set to the width of the trigger.\n * Default is `true`\n */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop() autoWidth?: boolean = true;\n\n /**\n * Whether or not to disable to popover.\n */\n @Prop() disabled: boolean;\n\n /**\n * Used internally to prevent select from blurring unintentionally.\n */\n @Prop() preventBlur: boolean;\n\n /**\n * Vertical transformation origin.\n * Options are: `\"left\"`, `\"center\"`, `\"right\"`.\n * Default is: `\"left\"`.\n */\n @Prop() transformOriginHorizontal?: 'left' | 'center' | 'right' = 'left';\n\n /**\n * Vertical transformation origin.\n * Options are: `\"top\"`, `\"center\"`, `\"bottom\"`.\n * Default is: `\"bottom\"`.\n */\n @Prop() transformOriginVertical?: 'top' | 'center' | 'bottom' = 'top';\n\n /**\n * Which trigger causes the popover to open.\n * Options are: `\"click\"`, `\"hover\"`.\n * Default is: `\"click\"`.\n */\n @Prop() triggerAction: 'click' | 'hover' = 'click';\n\n /**\n * ID for the element that triggers the popover to open.\n */\n @Prop() trigger: string;\n\n /**\n * Padding from edge of window for the popover container.\n */\n @Prop() windowPadding?: number = 16;\n\n /**\n * Emitted when the popover opens.\n */\n @Event() cpslOpen!: EventEmitter<void>;\n\n /**\n * Emitted when the popover closes.\n */\n @Event() cpslClose!: EventEmitter<void>;\n\n /**\n * Call to close the popover manually.\n */\n @Method()\n async closePopover() {\n this.close();\n }\n\n @Watch('trigger')\n @Watch('triggerAction')\n @Watch('preventBlur')\n onTriggerChange() {\n this.configureTriggerInteraction();\n }\n\n @Watch('anchorOriginHorizontal')\n @Watch('anchorOriginVertical')\n onAnchorChange() {\n this.setPosition();\n }\n\n @Watch('open')\n onOpenChange() {\n if (this.open) {\n window.addEventListener('click', this.handleClickOutside);\n window.addEventListener('scroll', () => this.setPosition(), true);\n } else {\n window.removeEventListener('click', this.handleClickOutside);\n window.addEventListener('scroll', () => this.setPosition());\n }\n }\n\n componentDidLoad() {\n this.configureTriggerInteraction();\n }\n\n private configureTriggerInteraction = () => {\n const { trigger, triggerAction, destroyTriggerInteraction } = this;\n\n if (Boolean(destroyTriggerInteraction)) {\n destroyTriggerInteraction();\n }\n\n if (trigger === undefined) {\n return;\n }\n\n this.triggerEl = document.getElementById(trigger);\n if (!Boolean(this.triggerEl)) {\n console.error(`A trigger element with the ID \"${trigger}\" was not found in the DOM.`, this.el);\n return;\n }\n\n let triggerCallbacks: InteractionCallback[] = [];\n /**\n * Based upon the kind of trigger interaction\n * the user wants, we setup the correct event\n * listeners.\n */\n switch (triggerAction) {\n case 'hover':\n triggerCallbacks = [\n {\n eventName: 'mouseenter',\n callback: async () => {\n this.present();\n },\n },\n {\n eventName: 'mouseleave',\n callback: () => {\n if (!this.containerEl.matches(':hover')) {\n this.close();\n } else {\n this.containerEl.addEventListener('mouseleave', () => {\n this.close();\n });\n }\n },\n },\n {\n eventName: 'click',\n callback: (ev: Event) => ev.stopPropagation(),\n },\n ];\n\n break;\n case 'click':\n default:\n triggerCallbacks = [\n {\n eventName: 'mousedown',\n callback: e => {\n if (this.preventBlur) {\n e.preventDefault();\n }\n this.present();\n },\n },\n ];\n break;\n }\n\n triggerCallbacks.forEach(({ eventName, callback }) => this.triggerEl.addEventListener(eventName, callback));\n\n this.destroyTriggerInteraction = () => {\n triggerCallbacks.forEach(({ eventName, callback }) => this.triggerEl.removeEventListener(eventName, callback));\n };\n };\n\n private setPosition = () => {\n const anchorEl = this.anchorEl ?? this.triggerEl;\n if (Boolean(anchorEl)) {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const elWidth = this.el.clientWidth;\n const elHeight = this.el.clientHeight;\n const { top, left, height, width } = anchorEl.getBoundingClientRect();\n\n switch (this.anchorOriginHorizontal) {\n case 'left': {\n this.positionX = left;\n break;\n }\n case 'center': {\n this.positionX = left + width / 2;\n break;\n }\n case 'right': {\n this.positionX = left + width;\n break;\n }\n }\n\n switch (this.anchorOriginVertical) {\n case 'top': {\n this.positionY = top;\n break;\n }\n case 'center': {\n this.positionY = top + height / 2;\n break;\n }\n case 'bottom': {\n this.positionY = top + height;\n break;\n }\n }\n\n if (this.positionY < this.windowPadding) {\n this.positionY = this.windowPadding;\n }\n if (this.positionY + elHeight > windowHeight - 16) {\n this.positionY = windowHeight - this.windowPadding - elHeight;\n }\n\n if (this.positionX < this.windowPadding) {\n this.positionX = this.windowPadding;\n }\n if (this.positionX + elWidth > windowWidth - 16) {\n this.positionX = windowWidth - this.windowPadding - elWidth;\n }\n }\n };\n\n private handleClickOutside = (event: MouseEvent) => {\n if (!this.triggerClicked && this.triggerEl.contains(event.target as Node)) {\n this.triggerClicked = true;\n return;\n }\n if (this.open && !this.el.contains(event.target as Node)) {\n event.preventDefault();\n this.close();\n }\n };\n\n private present = () => {\n if (!this.open && !this.disabled) {\n this.open = true;\n this.cpslOpen.emit();\n this.setPosition();\n }\n };\n\n private close = () => {\n this.open = false;\n this.triggerClicked = false;\n this.cpslClose.emit();\n };\n\n get containerEl() {\n return this.el?.shadowRoot?.getElementById('container');\n }\n\n render() {\n return (\n <Host\n class={{\n 'open': this.open,\n 'transform-h-left': this.transformOriginHorizontal === 'left',\n 'transform-h-center': this.transformOriginHorizontal === 'center',\n 'transform-h-right': this.transformOriginHorizontal === 'right',\n 'transform-v-top': this.transformOriginVertical === 'top',\n 'transform-v-center': this.transformOriginVertical === 'center',\n 'transform-v-bottom': this.transformOriginVertical === 'bottom',\n }}\n style={{ top: `${this.positionY}px`, left: `${this.positionX}px`, width: this.autoWidth ? 'auto' : `${this.triggerEl?.clientWidth}px` }}\n >\n <div id=\"container\" class={{ container: true, open: this.open }}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --step-height: 3px;\n --step-active-color: var(--cpsl-color-progressIndicator-active);\n --step-next-color: var(--cpsl-color-progressIndicator-next);\n --step-previous-color: var(--cpsl-color-progressIndicator-previous);\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n}\n\n.step {\n background: var(--step-next-color);\n\n border-radius: var(--step-border-radius, calc(var(--step-height) * 2));\n height: var(--step-height);\n flex: 1;\n transition: all 0.5s;\n}\n\n.previous {\n background: var(--step-previous-color);\n}\n\n.active {\n background: var(--step-active-color);\n flex: 2;\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { Step } from './progress-indicator-interface';\n\n@Component({\n tag: 'cpsl-progress-indicator',\n styleUrl: 'cpsl-progress-indicator.scss',\n shadow: true,\n})\nexport class CpslProgressIndicator {\n /**\n * Total number of steps.\n */\n @Prop() totalSteps: number;\n\n /**\n * Current zero based step.\n */\n @Prop() step: number;\n\n render() {\n const steps: Step[] = new Array(this.totalSteps).fill(0).map((_, i) => {\n let resp: Step = { active: false, previous: false };\n if (i === this.step) {\n resp.active = true;\n } else if (i < this.step) {\n resp.previous = true;\n }\n return resp;\n });\n\n return (\n <Host>\n {steps.map(step => (\n <div class={{ step: true, active: step.active, previous: step.previous }} />\n ))}\n </Host>\n );\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.QRCodeStyling=e():t.QRCodeStyling=e()}(self,(function(){return(()=>{var t={192:(t,e)=>{var r,n,o=function(){var t=function(t,e){var r=t,n=a[e],o=null,i=0,u=null,v=[],w={},m=function(t,e){o=function(t){for(var e=new Array(t),r=0;r<t;r+=1){e[r]=new Array(t);for(var n=0;n<t;n+=1)e[r][n]=null}return e}(i=4*r+17),b(0,0),b(i-7,0),b(0,i-7),x(),_(),M(t,e),r>=7&&S(t),null==u&&(u=A(r,n,v)),C(u,e)},b=function(t,e){for(var r=-1;r<=7;r+=1)if(!(t+r<=-1||i<=t+r))for(var n=-1;n<=7;n+=1)e+n<=-1||i<=e+n||(o[t+r][e+n]=0<=r&&r<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=n&&n<=4)},_=function(){for(var t=8;t<i-8;t+=1)null==o[t][6]&&(o[t][6]=t%2==0);for(var e=8;e<i-8;e+=1)null==o[6][e]&&(o[6][e]=e%2==0)},x=function(){for(var t=s.getPatternPosition(r),e=0;e<t.length;e+=1)for(var n=0;n<t.length;n+=1){var i=t[e],a=t[n];if(null==o[i][a])for(var u=-2;u<=2;u+=1)for(var h=-2;h<=2;h+=1)o[i+u][a+h]=-2==u||2==u||-2==h||2==h||0==u&&0==h}},S=function(t){for(var e=s.getBCHTypeNumber(r),n=0;n<18;n+=1){var a=!t&&1==(e>>n&1);o[Math.floor(n/3)][n%3+i-8-3]=a}for(n=0;n<18;n+=1)a=!t&&1==(e>>n&1),o[n%3+i-8-3][Math.floor(n/3)]=a},M=function(t,e){for(var r=n<<3|e,a=s.getBCHTypeInfo(r),u=0;u<15;u+=1){var h=!t&&1==(a>>u&1);u<6?o[u][8]=h:u<8?o[u+1][8]=h:o[i-15+u][8]=h}for(u=0;u<15;u+=1)h=!t&&1==(a>>u&1),u<8?o[8][i-u-1]=h:u<9?o[8][15-u-1+1]=h:o[8][15-u-1]=h;o[i-8][8]=!t},C=function(t,e){for(var r=-1,n=i-1,a=7,u=0,h=s.getMaskFunction(e),c=i-1;c>0;c-=2)for(6==c&&(c-=1);;){for(var l=0;l<2;l+=1)if(null==o[n][c-l]){var d=!1;u<t.length&&(d=1==(t[u]>>>a&1)),h(n,c-l)&&(d=!d),o[n][c-l]=d,-1==(a-=1)&&(u+=1,a=7)}if((n+=r)<0||i<=n){n-=r,r=-r;break}}},A=function(t,e,r){for(var n=c.getRSBlocks(t,e),o=l(),i=0;i<r.length;i+=1){var a=r[i];o.put(a.getMode(),4),o.put(a.getLength(),s.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<n.length;i+=1)u+=n[i].dataCount;if(o.getLengthInBits()>8*u)throw\"code length overflow. (\"+o.getLengthInBits()+\">\"+8*u+\")\";for(o.getLengthInBits()+4<=8*u&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*u||(o.put(236,8),o.getLengthInBits()>=8*u));)o.put(17,8);return function(t,e){for(var r=0,n=0,o=0,i=new Array(e.length),a=new Array(e.length),u=0;u<e.length;u+=1){var c=e[u].dataCount,l=e[u].totalCount-c;n=Math.max(n,c),o=Math.max(o,l),i[u]=new Array(c);for(var d=0;d<i[u].length;d+=1)i[u][d]=255&t.getBuffer()[d+r];r+=c;var f=s.getErrorCorrectPolynomial(l),g=h(i[u],f.getLength()-1).mod(f);for(a[u]=new Array(f.getLength()-1),d=0;d<a[u].length;d+=1){var p=d+g.getLength()-a[u].length;a[u][d]=p>=0?g.getAt(p):0}}var v=0;for(d=0;d<e.length;d+=1)v+=e[d].totalCount;var w=new Array(v),y=0;for(d=0;d<n;d+=1)for(u=0;u<e.length;u+=1)d<i[u].length&&(w[y]=i[u][d],y+=1);for(d=0;d<o;d+=1)for(u=0;u<e.length;u+=1)d<a[u].length&&(w[y]=a[u][d],y+=1);return w}(o,n)};w.addData=function(t,e){var r=null;switch(e=e||\"Byte\"){case\"Numeric\":r=d(t);break;case\"Alphanumeric\":r=f(t);break;case\"Byte\":r=g(t);break;case\"Kanji\":r=p(t);break;default:throw\"mode:\"+e}v.push(r),u=null},w.isDark=function(t,e){if(t<0||i<=t||e<0||i<=e)throw t+\",\"+e;return o[t][e]},w.getModuleCount=function(){return i},w.make=function(){if(r<1){for(var t=1;t<40;t++){for(var e=c.getRSBlocks(t,n),o=l(),i=0;i<v.length;i++){var a=v[i];o.put(a.getMode(),4),o.put(a.getLength(),s.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<e.length;i++)u+=e[i].dataCount;if(o.getLengthInBits()<=8*u)break}r=t}m(!1,function(){for(var t=0,e=0,r=0;r<8;r+=1){m(!0,r);var n=s.getLostPoint(w);(0==r||t>n)&&(t=n,e=r)}return e}())},w.createTableTag=function(t,e){t=t||2;var r=\"\";r+='<table style=\"',r+=\" border-width: 0px; border-style: none;\",r+=\" border-collapse: collapse;\",r+=\" padding: 0px; margin: \"+(e=void 0===e?4*t:e)+\"px;\",r+='\">',r+=\"<tbody>\";for(var n=0;n<w.getModuleCount();n+=1){r+=\"<tr>\";for(var o=0;o<w.getModuleCount();o+=1)r+='<td style=\"',r+=\" border-width: 0px; border-style: none;\",r+=\" border-collapse: collapse;\",r+=\" padding: 0px; margin: 0px;\",r+=\" width: \"+t+\"px;\",r+=\" height: \"+t+\"px;\",r+=\" background-color: \",r+=w.isDark(n,o)?\"#000000\":\"#ffffff\",r+=\";\",r+='\"/>';r+=\"</tr>\"}return(r+=\"</tbody>\")+\"</table>\"},w.createSvgTag=function(t,e,r,n){var o={};\"object\"==typeof arguments[0]&&(t=(o=arguments[0]).cellSize,e=o.margin,r=o.alt,n=o.title),t=t||2,e=void 0===e?4*t:e,(r=\"string\"==typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||\"qrcode-description\":null,(n=\"string\"==typeof n?{text:n}:n||{}).text=n.text||null,n.id=n.text?n.id||\"qrcode-title\":null;var i,a,s,u,h=w.getModuleCount()*t+2*e,c=\"\";for(u=\"l\"+t+\",0 0,\"+t+\" -\"+t+\",0 0,-\"+t+\"z \",c+='<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"',c+=o.scalable?\"\":' width=\"'+h+'px\" height=\"'+h+'px\"',c+=' viewBox=\"0 0 '+h+\" \"+h+'\" ',c+=' preserveAspectRatio=\"xMinYMin meet\"',c+=n.text||r.text?' role=\"img\" aria-labelledby=\"'+k([n.id,r.id].join(\" \").trim())+'\"':\"\",c+=\">\",c+=n.text?'<title id=\"'+k(n.id)+'\">'+k(n.text)+\"</title>\":\"\",c+=r.text?'<description id=\"'+k(r.id)+'\">'+k(r.text)+\"</description>\":\"\",c+='<rect width=\"100%\" height=\"100%\" fill=\"white\" cx=\"0\" cy=\"0\"/>',c+='<path d=\"',a=0;a<w.getModuleCount();a+=1)for(s=a*t+e,i=0;i<w.getModuleCount();i+=1)w.isDark(a,i)&&(c+=\"M\"+(i*t+e)+\",\"+s+u);return(c+='\" stroke=\"transparent\" fill=\"black\"/>')+\"</svg>\"},w.createDataURL=function(t,e){t=t||2,e=void 0===e?4*t:e;var r=w.getModuleCount()*t+2*e,n=e,o=r-e;return y(r,r,(function(e,r){if(n<=e&&e<o&&n<=r&&r<o){var i=Math.floor((e-n)/t),a=Math.floor((r-n)/t);return w.isDark(a,i)?0:1}return 1}))},w.createImgTag=function(t,e,r){t=t||2,e=void 0===e?4*t:e;var n=w.getModuleCount()*t+2*e,o=\"\";return o+=\"<img\",o+=' src=\"',o+=w.createDataURL(t,e),o+='\"',o+=' width=\"',o+=n,o+='\"',o+=' height=\"',o+=n,o+='\"',r&&(o+=' alt=\"',o+=k(r),o+='\"'),o+\"/>\"};var k=function(t){for(var e=\"\",r=0;r<t.length;r+=1){var n=t.charAt(r);switch(n){case\"<\":e+=\"<\";break;case\">\":e+=\">\";break;case\"&\":e+=\"&\";break;case'\"':e+=\""\";break;default:e+=n}}return e};return w.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,r,n,o,i,a=1*w.getModuleCount()+2*t,s=t,u=a-t,h={\"██\":\"█\",\"█ \":\"▀\",\" █\":\"▄\",\" \":\" \"},c={\"██\":\"▀\",\"█ \":\"▀\",\" █\":\" \",\" \":\" \"},l=\"\";for(e=0;e<a;e+=2){for(n=Math.floor((e-s)/1),o=Math.floor((e+1-s)/1),r=0;r<a;r+=1)i=\"█\",s<=r&&r<u&&s<=e&&e<u&&w.isDark(n,Math.floor((r-s)/1))&&(i=\" \"),s<=r&&r<u&&s<=e+1&&e+1<u&&w.isDark(o,Math.floor((r-s)/1))?i+=\" \":i+=\"█\",l+=t<1&&e+1>=u?c[i]:h[i];l+=\"\\n\"}return a%2&&t>0?l.substring(0,l.length-a-1)+Array(a+1).join(\"▀\"):l.substring(0,l.length-1)}(e);t-=1,e=void 0===e?2*t:e;var r,n,o,i,a=w.getModuleCount()*t+2*e,s=e,u=a-e,h=Array(t+1).join(\"██\"),c=Array(t+1).join(\" \"),l=\"\",d=\"\";for(r=0;r<a;r+=1){for(o=Math.floor((r-s)/t),d=\"\",n=0;n<a;n+=1)i=1,s<=n&&n<u&&s<=r&&r<u&&w.isDark(o,Math.floor((n-s)/t))&&(i=0),d+=i?h:c;for(o=0;o<t;o+=1)l+=d+\"\\n\"}return l.substring(0,l.length-1)},w.renderTo2dContext=function(t,e){e=e||2;for(var r=w.getModuleCount(),n=0;n<r;n++)for(var o=0;o<r;o++)t.fillStyle=w.isDark(n,o)?\"black\":\"white\",t.fillRect(n*e,o*e,e,e)},w};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],r=0;r<t.length;r+=1){var n=t.charCodeAt(r);e.push(255&n)}return e}}).default,t.createStringToBytes=function(t,e){var r=function(){for(var r=w(t),n=function(){var t=r.read();if(-1==t)throw\"eof\";return t},o=0,i={};;){var a=r.read();if(-1==a)break;var s=n(),u=n()<<8|n();i[String.fromCharCode(a<<8|s)]=u,o+=1}if(o!=e)throw o+\" != \"+e;return i}(),n=\"?\".charCodeAt(0);return function(t){for(var e=[],o=0;o<t.length;o+=1){var i=t.charCodeAt(o);if(i<128)e.push(i);else{var a=r[t.charAt(o)];\"number\"==typeof a?(255&a)==a?e.push(a):(e.push(a>>>8),e.push(255&a)):e.push(n)}}return e}};var e,r,n,o,i,a={L:1,M:0,Q:3,H:2},s=(e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],r=1335,n=7973,i=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(o={}).getBCHTypeInfo=function(t){for(var e=t<<10;i(e)-i(r)>=0;)e^=r<<i(e)-i(r);return 21522^(t<<10|e)},o.getBCHTypeNumber=function(t){for(var e=t<<12;i(e)-i(n)>=0;)e^=n<<i(e)-i(n);return t<<12|e},o.getPatternPosition=function(t){return e[t-1]},o.getMaskFunction=function(t){switch(t){case 0:return function(t,e){return(t+e)%2==0};case 1:return function(t,e){return t%2==0};case 2:return function(t,e){return e%3==0};case 3:return function(t,e){return(t+e)%3==0};case 4:return function(t,e){return(Math.floor(t/2)+Math.floor(e/3))%2==0};case 5:return function(t,e){return t*e%2+t*e%3==0};case 6:return function(t,e){return(t*e%2+t*e%3)%2==0};case 7:return function(t,e){return(t*e%3+(t+e)%2)%2==0};default:throw\"bad maskPattern:\"+t}},o.getErrorCorrectPolynomial=function(t){for(var e=h([1],0),r=0;r<t;r+=1)e=e.multiply(h([1,u.gexp(r)],0));return e},o.getLengthInBits=function(t,e){if(1<=e&&e<10)switch(t){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw\"mode:\"+t}else if(e<27)switch(t){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw\"mode:\"+t}else{if(!(e<41))throw\"type:\"+e;switch(t){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw\"mode:\"+t}}},o.getLostPoint=function(t){for(var e=t.getModuleCount(),r=0,n=0;n<e;n+=1)for(var o=0;o<e;o+=1){for(var i=0,a=t.isDark(n,o),s=-1;s<=1;s+=1)if(!(n+s<0||e<=n+s))for(var u=-1;u<=1;u+=1)o+u<0||e<=o+u||0==s&&0==u||a==t.isDark(n+s,o+u)&&(i+=1);i>5&&(r+=3+i-5)}for(n=0;n<e-1;n+=1)for(o=0;o<e-1;o+=1){var h=0;t.isDark(n,o)&&(h+=1),t.isDark(n+1,o)&&(h+=1),t.isDark(n,o+1)&&(h+=1),t.isDark(n+1,o+1)&&(h+=1),0!=h&&4!=h||(r+=3)}for(n=0;n<e;n+=1)for(o=0;o<e-6;o+=1)t.isDark(n,o)&&!t.isDark(n,o+1)&&t.isDark(n,o+2)&&t.isDark(n,o+3)&&t.isDark(n,o+4)&&!t.isDark(n,o+5)&&t.isDark(n,o+6)&&(r+=40);for(o=0;o<e;o+=1)for(n=0;n<e-6;n+=1)t.isDark(n,o)&&!t.isDark(n+1,o)&&t.isDark(n+2,o)&&t.isDark(n+3,o)&&t.isDark(n+4,o)&&!t.isDark(n+5,o)&&t.isDark(n+6,o)&&(r+=40);var c=0;for(o=0;o<e;o+=1)for(n=0;n<e;n+=1)t.isDark(n,o)&&(c+=1);return r+Math.abs(100*c/e/e-50)/5*10},o),u=function(){for(var t=new Array(256),e=new Array(256),r=0;r<8;r+=1)t[r]=1<<r;for(r=8;r<256;r+=1)t[r]=t[r-4]^t[r-5]^t[r-6]^t[r-8];for(r=0;r<255;r+=1)e[t[r]]=r;return{glog:function(t){if(t<1)throw\"glog(\"+t+\")\";return e[t]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t[e]}}}();function h(t,e){if(void 0===t.length)throw t.length+\"/\"+e;var r=function(){for(var r=0;r<t.length&&0==t[r];)r+=1;for(var n=new Array(t.length-r+e),o=0;o<t.length-r;o+=1)n[o]=t[o+r];return n}(),n={getAt:function(t){return r[t]},getLength:function(){return r.length},multiply:function(t){for(var e=new Array(n.getLength()+t.getLength()-1),r=0;r<n.getLength();r+=1)for(var o=0;o<t.getLength();o+=1)e[r+o]^=u.gexp(u.glog(n.getAt(r))+u.glog(t.getAt(o)));return h(e,0)},mod:function(t){if(n.getLength()-t.getLength()<0)return n;for(var e=u.glog(n.getAt(0))-u.glog(t.getAt(0)),r=new Array(n.getLength()),o=0;o<n.getLength();o+=1)r[o]=n.getAt(o);for(o=0;o<t.getLength();o+=1)r[o]^=u.gexp(u.glog(t.getAt(o))+e);return h(r,0).mod(t)}};return n}var c=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],e=function(t,e){var r={};return r.totalCount=t,r.dataCount=e,r},r={getRSBlocks:function(r,n){var o=function(e,r){switch(r){case a.L:return t[4*(e-1)+0];case a.M:return t[4*(e-1)+1];case a.Q:return t[4*(e-1)+2];case a.H:return t[4*(e-1)+3];default:return}}(r,n);if(void 0===o)throw\"bad rs block @ typeNumber:\"+r+\"/errorCorrectionLevel:\"+n;for(var i=o.length/3,s=[],u=0;u<i;u+=1)for(var h=o[3*u+0],c=o[3*u+1],l=o[3*u+2],d=0;d<h;d+=1)s.push(e(c,l));return s}};return r}(),l=function(){var t=[],e=0,r={getBuffer:function(){return t},getAt:function(e){var r=Math.floor(e/8);return 1==(t[r]>>>7-e%8&1)},put:function(t,e){for(var n=0;n<e;n+=1)r.putBit(1==(t>>>e-n-1&1))},getLengthInBits:function(){return e},putBit:function(r){var n=Math.floor(e/8);t.length<=n&&t.push(0),r&&(t[n]|=128>>>e%8),e+=1}};return r},d=function(t){var e=t,r={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var r=e,o=0;o+2<r.length;)t.put(n(r.substring(o,o+3)),10),o+=3;o<r.length&&(r.length-o==1?t.put(n(r.substring(o,o+1)),4):r.length-o==2&&t.put(n(r.substring(o,o+2)),7))}},n=function(t){for(var e=0,r=0;r<t.length;r+=1)e=10*e+o(t.charAt(r));return e},o=function(t){if(\"0\"<=t&&t<=\"9\")return t.charCodeAt(0)-\"0\".charCodeAt(0);throw\"illegal char :\"+t};return r},f=function(t){var e=t,r={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var r=e,o=0;o+1<r.length;)t.put(45*n(r.charAt(o))+n(r.charAt(o+1)),11),o+=2;o<r.length&&t.put(n(r.charAt(o)),6)}},n=function(t){if(\"0\"<=t&&t<=\"9\")return t.charCodeAt(0)-\"0\".charCodeAt(0);if(\"A\"<=t&&t<=\"Z\")return t.charCodeAt(0)-\"A\".charCodeAt(0)+10;switch(t){case\" \":return 36;case\"$\":return 37;case\"%\":return 38;case\"*\":return 39;case\"+\":return 40;case\"-\":return 41;case\".\":return 42;case\"/\":return 43;case\":\":return 44;default:throw\"illegal char :\"+t}};return r},g=function(e){var r=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return r.length},write:function(t){for(var e=0;e<r.length;e+=1)t.put(r[e],8)}}},p=function(e){var r=t.stringToBytesFuncs.SJIS;if(!r)throw\"sjis not supported.\";!function(t,e){var n=r(\"友\");if(2!=n.length||38726!=(n[0]<<8|n[1]))throw\"sjis not supported.\"}();var n=r(e);return{getMode:function(){return 8},getLength:function(t){return~~(n.length/2)},write:function(t){for(var e=n,r=0;r+1<e.length;){var o=(255&e[r])<<8|255&e[r+1];if(33088<=o&&o<=40956)o-=33088;else{if(!(57408<=o&&o<=60351))throw\"illegal char at \"+(r+1)+\"/\"+o;o-=49472}o=192*(o>>>8&255)+(255&o),t.put(o,13),r+=2}if(r<e.length)throw\"illegal char at \"+(r+1)}}},v=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,r,n){r=r||0,n=n||t.length;for(var o=0;o<n;o+=1)e.writeByte(t[o+r])},writeString:function(t){for(var r=0;r<t.length;r+=1)e.writeByte(t.charCodeAt(r))},toByteArray:function(){return t},toString:function(){var e=\"\";e+=\"[\";for(var r=0;r<t.length;r+=1)r>0&&(e+=\",\"),e+=t[r];return e+\"]\"}};return e},w=function(t){var e=t,r=0,n=0,o=0,i={read:function(){for(;o<8;){if(r>=e.length){if(0==o)return-1;throw\"unexpected end of file./\"+o}var t=e.charAt(r);if(r+=1,\"=\"==t)return o=0,-1;t.match(/^\\s$/)||(n=n<<6|a(t.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i}},a=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw\"c:\"+t};return i},y=function(t,e,r){for(var n=function(t,e){var r=t,n=e,o=new Array(t*e),i={setPixel:function(t,e,n){o[e*r+t]=n},write:function(t){t.writeString(\"GIF87a\"),t.writeShort(r),t.writeShort(n),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(\",\"),t.writeShort(0),t.writeShort(0),t.writeShort(r),t.writeShort(n),t.writeByte(0);var e=a(2);t.writeByte(2);for(var o=0;e.length-o>255;)t.writeByte(255),t.writeBytes(e,o,255),o+=255;t.writeByte(e.length-o),t.writeBytes(e,o,e.length-o),t.writeByte(0),t.writeString(\";\")}},a=function(t){for(var e=1<<t,r=1+(1<<t),n=t+1,i=s(),a=0;a<e;a+=1)i.add(String.fromCharCode(a));i.add(String.fromCharCode(e)),i.add(String.fromCharCode(r));var u,h,c,l=v(),d=(u=l,h=0,c=0,{write:function(t,e){if(t>>>e!=0)throw\"length over\";for(;h+e>=8;)u.writeByte(255&(t<<h|c)),e-=8-h,t>>>=8-h,c=0,h=0;c|=t<<h,h+=e},flush:function(){h>0&&u.writeByte(c)}});d.write(e,n);var f=0,g=String.fromCharCode(o[f]);for(f+=1;f<o.length;){var p=String.fromCharCode(o[f]);f+=1,i.contains(g+p)?g+=p:(d.write(i.indexOf(g),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(g+p)),g=p)}return d.write(i.indexOf(g),n),d.write(r,n),d.flush(),l.toByteArray()},s=function(){var t={},e=0,r={add:function(n){if(r.contains(n))throw\"dup key:\"+n;t[n]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return r};return i}(t,e),o=0;o<e;o+=1)for(var i=0;i<t;i+=1)n.setPixel(i,o,r(i,o));var a=v();n.write(a);for(var s=function(){var t=0,e=0,r=0,n=\"\",o={},i=function(t){n+=String.fromCharCode(a(63&t))},a=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw\"n:\"+t};return o.writeByte=function(n){for(t=t<<8|255&n,e+=8,r+=1;e>=6;)i(t>>>e-6),e-=6},o.flush=function(){if(e>0&&(i(t<<6-e),t=0,e=0),r%3!=0)for(var o=3-r%3,a=0;a<o;a+=1)n+=\"=\"},o.toString=function(){return n},o}(),u=a.toByteArray(),h=0;h<u.length;h+=1)s.writeByte(u[h]);return s.flush(),\"data:image/gif;base64,\"+s};return t}();o.stringToBytesFuncs[\"UTF-8\"]=function(t){return function(t){for(var e=[],r=0;r<t.length;r++){var n=t.charCodeAt(r);n<128?e.push(n):n<2048?e.push(192|n>>6,128|63&n):n<55296||n>=57344?e.push(224|n>>12,128|n>>6&63,128|63&n):(r++,n=65536+((1023&n)<<10|1023&t.charCodeAt(r)),e.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return e}(t)},void 0===(n=\"function\"==typeof(r=function(){return o})?r.apply(e,[]):r)||(t.exports=n)},676:(t,e,r)=>{\"use strict\";r.d(e,{default:()=>q});var n=function(){return(n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},o=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),o=0;for(e=0;e<r;e++)for(var i=arguments[e],a=0,s=i.length;a<s;a++,o++)n[o]=i[a];return n},i=function(t){return!!t&&\"object\"==typeof t&&!Array.isArray(t)};function a(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(!e.length)return t;var s=e.shift();return void 0!==s&&i(t)&&i(s)?(t=n({},t),Object.keys(s).forEach((function(e){var r=t[e],n=s[e];Array.isArray(r)&&Array.isArray(n)?t[e]=n:i(r)&&i(n)?t[e]=a(Object.assign({},r),n):t[e]=n})),a.apply(void 0,o([t],e))):t}function s(t,e){var r=document.createElement(\"a\");r.download=e,r.href=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function u(t){return e=this,r=void 0,o=function(){return function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(e){return[2,new Promise((function(e){var r=new XMLHttpRequest;r.onload=function(){var t=new FileReader;t.onloadend=function(){e(t.result)},t.readAsDataURL(r.response)},r.open(\"GET\",t),r.responseType=\"blob\",r.send()}))]}))},new((n=void 0)||(n=Promise))((function(t,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function s(t){try{u(o.throw(t))}catch(t){i(t)}}function u(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n((function(t){t(r)}))).then(a,s)}u((o=o.apply(e,r||[])).next())}));var e,r,n,o}const h={L:.07,M:.15,Q:.25,H:.3};var c=function(){return(c=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const l=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case\"dots\":o=this._drawDot;break;case\"classy\":o=this._drawClassy;break;case\"classy-rounded\":o=this._drawClassyRounded;break;case\"rounded\":o=this._drawRounded;break;case\"extra-rounded\":o=this._drawExtraRounded;break;case\"square\":default:o=this._drawSquare}o.call(this,{x:t,y:e,size:r,getNeighbor:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute(\"transform\",\"rotate(\"+180*a/Math.PI+\",\"+s+\",\"+u+\")\")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\"),e._element.setAttribute(\"cx\",String(n+r/2)),e._element.setAttribute(\"cy\",String(o+r/2)),e._element.setAttribute(\"r\",String(r/2))}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\"),e._element.setAttribute(\"x\",String(n)),e._element.setAttribute(\"y\",String(o)),e._element.setAttribute(\"width\",String(r)),e._element.setAttribute(\"height\",String(r))}}))},t.prototype._basicSideRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, 0 \"+-r)}}))},t.prototype._basicCornerRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r+\"v \"+-r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, \"+-r/2+\" \"+-r/2)}}))},t.prototype._basicCornerExtraRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r+\"a \"+r+\" \"+r+\", 0, 0, 0, \"+-r+\" \"+-r)}}))},t.prototype._basicCornersRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(c(c({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, \"+r/2+\" \"+r/2+\"h \"+r/2+\"v \"+-r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, \"+-r/2+\" \"+-r/2)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size;this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size;this._basicSquare({x:e,y:r,size:n,rotation:0})},t.prototype._drawRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0,h=i+a+s+u;if(0!==h)if(h>2||i&&a||s&&u)this._basicSquare({x:e,y:r,size:n,rotation:0});else{if(2===h){var c=0;return i&&s?c=Math.PI/2:s&&a?c=Math.PI:a&&u&&(c=-Math.PI/2),void this._basicCornerRounded({x:e,y:r,size:n,rotation:c})}if(1===h)return c=0,s?c=Math.PI/2:a?c=Math.PI:u&&(c=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,rotation:c})}else this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0,h=i+a+s+u;if(0!==h)if(h>2||i&&a||s&&u)this._basicSquare({x:e,y:r,size:n,rotation:0});else{if(2===h){var c=0;return i&&s?c=Math.PI/2:s&&a?c=Math.PI:a&&u&&(c=-Math.PI/2),void this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:c})}if(1===h)return c=0,s?c=Math.PI/2:a?c=Math.PI:u&&(c=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,rotation:c})}else this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawClassy=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0;0!==i+a+s+u?i||s?a||u?this._basicSquare({x:e,y:r,size:n,rotation:0}):this._basicCornerRounded({x:e,y:r,size:n,rotation:Math.PI/2}):this._basicCornerRounded({x:e,y:r,size:n,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,rotation:Math.PI/2})},t.prototype._drawClassyRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0;0!==i+a+s+u?i||s?a||u?this._basicSquare({x:e,y:r,size:n,rotation:0}):this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,rotation:Math.PI/2})},t}();var d=function(){return(d=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const f=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case\"square\":o=this._drawSquare;break;case\"extra-rounded\":o=this._drawExtraRounded;break;case\"dot\":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,rotation:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute(\"transform\",\"rotate(\"+180*a/Math.PI+\",\"+s+\",\"+u+\")\")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(d(d({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"clip-rule\",\"evenodd\"),e._element.setAttribute(\"d\",\"M \"+(n+r/2)+\" \"+o+\"a \"+r/2+\" \"+r/2+\" 0 1 0 0.1 0zm 0 \"+i+\"a \"+(r/2-i)+\" \"+(r/2-i)+\" 0 1 1 -0.1 0Z\")}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(d(d({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"clip-rule\",\"evenodd\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r+\"v \"+-r+\"zM \"+(n+i)+\" \"+(o+i)+\"h \"+(r-2*i)+\"v \"+(r-2*i)+\"h \"+(2*i-r)+\"z\")}}))},t.prototype._basicExtraRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(d(d({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"clip-rule\",\"evenodd\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+(o+2.5*i)+\"v \"+2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*i+\" \"+2.5*i+\"h \"+2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*i+\" \"+2.5*-i+\"v \"+-2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*-i+\" \"+2.5*-i+\"h \"+-2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*-i+\" \"+2.5*i+\"M \"+(n+2.5*i)+\" \"+(o+i)+\"h \"+2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*i+\" \"+1.5*i+\"v \"+2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*-i+\" \"+1.5*i+\"h \"+-2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*-i+\" \"+1.5*-i+\"v \"+-2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*i+\" \"+1.5*-i)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicDot({x:e,y:r,size:n,rotation:o})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicSquare({x:e,y:r,size:n,rotation:o})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicExtraRounded({x:e,y:r,size:n,rotation:o})},t}();var g=function(){return(g=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const p=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case\"square\":o=this._drawSquare;break;case\"dot\":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,rotation:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute(\"transform\",\"rotate(\"+180*a/Math.PI+\",\"+s+\",\"+u+\")\")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(g(g({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\"),e._element.setAttribute(\"cx\",String(n+r/2)),e._element.setAttribute(\"cy\",String(o+r/2)),e._element.setAttribute(\"r\",String(r/2))}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(g(g({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\"),e._element.setAttribute(\"x\",String(n)),e._element.setAttribute(\"y\",String(o)),e._element.setAttribute(\"width\",String(r)),e._element.setAttribute(\"height\",String(r))}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicDot({x:e,y:r,size:n,rotation:o})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicSquare({x:e,y:r,size:n,rotation:o})},t}(),v=\"circle\";var w=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function s(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))},y=function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},m=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],b=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];const _=function(){function t(t){this._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this._element.setAttribute(\"width\",String(t.width)),this._element.setAttribute(\"height\",String(t.height)),this._defs=document.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),this._element.appendChild(this._defs),this._options=t}return Object.defineProperty(t.prototype,\"width\",{get:function(){return this._options.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"height\",{get:function(){return this._options.height},enumerable:!1,configurable:!0}),t.prototype.getElement=function(){return this._element},t.prototype.drawQR=function(t){return w(this,void 0,void 0,(function(){var e,r,n,o,i,a,s,u,c,l,d=this;return y(this,(function(f){switch(f.label){case 0:return e=t.getModuleCount(),r=Math.min(this._options.width,this._options.height)-2*this._options.margin,n=this._options.shape===v?r/Math.sqrt(2):r,o=Math.floor(n/e),i={hideXDots:0,hideYDots:0,width:0,height:0},this._qr=t,this._options.image?[4,this.loadImage()]:[3,2];case 1:if(f.sent(),!this._image)return[2];a=this._options,s=a.imageOptions,u=a.qrOptions,c=s.imageSize*h[u.errorCorrectionLevel],l=Math.floor(c*e*e),i=function(t){var e=t.originalHeight,r=t.originalWidth,n=t.maxHiddenDots,o=t.maxHiddenAxisDots,i=t.dotSize,a={x:0,y:0},s={x:0,y:0};if(e<=0||r<=0||n<=0||i<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};var u=e/r;return a.x=Math.floor(Math.sqrt(n/u)),a.x<=0&&(a.x=1),o&&o<a.x&&(a.x=o),a.x%2==0&&a.x--,s.x=a.x*i,a.y=1+2*Math.ceil((a.x*u-1)/2),s.y=Math.round(s.x*u),(a.y*a.x>n||o&&o<a.y)&&(o&&o<a.y?(a.y=o,a.y%2==0&&a.x--):a.y-=2,s.y=a.y*i,a.x=1+2*Math.ceil((a.y/u-1)/2),s.x=Math.round(s.y/u)),{height:s.y,width:s.x,hideYDots:a.y,hideXDots:a.x}}({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:l,maxHiddenAxisDots:e-14,dotSize:o}),f.label=2;case 2:return this.drawBackground(),this.drawDots((function(t,r){var n,o,a,s,u,h;return!(d._options.imageOptions.hideBackgroundDots&&t>=(e-i.hideXDots)/2&&t<(e+i.hideXDots)/2&&r>=(e-i.hideYDots)/2&&r<(e+i.hideYDots)/2||(null===(n=m[t])||void 0===n?void 0:n[r])||(null===(o=m[t-e+7])||void 0===o?void 0:o[r])||(null===(a=m[t])||void 0===a?void 0:a[r-e+7])||(null===(s=b[t])||void 0===s?void 0:s[r])||(null===(u=b[t-e+7])||void 0===u?void 0:u[r])||(null===(h=b[t])||void 0===h?void 0:h[r-e+7]))})),this.drawCorners(),this._options.image?[4,this.drawImage({width:i.width,height:i.height,count:e,dotSize:o})]:[3,4];case 3:f.sent(),f.label=4;case 4:return[2]}}))}))},t.prototype.drawBackground=function(){var t,e,r,n=this._element,o=this._options;if(n){var i=null===(t=o.backgroundOptions)||void 0===t?void 0:t.gradient,a=null===(e=o.backgroundOptions)||void 0===e?void 0:e.color;if((i||a)&&this._createColor({options:i,color:a,additionalRotation:0,x:0,y:0,height:o.height,width:o.width,name:\"background-color\"}),null===(r=o.backgroundOptions)||void 0===r?void 0:r.round){var s=Math.min(o.width,o.height),u=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");this._backgroundClipPath=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\"),this._backgroundClipPath.setAttribute(\"id\",\"clip-path-background-color\"),this._defs.appendChild(this._backgroundClipPath),u.setAttribute(\"x\",String((o.width-s)/2)),u.setAttribute(\"y\",String((o.height-s)/2)),u.setAttribute(\"width\",String(s)),u.setAttribute(\"height\",String(s)),u.setAttribute(\"rx\",String(s/2*o.backgroundOptions.round)),this._backgroundClipPath.appendChild(u)}}},t.prototype.drawDots=function(t){var e,r,n=this;if(!this._qr)throw\"QR code is not defined\";var o=this._options,i=this._qr.getModuleCount();if(i>o.width||i>o.height)throw\"The canvas is too small.\";var a=Math.min(o.width,o.height)-2*o.margin,s=o.shape===v?a/Math.sqrt(2):a,u=Math.floor(s/i),h=Math.floor((o.width-i*u)/2),c=Math.floor((o.height-i*u)/2),d=new l({svg:this._element,type:o.dotsOptions.type});this._dotsClipPath=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\"),this._dotsClipPath.setAttribute(\"id\",\"clip-path-dot-color\"),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=o.dotsOptions)||void 0===e?void 0:e.gradient,color:o.dotsOptions.color,additionalRotation:0,x:0,y:0,height:o.height,width:o.width,name:\"dot-color\"});for(var f=function(e){for(var o=function(o){return t&&!t(e,o)?\"continue\":(null===(r=g._qr)||void 0===r?void 0:r.isDark(e,o))?(d.draw(h+e*u,c+o*u,u,(function(r,a){return!(e+r<0||o+a<0||e+r>=i||o+a>=i)&&!(t&&!t(e+r,o+a))&&!!n._qr&&n._qr.isDark(e+r,o+a)})),void(d._element&&g._dotsClipPath&&g._dotsClipPath.appendChild(d._element))):\"continue\"},a=0;a<i;a++)o(a)},g=this,p=0;p<i;p++)f(p);if(o.shape===v){var w=Math.floor((a/u-i)/2),y=i+2*w,m=h-w*u,b=c-w*u,_=[],x=Math.floor(y/2);for(p=0;p<y;p++){_[p]=[];for(var S=0;S<y;S++)p>=w-1&&p<=y-w&&S>=w-1&&S<=y-w||Math.sqrt((p-x)*(p-x)+(S-x)*(S-x))>x?_[p][S]=0:_[p][S]=this._qr.isDark(S-2*w<0?S:S>=i?S-2*w:S-w,p-2*w<0?p:p>=i?p-2*w:p-w)?1:0}var M=function(t){for(var e=function(e){if(!_[t][e])return\"continue\";d.draw(m+t*u,b+e*u,u,(function(r,n){var o;return!!(null===(o=_[t+r])||void 0===o?void 0:o[e+n])})),d._element&&C._dotsClipPath&&C._dotsClipPath.appendChild(d._element)},r=0;r<y;r++)e(r)},C=this;for(p=0;p<y;p++)M(p)}},t.prototype.drawCorners=function(){var t=this;if(!this._qr)throw\"QR code is not defined\";var e=this._element,r=this._options;if(!e)throw\"Element code is not defined\";var n=this._qr.getModuleCount(),o=Math.min(r.width,r.height)-2*r.margin,i=r.shape===v?o/Math.sqrt(2):o,a=Math.floor(i/n),s=7*a,u=3*a,h=Math.floor((r.width-n*a)/2),c=Math.floor((r.height-n*a)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((function(e){var o,i,d,g,v,w,y,_,x,S,M,C,A=e[0],k=e[1],O=e[2],D=h+A*a*(n-7),P=c+k*a*(n-7),z=t._dotsClipPath,B=t._dotsClipPath;if(((null===(o=r.cornersSquareOptions)||void 0===o?void 0:o.gradient)||(null===(i=r.cornersSquareOptions)||void 0===i?void 0:i.color))&&((z=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\")).setAttribute(\"id\",\"clip-path-corners-square-color-\"+A+\"-\"+k),t._defs.appendChild(z),t._cornersSquareClipPath=t._cornersDotClipPath=B=z,t._createColor({options:null===(d=r.cornersSquareOptions)||void 0===d?void 0:d.gradient,color:null===(g=r.cornersSquareOptions)||void 0===g?void 0:g.color,additionalRotation:O,x:D,y:P,height:s,width:s,name:\"corners-square-color-\"+A+\"-\"+k})),null===(v=r.cornersSquareOptions)||void 0===v?void 0:v.type){var q=new f({svg:t._element,type:r.cornersSquareOptions.type});q.draw(D,P,s,O),q._element&&z&&z.appendChild(q._element)}else for(var I=new l({svg:t._element,type:r.dotsOptions.type}),E=function(t){for(var e=function(e){if(!(null===(w=m[t])||void 0===w?void 0:w[e]))return\"continue\";I.draw(D+t*a,P+e*a,a,(function(r,n){var o;return!!(null===(o=m[t+r])||void 0===o?void 0:o[e+n])})),I._element&&z&&z.appendChild(I._element)},r=0;r<m[t].length;r++)e(r)},L=0;L<m.length;L++)E(L);if(((null===(y=r.cornersDotOptions)||void 0===y?void 0:y.gradient)||(null===(_=r.cornersDotOptions)||void 0===_?void 0:_.color))&&((B=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\")).setAttribute(\"id\",\"clip-path-corners-dot-color-\"+A+\"-\"+k),t._defs.appendChild(B),t._cornersDotClipPath=B,t._createColor({options:null===(x=r.cornersDotOptions)||void 0===x?void 0:x.gradient,color:null===(S=r.cornersDotOptions)||void 0===S?void 0:S.color,additionalRotation:O,x:D+2*a,y:P+2*a,height:u,width:u,name:\"corners-dot-color-\"+A+\"-\"+k})),null===(M=r.cornersDotOptions)||void 0===M?void 0:M.type){var R=new p({svg:t._element,type:r.cornersDotOptions.type});R.draw(D+2*a,P+2*a,u,O),R._element&&B&&B.appendChild(R._element)}else{I=new l({svg:t._element,type:r.dotsOptions.type});var N=function(t){for(var e=function(e){if(!(null===(C=b[t])||void 0===C?void 0:C[e]))return\"continue\";I.draw(D+t*a,P+e*a,a,(function(r,n){var o;return!!(null===(o=b[t+r])||void 0===o?void 0:o[e+n])})),I._element&&B&&B.appendChild(I._element)},r=0;r<b[t].length;r++)e(r)};for(L=0;L<b.length;L++)N(L)}}))},t.prototype.loadImage=function(){var t=this;return new Promise((function(e,r){var n=t._options,o=new Image;if(!n.image)return r(\"Image is not defined\");\"string\"==typeof n.imageOptions.crossOrigin&&(o.crossOrigin=n.imageOptions.crossOrigin),t._image=o,o.onload=function(){e()},o.src=n.image}))},t.prototype.drawImage=function(t){var e=t.width,r=t.height,n=t.count,o=t.dotSize;return w(this,void 0,void 0,(function(){var t,i,a,s,h,c,l,d,f;return y(this,(function(g){switch(g.label){case 0:return t=this._options,i=Math.floor((t.width-n*o)/2),a=Math.floor((t.height-n*o)/2),s=i+t.imageOptions.margin+(n*o-e)/2,h=a+t.imageOptions.margin+(n*o-r)/2,c=e-2*t.imageOptions.margin,l=r-2*t.imageOptions.margin,(d=document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\")).setAttribute(\"x\",String(s)),d.setAttribute(\"y\",String(h)),d.setAttribute(\"width\",c+\"px\"),d.setAttribute(\"height\",l+\"px\"),[4,u(t.image||\"\")];case 1:return f=g.sent(),d.setAttribute(\"href\",f||\"\"),this._element.appendChild(d),[2]}}))}))},t.prototype._createColor=function(t){var e=t.options,r=t.color,n=t.additionalRotation,o=t.x,i=t.y,a=t.height,s=t.width,u=t.name,h=s>a?s:a,c=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");if(c.setAttribute(\"x\",String(o)),c.setAttribute(\"y\",String(i)),c.setAttribute(\"height\",String(a)),c.setAttribute(\"width\",String(s)),c.setAttribute(\"clip-path\",\"url('#clip-path-\"+u+\"')\"),e){var l;if(\"radial\"===e.type)(l=document.createElementNS(\"http://www.w3.org/2000/svg\",\"radialGradient\")).setAttribute(\"id\",u),l.setAttribute(\"gradientUnits\",\"userSpaceOnUse\"),l.setAttribute(\"fx\",String(o+s/2)),l.setAttribute(\"fy\",String(i+a/2)),l.setAttribute(\"cx\",String(o+s/2)),l.setAttribute(\"cy\",String(i+a/2)),l.setAttribute(\"r\",String(h/2));else{var d=((e.rotation||0)+n)%(2*Math.PI),f=(d+2*Math.PI)%(2*Math.PI),g=o+s/2,p=i+a/2,v=o+s/2,w=i+a/2;f>=0&&f<=.25*Math.PI||f>1.75*Math.PI&&f<=2*Math.PI?(g-=s/2,p-=a/2*Math.tan(d),v+=s/2,w+=a/2*Math.tan(d)):f>.25*Math.PI&&f<=.75*Math.PI?(p-=a/2,g-=s/2/Math.tan(d),w+=a/2,v+=s/2/Math.tan(d)):f>.75*Math.PI&&f<=1.25*Math.PI?(g+=s/2,p+=a/2*Math.tan(d),v-=s/2,w-=a/2*Math.tan(d)):f>1.25*Math.PI&&f<=1.75*Math.PI&&(p+=a/2,g+=s/2/Math.tan(d),w-=a/2,v-=s/2/Math.tan(d)),(l=document.createElementNS(\"http://www.w3.org/2000/svg\",\"linearGradient\")).setAttribute(\"id\",u),l.setAttribute(\"gradientUnits\",\"userSpaceOnUse\"),l.setAttribute(\"x1\",String(Math.round(g))),l.setAttribute(\"y1\",String(Math.round(p))),l.setAttribute(\"x2\",String(Math.round(v))),l.setAttribute(\"y2\",String(Math.round(w)))}e.colorStops.forEach((function(t){var e=t.offset,r=t.color,n=document.createElementNS(\"http://www.w3.org/2000/svg\",\"stop\");n.setAttribute(\"offset\",100*e+\"%\"),n.setAttribute(\"stop-color\",r),l.appendChild(n)})),c.setAttribute(\"fill\",\"url('#\"+u+\"')\"),this._defs.appendChild(l)}else r&&c.setAttribute(\"fill\",r);this._element.appendChild(c)},t}(),x=\"canvas\";for(var S={},M=0;M<=40;M++)S[M]=M;const C={type:x,shape:\"square\",width:300,height:300,data:\"\",margin:0,qrOptions:{typeNumber:S[0],mode:void 0,errorCorrectionLevel:\"Q\"},imageOptions:{hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:\"square\",color:\"#000\"},backgroundOptions:{round:0,color:\"#fff\"}};var A=function(){return(A=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function k(t){var e=A({},t);if(!e.colorStops||!e.colorStops.length)throw\"Field 'colorStops' is required in gradient\";return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map((function(t){return A(A({},t),{offset:Number(t.offset)})})),e}function O(t){var e=A({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=A(A({},e.imageOptions),{hideBackgroundDots:Boolean(e.imageOptions.hideBackgroundDots),imageSize:Number(e.imageOptions.imageSize),margin:Number(e.imageOptions.margin)}),e.margin>Math.min(e.width,e.height)&&(e.margin=Math.min(e.width,e.height)),e.dotsOptions=A({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=k(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=A({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=k(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=A({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=k(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=A({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=k(e.backgroundOptions.gradient))),e}var D=r(192),P=r.n(D),z=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function s(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))},B=function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};const q=function(){function t(t){this._options=t?O(a(C,t)):C,this.update()}return t._clearContainer=function(t){t&&(t.innerHTML=\"\")},t.prototype._setupSvg=function(){var t=this;if(this._qr){var e=new _(this._options);this._svg=e.getElement(),this._svgDrawingPromise=e.drawQR(this._qr).then((function(){var r;t._svg&&(null===(r=t._extension)||void 0===r||r.call(t,e.getElement(),t._options))}))}},t.prototype._setupCanvas=function(){var t,e=this;this._qr&&(this._canvas=document.createElement(\"canvas\"),this._canvas.width=this._options.width,this._canvas.height=this._options.height,this._setupSvg(),this._canvasDrawingPromise=null===(t=this._svgDrawingPromise)||void 0===t?void 0:t.then((function(){if(e._svg){var t=e._svg,r=(new XMLSerializer).serializeToString(t),n=\"data:image/svg+xml;base64,\"+btoa(r),o=new Image;return new Promise((function(t){o.onload=function(){var r,n;null===(n=null===(r=e._canvas)||void 0===r?void 0:r.getContext(\"2d\"))||void 0===n||n.drawImage(o,0,0),t()},o.src=n}))}})))},t.prototype._getElement=function(t){return void 0===t&&(t=\"png\"),z(this,void 0,void 0,(function(){return B(this,(function(e){switch(e.label){case 0:if(!this._qr)throw\"QR code is empty\";return\"svg\"!==t.toLowerCase()?[3,2]:(this._svg&&this._svgDrawingPromise||this._setupSvg(),[4,this._svgDrawingPromise]);case 1:return e.sent(),[2,this._svg];case 2:return this._canvas&&this._canvasDrawingPromise||this._setupCanvas(),[4,this._canvasDrawingPromise];case 3:return e.sent(),[2,this._canvas]}}))}))},t.prototype.update=function(e){t._clearContainer(this._container),this._options=e?O(a(this._options,e)):this._options,this._options.data&&(this._qr=P()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return\"Numeric\";case/^[0-9A-Z $%*+\\-./:]*$/.test(t):return\"Alphanumeric\";default:return\"Byte\"}}(this._options.data)),this._qr.make(),this._options.type===x?this._setupCanvas():this._setupSvg(),this.append(this._container))},t.prototype.append=function(t){if(t){if(\"function\"!=typeof t.appendChild)throw\"Container should be a single DOM node\";this._options.type===x?this._canvas&&t.appendChild(this._canvas):this._svg&&t.appendChild(this._svg),this._container=t}},t.prototype.applyExtension=function(t){if(!t)throw\"Extension function should be defined.\";this._extension=t,this.update()},t.prototype.deleteExtension=function(){this._extension=void 0,this.update()},t.prototype.getRawData=function(t){return void 0===t&&(t=\"png\"),z(this,void 0,void 0,(function(){var e,r,n;return B(this,(function(o){switch(o.label){case 0:if(!this._qr)throw\"QR code is empty\";return[4,this._getElement(t)];case 1:return(e=o.sent())?\"svg\"===t.toLowerCase()?(r=new XMLSerializer,n=r.serializeToString(e),[2,new Blob(['<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n'+n],{type:\"image/svg+xml\"})]):[2,new Promise((function(r){return e.toBlob(r,\"image/\"+t,1)}))]:[2,null]}}))}))},t.prototype.download=function(t){return z(this,void 0,void 0,(function(){var e,r,n,o,i;return B(this,(function(a){switch(a.label){case 0:if(!this._qr)throw\"QR code is empty\";return e=\"png\",r=\"qr\",\"string\"==typeof t?(e=t,console.warn(\"Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument\")):\"object\"==typeof t&&null!==t&&(t.name&&(r=t.name),t.extension&&(e=t.extension)),[4,this._getElement(e)];case 1:return(n=a.sent())?(\"svg\"===e.toLowerCase()?(o=new XMLSerializer,i='<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n'+(i=o.serializeToString(n)),s(\"data:image/svg+xml;charset=utf-8,\"+encodeURIComponent(i),r+\".svg\")):s(n.toDataURL(\"image/\"+e),r+\".\"+e),[2]):[2]}}))}))},t}()}},e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}return r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r(676)})().default}));\n//# sourceMappingURL=qr-code-styling.js.map","@import '../../themes/capsule.globals';\n\n:host {\n --qr-color: var(--cpsl-color-qr-fill);\n --qr-background-color: var(--cpsl-color-qr-background);\n --qr-border-color: var(--cpsl-color-qr-border);\n --qr-border-radius: var(--cpsl-border-radius-qr-code);\n --qr-border-width: 1px;\n --qr-box-shadow: 0px 1px 2px var(--cpsl-color-alpha-black-10);\n\n display: inline-block;\n}\n\n.qr-container {\n @include padding(var(--qr-padding-top), var(--qr-padding-end), var(--qr-padding-bottom), var(--qr-padding-start));\n\n display: flex;\n\n color: var(--qr-color);\n\n border-style: solid;\n border-width: var(--qr-border-width);\n border-color: var(--qr-border-color);\n border-radius: var(--qr-border-radius);\n\n background: var(--qr-background-color);\n\n box-shadow: var(--qr-box-shadow);\n}\n","import { Component, Host, h, Element, Prop } from '@stencil/core';\nimport QRCodeStyling from 'qr-code-styling';\n\n@Component({\n tag: 'cpsl-qr-code',\n styleUrl: 'cpsl-qr-code.scss',\n shadow: true,\n})\nexport class CpslQrCode {\n @Element() el!: HTMLCpslQrCodeElement;\n\n /**\n * URL for the QR code to link to.\n */\n @Prop() url: string;\n\n /**\n * Source for the center image of the QR code.\n */\n @Prop() imageSrc?: string;\n\n /**\n * Size of the QR code in pixels.\n * Default is 250.\n */\n @Prop() size?: number = 250;\n\n componentDidLoad() {\n const container = this.el.shadowRoot.getElementById('qr-container');\n\n container.innerHTML = '';\n\n const qrCode = new QRCodeStyling({\n type: 'svg',\n data: this.url,\n image: this.imageSrc,\n height: this.size,\n width: this.size,\n qrOptions: { errorCorrectionLevel: 'L' },\n backgroundOptions: {\n color: 'transparent',\n },\n dotsOptions: {\n type: 'dots',\n color: 'currentColor',\n },\n cornersSquareOptions: { type: 'extra-rounded' },\n cornersDotOptions: { type: 'dot' },\n imageOptions: {\n crossOrigin: 'anonymous',\n },\n });\n\n qrCode.append(container);\n }\n\n render() {\n return (\n <Host>\n <div\n id=\"qr-container\"\n class=\"qr-container\"\n // style={{ height: `${this.size - 10 ?? 240}px`, width: `${this.size - 10 ?? 240}px` }}\n />\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n // CONTAINER\n --container-height: 20px;\n --container-width: 20px;\n --container-border-radius: var(--cpsl-border-radius-radio);\n --container-border-width-default: 2px;\n --container-border-width-checked: 5px;\n --container-background-color-default: var(--cpsl-color-radio-surface-default);\n --container-border-color-default: var(--cpsl-color-radio-border-default);\n --container-background-color-checked: var(--cpsl-color-radio-surface-checked);\n --container-border-color-checked: var(--cpsl-color-radio-border-checked);\n\n display: block;\n position: relative;\n\n height: var(--container-height);\n width: var(--container-width);\n cursor: pointer;\n}\n\ninput {\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 0px;\n opacity: 0;\n}\n\nspan.container {\n display: inline-block;\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-radius: var(--container-border-radius);\n border: var(--container-border-width-default) solid;\n background: var(--container-background-color-default);\n border-color: var(--container-border-color-default);\n\n transition: all 0.15s ease-in-out;\n\n &.checked {\n background: var(--container-background-color-checked);\n border-color: var(--container-border-color-checked);\n border-width: var(--container-border-width-checked);\n }\n}\n","import { Component, EventEmitter, Host, Prop, Event, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-radio',\n styleUrl: 'cpsl-radio.scss',\n shadow: true,\n})\nexport class CpslRadio {\n /**\n * Whether or not the radio is checked.\n */\n @Prop() checked: boolean;\n\n /**\n * Emitted when the radio state changes.\n */\n @Event() cpslRadioChanged!: EventEmitter<boolean>;\n\n private handleRadioClick = () => {\n if (!this.checked) {\n this.cpslRadioChanged.emit(!this.checked);\n }\n };\n\n render() {\n return (\n <Host>\n <input type=\"radio\" checked={this.checked} />\n <span onClick={this.handleRadioClick} class={{ container: true, checked: this.checked }} />\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --container-box-shadow: none;\n --container-box-shadow-color: var(--cpsl-color-select-border-placeholder);\n --container-border-color: var(--cpsl-color-select-border-active);\n --container-border-error-color: var(--cpsl-color-select-border-error);\n --container-background-color: var(--cpsl-color-select-surface-default);\n --container-background-color-disabled: var(--cpsl-color-select-surface-disabled);\n --container-border-width: 1px;\n --container-border-radius: var(--cpsl-border-radius-select);\n --container-padding-top: 0px;\n --container-padding-bottom: 0px;\n --container-padding-end: 12px;\n --container-padding-start: 12px;\n --container-height: 48px;\n --container-gap: 8px;\n\n --dropdown-margin-top: 4px;\n --dropdown-border-width: 1px;\n --dropdown-border-radius: var(--cpsl-border-radius-select);\n --dropdown-border-color: var(--cpsl-color-select-dropdown-border);\n\n --optional-label-color: var(--cpsl-color-text-secondary);\n --label-color: var(--cpsl-color-text-primary);\n --label-font-size: var(--cpsl-font-size-body-s);\n --label-margin-bottom: 0px;\n\n --helper-text-color: var(--cpsl-color-text-secondary);\n --helper-text-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-color: var(--cpsl-color-text-secondary);\n --helper-text-icon-error-color: var(--cpsl-color-text-error);\n --helper-text-icon-size: 16px;\n --helper-text-font-size: var(--cpsl-font-size-body-xs);\n --helper-text-margin-top: 0px;\n\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n font-family: $font-family-base;\n}\n\ninput {\n box-sizing: border-box;\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 0px;\n opacity: 0;\n top: 0;\n left: 0;\n z-index: -1;\n cursor: pointer;\n\n &.disabled {\n cursor: default;\n }\n}\n\n:host(:not(.has-value)) {\n --container-border-color: var(--cpsl-color-select-border-placeholder);\n --select-color: var(--cpsl-color-text-secondary);\n}\n\n:host(.disabled) {\n --container-background-color: var(--container-background-color-disabled);\n --select-background-color: var(--select-background-color-disabled);\n --select-color: var(--cpsl-color-text-disabled);\n}\n\n:host(.focused) {\n --container-box-shadow: 0px 0px 0px 2px var(--container-box-shadow-color);\n --container-border-color: var(--cpsl-color-select-border-active);\n --container-background-color: var(--cpsl-color-select-surface-default);\n}\n\n.select-container {\n @include padding(var(--container-padding-top), var(--container-padding-end), var(--container-padding-bottom), var(--container-padding-start));\n\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n box-sizing: border-box;\n height: var(--container-height);\n gap: var(--container-gap);\n cursor: pointer;\n\n border-style: solid;\n border-width: var(--container-border-width);\n border-color: var(--container-border-color);\n border-radius: var(--container-border-radius);\n background: var(--container-background-color);\n\n box-shadow: var(--container-box-shadow);\n}\n\n.error-container {\n border-color: var(--container-border-error-color);\n}\n\n.label {\n display: inline-block;\n color: var(--label-color);\n font-size: var(--label-font-size);\n font-weight: 500;\n\n margin-bottom: var(--label-margin-bottom);\n}\n\n.optional-label {\n display: inline-block;\n color: var(--optional-label-color);\n // TODO: this will use a typography size once typography changes\n font-size: var(--label-font-size);\n font-weight: 500;\n}\n\n.helper-text-container {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--helper-text-color);\n font-size: var(--helper-text-font-size);\n font-weight: 500;\n\n margin-top: var(--helper-text-margin-top);\n\n cpsl-icon {\n --height: var(--helper-text-icon-size);\n --width: var(--helper-text-icon-size);\n --icon-color: var(--helper-text-icon-color);\n }\n}\n\n.error-text {\n color: var(--helper-text-error-color);\n\n cpsl-icon {\n --icon-color: var(--helper-text-icon-error-color);\n }\n}\n\n.selected-container-content {\n flex: 1;\n}\n\n.chevron {\n transition: transform 0.3s ease;\n transform: rotate(180deg);\n --icon-color: var(--cpsl-color-text-disabled);\n\n &.open {\n transform: rotate(0deg);\n --icon-color: var(--cpsl-color-text-primary);\n }\n\n &.has-value {\n --icon-color: var(--cpsl-color-text-primary);\n }\n}\n\n.selected-text {\n color: var(--cpsl-color-text-primary);\n\n &.placeholder {\n color: var(--cpsl-color-text-disabled);\n }\n}\n\n.dropdown {\n margin-top: var(--dropdown-margin-top);\n\n border-style: solid;\n border-width: var(--dropdown-border-width);\n border-color: var(--dropdown-border-color);\n border-radius: var(--dropdown-border-radius);\n overflow: hidden;\n\n ::slotted(*:last-child) {\n --container-border-width: 0px;\n }\n}\n\n.dropdown-inner {\n overflow: auto;\n\n scrollbar-width: thin;\n}\n","import { Component, Host, Element, h, Prop, State, EventEmitter, Event, Watch, Listen } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-select',\n styleUrl: 'cpsl-select.scss',\n shadow: true,\n})\nexport class CpslSelect {\n @Element() el!: HTMLCpslSelectElement;\n private popoverEl!: HTMLCpslPopoverElement;\n private inputId = `cpsl-select-${inputIds++}`;\n\n @State() anchorEl!: HTMLDivElement;\n @State() hasFocus = false;\n @State() popoverOpen = false;\n @State() hasSelectedItem = false;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop() disabled = false;\n\n /**\n * Set the max height of the dropdown.\n */\n @Prop() dropdownMaxHeight?: number;\n\n /**\n * Error text to show below the input. If this is provided the input will enter an error state.\n */\n @Prop() errorText?: string;\n\n /**\n * Format value for display when selected.\n */\n @Prop() formatValue?: (value: string) => string;\n\n /**\n * Helper text to show below the input. If `\"errorText\"` is provided that will take precedence.\n */\n @Prop() helperText?: string;\n\n /**\n * ID of the element, must be unique for the popover trigger.\n */\n // eslint-disable-next-line @stencil-community/reserved-member-names\n @Prop() id: string = `${this.inputId}-trigger`;\n\n /**\n * The label for the input.\n */\n @Prop() label?: string;\n\n /**\n * Placeholder to display if `selectedValue` is empty.\n */\n @Prop() placeholder?: string;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * Value of the selected item.\n */\n @Prop() selectedValue?: string;\n\n /**\n * Will show the formatted selected item (passed in the `selected-item` slot) in the select rather than the item value.\n */\n @Prop() showFormattedSelectedItem?: boolean;\n\n /**\n * If `true`, the label will display an \"optional\" tag.\n */\n @Prop() showOptionalLabel = false;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() cpslBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() cpslFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() cpslSelectValueChange!: EventEmitter<string>;\n\n @Watch('selectedValue')\n onValueChange() {\n this.popoverEl.closePopover();\n }\n\n @Watch('selectedValue')\n handleValueChange() {\n this.selectItem();\n }\n\n @Listen('cpslSelectItemClick')\n selectItemClickHandler(event: CustomEvent<string>) {\n this.cpslSelectValueChange.emit(event.detail);\n }\n\n @Listen('cpslOpen')\n onPopoverOpen() {\n this.popoverOpen = true;\n }\n\n @Listen('cpslClose')\n onPopoverClose() {\n this.popoverOpen = false;\n }\n\n componentDidLoad() {\n this.popoverEl = this.el.shadowRoot.querySelector(`cpsl-popover`) as HTMLCpslPopoverElement;\n this.anchorEl = this.el.shadowRoot.getElementById('select-container') as HTMLDivElement;\n\n this.selectItem();\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n this.popoverEl.closePopover();\n\n this.cpslBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n\n this.cpslFocus.emit(ev);\n };\n\n private handleEnterPress = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter') {\n ev.preventDefault();\n this.el.dispatchEvent(new MouseEvent('mousedown'));\n }\n };\n\n private selectItem = () => {\n const items = Array.from(this.el.querySelectorAll('cpsl-select-item')) as HTMLCpslSelectItemElement[];\n\n items.forEach(item => {\n if (item.value === this.selectedValue) {\n item.setAttribute('selected', 'true');\n this.hasSelectedItem = true;\n } else {\n item.setAttribute('selected', 'false');\n }\n });\n\n if (!Boolean(this.selectedValue)) {\n this.hasSelectedItem = false;\n }\n };\n\n private handleClickOutside = (event: MouseEvent) => {\n if (this.hasFocus && !this.el.contains(event.target as Node)) {\n this.hasFocus = false;\n window.removeEventListener('click', this.handleClickOutside);\n }\n };\n\n private handleClick = () => {\n if (!this.disabled) {\n this.hasFocus = true;\n window.addEventListener('click', this.handleClickOutside);\n }\n };\n\n render() {\n return (\n <Host id={this.id} class={{ 'disabled': this.disabled, 'focused': this.hasFocus, 'has-value': Boolean(this.selectedValue) }}>\n {this.label && (\n <label class=\"label\" htmlFor={this.inputId}>\n {this.label}\n {this.required ? '*' : ' '}\n {!this.required && this.showOptionalLabel ? <span class=\"optional-label\">(optional)</span> : ''}\n </label>\n )}\n <div id=\"select-container\" class={{ 'select-container': true, 'error-container': Boolean(this.errorText) }} onMouseDown={this.handleClick}>\n {this.hasSelectedItem && this.showFormattedSelectedItem && <slot name=\"selected-item\"></slot>}\n <div class=\"selected-container-content\" id=\"selected-container-content\">\n {(!this.hasSelectedItem || !this.showFormattedSelectedItem) && (\n <cpsl-text class={{ 'selected-text': true, 'placeholder': !Boolean(this.selectedValue) }}>\n {!Boolean(this.selectedValue) ? this.placeholder ?? 'Select' : this.formatValue?.(this.selectedValue) ?? this.selectedValue}\n </cpsl-text>\n )}\n </div>\n <cpsl-icon class={{ 'chevron': true, 'open': this.popoverOpen, 'has-value': Boolean(this.selectedValue) }} icon=\"chevronUp\" />\n <input\n id={this.inputId}\n disabled={this.disabled}\n class={{ disabled: this.disabled }}\n value={this.selectedValue}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyPress={this.handleEnterPress}\n inputmode=\"none\"\n />\n </div>\n {(this.errorText || this.helperText) && (\n <div class={{ 'helper-text-container': true, 'error-text': Boolean(this.errorText) }}>\n <span>{this.errorText ?? this.helperText}</span>\n </div>\n )}\n <cpsl-popover autoWidth={false} trigger={this.id} preventBlur={this.hasFocus} disabled={this.disabled} anchorEl={this.anchorEl}>\n <div class=\"dropdown\">\n <div class=\"dropdown-inner\" style={{ maxHeight: `${this.dropdownMaxHeight}px` }}>\n <slot name=\"items\"></slot>\n </div>\n </div>\n </cpsl-popover>\n </Host>\n );\n }\n}\n\nlet inputIds = 0;\n","@import '../../themes/capsule.globals';\n\n:host {\n --outer-container-padding-start: 8px;\n --outer-container-padding-end: 8px;\n --outer-container-padding-top: 8px;\n --outer-container-padding-bottom: 8px;\n\n --container-background-color: var(--cpsl-color-select-surface-default);\n --container-hover-background-color: var(--cpsl-color-select-surface-hover);\n --container-border-radius: calc(var(--cpsl-border-radius-select) - 4px);\n --container-padding-start: 8px;\n --container-padding-end: 8px;\n --container-padding-top: 8px;\n --container-padding-bottom: 8px;\n\n display: block;\n font-family: $font-family-base;\n cursor: pointer;\n}\n\n.inner-container {\n @include padding(var(--container-padding-top), var(--container-padding-end), var(--container-padding-bottom), var(--container-padding-start));\n\n background-color: var(--container-background-color);\n\n border-radius: var(--container-border-radius);\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.outer-container {\n @include padding(var(--outer-container-padding-top), var(--outer-container-padding-end), var(--outer-container-padding-bottom), var(--outer-container-padding-start));\n\n background-color: var(--container-background-color);\n\n &:hover {\n & > .inner-container {\n background-color: var(--container-hover-background-color);\n }\n }\n}\n\n.selected {\n background-color: var(--container-hover-background-color);\n}\n\n:host(.in-select-box) {\n --container-background-color: transparent;\n --container-hover-background-color: transparent;\n --container-border-width: 0px;\n --container-padding-start: 0px;\n --container-padding-end: 0px;\n --container-padding-top: 0px;\n --container-padding-bottom: 0px;\n flex: 1;\n height: 100%;\n}\n","import { Component, Host, Prop, Event, h, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-select-item',\n styleUrl: 'cpsl-select-item.scss',\n shadow: true,\n})\nexport class CpslSelectItem {\n /**\n * Whether the item is selected or not.\n */\n @Prop() selected?: boolean;\n\n /**\n * Value of the item.\n */\n @Prop() value: string;\n\n /**\n * Called when item is clicked.\n * @internal\n */\n @Event() cpslSelectItemClick: EventEmitter<string>;\n\n private handleItemClick = () => {\n this.cpslSelectItemClick.emit(this.value);\n };\n\n render() {\n return (\n <Host>\n <div class=\"outer-container\" onClick={this.handleItemClick}>\n <div class={{ 'inner-container': true, 'selected': this.selected }}>\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n /* SLIDER CONTAINER VARS */\n --slider-container-font-size: 14px;\n --slider-container-height: 44px;\n --slider-container-border-width: 1px;\n --slider-container-box-shadow: 0px 0px 4px 0px var(--cpsl-color-alpha-black-10) inset;\n\n --slider-container-start-background-color: var(--cpsl-color-slideButton-slider-container-start-background);\n --slider-container-end-background-color: var(--cpsl-color-slideButton-slider-container-end-background);\n --slider-container-start-border-color: var(--cpsl-color-slideButton-slider-container-start-border);\n --slider-container-end-border-color: var(--cpsl-color-slideButton-slider-container-end-border);\n\n /* SLIDER VARS */\n --slider-border-width: 1px;\n --slider-box-shadow: 3px 0px 4px 0px var(--cpsl-color-alpha-black-16);\n\n --slider-border-color: var(--cpsl-color-slideButton-slider-border);\n --slider-background-color: var(--cpsl-color-slideButton-slider-background);\n --slider-color: var(--cpsl-color-slideButton-slider-text);\n\n /* START TEXT VARS */\n --start-text-color: var(--cpsl-color-slideButton-start-text);\n\n /* END TEXT VARS */\n --end-text-color: var(--cpsl-color-slideButton-end-text);\n\n font-family: $font-family-base;\n display: block;\n}\n\n.slider-container {\n overflow: hidden;\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n\n font-size: var(--slider-container-font-size);\n font-weight: 500;\n\n height: var(--slider-container-height);\n\n border-width: var(--slider-container-border-width);\n border-style: solid;\n border-radius: calc(var(--slider-container-height) / 2);\n\n box-shadow: var(--slider-container-box-shadow);\n}\n\n.slider-container-background {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.start-slider-container-background {\n background: var(--slider-container-start-background-color);\n border-color: var(--slider-container-start-border-color);\n opacity: 100%;\n}\n\n.end-slider-container-background {\n background: var(--slider-container-end-background-color);\n border-color: var(--slider-container-end-border-color);\n opacity: 0%;\n}\n\n.start-text {\n user-select: none;\n color: var(--start-text-color);\n position: absolute;\n text-align: center;\n\n opacity: 100%;\n\n // Make text the width of the container minus the button, gap and right padding\n width: calc(100% - var(--slider-container-height) - 8px - 16px);\n left: calc(var(--slider-container-height) - 4px + 8px);\n\n &.disabled {\n left: 0;\n width: 100%;\n }\n}\n\n.end-text {\n user-select: none;\n color: var(--end-text-color);\n position: absolute;\n text-align: center;\n\n opacity: 0%;\n\n // Make text the width of the container minus the button, gap and left padding\n width: calc(100% - var(--slider-container-height) - 8px);\n left: 16px;\n}\n\n.icon {\n position: absolute;\n}\n\n.start-icon {\n opacity: 100%;\n}\n\n.end-icon {\n opacity: 0%;\n}\n\n.slider {\n left: 1px;\n cursor: pointer;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n\n position: absolute;\n z-index: 10;\n\n height: calc(var(--slider-container-height) - 4px);\n width: calc(var(--slider-container-height) - 4px);\n\n color: var(--slider-color);\n background: var(--slider-background-color);\n\n border-width: var(--slider-border-width);\n border-style: solid;\n border-color: var(--slider-border-color);\n border-radius: 100%;\n\n box-shadow: var(--slider-box-shadow);\n\n cpsl-icon {\n --icon-color: var(--slider-color);\n }\n\n &.disabled {\n visibility: hidden;\n }\n}\n","import { Component, Host, Prop, h, Element, EventEmitter, Event } from '@stencil/core';\nimport { IconType } from '../../interface';\n\n@Component({\n tag: 'cpsl-slide-button',\n styleUrl: 'cpsl-slide-button.scss',\n shadow: true,\n})\nexport class CpslSlideButton {\n @Element() el!: HTMLCpslSlideButtonElement;\n\n /**\n * Whether or not the component is disabled. If true, the component will display the `startText`.\n */\n @Prop() disabled: boolean;\n\n /**\n * The name of the ending icon to show.\n */\n @Prop() endIcon: IconType;\n\n /**\n * The ending text.\n */\n @Prop() endText: string;\n\n /**\n * The name of the starting icon to show.\n */\n @Prop() startIcon: IconType;\n\n /**\n * The starting text.\n */\n @Prop() startText: string;\n\n /**\n * The `cpslComplete` event is fired when the slider is at the end.\n */\n @Event() cpslComplete!: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.dragElement(this.el.shadowRoot.getElementById('slider'));\n }\n\n private dragElement(el: HTMLElement) {\n const pointerDown = (e: PointerEvent) => {\n pos3 = e.clientX;\n\n switch (e.pointerType) {\n case 'mouse':\n el.onmousedown = dragMouseDown;\n break;\n default:\n el.ontouchstart = dragTouchDown;\n }\n };\n\n const dragMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n // get the mouse cursor position at startup:\n pos3 = e.clientX;\n document.onmouseup = closeDragElement;\n // call a function whenever the cursor moves:\n document.onmousemove = elementMouseDrag;\n };\n\n const dragTouchDown = (e: TouchEvent) => {\n e.preventDefault();\n const touchLocation = e.targetTouches[0];\n // get the mouse cursor position at startup:\n pos3 = touchLocation.clientX;\n document.ontouchend = closeDragElement;\n // call a function whenever the cursor moves:\n document.ontouchmove = elementTouchDrag;\n };\n\n const elementMouseDrag = (e: MouseEvent) => {\n e.preventDefault();\n // calculate the new cursor position:\n pos1 = pos3 - e.clientX;\n pos3 = e.clientX;\n // set the element's new position:\n finishElementDrag(pos1);\n };\n\n const elementTouchDrag = (e: TouchEvent) => {\n e.preventDefault();\n const touchLocation = e.targetTouches[0];\n // calculate the new cursor position:\n pos1 = pos3 - touchLocation.clientX;\n pos3 = touchLocation.clientX;\n // set the element's new position:\n finishElementDrag(pos1);\n };\n\n const finishElementDrag = (pos: number) => {\n const newPos = el.offsetLeft - pos;\n if (newPos >= minX && newPos <= maxX) {\n const newPosPercent = Math.max(Math.min(Math.round((newPos / maxX) * 100) / 100, 100), 0);\n\n startTextEl.style.opacity = `${(1 - newPosPercent * 2) * 100}%`;\n endTextEl.style.opacity = `${newPosPercent * 100}%`;\n\n startIconEl.style.opacity = `${(1 - newPosPercent * 2) * 100}%`;\n endIconEl.style.opacity = `${newPosPercent * 100}%`;\n\n endBackgroundEl.style.opacity = `${newPosPercent * 100}%`;\n\n el.style.left = `${newPos}px`;\n }\n };\n\n const closeDragElement = () => {\n if (el.offsetLeft + sliderHeight >= containerWidth - sliderHeight / 2) {\n el.style.left = `${maxX}px`;\n startTextEl.style.opacity = '0%';\n endTextEl.style.opacity = '100%';\n startIconEl.style.opacity = '0%';\n endIconEl.style.opacity = '100%';\n endBackgroundEl.style.opacity = '100%';\n this.cpslComplete.emit(true);\n } else {\n el.style.left = `${minX}px`;\n startTextEl.style.opacity = '100%';\n endTextEl.style.opacity = '0%';\n startIconEl.style.opacity = '100%';\n endIconEl.style.opacity = '0%';\n endBackgroundEl.style.opacity = '0%';\n }\n // stop moving when mouse button is released:\n document.onmouseup = null;\n document.onmousemove = null;\n document.ontouchend = null;\n document.ontouchmove = null;\n };\n\n const startIconEl = this.startIconEl;\n const endIconEl = this.endIconEl;\n const startTextEl = this.startTextEl;\n const endTextEl = this.endTextEl;\n const endBackgroundEl = this.endBackgroundEl;\n\n const sliderContainerEl = this.sliderContainerEl;\n const containerWidth = sliderContainerEl.clientWidth;\n\n const sliderHeight = el.getBoundingClientRect().height;\n\n // Offset min by 1 for 1px left padding\n const minX = 1;\n // Offset max by the slider width and 1px for padding\n const maxX = containerWidth - sliderHeight - 1;\n\n let pos1 = 0,\n pos3 = 0;\n\n el.onpointerdown = pointerDown;\n }\n\n private get sliderContainerEl() {\n return this.el.shadowRoot.getElementById('slider-container');\n }\n\n private get startTextEl() {\n return this.el.shadowRoot.getElementById('start-text');\n }\n\n private get endTextEl() {\n return this.el.shadowRoot.getElementById('end-text');\n }\n\n private get endBackgroundEl() {\n return this.el.shadowRoot.getElementById('end-slider-container-background');\n }\n\n private get startIconEl() {\n return this.el.shadowRoot.getElementById('start-icon');\n }\n\n private get endIconEl() {\n return this.el.shadowRoot.getElementById('end-icon');\n }\n\n render() {\n return (\n <Host>\n <div id=\"slider-container\" class=\"slider-container\">\n <div id=\"start-slider-container-background\" class={{ 'start-slider-container-background': true, 'slider-container-background': true }} />\n <div id=\"end-slider-container-background\" class={{ 'end-slider-container-background': true, 'slider-container-background': true }} />\n <div id=\"slider\" class={{ slider: true, disabled: this.disabled }}>\n <cpsl-icon id=\"start-icon\" class={{ 'start-icon': true, 'icon': true }} icon={this.startIcon} />\n <cpsl-icon id=\"end-icon\" class={{ 'end-icon': true, 'icon': true }} icon={this.endIcon} />\n </div>\n <span id=\"start-text\" class={{ 'start-text': true, 'disabled': this.disabled }}>\n {this.startText}\n </span>\n <span id=\"end-text\" class=\"end-text\">\n {this.endText}\n </span>\n </div>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --path-color: var(--cpsl-color-spinner-path);\n --circle-color: var(--cpsl-color-spinner-circle);\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n path {\n stroke: var(--path-color);\n }\n\n circle {\n fill: var(--circle-color);\n }\n\n @keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n -webkit-transform: rotate(360deg);\n }\n }\n @-moz-keyframes spin {\n 100% {\n -moz-transform: rotate(360deg);\n }\n }\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 50% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-spinner',\n styleUrl: 'cpsl-spinner.scss',\n shadow: true,\n})\nexport class CpslSpinner {\n /**\n * Size of the spinner in pixels.\n * Default is 50.\n */\n @Prop() size?: number = 54;\n\n /**\n * Rotation speed of the spinner in seconds.\n * Default is 1.\n */\n @Prop() speed?: number = 1;\n\n render() {\n return (\n <Host\n style={{\n 'height': `${this.size}px`,\n 'width': `${this.size}px`,\n 'animation': `spin ${this.speed}s linear infinite`,\n '-webkit-animation': `spin ${this.speed}s linear infinite`,\n '-moz-animation': `spin ${this.speed}s linear infinite`,\n }}\n >\n <svg height={this.size} width={this.size} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 54 54\" fill=\"none\">\n <path\n d=\"M43.1586 17C39.8082 11.5978 33.8243 8 27 8C16.5066 8 8 16.5066 8 27C8 37.4934 16.5066 46 27 46C33.8242 46 39.8082 42.4022 43.1586 37\"\n stroke-width=\"6\"\n stroke-linecap=\"round\"\n />\n <circle cx=\"45\" cy=\"27\" r=\"5\" />\n </svg>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n // CONTAINER\n --container-height: 24px;\n --container-width: 44px;\n --container-padding: 2px;\n --container-border-radius: var(--cpsl-border-radius-switch);\n --container-background-color-default: var(--cpsl-color-switch-surface-default);\n --container-background-color-checked: var(--cpsl-color-switch-surface-checked);\n\n // THUMB\n --thumb-size: calc(var(--container-height) - var(--container-padding) * 2);\n --thumb-border-radius: var(--cpsl-border-radius-switch);\n --thumb-background-color-default: var(--cpsl-color-switch-thumb-default);\n --thumb-background-color-checked: var(--cpsl-color-switch-thumb-checked);\n\n display: block;\n position: relative;\n\n height: var(--container-height);\n width: var(--container-width);\n cursor: pointer;\n}\n\ninput {\n position: absolute;\n width: 100%;\n height: 100%;\n margin: 0px;\n opacity: 0;\n}\n\nspan.container {\n display: inline-block;\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: var(--container-padding);\n border-radius: var(--container-border-radius);\n background: var(--container-background-color-default);\n box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.08) inset;\n\n transition: all 0.15s ease-in-out;\n\n &.checked {\n background: var(--container-background-color-checked);\n box-shadow: none;\n }\n}\n\nspan.thumb {\n display: inline-block;\n position: relative;\n background: var(--thumb-background-color-default);\n box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1);\n height: var(--thumb-size);\n width: var(--thumb-size);\n border-radius: var(--thumb-border-radius);\n transform: translateX(0);\n left: 0;\n transition: all 0.15s ease-in-out;\n\n &.checked {\n background: var(--thumb-background-color-checked);\n left: 100%;\n transform: translateX(-100%);\n }\n}\n","import { Component, Host, Prop, Event, h, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-switch',\n styleUrl: 'cpsl-switch.scss',\n shadow: true,\n})\nexport class CpslSwitch {\n /**\n * Whether or not the switch is checked.\n */\n @Prop() checked: boolean;\n\n /**\n * Emitted when the switch state changes.\n */\n @Event() cpslSwitchChanged!: EventEmitter<boolean>;\n\n private handleSwitchClick = () => {\n this.cpslSwitchChanged.emit(!this.checked);\n };\n\n render() {\n return (\n <Host>\n <input type=\"checkbox\" checked={this.checked} />\n <span onClick={this.handleSwitchClick} class={{ container: true, checked: this.checked }}>\n <span class={{ thumb: true, checked: this.checked }} />\n </span>\n </Host>\n );\n }\n}\n",":host {\n --tab-color: var(--cpsl-color-text-primary);\n padding-top: var(--tab-top-padding);\n padding-bottom: var(--tab-bottom-padding);\n padding-left: var(--tab-left-padding);\n padding-right: var(--tab-right-padding);\n\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n\n cursor: pointer;\n\n z-index: 10;\n}\n\n.tab-container {\n align-items: center;\n overflow: hidden;\n width: 100%;\n text-overflow: ellipsis;\n text-align: center;\n white-space: nowrap;\n font-weight: 500;\n color: var(--tab-color);\n}\n","import { Component, Host, Prop, h, Event, EventEmitter, Listen, Element } from '@stencil/core';\nimport { TabClickEventDetail } from './tab-interface';\nimport { TabsChangedEventDetail } from '../cpsl-tabs/tabs-interface';\n\n@Component({\n tag: 'cpsl-tab',\n styleUrl: 'cpsl-tab.scss',\n shadow: true,\n})\nexport class CpslTab {\n @Element() el!: HTMLCpslTabElement;\n\n /**\n * The selected tab component\n */\n @Prop() selected = false;\n\n /**\n * A tab id must be provided for each `cpsl-tab`. It's used internally to reference\n * the selected tab or by the router to switch between them.\n */\n @Prop() tab: string;\n\n /**\n * Emitted when tabs are clicked\n * @internal\n */\n @Event() cpslTabButtonClick!: EventEmitter<TabClickEventDetail>;\n\n @Listen('cpslTabsChanged', { target: 'window' })\n onTabsChanged(ev: CustomEvent<TabsChangedEventDetail>) {\n this.setSelected(ev);\n }\n\n @Listen('cpslTabsInit', { target: 'window' })\n onTabsInit(ev: CustomEvent<TabsChangedEventDetail>) {\n this.setSelected(ev);\n }\n\n private setSelected(ev: CustomEvent<TabsChangedEventDetail>) {\n const dispatchedFrom = ev.target as HTMLElement;\n const parent = this.el.parentElement as EventTarget;\n\n if (ev.composedPath().includes(parent) || dispatchedFrom?.contains(this.el)) {\n this.selected = this.tab === ev.detail.tab;\n }\n }\n\n private onTabClicked = () => {\n this.cpslTabButtonClick.emit({ tab: this.tab, selected: this.selected });\n };\n\n render() {\n return (\n <Host onClick={this.onTabClicked}>\n <div class={{ 'tab-container': true }}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --container-border-radius: var(--cpsl-border-radius-table-container);\n --container-border-color: var(--cpsl-color-background-16);\n --container-background-color: var(--cpsl-color-background-0);\n --container-border-width: 1px;\n\n --container-header-padding-top: 24px;\n --container-header-padding-bottom: 24px;\n --container-header-padding-start: 24px;\n --container-header-padding-end: 24px;\n --container-header-border-width: 1px;\n --container-header-border-color: var(--cpsl-color-background-16);\n\n --container-footer-padding-top: 16px;\n --container-footer-padding-bottom: 16px;\n --container-footer-padding-start: 24px;\n --container-footer-padding-end: 24px;\n --container-footer-border-width: 1px;\n --container-footer-border-color: var(--cpsl-color-background-8);\n\n --table-header-padding-top: 16px;\n --table-header-padding-bottom: 16px;\n --table-header-padding-start: 24px;\n --table-header-padding-end: 24px;\n --table-header-background-color: var(--cpsl-color-background-4);\n --table-header-border-color: var(--cpsl-color-background-16);\n --table-header-border-width: 1px;\n\n --table-content-padding-top: 16px;\n --table-content-padding-bottom: 16px;\n --table-content-padding-start: 24px;\n --table-content-padding-end: 24px;\n --table-content-border-color: var(--cpsl-color-background-8);\n --table-content-border-width: 1px;\n\n display: block;\n}\n\n:host {\n cpsl-card {\n height: 100%;\n --card-padding-top: 0px;\n --card-padding-bottom: 0px;\n --card-padding-start: 0px;\n --card-padding-end: 0px;\n --card-border-width: var(--container-border-width);\n --card-border-color: var(--container-border-color);\n --card-border-radius: var(--container-border-radius);\n --card-background-color: var(--container-background-color);\n\n &::part(card-container) {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n }\n}\n\n.content {\n flex: 1;\n overflow: auto;\n position: relative;\n}\n\n.overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n\n &.horizontal-scroll:not(.vertical-scroll) {\n box-shadow: -24px 0px 24px -24px rgba(0, 0, 0, 0.1) inset;\n }\n\n &.vertical-scroll:not(.horizontal-scroll) {\n box-shadow: 0px -24px 24px -24px rgba(0, 0, 0, 0.1) inset;\n }\n\n &.horizontal-scroll.vertical-scroll {\n box-shadow: -24px -24px 24px -24px rgba(0, 0, 0, 0.1) inset;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n height: 100%;\n}\n\n.container-header {\n display: none;\n\n @include padding(var(--container-header-padding-top), var(--container-header-padding-end), var(--container-header-padding-bottom), var(--container-header-padding-start));\n border-bottom: var(--container-header-border-width) solid var(--container-header-border-color);\n}\n\n.container-footer {\n display: none;\n\n @include padding(var(--container-footer-padding-top), var(--container-footer-padding-end), var(--container-footer-padding-bottom), var(--container-footer-padding-start));\n border-top: var(--container-footer-border-width) solid var(--container-footer-border-color);\n}\n\n.shown {\n display: block;\n}\n","import { Component, Host, Element, h, State } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-table',\n styleUrl: 'cpsl-table.scss',\n shadow: true,\n})\nexport class CpslTable {\n @Element() el!: HTMLCpslTableElement;\n\n @State() hasHorizontalScroll: boolean = false;\n @State() hasVerticalScroll: boolean = false;\n\n componentDidLoad() {\n this.resizeOb.observe(this.contentContainerEl);\n }\n\n private resizeOb = new ResizeObserver(entries => {\n // since we are observing only a single element, so we access the first element in entries array\n const rect = entries[0].contentRect;\n\n // current width & height\n const containerWidth = Math.round(rect.width);\n const containerHeight = Math.round(rect.height);\n const contentWidth = this.containerSlotEl.clientWidth;\n const contentHeight = this.containerSlotEl.clientHeight;\n\n if (contentWidth > containerWidth) {\n this.hasHorizontalScroll = true;\n } else {\n this.hasHorizontalScroll = false;\n }\n if (contentHeight > containerHeight) {\n this.hasVerticalScroll = true;\n } else {\n this.hasVerticalScroll = false;\n }\n });\n\n private get containerHeaderEl() {\n return this.el.querySelector('[slot=\"header\"]');\n }\n\n private get containerFooterEl() {\n return this.el.querySelector('[slot=\"footer\"]');\n }\n\n private get contentContainerEl() {\n return this.el.shadowRoot.getElementById('content-container');\n }\n\n private get headerEl() {\n return this.el.shadowRoot.getElementById('header-container');\n }\n\n private get containerSlotEl() {\n return this.el.querySelector('[slot=\"content\"]');\n }\n\n private get footerEl() {\n return this.el.shadowRoot.getElementById('footer-container');\n }\n\n render() {\n return (\n <Host>\n <cpsl-card part=\"table-container\" style={{ position: 'relative' }}>\n <div id=\"header-container\" class={{ 'container-header': true, 'shown': Boolean(this.containerHeaderEl) }}>\n <slot name=\"header\"></slot>\n </div>\n <div id=\"content-container\" class={{ 'content': true, 'horizontal-scroll': this.hasHorizontalScroll, 'vertical-scroll': this.hasVerticalScroll }} part=\"content\">\n <slot name=\"content\"></slot>\n </div>\n {this.headerEl && this.contentContainerEl && this.footerEl && (\n <div\n style={{ top: `${this.headerEl.clientHeight + 2}px`, height: `${this.contentContainerEl.clientHeight}px` }}\n class={{ 'overlay': true, 'horizontal-scroll': this.hasHorizontalScroll, 'vertical-scroll': this.hasVerticalScroll }}\n />\n )}\n <div id=\"footer-container\" class={{ 'container-footer': true, 'shown': Boolean(this.containerFooterEl) }}>\n <slot name=\"footer\"></slot>\n </div>\n </cpsl-card>\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --tab-top-padding: 5px;\n --tab-bottom-padding: 5px;\n --tab-left-padding: 16px;\n --tab-right-padding: 16px;\n\n --tabs-border-radius: var(--cpsl-border-radius-tabs);\n --tabs-font-size: 12px;\n --tabs-line-height: 24px;\n --tabs-border-width: 1px;\n --tabs-border-color: var(--cpsl-color-tabs-border);\n --tabs-background-color: var(--cpsl-color-tabs-background);\n\n --slider-background-color: var(--cpsl-color-tabs-slider-background);\n\n display: inline-block;\n max-width: 100%;\n font-family: $font-family-base;\n}\n\n:host(.full-width) {\n display: block;\n}\n\n.tabs-container {\n position: relative;\n display: flex;\n overflow-x: scroll;\n overflow-y: hidden;\n\n border-width: var(--tabs-border-width);\n border-style: solid;\n border-color: var(--tabs-border-color);\n border-radius: var(--tabs-border-radius);\n\n background: var(--tabs-background-color);\n\n font-size: var(--tabs-font-size);\n line-height: var(--tabs-line-height);\n\n &::-webkit-scrollbar {\n display: none;\n }\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n\n.slider {\n position: absolute;\n top: calc(var(--tabs-border-width) * -1);\n bottom: calc(var(--tabs-border-width) * -1);\n left: -1px;\n\n border-width: var(--tabs-border-width);\n border-style: solid;\n border-color: var(--tabs-border-color);\n border-radius: var(--tabs-border-radius);\n\n background: var(--slider-background-color);\n\n box-shadow: -1px 0px 2px 0px var(--cpsl-color-alpha-black-10), 1px 0px 2px 0px var(--cpsl-color-alpha-black-10);\n}\n\n.loaded {\n transition: all 0.5s;\n}\n","import { Component, Host, Element, h, Event, Prop, EventEmitter, State, Watch } from '@stencil/core';\nimport { TabClickEventDetail } from '../cpsl-tab/tab-interface';\nimport { TabsChangedEventDetail } from './tabs-interface';\n\n@Component({\n tag: 'cpsl-tabs',\n styleUrl: 'cpsl-tabs.scss',\n shadow: true,\n})\nexport class CpslTabs {\n @Element() el!: HTMLCpslTabsElement;\n\n @State() selectedTabRect?: DOMRect;\n @State() loaded: boolean = false;\n\n /**\n * Whether or not the tabs take the full width of their container.\n */\n @Prop() fullWidth?: boolean;\n\n /**\n * The selected tab component\n */\n @Prop() selectedTab?: string;\n\n /**\n * Emitted when a tab is changed\n */\n @Event() cpslTabsChanged!: EventEmitter<TabsChangedEventDetail>;\n\n /**\n * Emitted when tabs are initialized\n * @internal\n */\n @Event() cpslTabsInit!: EventEmitter<TabsChangedEventDetail>;\n\n @Watch('fullWidth')\n updateSlider() {\n // Allow component to condense or expand before recalculating silder\n setTimeout(() => {\n this.selectedTabRect = getTab(this.tabs, this.selectedTab).getBoundingClientRect();\n }, 50);\n }\n\n @Watch('selectedTab')\n updateTab(newValue?: string, oldValue?: string) {\n if (Boolean(newValue) && !Boolean(oldValue)) {\n this.selectedTabRect = getTab(this.tabs, this.selectedTab).getBoundingClientRect();\n }\n }\n\n componentWillLoad() {\n this.selectedTabRect = getTab(this.tabs, this.selectedTab)?.getBoundingClientRect() ?? ({ width: 0, x: 0 } as DOMRect);\n\n this.cpslTabsInit.emit({\n tab: this.selectedTab,\n });\n }\n\n componentDidLoad() {\n this.selectedTabRect = getTab(this.tabs, this.selectedTab)?.getBoundingClientRect() ?? ({ width: 0, x: 0 } as DOMRect);\n\n // Allow slider to be rendered with the correct initial style before the transition is added\n setTimeout(() => {\n this.loaded = true;\n }, 50);\n }\n\n private get tabs() {\n return Array.from(this.el.querySelectorAll('cpsl-tab'));\n }\n\n private onTabClicked = (ev: CustomEvent<TabClickEventDetail>) => {\n const { tab } = ev.detail;\n\n if (tab !== this.selectedTab) {\n this.selectedTabRect = getTab(this.tabs, tab).getBoundingClientRect();\n\n this.cpslTabsChanged.emit({\n tab,\n });\n }\n };\n\n render() {\n const tabsPosition = this.el.getBoundingClientRect();\n // Get border width as a number\n const tabsBorderWidth = +getComputedStyle(this.el).getPropertyValue('--tabs-border-width').slice(0, -2);\n const selectedTabRect = this.selectedTabRect;\n\n return (\n <Host class={{ 'full-width': this.fullWidth }} onCpslTabButtonClick={this.onTabClicked}>\n <div class=\"tabs-container\">\n <slot></slot>\n <div\n class={{ slider: true, loaded: this.loaded }}\n style={{ width: `${selectedTabRect.width}px`, left: `${selectedTabRect.x - tabsPosition.x - tabsBorderWidth * 2}px` }}\n />\n </div>\n </Host>\n );\n }\n}\n\nconst getTab = (tabs: HTMLCpslTabElement[], tab: string | HTMLCpslTabElement): HTMLCpslTabElement | undefined => {\n const tabEl = typeof tab === 'string' ? tabs.find(t => t.tab === tab) : tab;\n\n return tabEl;\n};\n","@import '../../themes/capsule.globals';\n\n:host {\n font-family: $font-family-base;\n\n color: var(--cpsl-color-text-primary);\n padding: 0px;\n margin: 0px;\n\n display: block;\n}\n\n:host p,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n padding: 0px;\n margin: 0px;\n font-weight: inherit;\n font-size: inherit;\n letter-spacing: inherit;\n}\n\n:host(.primary) {\n color: var(--cpsl-color-text-primary);\n}\n\n:host(.secondary) {\n color: var(--cpsl-color-text-secondary);\n}\n\n:host(.tertiary) {\n color: var(--cpsl-color-text-tertiary);\n}\n\n:host(.subtle) {\n color: var(--cpsl-color-text-subtle);\n}\n\n:host(.inverted) {\n color: var(--cpsl-color-text-inverted);\n}\n\n:host(.error) {\n color: var(--cpsl-color-text-error);\n}\n\n:host(.medium) {\n font-weight: 500;\n}\n\n:host(.semi-bold) {\n font-weight: 600;\n}\n\n:host(.bold) {\n font-weight: 700;\n}\n\n:host(.body-2xs) {\n font-size: var(--cpsl-font-size-body-2xs);\n}\n\n:host(.body-xs) {\n font-size: var(--cpsl-font-size-body-xs);\n}\n\n:host(.body-s) {\n font-size: var(--cpsl-font-size-body-s);\n}\n\n:host(.body-m) {\n font-size: var(--cpsl-font-size-body-m);\n}\n\n:host(.body-l) {\n font-size: var(--cpsl-font-size-body-l);\n}\n\n:host(.body-xl) {\n font-size: var(--cpsl-font-size-body-xl);\n}\n\n:host(.heading-xs) {\n font-size: var(--cpsl-font-size-heading-xs);\n}\n\n:host(.heading-s) {\n font-size: var(--cpsl-font-size-heading-s);\n}\n\n:host(.heading-m) {\n font-size: var(--cpsl-font-size-heading-m);\n letter-spacing: -0.4px;\n}\n\n:host(.heading-l) {\n font-size: var(--cpsl-font-size-heading-l);\n letter-spacing: -1.12px;\n}\n\n:host(.heading-xl) {\n font-size: var(--cpsl-font-size-heading-xl);\n letter-spacing: -1.28px;\n}\n\n:host(.heading-2xl) {\n font-size: var(--cpsl-font-size-heading-2xl);\n letter-spacing: -1.44px;\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'cpsl-text',\n styleUrl: 'cpsl-text.scss',\n shadow: true,\n})\nexport class CpslText {\n /**\n * The color of text.\n * Options are: `\"primary\"`, `\"secondary\", `\"tertiary\", `\"subtle\", `\"inverted\", `\"error\".\n * Default is: `\"primary\"`.\n */\n @Prop() color?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'inverted' | 'error' = 'primary';\n\n /**\n * The variant of text.\n * Options are: `\"body2XS\"`, `\"bodyXS\", `\"bodyS\", `\"bodyM\", `\"bodyL\", `\"bodyXL\", `\"headingXS\", `\"headingS\", `\"headingM\", `\"headingL\", `\"headingXL\", `\"heading2XL\".\n * Default is: `\"bodyM\"`.\n */\n @Prop() variant?: 'body2XS' | 'bodyXS' | 'bodyS' | 'bodyM' | 'bodyL' | 'bodyXL' | 'headingXS' | 'headingS' | 'headingM' | 'headingL' | 'headingXL' | 'heading2XL' = 'bodyM';\n\n /**\n * The weight of text.\n * Options are: `\"regular\"`, `\"medium\", `\"semiBold\", `\"bold\".\n * Default is: `\"regular\"`.\n */\n @Prop() weight?: 'regular' | 'medium' | 'semiBold' | 'bold' = 'regular';\n\n private get Content() {\n switch (this.variant) {\n case 'headingXS': {\n return (\n <h6>\n <slot></slot>\n </h6>\n );\n }\n case 'headingS': {\n return (\n <h5>\n <slot></slot>\n </h5>\n );\n }\n case 'headingM': {\n return (\n <h4>\n <slot></slot>\n </h4>\n );\n }\n case 'headingL': {\n return (\n <h3>\n <slot></slot>\n </h3>\n );\n }\n case 'headingXL': {\n return (\n <h2>\n <slot></slot>\n </h2>\n );\n }\n case 'heading2XL': {\n return (\n <h1>\n <slot></slot>\n </h1>\n );\n }\n default: {\n return (\n <p>\n <slot></slot>\n </p>\n );\n }\n }\n }\n\n render() {\n return (\n <Host\n class={{\n // COLORS\n 'primary': this.color === 'primary',\n 'secondary': this.color === 'secondary',\n 'tertiary': this.color === 'tertiary',\n 'subtle': this.color === 'subtle',\n 'inverted': this.color === 'inverted',\n 'error': this.color === 'error',\n // WEIGHTS\n 'medium': this.weight === 'medium',\n 'semi-bold': this.weight === 'semiBold',\n 'bold': this.weight === 'bold',\n // SIZES\n 'body-2xs': this.variant === 'body2XS',\n 'body-xs': this.variant === 'bodyXS',\n 'body-s': this.variant === 'bodyS',\n 'body-m': this.variant === 'bodyM',\n 'body-l': this.variant === 'bodyL',\n 'body-xl': this.variant === 'bodyXL',\n 'heading-xs': this.variant === 'headingXS',\n 'heading-s': this.variant === 'headingS',\n 'heading-m': this.variant === 'headingM',\n 'heading-l': this.variant === 'headingL',\n 'heading-xl': this.variant === 'headingXL',\n 'heading-2xl': this.variant === 'heading2XL',\n }}\n >\n {this.Content}\n </Host>\n );\n }\n}\n","@import '../../themes/capsule.globals';\n\n:host {\n --button-icon-color: var(--cpsl-color-text-primary);\n\n --button-border-radius: var(--cpsl-border-radius-tile-button);\n\n --button-background-color: var(--cpsl-color-tile-button-surface-default);\n --button-border-color: var(--cpsl-color-tile-button-border);\n\n --button-width: 72px;\n --button-height: 56px;\n --button-gap: 4px;\n}\n\n:host {\n :hover {\n --button-background-color: var(--cpsl-color-tile-button-surface-hover);\n }\n :active {\n --button-background-color: var(--cpsl-color-tile-button-surface-pressed);\n }\n}\n\n.button-native {\n @include border-radius(var(--button-border-radius));\n @include padding(var(--button-padding-top), var(--button-padding-end), var(--button-padding-bottom), var(--button-padding-start));\n\n border: 1px solid transparent;\n cursor: pointer;\n\n background: var(--button-background-color);\n border-color: var(--button-border-color);\n\n display: flex;\n flex-direction: column;\n gap: var(--button-gap);\n\n align-items: center;\n justify-content: center;\n\n width: var(--button-width);\n height: var(--button-height);\n\n box-shadow: var(--button-box-shadow);\n\n cpsl-icon {\n --icon-color: var(--button-icon-color);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { IconType } from '../../interface';\n\n@Component({\n tag: 'cpsl-tile-button',\n styleUrl: 'cpsl-tile-button.scss',\n shadow: true,\n})\nexport class CpslTileButton {\n /**\n * The external source of the icon. If both `icon` and `src` are provided, `icon` will be used.\n */\n @Prop() src?: string;\n\n /**\n * The name of the icon. If both `icon` and `src` are provided, `icon` will be used.\n */\n @Prop() icon?: IconType;\n\n render() {\n return (\n <Host>\n <button class=\"button-native\">\n <cpsl-icon exportparts=\"icon\" src={this.src} icon={this.icon} />\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
|