{"version":3,"file":"kendo.tilelayout.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendotilelayout","js","this","$","kendo","window","ui","Widget","Draggable","keys","selector","selectorFromClasses","RESIZE","REORDER","NS","GRABCURSOR","TileLayout","extend","init","element","options","that","fn","call","cssNumber","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","addClass","styles","wrapper","attr","role","_setWrapperStyles","_initContainers","_resizable","_navigatable","_reorderable","_showWatermarkOverlay","events","name","columns","gap","rows","containers","resizable","reorderable","navigatable","columnsWidth","rowsHeight","height","width","destroy","_draggableInstance","find","each","item","data","resizeHandle","off","remove","setOptions","deepExtend","empty","getOptions","result","items","id","container","header","headerSettings","body","containerSettings","headerContent","containerElements","children","hasElements","length","itemsMap","i","guid","current","_addContainer","template","text","itemHeader","itemHeaderTitle","append","appendTo","itemBody","bodyTemplate","Error","index","order","_setContainerCoordinates","push","css","format","padding","settings","colSpan","rowSpan","_updateContainers","_createResizeHandle","side","down","_isresizing","_positionResizeHandle","cursorClass","leftBorderWidth","parseFloat","bottomBorderWidth","containerHeight","containerWidth","top","left","support","isRtl","removeClass","show","_createResizeHint","hint","resizeHint","insertAfter","_removeResizeHint","_positionHint","_removeAbsoluteStyles","_positionAbsolutely","position","outerWidth","outerHeight","on","_keyDown","bind","e","target","canHandle","is","ctrlKey","keyCode","LEFT","_resizeItem","RIGHT","UP","DOWN","shiftKey","_reorderItem","preventDefault","dir","delta","newSpan","parseInt","replace","split","trigger","newOrder","oldOrder","maxOrder","_updateDOM","newIndex","oldIndex","_sortContainers","indexAttr","sort","a","b","indexA","indexB","undefined","fractionWidth","fractionHeight","currentContainer","rowsCount","lastXLocation","lastYLocation","initialWidth","initialHeight","startColSpan","startRowSpan","itemsMaxSpace","rightPosition","downPosition","rectPosition","getBoundingClientRect","Math","abs","right","clientX","bottom","clientY","Resizable","handle","start","currentTarget","_calculateFractionWidth","_calculateRightEndSide","x","location","scrollHeight","y","resize","overflowsLayout","isBeyondMinimum","hintColumns","hintRows","mouseDeltaX","mouseDeltaY","deltaFromStart","resizeRowsCount","resizeColumnsCount","clientRect","style","scrollX","floor","max","scrollY","resizeend","first","columnGap","_createDropHint","dropHint","reorderHint","columnEnd","rowEnd","direction","_insertDropHint","insertBefore","_removeDropHint","originalElement","itemSelector","headerSelector","group","filter","autoScroll","ignore","clickMoveClick","closest","clone","dragstart","document","cursor","drag","dropContainer","containerBoundaries","elementUnderCursor","sender","draggedItem","containsOrEqualTo","hide","hasClass","next","prev","dragend","end","itemId","min","dragcancel","kendoDropTarget","dragenter","dropContainerBoundaries","dropTarget","parent","child","contains","plugin","jQuery"],"sources":["kendo.tilelayout.js"],"mappings":"CAAA,SAAWA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,EAAQG,QAAQ,iBAAkBA,QAAQ,wBAAyBA,QAAQ,uBACzI,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,iBAAkB,wBAAyB,uBAAwBJ,KACvHD,EAA+B,oBAAfO,WAA6BA,WAAaP,GAAUQ,MAAcC,gBAAkBT,EAAOS,iBAAmB,CAAC,EAAGT,EAAOS,gBAAgBC,GAAKT,IAClK,CAJD,CAIGU,MAAM,WAi6BL,OA34BI,SAAUC,GACN,IAAIC,EAAQC,OAAOD,MACfE,EAAKF,EAAME,GACXC,EAASD,EAAGC,OACZC,EAAYF,EAAGE,UACfC,EAAOL,EAAMK,KACbC,EAAWN,EAAMO,oBACjBC,EAAS,SACTC,EAAU,UACVC,EAAK,mBAKLC,EAAa,gBAebC,EAAaT,EAAOU,OAAO,CAC3BC,KAAM,SAASC,EAASC,GACpB,IAAIC,EAAOnB,KAEXK,EAAOe,GAAGJ,KAAKK,KAAKF,EAAMF,EAASC,GAEnCjB,EAAEqB,UAAUC,iBAAkB,EAC9BtB,EAAEqB,UAAUE,eAAgB,EAC5BvB,EAAEqB,UAAUG,cAAe,EAC3BxB,EAAEqB,UAAUI,YAAa,EAEzBP,EAAKF,QAAUhB,EAAEgB,GACZU,SAASb,EAAWc,OAAOC,SAC3BC,KAAK,CACFC,KAAM,SAGdZ,EAAKa,oBACLb,EAAKc,kBACLd,EAAKe,aACLf,EAAKgB,eACLhB,EAAKiB,eAEDjB,EAAKkB,uBACLlB,EAAKkB,sBAAsBlB,EAAKF,QAAQ,GAEhD,EAEAqB,OAAQ,CACJ5B,EACAC,GAGJO,QAAS,CACLqB,KAAM,aACNC,QAAS,KACTC,IAAK,CACDD,QAAS,GACTE,KAAM,IAEVC,WAAY,GACZC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,aAAc,MACdC,WAAY,MACZC,OAAQ,GACRC,MAAO,IAGXC,QAAS,WACL9C,EAAOe,GAAG+B,QAAQ9B,KAAKrB,MAEnBA,KAAKoD,qBAELpD,KAAKiB,QAAQoC,KAAK,sBAAsBC,MAAK,WACzC,IAAIC,EAAOtD,EAAED,MACTuD,EAAKC,KAAK,oBACVD,EAAKC,KAAK,mBAAmBL,SAErC,IAEAnD,KAAKoD,mBAAmBD,UACxBnD,KAAKoD,mBAAqB,MAG1BpD,KAAK4C,YACL5C,KAAK4C,UAAUO,UACfnD,KAAK4C,UAAY,MAGjB5C,KAAKyD,eACLzD,KAAKyD,aAAaC,IAAI9C,GAAI+C,SAC1B3D,KAAKyD,aAAe,MAGxBzD,KAAKiB,QAAQyC,IAAI9C,EACrB,EAEAgD,WAAY,SAAS1C,GACjBlB,KAAKmD,UACLjD,EAAM2D,WAAW7D,KAAKkB,QAASA,GAC/BlB,KAAKiB,QAAQ6C,QACb9D,KAAKgB,KAAKhB,KAAKiB,QAASjB,KAAKkB,QACjC,EAEA6C,WAAY,WACR,IAAIC,EAAS/D,EAAEc,QAAO,EAAM,CAAC,EAAGf,KAAKkB,SAGrC,OAFA8C,EAAOrB,WAAazC,EAAM2D,WAAW,GAAI7D,KAAKiE,OAEvCD,CACX,EAEA/B,gBAAiB,WACb,IAIIiC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAVArD,EAAOnB,KACP2C,EAAaxB,EAAKD,QAAQyB,WAC1B8B,EAAoBtD,EAAKF,QAAQyD,WACjCC,IAAgBF,EAAkBG,OAYtC,GAHAzD,EAAK8C,MAAQ,GACb9C,EAAK0D,SAAW,CAAC,EAEbF,EACAF,EAAkBnB,MAAK,SAASwB,EAAG7D,GAC/BiD,EAAKhE,EAAM6E,OACX,IAAIC,EAAU/E,EAAEgB,GACXU,SAASb,EAAWc,OAAO2B,MAC3BzB,KAAK,CACFoC,GAAIA,EACJnC,KAAM,WACN,oBAAqB,UAG7BZ,EAAK8D,cAAcD,EAASrC,EAAWmC,GAAIA,EAAGZ,EAClD,SAEA,IAAK,IAAIY,EAAI,EAAGA,EAAInC,EAAWiC,OAAQE,IAAK,CAuBxC,GAtBAZ,EAAKhE,EAAM6E,OACXR,EAAoB5B,EAAWmC,GAC/BX,EAAYlE,EAAE,eACT0B,SAASb,EAAWc,OAAO2B,MAC3BzB,KAAK,CACFoC,GAAIA,EACJnC,KAAM,WACN,oBAAqB,WAG7BsC,EAAiBE,EAAkBH,UACZC,EAAea,UAAYb,EAAec,QAC7Df,EAASnE,EAAE,eAAe0B,SAASb,EAAWc,OAAOwD,YACjDjE,EAAKD,QAAQ2B,aACbuB,EAAOzC,SAASd,GAGpB2D,EAAgBH,EAAec,KAAO,eAAiBrE,EAAWc,OAAOyD,gBAAkB,KAAOhB,EAAec,KAAO,SAAW,KACnIf,EAAOkB,OAAOd,GAAiBtE,EAAMgF,SAASb,EAAea,SAA9BhF,CAAwC,CAAC,IACxEkE,EAAOmB,SAASpB,IAEpBG,EAAOrE,EAAE,eAAe0B,SAASb,EAAWc,OAAO4D,WAC9CjB,EAAkBkB,aACnB,MAAM,IAAIC,MAAM,wDAEpBpB,EAAKgB,OAAOpF,EAAMgF,SAASX,EAAkBkB,aAAjCvF,CAA+C,CAAC,IAC5DoE,EAAKiB,SAASpB,GACdA,EAAUoB,SAASpE,EAAKF,SAExBE,EAAK8D,cAAcd,EAAWI,EAAmBO,EAAGZ,EACxD,CAER,EAEAe,cAAe,SAAShE,EAASsC,EAAMoC,EAAOzB,GAC1C,IAAI/C,EAAOnB,KACXuD,EAAKqC,MAA6B,iBAAdrC,EAAKqC,MAAoBrC,EAAKqC,MAAQD,EAC1D1E,EAAQa,KAAK5B,EAAM4B,KAAK,SAAUyB,EAAKqC,OACvCrC,EAAKW,GAAKA,EACV/C,EAAK0E,yBAAyB5E,EAASsC,GACvCpC,EAAK0D,SAASX,GAAMX,EACpBpC,EAAK8C,MAAM6B,KAAK3E,EAAK0D,SAASX,GAClC,EAEAlC,kBAAmB,WACf,IACId,EADOlB,KACQkB,QADRlB,KAENiB,QAAQ8E,IAAI,CACb,wBAAyB7F,EAAM8F,OAAO,8BAA+B9E,EAAQsB,QAAyC,iBAAzBtB,EAAQ6B,aAA4B7B,EAAQ6B,aAAe7B,EAAQ6B,aAAe,MAC/K,iBAAkB7C,EAAM8F,OAAO,iBAAgD,iBAAvB9E,EAAQ8B,WAA0B9B,EAAQ8B,WAAa9B,EAAQ8B,WAAa,MACpI,aAAc9B,EAAQuB,IAAID,QAC1BU,MAAkC,iBAAlBhC,EAAQgC,MAAqBhC,EAAQgC,MAAQhC,EAAQgC,MAAQ,KAC7ED,OAAoC,iBAAnB/B,EAAQ+B,OAAsB/B,EAAQ+B,OAAS/B,EAAQ+B,OAAS,KACjFgD,QAAW/E,EAAQuB,IAAIC,KAAO,MAAQxB,EAAQuB,IAAID,QAAU,MAC5D,UAAWtB,EAAQuB,IAAIC,MAE/B,EAEAmD,yBAA0B,SAAS5E,EAASiF,GACnCA,GAGLjF,EAAQ8E,IAAI,CACRH,MAASM,EAASN,MAClB,kBAAmB1F,EAAM8F,OAAO,WAAYE,EAASC,SACrD,eAAgBjG,EAAM8F,OAAO,WAAYE,EAASE,WAEjDtE,KAAK5B,EAAM4B,KAAK,SAAUoE,EAASN,MAC5C,EAEAS,kBAAmB,WAGf,IAFA,IAAIlF,EAAOnB,KAEF8E,EAAI,EAAGA,EAAI3D,EAAK8C,MAAMW,OAAQE,IACnC3D,EAAK0E,yBAAyB1E,EAAKF,QAAQoC,KAAK,IAAMlC,EAAK8C,MAAMa,GAAGZ,IAAK/C,EAAK8C,MAAMa,GAE5F,EAEAwB,oBAAqB,SAASnC,EAAWoC,EAAMC,GAC3C,IAAIrF,EAAOnB,KAEPmB,EAAKsF,cAILtF,EAAKsC,cAAgBtC,EAAKsC,aAAaD,KAAK,OAAO,KAAOW,EAAU,KACpEhD,EAAKsC,aAAaC,IAAI9C,GAAI+C,SAC1BxC,EAAKsC,aAAe,MAGnBtC,EAAKsC,eACNtC,EAAKsC,aAAexD,EAChB,uCAEJkB,EAAKsC,aAAa8B,SAASpB,IAG/BhD,EAAKuF,sBAAsBvC,EAAWoC,EAAMC,GAChD,EAEAE,sBAAuB,SAASvC,EAAWoC,EAAMC,GAC7C,IASIG,EARAC,EAAkBC,WAAW1C,EAAU4B,IAAI,qBAC3Ce,EAAoBD,WAAW1C,EAAU4B,IAAI,sBAC7CgB,EAAkB5C,EAAUlB,SAC5B+D,EAAiB7C,EAAUjB,QAC3B+D,EAAMT,EAAOO,EAAkB,IAAMD,EAAoB,EACzDI,EAAOX,EAAOS,EAAiB,IAAMJ,EAAkB,EACvD1D,EAAQ,EACRD,EAAS,EAGTsD,GAAQC,GACRvD,EAASC,EAAQ,GACjB+D,GAAO,KACPC,GAAQ,KACRP,EAAczG,EAAMiH,QAAQC,MAfrBpH,KAegCiB,SAhQ3B,uBADH,wBAkQFsF,IAASC,GAChBvD,EAAS8D,EACTJ,EArQM,uBAsQEJ,GAAQC,IAChBtD,EAAQ8D,EACRL,EAzQK,sBAoPE3G,KAwBNyD,aACAsC,IAAI,CACDkB,IAAKA,EACLC,KAAMA,EACNjE,OAAQA,EACRC,MAAOA,IAEVpB,KAAK,OAAQyE,GACbzE,KAAK,OAAQ0E,GACba,YA9QO,mFA+QP1F,SAASgF,GACTnD,KAAK,MAAOW,GACZmD,MACT,EAEAC,kBAAmB,SAASpD,GAGxB,IAFWnE,KAEFwH,KAAT,CAIA,IAAIrB,EAAUhC,EAAU4B,IAAI,mBACxBK,EAAUjC,EAAU4B,IAAI,gBACxBH,EAAQzB,EAAU4B,IAAI,SARf/F,KAUNwH,KAAOvH,EAAE,eAAiBa,EAAWc,OAAO6F,WAAa,YACzD1B,IAAI,CACDH,MAASA,EACT,kBAAmBO,EACnB,eAAgBC,IAEnBsB,YAAYvD,EAZjB,CAaJ,EAEAwD,kBAAmB,WACX3H,KAAKyG,aAILzG,KAAKwH,OACLxH,KAAKwH,KAAK7D,SACV3D,KAAKwH,KAAO,KAEpB,EAEAI,cAAe,SAASzB,EAASC,GAGzBD,GAFOnG,KAGFwH,KAAKzB,IAAI,kBAAmB7F,EAAM8F,OAAO,WAAYG,IAG1DC,GANOpG,KAOFwH,KAAKzB,IAAI,eAAgB7F,EAAM8F,OAAO,WAAYI,GAE/D,EAEAyB,sBAAuB,SAAS1D,GAC5BA,EAAU4B,IAAI,WAAY,IAC1B5B,EAAU4B,IAAI,OAAQ,IACtB5B,EAAU4B,IAAI,MAAO,IACrB5B,EAAU4B,IAAI,QAAS,IACvB5B,EAAU4B,IAAI,SAAU,IACxB5B,EAAU4B,IAAI,UAAW,GAC7B,EAEA+B,oBAAqB,SAAS3D,GAC1B,GAAiC,YAA7BA,EAAU4B,IAAI,YAAlB,CAGA,IAAIgC,EAAW5D,EAAU4D,WACrB7E,EAAQiB,EAAU6D,aAClB/E,EAASkB,EAAU8D,cAEvB9D,EAAU4B,IAAI,WAAY,YAC1B5B,EAAU4B,IAAI,OAAQgC,EAASb,MAC/B/C,EAAU4B,IAAI,MAAOgC,EAASd,KAC9B9C,EAAU4B,IAAI,QAAS7C,GACvBiB,EAAU4B,IAAI,SAAU9C,GACxBkB,EAAU4B,IAAI,UAAW,EAVzB,CAWJ,EAEA5D,aAAc,WAEV,GAAKnC,KAAKkB,QAAQ4B,YAAlB,CAIA,IAAI3B,EAAOnB,KAEXmB,EAAKF,QAAQyD,WAAW5C,KAAK,WAAY,GACzCX,EAAKF,QAAQiH,GAAG,UAAYtH,EAAIO,EAAMA,EAAKgH,SAASC,KAAKjH,GALzD,CAMJ,EAEAgH,SAAU,SAASE,GACf,IAAIC,EAASrI,EAAEoI,EAAEC,QACbC,GAAY,EAEXD,EAAOE,GAAG,+BAKXH,EAAEI,SAAWJ,EAAEK,SAAWnI,EAAKoI,OAC/BJ,GAAY,EACZvI,KAAK4I,YAAYN,EAAQ,cAAe,IAGxCD,EAAEI,SAAWJ,EAAEK,SAAWnI,EAAKsI,QAC/BN,GAAY,EACZvI,KAAK4I,YAAYN,EAAQ,aAAc,IAGvCD,EAAEI,SAAWJ,EAAEK,SAAWnI,EAAKuI,KAC/BP,GAAY,EACZvI,KAAK4I,YAAYN,EAAQ,YAAa,IAGtCD,EAAEI,SAAWJ,EAAEK,SAAWnI,EAAKwI,OAC/BR,GAAY,EACZvI,KAAK4I,YAAYN,EAAQ,WAAY,IAGrCD,EAAEW,UAAYX,EAAEK,SAAWnI,EAAKoI,OAChCJ,GAAY,EACZvI,KAAKiJ,aAAaX,GAAS,IAG3BD,EAAEW,UAAYX,EAAEK,SAAWnI,EAAKsI,QAChCN,GAAY,EACZvI,KAAKiJ,aAAaX,EAAQ,IAG1BC,GACAF,EAAEa,iBAEV,EAEAN,YAAa,SAASrF,EAAM4F,EAAKC,GAC7B,IAEIC,EAFAlI,EAAOnB,KACPkE,EAAKX,EAAKzB,KAAK,MAIdX,EAAKD,QAAQ0B,YAIN,eAARuG,GACAE,EAAUC,SAAS/F,EAAKwC,IAAI,mBAAmBwD,QAAQ,OAAQ,IAAK,IAAMH,EAChEjI,EAAKF,QAAQ8E,IAAI,yBAAyByD,MAAM,KAAK5E,QAEhDyE,GAAWA,EAAU,IAChClI,EAAK0D,SAASX,GAAIiC,QAAUkD,EAC5B9F,EAAKwC,IAAI,CACL,kBAAmB7F,EAAM8F,OAAO,WAAYqD,KAEhDlI,EAAKsI,QAAQ/I,EAAQ,CACjByD,UAAWZ,OAInB8F,EAAUC,SAAS/F,EAAKwC,IAAI,gBAAgBwD,QAAQ,OAAQ,IAAK,IAAMH,EAC7DjI,EAAKF,QAAQ8E,IAAI,sBAAsByD,MAAM,KAAK5E,QAE7CyE,GAAWA,EAAU,IAChClI,EAAK0D,SAASX,GAAIkC,QAAUiD,EAC5B9F,EAAKwC,IAAI,CACL,eAAgB7F,EAAM8F,OAAO,WAAYqD,KAE7ClI,EAAKsI,QAAQ/I,EAAQ,CACjByD,UAAWZ,MAI3B,EAEA0F,aAAc,SAAS1F,EAAMmG,GACzB,GAAK1J,KAAKkB,QAAQ2B,YAAlB,CAIA,IAAI8G,EAAWL,SAAS/F,EAAKwC,IAAI,SAAU,IACvC6D,EAAW5J,KAAKiB,QAAQyD,WAAWE,OAGvC,IAFA8E,EAAWC,EAAWD,IAEN,GAAKA,EAAWE,EAAU,CACtC,IAAItB,EAAStI,KAAKiB,QAAQoC,KAAK,MAAQnD,EAAM4B,KAAK,SAAW,KAAO4H,EAAW,MAE/E1J,KAAK6E,SAAStB,EAAKzB,KAAK,OAAO8D,MAAQ8D,EACvC1J,KAAK6E,SAASyD,EAAOxG,KAAK,OAAO8D,MAAQ+D,EAEzC3J,KAAKqG,oBACLrG,KAAK6J,aACLtG,EAAKkG,QAAQ,SAEbzJ,KAAKyJ,QAAQ9I,EAAS,CAClBmJ,SAAUJ,EACVK,SAAUJ,EACVxF,UAAWZ,GAEnB,CArBA,CAsBJ,EAEAyG,gBAAiB,SAASrH,GACtB,IAAIsH,EAAY/J,EAAM4B,KAAK,SAE3B,OAAOa,EAAWuH,MAAK,SAASC,EAAGC,GAC/BD,EAAIlK,EAAEkK,GACNC,EAAInK,EAAEmK,GAEN,IAAIC,EAASF,EAAErI,KAAKmI,GAChBK,EAASF,EAAEtI,KAAKmI,GAWpB,YATeM,IAAXF,IACAA,EAASpK,EAAEkK,GAAGxE,cAEH4E,IAAXD,IACAA,EAASrK,EAAEmK,GAAGzE,UAGlB0E,EAASf,SAASe,EAAQ,MAC1BC,EAAShB,SAASgB,EAAQ,KACD,EAAKD,EAASC,GAAU,EAAI,CACzD,GACJ,EACAT,WAAY,WACR,IAAI1I,EAAOnB,KACP2C,EAAaxB,EAAKF,QAAQyD,SAAS,aAEvC/B,EAAaxB,EAAK6I,gBAAgBrH,IAEvBW,MAAK,WACZrD,EAAED,MAAMuF,SAASpE,EAAKF,QAC1B,GACJ,EAEAiB,WAAY,WACR,IACIqE,EACAC,EACAtC,EACAsG,EACAC,EACAC,EAQAC,EAdAxJ,EAAOnB,KAOP4K,EAAgB,EAChBC,EAAgB,EAChBC,EAAe,EACfC,EAAgB,EAChBC,EAAe,EACfC,EAAe,EACfC,EAAgB,EAGhB/J,EAAKD,QAAQ0B,YACbzB,EAAKF,QAAQiH,GAAG,YAActH,EAAIJ,EAASM,EAAWc,OAAO2B,OAAO,SAAS8E,GACzE,IAAI8C,EACAC,EACAjH,EAAYlE,EAAED,MACdqL,EAAelH,EAAU,GAAGmH,wBAEhCH,EAAgBI,KAAKC,IAAIH,EAAaI,MAAQpD,EAAEqD,SAAW,GAC3DN,EAAeG,KAAKC,IAAIH,EAAaM,OAAStD,EAAEuD,SAAW,GAEvDT,GAAiBC,EACjBjK,EAAKmF,oBAAoBnC,GAAW,GAAM,GACnCgH,EACPhK,EAAKmF,oBAAoBnC,GAAW,GAAM,GACnCiH,GACPjK,EAAKmF,oBAAoBnC,GAAW,GAAO,EAEnD,IAEAhD,EAAKyB,UAAY,IAAIxC,EAAGyL,UAAU1K,EAAKF,QAAS,CAC5C6K,OAAQ,2CACRC,MAAO,SAAS1D,GACZ,IAAI5E,EAAexD,EAAEoI,EAAE2D,eACvBtB,EAAmBjH,EAAaD,KAAK,OACrCU,EAAKwG,EAAiB5I,KAAK,MAC3ByE,EAAO9C,EAAa3B,KAAK,QACzB0E,EAAO/C,EAAa3B,KAAK,QACzB6I,EAAYxJ,EAAKF,QAAQ8E,IAAI,sBAAsByD,MAAM,KAAK5E,OAE1D2B,IACAiE,EAAgBrJ,EAAK8K,0BACrBf,EAAgB/J,EAAK+K,uBAAuB1B,GAC5CI,EAAgBvC,EAAE8D,EAAEC,SACpBtB,EAAeJ,EAAiBxH,QAChC8H,EAAe1B,SAASoB,EAAiB3E,IAAI,mBAAmBwD,QAAQ,OAAQ,IAAK,KAGrF/C,IACAiE,GAAkBtJ,EAAKF,QAAQ,GAAGoL,cAAgB1B,EAAY,GAAKxJ,EAAKD,QAAQuB,IAAIC,MAAQiI,EAC5FE,EAAgBxC,EAAEiE,EAAEF,SACpBrB,EAAgBL,EAAiBzH,SACjCgI,EAAe3B,SAASoB,EAAiB3E,IAAI,gBAAgBwD,QAAQ,OAAQ,IAAK,KAGtFpI,EAAKsF,aAAc,CACvB,EACA8F,OAAQ,SAASlE,GACb,IAIImE,EACAC,EALAC,EAAc,EACdC,EAAW,EACXC,EAAc,EACdC,EAAc,EAGdC,EAAiB,EACjBC,EAAkB,EAClBC,EAAqB,EACrBC,EAAa9L,EAAKF,QAAQ,GAAGqK,wBAC7BrI,IAAS9B,EAAKF,QAAQ,GAAGiM,MAAMjK,OAEnC9B,EAAK2G,oBAAoB4C,GACzBvJ,EAAKoG,kBAAkBmD,GAEX,QAARnE,IACAqG,EAAcvE,EAAE8D,EAAEC,SAAWxB,EAC7B4B,EAAmBS,EAAW/F,KAAOgE,EAAgB/K,OAAOgN,QAAU9E,EAAE8D,EAAEC,SAAYjL,EAAKD,QAAQuB,IAAID,QACvGiK,EAAmB3B,EAAe8B,EAAepC,EAE5CgC,GAAoBC,EAMrBG,EAAc,GALdI,EAAqB,GAAiBxC,EAAgBrJ,EAAKD,QAAQuB,IAAID,SACvEsK,EAAiBF,EAAerB,KAAK6B,MAAMJ,IAAuBxC,EAAgBrJ,EAAKD,QAAQuB,IAAID,SACnGkK,EAAc1B,EAAeO,KAAK6B,MAAMJ,IAAwBF,GAAmBtC,EAAgB,EAAM,EAAI,GAC7GrJ,EAAK0D,SAASX,GAAIiC,QAAUoF,KAAK8B,IAAIX,EA5kB/C,KAklBc,QAARlG,IACAqG,EAAcxE,EAAEiE,EAAEF,SAAWvB,EAC7B2B,EAAmBS,EAAWtB,OAASxL,OAAOmN,QAAUjF,EAAEiE,EAAEF,SAAYjL,EAAKD,QAAQuB,IAAIC,MACzF+J,EAAmB1B,EAAgB8B,GAAgBpC,IAEzB+B,GAAoBvJ,EAM1C4J,EAAc,GALdE,EAAkB,GAAiBtC,EAAiBtJ,EAAKD,QAAQuB,IAAIC,MACrEoK,EAAiBD,EAAetB,KAAK6B,MAAML,IAAoBtC,EAAiBtJ,EAAKD,QAAQuB,IAAIC,MACjGiK,EAAW1B,EAAeM,KAAK6B,MAAML,IAAqBD,GAAmBrC,EAAiB,EAAM,EAAI,GACxGtJ,EAAK0D,SAASX,GAAIkC,QAAUmF,KAAK8B,IAAIV,EA3lB/C,KAimBExL,EAAKyG,cAAc8E,EAAaC,GAChCxL,EAAKuF,sBAAsBgE,EAA0B,QAARnE,EAAwB,QAARC,GACzDqG,GACAnC,EAAiB3E,IAAI,SAAUgF,EAAgB8B,GAE/CD,GACAlC,EAAiB3E,IAAI,QAAS+E,EAAe8B,EAErD,EACAW,UAAW,WACPpM,EAAKsF,aAAc,EACnBtF,EAAK0E,yBAAyB6E,EAAkBvJ,EAAK0D,SAASX,IAC9D/C,EAAK0G,sBAAsB6C,GAC3BvJ,EAAKwG,oBACLxG,EAAKsI,QAAQ/I,EAAQ,CACjByD,UAAWuG,GAEnB,IAGZ,EAEAuB,wBAAyB,WACrB,IAAI9K,EAAOnB,KACPmE,EAAYhD,EAAKF,QAAQyD,WAAW8I,QACpCrH,EAAUhF,EAAK0D,SAASV,EAAUrC,KAAK,OAAOqE,QAGlD,OAFiBhC,EAAU6D,cAEL7B,EAAU,GAAMhF,EAAKD,QAAQuB,IAAW,SAAK0D,CACvE,EAEA+F,uBAAwB,SAAS1B,GAC7B,IACIhI,EADOxC,KACQkB,QAAQsB,QACvBiL,EAFOzN,KAEUkB,QAAQuB,IAAID,QAEjC,OAAOA,GAAWgI,EAAgBiD,GAAaA,CACnD,EAEAC,gBAAiB,SAASxH,GACtBlG,KAAK2N,SAAW1N,EAAE,eAAiBa,EAAWc,OAAOgM,YAAc,YAC9D7H,IAAI,CACDH,MAASM,EAASN,MAClB,kBAAmBM,EAAS2H,UAC5B,eAAgB3H,EAAS4H,SAE5BhM,KAAK5B,EAAM4B,KAAK,SAAUoE,EAASN,OACnC9D,KAAK,YAAaoE,EAAS6H,UACpC,EAEAC,gBAAiB,SAAS7J,EAAW4J,GAChB,SAAbA,EACA/N,KAAK2N,SAASjG,YAAYvD,GAE1BnE,KAAK2N,SAASM,aAAa9J,EAEnC,EAEA+J,gBAAiB,WACTlO,KAAK2N,WACL3N,KAAK2N,SAAShK,SACd3D,KAAK2N,SAAW,KAExB,EAEAvL,aAAc,WACV,GAAKpC,KAAKkB,QAAQ2B,YAAlB,CAIA,IAEIsL,EAFAhN,EAAOnB,KACPiB,EAAUE,EAAKF,QAEfmN,EAAe5N,EAASM,EAAWc,OAAO2B,MAC1C8K,EAAiB7N,EAASM,EAAWc,OAAOwD,YAC5CkJ,EAAQpO,EAAM6E,OAElB/E,KAAKoD,mBAAqB,IAAI9C,EAAUN,KAAKiB,QAAS,CAClDsN,OAAQF,EAAiB,+BACzBG,YAAY,EACZC,OAAQ,SACRH,MAAOA,EACPI,gBAA4D,IAA5C1O,KAAKkB,QAAQ2B,YAAY6L,eACzClH,KAAM,SAASc,GACX,IAAI/E,EAAO+E,EAAOqG,QAAQP,GACtBlL,EAAQK,EAAKL,QACbD,EAASM,EAAKN,SACd2L,EAAQrL,EAAKqL,QAIjB,OAHAA,EAAMvL,KAAKgL,GACNhH,YAAYxG,GACZc,SA5rBA,qBA6rBEiN,EAAM1L,MAAMA,GAAOD,OAAOA,EACrC,EACA4L,UAAW,SAASxG,GAChB8F,EAAkBlO,EAAEoI,EAAE2D,eAAe2C,QAAQP,GAC7CU,SAASxK,KAAK4I,MAAM6B,OAAS,MACjC,EACAC,KAAM,SAAS3G,GACX,IAEI4G,EACAC,EAGAnB,EAGArE,EATAyF,EAAqBjP,EAAMiP,mBAAmB9G,GAC9Cb,EAAOa,EAAE+G,OAAO5H,KAOhB6H,EAAclO,EAAKiC,mBAAmB4I,cAAc2C,QAAQP,GAGhE,GAAIkB,EAAkB9H,EAAK,GAAI2H,GAAqB,CAKhD,GAJA3H,EAAK+H,OAELJ,EAAqBjP,EAAMiP,mBAAmB9G,IAEzCiH,EAAkBnB,EAAgB,GAAIgB,GAAqB,CAE5D,GAAIhO,EAAKwM,UAAYxM,EAAKwM,SAAS,IAAMwB,EAAmB,GAExD,YADA3H,EAAKF,OAOT,IAFA2H,GADAA,EAAgBhP,EAAEkP,IACYK,SAAS1O,EAAWc,OAAO2B,MAAQ0L,EAAgBA,EAAcN,QAAQP,IAErFoB,SAAS1O,EAAWc,OAAO2B,MAOzC,GANA2L,EAAsBD,EAAc,GAAG3D,wBAGvCyC,EAFqB1F,EAAEqD,QAAUwD,EAAoBhI,KAC/BgI,EAAoBzD,MAAQpD,EAAEqD,QACG,QAAU,OACjEhC,EAAWuF,EAAclJ,IAAI,SAEzB5E,EAAKwM,UAAYxM,EAAKwM,SAAS7L,KAAK,eAAiBiM,EAAW,CAChE,IAAIa,EAAQzN,EAAKwM,SAASiB,QAC1BA,EAAM7I,IAAI,QAAS2D,GACnBvI,EAAKwM,SAAShK,SACdxC,EAAKwM,SAAWiB,EAEhBzN,EAAK6M,gBAAgBiB,EAAelB,GAEpC5M,EAAKwM,SACA7L,KAAK,YAAaiM,GAClBjM,KAAK5B,EAAM4B,KAAK,SAAU4H,EACnC,MAAO,IAAKvI,EAAKwM,SAAU,EAEY,SAAbI,EAAuBkB,EAAcQ,OAASR,EAAcS,QAE9D,IAAMvB,EAAgB,KACtChN,EAAKuM,gBAAgB,CAAE9H,MAAO8D,EAAUmE,UAAWwB,EAAYtJ,IAAI,mBAAoB+H,OAAQuB,EAAYtJ,IAAI,gBAAiBgI,UAAWA,IAC3II,EAAgBoB,OAChBpO,EAAK6M,gBAAgBiB,EAAelB,GAE5C,CAER,CACAvG,EAAKF,MACT,CACJ,EACAqI,QAAS,SAAStH,GAGd,GAFAyG,SAASxK,KAAK4I,MAAM6B,OAAS,QAExB5N,EAAKwM,SAGN,OAFAtF,EAAE+G,OAAO5H,KAAK7D,cACdxC,EAAK+M,kBAIT,IAMInC,EACA6D,EACArM,EACAwK,EATArE,EAAWJ,SAASnI,EAAKwM,SAAS5H,IAAI,SAAU,IAChD5B,EAAYkE,EAAE2D,cAAc2C,QAAQP,GACpCnK,EAAQ9C,EAAKF,QAAQoC,KAAK+K,GAC1BzE,EAAWL,SAASnF,EAAU4B,IAAI,SAAU,IAC5C8J,EAAS1L,EAAUrC,KAAK,MACxBa,EAAaxB,EAAKF,QAAQyD,SAAS,YAQvCgF,GAFA/G,EAAaxB,EAAK6I,gBAAgBrH,IAEZgD,MAAMxE,EAAKwM,SAAS,IAC1CiC,EAAMrE,KAAK8B,IAAI3D,EAAUC,GACzBoC,EAAQR,KAAKuE,IAAIpG,EAAUC,GAE3BxI,EAAK0D,SAASgL,GAAQjK,MAAQ8D,EAIb,SAFjBqE,EAAYrE,EAAWC,EAAW,QAAU,QAGxCiG,IAEA7D,IAGJ,IAAK,IAAIjH,EAAIiH,EAAOjH,GAAK8K,EAAK9K,IAC1BvB,EAAOU,EAAMsK,OAAO,IAAMrO,EAAM4B,KAAK,SAAW,KAAOgD,EAAI,MAC3D3D,EAAK0D,SAAStB,EAAKzB,KAAK,OAAO8D,OAAsB,QAAbmI,EAAsB,GAAK,EAGvE5J,EAAUmD,OAEVnG,EAAKkF,oBAELgC,EAAE+G,OAAO5H,KAAK7D,SACdxC,EAAK+M,kBAED/M,EAAKD,QAAQ4B,aACb3B,EAAK0I,aAGT1I,EAAKsI,QAAQ9I,EAAS,CAClBmJ,SAAUJ,EACVK,SAAUJ,EACVxF,UAAWA,GAEnB,EACA4L,WAAY,WACRjB,SAASxK,KAAK4I,MAAM6B,OAAS,OAE7B5N,EAAK+M,kBAEDC,GACAA,EAAgB7G,MAExB,IAGJrG,EAAQoC,KAAK+K,GAAc4B,gBAAgB,CACvC1B,MAAOA,EACP2B,UAAW,SAAS5H,GAChB,IAAIlH,EAAKsF,YAAT,CAGA,IAEIyJ,EAIAnC,EANAkB,EAAgBhP,EAAEoI,EAAE8H,YACpB7H,EAASnH,EAAKiC,mBAAmB4I,cAAc2C,QAAQP,GAO3D,GAAID,EAAgB,IAAMc,EAAc,GAAI,CAUxC,GARAiB,EAA0BjB,EAAc,GAAG3D,yBAKZ,UAF/ByC,EAFqB1F,EAAEqD,QAAUwE,EAAwBhJ,KACnCgJ,EAAwBzE,MAAQpD,EAAEqD,QACD,QAAU,QAExBuD,EAAcQ,OAASR,EAAcS,QAG1D,IAAMvB,EAAgB,GACtC,OAGJhN,EAAK+M,kBAELC,EAAgBoB,OAEhBpO,EAAKuM,gBAAgB,CAAE9H,MAAOqJ,EAAclJ,IAAI,SAAU8H,UAAWvF,EAAOvC,IAAI,mBAAoB+H,OAAQxF,EAAOvC,IAAI,gBAAiBgI,UAAWA,IAEnJI,EAAgBoB,OAChBpO,EAAK6M,gBAAgBiB,EAAelB,EACxC,CA/BA,CAgCJ,GAnMJ,CAqMJ,IAGJ,SAASuB,EAAkBc,EAAQC,GAC/B,IACI,OAAOpQ,EAAEqQ,SAASF,EAAQC,IAAUD,GAAUC,CAClD,CAAE,MAAOhI,GACL,OAAO,CACX,CACJ,CAEAjI,EAAGmQ,OAAOzP,GAEVb,EAAEc,QAAO,EAAMD,EAAY,CAAEc,OAp3BN,CACnBC,QAAS,8BACT0B,KAAM,2BACN6B,WAAY,yCACZC,gBAAiB,eACjBG,SAAU,qCACVoI,YAAa,gDACbnG,WAAY,iDA82BnB,CAx4BD,CAw4BGtH,OAAOD,MAAMsQ,QACNtQ,KAIjB","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.draganddrop.js'), require('kendo.resizable.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.draganddrop', 'kendo.resizable'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendotilelayout = global.kendotilelayout || {}, global.kendotilelayout.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"tilelayout\",\n name: \"TileLayout\",\n category: \"web\",\n depends: [\"core\"],\n features: [\n {\n id: \"tilelayout-resizable\",\n name: \"Resizable\",\n description: \"Support for resizing\",\n depends: [\"resizable\"]\n },\n {\n id: \"tilelayout-reorderable\",\n name: \"Reorderable\",\n description: \"Support for reordering\",\n depends: [\"draganddrop\"]\n }\n ]\n };\n\n (function($) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n Draggable = ui.Draggable,\n keys = kendo.keys,\n selector = kendo.selectorFromClasses,\n RESIZE = \"resize\",\n REORDER = \"reorder\",\n NS = \".kendoTileLayout\",\n DOWNCURSOR = \"k-cursor-ns-resize\",\n RIGHTCURSOR = \"k-cursor-ew-resize\",\n DIAGONALCURSOR = \"k-cursor-nwse-resize\",\n RTLDIAGONALCURSOR = \"k-cursor-nesw-resize\",\n GRABCURSOR = \"k-cursor-move\",\n GRABBINGCURSOR = \"k-cursor-grabbing\",\n MINIMALSPAN = 1,\n CURSORCLASSES = \"k-cursor-nesw-resize k-cursor-nwse-resize k-cursor-ew-resize k-cursor-ns-resize\";\n\n var tileLayoutStyles = {\n wrapper: \"k-tilelayout k-pos-relative\",\n item: \"k-tilelayout-item k-card\",\n itemHeader: \"k-tilelayout-item-header k-card-header\",\n itemHeaderTitle: \"k-card-title\",\n itemBody: \"k-tilelayout-item-body k-card-body\",\n reorderHint: \"k-layout-item-hint k-layout-item-hint-reorder\",\n resizeHint: \"k-layout-item-hint k-layout-item-hint-resize\"\n };\n\n var TileLayout = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n $.cssNumber.gridColumnStart = true;\n $.cssNumber.gridColumnEnd = true;\n $.cssNumber.gridRowStart = true;\n $.cssNumber.gridRowEnd = true;\n\n that.element = $(element)\n .addClass(TileLayout.styles.wrapper)\n .attr({\n role: \"list\"\n });\n\n that._setWrapperStyles();\n that._initContainers();\n that._resizable();\n that._navigatable();\n that._reorderable();\n\n if (that._showWatermarkOverlay) {\n that._showWatermarkOverlay(that.element[0]);\n }\n },\n\n events: [\n RESIZE,\n REORDER\n ],\n\n options: {\n name: \"TileLayout\",\n columns: null,\n gap: {\n columns: 16,\n rows: 16\n },\n containers: [],\n resizable: false,\n reorderable: false,\n navigatable: false,\n columnsWidth: \"1fr\",\n rowsHeight: \"1fr\",\n height: \"\",\n width: \"\"\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n if (this._draggableInstance) {\n\n this.element.find(\".k-tilelayout-item\").each(function() {\n var item = $(this);\n if (item.data(\"kendoDropTarget\")) {\n item.data(\"kendoDropTarget\").destroy();\n }\n });\n\n this._draggableInstance.destroy();\n this._draggableInstance = null;\n }\n\n if (this.resizable) {\n this.resizable.destroy();\n this.resizable = null;\n }\n\n if (this.resizeHandle) {\n this.resizeHandle.off(NS).remove();\n this.resizeHandle = null;\n }\n\n this.element.off(NS);\n },\n\n setOptions: function(options) {\n this.destroy();\n kendo.deepExtend(this.options, options);\n this.element.empty();\n this.init(this.element, this.options);\n },\n\n getOptions: function() {\n var result = $.extend(true, {}, this.options);\n result.containers = kendo.deepExtend([], this.items);\n\n return result;\n },\n\n _initContainers: function() {\n var that = this;\n var containers = that.options.containers;\n var containerElements = that.element.children();\n var hasElements = !!containerElements.length;\n var id;\n var container;\n var header;\n var headerSettings;\n var body;\n var containerSettings;\n var headerContent;\n\n that.items = [];\n that.itemsMap = {};\n\n if (hasElements) {\n containerElements.each(function(i, element) {\n id = kendo.guid();\n var current = $(element)\n .addClass(TileLayout.styles.item)\n .attr({\n id: id,\n role: \"listitem\",\n \"aria-keyshortcuts\": \"Enter\"\n });\n\n that._addContainer(current, containers[i], i, id);\n });\n } else {\n for (var i = 0; i < containers.length; i++) {\n id = kendo.guid();\n containerSettings = containers[i];\n container = $(\"
\")\n .addClass(TileLayout.styles.item)\n .attr({\n id: id,\n role: \"listitem\",\n \"aria-keyshortcuts\": \"Enter\"\n });\n\n headerSettings = containerSettings.header;\n if (headerSettings && (headerSettings.template || headerSettings.text)) {\n header = $(\"
\").addClass(TileLayout.styles.itemHeader);\n if (that.options.reorderable) {\n header.addClass(GRABCURSOR);\n }\n\n headerContent = headerSettings.text ? \"
\" + headerSettings.text + \"
\" : null;\n header.append(headerContent || kendo.template(headerSettings.template)({}));\n header.appendTo(container);\n }\n body = $(\"
\").addClass(TileLayout.styles.itemBody);\n if (!containerSettings.bodyTemplate) {\n throw new Error(\"Having a bodyTemplate for the container is mandatory\");\n }\n body.append(kendo.template(containerSettings.bodyTemplate)({}));\n body.appendTo(container);\n container.appendTo(that.element);\n\n that._addContainer(container, containerSettings, i, id);\n }\n }\n },\n\n _addContainer: function(element, item, index, id) {\n var that = this;\n item.order = typeof item.order == 'number' ? item.order : index;\n element.attr(kendo.attr(\"index\"), item.order);\n item.id = id;\n that._setContainerCoordinates(element, item);\n that.itemsMap[id] = item;\n that.items.push(that.itemsMap[id]);\n },\n\n _setWrapperStyles: function() {\n var that = this;\n var options = that.options;\n that.element.css({\n \"grid-template-columns\": kendo.format(\"repeat({0}, minmax(0, {1}))\", options.columns, typeof options.columnsWidth === \"string\" ? options.columnsWidth : options.columnsWidth + \"px\"),\n \"grid-auto-rows\": kendo.format(\"minmax(0, {0})\", typeof options.rowsHeight === \"string\" ? options.rowsHeight : options.rowsHeight + \"px\"),\n \"column-gap\": options.gap.columns,\n \"width\": typeof options.width === \"string\" ? options.width : options.width + \"px\",\n \"height\": typeof options.height === \"string\" ? options.height : options.height + \"px\",\n \"padding\": options.gap.rows + \"px \" + options.gap.columns + \"px \",\n \"row-gap\": options.gap.rows\n });\n },\n\n _setContainerCoordinates: function(element, settings) {\n if (!settings) {\n return;\n }\n element.css({\n \"order\": settings.order,\n \"grid-column-end\": kendo.format(\"span {0}\", settings.colSpan),\n \"grid-row-end\": kendo.format(\"span {0}\", settings.rowSpan)\n })\n .attr(kendo.attr(\"index\"), settings.order);\n },\n\n _updateContainers: function() {\n var that = this;\n\n for (var i = 0; i < that.items.length; i++) {\n that._setContainerCoordinates(that.element.find(\"#\" + that.items[i].id), that.items[i]);\n }\n },\n\n _createResizeHandle: function(container, side, down) {\n var that = this;\n\n if (that._isresizing) {\n return;\n }\n\n if (that.resizeHandle && that.resizeHandle.data(\"div\")[0] !== container[0]) {\n that.resizeHandle.off(NS).remove();\n that.resizeHandle = null;\n }\n\n if (!that.resizeHandle) {\n that.resizeHandle = $(\n '
'\n );\n that.resizeHandle.appendTo(container);\n }\n\n that._positionResizeHandle(container, side, down);\n },\n\n _positionResizeHandle: function(container, side, down) {\n var that = this;\n var leftBorderWidth = parseFloat(container.css(\"borderRightWidth\"));\n var bottomBorderWidth = parseFloat(container.css(\"borderBottomWidth\"));\n var containerHeight = container.height();\n var containerWidth = container.width();\n var top = down ? containerHeight - 6.5 - bottomBorderWidth : 0;\n var left = side ? containerWidth - 4.5 - leftBorderWidth : 0;\n var width = 9;\n var height = 9;\n var cursorClass;\n\n if (side && down) {\n height = width = 25;\n top -= 12.5;\n left -= 12.5;\n cursorClass = kendo.support.isRtl(that.element) ? RTLDIAGONALCURSOR : DIAGONALCURSOR;\n } else if (side && !down) {\n height = containerHeight;\n cursorClass = RIGHTCURSOR;\n } else if (!side && down) {\n width = containerWidth;\n cursorClass = DOWNCURSOR;\n }\n\n that.resizeHandle\n .css({\n top: top,\n left: left,\n height: height,\n width: width\n })\n .attr(\"side\", side)\n .attr(\"down\", down)\n .removeClass(CURSORCLASSES)\n .addClass(cursorClass)\n .data(\"div\", container)\n .show();\n },\n\n _createResizeHint: function(container) {\n var that = this;\n\n if (that.hint) {\n return;\n }\n\n var colSpan = container.css(\"grid-column-end\");\n var rowSpan = container.css(\"grid-row-end\");\n var order = container.css(\"order\");\n\n that.hint = $(\"
\")\n .css({\n \"order\": order,\n \"grid-column-end\": colSpan,\n \"grid-row-end\": rowSpan\n })\n .insertAfter(container);\n },\n\n _removeResizeHint: function() {\n if (this._isresizing) {\n return;\n }\n\n if (this.hint) {\n this.hint.remove();\n this.hint = null;\n }\n },\n\n _positionHint: function(colSpan, rowSpan) {\n var that = this;\n\n if (colSpan) {\n that.hint.css(\"grid-column-end\", kendo.format(\"span {0}\", colSpan));\n }\n\n if (rowSpan) {\n that.hint.css(\"grid-row-end\", kendo.format(\"span {0}\", rowSpan));\n }\n },\n\n _removeAbsoluteStyles: function(container) {\n container.css(\"position\", \"\");\n container.css(\"left\", \"\");\n container.css(\"top\", \"\");\n container.css(\"width\", \"\");\n container.css(\"height\", \"\");\n container.css(\"z-index\", \"\");\n },\n\n _positionAbsolutely: function(container) {\n if (container.css(\"position\") == \"absolute\") {\n return;\n }\n var position = container.position();\n var width = container.outerWidth();\n var height = container.outerHeight();\n\n container.css(\"position\", \"absolute\");\n container.css(\"left\", position.left);\n container.css(\"top\", position.top);\n container.css(\"width\", width);\n container.css(\"height\", height);\n container.css(\"z-index\", 2);\n },\n\n _navigatable: function() {\n\n if (!this.options.navigatable) {\n return;\n }\n\n var that = this;\n\n that.element.children().attr(\"tabindex\", 0);\n that.element.on(\"keydown\" + NS, that, that._keyDown.bind(that));\n },\n\n _keyDown: function(e) {\n var target = $(e.target);\n var canHandle = false;\n\n if (!target.is(\".k-tilelayout-item.k-card\")) {\n return;\n }\n\n\n if (e.ctrlKey && e.keyCode == keys.LEFT) {\n canHandle = true;\n this._resizeItem(target, \"horizontal\", -1);\n }\n\n if (e.ctrlKey && e.keyCode == keys.RIGHT) {\n canHandle = true;\n this._resizeItem(target, \"horizontal\", 1);\n }\n\n if (e.ctrlKey && e.keyCode == keys.UP) {\n canHandle = true;\n this._resizeItem(target, \"vertical\", -1);\n }\n\n if (e.ctrlKey && e.keyCode == keys.DOWN) {\n canHandle = true;\n this._resizeItem(target, \"vertical\", 1);\n }\n\n if (e.shiftKey && e.keyCode == keys.LEFT) {\n canHandle = true;\n this._reorderItem(target, -1);\n }\n\n if (e.shiftKey && e.keyCode == keys.RIGHT) {\n canHandle = true;\n this._reorderItem(target, 1);\n }\n\n if (canHandle) {\n e.preventDefault();\n }\n },\n\n _resizeItem: function(item, dir, delta) {\n var that = this;\n var id = item.attr(\"id\");\n var newSpan;\n var maxSpan;\n\n if (!that.options.resizable) {\n return;\n }\n\n if (dir === \"horizontal\") {\n newSpan = parseInt(item.css(\"grid-column-end\").replace('span', ''), 10) + delta;\n maxSpan = that.element.css(\"grid-template-columns\").split(\" \").length;\n\n if (maxSpan >= newSpan && newSpan > 0) {\n that.itemsMap[id].colSpan = newSpan;\n item.css({\n \"grid-column-end\": kendo.format(\"span {0}\", newSpan)\n });\n that.trigger(RESIZE, {\n container: item\n });\n }\n } else {\n newSpan = parseInt(item.css(\"grid-row-end\").replace('span', ''), 10) + delta;\n maxSpan = that.element.css(\"grid-template-rows\").split(\" \").length;\n\n if (maxSpan >= newSpan && newSpan > 0) {\n that.itemsMap[id].rowSpan = newSpan;\n item.css({\n \"grid-row-end\": kendo.format(\"span {0}\", newSpan)\n });\n that.trigger(RESIZE, {\n container: item\n });\n }\n }\n },\n\n _reorderItem: function(item, newOrder) {\n if (!this.options.reorderable) {\n return;\n }\n\n var oldOrder = parseInt(item.css(\"order\"), 10);\n var maxOrder = this.element.children().length;\n newOrder = oldOrder + newOrder;\n\n if (newOrder >= 0 && newOrder < maxOrder) {\n var target = this.element.find(\"> [\" + kendo.attr(\"index\") + \"='\" + newOrder + \"']\");\n\n this.itemsMap[item.attr(\"id\")].order = newOrder;\n this.itemsMap[target.attr(\"id\")].order = oldOrder;\n\n this._updateContainers();\n this._updateDOM();\n item.trigger(\"focus\");// need to restore focus after DOM gets reordered\n\n this.trigger(REORDER, {\n newIndex: newOrder,\n oldIndex: oldOrder,\n container: item\n });\n }\n },\n\n _sortContainers: function(containers) {\n var indexAttr = kendo.attr(\"index\");\n\n return containers.sort(function(a, b) {\n a = $(a);\n b = $(b);\n\n var indexA = a.attr(indexAttr);\n var indexB = b.attr(indexAttr);\n\n if (indexA === undefined) {\n indexA = $(a).index();\n }\n if (indexB === undefined) {\n indexB = $(b).index();\n }\n\n indexA = parseInt(indexA, 10);\n indexB = parseInt(indexB, 10);\n return indexA > indexB ? 1 : (indexA < indexB ? -1 : 0);\n });\n },\n _updateDOM: function() {\n var that = this;\n var containers = that.element.children(\":visible\");\n\n containers = that._sortContainers(containers);\n\n containers.each(function() {\n $(this).appendTo(that.element);\n });\n },\n\n _resizable: function() {\n var that = this;\n var side;\n var down;\n var id;\n var fractionWidth;\n var fractionHeight;\n var currentContainer;\n var lastXLocation = 0;\n var lastYLocation = 0;\n var initialWidth = 0;\n var initialHeight = 0;\n var startColSpan = 0;\n var startRowSpan = 0;\n var itemsMaxSpace = 0;\n var rowsCount;\n\n if (that.options.resizable) {\n that.element.on(\"mousemove\" + NS, selector(TileLayout.styles.item), function(e) {\n var rightPosition;\n var downPosition;\n var container = $(this);\n var rectPosition = container[0].getBoundingClientRect();\n\n rightPosition = Math.abs(rectPosition.right - e.clientX) < 16;\n downPosition = Math.abs(rectPosition.bottom - e.clientY) < 16;\n\n if (rightPosition && downPosition) {\n that._createResizeHandle(container, true, true);\n } else if (rightPosition) {\n that._createResizeHandle(container, true, false);\n } else if (downPosition) {\n that._createResizeHandle(container, false, true);\n }\n });\n\n that.resizable = new ui.Resizable(that.element, {\n handle: \"div.k-tilelayout-item > .k-resize-handle\",\n start: function(e) {\n var resizeHandle = $(e.currentTarget);\n currentContainer = resizeHandle.data(\"div\");\n id = currentContainer.attr(\"id\");\n side = resizeHandle.attr(\"side\");\n down = resizeHandle.attr(\"down\");\n rowsCount = that.element.css(\"grid-template-rows\").split(\" \").length;\n\n if (side) {\n fractionWidth = that._calculateFractionWidth();\n itemsMaxSpace = that._calculateRightEndSide(fractionWidth);\n lastXLocation = e.x.location;\n initialWidth = currentContainer.width();\n startColSpan = parseInt(currentContainer.css(\"grid-column-end\").replace('span', ''), 10);\n }\n\n if (down) {\n fractionHeight = (that.element[0].scrollHeight - (rowsCount + 1) * that.options.gap.rows) / rowsCount;\n lastYLocation = e.y.location;\n initialHeight = currentContainer.height();\n startRowSpan = parseInt(currentContainer.css(\"grid-row-end\").replace('span', ''), 10);\n }\n\n that._isresizing = true;\n },\n resize: function(e) {\n var hintColumns = 0;\n var hintRows = 0;\n var mouseDeltaX = 0;\n var mouseDeltaY = 0;\n var overflowsLayout;\n var isBeyondMinimum;\n var deltaFromStart = 0;\n var resizeRowsCount = 0;\n var resizeColumnsCount = 0;\n var clientRect = that.element[0].getBoundingClientRect();\n var height = that.element[0].style.height ? true : false;\n\n that._positionAbsolutely(currentContainer);\n that._createResizeHint(currentContainer);\n\n if (side == \"true\") {\n mouseDeltaX = e.x.location - lastXLocation;\n overflowsLayout = (clientRect.left + itemsMaxSpace - window.scrollX - e.x.location) < that.options.gap.columns;\n isBeyondMinimum = (initialWidth + mouseDeltaX) < fractionWidth;\n\n if (!overflowsLayout && !isBeyondMinimum) {\n resizeColumnsCount = (mouseDeltaX) / (fractionWidth + that.options.gap.columns);\n deltaFromStart = mouseDeltaX - (Math.floor(resizeColumnsCount) * (fractionWidth + that.options.gap.columns));\n hintColumns = startColSpan + Math.floor(resizeColumnsCount) + ((deltaFromStart >= (fractionWidth / 2)) ? 1 : 0);\n that.itemsMap[id].colSpan = Math.max(hintColumns, MINIMALSPAN);\n } else {\n mouseDeltaX = 0;\n }\n }\n\n if (down == \"true\") {\n mouseDeltaY = e.y.location - lastYLocation;\n overflowsLayout = (clientRect.bottom + window.scrollY - e.y.location) < that.options.gap.rows;\n isBeyondMinimum = (initialHeight + mouseDeltaY) <= fractionHeight;\n\n if (!isBeyondMinimum && (!overflowsLayout || !height)) {\n resizeRowsCount = (mouseDeltaY) / (fractionHeight + that.options.gap.rows);\n deltaFromStart = mouseDeltaY - (Math.floor(resizeRowsCount) * (fractionHeight + that.options.gap.rows));\n hintRows = startRowSpan + Math.floor(resizeRowsCount) + ((deltaFromStart >= (fractionHeight / 2)) ? 1 : 0);\n that.itemsMap[id].rowSpan = Math.max(hintRows, MINIMALSPAN);\n } else {\n mouseDeltaY = 0;\n }\n }\n\n that._positionHint(hintColumns, hintRows);\n that._positionResizeHandle(currentContainer, side == \"true\", down == \"true\");\n if (mouseDeltaY) {\n currentContainer.css(\"height\", initialHeight + mouseDeltaY);\n }\n if (mouseDeltaX) {\n currentContainer.css(\"width\", initialWidth + mouseDeltaX);\n }\n },\n resizeend: function() {\n that._isresizing = false;\n that._setContainerCoordinates(currentContainer, that.itemsMap[id]);\n that._removeAbsoluteStyles(currentContainer);\n that._removeResizeHint();\n that.trigger(RESIZE, {\n container: currentContainer\n });\n }\n });\n }\n },\n\n _calculateFractionWidth: function() {\n var that = this;\n var container = that.element.children().first();\n var colSpan = that.itemsMap[container.attr(\"id\")].colSpan;\n var totalWidth = container.outerWidth();\n\n return (totalWidth - (colSpan - 1) * (that.options.gap.columns)) / colSpan;\n },\n\n _calculateRightEndSide: function(fractionWidth) {\n var that = this;\n var columns = that.options.columns;\n var columnGap = that.options.gap.columns;\n\n return columns * (fractionWidth + columnGap) + columnGap;\n },\n\n _createDropHint: function(settings) {\n this.dropHint = $(\"
\")\n .css({\n \"order\": settings.order,\n \"grid-column-end\": settings.columnEnd,\n \"grid-row-end\": settings.rowEnd\n })\n .attr(kendo.attr(\"index\"), settings.order)\n .attr(\"direction\", settings.direction);\n },\n\n _insertDropHint: function(container, direction) {\n if (direction == \"right\") {\n this.dropHint.insertAfter(container);\n } else {\n this.dropHint.insertBefore(container);\n }\n },\n\n _removeDropHint: function() {\n if (this.dropHint) {\n this.dropHint.remove();\n this.dropHint = null;\n }\n },\n\n _reorderable: function() {\n if (!this.options.reorderable) {\n return;\n }\n\n var that = this;\n var element = that.element;\n var originalElement;\n var itemSelector = selector(TileLayout.styles.item);\n var headerSelector = selector(TileLayout.styles.itemHeader);\n var group = kendo.guid();\n\n this._draggableInstance = new Draggable(this.element, {\n filter: headerSelector + \",.k-layout-item-hint-reorder\",\n autoScroll: true,\n ignore: \":input\",\n group: group,\n clickMoveClick: this.options.reorderable.clickMoveClick === false ? false : true,\n hint: function(target) {\n var item = target.closest(itemSelector);\n var width = item.width();\n var height = item.height();\n var clone = item.clone();\n clone.find(headerSelector)\n .removeClass(GRABCURSOR)\n .addClass(GRABBINGCURSOR);\n return clone.width(width).height(height);\n },\n dragstart: function(e) {\n originalElement = $(e.currentTarget).closest(itemSelector);\n document.body.style.cursor = \"move\";\n },\n drag: function(e) {\n var elementUnderCursor = kendo.elementUnderCursor(e);\n var hint = e.sender.hint;\n var dropContainer;\n var containerBoundaries;\n var pixelsToLeftBorder;\n var pixelsToRightBorder;\n var direction;\n\n var draggedItem = that._draggableInstance.currentTarget.closest(itemSelector);\n var newOrder;\n\n if (containsOrEqualTo(hint[0], elementUnderCursor)) {\n hint.hide();\n\n elementUnderCursor = kendo.elementUnderCursor(e);\n\n if (!containsOrEqualTo(originalElement[0], elementUnderCursor)) {\n\n if (that.dropHint && that.dropHint[0] == elementUnderCursor[0]) {\n hint.show();\n return;\n }\n\n dropContainer = $(elementUnderCursor);\n dropContainer = dropContainer.hasClass(TileLayout.styles.item) ? dropContainer : dropContainer.closest(itemSelector);\n\n if (dropContainer.hasClass(TileLayout.styles.item)) {\n containerBoundaries = dropContainer[0].getBoundingClientRect();\n pixelsToLeftBorder = e.clientX - containerBoundaries.left;\n pixelsToRightBorder = containerBoundaries.right - e.clientX;\n direction = pixelsToLeftBorder > pixelsToRightBorder ? \"right\" : \"left\";\n newOrder = dropContainer.css(\"order\");\n\n if (that.dropHint && that.dropHint.attr(\"direction\") !== direction) {\n var clone = that.dropHint.clone();\n clone.css(\"order\", newOrder);\n that.dropHint.remove();\n that.dropHint = clone;\n\n that._insertDropHint(dropContainer, direction);\n\n that.dropHint\n .attr(\"direction\", direction)\n .attr(kendo.attr(\"index\"), newOrder);\n } else if (!that.dropHint) {\n\n var futureContainer = direction == \"right\" ? dropContainer.next() : dropContainer.prev();\n\n if (futureContainer[0] != originalElement[0]) {\n that._createDropHint({ order: newOrder, columnEnd: draggedItem.css(\"grid-column-end\"), rowEnd: draggedItem.css(\"grid-row-end\"), direction: direction });\n originalElement.hide();\n that._insertDropHint(dropContainer, direction);\n }\n }\n }\n }\n hint.show();\n }\n },\n dragend: function(e) {\n document.body.style.cursor = \"auto\";\n\n if (!that.dropHint) {\n e.sender.hint.remove();\n that._removeDropHint();\n return;\n }\n\n var newOrder = parseInt(that.dropHint.css(\"order\"), 10);\n var container = e.currentTarget.closest(itemSelector);\n var items = that.element.find(itemSelector);\n var oldOrder = parseInt(container.css(\"order\"), 10);\n var itemId = container.attr(\"id\");\n var containers = that.element.children(\":visible\");\n var start;\n var end;\n var item;\n var direction;\n\n containers = that._sortContainers(containers);\n\n newOrder = containers.index(that.dropHint[0]);\n end = Math.max(newOrder, oldOrder);\n start = Math.min(newOrder, oldOrder);\n\n that.itemsMap[itemId].order = newOrder;\n\n direction = newOrder > oldOrder ? \"right\" : \"left\"; //this is direction of movement\n\n if (direction == \"left\") {\n end--;\n } else {\n start++;\n }\n\n for (var i = start; i <= end; i++) {\n item = items.filter(\"[\" + kendo.attr(\"index\") + \"='\" + i + \"']\");\n that.itemsMap[item.attr(\"id\")].order += direction == \"left\" ? 1 : -1;\n }\n\n container.show();\n\n that._updateContainers();\n\n e.sender.hint.remove();\n that._removeDropHint();\n\n if (that.options.navigatable) {\n that._updateDOM();\n }\n\n that.trigger(REORDER, {\n newIndex: newOrder,\n oldIndex: oldOrder,\n container: container\n });\n },\n dragcancel: function() {\n document.body.style.cursor = \"auto\";\n\n that._removeDropHint();\n\n if (originalElement) {\n originalElement.show();\n }\n }\n });\n\n element.find(itemSelector).kendoDropTarget({\n group: group,\n dragenter: function(e) {\n if (that._isresizing) {\n return;\n }\n var dropContainer = $(e.dropTarget);\n var target = that._draggableInstance.currentTarget.closest(itemSelector);\n var dropContainerBoundaries;\n var pixelsToLeftBorder;\n var pixelsToRightBorder;\n var futureContainer;\n var direction;\n\n if (originalElement[0] != dropContainer[0]) {\n\n dropContainerBoundaries = dropContainer[0].getBoundingClientRect();\n pixelsToLeftBorder = e.clientX - dropContainerBoundaries.left;\n pixelsToRightBorder = dropContainerBoundaries.right - e.clientX;\n direction = pixelsToLeftBorder > pixelsToRightBorder ? \"right\" : \"left\";\n\n futureContainer = direction == \"right\" ? dropContainer.next() : dropContainer.prev();\n\n //handle the case when the container will be shown over the original one\n if (futureContainer[0] == originalElement[0]) {\n return;\n }\n\n that._removeDropHint();\n\n originalElement.hide();\n\n that._createDropHint({ order: dropContainer.css(\"order\"), columnEnd: target.css(\"grid-column-end\"), rowEnd: target.css(\"grid-row-end\"), direction: direction });\n\n originalElement.hide();\n that._insertDropHint(dropContainer, direction);\n }\n }\n });\n }\n });\n\n function containsOrEqualTo(parent, child) {\n try {\n return $.contains(parent, child) || parent == child;\n } catch (e) {\n return false;\n }\n }\n\n ui.plugin(TileLayout);\n\n $.extend(true, TileLayout, { styles: tileLayoutStyles });\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}