{"version":3,"sources":["ewfixedheadertable.js"],"names":["ew","fixedHeaderTable","options","$","jQuery","$container","container","addClass","table","find","delay","width","height","rows","is","timer","getWidth","IS_MOBILE","IS_SCREEN_SM_MIN","$window","window","$grid","closest","css","$panels","$form","$detailPages","$tabPane","$tab","attr","$collapse","isDetail","isActive","hasClass","setWidths","w","innerWidth","fixLayoutHeight","init","data","yscroll","yscrolling","scrollHeight","clientHeight","setupTable","offsetHeight","$rows","filter","n","length","slice","removeClass","_resize","clearTimeout","setTimeout","resize","on","USE_OVERLAY_SCROLLBARS","overlayScrollbars","overlayScrollbarsOptions","later"],"mappings":";;;;AAIAA,GAAGC,iBAAmB,SAASC,GAC3B,IAAIC,EAAIC,OACJC,EAAaF,EAAE,IAAMD,EAAQI,WAAWC,SAAS,oBACjDC,EAAQH,EAAWI,KAAK,kBAAkBF,SAAS,0CAA0C,GAGjG,GAFIG,MAAQR,EAAQQ,OAAS,GAExBR,EAAQS,OAAUT,EAAQU,SAAWJ,GAAUA,EAAMK,MACrDR,EAAW,IAAOA,EAAWS,GAAG,4BADrC,CAIA,IAQIC,EAJAC,EAAW,WACX,OAJOhB,GAAGiB,YAAcjB,GAAGkB,iBAIP,OAAShB,EAAQS,OAG9BQ,EAAUhB,EAAEiB,QACnBC,EAAQhB,EAAWiB,QAAQ,YAAYf,SAAS,WAAWgB,IAAI,YAAa,GAC5EC,EAAUH,EAAMZ,KAAK,8CACrBgB,EAAQJ,EAAMC,QAAQ,+BACtBI,EAAeL,EAAMC,QAAQ,oBAAoBC,IAAI,UAAW,SAChEI,EAAWN,EAAMC,QAAQ,aACzBM,EAAOF,EAAajB,KAAK,6BAA+BkB,EAASE,KAAK,MAAQ,MAC9EC,EAAYT,EAAMC,QAAQ,aAC1BS,IAAaN,EAAM,GACnBO,EAAWJ,EAAKK,SAAS,SAAWH,EAAUG,SAAS,UAAYP,EAAa,GAEhFQ,EAAY,WACZ,IAAIC,EAAInB,IACRK,EAAMV,MAAMoB,EAAW,OAASI,GAChCX,EAAQY,WAAW,QACnBpC,GAAGqC,mBAGHC,EAAO,WACP,IAAIjC,EAAWkC,KAAK,oBAApB,CAIA,IAAI3B,EAASV,EAAQU,OACjB4B,EAAU5B,EACVD,EAAQK,IAGRe,GAAYpB,GACZc,EAAMd,MAAMA,GAGhBU,EAAMV,MAAMoB,EAAW,OAASpB,GAChCN,EAAWM,MAAMA,EAAQ,OAAS,IAAIC,OAAOA,GAAU,QAGvD,IAAIN,EAAYD,EAAW,GAQ3B,GAPAoC,WAAanC,EAAUoC,aAAepC,EAAUqC,aAIhD3C,GAAG4C,YAAY,EAAGpC,GAGdgC,GAAWhC,EAAMK,MAAQP,EAAUqC,aAAenC,EAAMqC,aAAc,CACtE,IAAIC,EAAQ3C,EAAEK,EAAMK,MAAMkC,OAAO,sBAC7BC,EAAIF,EAAMC,OAAO,qBAAqBE,QAAUH,EAAMC,OAAO,qBAAqBE,QAAU,EAChGH,EAAMI,OAAO,EAAIF,GAAGvC,KAAK,wBAAwB0C,YAAY,qBAAqB5C,SAAS,0BAI/F,IAAI6C,EAAU,WACVC,aAAatC,GACbA,EAAQuC,WAAWpB,EAAW,MAIlCf,EAAQoC,OAAOH,GAGfjD,EAAE,4BAA4BqD,GAAG,yBAA0BJ,GAASI,GAAG,qBAAsBJ,GAG7FlB,IAGIlC,GAAGyD,wBACHpD,EAAWqD,kBAAkB1D,GAAG2D,0BAGpCtD,EAAWkC,KAAK,oBAAoB,KAIpCR,IAAaC,GACbJ,EAAK4B,GAAG,eAAgBlB,GACxBR,EAAU0B,GAAG,oBAAqBlB,IAC3B5B,MAAQ,EACfP,EAAEyD,MAAMlD,MAAO,KAAM4B,GACd5B,MAAQ,EACfP,EAAEmC,GACc,GAAT5B,OACP4B","sourcesContent":["/**\r\n * Fixed Header Table for PHPMaker 2021\r\n * @license Copyright (c) e.World Technology Limited. All rights reserved.\r\n */\r\new.fixedHeaderTable = function(options) {\r\n var $ = jQuery,\r\n $container = $(\"#\" + options.container).addClass(\"table-responsive\"),\r\n table = $container.find(\"table.ew-table\").addClass(\"table-head-fixed ew-fixed-header-table\")[0];\r\n delay = options.delay || 0;\r\n\r\n if (!options.width && !options.height || !table || !table.rows ||\r\n !$container[0] || !$container.is(\"div.ew-grid-middle-panel\"))\r\n return;\r\n\r\n var isMobile = function() {\r\n return ew.IS_MOBILE || !ew.IS_SCREEN_SM_MIN; // customize mobile width here, should match Bootstrap @screen-xs-max\r\n };\r\n\r\n var getWidth = function() {\r\n return isMobile() ? \"100%\" : options.width; // use width = 100% for mobile\r\n };\r\n\r\n var timer, $window = $(window),\r\n $grid = $container.closest(\".ew-grid\").addClass(\"d-block\").css(\"min-width\", 0), // reset from \"table\" to \"block\"\r\n $panels = $grid.find(\".ew-grid-lower-panel, .ew-grid-upper-panel\"),\r\n $form = $grid.closest(\".ew-form:not(.ew-list-form)\"),\r\n $detailPages = $grid.closest(\".ew-detail-pages\").css(\"display\", \"block\"), // reset from \"table\" to \"block\"\r\n $tabPane = $grid.closest(\".tab-pane\"),\r\n $tab = $detailPages.find(\"a[data-toggle=tab][href='#\" + $tabPane.attr(\"id\") + \"']\"),\r\n $collapse = $grid.closest(\".collapse\"),\r\n isDetail = !!$form[0],\r\n isActive = $tab.hasClass(\"show\") || $collapse.hasClass(\"show\") || !$detailPages[0];\r\n\r\n var setWidths = function() {\r\n var w = getWidth();\r\n $grid.width(isDetail ? \"100%\" : w);\r\n $panels.innerWidth(\"100%\");\r\n ew.fixLayoutHeight();\r\n };\r\n\r\n var init = function() {\r\n if ($container.data(\"FixedHeaderTable\"))\r\n return;\r\n\r\n // height => Y scrolling\r\n var height = options.height,\r\n yscroll = height,\r\n width = getWidth();\r\n\r\n // set form width same as grid\r\n if (isDetail && width)\r\n $form.width(width);\r\n\r\n // adjust the width/height of the container\r\n $grid.width(isDetail ? \"100%\" : width);\r\n $container.width(width ? \"100%\" : \"\").height(height || \"100%\");\r\n\r\n // check if scrolling\r\n var container = $container[0];\r\n yscrolling = container.scrollHeight > container.clientHeight;\r\n //xscrolling = container.scrollWidth > container.clientWidth;\r\n\r\n // setup the table\r\n ew.setupTable(-1, table);\r\n\r\n // check last row\r\n if (yscroll && table.rows && container.clientHeight > table.offsetHeight) {\r\n var $rows = $(table.rows).filter(\":not(.ew-template)\");\r\n var n = $rows.filter(\"[data-rowindex=1]\").length || $rows.filter(\"[data-rowindex=0]\").length || 1;\r\n $rows.slice(-1 * n).find(\"td.ew-table-last-row\").removeClass(\"ew-table-last-row\").addClass(\"ew-table-border-bottom\");\r\n }\r\n\r\n // set widths on resize\r\n var _resize = function() {\r\n clearTimeout(timer);\r\n timer = setTimeout(setWidths, 250);\r\n };\r\n\r\n // bind resize handler\r\n $window.resize(_resize);\r\n\r\n // pushmenu\r\n $('[data-widget=\"pushmenu\"]').on(\"collapsed.lte.pushmenu\", _resize).on(\"shown.lte.pushmenu\", _resize);\r\n\r\n // set widths\r\n setWidths();\r\n\r\n // init scrollbars\r\n if (ew.USE_OVERLAY_SCROLLBARS)\r\n $container.overlayScrollbars(ew.overlayScrollbarsOptions);\r\n\r\n // initiated\r\n $container.data(\"FixedHeaderTable\", true);\r\n\r\n };\r\n\r\n if (isDetail && !isActive) { // if detail grid but not active\r\n $tab.on(\"shown.bs.tab\", init);\r\n $collapse.on(\"shown.bs.collapse\", init);\r\n } else if (delay > 0) {\r\n $.later(delay, null, init);\r\n } else if (delay < 0) {\r\n $(init);\r\n } else if (delay == 0) {\r\n init();\r\n }\r\n\r\n}"]}