Your IP : 18.188.216.107


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/js/ui/tilegrid/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/js/ui/tilegrid/grid.min.js

(function(){"use strict";BX.namespace("BX.TileGrid");BX.TileGrid.Grid=function(e){this.options=e;this.id=e.id;this.tileSize=e.tileSize;this.items=[];this.renderTo=e.container;this.multiSelectMode=null;this.style=null;this.containerWidth=null;this.countItemsPerRow=null;this.layout={container:null,content:null};this.emptyBlock=null;this.loader=null;this.dragger=new BX.TileGrid.DragDrop(this);this.gridTile=null;this.backspaceButton=null;this.deleteButton=null;this.enterButton=null;this.currentItem=null;this.firstCurrentItem=null;this.currentItem=null;this.itemType=this.getItemType(e.itemType);this.loadData(e);this.bindEvents();this.pressedShiftKey=null;this.pressedDeleteKey=null;this.pressedSelectAllKeys=null;this.pressedArrowTopMultipleKey=null;this.pressedArrowRightMultipleKey=null;this.pressedArrowBottomMultipleKey=null;this.pressedArrowLeftMultipleKey=null;this.pressedArrowTopKey=null;this.pressedArrowRightKey=null;this.pressedArrowBottomKey=null;this.pressedArrowLeftKey=null;this.pressedEscapeKey=null;this.pressedControlKey=null;BX.onCustomEvent("BX.TileGrid.Grid::ready",[this])};BX.TileGrid.Grid.prototype={getId:function(){return this.id},bindEvents:function(){BX.bind(window,"resize",this.setStyle.bind(this));BX.bind(window,"keydown",function(e){this.defineEscapeKey(e);if(this.isKeyPressedEscape()){this.resetSelection();return}this.defineShiftKey(e);this.defineDeleteKey(e);this.defineSelectAllKeys(e);this.defineArrowMultipleKey(e);this.defineArrowSingleKey(e);this.defineControlKey(e);if(this.isKeyPressedSelectAll()&&this.isFocusOnTile())this.selectAllItems();this.setBackspaceButton(e);this.setEnterButton(e);this.processButtonSelection();if(this.isKeyPressedDelete()){this.removeSelectedItems(e)}else if(this.backspaceButton&&this.isFocusOnTile()){this.handleBackspace()}this.handleEnter(e)}.bind(this));BX.bind(window,"keyup",function(e){this.resetShiftKey(e);this.resetDeleteKey(e);this.resetSelectAllKeys(e);this.resetArrowKey(e);this.resetEscapeKey(e);this.resetControlKey(e);this.resetBackspaceButton();this.resetEnterButton()}.bind(this));BX.bind(window,"click",function(e){if(this.checkParent(e.target)){return}this.resetSelection()}.bind(this))},handleEnter:function(){if(!this.enterButton||!this.currentItem)return;this.currentItem.handleEnter()},handleBackspace:function(){},checkParent:function(e){var t=BX.findParent(e,{className:"ui-grid-tile-item"});if(!t)t=BX.findParent(e,{attr:{"data-tile-grid":"tile-grid-stop-close"}});return t},appendItem:function(e){this.addItem(e);this.container.appendChild(this.items[this.items.length-1].render());this.items[this.items.length-1].afterRender()},addItem:function(e){var t=this.getItemType(e.itemType);var i=new t(e);i.gridTile=this;this.items.push(i)},_deleteItem:function(e,t){e.removeNode();for(var i=0;i<this.items.length;i++){if(this.items[i].id===e.id){if(BX.type.isFunction(t)){t(e)}delete this.items[i];this.items.splice(i,1);if(this.items.length===0){this.setMinHeightContainer();this.appendEmptyBlock()}return}}},removeItem:function(e){this._deleteItem(e,function(e){BX.onCustomEvent(this,"TileGrid.Grid:onItemRemove",[e,this])}.bind(this))},moveItem:function(e,t){this._deleteItem(e,function(e){BX.onCustomEvent(this,"TileGrid.Grid:onItemMove",[e,t,this])}.bind(this))},getSelectedItems:function(){return this.items.filter(function(e){return e.selected})},removeSelectedItems:function(){var e;this.getSelectedItems().forEach(function(t){e=this.items.indexOf(t);this.removeItem(t);if(e===this.items.length)e=this.items.length-1},this);this.currentItem=this.items[e];this.firstCurrentItem=this.items[e];this.resetSetMultiSelectMode();this.selectItem(this.currentItem)},selectAllItems:function(){this.items.forEach(function(e){this.selectItem(e);this.checkItem(e)},this);this.currentItem=null;this.firstCurrentItem=null;if(this.isKeyPressedSelectAll())BX.PreventDefault();BX.onCustomEvent("BX.TileGrid.Grid:selectAllItems",[this])},loadData:function(e){e.items.forEach(function(e){this.addItem(e)},this)},countItems:function(){return this.items.length},getItem:function(e){for(var t=0;t<this.items.length;t++){if(this.items[t].id.toString()===e.toString())return this.items[t]}},changeTileSize:function(e){this.tileSize=e;this.setStyle()},setStyle:function(){if(this.calculateCountItemsPerRow()===this.countItemsPerRow){return}var e=document.head;var t=".ui-grid-tile-item { "+"width: calc("+100/this.calculateCountItemsPerRow()+"% - 18px); "+"}";if(!this.style){this.getStyleNode()}BX.cleanNode(this.style);t=document.createTextNode(t);this.style.appendChild(t);e.appendChild(this.style);this.countItemsPerRow=this.calculateCountItemsPerRow()},getItemType:function(e){var t=this.getClass(e);if(BX.type.isFunction(t)){return t}return this.itemType||BX.TileGrid.Item},getClass:function(e){if(!BX.type.isNotEmptyString(e)){return null}var t=null;var i=window;var s=e.split(".");for(var r=0;r<s.length;r++){var n=s[r];if(!i[n]){return null}i=i[n];t=i}return t},getStyleNode:function(){this.style=BX.create("style",{attrs:{type:"text/css"}})},calculateCountItemsPerRow:function(){if(this.tileSize==="xl"){return this.calculateCountItemsPerRowXL()}return this.calculateCountItemsPerRowM()},calculateCountItemsPerRowM:function(){switch(true){case this.getContainerWidth()<=720:return 3;case this.getContainerWidth()<=990:return 4;case this.getContainerWidth()<=1100:return 5;case this.getContainerWidth()>1100:return 6}},calculateCountItemsPerRowXL:function(){switch(true){case this.getContainerWidth()<=990:return 2;case this.getContainerWidth()<=1200:return 3;case this.getContainerWidth()>1200:return 4}},getContainerWidth:function(){this.containerWidth=this.renderTo.offsetWidth;return this.containerWidth},getContainer:function(){return this.container},getWrapper:function(){if(this.container){return}return this.container=BX.create("div",{attrs:{className:"ui-grid-tile"}})},setMinHeightContainer:function(){var e=BX.findParent(this.container);this.container.style.height="0";BX.cleanNode(this.container);for(var t=0;e.offsetHeight<=0;t++){e=BX.findParent(e)}this.container.style.minHeight=e.offsetHeight+"px"},unSetMinHeightContainer:function(){this.container.style.minHeight=""},setHeightContainer:function(){this.container.style.height=this.container.offsetHeight},unSetHeightContainer:function(){this.container.style.height=""},setFadeContainer:function(){BX.addClass(this.container,"ui-grid-tile-fade")},unSetFadeContainer:function(){BX.removeClass(this.container,"ui-grid-tile-fade")},getLoader:function(){if(this.loader===null){this.loader=new BX.Loader({target:this.container})}return this.loader},showLoader:function(){this.loader.show();if(this.container.getBoundingClientRect().top<0){var e=this.container.getBoundingClientRect().top*-1+BX.pos(this.container).top;this.loader.layout.style.top=e+100+"px";this.loader.layout.style.transform="translateY(0)";return}if(this.loader.layout.getBoundingClientRect().top<window.innerHeight){this.loader.layout.style.top="100px";this.loader.layout.style.transform="translateY(0)"}},redraw:function(e){this.items.forEach(function(e){e.removeNode()},this);this.items=[];this.loadData({items:e});this.draw();this.resetSelection();BX.onCustomEvent("BX.TileGrid.Grid:redraw",[this])},draw:function(){this.getWrapper();this.setStyle(this.getContainerWidth());for(var e=0,t;e<this.items.length;e++){t=this.items[e];this.container.appendChild(t.render())}this.renderTo.appendChild(this.container);for(var i=0;i<this.items.length;i++){this.items[i].afterRender()}if(this.items.length===0){this.setMinHeightContainer();this.appendEmptyBlock();return}this.removeEmptyBlock();this.unSetMinHeightContainer()},buildEmptyBlock:function(){if(BX.type.isFunction(this.options.generatorEmptyBlock)){this.emptyBlock=this.options.generatorEmptyBlock.call(this);return}this.emptyBlock=BX.create("div",{props:{className:"ui-grid-tile-no-data-inner"},children:[BX.create("div",{props:{className:"ui-grid-tile-no-data-image"}})]})},appendEmptyBlock:function(){if(!this.emptyBlock)this.buildEmptyBlock();this.container.appendChild(this.emptyBlock)},removeEmptyBlock:function(){if(!this.emptyBlock)return;this.container.removeChild(this.emptyBlock);this.emptyBlock=null},setBackspaceButton:function(e){e.key==="Backspace"?this.backspaceButton="Backspace":null},resetBackspaceButton:function(){this.backspaceButton=null},setEnterButton:function(e){if(e.key!=="Enter")return;this.enterButton="Enter"},resetEnterButton:function(){this.enterButton=null},processButtonSelection:function(){var t,i;if(this.isFocusOnTile()&&!this.currentItem&&this.items.length>0){this.setCurrentItem(this.items[0])}if(!this.currentItem)return;if(this.isKeyMultipleArrowRight()){this.selectFromToItems(this.firstCurrentItem,this.items[this.selectNextItemNumber(this.currentItem)])}if(this.isKeyArrowRight()){this.resetSelectAllItems();this.selectItem(this.items[this.selectNextItemNumber(this.currentItem)]);i=this.items[this.items.indexOf(this.currentItem)+1];if(i&&!i.isVisibleItem()){e(i.getContainer().getBoundingClientRect().height)}return}if(this.isKeyMultipleArrowLeft()){this.selectFromToItems(this.firstCurrentItem,this.items[this.selectPreviousItemNumber(this.currentItem)])}if(this.isKeyArrowLeft()){this.resetSelectAllItems();this.selectItem(this.items[this.selectPreviousItemNumber(this.currentItem)]);i=this.items[this.items.indexOf(this.currentItem)-1];if(i&&!i.isVisibleItem()){e(-i.getContainer().getBoundingClientRect().height)}return}if(this.isKeyMultipleArrowTop()){t=this.items[this.items.indexOf(this.currentItem)-this.countItemsPerRow];t?this.currentItem=t:this.currentItem=this.items[0];this.selectFromToItems(this.firstCurrentItem,this.currentItem)}if(this.isKeyArrowTop()){t=this.items[this.items.indexOf(this.currentItem)-this.countItemsPerRow];t?this.currentItem=t:this.currentItem=this.items[0];this.resetSelectAllItems();this.selectItem(this.currentItem);i=this.items[this.items.indexOf(this.currentItem)-this.countItemsPerRow];if(i&&!i.isVisibleItem()){e(-i.getContainer().getBoundingClientRect().height)}return}if(this.isKeyMultipleArrowBottom()){t=this.items[this.items.indexOf(this.currentItem)+this.countItemsPerRow];t?this.currentItem=t:this.currentItem=this.items[this.items.length-1];this.selectFromToItems(this.firstCurrentItem,this.currentItem)}if(this.isKeyArrowBottom()){t=this.items[this.items.indexOf(this.currentItem)+this.countItemsPerRow];t?this.currentItem=t:this.currentItem=this.items[this.items.length-1];this.resetSelectAllItems();this.selectItem(this.currentItem);i=this.items[this.items.indexOf(this.currentItem)+this.countItemsPerRow];if(i&&!i.isVisibleItem()){e(i.getContainer().getBoundingClientRect().height)}}},selectNextItemNumber:function(e){if(!e)return;var t=this.items.indexOf(e);if(t+1===this.items.length){this.setCurrentItem(this.items[this.items.length-1]);return this.items.length-1}this.setCurrentItem(this.items[t+1]);return t+1},selectPreviousItemNumber:function(e){if(!e)return;var t=this.items.indexOf(e);if(t-1<0){this.setCurrentItem(this.items[0]);return 0}this.setCurrentItem(this.items[t-1]);return t-1},selectFromToItems:function(e,t){if(!e||!t){return}this.resetSelectAllItems();this.setMultiSelectMode();var i=this.items.indexOf(e);var s=this.items.indexOf(t);if(i>s){i=this.items.indexOf(t);s=this.items.indexOf(e)}for(var r=i;r<=s;r++){this.selectItem(this.items[r]);this.checkItem(this.items[r])}},setCheckbox:function(e){BX.addClass(e.layout.checkbox,"ui-grid-tile-item-checkbox-checked")},resetFromToItems:function(){this.firstCurrentItem=null;this.currentItem=null},resetSelection:function(){this.resetSetMultiSelectMode();this.resetSelectAllItems();this.resetFromToItems()},defineArrowMultipleKey:function(e){if(e.shiftKey&&e.code==="ArrowUp")this.pressedArrowTopMultipleKey=true;if(e.shiftKey&&e.code==="ArrowRight")this.pressedArrowRightMultipleKey=true;if(e.shiftKey&&e.code==="ArrowDown")this.pressedArrowBottomMultipleKey=true;if(e.shiftKey&&e.code==="ArrowLeft")this.pressedArrowLeftMultipleKey=true},defineArrowSingleKey:function(e){if(!e.shiftKey&&e.code==="ArrowUp")this.pressedArrowTopKey=true;if(!e.shiftKey&&e.code==="ArrowRight")this.pressedArrowRightKey=true;if(!e.shiftKey&&e.code==="ArrowDown")this.pressedArrowBottomKey=true;if(!e.shiftKey&&e.code==="ArrowLeft")this.pressedArrowLeftKey=true},isKeyMultipleArrowTop:function(){return this.pressedArrowTopMultipleKey},isKeyMultipleArrowRight:function(){return this.pressedArrowRightMultipleKey},isKeyMultipleArrowBottom:function(){return this.pressedArrowBottomMultipleKey},isKeyMultipleArrowLeft:function(){return this.pressedArrowLeftMultipleKey},isKeyArrowTop:function(){return this.pressedArrowTopKey},isKeyArrowRight:function(){return this.pressedArrowRightKey},isKeyArrowBottom:function(){return this.pressedArrowBottomKey},isKeyArrowLeft:function(){return this.pressedArrowLeftKey},resetArrowKey:function(e){if(e.code==="ArrowUp"||e.code==="ArrowRight"||e.code==="ArrowDown"||e.code==="ArrowLeft"){this.pressedArrowTopMultipleKey=null;this.pressedArrowRightMultipleKey=null;this.pressedArrowBottomMultipleKey=null;this.pressedArrowLeftMultipleKey=null;this.pressedArrowTopKey=null;this.pressedArrowRightKey=null;this.pressedArrowBottomKey=null;this.pressedArrowLeftKey=null}},defineSelectAllKeys:function(e){if((e.metaKey||e.ctrlKey)&&e.code==="KeyA")this.pressedSelectAllKeys=true},resetSelectAllKeys:function(e){if(e.key==="Control"||e.key==="Meta"){this.pressedSelectAllKeys=null}},isKeyPressedSelectAll:function(){return this.pressedSelectAllKeys},defineDeleteKey:function(e){if(e.key==="Delete"){this.pressedDeleteKey=true;return}if(e.key==="Backspace"&&e.metaKey)this.pressedDeleteKey=true},resetDeleteKey:function(e){if(e.key==="Delete"){this.pressedDeleteKey=null;return}if(e.key==="Backspace"||e.key==="Meta")this.pressedDeleteKey=null},isKeyPressedDelete:function(){return this.pressedDeleteKey},defineEscapeKey:function(e){if(e.key==="Escape"){this.pressedEscapeKey=true;BX.onCustomEvent("BX.TileGrid.Grid:defineEscapeKey",[this])}},resetEscapeKey:function(e){if(e.key==="Escape")this.pressedEscapeKey=null},isKeyPressedEscape:function(){return this.pressedEscapeKey},defineControlKey:function(e){if(e.key==="Meta"||e.key==="Control")this.pressedControlKey=true},resetControlKey:function(e){if(e.key==="Meta"||e.key==="Control")this.pressedControlKey=null},isKeyControlKey:function(){return this.pressedControlKey},defineShiftKey:function(e){if(e.key==="Shift")this.pressedShiftKey=true},resetShiftKey:function(e){if(e.key==="Shift")this.pressedShiftKey=null},isKeyPressedShift:function(){return this.pressedShiftKey},setCurrentItem:function(e){if(this.currentItem!==e)this.currentItem=e},getCurrentItem:function(){return this.currentItem},resetCurrentItem:function(){this.currentItem=null},isFocusOnTile:function(){if(!document.activeElement){return true}var e=document.activeElement.tagName.toLowerCase();if(e==="body"){return true}if(e==="input"||e==="select"||e==="textarea"){return false}return!!BX.findParent(document.activeElement,{className:"ui-grid-tile"})},setFirstCurrentItem:function(e){if(this.firstCurrentItem!==e)this.firstCurrentItem=e},getFirstCurrentItem:function(){return this.firstCurrentItem},resetFirstCurrentItem:function(){this.firstCurrentItem=null},selectItem:function(e){if(!e)return;BX.addClass(e.layout.container,"ui-grid-tile-item-selected");e.selected=true;if(this.isLastSelectedItem())this.resetSetMultiSelectMode();BX.onCustomEvent("BX.TileGrid.Grid:selectItem",[e,this])},unSelectItem:function(e){if(!e)return;BX.removeClass(e.layout.container,"ui-grid-tile-item-selected");e.selected=false;BX.onCustomEvent("BX.TileGrid.Grid:unSelectItem",[e,this])},isLastSelectedItem:function(){for(var e=0;e<this.items.length;e++){if(this.items[e].selected)return false}BX.onCustomEvent("BX.TileGrid.Grid:lastSelectedItem");return true},checkItem:function(e){if(!e)return;BX.addClass(e.layout.checkbox,"ui-grid-tile-item-checkbox-checked");e.checked=true;if(!this.isMultiSelectMode())this.setMultiSelectMode();BX.onCustomEvent("BX.TileGrid.Grid:checkItem",[e,this])},unCheckItem:function(e){BX.removeClass(e.layout.checkbox,"ui-grid-tile-item-checkbox-checked");e.checked=false;BX.onCustomEvent("BX.TileGrid.Grid:unCheckItem",[e,this])},setMultiSelectMode:function(){BX.addClass(this.container,"ui-grid-tile-multi-select-mode");this.multiSelectMode=true;BX.onCustomEvent("BX.TileGrid.Grid:multiSelectModeOn",[this])},resetSetMultiSelectMode:function(){BX.removeClass(this.container,"ui-grid-tile-multi-select-mode");this.multiSelectMode=null;BX.onCustomEvent("BX.TileGrid.Grid:multiSelectModeOff",[this])},isMultiSelectMode:function(){return this.multiSelectMode},resetSelectAllItems:function(){if(this.isMultiSelectMode())this.resetSetMultiSelectMode();BX.onCustomEvent("BX.TileGrid.Grid:resetSelectAllItems",[this]);for(var e=0;e<this.items.length;e++){this.items[e].selected=false;this.items[e].checked=false;BX.removeClass(this.items[e].layout.checkbox,"ui-grid-tile-item-checkbox-checked");BX.removeClass(this.items[e].layout.container,"ui-grid-tile-item-selected")}}};var e=function(e){var t=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;var i=new BX.easing({duration:300,start:{scrollY:t},finish:{scrollY:t+e},transition:BX.easing.makeEaseOut(BX.easing.transitions.quad),step:function(e){window.scrollTo(0,e.scrollY)}});i.animate()}})();