%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/components/bitrix/ui.tile.selector/templates/.default/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/components/bitrix/ui.tile.selector/templates/.default/script.min.js

(function(t){BX.namespace("BX.UI");if(BX.UI.TileSelector){return}var e=[];function i(t){this.id=t.id;this.node=t.node;this.data=t.data;this.nameNode=r.getNode("tile-item-name",this.node)}function n(t){this.init(t)}n.prototype.events={containerClick:"container-click",tileClick:"tile-click",tileRemove:"tile-remove",tileEdit:"tile-edit",tileAdd:"tile-add",buttonAdd:"add",buttonSelect:"select",buttonSelectFirst:"select-first",search:"search",input:"input",searcherCategoryClick:"popup-category-click",searcherItemClick:"popup-item-click"};n.getById=function(t){var i=e.filter(function(e){return e.id===t});return i.length>0?i[0]:null};n.getList=function(){return e};n.prototype.init=function(t){this.list=[];this.id=t.id;this.context=BX(t.containerId);this.duplicates=t.duplicates;this.multiple=t.multiple;this.readonly=t.readonly;this.attributeId="data-bx-id";this.attributeData="data-bx-data";this.tileContainer=r.getNode("tile-container",this.context);this.tileTemplate=r.getNode("tile-template",this.context);this.input=r.getNode("tile-input",this.context);this.buttonAdd=r.getNode("tile-add",this.context);this.buttonSelect=r.getNode("tile-select",this.context);if(!this.context||!this.input){return}r.getNodes("tile-item",this.context).forEach(this.initNode.bind(this));if(!this.readonly){this.initEventHandlers()}this.searcher=null;e.push(this)};n.prototype.initEventHandlers=function(){if(this.buttonAdd){BX.bind(this.buttonAdd,"click",this.onButtonAdd.bind(this))}if(this.context){BX.bind(this.context,"click",this.onContainerClick.bind(this))}if(this.buttonSelect){BX.bind(this.buttonSelect,"click",this.onButtonSelect.bind(this));BX.bind(this.tileContainer,"click",this.onButtonSelect.bind(this))}BX.bind(this.input,"input",this.onInput.bind(this));BX.bind(this.input,"blur",this.onInputEnd.bind(this));r.handleKeyEnter(this.input,this.onInputEnd.bind(this))};n.prototype.getSearchInput=function(){return this.input};n.prototype.isSearcherInit=function(){return!!this.searcher};n.prototype.clearSearcher=function(){this.isButtonSelectFired=false;if(this.searcher){this.searcher.hide();this.searcher=null}};n.prototype.hideSearcher=function(){this.searcher.hide()};n.prototype.showSearcher=function(t){if(!this.searcher){this.searcher=new o({id:this.id,caller:this,context:this.context,title:t||""})}this.searcher.filterByName();this.searcher.show()};n.prototype.setSearcherData=function(t){if(!this.searcher){this.showSearcher()}this.searcher.setCategories(t)};n.prototype.initNode=function(t){if(!t){return null}var e=t.getAttribute(this.attributeId);var n=t.getAttribute(this.attributeData);try{n=JSON.parse(n)}catch(t){try{n=JSON.parse(BX.util.htmlspecialcharsback(n))}catch(t){n={}}}var o=new i({id:e,node:t,data:n});if(o.id&&!this.duplicates&&this.findDuplicates(o.id)){o=null;return null}var s=r.getNode("remove",t);if(s){BX.bind(s,"click",this.onRemove.bind(this,o))}BX.bind(t,"click",this.onClick.bind(this,o));this.list.push(o);return o};n.prototype.onRemove=function(t,e){e.preventDefault();e.stopPropagation();this.removeTile(t);return false};n.prototype.onClick=function(t,e){e.preventDefault();e.stopPropagation();this.fire(this.events.tileClick,[t])};n.prototype.removeTiles=function(){var t=this.list;t.forEach(this.removeTile.bind(this))};n.prototype.removeTile=function(t){this.list=BX.util.deleteFromArray(this.list,this.list.indexOf(t));BX.remove(t.node);this.fire(this.events.tileRemove,[t])};n.prototype.getTile=function(t){var e=this.list.filter(function(e){return e.id===t});return e.length>0?e[0]:null};n.prototype.getTilesData=function(){return this.list.map(function(t){return t.data})};n.prototype.getTilesId=function(){return this.list.map(function(t){return t.id}).filter(function(t){return!!t})};n.prototype.getTiles=function(){return this.list};n.prototype.findDuplicates=function(t){var e=this.getTile(t);if(!e){return false}this.removeTile(e)};n.prototype.addTile=function(t,e,i,n,o){if(!t||this.readonly){return null}if(!this.multiple){this.removeTiles();if(this.isSearcherInit()){this.hideSearcher()}}e=e||{};i=i||"";o=o||"";n=n||"";var s=this.tileTemplate;if(!s){return null}s=s.innerHTML;var a="";if(o){a+="color: "+BX.util.htmlspecialchars(o)+"; "}if(n){a+="background-color: "+BX.util.htmlspecialchars(n)+"; "}s=r.replace(s,{id:BX.util.htmlspecialchars(i+""),name:BX.util.htmlspecialchars(t),data:BX.util.htmlspecialchars(JSON.stringify(e)),style:a});var h=document.createElement("div");h.innerHTML=s;h=h.children[0];var l=this.initNode(h);if(!l){return null}this.input.parentNode.insertBefore(h,this.input);this.fire(this.events.tileAdd,[l]);return l};n.prototype.updateTile=function(t,e,i,n,r){if(!t||this.readonly){return null}e=e||null;i=i||null;n=n||null;r=r||null;if(e){t.nameNode.textContent=e}if(i){t.data=i}if(n||n===null){t.node.style.backgroundColor=n}if(r){t.node.style.color=r}this.fire(this.events.tileEdit,[t]);return t};n.prototype.fire=function(t,e){BX.onCustomEvent(this,t,e)};n.prototype.onInput=function(){var t=this.input.value;if(this.searcher&&t.length>0){this.searcher.filterByName(t)}this.fire(this.events.input,[this.input.value])};n.prototype.onInputEnd=function(){var t=this.input.value;this.input.value="";r.changeDisplay(this.input,false);r.changeDisplay(this.buttonSelect,true);this.fire(this.events.search,[t])};n.prototype.onButtonAdd=function(t){t.preventDefault();t.stopPropagation();this.fire(this.events.buttonAdd,[])};n.prototype.onContainerClick=function(){this.fire(this.events.containerClick,[])};n.prototype.onButtonSelect=function(t){t.preventDefault();t.stopPropagation();r.changeDisplay(this.buttonSelect,false);r.changeDisplay(this.input,true);this.input.focus();this.fire(this.events.buttonSelect,[]);if(!this.isButtonSelectFired){this.fire(this.events.buttonSelectFirst,[]);this.isButtonSelectFired=true}};var r={getObjectByKey:function(t,e,i){var n=t.filter(function(t){return t.hasOwnProperty(e)&&t[e]===i});return n.length>0?n[0]:null},getNode:function(t,e){var i=this.getNodes(t,e);return i.length>0?i[0]:null},getNodes:function(t,e){if(!e){return[]}return BX.convert.nodeListToArray(e.querySelectorAll('[data-role="'+t+'"]'))},changeClass:function(t,e,i){if(!t){return}if(i){BX.addClass(t,e)}else{BX.removeClass(t,e)}},changeDisplay:function(t,e){if(!t){return}t.style.display=e?"":"none"},replace:function(t,e,i){e=e||{};i=i||false;if(!t){return""}for(var n in e){if(!e.hasOwnProperty(n)){continue}var r=e[n];r=r||"";if(!i&&r){r=BX.util.htmlspecialchars(r)}t=t.replace(new RegExp("%"+n+"%","g"),r)}return t},handleKeyEnter:function(e,i){if(!i){return}var n=function(e){e=e||t.event;if(e.keyCode===10||e.keyCode===13){e.preventDefault();e.stopPropagation();i();return false}};BX.bind(e,"keyup",n)},getTemplatedNode:function(t,e,i){if(!t){return null}var n=r.replace(t.innerHTML,e,i);var o=document.createElement("div");o.innerHTML=n;return o.children[0]}};function o(t){this.init(t)}o.prototype.classNameCategoryActive="ui-tile-selector-searcher-sidebar-item-selected";o.prototype.classNameItemActive="ui-tile-selector-searcher-content-item-selected";o.prototype.init=function(t){this.id=t.id;this.context=t.context;this.caller=t.caller;this.categories=[];this.items=[];this.currentCategory=null;this.categoryTemplate=r.getNode("popup-category-template",this.context);this.itemTemplate=r.getNode("popup-item-template",this.context);this.content=r.getTemplatedNode(r.getNode("popup-template",this.context));this.loader=r.getNode("popup-loader",this.content);this.categoryContainer=r.getNode("popup-category-list",this.content);this.itemContainer=r.getNode("popup-item-list",this.content);this.itemContainer.innerHTML="";this.categoryContainer.innerHTML="";this.title=r.getNode("popup-title",this.content);if(this.title){this.title.textContent=t.title}if(t.dataList){this.setCategories(t.dataList)}BX.addCustomEvent(this.caller,this.caller.events.tileAdd,this.onTileAdd.bind(this));BX.addCustomEvent(this.caller,this.caller.events.tileRemove,this.onTileRemove.bind(this))};o.prototype.onTileAdd=function(t){var e=r.getObjectByKey(this.items,"id",t.id);if(!e){return}r.changeClass(e.node,this.classNameItemActive,true)};o.prototype.onTileRemove=function(t){var e=r.getObjectByKey(this.items,"id",t.id);if(!e){return}r.changeClass(e.node,this.classNameItemActive,false)};o.prototype.filterByName=function(t){t=t||"";if(t.length<3){r.changeDisplay(this.categoryContainer,true);this.setCurrentCategory();return}var e=new RegExp(BX.util.escapeRegExp(t),"i");this.items.forEach(function(t){r.changeDisplay(t.node,e.test(t.name))});r.changeDisplay(this.categoryContainer,false)};o.prototype.onCategoryClick=function(t){this.setCurrentCategory(t);this.caller.fire(this.caller.events.searcherCategoryClick,[t])};o.prototype.setCurrentCategory=function(t){t=t||this.categories[0];if(this.currentCategory){BX.removeClass(this.currentCategory.node,this.classNameCategoryActive)}this.currentCategory=t;if(!t){return}BX.addClass(this.currentCategory.node,this.classNameCategoryActive);this.items.forEach(function(e){r.changeDisplay(e.node,e.category===t)})};o.prototype.onItemClick=function(t){this.caller.addTile(t.name,t.data,t.id,t.bgcolor,t.color);this.caller.fire(this.caller.events.searcherItemClick,[t])};o.prototype.getCategory=function(t){return r.getObjectByKey(this.categories,"id",t)};o.prototype.getItem=function(t){return r.getObjectByKey(this.items,"id",t)};o.prototype.updateItem=function(t,e,i){if(e){t.node.textContent=e;t.node.title=e}if(i){t.data=i}};o.prototype.addItem=function(t,e,i,n){var o=r.getTemplatedNode(this.itemTemplate,{name:i});var s={category:t,node:o,id:e,name:i,data:n||{}};this.items.push(s);this.itemContainer.appendChild(o);BX.bind(o,"click",this.onItemClick.bind(this,s));return s};o.prototype.setItems=function(t,e){this.items=[];e.forEach(function(e){this.addItem(t,e.id,e.name,e.data)},this)};o.prototype.addItems=function(t,e){e.forEach(function(e){this.addItem(t,e.id,e.name,e.data)},this)};o.prototype.addCategory=function(t,e,i,n){var o=r.getTemplatedNode(this.categoryTemplate,{name:e});var s={node:o,id:t,name:e,data:i||{}};this.categories.push(s);this.categoryContainer.appendChild(o);BX.bind(o,"click",this.onCategoryClick.bind(this,s));this.addItems(s,n);return s};o.prototype.setCategories=function(t){this.categories=[];t.forEach(function(t){this.addCategory(t.id,t.name,t.data,t.items)},this);if(this.categories.length>0){this.setCurrentCategory(this.categories[0])}var e=this.caller.getTilesId();this.items.filter(function(t){var i=t.id&&BX.util.in_array(t.id,e);r.changeClass(t.node,this.classNameItemActive,i)},this);r.changeDisplay(this.loader,false);r.changeDisplay(this.itemContainer,true);r.changeDisplay(this.categoryContainer,true)};o.prototype.showLoader=function(){r.changeDisplay(this.loader,true)};o.prototype.hide=function(){if(!this.popup){return}this.popup.close()};o.prototype.show=function(){if(this.popup){this.popup.show();return}this.popup=BX.PopupWindowManager.create(this.id,this.context,{width:620,height:225,autoHide:true,lightShadow:true,closeByEsc:true,closeIcon:true,offsetLeft:40,angle:true});this.popup.setContent(this.content);r.changeDisplay(this.content,true);this.popup.show()};BX.UI.TileSelector=n})(window);

Zerion Mini Shell 1.0