{"version":3,"sources":["kendo.window.js"],"names":["f","define","$","undefined","defined","x","constrain","value","low","high","Math","max","min","parseInt","Infinity","executableScript","this","type","toLowerCase","indexOf","WindowResizing","wnd","that","owner","_preventDragging","_draggable","Draggable","wrapper","filter","KWINDOWRESIZEHANDLES","group","id","dragstart","proxy","drag","dragend","userEvents","bind","addOverlay","removeOverlay","getPosition","elem","parentOverflowX","parentOverflowY","result","top","offsetTop","left","offsetLeft","parent","offsetParent","css","scrollTop","scrollLeft","WindowDragging","dragHandle","dragcancel","stopPropagation","kendo","window","Widget","ui","TabKeyTrap","Popup","isPlainObject","activeElement","_activeElement","outerWidth","_outerWidth","outerHeight","_outerHeight","extend","each","template","BODY","NS","KWINDOW","KWINDOWTITLE","KWINDOWTITLEBAR","KWINDOWCONTENT","KDIALOGCONTENT","KOVERLAY","KCONTENTFRAME","LOADING","KHOVERSTATE","KFOCUSEDSTATE","MAXIMIZEDSTATE","VISIBLE","HIDDEN","CURSOR","OPEN","ACTIVATE","DEACTIVATE","CLOSE","REFRESH","MINIMIZE","MAXIMIZE","RESIZESTART","RESIZE","RESIZEEND","DRAGSTART","DRAGEND","ERROR","OVERFLOW","DATADOCOVERFLOWRULE","ZINDEX","MINIMIZE_MAXIMIZE","KPIN","KUNPIN","PIN_UNPIN","TITLEBAR_BUTTONS","REFRESHICON","WINDOWEVENTSHANDLED","zero","isLocalUrl","Window","init","element","options","visibility","display","position","content","windowContent","windowFrame","globalWindow","offset","isVisible","suppressActions","actions","length","fn","call","appendTo","url","find","remove","is","visible","closest","addClass","_createWindow","_dimensions","_position","refresh","toFront","children","_tabindex","modal","_overlay","opacity","on","_buttonEnter","_buttonLeave","_windowActionHandler","_keydown","_focus","_blur","data","windowInstance","document","widgetInstance","not","i","_resizable","pinned","pin","attr","role","aria-labelledby","add","touchScroller","_resizeHandler","_onDocumentResize","_marker","guid","substring","trigger","notify","_tabKeyTrap","trap","shouldTrap","e","currentTarget","removeClass","width","height","maxHeight","dimensions","title","isNaN","minWidth","maxWidth","minHeight","hide","_animationOptions","animation","basicAnimation","open","effects","close","_resize","resize","resizable","resizing","off","destroy","target","toggleMaximization","split","index","handler","append","templates","resizeHandle","draggable","dragging","_actions","titlebar","container","windowSpecificCommands","map","action","name","html","render","setOptions","scrollable","cachedOptions","JSON","parse","stringify","restore","events","zoom","direction","fade","duration","properties","scale","autoFocus","isMaximized","isMinimized","_closable","inArray","handled","newWidth","newHeight","w","h","keys","keyCode","distance","ESC","_close","_closing","altKey","unpin","UP","focus","maximize","DOWN","minimize","ctrlKey","getOffset","LEFT","RIGHT","preventDefault","overlay","insertBefore","toggle","_actionForIcon","icon","iconClass","exec","className","k-i-close","k-i-window-maximize","k-i-window-minimize","k-i-window-restore","k-i-refresh","k-i-pin","k-i-unpin","_modals","zStack","dom","object","_object","sort","a","b","widget","center","newTop","newLeft","documentWindow","_isPinned","text","titleBarHeight","titleBar","arguments","htmlEncode","prepend","scrollContainer","angular","elements","empty","push","dataItem","otherModalsVisible","overlayFx","showOptions","contentElement","doc","kendoStop","Fade","fx","fadeIn","endValue","play","show","kendoAnimate","complete","_activate","_documentScrollTop","_documentScrollLeft","_stopDocumentScrolling","_removeOverlay","suppressAnimation","modals","hideOverlay","hideOptions","fadeOut","startValue","last","systemTriggered","defaultPrevented","userTriggered","reverse","_deactivate","_enableDocumentScrolling","lastModal","_actionable","_shouldFocus","active","windowTop","currentWindow","zIndex","originalZIndex","windowObject","zIndexNew","style","setTimeout","restoreOptions","end","removeAttr","_sizingAction","actionId","callback","eq","before","$html","$body","_storeOverflowRule","_restoreOverflowRule","body","$element","_isOverflowStored","overflowRule","get","overflow","removeData","win","lrBorderWidth","tbBorderWidth","zoomLevel","support","iframe","showIframe","initOptions","src","contentFrame","unbind","_triggerRefresh","_ajaxRequest","toggleClass","_ajaxComplete","clearTimeout","_loadingIconTimeout","_ajaxError","xhr","status","_ajaxSuccess","contentTemplate","prop","_showLoading","ajax","dataType","cache","error","success","_destroy","iframeSrcAttributes","contentHtml","isRtl","getAttribute","editor","prototype","marginTop","marginLeft","hasMargin","wrapperPosition","relativeElMarginLeft","relativeElMarginTop","elementPadding","initialPosition","resizeDirection","replace","initialSize","containerOffset","test","_relativeElMarginLeft","_relativeElMarginTop","windowBottom","windowRight","y","newWindowTop","location","reset","initialWindowPosition","initialPointerPosition","client","startPosition","minLeftPosition","minTopPosition","transforms","_finishDrag","plugin","jQuery","amd","a1","a2","a3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,gBACH,oBACA,eACDD,IACL,WAmuCE,MAltCC,UAAUE,EAAGC,GAEV,QAASC,GAAQC,GACb,MAAmB,KAALA,EAElB,QAASC,GAAUC,EAAOC,EAAKC,GAC3B,MAAOC,MAAKC,IAAID,KAAKE,IAAIC,SAASN,EAAO,IAAKE,IAASK,EAAAA,EAAWL,EAAOI,SAASJ,EAAM,KAAMI,SAASL,EAAK,KAEhH,QAASO,KACL,OAAQC,KAAKC,MAAQD,KAAKC,KAAKC,cAAcC,QAAQ,WAAa,EA0+BtE,QAASC,GAAeC,GACpB,GAAIC,GAAON,IACXM,GAAKC,MAAQF,EACbC,EAAKE,kBAAmB,EACxBF,EAAKG,WAAa,GAAIC,GAAUL,EAAIM,SAChCC,OAAQ,IAAMC,EACdC,MAAOT,EAAIM,QAAQI,GAAK,YACxBC,UAAWC,EAAMX,EAAKU,UAAWV,GACjCY,KAAMD,EAAMX,EAAKY,KAAMZ,GACvBa,QAASF,EAAMX,EAAKa,QAASb,KAEjCA,EAAKG,WAAWW,WAAWC,KAAK,QAASJ,EAAMX,EAAKgB,WAAYhB,IAChEA,EAAKG,WAAWW,WAAWC,KAAK,UAAWJ,EAAMX,EAAKiB,cAAejB,IAEzE,QAASkB,GAAYC,GAKjB,IALJ,GAQYC,GACAC,EARJC,GACIC,IAAKJ,EAAKK,UACVC,KAAMN,EAAKO,YACZC,EAASR,EAAKS,aACdD,GACHL,EAAOC,KAAOI,EAAOH,UACrBF,EAAOG,MAAQE,EAAOD,WAClBN,EAAkBxC,EAAE+C,GAAQE,IAAI,aAChCR,EAAkBzC,EAAE+C,GAAQE,IAAI,aACZ,SAApBR,GAAkD,WAApBA,IAC9BC,EAAOC,KAAOI,EAAOG,WAED,SAApBV,GAAkD,WAApBA,IAC9BE,EAAOG,MAAQE,EAAOI,YAE1BJ,EAASA,EAAOC,YAEpB,OAAON,GA2GX,QAASU,GAAejC,EAAKkC,GACzB,GAAIjC,GAAON,IACXM,GAAKC,MAAQF,EACbC,EAAKE,kBAAmB,EACxBF,EAAKG,WAAa,GAAIC,GAAUL,EAAIM,SAChCC,OAAQ2B,EACRzB,MAAOT,EAAIM,QAAQI,GAAK,UACxBC,UAAWC,EAAMX,EAAKU,UAAWV,GACjCY,KAAMD,EAAMX,EAAKY,KAAMZ,GACvBa,QAASF,EAAMX,EAAKa,QAASb,GAC7BkC,WAAYvB,EAAMX,EAAKkC,WAAYlC,KAEvCA,EAAKG,WAAWW,WAAWqB,iBAAkB,EA1oCpD,GACOC,GAAQC,OAAOD,MAAOE,EAASF,EAAMG,GAAGD,OAAQE,EAAaJ,EAAMG,GAAGE,MAAMD,WAAYpC,EAAYgC,EAAMG,GAAGnC,UAAWsC,EAAgB9D,EAAE8D,cAAeC,EAAgBP,EAAMQ,eAAgBC,EAAaT,EAAMU,YAAaC,EAAcX,EAAMY,aAAcrC,EAAQ/B,EAAE+B,MAAOsC,EAASrE,EAAEqE,OAAQC,EAAOtE,EAAEsE,KAAMC,EAAWf,EAAMe,SAAUC,EAAO,OAAmBC,EAAK,eAAgBC,EAAU,YAAaC,EAAe,kBAAmBC,EAAkBD,EAAe,MAAOE,EAAiB,oBAAqBC,EAAiB,oBAAqBnD,EAAuB,mBAAoBoD,EAAW,aAAcC,EAAgB,kBAAmBC,EAAU,cAAeC,EAAc,gBAAiBC,EAAgB,kBAAmBC,EAAiB,qBAAsBC,EAAU,WAAYC,EAAS,SAAUC,EAAS,SAAUC,EAAO,OAAQC,EAAW,WAAYC,EAAa,aAAcC,EAAQ,QAASC,EAAU,UAAWC,EAAW,WAAYC,EAAW,WAAYC,EAAc,cAAeC,EAAS,SAAUC,EAAY,YAAaC,EAAY,YAAaC,EAAU,UAAWC,EAAQ,QAASC,EAAW,WAAYC,EAAsB,yBAA0BC,EAAS,SAAUC,EAAoB,gFAAiFC,GAAO,WAAYC,GAAS,aAAcC,GAAYF,GAAO,IAAMC,GAAQE,GAAmB,sCAAuCC,GAAc,kCAAmCC,GAAsB,sBAAuBC,GAAO,aAAcC,GAAaxD,EAAMwD,WAUvjDC,GAASvD,EAAOW,QAChB6C,KAAM,SAAUC,EAASC,GACrB,GAAiB3F,GAAsB4F,EAAYC,EAASC,EAA6BC,EAASC,EAAeC,EAAaC,EAAuF9F,EAAjNT,EAAON,KAAe8G,KAA4CC,GAAY,EAA0DC,EAAkBV,GAAWA,EAAQW,UAAYX,EAAQW,QAAQC,MAC7MtE,GAAOuE,GAAGf,KAAKgB,KAAK9G,EAAM+F,EAASC,GACnCA,EAAUhG,EAAKgG,QACfG,EAAWH,EAAQG,SACnBJ,EAAU/F,EAAK+F,QACfK,EAAUJ,EAAQI,QAClBG,EAAe3H,EAAEyD,QACbqE,IACAV,EAAQW,YAEZ3G,EAAK+G,SAAWnI,EAAEoH,EAAQe,UACtBX,IAAY1D,EAAc0D,KAC1BA,EAAUJ,EAAQI,SAAYY,IAAKZ,IAEvCL,EAAQkB,KAAK,UAAU3G,OAAOb,GAAkByH,SAC3CnB,EAAQpE,SAASwF,GAAGnH,EAAK+G,WAAcZ,EAAS5E,MAAQ1C,GAAasH,EAAS1E,OAAS5C,IACpFkH,EAAQoB,GAAGlD,IACXuC,EAAST,EAAQS,SACjBC,GAAY,IAEZR,EAAaF,EAAQlE,IAAI,cACzBqE,EAAUH,EAAQlE,IAAI,WACtBkE,EAAQlE,KACJoE,WAAY/B,EACZgC,QAAS,KAEbM,EAAST,EAAQS,SACjBT,EAAQlE,KACJoE,WAAYA,EACZC,QAASA,KAGbC,EAAS5E,MAAQ1C,IACjBsH,EAAS5E,IAAMiF,EAAOjF,KAEtB4E,EAAS1E,OAAS5C,IAClBsH,EAAS1E,KAAO+E,EAAO/E,OAG1B3C,EAAQkH,EAAQoB,UAAgC,OAApBpB,EAAQoB,UACrCpB,EAAQoB,QAAUrB,EAAQoB,GAAGlD,IAEjC5D,EAAUL,EAAKK,QAAU0F,EAAQsB,QAAQ/D,GACpCyC,EAAQoB,GAAG,eAAkB9G,EAAQ,KACtC0F,EAAQuB,SAAS,8BACjBtH,EAAKuH,cAAcxB,EAASC,GAC5B3F,EAAUL,EAAKK,QAAU0F,EAAQsB,QAAQ/D,GACzCtD,EAAKwH,eAETxH,EAAKyH,YACDrB,GACApG,EAAK0H,QAAQtB,GAEbJ,EAAQoB,SACRpH,EAAK2H,UAETtB,EAAgBhG,EAAQuH,SAASnE,GACjCzD,EAAK6H,UAAUxB,GACXL,EAAQoB,SAAWpB,EAAQ8B,OAC3B9H,EAAK+H,SAAS1H,EAAQ8G,GAAGlD,IAAUpC,KAAMmG,QAAS,KAEtD3H,EAAQ4H,GAAG,aAAe5E,EAAImC,GAAkB7E,EAAMX,EAAKkI,aAAclI,IAAOiI,GAAG,aAAe5E,EAAImC,GAAkB7E,EAAMX,EAAKmI,aAAcnI,IAAOiI,GAAG,QAAU5E,EAAI,KAAOmC,GAAkB7E,EAAMX,EAAKoI,qBAAsBpI,IAAOiI,GAAG,UAAY5E,EAAI1C,EAAMX,EAAKqI,SAAUrI,IAAOiI,GAAG,QAAU5E,EAAI1C,EAAMX,EAAKsI,OAAQtI,IAAOiI,GAAG,OAAS5E,EAAI1C,EAAMX,EAAKuI,MAAOvI,IACtWqG,EAAc4B,GAAG,UAAY5E,EAAI1C,EAAMX,EAAKqI,SAAUrI,IAAOiI,GAAG,QAAU5E,EAAI1C,EAAMX,EAAKsI,OAAQtI,IAAOiI,GAAG,OAAS5E,EAAI1C,EAAMX,EAAKuI,MAAOvI,IAC1IsG,EAAcD,EAAcY,KAAK,IAAMrD,GAAe,GAClD0C,IAAgBC,EAAaiC,KAAK9C,MAClCa,EAAa0B,GAAG,OAAS5E,EAAI,WAAA,GAGjBoF,GAFJ1C,EAAUnH,EAAE8J,SAAS/F,eAAehB,OAAO8B,EAC3CsC,GAAQa,SACJ6B,EAAiBrG,EAAMuG,eAAe5C,GAC1C0C,EAAeH,YAGvB/B,EAAa0B,GAAG,QAAU5E,EAAI,WAC1BzE,EAAE6E,GAAgBmF,IAAIlF,GAAgBR,KAAK,SAAU2F,EAAG9C,GACpD3D,EAAMuG,eAAe/J,EAAEmH,IAAUwC,YAGzChC,EAAaiC,KAAK9C,IAAqB,IAE3ChG,KAAKoJ,aACLpJ,KAAKS,aACD6F,EAAQ+C,QAAUrJ,KAAKW,QAAQ8G,GAAG,aAClCnH,EAAKgJ,MAETvI,EAAKsF,EAAQkD,KAAK,MACdxI,IACAA,GAAU,aACVJ,EAAQuH,SAASpE,GAAiBoE,SAASrE,GAAc0F,KAAK,KAAMxI,GACpE4F,EAAc4C,MACVC,KAAQ,SACRC,kBAAmB1I,KAG3BJ,EAAQ+I,IAAI/I,EAAQuH,SAAS,oBAAsBpE,IAAkByE,GAAG,YAAc5E,EAAI1C,EAAMX,EAAK2H,QAAS3H,IAC9GA,EAAKqJ,cAAgBjH,EAAMiH,cAActD,GACzC/F,EAAKsJ,eAAiB3I,EAAMX,EAAKuJ,kBAAmBvJ,GACpDA,EAAKwJ,QAAUpH,EAAMqH,OAAOC,UAAU,EAAG,GACzC9K,EAAEyD,QAAQ4F,GAAG,SAAW5E,EAAKrD,EAAKwJ,QAASxJ,EAAKsJ,gBAC5CtD,EAAQoB,UACRpH,EAAK2J,QAAQvF,GACbpE,EAAK2J,QAAQtF,IAEjBjC,EAAMwH,OAAO5J,GACTN,KAAKsG,QAAQ8B,QACbpI,KAAKmK,YAAc,GAAIrH,GAAWnC,GAClCX,KAAKmK,YAAYC,OACjBpK,KAAKmK,YAAYE,WAAa,WAC1B,MAAO1D,GAAcmC,KAAK,cAItCN,aAAc,SAAU8B,GACpBpL,EAAEoL,EAAEC,eAAe3C,SAASxD,IAEhCqE,aAAc,SAAU6B,GACpBpL,EAAEoL,EAAEC,eAAeC,YAAYpG,IAEnCwE,OAAQ,WACJ5I,KAAKW,QAAQiH,SAASvD,IAE1BwE,MAAO,WACH7I,KAAKW,QAAQ6J,YAAYnG,IAE7ByD,YAAa,WAAA,GAaAqB,GACD5J,EAbJoB,EAAUX,KAAKW,QACf2F,EAAUtG,KAAKsG,QACfmE,EAAQnE,EAAQmE,MAChBC,EAASpE,EAAQoE,OACjBC,EAAYrE,EAAQqE,UACpBC,GACA,WACA,YACA,WACA,YAGJ,KADA5K,KAAK6K,MAAMvE,EAAQuE,OACV1B,EAAI,EAAGA,EAAIyB,EAAW1D,OAAQiC,IAC/B5J,EAAQ+G,EAAQsE,EAAWzB,KAAO,GAClC5J,GAASO,EAAAA,GACTa,EAAQwB,IAAIyI,EAAWzB,GAAI5J,EAG/BoL,IAAa7K,EAAAA,GACbE,KAAKqG,QAAQlE,IAAI,YAAawI,GAI1BhK,EAAQ8J,MAFZA,EACIK,MAAML,KAAUA,GAAAA,GAAiBtK,QAAQ,MAAQ,EACnCsK,EAEAnL,EAAUmL,EAAOnE,EAAQyE,SAAUzE,EAAQ0E,UAG/C,IAIVrK,EAAQ+J,OAFZA,EACII,MAAMJ,KAAWA,GAAAA,GAAkBvK,QAAQ,MAAQ,EACpCuK,EAEApL,EAAUoL,EAAQpE,EAAQ2E,UAAW3E,EAAQqE,WAGjD,IAEdrE,EAAQoB,SACT/G,EAAQuK,QAGhBnD,UAAW,WACP,GAAIpH,GAAUX,KAAKW,QAAS8F,EAAWzG,KAAKsG,QAAQG,QAC/B,KAAjBA,EAAS5E,MACT4E,EAAS5E,IAAM4E,GAAAA,EAAS5E,KAEN,IAAlB4E,EAAS1E,OACT0E,EAAS1E,KAAO0E,GAAAA,EAAS1E,MAE7BpB,EAAQwB,KACJN,IAAK4E,EAAS5E,KAAO,GACrBE,KAAM0E,EAAS1E,MAAQ,MAG/BoJ,kBAAmB,SAAUpK,GAAV,GACXqK,GAAYpL,KAAKsG,QAAQ8E,UACzBC,GACAC,MAAQC,YACRC,OACIN,MAAM,EACNK,YAGR,OAAOH,IAAaA,EAAUrK,IAAOsK,EAAetK,IAExD0K,QAAS,WACL/I,EAAMgJ,OAAO1L,KAAKqG,QAAQ6B,aAE9BkB,WAAY,WAAA,GACJuC,GAAY3L,KAAKsG,QAAQqF,UACzBhL,EAAUX,KAAKW,OACfX,MAAK4L,WACLjL,EAAQkL,IAAI,WAAalI,GAAIuE,SAASrH,GAAsB2G,SAC5DxH,KAAK4L,SAASE,UACd9L,KAAK4L,SAAW,MAEhBD,IACAhL,EAAQ4H,GAAG,WAAa5E,EAAIG,EAAiB7C,EAAM,SAAUqJ,GACpDpL,EAAEoL,EAAEyB,QAAQpE,QAAQ,oBAAoBT,QACzClH,KAAKgM,sBAEVhM,OACHwD,EAAK,sBAAsByI,MAAM,KAAM,SAAUC,EAAOC,GACpDxL,EAAQyL,OAAOC,GAAUC,aAAaH,MAE1CnM,KAAK4L,SAAW,GAAIxL,GAAeJ,OAEvCW,EAAU,MAEdF,WAAY,WACR,GAAI8L,GAAYvM,KAAKsG,QAAQiG,SACzBvM,MAAKwM,WACLxM,KAAKwM,SAASV,UACd9L,KAAKwM,SAAW,MAEhBD,IACAvM,KAAKwM,SAAW,GAAIlK,GAAetC,KAAMuM,EAAUhK,YAAcuB,KAGzE2I,SAAU,WAAA,GACFnG,GAAUtG,KAAKsG,QACfW,EAAUX,EAAQW,QAClBoC,EAAS/C,EAAQ+C,OACjBqD,EAAW1M,KAAKW,QAAQuH,SAASpE,GACjC6I,EAAYD,EAASnF,KAAK,qBAC1BqF,GACA,WACA,WAEJ3F,GAAU/H,EAAE2N,IAAI5F,EAAS,SAAU6F,GAE/B,MADAA,GAASzD,GAAmC,QAAzByD,EAAO5M,cAA0B,QAAU4M,GACrDC,KAAMH,EAAuBzM,QAAQ2M,EAAO5M,kBAAsB,UAAY4M,EAASA,KAEpGH,EAAUK,KAAKtK,EAAMuK,OAAOZ,GAAUS,OAAQ7F,KAElDiG,WAAY,SAAU5G,GAAV,GAKJ6G,GAQIzF,EAZJ0F,EAAgBC,KAAKC,MAAMD,KAAKE,UAAUjH,GAC9C/C,GAAO+C,EAAQG,SAAUzG,KAAKsG,QAAQG,UACtClD,EAAO+C,EAAQG,SAAU2G,EAAc3G,UACvC7D,EAAOuE,GAAG+F,WAAW9F,KAAKpH,KAAMsG,GAC5B6G,EAAanN,KAAKsG,QAAQ6G,cAAe,EAC7CnN,KAAKwN,UACLxN,KAAK8H,cACL9H,KAAK+H,YACL/H,KAAKoJ,aACLpJ,KAAKS,aACLT,KAAKyM,WACwB,IAAlBnG,EAAQ8B,QACXV,EAAU1H,KAAKsG,QAAQoB,WAAY,EACvC1H,KAAKqI,SAAS/B,EAAQ8B,OAASV,IAEnC1H,KAAKqG,QAAQlE,IAAIoD,EAAU4H,EAAa,GAAK,WAEjDM,QACI/I,EACAC,EACAC,EACAC,EACAE,EACAC,EACAF,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,GAEJgB,SACIyG,KAAM,SACN3B,WACIE,MACIC,SACImC,MAAQC,UAAW,MACnBC,MAAQD,UAAW,OAEvBE,SAAU,KAEdrC,OACID,SACImC,MACIC,UAAW,MACXG,YAAcC,MAAO,KAEzBH,MAAQD,UAAW,QAEvBE,SAAU,IACV3C,MAAM,IAGdL,MAAO,GACP5D,SAAU,SACV+G,WAAW,EACX5F,OAAO,EACPuD,WAAW,EACXY,WAAW,EACXxB,SAAU,GACVE,UAAW,GACXD,SAAUlL,EAAAA,EACV6K,UAAW7K,EAAAA,EACXuJ,QAAQ,EACR8D,YAAY,EACZ1G,YACAC,QAAS,KACTgB,QAAS,KACTgD,OAAQ,KACRD,MAAO,KACPpD,SAAU,OACV4G,aAAa,EACbC,aAAa,GAEjBC,UAAW,WACP,MAAOjP,GAAEkP,QAAQ,QAASlP,EAAE2N,IAAI7M,KAAKsG,QAAQW,QAAS,SAAU5H,GAC5D,MAAOA,GAAEa,qBAGjByI,SAAU,SAAU2B,GAChB,GAAyGxD,GAAQuH,EAAwGC,EAAUC,EAAWC,EAAGC,EAA7OnO,EAAON,KAAMsG,EAAUhG,EAAKgG,QAASoI,EAAOhM,EAAMgM,KAAMC,EAAUrE,EAAEqE,QAAShO,EAAUL,EAAKK,QAA0BiO,EAAW,GAAIX,EAAc3N,EAAKgG,QAAQ2H,YAAaC,EAAc5N,EAAKgG,QAAQ4H,WACxMS,IAAWD,EAAKG,KAAOvO,EAAK6N,cAC5B7D,EAAE7H,kBACFnC,EAAKwO,QAAO,IAEZxE,EAAEyB,QAAUzB,EAAEC,eAAiBjK,EAAKyO,WAGpCzE,EAAE0E,QAAqB,IAAXL,GACZrO,EAAK0H,UAELsC,EAAE0E,QAAqB,IAAXL,IACRrO,EAAKgG,QAAQ+C,OACb/I,EAAK2O,QAEL3O,EAAKgJ,OAGTgB,EAAE0E,QAAUL,GAAWD,EAAKQ,GACxBhB,GACA5N,EAAKkN,UACLlN,EAAK+F,QAAQ8I,SACLlB,IACR3N,EAAK8O,WACL9O,EAAK+F,QAAQ8I,SAEV7E,EAAE0E,QAAUL,GAAWD,EAAKW,OAC9BnB,GAAgBD,EAGVA,IACP3N,EAAKkN,UACLlN,EAAK+F,QAAQ8I,UAJb7O,EAAKgP,WACLhP,EAAKK,QAAQwO,WAMjB7I,EAAQiG,WAAcjC,EAAEiF,SAAYjF,EAAE0E,QAAWf,IACjDnH,EAASpE,EAAM8M,UAAU7O,GACrBgO,GAAWD,EAAKQ,GAChBb,EAAU1N,EAAQwB,IAAI,MAAO2E,EAAOjF,IAAM+M,GACnCD,GAAWD,EAAKW,KACvBhB,EAAU1N,EAAQwB,IAAI,MAAO2E,EAAOjF,IAAM+M,GACnCD,GAAWD,EAAKe,KACvBpB,EAAU1N,EAAQwB,IAAI,OAAQ2E,EAAO/E,KAAO6M,GACrCD,GAAWD,EAAKgB,QACvBrB,EAAU1N,EAAQwB,IAAI,OAAQ2E,EAAO/E,KAAO6M,KAGhDtI,EAAQqF,WAAarB,EAAEiF,UAAYtB,IAAgBC,IAC/CS,GAAWD,EAAKQ,IAChBb,GAAU,EACVE,EAAY5N,EAAQ+J,SAAWkE,GACxBD,GAAWD,EAAKW,OACvBhB,GAAU,EACVE,EAAY5N,EAAQ+J,SAAWkE,GAE/BD,GAAWD,EAAKe,MAChBpB,GAAU,EACVC,EAAW3N,EAAQ8J,QAAUmE,GACtBD,GAAWD,EAAKgB,QACvBrB,GAAU,EACVC,EAAW3N,EAAQ8J,QAAUmE,GAE7BP,IACAG,EAAIlP,EAAUgP,EAAUhI,EAAQyE,SAAUzE,EAAQ0E,UAClDyD,EAAInP,EAAUiP,EAAWjI,EAAQ2E,UAAW3E,EAAQqE,WAC/CG,MAAM0D,KACP7N,EAAQ8J,MAAM+D,GACdlO,EAAKgG,QAAQmE,MAAQ+D,EAAI,MAExB1D,MAAM2D,KACP9N,EAAQ+J,OAAO+D,GACfnO,EAAKgG,QAAQoE,OAAS+D,EAAI,MAE9BnO,EAAKoL,WAGT2C,GACA/D,EAAEqF,mBAGVtH,SAAU,SAAUX,GAChB,GAAIkI,GAAU5P,KAAKqH,SAASa,SAASjE,GAAWtD,EAAUX,KAAKW,OAK/D,OAJKiP,GAAQ1I,SACT0I,EAAU1Q,EAAE,8BAEhB0Q,EAAQC,aAAalP,EAAQ,IAAImP,OAAOpI,GAASvF,IAAIsD,EAAQ5F,SAASc,EAAQwB,IAAIsD,GAAS,IAAM,GAC1FmK,GAEXG,eAAgB,SAAUC,GACtB,GAAIC,GAAY,iBAAiBC,KAAKF,EAAK,GAAGG,WAAW,EACzD,QACIC,YAAa,SACbC,sBAAuB,WACvBC,sBAAuB,WACvBC,qBAAsB,UACtBC,cAAe,UACfC,UAAW,MACXC,YAAa,SACfT,IAENvH,qBAAsB,SAAU4B,GAAV,GAId0F,GACAlD,CAJJ,KAAI9M,KAAK+O,SAKT,MAFIiB,GAAO9Q,EAAEoL,EAAEyB,QAAQpE,QAAQ,oBAAoBJ,KAAK,WACpDuF,EAAS9M,KAAK+P,eAAeC,GAC7BlD,GACAxC,EAAEqF,iBACF3P,KAAK8M,MACE,GAHX,GAMJ6D,QAAS,WAAA,GACDrQ,GAAON,KACP4Q,EAAS1R,EAAE0E,GAAShD,OAAO,WAAA,GACvBiQ,GAAM3R,EAAEc,MACR8Q,EAASxQ,EAAKyQ,QAAQF,GACtBvK,EAAUwK,GAAUA,EAAOxK,OAC/B,OAAOA,IAAWA,EAAQ8B,OAAS9B,EAAQoB,SAAWpB,EAAQe,WAAa/G,EAAKgG,QAAQe,UAAYwJ,EAAIpJ,GAAGlD,KAC5GyM,KAAK,SAAUC,EAAGC,GACjB,OAAQhS,EAAE+R,GAAG9O,IAAI,WAAajD,EAAEgS,GAAG/O,IAAI,WAG3C,OADA7B,GAAO,KACAsQ,GAEXG,QAAS,SAAU1K,GAAV,GACDK,GAAUL,EAAQ6B,SAASnE,GAC3BoN,EAASzO,EAAMuG,eAAevC,EAClC,OAAIyK,GACOA,EAEJhS,GAEXiS,OAAQ,WACJ,GAAsIC,GAAQC,EAA1IhR,EAAON,KAAMyG,EAAWnG,EAAKgG,QAAQG,SAAU9F,EAAUL,EAAKK,QAAS4Q,EAAiBrS,EAAEyD,QAASP,EAAY,EAAGC,EAAa,CACnI,OAAI/B,GAAKgG,QAAQ2H,YACN3N,GAEPA,EAAKgG,QAAQ+C,SAAW/I,EAAKkR,WAC7BlR,EAAKgJ,MAEJhJ,EAAKgG,QAAQ+C,SACdjH,EAAYmP,EAAenP,YAC3BC,EAAakP,EAAelP,cAEhCiP,EAAUjP,EAAa3C,KAAKC,IAAI,GAAI4R,EAAe9G,QAAU9J,EAAQ8J,SAAW,GAChF4G,EAASjP,EAAY1C,KAAKC,IAAI,GAAI4R,EAAe7G,SAAW/J,EAAQ+J,SAAW7K,SAASc,EAAQwB,IAAI,cAAe,KAAO,GAC1HxB,EAAQwB,KACJJ,KAAMuP,EACNzP,IAAKwP,IAET5K,EAAS5E,IAAMwP,EACf5K,EAAS1E,KAAOuP,EACThR,IAEXuK,MAAO,SAAU4G,GACb,GAAwJC,GAApJpR,EAAON,KAAMW,EAAUL,EAAKK,QAAS2F,EAAUhG,EAAKgG,QAASqL,EAAWhR,EAAQuH,SAASpE,GAAkB+G,EAAQ8G,EAASzJ,SAASrE,EACzI,OAAK+N,WAAU1K,QAGXuK,KAAS,GACT9Q,EAAQiH,SAAS,sBACjB+J,EAASnK,WAEJmK,EAASzK,OAKV2D,EAAMmC,KAAKtK,EAAMmP,WAAWJ,KAJ5B9Q,EAAQmR,QAAQzF,GAAUK,SAASpG,IACnChG,EAAKmM,WACLkF,EAAWhR,EAAQuH,SAASpE,IAIhC4N,EAAiB7R,SAASwD,EAAYsO,GAAW,IACjDhR,EAAQwB,IAAI,cAAeuP,GAC3BC,EAASxP,IAAI,cAAeuP,IAEhCpR,EAAKgG,QAAQuE,MAAQ4G,EACdnR,GAlBIuK,EAAMmC,QAoBrBtG,QAAS,SAAUsG,EAAMlE,GACrB,GAAIpC,GAAU1G,KAAKW,QAAQuH,SAASnE,GAAiBgO,EAAkBrL,EAAQwB,SAAS,uBAExF,OADAxB,GAAUqL,EAAgB,GAAKA,EAAkBrL,EAC5CtH,EAAQ4N,IAGbhN,KAAKgS,QAAQ,UAAW,WACpB,OAASC,SAAUvL,EAAQwB,cAE/BxF,EAAMoJ,QAAQ9L,KAAKqG,QAAQ6B,YAC3BxB,EAAQwL,QAAQlF,KAAKA,GACrBhN,KAAKgS,QAAQ,UAAW,WAAA,GAEX7I,GADL8H,IACJ,KAAS9H,EAAIzC,EAAQQ,SAAUiC,GAAK,GAChC8H,EAAEkB,MAAOC,SAAUtJ,GAEvB,QACImJ,SAAUvL,EAAQwB,WAClBY,KAAMmI,KAGPjR,MAjBI0G,EAAQsG,QAmBvB1B,KAAM,WAAA,GACgKsE,GAASyC,EAgB3JC,EAhBZhS,EAAON,KAAMW,EAAUL,EAAKK,QAAS2F,EAAUhG,EAAKgG,QAASiM,EAAcvS,KAAKmL,kBAAkB,QAASqH,EAAiB7R,EAAQuH,SAASnE,GAA8C0O,EAAMvT,EAAE8J,SA+CvM,OA9CK1I,GAAK2J,QAAQvF,KACVpE,EAAKyO,UACLpO,EAAQ+R,WAAU,GAAM,GAE5BpS,EAAKyO,UAAW,EAChBzO,EAAK2H,UACD3B,EAAQ0H,WACR1N,EAAK+F,QAAQ8I,QAEjB7I,EAAQoB,SAAU,EACdpB,EAAQ8B,QACRiK,IAAuB/R,EAAKqQ,UAAUzJ,OACtC0I,EAAUtP,EAAK+H,SAASgK,GACxBzC,EAAQ8C,WAAU,GAAM,GACpBH,EAAY1E,UAAYnL,EAAM6I,QAAQoH,OAASN,GAC3CC,EAAY5P,EAAMkQ,GAAGhD,GAASiD,SAClCP,EAAUzE,SAAS0E,EAAY1E,UAAY,GAC3CyE,EAAUQ,SAAS,IACnBR,EAAUS,QAEVnD,EAAQzN,IAAI,UAAW,IAE3ByN,EAAQoD,OACR9T,EAAEyD,QAAQ4F,GAAG,QAAS,WACdiK,EAAe1J,KAAK,aAAe5J,EAAE8J,SAAS/F,eAAe0E,QAAQ6K,GAAgBtL,QACrF5G,EAAK+F,QAAQ8I,WAIpBxO,EAAQ8G,GAAGlD,KACZiO,EAAerQ,IAAIoD,EAAUf,GAC7B7D,EAAQqS,OAAON,YAAYO,cACvB1H,QAASgH,EAAYhH,QACrBsC,SAAU0E,EAAY1E,SACtBqF,SAAUjS,EAAMjB,KAAKmT,UAAWnT,UAIxCsG,EAAQ2H,cACR3N,EAAK8S,mBAAqBX,EAAIrQ,YAC9B9B,EAAK+S,oBAAsBZ,EAAIpQ,aAC/B/B,EAAKgT,0BAELhN,EAAQ+C,SAAW/I,EAAKkR,WACxBlR,EAAKgJ,MAEFhJ,GAEX6S,UAAW,WACP,GAAIhG,GAAanN,KAAKsG,QAAQ6G,cAAe,CACzCnN,MAAKsG,QAAQ0H,WACbhO,KAAKqG,QAAQ8I,QAEjBnP,KAAKqG,QAAQlE,IAAIoD,EAAU4H,EAAa,GAAK,UAC7CzK,EAAMgJ,OAAO1L,KAAKqG,QAAQ6B,YAC1BlI,KAAKiK,QAAQtF,IAEjB4O,eAAgB,SAAUC,GAAV,GAQAlB,GAPRmB,EAASzT,KAAK2Q,UACdrK,EAAUtG,KAAKsG,QACfoN,EAAcpN,EAAQ8B,QAAUqL,EAAOvM,OACvC0I,EAAUtJ,EAAQ8B,MAAQpI,KAAKqI,UAAS,GAAQnJ,EAAEC,GAClDwU,EAAc3T,KAAKmL,kBAAkB,QACrCuI,IACKF,GAAqBG,EAAY9F,UAAYnL,EAAM6I,QAAQoH,MACxDL,EAAY5P,EAAMkQ,GAAGhD,GAASgE,UAClCtB,EAAUzE,SAAS8F,EAAY9F,UAAY,GAC3CyE,EAAUuB,WAAW,IACrBvB,EAAUS,QAEV/S,KAAKqI,UAAS,GAAOb,SAElBiM,EAAOvM,QACdlH,KAAK+Q,QAAQ0C,EAAOK,QAAQzL,UAAS,IAG7CyG,OAAQ,SAAUiF,GACd,GAAiLC,GAA7K1T,EAAON,KAAMW,EAAUL,EAAKK,QAAS2F,EAAUhG,EAAKgG,QAASiM,EAAcvS,KAAKmL,kBAAkB,QAASwI,EAAc3T,KAAKmL,kBAAkB,SAAUsH,EAAMvT,EAAE8J,SAClK1I,GAAKyO,WAGTiF,EAAmB1T,EAAK2J,QAAQpF,GAASoP,eAAgBF,IACzDzT,EAAKyO,UAAYiF,EACbrT,EAAQ8G,GAAGlD,KAAayP,IACxB1N,EAAQoB,SAAU,EAClBxI,EAAE0E,GAASJ,KAAK,SAAU2F,EAAG9C,GACzB,GAAImM,GAAiBtT,EAAEmH,GAAS6B,SAASnE,EACrCsC,IAAW1F,GAAW6R,EAAejL,KAAK,MAAQrD,GAAegD,OAAS,GAC1EsL,EAAetK,SAASjE,GAAUuD,WAG1CxH,KAAKuT,iBACL5S,EAAQ+R,YAAYO,cAChB1H,QAASoI,EAAYpI,SAAWgH,EAAYhH,QAC5C2I,QAASP,EAAYO,WAAY,EACjCrG,SAAU8F,EAAY9F,SACtBqF,SAAUjS,EAAMjB,KAAKmU,YAAanU,SAGtCM,EAAKgG,QAAQ2H,cACb3N,EAAK8T,2BACD9T,EAAK8S,oBAAsB9S,EAAK8S,mBAAqB,GACrDX,EAAIrQ,UAAU9B,EAAK8S,oBAEnB9S,EAAK+S,qBAAuB/S,EAAK+S,oBAAsB,GACvDZ,EAAIpQ,WAAW/B,EAAK+S,wBAIhCc,YAAa,WAAA,GAKDE,GAJJ/T,EAAON,IACXM,GAAKK,QAAQuK,OAAO/I,IAAI,UAAW,IACnC7B,EAAK2J,QAAQrF,GACTtE,EAAKgG,QAAQ8B,QACTiM,EAAY/T,EAAKyQ,QAAQzQ,EAAKqQ,UAAUmD,QACxCO,GACAA,EAAUpM,YAItBuD,MAAO,WAEH,MADAxL,MAAK8O,QAAO,GACL9O,MAEXsU,YAAa,SAAUjO,GACnB,MAAOnH,GAAEmH,GAASoB,GAAG3B,GAAmB,IAAMA,GAAmB,sBAErEyO,aAAc,SAAUxI,GACpB,GAAIyI,GAASvR,IAAiBoD,EAAUrG,KAAKqG,OAC7C,OAAOrG,MAAKsG,QAAQ0H,YAAc9O,EAAEsV,GAAQ/M,GAAGpB,KAAarG,KAAKsU,YAAYvI,MAAa1F,EAAQkB,KAAKiN,GAAQtN,SAAWb,EAAQkB,KAAKwE,GAAQ7E,SAEnJe,QAAS,SAAUqC,GAAV,GA0BGlI,GAAmCqS,EAzBvCnU,EAAON,KAAMW,EAAUL,EAAKK,QAAS+T,EAAgB/T,EAAQ,GAAIgU,GAAUhU,EAAQwB,IAAIsD,GAASmP,EAAiBD,EAAQ5I,EAASzB,GAAKA,EAAEyB,QAAU,IAmCvJ,OAlCA7M,GAAE0E,GAASJ,KAAK,SAAU2F,EAAG9C,GACzB,GAAIwO,GAAe3V,EAAEmH,GAAUyO,EAAYD,EAAa1S,IAAIsD,GAAS+M,EAAiBqC,EAAa3M,SAASnE,EACvG+G,OAAMgK,KACPH,EAASjV,KAAKC,KAAKmV,EAAWH,IAElCnC,EAAe1J,KAAK,UAAWzC,GAAWqO,GACtCrO,GAAWqO,GAAiBlC,EAAejL,KAAK,MAAQrD,GAAegD,OAAS,GAChFsL,EAAepG,OAAOC,GAAUuD,aAGnCjP,EAAQ,GAAGoU,MAAMJ,QAAUC,EAAiBD,IAC7ChU,EAAQwB,IAAIsD,EAAQkP,EAAS,GAEjCrU,EAAK+F,QAAQkB,KAAK,gBAAgBC,SAC9BlH,EAAKiU,aAAaxI,KACdzL,EAAK4N,cACL5N,EAAKK,QAAQwO,QACNjQ,EAAE6M,GAAQtE,GAAGxD,GACpB+Q,WAAW,WACP1U,EAAK+F,QAAQ8I,UAGjB7O,EAAK+F,QAAQ8I,QAEb/M,EAAYlD,EAAEyD,QAAQP,YAAaqS,EAAY5U,SAASc,EAAQ8F,WAAW5E,IAAK,KAC/EvB,EAAKgG,QAAQ+C,QAAUoL,EAAY,GAAKA,EAAYrS,IACjDA,EAAY,EACZlD,EAAEyD,QAAQP,UAAUqS,GAEpB9T,EAAQwB,IAAI,MAAOC,KAI/BzB,EAAU,KACHL,GAEX0L,mBAAoB,WAChB,MAAIhM,MAAK+O,SACE/O,KAEJA,KAAKA,KAAKsG,QAAQ2H,YAAc,UAAY,eAEvDT,QAAS,WAAA,GACDlN,GAAON,KACPsG,EAAUhG,EAAKgG,QACf2E,EAAY3E,EAAQ2E,UACpBgK,EAAiB3U,EAAK2U,eACtBxC,EAAMvT,EAAE8J,SACZ,OAAK1C,GAAQ2H,aAAgB3H,EAAQ4H,aAGjCjD,GAAaA,GAAanL,EAAAA,GAC1BQ,EAAKK,QAAQwB,IAAI,aAAc8I,GAEnC3K,EAAKK,QAAQwB,KACTsE,SAAUH,EAAQ+C,OAAS,QAAU,WACrCtH,KAAMkT,EAAelT,KACrBF,IAAKoT,EAAepT,IACpB4I,MAAOwK,EAAexK,MACtBC,OAAQuK,EAAevK,SACxBF,YAAYlG,GAAgBiD,KAAK,sCAAsCyL,OAAOkC,MAAM3N,KAAK,0CAA0CtF,SAASuF,SAAS0N,MAAMA,MAAM3N,KAAK7B,GAAmBzD,SAAS+Q,OAAOkC,MAAMA,MAAM3N,KAAK1B,IAAW5D,SAAS+Q,OAC7O1M,EAAQ2H,YACR3N,EAAKK,QAAQ4G,KAAK,wBAAwBtF,SAASkN,QAC5C7I,EAAQ4H,aACf5N,EAAKK,QAAQ4G,KAAK,wBAAwBtF,SAASkN,QAEvD7O,EAAKgG,QAAQmE,MAAQwK,EAAexK,MACpCnK,EAAKgG,QAAQoE,OAASuK,EAAevK,OACrCpK,EAAK8T,2BACDpU,KAAKoT,oBAAsBpT,KAAKoT,mBAAqB,GACrDX,EAAIrQ,UAAUpC,KAAKoT,oBAEnBpT,KAAKqT,qBAAuBrT,KAAKqT,oBAAsB,GACvDZ,EAAIpQ,WAAWrC,KAAKqT,qBAExB/M,EAAQ2H,YAAc3H,EAAQ4H,aAAc,EAC5ClO,KAAKW,QAAQwU,WAAW,YACxBnV,KAAKW,QAAQwU,WAAW,oBACxB7U,EAAKoL,SACEpL,GA9BIA,GAgCf8U,cAAe,SAAUC,EAAUC,GAC/B,GAAIhV,GAAON,KAAMW,EAAUL,EAAKK,QAASoU,EAAQpU,EAAQ,GAAGoU,MAAOzO,EAAUhG,EAAKgG,OAClF,OAAIA,GAAQ2H,aAAe3H,EAAQ4H,YACxB5N,GAEXA,EAAK2U,gBACDxK,MAAOsK,EAAMtK,MACbC,OAAQqK,EAAMrK,QAElB/J,EAAQuH,SAASrH,GAAsBqK,OAAOgK,MAAMhN,SAASpE,GAAiByD,KAAK7B,GAAmBzD,SAASiJ,OAAOqK,GAAG,GAAGC,OAAOnJ,GAAUS,QAASC,KAAM,oBAC5JuI,EAASlO,KAAK9G,GACdA,EAAKK,QAAQuH,SAASpE,GAAiByD,KAAK1B,IAAW5D,SAAS6N,OAAoB,aAAbuF,GACvE/U,EAAK2J,QAAQoL,GACb1U,EAAQ4G,KAAK,uBAAuBtF,SAASkN,QACtC7O,IAEX8O,SAAU,WAkBN,MAjBApP,MAAKoV,cAAc,WAAY,WAC3B,GAAI9U,GAAON,KAAMW,EAAUL,EAAKK,QAAS8F,EAAW9F,EAAQ8F,WAAYgM,EAAMvT,EAAE8J,SAChFzF,GAAOjD,EAAK2U,gBACRlT,KAAM0E,EAAS1E,KACfF,IAAK4E,EAAS5E,MAElBlB,EAAQwB,KACJJ,KAAM,EACNF,IAAK,EACL4E,SAAU,UACXmB,SAAStD,GACZtE,KAAKoT,mBAAqBX,EAAIrQ,YAC9BpC,KAAKqT,oBAAsBZ,EAAIpQ,aAC/B/B,EAAKgT,yBACLhT,EAAKgG,QAAQ2H,aAAc,EAC3B3N,EAAKuJ,sBAEF7J,MAEXsT,uBAAwB,WAAA,GAKhBmC,GAJAnV,EAAON,KACP0V,EAAQxW,EAAE,OACdoB,GAAKqV,mBAAmBD,GACxBA,EAAMvT,IAAIoD,EAAUf,GAChBiR,EAAQvW,EAAE,QACdoB,EAAKqV,mBAAmBF,GACxBA,EAAMtT,IAAIoD,EAAUf,IAExB4P,yBAA0B,WACtB,GAAI9T,GAAON,IACXM,GAAKsV,qBAAqB1W,EAAE8J,SAAS6M,OACrCvV,EAAKsV,qBAAqB1W,EAAE,UAEhCyW,mBAAoB,SAAUG,GAC1B,IAAI9V,KAAK+V,kBAAkBD,GAA3B,CAGA,GAAIE,GAAeF,EAASG,IAAI,GAAGlB,MAAMmB,QACb,iBAAjBF,IACPF,EAAShN,KAAKtD,EAAqBwQ,KAG3CD,kBAAmB,SAAUD,GACzB,MAAqD,gBAAvCA,GAAShN,KAAKtD,IAEhCoQ,qBAAsB,SAAUE,GAC5B,GAAIE,GAAeF,EAAShN,KAAKtD,EACZ,QAAjBwQ,GAAyBA,IAAiB7W,GAC1C2W,EAAS3T,IAAIoD,EAAUyQ,GACvBF,EAASK,WAAW3Q,IAEpBsQ,EAAS3T,IAAIoD,EAAU,KAG/B0I,YAAa,WACT,MAAOjO,MAAKsG,QAAQ2H,aAExBqB,SAAU,WAYN,MAXAtP,MAAKoV,cAAc,WAAY,WAC3B,GAAI9U,GAAON,IACXM,GAAKK,QAAQwB,KACTuI,OAAQ,GACRO,UAAW,KAEf3K,EAAK+F,QAAQ6E,OACb5K,EAAKgG,QAAQ4H,aAAc,IAE/BlO,KAAKW,QAAQ4I,KAAK,WAAY,GAC9BvJ,KAAKW,QAAQ4I,KAAK,mBAAoBvJ,KAAKqG,QAAQkD,KAAK,qBACjDvJ,MAEXkO,YAAa,WACT,MAAOlO,MAAKsG,QAAQ4H,aAExB5E,IAAK,WACD,GAAIhJ,GAAON,KAAMoW,EAAMlX,EAAEyD,QAAShC,EAAUL,EAAKK,QAASkB,EAAMhC,SAASc,EAAQwB,IAAI,OAAQ,IAAKJ,EAAOlC,SAASc,EAAQwB,IAAI,QAAS,GAClI7B,GAAKgG,QAAQ2H,cACdtN,EAAQwB,KACJsE,SAAU,QACV5E,IAAKA,EAAMuU,EAAIhU,YACfL,KAAMA,EAAOqU,EAAI/T,eAErB1B,EAAQuH,SAASpE,GAAiByD,KAAK5B,IAAMiC,SAAS,aAAa4C,YAAY,WAC/ElK,EAAKkR,WAAY,EACjBlR,EAAKgG,QAAQ+C,QAAS,IAG9B4F,MAAO,WACH,GAAI3O,GAAON,KAAMoW,EAAMlX,EAAEyD,QAAShC,EAAUL,EAAKK,QAASkB,EAAMhC,SAASc,EAAQwB,IAAI,OAAQ,IAAKJ,EAAOlC,SAASc,EAAQwB,IAAI,QAAS,GAClI7B,GAAKgG,QAAQ2H,cACdtN,EAAQwB,KACJsE,SAAU,GACV5E,IAAKA,EAAMuU,EAAIhU,YACfL,KAAMA,EAAOqU,EAAI/T,eAErB1B,EAAQuH,SAASpE,GAAiByD,KAAK3B,IAAQgC,SAAS,WAAW4C,YAAY,aAC/ElK,EAAKkR,WAAY,EACjBlR,EAAKgG,QAAQ+C,QAAS,IAG9BQ,kBAAmB,WAAA,GACkF2E,GAAGC,EAIhG4H,EACAC,EALAhW,EAAON,KAAMW,EAAUL,EAAKK,QAASN,EAAMnB,EAAEyD,QAAS4T,EAAY7T,EAAM8T,QAAQD,WAC/EjW,GAAKgG,QAAQ2H,cAGdoI,EAAgBxW,SAASc,EAAQwB,IAAI,qBAAsB,IAAMtC,SAASc,EAAQwB,IAAI,sBAAuB,IAC7GmU,EAAgBzW,SAASc,EAAQwB,IAAI,oBAAqB,IAAMtC,SAASc,EAAQwB,IAAI,uBAAwB,IACjHqM,EAAInO,EAAIoK,QAAU8L,EAAYF,EAC9B5H,EAAIpO,EAAIqK,SAAW6L,EAAY1W,SAASc,EAAQwB,IAAI,eAAgB,IAAMmU,EAC1E3V,EAAQwB,KACJsI,MAAO+D,EACP9D,OAAQ+D,IAEZnO,EAAKgG,QAAQmE,MAAQ+D,EACrBlO,EAAKgG,QAAQoE,OAAS+D,EACtBnO,EAAKoL,WAET1D,QAAS,SAAU1B,GACf,GAAwEmQ,GAAQC,EAAYpP,EAAxFhH,EAAON,KAAM2W,EAAcrW,EAAKgG,QAASD,EAAUnH,EAAEoB,EAAK+F,QA6B9D,OA5BKrD,GAAcsD,KACfA,GAAYgB,IAAKhB,IAErBA,EAAU/C,KAAWoT,EAAYjQ,QAASJ,GAC1CoQ,EAAatX,EAAQuX,EAAYF,QAAUE,EAAYF,OAASnQ,EAAQmQ,OACxEnP,EAAMhB,EAAQgB,IACVA,GACKlI,EAAQsX,KACTA,GAAcxQ,GAAWoB,IAExBoP,GAGDD,EAASpQ,EAAQkB,KAAK,IAAMrD,GAAe,GACvCuS,EACAA,EAAOG,IAAMtP,GAAOmP,EAAOG,IAE3BvQ,EAAQ2G,KAAKX,GAAUwK,aAAatT,KAAWoT,GAAejQ,QAASJ,MAE3ED,EAAQkB,KAAK,IAAMrD,GAAe4S,OAAO,OAASnT,GAAI4E,GAAG,OAAS5E,EAAI1C,EAAMjB,KAAK+W,gBAAiB/W,QARlGM,EAAK0W,aAAa1Q,KAWlBA,EAAQ7C,UACRnD,EAAKoG,QAAQjD,EAAS6C,EAAQ7C,eAElCnD,EAAK2J,QAAQnF,IAEjBuB,EAAQ4Q,YAAY,2BAA4BP,GACzCpW,GAEXyW,gBAAiB,WACb/W,KAAKiK,QAAQnF,IAEjBoS,cAAe,WACXC,aAAanX,KAAKoX,qBAClBpX,KAAKW,QAAQ4G,KAAKxB,IAAayE,YAAYrG,IAE/CkT,WAAY,SAAUC,EAAKC,GACvBvX,KAAKiK,QAAQ3E,GACTiS,OAAQA,EACRD,IAAKA,KAGbE,aAAc,SAAUC,GACpB,MAAO,UAAU3O,GACb,GAAIkE,GAAOlE,CACP2O,KACAzK,EAAOvJ,EAASgU,GAAiB3O,QAErC9I,KAAK0G,QAAQsG,EAAMlE,GACnB9I,KAAKqG,QAAQqR,KAAK,YAAa,GAC/B1X,KAAKiK,QAAQnF,KAGrB6S,aAAc,WACV3X,KAAKW,QAAQ4G,KAAKxB,IAAa6B,SAASzD,IAE5C6S,aAAc,SAAU1Q,GACpBtG,KAAKoX,oBAAsBpC,WAAW/T,EAAMjB,KAAK2X,aAAc3X,MAAO,KACtEd,EAAE0Y,KAAKrU,GACHtD,KAAM,MACN4X,SAAU,OACVC,OAAO,EACPC,MAAO9W,EAAMjB,KAAKqX,WAAYrX,MAC9BkT,SAAUjS,EAAMjB,KAAKkX,cAAelX,MACpCgY,QAAS/W,EAAMjB,KAAKwX,aAAalR,EAAQ7C,UAAWzD,OACrDsG,KAEP2R,SAAU,WACFjY,KAAK4L,UACL5L,KAAK4L,SAASE,UAEd9L,KAAKwM,UACLxM,KAAKwM,SAASV,UAElB9L,KAAKW,QAAQkL,IAAIlI,GAAIuE,SAASnE,GAAgB8H,IAAIlI,GAAIuR,MAAM3N,KAAK,uCAAuCsE,IAAIlI,GAC5GzE,EAAEyD,QAAQkJ,IAAI,SAAWlI,EAAK3D,KAAK8J,SACnC5K,EAAEyD,QAAQkJ,IAAIlI,GACdwT,aAAanX,KAAKoX,qBAClBxU,EAAOuE,GAAG2E,QAAQ1E,KAAKpH,MACvBA,KAAK8W,OAAO3X,GACZuD,EAAMoJ,QAAQ9L,KAAKW,SACnBX,KAAKuT,gBAAe,IAExBzH,QAAS,WACL9L,KAAKiY,WACLjY,KAAKW,QAAQuR,QAAQ1K,SACrBxH,KAAKW,QAAUX,KAAKqH,SAAWrH,KAAKqG,QAAUnH,KAElD2I,cAAe,WACX,GAAwDqQ,GAAqBvX,EAAzEwX,EAAcnY,KAAKqG,QAASC,EAAUtG,KAAKsG,QAAuC8R,EAAQ1V,EAAM8T,QAAQ4B,MAAMD,EAC9G7R,GAAQ6G,cAAe,GACvBgL,EAAYhW,IAAI,WAAY,UAEhCxB,EAAUzB,EAAEmN,GAAU1L,QAAQ2F,IAC9B4R,EAAsBC,EAAY5Q,KAAK,0BAA0BsF,IAAI,WACjE,GAAI+J,GAAM5W,KAAKqY,aAAa,MAE5B,OADArY,MAAK4W,IAAM,GACJA,IAEXjW,EAAQsW,YAAY,QAASmB,GAAO/Q,SAASrH,KAAKqH,UAAU+E,OAAO+L,GAAa5Q,KAAK,0BAA0B/D,KAAK,SAAU0I,GAC1HlM,KAAK4W,IAAMsB,EAAoBhM,KAEnCvL,EAAQ4G,KAAK,mBAAmBpF,IAAIiW,EAAQ,OAAS,QAASjV,EAAWxC,EAAQ4G,KAAK,sBAAwB,IAC9G4Q,EAAYhW,IAAI,aAAc,IAAI6Q,OAClCmF,EAAY5Q,KAAK,sBAAsB/D,KAAK,WACxC,GAAI8U,GAASpZ,EAAEc,MAAM8I,KAAK,cACtBwP,IACAA,EAAOtQ,YAGfrH,EAAUwX,EAAc,QAv+BkU9L,IA2+B9V1L,QAAS8C,EAAS,qCAClBqJ,OAAQrJ,EAAS,yKACjBiJ,SAAUjJ,EAAS,gIACnBmM,QAAS,4BACTiH,aAAcpT,EAAS,qDAA4DS,EAAgB,wFACnGoI,aAAc7I,EAAS,0DAoC3BrD,GAAemY,WACXjX,WAAY,WACRtB,KAAKO,MAAMI,QAAQyL,OAAOC,GAAUuD,UAExCrO,cAAe,WACXvB,KAAKO,MAAMI,QAAQ4G,KAAKtD,GAAUuD,UAEtCxG,UAAW,SAAUsJ,GAAV,GAgBHpI,GAIIsW,EACAC,EACAC,EAEIC,EACAC,EACAC,EAzBRvY,EAAON,KACPK,EAAMC,EAAKC,MACXI,EAAUN,EAAIM,OAClBL,GAAKE,iBAAmBH,EAAI4J,QAAQhF,GAChC3E,EAAKE,mBAGTF,EAAKwY,eAAiBjZ,SAASc,EAAQwB,IAAI,eAAgB,IAC3D7B,EAAKyY,gBAAkBrW,EAAM8M,UAAU7O,EAAS,YAChDL,EAAK0Y,gBAAkB1O,EAAEC,cAAcmN,KAAK,aAAauB,QAAQ,4BAA6B,IAC9F3Y,EAAK4Y,aACDzO,MAAO9J,EAAQ8J,QACfC,OAAQ/J,EAAQ+J,UAEpBpK,EAAK6Y,gBAAkBzW,EAAM8M,UAAUnP,EAAIgH,SAAU,YACjDnF,EAAevB,EAAQuB,eACvBA,EAAauF,GAAG,QAChBnH,EAAK6Y,gBAAgBtX,IAAMvB,EAAK6Y,gBAAgBpX,KAAO,GAEnDyW,EAAYtW,EAAaC,IAAI,cAC7BsW,EAAavW,EAAaC,IAAI,eAC9BuW,GAAazS,GAAKmT,KAAKZ,KAAevS,GAAKmT,KAAKX,GAChDC,IACIC,EAAkBnX,EAAYb,EAAQ,IACtCiY,EAAuBD,EAAgB5W,KAAOzB,EAAK6Y,gBAAgBpX,KAAOzB,EAAKyY,gBAAgBhX,KAC/F8W,EAAsBF,EAAgB9W,IAAMvB,EAAK6Y,gBAAgBtX,IAAMvB,EAAKyY,gBAAgBlX,IAChGvB,EAAK+Y,sBAAwBT,EAAuB,EAAIA,EAAuB,EAC/EtY,EAAKgZ,qBAAuBT,EAAsB,EAAIA,EAAsB,EAC5EvY,EAAKyY,gBAAgBhX,MAAQzB,EAAK+Y,sBAClC/Y,EAAKyY,gBAAgBlX,KAAOvB,EAAKgZ,uBAGzC3Y,EAAQuH,SAASrH,GAAsBqI,IAAIoB,EAAEC,eAAeW,OAC5DhM,EAAEwE,GAAMvB,IAAIsC,EAAQ6F,EAAEC,cAAcpI,IAAIsC,MAE5CvD,KAAM,SAAUoJ,GAAV,GAIEhK,GAAaD,EAAkBM,EAAuB2F,EAAuBqH,EAAkCwL,EAAwCJ,EAAwCG,EAAgC5K,EAAUC,EAAWgL,EAAcC,EAAana,EAA+Boa,EAY9SC,CAfA1Z,MAAKQ,mBAGLF,EAAON,KAAMK,EAAMC,EAAKC,MAAOI,EAAUN,EAAIM,QAAS2F,EAAUjG,EAAIiG,QAASqH,EAAYrN,EAAK0Y,gBAAiBG,EAAkB7Y,EAAK6Y,gBAAiBJ,EAAkBzY,EAAKyY,gBAAiBG,EAAc5Y,EAAK4Y,YAA6D7Z,EAAIK,KAAKC,IAAI2K,EAAEjL,EAAEsa,SAAU,GAAIF,EAAI/Z,KAAKC,IAAI2K,EAAEmP,EAAEE,SAAU,GACzUhM,EAAUxN,QAAQ,MAAQ,GAC1BmO,EAAWjP,EAAI0Z,EAAgBhX,KAAOoX,EAAgBpX,KACtDpB,EAAQ8J,MAAMnL,EAAUgP,EAAUhI,EAAQyE,SAAUzE,EAAQ0E,YACrD2C,EAAUxN,QAAQ,MAAQ,IACjCqZ,EAAcT,EAAgBhX,KAAOmX,EAAYzO,MAAQ0O,EAAgBpX,KACzEuM,EAAWhP,EAAUka,EAAcna,EAAGiH,EAAQyE,SAAUzE,EAAQ0E,UAChErK,EAAQwB,KACJJ,KAAMyX,EAAclL,EAAW6K,EAAgBpX,MAAQzB,EAAK+Y,uBAAyB,GACrF5O,MAAO6D,KAGXoL,EAAeD,EACfpZ,EAAIiG,QAAQ+C,SACZqQ,GAAgBxa,EAAEyD,QAAQP,aAE1BuL,EAAUxN,QAAQ,MAAQ,GAC1BoO,EAAYmL,EAAeX,EAAgBlX,IAAMvB,EAAKwY,eAAiBK,EAAgBtX,IACvFlB,EAAQ+J,OAAOpL,EAAUiP,EAAWjI,EAAQ2E,UAAW3E,EAAQqE,aACxDgD,EAAUxN,QAAQ,MAAQ,IACjCoZ,EAAeR,EAAgBlX,IAAMqX,EAAYxO,OAASyO,EAAgBtX,IAC1E0M,EAAYjP,EAAUia,EAAeG,EAAcpT,EAAQ2E,UAAW3E,EAAQqE,WAC9EhK,EAAQwB,KACJN,IAAK0X,EAAehL,EAAY4K,EAAgBtX,KAAOvB,EAAKgZ,sBAAwB,GACpF5O,OAAQ6D,KAGZD,IACAjO,EAAIiG,QAAQmE,MAAQ6D,EAAW,MAE/BC,IACAlO,EAAIiG,QAAQoE,OAAS6D,EAAY,MAErClO,EAAIqL,WAERvK,QAAS,SAAUmJ,GACf,IAAItK,KAAKQ,iBAAT,CAGA,GAAIF,GAAON,KAAMK,EAAMC,EAAKC,MAAOI,EAAUN,EAAIM,OAUjD,OATAA,GAAQuH,SAASrH,GAAsBqI,IAAIoB,EAAEC,eAAeyI,OAC5D9T,EAAEwE,GAAMvB,IAAIsC,EAAQ,IAChBpE,EAAIsJ,eACJtJ,EAAIsJ,cAAciQ,QAEL,IAAbtP,EAAEqE,SACFhO,EAAQwB,IAAI7B,EAAKyY,iBAAiB5W,IAAI7B,EAAK4Y,aAE/C7Y,EAAI4J,QAAQ9E,IACL,IAEX2G,QAAS,WACD9L,KAAKS,YACLT,KAAKS,WAAWqL,UAEpB9L,KAAKS,WAAaT,KAAKO,MAAQ,OAiBvC+B,EAAeiW,WACXvX,UAAW,SAAUsJ,GACjB,GAAIjK,GAAML,KAAKO,MAAO8F,EAAUhG,EAAIgG,QAASY,EAAUZ,EAAQkB,KAAK,qBAAsB4R,EAAkBzW,EAAM8M,UAAUnP,EAAIgH,SAChIrH,MAAKQ,iBAAmBH,EAAI4J,QAAQ7E,KAAe/E,EAAIiG,QAAQiG,UAC3DvM,KAAKQ,mBAGTH,EAAIwZ,sBAAwBnX,EAAM8M,UAAUnP,EAAIM,QAAS,YACzDN,EAAIyZ,wBACA/X,KAAMuI,EAAEjL,EAAE0a,OACVlY,IAAKyI,EAAEmP,EAAEM,QAEb1Z,EAAI2Z,eACAjY,KAAMuI,EAAEjL,EAAE0a,OAAS1Z,EAAIwZ,sBAAsB9X,KAC7CF,IAAKyI,EAAEmP,EAAEM,OAAS1Z,EAAIwZ,sBAAsBhY,KAG5CxB,EAAI4Z,gBADJhT,EAAQC,OAAS,EACK/D,EAAW8D,GAAWpH,SAASoH,EAAQ9E,IAAI,SAAU,IAAMgB,EAAWkD,GAEtE,GAAKlD,EAAWkD,GAE1ChG,EAAI4Z,iBAAmBd,EAAgBpX,KACvC1B,EAAI6Z,gBAAkBf,EAAgBtX,IACtCxB,EAAIM,QAAQyL,OAAOC,GAAUuD,SAAS1H,SAASrH,GAAsBqK,OACrEhM,EAAEwE,GAAMvB,IAAIsC,EAAQ6F,EAAEC,cAAcpI,IAAIsC,MAE5CvD,KAAM,SAAUoJ,GAAV,GAIEjK,GACAoG,CAJAzG,MAAKQ,mBAGLH,EAAML,KAAKO,MACXkG,EAAWpG,EAAIiG,QAAQG,SAC3BA,EAAS5E,IAAMnC,KAAKC,IAAI2K,EAAEmP,EAAEM,OAAS1Z,EAAI2Z,cAAcnY,IAAKxB,EAAI6Z,gBAChEzT,EAAS1E,KAAOrC,KAAKC,IAAI2K,EAAEjL,EAAE0a,OAAS1Z,EAAI2Z,cAAcjY,KAAM1B,EAAI4Z,iBAC9DvX,EAAM8T,QAAQ2D,WACdjb,EAAEmB,EAAIM,SAASwB,IAAI,YAAa,cAAgBmI,EAAEjL,EAAE0a,OAAS1Z,EAAIyZ,uBAAuB/X,MAAQ,QAAUuI,EAAEmP,EAAEM,OAAS1Z,EAAIyZ,uBAAuBjY,KAAO,OAEzJ3C,EAAEmB,EAAIM,SAASwB,IAAIsE,KAG3B2T,YAAa,WACT,GAAI/Z,GAAML,KAAKO,KACfF,GAAIM,QAAQuH,SAASrH,GAAsBiP,QAAQzP,EAAIiG,QAAQ4H,aAAagH,MAAM3N,KAAKtD,GAAUuD,SACjGtI,EAAEwE,GAAMvB,IAAIsC,EAAQ,KAExBjC,WAAY,SAAU8H,GACdtK,KAAKQ,mBAGTR,KAAKoa,cACL9P,EAAEC,cAAc5C,QAAQ/D,GAASzB,IAAInC,KAAKO,MAAMsZ,yBAEpD1Y,QAAS,WACL,IAAInB,KAAKQ,iBAMT,MAHAtB,GAAEc,KAAKO,MAAMI,SAASwB,IAAInC,KAAKO,MAAM+F,QAAQG,UAAUtE,IAAI,YAAa,IACxEnC,KAAKoa,cACLpa,KAAKO,MAAM0J,QAAQ5E,IACZ,GAEXyG,QAAS,WACD9L,KAAKS,YACLT,KAAKS,WAAWqL,UAEpB9L,KAAKS,WAAaT,KAAKO,MAAQ,OAGvCmC,EAAMG,GAAGwX,OAAOlU,KAClBxD,OAAOD,MAAM4X,QACR3X,OAAOD,OACE,kBAAVzD,SAAwBA,OAAOsb,IAAMtb,OAAS,SAAUub,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.window.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.window', [\n 'kendo.draganddrop',\n 'kendo.popup'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'window',\n name: 'Window',\n category: 'web',\n description: 'The Window widget displays content in a modal or non-modal HTML window.',\n depends: [\n 'draganddrop',\n 'popup'\n ],\n features: [{\n id: 'window-fx',\n name: 'Animation',\n description: 'Support for animation',\n depends: ['fx']\n }]\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, TabKeyTrap = kendo.ui.Popup.TabKeyTrap, Draggable = kendo.ui.Draggable, isPlainObject = $.isPlainObject, activeElement = kendo._activeElement, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, proxy = $.proxy, extend = $.extend, each = $.each, template = kendo.template, BODY = 'body', templates, NS = '.kendoWindow', KWINDOW = '.k-window', KWINDOWTITLE = '.k-window-title', KWINDOWTITLEBAR = KWINDOWTITLE + 'bar', KWINDOWCONTENT = '.k-window-content', KDIALOGCONTENT = '.k-dialog-content', KWINDOWRESIZEHANDLES = '.k-resize-handle', KOVERLAY = '.k-overlay', KCONTENTFRAME = 'k-content-frame', LOADING = 'k-i-loading', KHOVERSTATE = 'k-state-hover', KFOCUSEDSTATE = 'k-state-focused', MAXIMIZEDSTATE = 'k-window-maximized', VISIBLE = ':visible', HIDDEN = 'hidden', CURSOR = 'cursor', OPEN = 'open', ACTIVATE = 'activate', DEACTIVATE = 'deactivate', CLOSE = 'close', REFRESH = 'refresh', MINIMIZE = 'minimize', MAXIMIZE = 'maximize', RESIZESTART = 'resizeStart', RESIZE = 'resize', RESIZEEND = 'resizeEnd', DRAGSTART = 'dragstart', DRAGEND = 'dragend', ERROR = 'error', OVERFLOW = 'overflow', DATADOCOVERFLOWRULE = 'original-overflow-rule', ZINDEX = 'zIndex', MINIMIZE_MAXIMIZE = '.k-window-actions .k-i-window-minimize,.k-window-actions .k-i-window-maximize', KPIN = '.k-i-pin', KUNPIN = '.k-i-unpin', PIN_UNPIN = KPIN + ',' + KUNPIN, TITLEBAR_BUTTONS = '.k-window-titlebar .k-window-action', REFRESHICON = '.k-window-titlebar .k-i-refresh', WINDOWEVENTSHANDLED = 'WindowEventsHandled', zero = /^0[a-z]*$/i, isLocalUrl = kendo.isLocalUrl;\n function defined(x) {\n return typeof x != 'undefined';\n }\n function constrain(value, low, high) {\n return Math.max(Math.min(parseInt(value, 10), high === Infinity ? high : parseInt(high, 10)), parseInt(low, 10));\n }\n function executableScript() {\n return !this.type || this.type.toLowerCase().indexOf('script') >= 0;\n }\n var Window = Widget.extend({\n init: function (element, options) {\n var that = this, wrapper, offset = {}, visibility, display, position, isVisible = false, content, windowContent, windowFrame, globalWindow, suppressActions = options && options.actions && !options.actions.length, id;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n position = options.position;\n element = that.element;\n content = options.content;\n globalWindow = $(window);\n if (suppressActions) {\n options.actions = [];\n }\n that.appendTo = $(options.appendTo);\n if (content && !isPlainObject(content)) {\n content = options.content = { url: content };\n }\n element.find('script').filter(executableScript).remove();\n if (!element.parent().is(that.appendTo) && (position.top === undefined || position.left === undefined)) {\n if (element.is(VISIBLE)) {\n offset = element.offset();\n isVisible = true;\n } else {\n visibility = element.css('visibility');\n display = element.css('display');\n element.css({\n visibility: HIDDEN,\n display: ''\n });\n offset = element.offset();\n element.css({\n visibility: visibility,\n display: display\n });\n }\n if (position.top === undefined) {\n position.top = offset.top;\n }\n if (position.left === undefined) {\n position.left = offset.left;\n }\n }\n if (!defined(options.visible) || options.visible === null) {\n options.visible = element.is(VISIBLE);\n }\n wrapper = that.wrapper = element.closest(KWINDOW);\n if (!element.is('.k-content') || !wrapper[0]) {\n element.addClass('k-window-content k-content');\n that._createWindow(element, options);\n wrapper = that.wrapper = element.closest(KWINDOW);\n that._dimensions();\n }\n that._position();\n if (content) {\n that.refresh(content);\n }\n if (options.visible) {\n that.toFront();\n }\n windowContent = wrapper.children(KWINDOWCONTENT);\n that._tabindex(windowContent);\n if (options.visible && options.modal) {\n that._overlay(wrapper.is(VISIBLE)).css({ opacity: 0.5 });\n }\n wrapper.on('mouseenter' + NS, TITLEBAR_BUTTONS, proxy(that._buttonEnter, that)).on('mouseleave' + NS, TITLEBAR_BUTTONS, proxy(that._buttonLeave, that)).on('click' + NS, '> ' + TITLEBAR_BUTTONS, proxy(that._windowActionHandler, that)).on('keydown' + NS, proxy(that._keydown, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that));\n windowContent.on('keydown' + NS, proxy(that._keydown, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that));\n windowFrame = windowContent.find('.' + KCONTENTFRAME)[0];\n if (windowFrame && !globalWindow.data(WINDOWEVENTSHANDLED)) {\n globalWindow.on('blur' + NS, function () {\n var element = $(document.activeElement).parent(KWINDOWCONTENT);\n if (element.length) {\n var windowInstance = kendo.widgetInstance(element);\n windowInstance._focus();\n }\n });\n globalWindow.on('focus' + NS, function () {\n $(KWINDOWCONTENT).not(KDIALOGCONTENT).each(function (i, element) {\n kendo.widgetInstance($(element))._blur();\n });\n });\n globalWindow.data(WINDOWEVENTSHANDLED, true);\n }\n this._resizable();\n this._draggable();\n if (options.pinned && this.wrapper.is(':visible')) {\n that.pin();\n }\n id = element.attr('id');\n if (id) {\n id = id + '_wnd_title';\n wrapper.children(KWINDOWTITLEBAR).children(KWINDOWTITLE).attr('id', id);\n windowContent.attr({\n 'role': 'dialog',\n 'aria-labelledby': id\n });\n }\n wrapper.add(wrapper.children('.k-resize-handle,' + KWINDOWTITLEBAR)).on('mousedown' + NS, proxy(that.toFront, that));\n that.touchScroller = kendo.touchScroller(element);\n that._resizeHandler = proxy(that._onDocumentResize, that);\n that._marker = kendo.guid().substring(0, 8);\n $(window).on('resize' + NS + that._marker, that._resizeHandler);\n if (options.visible) {\n that.trigger(OPEN);\n that.trigger(ACTIVATE);\n }\n kendo.notify(that);\n if (this.options.modal) {\n this._tabKeyTrap = new TabKeyTrap(wrapper);\n this._tabKeyTrap.trap();\n this._tabKeyTrap.shouldTrap = function () {\n return windowContent.data('isFront');\n };\n }\n },\n _buttonEnter: function (e) {\n $(e.currentTarget).addClass(KHOVERSTATE);\n },\n _buttonLeave: function (e) {\n $(e.currentTarget).removeClass(KHOVERSTATE);\n },\n _focus: function () {\n this.wrapper.addClass(KFOCUSEDSTATE);\n },\n _blur: function () {\n this.wrapper.removeClass(KFOCUSEDSTATE);\n },\n _dimensions: function () {\n var wrapper = this.wrapper;\n var options = this.options;\n var width = options.width;\n var height = options.height;\n var maxHeight = options.maxHeight;\n var dimensions = [\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight'\n ];\n this.title(options.title);\n for (var i = 0; i < dimensions.length; i++) {\n var value = options[dimensions[i]] || '';\n if (value != Infinity) {\n wrapper.css(dimensions[i], value);\n }\n }\n if (maxHeight != Infinity) {\n this.element.css('maxHeight', maxHeight);\n }\n if (width) {\n if (isNaN(width) && width.toString().indexOf('px') < 0) {\n wrapper.width(width);\n } else {\n wrapper.width(constrain(width, options.minWidth, options.maxWidth));\n }\n } else {\n wrapper.width('');\n }\n if (height) {\n if (isNaN(height) && height.toString().indexOf('px') < 0) {\n wrapper.height(height);\n } else {\n wrapper.height(constrain(height, options.minHeight, options.maxHeight));\n }\n } else {\n wrapper.height('');\n }\n if (!options.visible) {\n wrapper.hide();\n }\n },\n _position: function () {\n var wrapper = this.wrapper, position = this.options.position;\n if (position.top === 0) {\n position.top = position.top.toString();\n }\n if (position.left === 0) {\n position.left = position.left.toString();\n }\n wrapper.css({\n top: position.top || '',\n left: position.left || ''\n });\n },\n _animationOptions: function (id) {\n var animation = this.options.animation;\n var basicAnimation = {\n open: { effects: {} },\n close: {\n hide: true,\n effects: {}\n }\n };\n return animation && animation[id] || basicAnimation[id];\n },\n _resize: function () {\n kendo.resize(this.element.children());\n },\n _resizable: function () {\n var resizable = this.options.resizable;\n var wrapper = this.wrapper;\n if (this.resizing) {\n wrapper.off('dblclick' + NS).children(KWINDOWRESIZEHANDLES).remove();\n this.resizing.destroy();\n this.resizing = null;\n }\n if (resizable) {\n wrapper.on('dblclick' + NS, KWINDOWTITLEBAR, proxy(function (e) {\n if (!$(e.target).closest('.k-window-action').length) {\n this.toggleMaximization();\n }\n }, this));\n each('n e s w se sw ne nw'.split(' '), function (index, handler) {\n wrapper.append(templates.resizeHandle(handler));\n });\n this.resizing = new WindowResizing(this);\n }\n wrapper = null;\n },\n _draggable: function () {\n var draggable = this.options.draggable;\n if (this.dragging) {\n this.dragging.destroy();\n this.dragging = null;\n }\n if (draggable) {\n this.dragging = new WindowDragging(this, draggable.dragHandle || KWINDOWTITLEBAR);\n }\n },\n _actions: function () {\n var options = this.options;\n var actions = options.actions;\n var pinned = options.pinned;\n var titlebar = this.wrapper.children(KWINDOWTITLEBAR);\n var container = titlebar.find('.k-window-actions');\n var windowSpecificCommands = [\n 'maximize',\n 'minimize'\n ];\n actions = $.map(actions, function (action) {\n action = pinned && action.toLowerCase() === 'pin' ? 'unpin' : action;\n return { name: windowSpecificCommands.indexOf(action.toLowerCase()) > -1 ? 'window-' + action : action };\n });\n container.html(kendo.render(templates.action, actions));\n },\n setOptions: function (options) {\n var cachedOptions = JSON.parse(JSON.stringify(options));\n extend(options.position, this.options.position);\n extend(options.position, cachedOptions.position);\n Widget.fn.setOptions.call(this, options);\n var scrollable = this.options.scrollable !== false;\n this.restore();\n this._dimensions();\n this._position();\n this._resizable();\n this._draggable();\n this._actions();\n if (typeof options.modal !== 'undefined') {\n var visible = this.options.visible !== false;\n this._overlay(options.modal && visible);\n }\n this.element.css(OVERFLOW, scrollable ? '' : 'hidden');\n },\n events: [\n OPEN,\n ACTIVATE,\n DEACTIVATE,\n CLOSE,\n MINIMIZE,\n MAXIMIZE,\n REFRESH,\n RESIZESTART,\n RESIZE,\n RESIZEEND,\n DRAGSTART,\n DRAGEND,\n ERROR\n ],\n options: {\n name: 'Window',\n animation: {\n open: {\n effects: {\n zoom: { direction: 'in' },\n fade: { direction: 'in' }\n },\n duration: 350\n },\n close: {\n effects: {\n zoom: {\n direction: 'out',\n properties: { scale: 0.7 }\n },\n fade: { direction: 'out' }\n },\n duration: 350,\n hide: true\n }\n },\n title: '',\n actions: ['Close'],\n autoFocus: true,\n modal: false,\n resizable: true,\n draggable: true,\n minWidth: 90,\n minHeight: 50,\n maxWidth: Infinity,\n maxHeight: Infinity,\n pinned: false,\n scrollable: true,\n position: {},\n content: null,\n visible: null,\n height: null,\n width: null,\n appendTo: 'body',\n isMaximized: false,\n isMinimized: false\n },\n _closable: function () {\n return $.inArray('close', $.map(this.options.actions, function (x) {\n return x.toLowerCase();\n })) > -1;\n },\n _keydown: function (e) {\n var that = this, options = that.options, keys = kendo.keys, keyCode = e.keyCode, wrapper = that.wrapper, offset, handled, distance = 10, isMaximized = that.options.isMaximized, isMinimized = that.options.isMinimized, newWidth, newHeight, w, h;\n if (keyCode == keys.ESC && that._closable()) {\n e.stopPropagation();\n that._close(false);\n }\n if (e.target != e.currentTarget || that._closing) {\n return;\n }\n if (e.altKey && keyCode == 82) {\n that.refresh();\n }\n if (e.altKey && keyCode == 80) {\n if (that.options.pinned) {\n that.unpin();\n } else {\n that.pin();\n }\n }\n if (e.altKey && keyCode == keys.UP) {\n if (isMinimized) {\n that.restore();\n that.element.focus();\n } else if (!isMaximized) {\n that.maximize();\n that.element.focus();\n }\n } else if (e.altKey && keyCode == keys.DOWN) {\n if (!isMinimized && !isMaximized) {\n that.minimize();\n that.wrapper.focus();\n } else if (isMaximized) {\n that.restore();\n that.element.focus();\n }\n }\n if (options.draggable && !e.ctrlKey && !e.altKey && !isMaximized) {\n offset = kendo.getOffset(wrapper);\n if (keyCode == keys.UP) {\n handled = wrapper.css('top', offset.top - distance);\n } else if (keyCode == keys.DOWN) {\n handled = wrapper.css('top', offset.top + distance);\n } else if (keyCode == keys.LEFT) {\n handled = wrapper.css('left', offset.left - distance);\n } else if (keyCode == keys.RIGHT) {\n handled = wrapper.css('left', offset.left + distance);\n }\n }\n if (options.resizable && e.ctrlKey && !isMaximized && !isMinimized) {\n if (keyCode == keys.UP) {\n handled = true;\n newHeight = wrapper.height() - distance;\n } else if (keyCode == keys.DOWN) {\n handled = true;\n newHeight = wrapper.height() + distance;\n }\n if (keyCode == keys.LEFT) {\n handled = true;\n newWidth = wrapper.width() - distance;\n } else if (keyCode == keys.RIGHT) {\n handled = true;\n newWidth = wrapper.width() + distance;\n }\n if (handled) {\n w = constrain(newWidth, options.minWidth, options.maxWidth);\n h = constrain(newHeight, options.minHeight, options.maxHeight);\n if (!isNaN(w)) {\n wrapper.width(w);\n that.options.width = w + 'px';\n }\n if (!isNaN(h)) {\n wrapper.height(h);\n that.options.height = h + 'px';\n }\n that.resize();\n }\n }\n if (handled) {\n e.preventDefault();\n }\n },\n _overlay: function (visible) {\n var overlay = this.appendTo.children(KOVERLAY), wrapper = this.wrapper;\n if (!overlay.length) {\n overlay = $('
');\n }\n overlay.insertBefore(wrapper[0]).toggle(visible).css(ZINDEX, parseInt(wrapper.css(ZINDEX), 10) - 1);\n return overlay;\n },\n _actionForIcon: function (icon) {\n var iconClass = /\\bk-i(-\\w+)+\\b/.exec(icon[0].className)[0];\n return {\n 'k-i-close': '_close',\n 'k-i-window-maximize': 'maximize',\n 'k-i-window-minimize': 'minimize',\n 'k-i-window-restore': 'restore',\n 'k-i-refresh': 'refresh',\n 'k-i-pin': 'pin',\n 'k-i-unpin': 'unpin'\n }[iconClass];\n },\n _windowActionHandler: function (e) {\n if (this._closing) {\n return;\n }\n var icon = $(e.target).closest('.k-window-action').find('.k-icon');\n var action = this._actionForIcon(icon);\n if (action) {\n e.preventDefault();\n this[action]();\n return false;\n }\n },\n _modals: function () {\n var that = this;\n var zStack = $(KWINDOW).filter(function () {\n var dom = $(this);\n var object = that._object(dom);\n var options = object && object.options;\n return options && options.modal && options.visible && options.appendTo === that.options.appendTo && dom.is(VISIBLE);\n }).sort(function (a, b) {\n return +$(a).css('zIndex') - +$(b).css('zIndex');\n });\n that = null;\n return zStack;\n },\n _object: function (element) {\n var content = element.children(KWINDOWCONTENT);\n var widget = kendo.widgetInstance(content);\n if (widget) {\n return widget;\n }\n return undefined;\n },\n center: function () {\n var that = this, position = that.options.position, wrapper = that.wrapper, documentWindow = $(window), scrollTop = 0, scrollLeft = 0, newTop, newLeft;\n if (that.options.isMaximized) {\n return that;\n }\n if (that.options.pinned && !that._isPinned) {\n that.pin();\n }\n if (!that.options.pinned) {\n scrollTop = documentWindow.scrollTop();\n scrollLeft = documentWindow.scrollLeft();\n }\n newLeft = scrollLeft + Math.max(0, (documentWindow.width() - wrapper.width()) / 2);\n newTop = scrollTop + Math.max(0, (documentWindow.height() - wrapper.height() - parseInt(wrapper.css('paddingTop'), 10)) / 2);\n wrapper.css({\n left: newLeft,\n top: newTop\n });\n position.top = newTop;\n position.left = newLeft;\n return that;\n },\n title: function (text) {\n var that = this, wrapper = that.wrapper, options = that.options, titleBar = wrapper.children(KWINDOWTITLEBAR), title = titleBar.children(KWINDOWTITLE), titleBarHeight;\n if (!arguments.length) {\n return title.html();\n }\n if (text === false) {\n wrapper.addClass('k-window-titleless');\n titleBar.remove();\n } else {\n if (!titleBar.length) {\n wrapper.prepend(templates.titlebar(options));\n that._actions();\n titleBar = wrapper.children(KWINDOWTITLEBAR);\n } else {\n title.html(kendo.htmlEncode(text));\n }\n titleBarHeight = parseInt(outerHeight(titleBar), 10);\n wrapper.css('padding-top', titleBarHeight);\n titleBar.css('margin-top', -titleBarHeight);\n }\n that.options.title = text;\n return that;\n },\n content: function (html, data) {\n var content = this.wrapper.children(KWINDOWCONTENT), scrollContainer = content.children('.km-scroll-container');\n content = scrollContainer[0] ? scrollContainer : content;\n if (!defined(html)) {\n return content.html();\n }\n this.angular('cleanup', function () {\n return { elements: content.children() };\n });\n kendo.destroy(this.element.children());\n content.empty().html(html);\n this.angular('compile', function () {\n var a = [];\n for (var i = content.length; --i >= 0;) {\n a.push({ dataItem: data });\n }\n return {\n elements: content.children(),\n data: a\n };\n });\n return this;\n },\n open: function () {\n var that = this, wrapper = that.wrapper, options = that.options, showOptions = this._animationOptions('open'), contentElement = wrapper.children(KWINDOWCONTENT), overlay, otherModalsVisible, doc = $(document);\n if (!that.trigger(OPEN)) {\n if (that._closing) {\n wrapper.kendoStop(true, true);\n }\n that._closing = false;\n that.toFront();\n if (options.autoFocus) {\n that.element.focus();\n }\n options.visible = true;\n if (options.modal) {\n otherModalsVisible = !!that._modals().length;\n overlay = that._overlay(otherModalsVisible);\n overlay.kendoStop(true, true);\n if (showOptions.duration && kendo.effects.Fade && !otherModalsVisible) {\n var overlayFx = kendo.fx(overlay).fadeIn();\n overlayFx.duration(showOptions.duration || 0);\n overlayFx.endValue(0.5);\n overlayFx.play();\n } else {\n overlay.css('opacity', 0.5);\n }\n overlay.show();\n $(window).on('focus', function () {\n if (contentElement.data('isFront') && !$(document.activeElement).closest(contentElement).length) {\n that.element.focus();\n }\n });\n }\n if (!wrapper.is(VISIBLE)) {\n contentElement.css(OVERFLOW, HIDDEN);\n wrapper.show().kendoStop().kendoAnimate({\n effects: showOptions.effects,\n duration: showOptions.duration,\n complete: proxy(this._activate, this)\n });\n }\n }\n if (options.isMaximized) {\n that._documentScrollTop = doc.scrollTop();\n that._documentScrollLeft = doc.scrollLeft();\n that._stopDocumentScrolling();\n }\n if (options.pinned && !that._isPinned) {\n that.pin();\n }\n return that;\n },\n _activate: function () {\n var scrollable = this.options.scrollable !== false;\n if (this.options.autoFocus) {\n this.element.focus();\n }\n this.element.css(OVERFLOW, scrollable ? '' : 'hidden');\n kendo.resize(this.element.children());\n this.trigger(ACTIVATE);\n },\n _removeOverlay: function (suppressAnimation) {\n var modals = this._modals();\n var options = this.options;\n var hideOverlay = options.modal && !modals.length;\n var overlay = options.modal ? this._overlay(true) : $(undefined);\n var hideOptions = this._animationOptions('close');\n if (hideOverlay) {\n if (!suppressAnimation && hideOptions.duration && kendo.effects.Fade) {\n var overlayFx = kendo.fx(overlay).fadeOut();\n overlayFx.duration(hideOptions.duration || 0);\n overlayFx.startValue(0.5);\n overlayFx.play();\n } else {\n this._overlay(false).remove();\n }\n } else if (modals.length) {\n this._object(modals.last())._overlay(true);\n }\n },\n _close: function (systemTriggered) {\n var that = this, wrapper = that.wrapper, options = that.options, showOptions = this._animationOptions('open'), hideOptions = this._animationOptions('close'), doc = $(document), defaultPrevented;\n if (that._closing) {\n return;\n }\n defaultPrevented = that.trigger(CLOSE, { userTriggered: !systemTriggered });\n that._closing = !defaultPrevented;\n if (wrapper.is(VISIBLE) && !defaultPrevented) {\n options.visible = false;\n $(KWINDOW).each(function (i, element) {\n var contentElement = $(element).children(KWINDOWCONTENT);\n if (element != wrapper && contentElement.find('> .' + KCONTENTFRAME).length > 0) {\n contentElement.children(KOVERLAY).remove();\n }\n });\n this._removeOverlay();\n wrapper.kendoStop().kendoAnimate({\n effects: hideOptions.effects || showOptions.effects,\n reverse: hideOptions.reverse === true,\n duration: hideOptions.duration,\n complete: proxy(this._deactivate, this)\n });\n }\n if (that.options.isMaximized) {\n that._enableDocumentScrolling();\n if (that._documentScrollTop && that._documentScrollTop > 0) {\n doc.scrollTop(that._documentScrollTop);\n }\n if (that._documentScrollLeft && that._documentScrollLeft > 0) {\n doc.scrollLeft(that._documentScrollLeft);\n }\n }\n },\n _deactivate: function () {\n var that = this;\n that.wrapper.hide().css('opacity', '');\n that.trigger(DEACTIVATE);\n if (that.options.modal) {\n var lastModal = that._object(that._modals().last());\n if (lastModal) {\n lastModal.toFront();\n }\n }\n },\n close: function () {\n this._close(true);\n return this;\n },\n _actionable: function (element) {\n return $(element).is(TITLEBAR_BUTTONS + ',' + TITLEBAR_BUTTONS + ' .k-icon,:input,a');\n },\n _shouldFocus: function (target) {\n var active = activeElement(), element = this.element;\n return this.options.autoFocus && !$(active).is(element) && !this._actionable(target) && (!element.find(active).length || !element.find(target).length);\n },\n toFront: function (e) {\n var that = this, wrapper = that.wrapper, currentWindow = wrapper[0], zIndex = +wrapper.css(ZINDEX), originalZIndex = zIndex, target = e && e.target || null;\n $(KWINDOW).each(function (i, element) {\n var windowObject = $(element), zIndexNew = windowObject.css(ZINDEX), contentElement = windowObject.children(KWINDOWCONTENT);\n if (!isNaN(zIndexNew)) {\n zIndex = Math.max(+zIndexNew, zIndex);\n }\n contentElement.data('isFront', element == currentWindow);\n if (element != currentWindow && contentElement.find('> .' + KCONTENTFRAME).length > 0) {\n contentElement.append(templates.overlay);\n }\n });\n if (!wrapper[0].style.zIndex || originalZIndex < zIndex) {\n wrapper.css(ZINDEX, zIndex + 2);\n }\n that.element.find('> .k-overlay').remove();\n if (that._shouldFocus(target)) {\n if (that.isMinimized()) {\n that.wrapper.focus();\n } else if ($(target).is(KOVERLAY)) {\n setTimeout(function () {\n that.element.focus();\n });\n } else {\n that.element.focus();\n }\n var scrollTop = $(window).scrollTop(), windowTop = parseInt(wrapper.position().top, 10);\n if (!that.options.pinned && windowTop > 0 && windowTop < scrollTop) {\n if (scrollTop > 0) {\n $(window).scrollTop(windowTop);\n } else {\n wrapper.css('top', scrollTop);\n }\n }\n }\n wrapper = null;\n return that;\n },\n toggleMaximization: function () {\n if (this._closing) {\n return this;\n }\n return this[this.options.isMaximized ? 'restore' : 'maximize']();\n },\n restore: function () {\n var that = this;\n var options = that.options;\n var minHeight = options.minHeight;\n var restoreOptions = that.restoreOptions;\n var doc = $(document);\n if (!options.isMaximized && !options.isMinimized) {\n return that;\n }\n if (minHeight && minHeight != Infinity) {\n that.wrapper.css('min-height', minHeight);\n }\n that.wrapper.css({\n position: options.pinned ? 'fixed' : 'absolute',\n left: restoreOptions.left,\n top: restoreOptions.top,\n width: restoreOptions.width,\n height: restoreOptions.height\n }).removeClass(MAXIMIZEDSTATE).find('.k-window-content,.k-resize-handle').show().end().find('.k-window-titlebar .k-i-window-restore').parent().remove().end().end().find(MINIMIZE_MAXIMIZE).parent().show().end().end().find(PIN_UNPIN).parent().show();\n if (options.isMaximized) {\n that.wrapper.find('.k-i-window-maximize').parent().focus();\n } else if (options.isMinimized) {\n that.wrapper.find('.k-i-window-minimize').parent().focus();\n }\n that.options.width = restoreOptions.width;\n that.options.height = restoreOptions.height;\n that._enableDocumentScrolling();\n if (this._documentScrollTop && this._documentScrollTop > 0) {\n doc.scrollTop(this._documentScrollTop);\n }\n if (this._documentScrollLeft && this._documentScrollLeft > 0) {\n doc.scrollLeft(this._documentScrollLeft);\n }\n options.isMaximized = options.isMinimized = false;\n this.wrapper.removeAttr('tabindex');\n this.wrapper.removeAttr('aria-labelled-by');\n that.resize();\n return that;\n },\n _sizingAction: function (actionId, callback) {\n var that = this, wrapper = that.wrapper, style = wrapper[0].style, options = that.options;\n if (options.isMaximized || options.isMinimized) {\n return that;\n }\n that.restoreOptions = {\n width: style.width,\n height: style.height\n };\n wrapper.children(KWINDOWRESIZEHANDLES).hide().end().children(KWINDOWTITLEBAR).find(MINIMIZE_MAXIMIZE).parent().hide().eq(0).before(templates.action({ name: 'window-restore' }));\n callback.call(that);\n that.wrapper.children(KWINDOWTITLEBAR).find(PIN_UNPIN).parent().toggle(actionId !== 'maximize');\n that.trigger(actionId);\n wrapper.find('.k-i-window-restore').parent().focus();\n return that;\n },\n maximize: function () {\n this._sizingAction('maximize', function () {\n var that = this, wrapper = that.wrapper, position = wrapper.position(), doc = $(document);\n extend(that.restoreOptions, {\n left: position.left,\n top: position.top\n });\n wrapper.css({\n left: 0,\n top: 0,\n position: 'fixed'\n }).addClass(MAXIMIZEDSTATE);\n this._documentScrollTop = doc.scrollTop();\n this._documentScrollLeft = doc.scrollLeft();\n that._stopDocumentScrolling();\n that.options.isMaximized = true;\n that._onDocumentResize();\n });\n return this;\n },\n _stopDocumentScrolling: function () {\n var that = this;\n var $body = $('body');\n that._storeOverflowRule($body);\n $body.css(OVERFLOW, HIDDEN);\n var $html = $('html');\n that._storeOverflowRule($html);\n $html.css(OVERFLOW, HIDDEN);\n },\n _enableDocumentScrolling: function () {\n var that = this;\n that._restoreOverflowRule($(document.body));\n that._restoreOverflowRule($('html'));\n },\n _storeOverflowRule: function ($element) {\n if (this._isOverflowStored($element)) {\n return;\n }\n var overflowRule = $element.get(0).style.overflow;\n if (typeof overflowRule === 'string') {\n $element.data(DATADOCOVERFLOWRULE, overflowRule);\n }\n },\n _isOverflowStored: function ($element) {\n return typeof $element.data(DATADOCOVERFLOWRULE) === 'string';\n },\n _restoreOverflowRule: function ($element) {\n var overflowRule = $element.data(DATADOCOVERFLOWRULE);\n if (overflowRule !== null && overflowRule !== undefined) {\n $element.css(OVERFLOW, overflowRule);\n $element.removeData(DATADOCOVERFLOWRULE);\n } else {\n $element.css(OVERFLOW, '');\n }\n },\n isMaximized: function () {\n return this.options.isMaximized;\n },\n minimize: function () {\n this._sizingAction('minimize', function () {\n var that = this;\n that.wrapper.css({\n height: '',\n minHeight: ''\n });\n that.element.hide();\n that.options.isMinimized = true;\n });\n this.wrapper.attr('tabindex', 0);\n this.wrapper.attr('aria-labelled-by', this.element.attr('aria-labelled-by'));\n return this;\n },\n isMinimized: function () {\n return this.options.isMinimized;\n },\n pin: function () {\n var that = this, win = $(window), wrapper = that.wrapper, top = parseInt(wrapper.css('top'), 10), left = parseInt(wrapper.css('left'), 10);\n if (!that.options.isMaximized) {\n wrapper.css({\n position: 'fixed',\n top: top - win.scrollTop(),\n left: left - win.scrollLeft()\n });\n wrapper.children(KWINDOWTITLEBAR).find(KPIN).addClass('k-i-unpin').removeClass('k-i-pin');\n that._isPinned = true;\n that.options.pinned = true;\n }\n },\n unpin: function () {\n var that = this, win = $(window), wrapper = that.wrapper, top = parseInt(wrapper.css('top'), 10), left = parseInt(wrapper.css('left'), 10);\n if (!that.options.isMaximized) {\n wrapper.css({\n position: '',\n top: top + win.scrollTop(),\n left: left + win.scrollLeft()\n });\n wrapper.children(KWINDOWTITLEBAR).find(KUNPIN).addClass('k-i-pin').removeClass('k-i-unpin');\n that._isPinned = false;\n that.options.pinned = false;\n }\n },\n _onDocumentResize: function () {\n var that = this, wrapper = that.wrapper, wnd = $(window), zoomLevel = kendo.support.zoomLevel(), w, h;\n if (!that.options.isMaximized) {\n return;\n }\n var lrBorderWidth = parseInt(wrapper.css('border-left-width'), 10) + parseInt(wrapper.css('border-right-width'), 10);\n var tbBorderWidth = parseInt(wrapper.css('border-top-width'), 10) + parseInt(wrapper.css('border-bottom-width'), 10);\n w = wnd.width() / zoomLevel - lrBorderWidth;\n h = wnd.height() / zoomLevel - parseInt(wrapper.css('padding-top'), 10) - tbBorderWidth;\n wrapper.css({\n width: w,\n height: h\n });\n that.options.width = w;\n that.options.height = h;\n that.resize();\n },\n refresh: function (options) {\n var that = this, initOptions = that.options, element = $(that.element), iframe, showIframe, url;\n if (!isPlainObject(options)) {\n options = { url: options };\n }\n options = extend({}, initOptions.content, options);\n showIframe = defined(initOptions.iframe) ? initOptions.iframe : options.iframe;\n url = options.url;\n if (url) {\n if (!defined(showIframe)) {\n showIframe = !isLocalUrl(url);\n }\n if (!showIframe) {\n that._ajaxRequest(options);\n } else {\n iframe = element.find('.' + KCONTENTFRAME)[0];\n if (iframe) {\n iframe.src = url || iframe.src;\n } else {\n element.html(templates.contentFrame(extend({}, initOptions, { content: options })));\n }\n element.find('.' + KCONTENTFRAME).unbind('load' + NS).on('load' + NS, proxy(this._triggerRefresh, this));\n }\n } else {\n if (options.template) {\n that.content(template(options.template)({}));\n }\n that.trigger(REFRESH);\n }\n element.toggleClass('k-window-iframecontent', !!showIframe);\n return that;\n },\n _triggerRefresh: function () {\n this.trigger(REFRESH);\n },\n _ajaxComplete: function () {\n clearTimeout(this._loadingIconTimeout);\n this.wrapper.find(REFRESHICON).removeClass(LOADING);\n },\n _ajaxError: function (xhr, status) {\n this.trigger(ERROR, {\n status: status,\n xhr: xhr\n });\n },\n _ajaxSuccess: function (contentTemplate) {\n return function (data) {\n var html = data;\n if (contentTemplate) {\n html = template(contentTemplate)(data || {});\n }\n this.content(html, data);\n this.element.prop('scrollTop', 0);\n this.trigger(REFRESH);\n };\n },\n _showLoading: function () {\n this.wrapper.find(REFRESHICON).addClass(LOADING);\n },\n _ajaxRequest: function (options) {\n this._loadingIconTimeout = setTimeout(proxy(this._showLoading, this), 100);\n $.ajax(extend({\n type: 'GET',\n dataType: 'html',\n cache: false,\n error: proxy(this._ajaxError, this),\n complete: proxy(this._ajaxComplete, this),\n success: proxy(this._ajaxSuccess(options.template), this)\n }, options));\n },\n _destroy: function () {\n if (this.resizing) {\n this.resizing.destroy();\n }\n if (this.dragging) {\n this.dragging.destroy();\n }\n this.wrapper.off(NS).children(KWINDOWCONTENT).off(NS).end().find('.k-resize-handle,.k-window-titlebar').off(NS);\n $(window).off('resize' + NS + this._marker);\n $(window).off(NS);\n clearTimeout(this._loadingIconTimeout);\n Widget.fn.destroy.call(this);\n this.unbind(undefined);\n kendo.destroy(this.wrapper);\n this._removeOverlay(true);\n },\n destroy: function () {\n this._destroy();\n this.wrapper.empty().remove();\n this.wrapper = this.appendTo = this.element = $();\n },\n _createWindow: function () {\n var contentHtml = this.element, options = this.options, iframeSrcAttributes, wrapper, isRtl = kendo.support.isRtl(contentHtml);\n if (options.scrollable === false) {\n contentHtml.css('overflow', 'hidden');\n }\n wrapper = $(templates.wrapper(options));\n iframeSrcAttributes = contentHtml.find('iframe:not(.k-content)').map(function () {\n var src = this.getAttribute('src');\n this.src = '';\n return src;\n });\n wrapper.toggleClass('k-rtl', isRtl).appendTo(this.appendTo).append(contentHtml).find('iframe:not(.k-content)').each(function (index) {\n this.src = iframeSrcAttributes[index];\n });\n wrapper.find('.k-window-title').css(isRtl ? 'left' : 'right', outerWidth(wrapper.find('.k-window-actions')) + 10);\n contentHtml.css('visibility', '').show();\n contentHtml.find('[data-role=editor]').each(function () {\n var editor = $(this).data('kendoEditor');\n if (editor) {\n editor.refresh();\n }\n });\n wrapper = contentHtml = null;\n }\n });\n templates = {\n wrapper: template(''),\n action: template('' + '' + ''),\n titlebar: template(' '),\n overlay: '',\n contentFrame: template(''),\n resizeHandle: template('')\n };\n function WindowResizing(wnd) {\n var that = this;\n that.owner = wnd;\n that._preventDragging = false;\n that._draggable = new Draggable(wnd.wrapper, {\n filter: '>' + KWINDOWRESIZEHANDLES,\n group: wnd.wrapper.id + '-resizing',\n dragstart: proxy(that.dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that)\n });\n that._draggable.userEvents.bind('press', proxy(that.addOverlay, that));\n that._draggable.userEvents.bind('release', proxy(that.removeOverlay, that));\n }\n function getPosition(elem) {\n var result = {\n top: elem.offsetTop,\n left: elem.offsetLeft\n }, parent = elem.offsetParent;\n while (parent) {\n result.top += parent.offsetTop;\n result.left += parent.offsetLeft;\n var parentOverflowX = $(parent).css('overflowX');\n var parentOverflowY = $(parent).css('overflowY');\n if (parentOverflowY === 'auto' || parentOverflowY === 'scroll') {\n result.top -= parent.scrollTop;\n }\n if (parentOverflowX === 'auto' || parentOverflowX === 'scroll') {\n result.left -= parent.scrollLeft;\n }\n parent = parent.offsetParent;\n }\n return result;\n }\n WindowResizing.prototype = {\n addOverlay: function () {\n this.owner.wrapper.append(templates.overlay);\n },\n removeOverlay: function () {\n this.owner.wrapper.find(KOVERLAY).remove();\n },\n dragstart: function (e) {\n var that = this;\n var wnd = that.owner;\n var wrapper = wnd.wrapper;\n that._preventDragging = wnd.trigger(RESIZESTART);\n if (that._preventDragging) {\n return;\n }\n that.elementPadding = parseInt(wrapper.css('padding-top'), 10);\n that.initialPosition = kendo.getOffset(wrapper, 'position');\n that.resizeDirection = e.currentTarget.prop('className').replace('k-resize-handle k-resize-', '');\n that.initialSize = {\n width: wrapper.width(),\n height: wrapper.height()\n };\n that.containerOffset = kendo.getOffset(wnd.appendTo, 'position');\n var offsetParent = wrapper.offsetParent();\n if (offsetParent.is('html')) {\n that.containerOffset.top = that.containerOffset.left = 0;\n } else {\n var marginTop = offsetParent.css('margin-top');\n var marginLeft = offsetParent.css('margin-left');\n var hasMargin = !zero.test(marginTop) || !zero.test(marginLeft);\n if (hasMargin) {\n var wrapperPosition = getPosition(wrapper[0]);\n var relativeElMarginLeft = wrapperPosition.left - that.containerOffset.left - that.initialPosition.left;\n var relativeElMarginTop = wrapperPosition.top - that.containerOffset.top - that.initialPosition.top;\n that._relativeElMarginLeft = relativeElMarginLeft > 1 ? relativeElMarginLeft : 0;\n that._relativeElMarginTop = relativeElMarginTop > 1 ? relativeElMarginTop : 0;\n that.initialPosition.left += that._relativeElMarginLeft;\n that.initialPosition.top += that._relativeElMarginTop;\n }\n }\n wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\n if (this._preventDragging) {\n return;\n }\n var that = this, wnd = that.owner, wrapper = wnd.wrapper, options = wnd.options, direction = that.resizeDirection, containerOffset = that.containerOffset, initialPosition = that.initialPosition, initialSize = that.initialSize, newWidth, newHeight, windowBottom, windowRight, x = Math.max(e.x.location, 0), y = Math.max(e.y.location, 0);\n if (direction.indexOf('e') >= 0) {\n newWidth = x - initialPosition.left - containerOffset.left;\n wrapper.width(constrain(newWidth, options.minWidth, options.maxWidth));\n } else if (direction.indexOf('w') >= 0) {\n windowRight = initialPosition.left + initialSize.width + containerOffset.left;\n newWidth = constrain(windowRight - x, options.minWidth, options.maxWidth);\n wrapper.css({\n left: windowRight - newWidth - containerOffset.left - (that._relativeElMarginLeft || 0),\n width: newWidth\n });\n }\n var newWindowTop = y;\n if (wnd.options.pinned) {\n newWindowTop -= $(window).scrollTop();\n }\n if (direction.indexOf('s') >= 0) {\n newHeight = newWindowTop - initialPosition.top - that.elementPadding - containerOffset.top;\n wrapper.height(constrain(newHeight, options.minHeight, options.maxHeight));\n } else if (direction.indexOf('n') >= 0) {\n windowBottom = initialPosition.top + initialSize.height + containerOffset.top;\n newHeight = constrain(windowBottom - newWindowTop, options.minHeight, options.maxHeight);\n wrapper.css({\n top: windowBottom - newHeight - containerOffset.top - (that._relativeElMarginTop || 0),\n height: newHeight\n });\n }\n if (newWidth) {\n wnd.options.width = newWidth + 'px';\n }\n if (newHeight) {\n wnd.options.height = newHeight + 'px';\n }\n wnd.resize();\n },\n dragend: function (e) {\n if (this._preventDragging) {\n return;\n }\n var that = this, wnd = that.owner, wrapper = wnd.wrapper;\n wrapper.children(KWINDOWRESIZEHANDLES).not(e.currentTarget).show();\n $(BODY).css(CURSOR, '');\n if (wnd.touchScroller) {\n wnd.touchScroller.reset();\n }\n if (e.keyCode == 27) {\n wrapper.css(that.initialPosition).css(that.initialSize);\n }\n wnd.trigger(RESIZEEND);\n return false;\n },\n destroy: function () {\n if (this._draggable) {\n this._draggable.destroy();\n }\n this._draggable = this.owner = null;\n }\n };\n function WindowDragging(wnd, dragHandle) {\n var that = this;\n that.owner = wnd;\n that._preventDragging = false;\n that._draggable = new Draggable(wnd.wrapper, {\n filter: dragHandle,\n group: wnd.wrapper.id + '-moving',\n dragstart: proxy(that.dragstart, that),\n drag: proxy(that.drag, that),\n dragend: proxy(that.dragend, that),\n dragcancel: proxy(that.dragcancel, that)\n });\n that._draggable.userEvents.stopPropagation = false;\n }\n WindowDragging.prototype = {\n dragstart: function (e) {\n var wnd = this.owner, element = wnd.element, actions = element.find('.k-window-actions'), containerOffset = kendo.getOffset(wnd.appendTo);\n this._preventDragging = wnd.trigger(DRAGSTART) || !wnd.options.draggable;\n if (this._preventDragging) {\n return;\n }\n wnd.initialWindowPosition = kendo.getOffset(wnd.wrapper, 'position');\n wnd.initialPointerPosition = {\n left: e.x.client,\n top: e.y.client\n };\n wnd.startPosition = {\n left: e.x.client - wnd.initialWindowPosition.left,\n top: e.y.client - wnd.initialWindowPosition.top\n };\n if (actions.length > 0) {\n wnd.minLeftPosition = outerWidth(actions) + parseInt(actions.css('right'), 10) - outerWidth(element);\n } else {\n wnd.minLeftPosition = 20 - outerWidth(element);\n }\n wnd.minLeftPosition -= containerOffset.left;\n wnd.minTopPosition = -containerOffset.top;\n wnd.wrapper.append(templates.overlay).children(KWINDOWRESIZEHANDLES).hide();\n $(BODY).css(CURSOR, e.currentTarget.css(CURSOR));\n },\n drag: function (e) {\n if (this._preventDragging) {\n return;\n }\n var wnd = this.owner;\n var position = wnd.options.position;\n position.top = Math.max(e.y.client - wnd.startPosition.top, wnd.minTopPosition);\n position.left = Math.max(e.x.client - wnd.startPosition.left, wnd.minLeftPosition);\n if (kendo.support.transforms) {\n $(wnd.wrapper).css('transform', 'translate(' + (e.x.client - wnd.initialPointerPosition.left) + 'px, ' + (e.y.client - wnd.initialPointerPosition.top) + 'px)');\n } else {\n $(wnd.wrapper).css(position);\n }\n },\n _finishDrag: function () {\n var wnd = this.owner;\n wnd.wrapper.children(KWINDOWRESIZEHANDLES).toggle(!wnd.options.isMinimized).end().find(KOVERLAY).remove();\n $(BODY).css(CURSOR, '');\n },\n dragcancel: function (e) {\n if (this._preventDragging) {\n return;\n }\n this._finishDrag();\n e.currentTarget.closest(KWINDOW).css(this.owner.initialWindowPosition);\n },\n dragend: function () {\n if (this._preventDragging) {\n return;\n }\n $(this.owner.wrapper).css(this.owner.options.position).css('transform', '');\n this._finishDrag();\n this.owner.trigger(DRAGEND);\n return false;\n },\n destroy: function () {\n if (this._draggable) {\n this._draggable.destroy();\n }\n this._draggable = this.owner = null;\n }\n };\n kendo.ui.plugin(Window);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}