Adding indexmenu version 2024-01-05 (ed06f21).
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
92cc8375f2
commit
f339727d60
766 changed files with 83299 additions and 0 deletions
|
@ -0,0 +1,128 @@
|
|||
/*!
|
||||
* jquery.fancytree.multi.js
|
||||
*
|
||||
* Allow multiple selection of nodes by mouse or keyboard.
|
||||
* (Extension module for jquery.fancytree.js: https://github.com/mar10/fancytree/)
|
||||
*
|
||||
* Copyright (c) 2008-2023, Martin Wendt (https://wwWendt.de)
|
||||
*
|
||||
* Released under the MIT license
|
||||
* https://github.com/mar10/fancytree/wiki/LicenseInfo
|
||||
*
|
||||
* @version 2.38.3
|
||||
* @date 2023-02-01T20:52:50Z
|
||||
*/
|
||||
|
||||
(function (factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(["jquery", "./jquery.fancytree"], factory);
|
||||
} else if (typeof module === "object" && module.exports) {
|
||||
// Node/CommonJS
|
||||
require("./jquery.fancytree");
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
})(function ($) {
|
||||
"use strict";
|
||||
|
||||
/*******************************************************************************
|
||||
* Private functions and variables
|
||||
*/
|
||||
|
||||
// var isMac = /Mac/.test(navigator.platform);
|
||||
|
||||
/*******************************************************************************
|
||||
* Extension code
|
||||
*/
|
||||
$.ui.fancytree.registerExtension({
|
||||
name: "multi",
|
||||
version: "2.38.3",
|
||||
// Default options for this extension.
|
||||
options: {
|
||||
allowNoSelect: false, //
|
||||
mode: "sameParent", //
|
||||
// Events:
|
||||
// beforeSelect: $.noop // Return false to prevent cancel/save (data.input is available)
|
||||
},
|
||||
|
||||
treeInit: function (ctx) {
|
||||
this._superApply(arguments);
|
||||
this.$container.addClass("fancytree-ext-multi");
|
||||
if (ctx.options.selectMode === 1) {
|
||||
$.error(
|
||||
"Fancytree ext-multi: selectMode: 1 (single) is not compatible."
|
||||
);
|
||||
}
|
||||
},
|
||||
nodeClick: function (ctx) {
|
||||
var //pluginOpts = ctx.options.multi,
|
||||
tree = ctx.tree,
|
||||
node = ctx.node,
|
||||
activeNode = tree.getActiveNode() || tree.getFirstChild(),
|
||||
isCbClick = ctx.targetType === "checkbox",
|
||||
isExpanderClick = ctx.targetType === "expander",
|
||||
eventStr = $.ui.fancytree.eventToString(ctx.originalEvent);
|
||||
|
||||
switch (eventStr) {
|
||||
case "click":
|
||||
if (isExpanderClick) {
|
||||
break;
|
||||
} // Default handler will expand/collapse
|
||||
if (!isCbClick) {
|
||||
tree.selectAll(false);
|
||||
// Select clicked node (radio-button mode)
|
||||
node.setSelected();
|
||||
}
|
||||
// Default handler will toggle checkbox clicks and activate
|
||||
break;
|
||||
case "shift+click":
|
||||
// node.debug("click")
|
||||
tree.visitRows(
|
||||
function (n) {
|
||||
// n.debug("click2", n===node, node)
|
||||
n.setSelected();
|
||||
if (n === node) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
{
|
||||
start: activeNode,
|
||||
reverse: activeNode.isBelowOf(node),
|
||||
}
|
||||
);
|
||||
break;
|
||||
case "ctrl+click":
|
||||
case "meta+click": // Mac: [Command]
|
||||
node.toggleSelected();
|
||||
return;
|
||||
}
|
||||
return this._superApply(arguments);
|
||||
},
|
||||
nodeKeydown: function (ctx) {
|
||||
var tree = ctx.tree,
|
||||
node = ctx.node,
|
||||
event = ctx.originalEvent,
|
||||
eventStr = $.ui.fancytree.eventToString(event);
|
||||
|
||||
switch (eventStr) {
|
||||
case "up":
|
||||
case "down":
|
||||
tree.selectAll(false);
|
||||
node.navigate(event.which, true);
|
||||
tree.getActiveNode().setSelected();
|
||||
break;
|
||||
case "shift+up":
|
||||
case "shift+down":
|
||||
node.navigate(event.which, true);
|
||||
tree.getActiveNode().setSelected();
|
||||
break;
|
||||
}
|
||||
return this._superApply(arguments);
|
||||
},
|
||||
});
|
||||
// Value returned by `require('jquery.fancytree..')`
|
||||
return $.ui.fancytree;
|
||||
}); // End of closure
|
Loading…
Add table
Add a link
Reference in a new issue