From 3be55c6fa0290947b5e9307a90ea574053b98f70 Mon Sep 17 00:00:00 2001 From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch> Date: Wed, 26 Jul 2023 09:37:21 +0200 Subject: [PATCH] remove addi.class.js --- public_html/vendor/axelhahn/js/addi.js | 410 ------------------------- 1 file changed, 410 deletions(-) delete mode 100644 public_html/vendor/axelhahn/js/addi.js diff --git a/public_html/vendor/axelhahn/js/addi.js b/public_html/vendor/axelhahn/js/addi.js deleted file mode 100644 index 1fac9723..00000000 --- a/public_html/vendor/axelhahn/js/addi.js +++ /dev/null @@ -1,410 +0,0 @@ -/** - * - * ADDI = Axels Drag and drop implementation - * - * create draggable divs on screen if they have a defined class - * (named "draggable" by default - but you can use any other name) - * - * @author Axel Hahn - * @version 1.0 - * - * @this addi - * - * @example - * <pre> - * // make all divs with class "draggable" be movable on screen<br> - * addi.init(); - * </pre> - * - * @constructor - * @return nothing - */ - var addi = function(){ - - return { - _saveData: [], - _dragClass: 'draggable', - _draggingClass: 'isdragging', - - // last z-index value of last activated div - _addi_zIndex: 100, - - // fixed rectangle earea whe a div can be moved - oFence: { - bFullscreen: true, - top: 0, - left: 0, - width: window.innerWidth, - height: window.innerHeight - }, - - // override existing style values while moving the div - _savstyles:{ - transition: 'auto' - }, - - /** - * detect all draggable objects on a page and init each - * - * @see initDiv() - * @param {string} sClass optional: class of draggable elements; default: "draggable" - * @returns {undefined} - */ - init(sClass){ - if(sClass){ - this._dragClass=sClass; - } - // scan all elements with class draggable and make them movable - var oList = document.getElementsByClassName(this._dragClass); - if(oList && oList.length){ - for (var i = 0; i < oList.length; i++) { - this.initDiv(oList[i], false); - } - } - }, - // ------------------------------------------------------------ - // private functions - // ------------------------------------------------------------ - /** - * get a top left position {xpos, ypos} to fix current position and - * make a div fully visible - * @see move() - * - * @private - * @param {object} oDiv2Drag movable object - * @param {type} xpos - * @param {type} ypos - * @returns {object} - */ - _fixVisiblePosition(oDiv2Drag,xpos,ypos){ - - this._updateFence(oDiv2Drag.style.paddingLeft); - var aStyles = window.getComputedStyle(oDiv2Drag); - - var divDeltaX=0 - + parseInt(aStyles.borderLeftWidth) - + parseInt(aStyles.borderRightWidth) - + parseInt(aStyles.marginLeft) - + parseInt(aStyles.marginRight) - + parseInt(aStyles.paddingLeft) - + parseInt(aStyles.paddingRight) - - (window.innerWidth - document.documentElement.clientWidth) // scrollbar - ; - var divDeltaY=0 - + parseInt(aStyles.borderTopWidth) - + parseInt(aStyles.borderBottomWidth) - + parseInt(aStyles.marginTop) - + parseInt(aStyles.marginBottom) - // + parseInt(aStyles.paddingTop) - //+ parseInt(aStyles.paddingBottom) - ; - - xpos=Math.max(this.oFence.left,xpos); - xpos=Math.min(this.oFence.left+this.oFence.width-oDiv2Drag.clientWidth-divDeltaX,xpos); - - ypos=Math.max(this.oFence.top,ypos); - if (aStyles.position==='fixed') { - ypos=Math.min(this.oFence.top+this.oFence.height-oDiv2Drag.clientHeight-divDeltaY,ypos); - } - - return { - xpos: xpos, - ypos: ypos - }; - - }, - /** - * helper: get a varname for localstorage to save / get last position - * - * @private - * @param {string} s id of movable element - * @returns {String} - */ - _getVarname(s){ - return 'addi.saveddiv-'+s; - }, - /** - * save position of the given dom object - * - * @private - * @param {object} oDiv2Drag movable object - * @returns {undefined} - */ - _save(oDiv2Drag){ - aData={ - left: oDiv2Drag.style.left.replace('px',''), - top: oDiv2Drag.style.top.replace('px','') - }; - localStorage.setItem(this._getVarname(oDiv2Drag.id),JSON.stringify(aData)); - }, - - /** - * helper: save attributes in a variable: transition - * it is used for dragging: a transition slows down all movements - * @see _styleRestore() - * - * @private - * @param {object} oDiv2Drag movable object - * @returns {Boolean} - */ - _styleSave(oDiv2Drag){ - var aStyles = window.getComputedStyle(oDiv2Drag); - // create subitem for div id - if(this._saveData[oDiv2Drag.id] === undefined){ - this._saveData[oDiv2Drag.id]=new Object(); - }; - for (var sAttr in this._savstyles){ - // store value - this._saveData[oDiv2Drag.id][sAttr]=aStyles.getPropertyValue(sAttr); - // apply temp value - oDiv2Drag.style[sAttr]=this._savstyles[sAttr]; - } - return true; - }, - /** - * helper: retore attributes after moving - * @see _styleSave() - * @private - * @param {object} oDiv2Drag movable object - * @returns {Boolean} - */ - _styleRestore(oDiv2Drag){ - for (var sAttr in this._savstyles){ - oDiv2Drag.style[sAttr]=this._saveData[oDiv2Drag.id][sAttr]; - } - return true; - }, - /** - * helper: update size of this.oFence if it is set to fullscreen in - * case of resizing of the browser window - * - * @private - * @returns {undefined} - */ - _updateFence(){ - if(this.oFence.bFullscreen){ - this.oFence={ - bFullscreen: true, - top: 0, - left: 0, - width: window.innerWidth, - height: window.innerHeight - }; - }; - }, - - /** - * generate an id for a draggable div that has no id yet - * - * @private - * @returns {string} - */ - _generateId(){ - var sPrefix='generatedId-'; - var iCount=1; - while (document.getElementById(sPrefix+iCount)){ - iCount++; - } - return sPrefix+iCount; - }, - - // ------------------------------------------------------------ - // public functions - // ------------------------------------------------------------ - - /** - * make a single div movable: - * - add listener and - * - restore last saved position (if class "saveposition" exists) - * - * @param {object} oDiv2Drag movable object - * @param {object} oDiv2Click optional: clickable object - * @returns {undefined} - */ - initDiv(oDiv2Drag,oDiv2Click){ - var sDivId=oDiv2Drag.id; - if(!sDivId){ - sDivId=this._generateId(); - oDiv2Drag.id=sDivId; - } - - // force position: fixed - var aStyles = oDiv2Drag.currentStyle || window.getComputedStyle(oDiv2Drag); - - // console.log(oDiv2Drag.id + ' position: ' + aStyles.position); - if(!aStyles.position || aStyles.position=='static' /* || aStyles.position!='fixed' */){ - // oDiv2Drag.style.position='fixed'; - } - - // add events - // using atributes instead of addEventListener - o=(oDiv2Click ? oDiv2Click : oDiv2Drag); - o.onmousedown = function (event) { - addi._isDragging=true; - addi.startMoving(document.getElementById(sDivId),event); - }; - o.onmouseup = function () { - addi._isDragging=false; - addi.stopMoving(document.getElementById(sDivId)); - }; - - // restore last position - if (oDiv2Drag.className.indexOf('saveposition')!==false){ - this.load(oDiv2Drag); - } - }, - /** - * load stored position and apply it to given dom object - * - * @param {object} oDiv2Drag movable object - * @returns {Array|Object|Boolean} - */ - load(oDiv2Drag){ - var id=this._getVarname(oDiv2Drag.id); - - // detect the highest z-index - var aStyles = oDiv2Drag.currentStyle || window.getComputedStyle(oDiv2Drag); - if(aStyles.zIndex && aStyles.zIndex>0){ - this._addi_zIndex=Math.max(parseInt(aStyles.zIndex), this._addi_zIndex); - } - oDiv2Drag.style.zIndex=this._addi_zIndex++; - - var aData=localStorage.getItem(id) ? JSON.parse(localStorage.getItem(id)) : false; - if(aData && aData.left && aData.top){ - this.move(oDiv2Drag,aData.left,aData.top, true); - } - return aData; - }, - /** - * move obj to new position and store position in localstorage - * called from startMoving() and load() - * - * @param {object} oDiv2Drag movable object - * @param {integer} xpos position x - * @param {integer} ypos position y - * @param {boolean} bNoFix flag: skip fixing the position based on window size (is set to true in the load method) - * @returns {undefined} - */ - move(oDiv2Drag,xpos,ypos, bNoFix){ - oDiv2Drag.style.bottom = 'auto'; - - var aPos=bNoFix ? { 'xpos':xpos, 'ypos':ypos } : this._fixVisiblePosition(oDiv2Drag,xpos,ypos); - oDiv2Drag.style.left = aPos['xpos'] + 'px'; - oDiv2Drag.style.top = aPos['ypos'] + 'px'; - this._save(oDiv2Drag); - return true; - }, - - /** - * called by onmousedown event - * - * @param {object} oDiv2Drag movable object - * @param {object} evt event - * @returns {undefined} - */ - startMoving(oDiv2Drag,evt){ - if (oDiv2Drag.className.indexOf(this._dragClass)===false){ - return false; - } - - evt = evt || window.event; - var posX = evt.clientX, - posY = evt.clientY; - - // save some styles - this._styleSave(oDiv2Drag); - - - if(oDiv2Drag.className.indexOf(this._draggingClass)<0){ - oDiv2Drag.className+= ' '+this._draggingClass; - } - - // for FF only: - // if (navigator.appCodeName==='Mozilla' && navigator.userAgent.indexOf('Firefox/')>0){ - document.body.style.userSelect='none'; - - iDivWidth = parseInt(oDiv2Drag.style.width), - iDivHeight = parseInt(oDiv2Drag.style.height); - - oDiv2Drag.style.cursor='move'; - oDiv2Drag.style.zIndex=this._addi_zIndex++; - - iDivLeft = oDiv2Drag.style.left ? oDiv2Drag.style.left.replace('px','') : oDiv2Drag.offsetLeft; - iDivTop = oDiv2Drag.style.top? oDiv2Drag.style.top.replace('px','') : oDiv2Drag.offsetTop; - var diffX = posX - iDivLeft, - diffY = posY - iDivTop; - document.onmousemove = function(evt){ - evt = evt || window.event; - var posX = evt.clientX, - posY = evt.clientY, - aX = posX - diffX, - aY = posY - diffY; - addi.move(oDiv2Drag,aX,aY); - }; - return true; - }, - /** - * called on mouse up event - * - * @param {object} oDiv2Drag movable object - * @returns {undefined} - */ - stopMoving(oDiv2Drag){ - oDiv2Drag.style.cursor='default'; - // retore styles - this._styleRestore(oDiv2Drag); - document.body.style.userSelect='auto'; - oDiv2Drag.className=oDiv2Drag.className.replace(' '+this._draggingClass, ''); - oDiv2Drag.className=oDiv2Drag.className.replace(this._draggingClass, ''); - - document.onmousemove = function(){}; - }, - /** - * reset position - * - * @param {bool} bRemoveLocalstorage flag: remove saved local variable too - * @returns {undefined} - */ - resetPos(){ - var oList = document.getElementsByClassName(this._dragClass); - if(oList && oList.length){ - for (var i = 0; i < oList.length; i++) { - oList[i].style = ''; - this._save(oList[i]); - } - } - }, - /** - * reset style, onmousedown, onmouseup to make divs unmovable again - * - * @param {bool} bRemoveLocalstorage flag: remove saved local variable too - * @returns {undefined} - */ - reset(bRemoveLocalstorage){ - // scan all elements with class draggable and reset - var oList = document.getElementsByClassName(this._dragClass); - if(oList && oList.length){ - for (var i = 0; i < oList.length; i++) { - this._resetDiv(oList[i],bRemoveLocalstorage); - } - } - }, - /** - * reset a single div and make it unmovable - * - * @private - * @param {object} oDiv2Drag movable object - * @param {bool} bRemoveLocalstorage flag: remove saved local variable too - * @returns {undefined} - */ - _resetDiv(oDiv2Drag, bRemoveLocalstorage){ - oDiv2Drag.onmousemove = null; - oDiv2Drag.onmouseup = null; - oDiv2Drag.onmousedown = null; - oDiv2Drag.style = ''; - if(bRemoveLocalstorage){ - localStorage.removeItem(this._getVarname(oDiv2Drag.id)); - } - } - }; -}(); -- GitLab