{"version":3,"sources":["webpack:///./node_modules/dom-align/dist-web/index.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","vendorPrefix","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","undefined","style","document","createElement","getTransitionName","concat","getTransformName","setTransitionProperty","node","name","transitionProperty","setTransform","transform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","display","offsetHeight","css","el","v","i","hasOwnProperty","getScroll","w","top","ret","method","d","documentElement","body","getScrollLeft","getScrollTop","getOffset","pos","box","x","y","doc","ownerDocument","docElem","getBoundingClientRect","left","clientLeft","clientTop","getClientPosition","defaultView","parentWindow","isWindow","window","getDocument","nodeType","_RE_NUM_NO_PX","RegExp","source","RE_POS","LEFT","getOffsetDirection","dir","option","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","offset","position","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_key","_dir","_off","setTransform$1","originalXY","getComputedStyle","getPropertyValue","matrix","replace","split","parseFloat","getTransformXY","resultXY","xy","arr","match2d","match","map","item","join","setTransformXY","each","fn","length","isBorderBoxFn","cs","computedStyle","val","test","rsLeft","pixelLeft","BOX_MODELS","swap","options","callback","call","getPBMWidth","props","which","prop","j","cssProp","domUtils","getParent","element","parent","host","parentNode","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","width","height","isBorderBox","cssBoxValue","Number","borderBoxValueOrIsBorderBox","slice","refWin","Math","max","win","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","_len","arguments","args","Array","_key2","offsetWidth","mix","to","from","first","charAt","toUpperCase","includeMargin","utils","getWindow","setTimeout","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","setOffset","clone","overflow","getWindowScrollLeft","getWindowScrollTop","merge","getOffsetParent","positionStyle","nodeName","toLowerCase","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","right","Infinity","bottom","navigator","userAgent","indexOf","clientWidth","min","clientHeight","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","innerWidth","overflowY","innerHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","h","outerWidth","outerHeight","getAlignOffset","region","align","V","H","getElFuturePos","elRegion","refNodeRegion","points","targetOffset","p1","p2","diff","round","isFailX","elFuturePos","isFailY","flip","reg","p","m","flipOffset","index","convertOffset","str","offsetLen","parseInt","substring","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newPoints","l","r","newOffset","newTargetOffset","isCompleteFailX","_newPoints","t","b","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","size","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","target","targetRegion","isOutOfVisibleRect","alignPoint","tgtPoint","pageX","pageY","clientX","clientY","pointInView","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread2","__getOffsetParent","__getVisibleRectForElement"],"mappings":"2GAAA,SAASA,EAAQC,GAWf,OATED,EADoB,mBAAXE,QAAoD,iBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,IAI9GA,GAGjB,SAASK,EAAgBL,EAAKM,EAAKC,GAYjC,OAXID,KAAON,EACTQ,OAAOC,eAAeT,EAAKM,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZZ,EAAIM,GAAOC,EAGNP,EAGT,SAASa,EAAQC,EAAQC,GACvB,IAAIC,EAAOR,OAAOQ,KAAKF,GAEvB,GAAIN,OAAOS,sBAAuB,CAChC,IAAIC,EAAUV,OAAOS,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOZ,OAAOa,yBAAyBP,EAAQM,GAAKV,eAEtDM,EAAKM,KAAKC,MAAMP,EAAME,GAGxB,OAAOF,EAuBT,IAAIQ,EA/DJ,sEAgEA,IAAIC,EAAW,CACbC,OAAQ,WACRC,IAAK,QAELC,GAAI,OACJC,EAAG,OAGL,SAASC,IACP,QAAqBC,IAAjBP,EACF,OAAOA,EAGTA,EAAe,GACf,IAAIQ,EAAQC,SAASC,cAAc,KAAKF,MAGxC,IAAK,IAAI1B,KAAOmB,EACVnB,EAHS,cAGS0B,IACpBR,EAAelB,GAInB,OAAOkB,EAGT,SAASW,IACP,OAAOL,IAAoB,GAAGM,OAAON,IAAmB,sBAAwB,qBAGlF,SAASO,IACP,OAAOP,IAAoB,GAAGM,OAAON,IAAmB,aAAe,YAEzE,SAASQ,EAAsBC,EAAMhC,GACnC,IAAIiC,EAAOL,IAEPK,IACFD,EAAKP,MAAMQ,GAAQjC,EAEN,uBAATiC,IACFD,EAAKP,MAAMS,mBAAqBlC,IAKtC,SAASmC,EAAaH,EAAMhC,GAC1B,IAAIiC,EAAOH,IAEPG,IACFD,EAAKP,MAAMQ,GAAQjC,EAEN,cAATiC,IACFD,EAAKP,MAAMW,UAAYpC,IAyB7B,IAiCIqC,EAjCAC,EAAW,iBACXC,EAAW,mBAkCf,SAASC,EAAcC,GACrB,IAAIC,EAAgBD,EAAKhB,MAAMkB,QAC/BF,EAAKhB,MAAMkB,QAAU,OACrBF,EAAKG,aAELH,EAAKhB,MAAMkB,QAAUD,EAGvB,SAASG,EAAIC,EAAIb,EAAMc,GACrB,IAAI/C,EAAQ+C,EAEZ,GAAsB,WAAlBvD,EAAQyC,GAUZ,YAAqB,IAAVjC,GACY,iBAAVA,IACTA,EAAQ,GAAG6B,OAAO7B,EAAO,YAG3B8C,EAAGrB,MAAMQ,GAAQjC,IAIZqC,EAAkBS,EAAIb,GAlB3B,IAAK,IAAIe,KAAKf,EACRA,EAAKgB,eAAeD,IACtBH,EAAIC,EAAIE,EAAGf,EAAKe,IA0DxB,SAASE,EAAUC,EAAGC,GACpB,IAAIC,EAAMF,EAAE,OAAOtB,OAAOuB,EAAM,IAAM,IAAK,WACvCE,EAAS,SAASzB,OAAOuB,EAAM,MAAQ,QAE3C,GAAmB,iBAARC,EAAkB,CAC3B,IAAIE,EAAIJ,EAAEzB,SAIS,iBAFnB2B,EAAME,EAAEC,gBAAgBF,MAItBD,EAAME,EAAEE,KAAKH,IAIjB,OAAOD,EAGT,SAASK,EAAcP,GACrB,OAAOD,EAAUC,GAGnB,SAASQ,EAAaR,GACpB,OAAOD,EAAUC,GAAG,GAGtB,SAASS,EAAUd,GACjB,IAAIe,EAlEN,SAA2BpB,GACzB,IAAIqB,EACAC,EACAC,EACAC,EAAMxB,EAAKyB,cACXT,EAAOQ,EAAIR,KACXU,EAAUF,GAAOA,EAAIT,gBA2BzB,OArBAO,GAJAD,EAAMrB,EAAK2B,yBAIHC,KACRL,EAAIF,EAAIV,IAoBD,CACLiB,KAHFN,GAAKI,EAAQG,YAAcb,EAAKa,YAAc,EAI5ClB,IAHFY,GAAKG,EAAQI,WAAad,EAAKc,WAAa,GAkClCC,CAAkB1B,GACxBmB,EAAMnB,EAAGoB,cACTf,EAAIc,EAAIQ,aAAeR,EAAIS,aAG/B,OAFAb,EAAIQ,MAAQX,EAAcP,GAC1BU,EAAIT,KAAOO,EAAaR,GACjBU,EAQT,SAASc,EAASlF,GAIhB,OAAOA,SAAqCA,GAAOA,EAAImF,OAGzD,SAASC,EAAY7C,GACnB,OAAI2C,EAAS3C,GACJA,EAAKN,SAGQ,IAAlBM,EAAK8C,SACA9C,EAGFA,EAAKkC,cAgBd,IAAIa,EAAgB,IAAIC,OAAO,KAAKnD,OAnJvB,wCAAwCoD,OAmJF,mBAAoB,KAEnEC,EAAS,4BAGTC,EAAO,OAsCX,SAASC,EAAmBC,EAAKC,GAC/B,MAAY,SAARD,EACKC,EAAOC,YAAc,QAAUF,EAGjCC,EAAOE,aAAe,SAAWH,EAG1C,SAASI,EAAwBJ,GAC/B,MAAY,SAARA,EACK,QACU,UAARA,EACF,OACU,QAARA,EACF,SACU,WAARA,EACF,WADF,EAMT,SAASK,EAAWjD,EAAMkD,EAAQL,GAEF,WAA1BzC,EAAIJ,EAAM,cACZA,EAAKhB,MAAMmE,SAAW,YAGxB,IAAIC,GAAW,IACXC,GAAW,IACXC,EAAqBX,EAAmB,OAAQE,GAChDU,EAAmBZ,EAAmB,MAAOE,GAC7CW,EAA6BR,EAAwBM,GACrDG,EAA2BT,EAAwBO,GAE5B,SAAvBD,IACFF,EAAU,KAGa,QAArBG,IACFF,EAAU,KAGZ,IA5R6B9D,EA4RzBmE,EAAqB,GACrBC,EAAiBxC,EAAUnB,IAE3B,SAAUkD,GAAU,QAASA,KAC/BQ,GAhS2BnE,EAgSgBS,GA/RjChB,MAAMS,oBAAsBF,EAAKP,MAAMG,MA+RG,GACpDG,EAAsBU,EAAM,SAG1B,SAAUkD,IACZlD,EAAKhB,MAAMwE,GAA8B,GACzCxD,EAAKhB,MAAMsE,GAAsB,GAAGlE,OAAOgE,EAAS,OAGlD,QAASF,IACXlD,EAAKhB,MAAMyE,GAA4B,GACvCzD,EAAKhB,MAAMuE,GAAoB,GAAGnE,OAAOiE,EAAS,OAIpDtD,EAAcC,GACd,IAAI4D,EAAMzC,EAAUnB,GAChBC,EAAgB,GAEpB,IAAK,IAAI3C,KAAO4F,EACd,GAAIA,EAAO1C,eAAelD,GAAM,CAC9B,IAAIsF,EAAMD,EAAmBrF,EAAKuF,GAC9BgB,EAAiB,SAARvG,EAAiB8F,EAAUC,EACpCS,EAAMH,EAAerG,GAAOsG,EAAItG,GAGlC2C,EAAc2C,GADZA,IAAQtF,EACWuG,EAASC,EAETD,EAASC,EAKpC1D,EAAIJ,EAAMC,GAEVF,EAAcC,IAEV,SAAUkD,GAAU,QAASA,IAC/B5D,EAAsBU,EAAM0D,GAG9B,IAAI9C,EAAM,GAEV,IAAK,IAAImD,KAAQb,EACf,GAAIA,EAAO1C,eAAeuD,GAAO,CAC/B,IAAIC,EAAOrB,EAAmBoB,EAAMlB,GAEhCoB,EAAOf,EAAOa,GAAQJ,EAAeI,GAGvCnD,EAAIoD,GADFD,IAASC,EACC/D,EAAc+D,GAAQC,EAEtBhE,EAAc+D,GAAQC,EAKxC7D,EAAIJ,EAAMY,GAGZ,SAASsD,EAAelE,EAAMkD,GAC5B,IAAIS,EAAiBxC,EAAUnB,GAC3BmE,EA3VN,SAAwB5E,GACtB,IAAIP,EAAQmD,OAAOiC,iBAAiB7E,EAAM,MACtCI,EAAYX,EAAMqF,iBAAiB,cAAgBrF,EAAMqF,iBAAiBhF,KAE9E,GAAIM,GAA2B,SAAdA,EAAsB,CACrC,IAAI2E,EAAS3E,EAAU4E,QAAQ,cAAe,IAAIC,MAAM,KACxD,MAAO,CACLlD,EAAGmD,WAAWH,EAAO,KAAOA,EAAO,GAAI,GACvC/C,EAAGkD,WAAWH,EAAO,KAAOA,EAAO,GAAI,IAI3C,MAAO,CACLhD,EAAG,EACHC,EAAG,GA6UYmD,CAAe1E,GAC5B2E,EAAW,CACbrD,EAAG6C,EAAW7C,EACdC,EAAG4C,EAAW5C,GAGZ,SAAU2B,IACZyB,EAASrD,EAAI6C,EAAW7C,EAAI4B,EAAOtB,KAAO+B,EAAe/B,MAGvD,QAASsB,IACXyB,EAASpD,EAAI4C,EAAW5C,EAAI2B,EAAOvC,IAAMgD,EAAehD,KAnV5D,SAAwBpB,EAAMqF,GAC5B,IAAI5F,EAAQmD,OAAOiC,iBAAiB7E,EAAM,MACtCI,EAAYX,EAAMqF,iBAAiB,cAAgBrF,EAAMqF,iBAAiBhF,KAE9E,GAAIM,GAA2B,SAAdA,EAAsB,CACrC,IAAIkF,EACAC,EAAUnF,EAAUoF,MAAMlF,GAE9B,GAAIiF,GAEFD,GADAC,EAAUA,EAAQ,IACJN,MAAM,KAAKQ,KAAI,SAAUC,GACrC,OAAOR,WAAWQ,EAAM,QAEtB,GAAKL,EAAGtD,EACZuD,EAAI,GAAKD,EAAGrD,EACZ7B,EAAaH,EAAM,UAAUH,OAAOyF,EAAIK,KAAK,KAAM,WAGnDL,EADclF,EAAUoF,MAAMjF,GAAU,GAC1B0E,MAAM,KAAKQ,KAAI,SAAUC,GACrC,OAAOR,WAAWQ,EAAM,QAEtB,IAAML,EAAGtD,EACbuD,EAAI,IAAMD,EAAGrD,EACb7B,EAAaH,EAAM,YAAYH,OAAOyF,EAAIK,KAAK,KAAM,WAGvDxF,EAAaH,EAAM,cAAcH,OAAOwF,EAAGtD,EAAG,mBAAmBlC,OAAOwF,EAAGrD,EAAG,sBA4ThF4D,CAAenF,EAAM2E,GAyBvB,SAASS,EAAKP,EAAKQ,GACjB,IAAK,IAAI9E,EAAI,EAAGA,EAAIsE,EAAIS,OAAQ/E,IAC9B8E,EAAGR,EAAItE,IAIX,SAASgF,EAAcvF,GACrB,MAAgD,eAAzCJ,EAAkBI,EAAM,aA9JX,oBAAXmC,SACTvC,EAAoBuC,OAAOiC,iBArD7B,SAA2BpE,EAAMR,EAAMgG,GACrC,IAAIC,EAAgBD,EAChBE,EAAM,GACN5E,EAAIsB,EAAYpC,GAOpB,OANAyF,EAAgBA,GAAiB3E,EAAEkB,YAAYoC,iBAAiBpE,EAAM,SAGpE0F,EAAMD,EAAcpB,iBAAiB7E,IAASiG,EAAcjG,IAGvDkG,GAWT,SAA6B1F,EAAMR,GAGjC,IAAIoB,EAAMZ,EAAkB,cAAKA,EAAkB,aAAER,GAUrD,GAAI8C,EAAcqD,KAAK/E,KAAS6B,EAAOkD,KAAKnG,GAAO,CAEjD,IAAIR,EAAQgB,EAAKhB,MACb4C,EAAO5C,EAAM0D,GACbkD,EAAS5F,EAAkB,aAAE0C,GAEjC1C,EAAkB,aAAE0C,GAAQ1C,EAAkB,aAAE0C,GAEhD1D,EAAM0D,GAAiB,aAATlD,EAAsB,MAAQoB,GAAO,EACnDA,EAAM5B,EAAM6G,UAxBP,KA0BL7G,EAAM0D,GAAQd,EACd5B,EAAkB,aAAE0C,GAAQkD,EAG9B,MAAe,KAARhF,EAAa,OAASA,IAoK/B,IAAIkF,EAAa,CAAC,SAAU,SAAU,WAMtC,SAASC,EAAK/F,EAAMgG,EAASC,GAC3B,IAEIzG,EAFAoE,EAAM,GACN5E,EAAQgB,EAAKhB,MAGjB,IAAKQ,KAAQwG,EACPA,EAAQxF,eAAehB,KACzBoE,EAAIpE,GAAQR,EAAMQ,GAClBR,EAAMQ,GAAQwG,EAAQxG,IAM1B,IAAKA,KAFLyG,EAASC,KAAKlG,GAEDgG,EACPA,EAAQxF,eAAehB,KACzBR,EAAMQ,GAAQoE,EAAIpE,IAKxB,SAAS2G,EAAYnG,EAAMoG,EAAOC,GAChC,IACIC,EACAC,EACAhG,EAHAhD,EAAQ,EAKZ,IAAKgJ,EAAI,EAAGA,EAAIH,EAAMd,OAAQiB,IAG5B,GAFAD,EAAOF,EAAMG,GAGX,IAAKhG,EAAI,EAAGA,EAAI8F,EAAMf,OAAQ/E,IAAK,CACjC,IAAIiG,OAAU,EAGZA,EADW,WAATF,EACQ,GAAGlH,OAAOkH,GAAMlH,OAAOiH,EAAM9F,GAAI,SAEjC+F,EAAOD,EAAM9F,GAGzBhD,GAASkH,WAAW7E,EAAkBI,EAAMwG,KAAa,EAK/D,OAAOjJ,EAGT,IAAIkJ,EAAW,CACbC,UAAW,SAAmBC,GAC5B,IAAIC,EAASD,EAEb,GAEIC,EADsB,KAApBA,EAAOvE,UAAmBuE,EAAOC,KAC1BD,EAAOC,KAEPD,EAAOE,iBAEXF,GAA8B,IAApBA,EAAOvE,UAAsC,IAApBuE,EAAOvE,UAEnD,OAAOuE,IAiCX,SAASG,EAAM/G,EAAMR,EAAMwH,GACzB,IAAIC,EAAQD,EAEZ,GAAI9E,EAASlC,GACX,MAAgB,UAATR,EAAmBiH,EAASS,cAAclH,GAAQyG,EAASU,eAAenH,GAC5E,GAAsB,IAAlBA,EAAKqC,SACd,MAAgB,UAAT7C,EAAmBiH,EAASW,SAASpH,GAAQyG,EAASY,UAAUrH,GAGzE,IAAIqG,EAAiB,UAAT7G,EAAmB,CAAC,OAAQ,SAAW,CAAC,MAAO,UACvD8H,EAA0B,UAAT9H,EAAmBQ,EAAK2B,wBAAwB4F,MAAQvH,EAAK2B,wBAAwB6F,OAEtGC,GADgB7H,EAAkBI,GACpBuF,EAAcvF,IAC5B0H,EAAc,GAEdJ,SAA2DA,GAAkB,KAC/EA,OAAiBvI,GAIb2I,OAFJA,EAAc9H,EAAkBI,EAAMR,KAEmBmI,OAAOD,GAAe,KAC7EA,EAAc1H,EAAKhB,MAAMQ,IAAS,GAIpCkI,EAAcjD,WAAWiD,IAAgB,QAG7B3I,IAAVkI,IACFA,EAAQQ,EA7HO,GAFC,GAkIlB,IAAIG,OAAiD7I,IAAnBuI,GAAgCG,EAC9D/B,EAAM4B,GAAkBI,EAE5B,OArIkB,IAqIdT,EACEW,EACKlC,EAAMS,EAAYnG,EAAM,CAAC,SAAU,WAAYqG,GAGjDqB,EACEE,EAzIM,IA0IXX,EACKvB,EAGFA,GA/IS,IA+IFuB,GAA2Bd,EAAYnG,EAAM,CAAC,UAAWqG,GAASF,EAAYnG,EAAM,CAAC,UAAWqG,IAGzGqB,EAAcvB,EAAYnG,EAAM8F,EAAW+B,MAAMZ,GAAQZ,GA/ElEjB,EAAK,CAAC,QAAS,WAAW,SAAU5F,GAClCiH,EAAS,MAAMrH,OAAOI,IAAS,SAAUsI,GACvC,IAAIhH,EAAIgH,EAAO7I,SACf,OAAO8I,KAAKC,IAEZlH,EAAEC,gBAAgB,SAAS3B,OAAOI,IAClCsB,EAAEE,KAAK,SAAS5B,OAAOI,IAAQiH,EAAS,WAAWrH,OAAOI,IAAOsB,KAGnE2F,EAAS,WAAWrH,OAAOI,IAAS,SAAUyI,GAE5C,IAAI3B,EAAO,SAASlH,OAAOI,GACvBgC,EAAMyG,EAAIhJ,SACV+B,EAAOQ,EAAIR,KAEXkH,EADkB1G,EAAIT,gBACgBuF,GAG1C,MAA0B,eAAnB9E,EAAI2G,YAA+BD,GAAuBlH,GAAQA,EAAKsF,IAAS4B,MAgE3F,IAAIE,EAAU,CACZjF,SAAU,WACVkF,WAAY,SACZnI,QAAS,SAGX,SAASoI,IACP,IAAK,IAAIC,EAAOC,UAAUlD,OAAQmD,EAAO,IAAIC,MAAMH,GAAOI,EAAQ,EAAGA,EAAQJ,EAAMI,IACjFF,EAAKE,GAASH,UAAUG,GAG1B,IAAIjD,EACA1F,EAAOyI,EAAK,GAWhB,OARyB,IAArBzI,EAAK4I,YACPlD,EAAMqB,EAAMxI,WAAMQ,EAAW0J,GAE7B1C,EAAK/F,EAAMoI,GAAS,WAClB1C,EAAMqB,EAAMxI,WAAMQ,EAAW0J,MAI1B/C,EAkCT,SAASmD,EAAIC,EAAIC,GACf,IAAK,IAAIxI,KAAKwI,EACRA,EAAKvI,eAAeD,KACtBuI,EAAGvI,GAAKwI,EAAKxI,IAIjB,OAAOuI,EAtCT1D,EAAK,CAAC,QAAS,WAAW,SAAU5F,GAClC,IAAIwJ,EAAQxJ,EAAKyJ,OAAO,GAAGC,cAAgB1J,EAAKqI,MAAM,GAEtDpB,EAAS,QAAQrH,OAAO4J,IAAU,SAAU3I,EAAI8I,GAC9C,OAAO9I,GAAMiI,EAAmBjI,EAAIb,EAAM2J,EAjL3B,EADA,IAqLjB,IAAI9C,EAAiB,UAAT7G,EAAmB,CAAC,OAAQ,SAAW,CAAC,MAAO,UAE3DiH,EAASjH,GAAQ,SAAUQ,EAAMM,GAC/B,IAAIoF,EAAMpF,EAEV,QAAYvB,IAAR2G,EAeJ,OAAO1F,GAAQsI,EAAmBtI,EAAMR,GA3MxB,GA6Ld,GAAIQ,EAAM,CACYJ,EAAkBI,GAOtC,OANkBuF,EAAcvF,KAG9B0F,GAAOS,EAAYnG,EAAM,CAAC,UAAW,UAAWqG,IAG3CjG,EAAIJ,EAAMR,EAAMkG,QAoB/B,IAAI0D,EAAQ,CACVC,UAAW,SAAmB9J,GAC5B,GAAIA,GAAQA,EAAKN,UAAYM,EAAK+J,WAChC,OAAO/J,EAGT,IAAIiC,EAAMjC,EAAKkC,eAAiBlC,EAChC,OAAOiC,EAAIQ,aAAeR,EAAIS,cAEhCG,YAAaA,EACbc,OAAQ,SAAgB7C,EAAI9C,EAAOsF,GACjC,QAAqB,IAAVtF,EAGT,OAAO4D,EAAUd,IAxQvB,SAAmBL,EAAMkD,EAAQL,GAC/B,GAAIA,EAAO0G,YAAa,CACtB,IAAIC,EAAYrI,EAAUnB,GACtByJ,EAAQD,EAAU5H,KAAK8H,QAAQ,GAC/BC,EAAOH,EAAU7I,IAAI+I,QAAQ,GAC7BE,EAAQ1G,EAAOtB,KAAK8H,QAAQ,GAC5BG,EAAO3G,EAAOvC,IAAI+I,QAAQ,GAE9B,GAAID,IAAUG,GAASD,IAASE,EAC9B,OAIAhH,EAAOC,aAAeD,EAAOE,aAC/BE,EAAWjD,EAAMkD,EAAQL,GAChBA,EAAOiH,iBAAmBzK,MAAsBJ,SAAS+B,KAAKhC,MACvEkF,EAAelE,EAAMkD,GAErBD,EAAWjD,EAAMkD,EAAQL,GAoPvBkH,CAAU1J,EAAI9C,EAAOsF,GAAU,KAKnCX,SAAUA,EACVkD,KAAMA,EACNhF,IAAKA,EACL4J,MAAO,SAAehN,GACpB,IAAIuD,EACAK,EAAM,GAEV,IAAKL,KAAKvD,EACJA,EAAIwD,eAAeD,KACrBK,EAAIL,GAAKvD,EAAIuD,IAMjB,GAFevD,EAAIiN,SAGjB,IAAK1J,KAAKvD,EACJA,EAAIwD,eAAeD,KACrBK,EAAIqJ,SAAS1J,GAAKvD,EAAIiN,SAAS1J,IAKrC,OAAOK,GAETiI,IAAKA,EACLqB,oBAAqB,SAA6BxJ,GAChD,OAAOO,EAAcP,IAEvByJ,mBAAoB,SAA4BzJ,GAC9C,OAAOQ,EAAaR,IAEtB0J,MAAO,WAGL,IAFA,IAAIxJ,EAAM,GAEDL,EAAI,EAAGA,EAAIiI,UAAUlD,OAAQ/E,IACpC6I,EAAMP,IAAIjI,EAAKL,EAAI,GAAKiI,UAAUlD,QAAU/E,OAAIxB,EAAYyJ,UAAUjI,IAGxE,OAAOK,GAETsG,cAAe,EACfC,eAAgB,GAElB0B,EAAIO,EAAO3C,GAMX,IAAIC,EAAY0C,EAAM1C,UAEtB,SAAS2D,EAAgB1D,GACvB,GAAIyC,EAAMlH,SAASyE,IAAiC,IAArBA,EAAQtE,SACrC,OAAO,KAmBT,IAEIuE,EADA5F,EADMoI,EAAMhH,YAAYuE,GACb3F,KAEXsJ,EAAgBlB,EAAMhJ,IAAIuG,EAAS,YAGvC,KAFmC,UAAlB2D,GAA+C,aAAlBA,GAG5C,MAA0C,SAAnC3D,EAAQ4D,SAASC,cAA2B,KAAO9D,EAAUC,GAGtE,IAAKC,EAASF,EAAUC,GAAUC,GAAUA,IAAW5F,GAA4B,IAApB4F,EAAOvE,SAAgBuE,EAASF,EAAUE,GAGvG,GAAsB,YAFtB0D,EAAgBlB,EAAMhJ,IAAIwG,EAAQ,aAGhC,OAAOA,EAIX,OAAO,KAGT,IAAI6D,EAAcrB,EAAM1C,UAyBxB,SAASgE,EAAyB/D,EAASgE,GAczC,IAbA,IAAIC,EAAc,CAChBhJ,KAAM,EACNiJ,MAAOC,IACPnK,IAAK,EACLoK,OAAQD,KAENzK,EAAKgK,EAAgB1D,GACrBnF,EAAM4H,EAAMhH,YAAYuE,GACxBsB,EAAMzG,EAAIQ,aAAeR,EAAIS,aAC7BjB,EAAOQ,EAAIR,KACXD,EAAkBS,EAAIT,gBAGnBV,GAAI,CAET,IAA8C,IAAzC2K,UAAUC,UAAUC,QAAQ,SAAqC,IAAnB7K,EAAG8K,aAGtD9K,IAAOW,GAAQX,IAAOU,GAAiD,YAA9BqI,EAAMhJ,IAAIC,EAAI,aAUhD,GAAIA,IAAOW,GAAQX,IAAOU,EAC/B,UAXgF,CAChF,IAAIK,EAAMgI,EAAMlG,OAAO7C,GAEvBe,EAAIQ,MAAQvB,EAAGwB,WACfT,EAAIT,KAAON,EAAGyB,UACd8I,EAAYjK,IAAMoH,KAAKC,IAAI4C,EAAYjK,IAAKS,EAAIT,KAChDiK,EAAYC,MAAQ9C,KAAKqD,IAAIR,EAAYC,MACzCzJ,EAAIQ,KAAOvB,EAAG8K,aACdP,EAAYG,OAAShD,KAAKqD,IAAIR,EAAYG,OAAQ3J,EAAIT,IAAMN,EAAGgL,cAC/DT,EAAYhJ,KAAOmG,KAAKC,IAAI4C,EAAYhJ,KAAMR,EAAIQ,MAKpDvB,EAAKgK,EAAgBhK,GAMvB,IAAIiL,EAAmB,KAElBlC,EAAMlH,SAASyE,IAAiC,IAArBA,EAAQtE,WACtCiJ,EAAmB3E,EAAQ3H,MAAMmE,SAGhB,aAFFiG,EAAMhJ,IAAIuG,EAAS,cAGhCA,EAAQ3H,MAAMmE,SAAW,UAI7B,IAAIoI,EAAUnC,EAAMc,oBAAoBjC,GACpCuD,EAAUpC,EAAMe,mBAAmBlC,GACnCf,EAAgBkC,EAAMlC,cAAce,GACpCd,EAAiBiC,EAAMjC,eAAec,GACtCwD,EAAgB1K,EAAgB2K,YAChCC,EAAiB5K,EAAgB6K,aAGjCC,EAAY1J,OAAOiC,iBAAiBpD,GAexC,GAb4B,WAAxB6K,EAAUC,YACZL,EAAgBxD,EAAI8D,YAGM,WAAxBF,EAAUG,YACZL,EAAiB1D,EAAIgE,aAInBtF,EAAQ3H,QACV2H,EAAQ3H,MAAMmE,SAAWmI,GAGvBX,GAjGN,SAAyBhE,GACvB,GAAIyC,EAAMlH,SAASyE,IAAiC,IAArBA,EAAQtE,SACrC,OAAO,EAGT,IACIrB,EADMoI,EAAMhH,YAAYuE,GACb3F,KACX4F,EAAS,KAEb,IAAKA,EAAS6D,EAAY9D,GAAUC,GAAUA,IAAW5F,EAAM4F,EAAS6D,EAAY7D,GAAS,CAG3F,GAAsB,UAFFwC,EAAMhJ,IAAIwG,EAAQ,YAGpC,OAAO,EAIX,OAAO,EAgFiBsF,CAAgBvF,GAEtCiE,EAAYhJ,KAAOmG,KAAKC,IAAI4C,EAAYhJ,KAAM2J,GAC9CX,EAAYjK,IAAMoH,KAAKC,IAAI4C,EAAYjK,IAAK6K,GAC5CZ,EAAYC,MAAQ9C,KAAKqD,IAAIR,EAAYC,MAAOU,EAAUrE,GAC1D0D,EAAYG,OAAShD,KAAKqD,IAAIR,EAAYG,OAAQS,EAAUrE,OACvD,CAEL,IAAIgF,EAAkBpE,KAAKC,IAAIyD,EAAeF,EAAUrE,GACxD0D,EAAYC,MAAQ9C,KAAKqD,IAAIR,EAAYC,MAAOsB,GAChD,IAAIC,EAAmBrE,KAAKC,IAAI2D,EAAgBH,EAAUrE,GAC1DyD,EAAYG,OAAShD,KAAKqD,IAAIR,EAAYG,OAAQqB,GAGpD,OAAOxB,EAAYjK,KAAO,GAAKiK,EAAYhJ,MAAQ,GAAKgJ,EAAYG,OAASH,EAAYjK,KAAOiK,EAAYC,MAAQD,EAAYhJ,KAAOgJ,EAAc,KA4CvJ,SAASyB,EAAU9M,GACjB,IAAI2D,EACAxC,EACA4L,EAEJ,GAAKlD,EAAMlH,SAAS3C,IAA2B,IAAlBA,EAAK8C,SAI3B,CACL,IAAI4F,EAAMmB,EAAMC,UAAU9J,GAC1B2D,EAAS,CACPtB,KAAMwH,EAAMc,oBAAoBjC,GAChCtH,IAAKyI,EAAMe,mBAAmBlC,IAEhCvH,EAAI0I,EAAMlC,cAAce,GACxBqE,EAAIlD,EAAMjC,eAAec,QAVzB/E,EAASkG,EAAMlG,OAAO3D,GACtBmB,EAAI0I,EAAMmD,WAAWhN,GACrB+M,EAAIlD,EAAMoD,YAAYjN,GAaxB,OAFA2D,EAAOqE,MAAQ7G,EACfwC,EAAOsE,OAAS8E,EACTpJ,EAMT,SAASuJ,EAAeC,EAAQC,GAC9B,IAAIC,EAAID,EAAM1D,OAAO,GACjB4D,EAAIF,EAAM1D,OAAO,GACjBvI,EAAIgM,EAAOnF,MACX+E,EAAII,EAAOlF,OACXlG,EAAIoL,EAAO9K,KACXL,EAAImL,EAAO/L,IAcf,MAZU,MAANiM,EACFrL,GAAK+K,EAAI,EACM,MAANM,IACTrL,GAAK+K,GAGG,MAANO,EACFvL,GAAKZ,EAAI,EACM,MAANmM,IACTvL,GAAKZ,GAGA,CACLkB,KAAMN,EACNX,IAAKY,GAIT,SAASuL,EAAeC,EAAUC,EAAeC,EAAQ/J,EAAQgK,GAC/D,IAAIC,EAAKV,EAAeO,EAAeC,EAAO,IAC1CG,EAAKX,EAAeM,EAAUE,EAAO,IACrCI,EAAO,CAACD,EAAGxL,KAAOuL,EAAGvL,KAAMwL,EAAGzM,IAAMwM,EAAGxM,KAC3C,MAAO,CACLiB,KAAMmG,KAAKuF,MAAMP,EAASnL,KAAOyL,EAAK,GAAKnK,EAAO,GAAKgK,EAAa,IACpEvM,IAAKoH,KAAKuF,MAAMP,EAASpM,IAAM0M,EAAK,GAAKnK,EAAO,GAAKgK,EAAa,KAStE,SAASK,EAAQC,EAAaT,EAAUnC,GACtC,OAAO4C,EAAY5L,KAAOgJ,EAAYhJ,MAAQ4L,EAAY5L,KAAOmL,EAASxF,MAAQqD,EAAYC,MAGhG,SAAS4C,EAAQD,EAAaT,EAAUnC,GACtC,OAAO4C,EAAY7M,IAAMiK,EAAYjK,KAAO6M,EAAY7M,IAAMoM,EAASvF,OAASoD,EAAYG,OAW9F,SAAS2C,EAAKT,EAAQU,EAAK3I,GACzB,IAAIpE,EAAM,GAMV,OALAwI,EAAMhE,KAAK6H,GAAQ,SAAUW,GAC3BhN,EAAItC,KAAKsP,EAAErJ,QAAQoJ,GAAK,SAAUE,GAChC,OAAO7I,EAAI6I,UAGRjN,EAGT,SAASkN,EAAW5K,EAAQ6K,GAE1B,OADA7K,EAAO6K,IAAU7K,EAAO6K,GACjB7K,EAGT,SAAS8K,EAAcC,EAAKC,GAS1B,OANI,KAAKvI,KAAKsI,GACRE,SAASF,EAAIG,UAAU,EAAGH,EAAI3I,OAAS,GAAI,IAAM,IAAM4I,EAEvDC,SAASF,EAAK,MAGR,EAGd,SAASI,GAAgBnL,EAAQ7C,GAC/B6C,EAAO,GAAK8K,EAAc9K,EAAO,GAAI7C,EAAGkH,OACxCrE,EAAO,GAAK8K,EAAc9K,EAAO,GAAI7C,EAAGmH,QAS1C,SAAS8G,GAAQjO,EAAIkO,EAAW5B,EAAO6B,GACrC,IAAIvB,EAASN,EAAMM,OACf/J,EAASyJ,EAAMzJ,QAAU,CAAC,EAAG,GAC7BgK,EAAeP,EAAMO,cAAgB,CAAC,EAAG,GACzCjD,EAAW0C,EAAM1C,SACjBzH,EAASmK,EAAMnK,QAAUnC,EAC7B6C,EAAS,GAAG9D,OAAO8D,GACnBgK,EAAe,GAAG9N,OAAO8N,GAEzB,IAAIuB,EAAiB,GACjBC,EAAO,EAGP9D,EAAcF,EAAyBlI,MAL3CyH,EAAWA,GAAY,MAGeA,EAASU,mBAI3CoC,EAAWV,EAAU7J,GAEzB6L,GAAgBnL,EAAQ6J,GACxBsB,GAAgBnB,EAAcqB,GAE9B,IAAIf,EAAcV,EAAeC,EAAUwB,EAAWtB,EAAQ/J,EAAQgK,GAElEyB,EAAcvF,EAAMgB,MAAM2C,EAAUS,GAExC,GAAI5C,IAAgBX,EAAS2E,SAAW3E,EAAS4E,UAAYL,EAAoB,CAC/E,GAAIvE,EAAS2E,SAEPrB,EAAQC,EAAaT,EAAUnC,GAAc,CAE/C,IAAIkE,EAAYpB,EAAKT,EAAQ,SAAU,CACrC8B,EAAG,IACHC,EAAG,MAGDC,EAAYnB,EAAW5K,EAAQ,GAC/BgM,EAAkBpB,EAAWZ,EAAc,IAjFvD,SAAyBM,EAAaT,EAAUnC,GAC9C,OAAO4C,EAAY5L,KAAOgJ,EAAYC,OAAS2C,EAAY5L,KAAOmL,EAASxF,MAAQqD,EAAYhJ,MAmFpFuN,CAFgBrC,EAAeC,EAAUwB,EAAWO,EAAWG,EAAWC,GAE1CnC,EAAUnC,KAC7C8D,EAAO,EACPzB,EAAS6B,EACT5L,EAAS+L,EACT/B,EAAegC,GAKrB,GAAIjF,EAAS4E,SAEPpB,EAAQD,EAAaT,EAAUnC,GAAc,CAE/C,IAAIwE,EAAa1B,EAAKT,EAAQ,SAAU,CACtCoC,EAAG,IACHC,EAAG,MAIDC,EAAazB,EAAW5K,EAAQ,GAEhCsM,EAAmB1B,EAAWZ,EAAc,IArGxD,SAAyBM,EAAaT,EAAUnC,GAC9C,OAAO4C,EAAY7M,IAAMiK,EAAYG,QAAUyC,EAAY7M,IAAMoM,EAASvF,OAASoD,EAAYjK,KAwGpF8O,CAFiB3C,EAAeC,EAAUwB,EAAWa,EAAYG,EAAYC,GAE5CzC,EAAUnC,KAC9C8D,EAAO,EACPzB,EAASmC,EACTlM,EAASqM,EACTrC,EAAesC,GAMjBd,IACFlB,EAAcV,EAAeC,EAAUwB,EAAWtB,EAAQ/J,EAAQgK,GAClE9D,EAAMP,IAAI8F,EAAanB,IAGzB,IAAIkC,EAAenC,EAAQC,EAAaT,EAAUnC,GAC9C+E,EAAelC,EAAQD,EAAaT,EAAUnC,GAGlD,GAAI8E,GAAgBC,EAAc,CAChC,IAAIC,EAAc3C,EAEdyC,IACFE,EAAclC,EAAKT,EAAQ,SAAU,CACnC8B,EAAG,IACHC,EAAG,OAIHW,IACFC,EAAclC,EAAKT,EAAQ,SAAU,CACnCoC,EAAG,IACHC,EAAG,OAIPrC,EAAS2C,EACT1M,EAASyJ,EAAMzJ,QAAU,CAAC,EAAG,GAC7BgK,EAAeP,EAAMO,cAAgB,CAAC,EAAG,GAI3CuB,EAAeG,QAAU3E,EAAS2E,SAAWc,EAC7CjB,EAAeI,QAAU5E,EAAS4E,SAAWc,GAEzClB,EAAeG,SAAWH,EAAeI,WAC3CF,EAhRN,SAA2BnB,EAAaT,EAAUnC,EAAaX,GAC7D,IAAI7I,EAAMgI,EAAMY,MAAMwD,GAClBqC,EAAO,CACTtI,MAAOwF,EAASxF,MAChBC,OAAQuF,EAASvF,QAkCnB,OA/BIyC,EAAS2E,SAAWxN,EAAIQ,KAAOgJ,EAAYhJ,OAC7CR,EAAIQ,KAAOgJ,EAAYhJ,MAIrBqI,EAAS6F,aAAe1O,EAAIQ,MAAQgJ,EAAYhJ,MAAQR,EAAIQ,KAAOiO,EAAKtI,MAAQqD,EAAYC,QAC9FgF,EAAKtI,OAASnG,EAAIQ,KAAOiO,EAAKtI,MAAQqD,EAAYC,OAIhDZ,EAAS2E,SAAWxN,EAAIQ,KAAOiO,EAAKtI,MAAQqD,EAAYC,QAE1DzJ,EAAIQ,KAAOmG,KAAKC,IAAI4C,EAAYC,MAAQgF,EAAKtI,MAAOqD,EAAYhJ,OAI9DqI,EAAS4E,SAAWzN,EAAIT,IAAMiK,EAAYjK,MAC5CS,EAAIT,IAAMiK,EAAYjK,KAIpBsJ,EAAS8F,cAAgB3O,EAAIT,KAAOiK,EAAYjK,KAAOS,EAAIT,IAAMkP,EAAKrI,OAASoD,EAAYG,SAC7F8E,EAAKrI,QAAUpG,EAAIT,IAAMkP,EAAKrI,OAASoD,EAAYG,QAIjDd,EAAS4E,SAAWzN,EAAIT,IAAMkP,EAAKrI,OAASoD,EAAYG,SAE1D3J,EAAIT,IAAMoH,KAAKC,IAAI4C,EAAYG,OAAS8E,EAAKrI,OAAQoD,EAAYjK,MAG5DyI,EAAMP,IAAIzH,EAAKyO,GA0OJG,CAAkBxC,EAAaT,EAAUnC,EAAa6D,IAyBxE,OApBIE,EAAYpH,QAAUwF,EAASxF,OACjC6B,EAAMhJ,IAAIoC,EAAQ,QAAS4G,EAAM7B,MAAM/E,GAAUmM,EAAYpH,MAAQwF,EAASxF,OAG5EoH,EAAYnH,SAAWuF,EAASvF,QAClC4B,EAAMhJ,IAAIoC,EAAQ,SAAU4G,EAAM5B,OAAOhF,GAAUmM,EAAYnH,OAASuF,EAASvF,QAMnF4B,EAAMlG,OAAOV,EAAQ,CACnBZ,KAAM+M,EAAY/M,KAClBjB,IAAKgO,EAAYhO,KAChB,CACDmC,YAAa6J,EAAM7J,YACnBC,aAAc4J,EAAM5J,aACpB+G,gBAAiB6C,EAAM7C,gBACvBP,YAAaoD,EAAMpD,cAEd,CACL0D,OAAQA,EACR/J,OAAQA,EACRgK,aAAcA,EACdjD,SAAUwE,GAkBd,SAASwB,GAAa5P,EAAI6P,EAASvD,GACjC,IAAIwD,EAASxD,EAAMwD,QAAUD,EAG7B,OAAO5B,GAAQjO,EAFKgM,EAAU8D,GAEIxD,GAVpC,SAA4BwD,EAAQxF,GAClC,IAAIC,EAAcF,EAAyByF,EAAQxF,GAC/CyF,EAAe/D,EAAU8D,GAC7B,OAAQvF,GAAewF,EAAaxO,KAAOwO,EAAa7I,OAASqD,EAAYhJ,MAAQwO,EAAazP,IAAMyP,EAAa5I,QAAUoD,EAAYjK,KAAOyP,EAAaxO,MAAQgJ,EAAYC,OAASuF,EAAazP,KAAOiK,EAAYG,OAM7LsF,CAAmBF,EAAQxD,EAAM1C,UAAY0C,EAAM1C,SAASU,mBAY7F,SAAS2F,GAAWjQ,EAAIkQ,EAAU5D,GAChC,IAAI6D,EACAC,EACAjP,EAAM4H,EAAMhH,YAAY/B,GACxB4H,EAAMzG,EAAIQ,aAAeR,EAAIS,aAC7BsJ,EAAUnC,EAAMc,oBAAoBjC,GACpCuD,EAAUpC,EAAMe,mBAAmBlC,GACnCf,EAAgBkC,EAAMlC,cAAce,GACpCd,EAAiBiC,EAAMjC,eAAec,GAGxCuI,EADE,UAAWD,EACLA,EAASC,MAETjF,EAAUgF,EAASG,QAI3BD,EADE,UAAWF,EACLA,EAASE,MAETjF,EAAU+E,EAASI,QAG7B,IAMIC,EAAcJ,GAAS,GAAKA,GAASjF,EAAUrE,GAAiBuJ,GAAS,GAAKA,GAASjF,EAAUrE,EAGrG,OAAOmH,GAAQjO,EATC,CACduB,KAAM4O,EACN7P,IAAK8P,EACLlJ,MAAO,EACPC,OAAQ,GAjwCZ,SAAwB2I,GACtB,IAAK,IAAI5P,EAAI,EAAGA,EAAIiI,UAAUlD,OAAQ/E,IAAK,CACzC,IAAIiC,EAAyB,MAAhBgG,UAAUjI,GAAaiI,UAAUjI,GAAK,GAE/CA,EAAI,EACN1C,EAAQ2E,GAAQ,GAAMqO,SAAQ,SAAUvT,GACtCD,EAAgB8S,EAAQ7S,EAAKkF,EAAOlF,OAE7BE,OAAOsT,0BAChBtT,OAAOuT,iBAAiBZ,EAAQ3S,OAAOsT,0BAA0BtO,IAEjE3E,EAAQ2E,GAAQqO,SAAQ,SAAUvT,GAChCE,OAAOC,eAAe0S,EAAQ7S,EAAKE,OAAOa,yBAAyBmE,EAAQlF,OAKjF,OAAO6S,EAqvCuBa,CAAe,GAAIrE,EAAO,CACtDM,OAFW,CAACN,EAAMM,OAAO,GAAI,QAG3B2D,GAzCNX,GAAagB,kBAAoB5G,EACjC4F,GAAaiB,2BAA6BxG","file":"js/npm.dom-align.504c077d.js","sourcesContent":["function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2({}, align, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n"],"sourceRoot":""}