{"version":3,"file":"app/finder.js","sources":["finder.js"],"sourcesContent":["/*----------------------------------------------------------------------------*\\\r\n FINDER\r\n Initialisation of the folder structure.\r\n Plugin used: http://docs.dhtmlx.com/tree__index.html\r\n \\*----------------------------------------------------------------------------*/\r\n\r\n/**\r\n * Use strict as per:\r\n * http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/\r\n */\r\n'use strict';\r\n\r\n\r\n/**\r\n * Check if oy object exists, otherwise create it\r\n */\r\nvar oy = oy || {};\r\n\r\n\r\n/**\r\n * Jshint global references\r\n * Please define all third party plugins that you use to not break jshinting\r\n */\r\n/*global dhtmlXTreeObject */\r\n\r\n\r\n\r\n/* Component\r\n Tree component docs : http://docs.dhtmlx.com/tree__index.html\r\n \\*----------------------------------------------------------------------------*/\r\n\r\noy.finder = {\r\n init: function (onSelectCallBack, onDraggedCallback, onLoadedCallback) {\r\n if (oy.cutsMustard) {\r\n this.initTree(document, onSelectCallBack, onDraggedCallback, onLoadedCallback);\r\n this.orderTree(document);\r\n }\r\n },\r\n\r\n initTree: function ($context, onSelectCallBack, onDraggedCallback, onLoadedCallback, onCheckCallBack) {\r\n var $container = $context.querySelector('.js--finder');\r\n if ($container) {\r\n var $treeWrap = $container.querySelector('.js--finder__tree');\r\n var xmlFileUrl = $container.dataset.ajaxUrl;\r\n var imagesUrl = $container.dataset.imagesUrl;\r\n var type = $container.getAttribute('data-finder-type');\r\n\r\n if (xmlFileUrl) {\r\n // init the tree\r\n var tree = new dhtmlXTreeObject($treeWrap, '100%', '100%', 0);\r\n\r\n // turn off caching of ajax requests, otherwise the tree will add a querystring parameter in the form of dhxr1313456=1\r\n window.dhx4.ajax.cache = true;\r\n\r\n // initialise custom images folder\r\n tree.setImagesPath(imagesUrl); // dynamic, html-based folder\r\n // tree.setImagesPath('/static/public/js/lib/dhtmlxtree.502/imgs/dhxtree_material/'); // original folder\r\n\r\n // enable lines between related items\r\n tree.enableTreeLines(true);\r\n\r\n //set custom images for tree-lines\r\n tree.setImageArrays('plus', 'plus2.svg', 'plus3.svg', 'plus4.svg', 'plus1.svg', 'plus5.svg');\r\n tree.setImageArrays('minus', 'minus2.svg', 'minus3.svg', 'minus4.svg', 'minus1.svg', 'minus5.svg');\r\n tree.setImageArrays('line', 'line2.svg', 'line3.svg', 'line4.svg', 'blank.gif', 'blank.gif', 'line1.svg');\r\n\r\n\r\n // use CSS for sizing\r\n tree.setIconSize(false, false);\r\n\r\n // set auto load in select\r\n tree.setXMLAutoLoading(xmlFileUrl);\r\n\r\n // load json\r\n tree.load(xmlFileUrl, function () {\r\n // initialsed\r\n if(onLoadedCallback) {\r\n onLoadedCallback(tree);\r\n }\r\n tree.showItemSign(999, false);\r\n if (type === 'deletion') {\r\n tree.disableCheckbox(999, true);\r\n }\r\n }, 'xml');\r\n\r\n // attach on select event\r\n tree.attachEvent('onSelect', function(id){\r\n if(onSelectCallBack) {\r\n onSelectCallBack(id, tree.getItemText(id));\r\n }\r\n });\r\n\r\n if (type !== 'deletion') {\r\n // enable drag and drop\r\n tree.enableDragAndDrop(true, false);\r\n\r\n // attach on drag event\r\n tree.attachEvent('onDrop', function(sourceId, targetId) {\r\n if(onDraggedCallback) {\r\n return onDraggedCallback(sourceId, targetId);\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n if (type === 'deletion') {\r\n tree.enableCheckBoxes(true, false);\r\n tree.enableThreeStateCheckboxes(true);\r\n\r\n\r\n tree.attachEvent('onCheck', function(id, state){\r\n tree.setSubChecked(id, state);\r\n if(onCheckCallBack) {\r\n onCheckCallBack(id, tree.getItemText(id), state);\r\n }\r\n });\r\n }\r\n\r\n\r\n window.FolderTree = tree;\r\n }\r\n }\r\n },\r\n\r\n orderTree: function($context) {\r\n var $orderTypes = $context.querySelector('.js--order-tree');\r\n if ($orderTypes) {\r\n var $inputs = $orderTypes.querySelectorAll('input');\r\n for (var i = 0; i < $inputs.length; i++) {\r\n $inputs[i].addEventListener('change', function () {\r\n // get the ordering type:\r\n // var orderType = $orderTypes.querySelector('input:checked').value;\r\n });\r\n }\r\n }\r\n }\r\n};\r\n\r\n\r\nwindow.addEventListener('load', function () {\r\n if(oy.functions.isStyleGuide()) {\r\n oy.finder.init();\r\n }\r\n}, false);\r\n"],"names":[],"mappings":"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","sourceRoot":"/source/"}