Add Tom-Select lib

This commit is contained in:
jf-cbd
2025-11-13 10:48:06 +01:00
parent cef8fbc859
commit 7733f13d14
354 changed files with 53014 additions and 2 deletions

View File

@@ -0,0 +1,16 @@
/**
* Plugin: "drag_drop" (Tom Select)
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at:
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*
*/
import type TomSelect from '../../tom-select.ts';
export default function (this: TomSelect): void;

View File

@@ -0,0 +1,117 @@
"use strict";
/**
* Plugin: "drag_drop" (Tom Select)
* Copyright (c) contributors
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at:
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const utils_ts_1 = require("../../utils.js");
const vanilla_ts_1 = require("../../vanilla.js");
const insertAfter = (referenceNode, newNode) => {
var _a;
(_a = referenceNode.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, referenceNode.nextSibling);
};
const insertBefore = (referenceNode, newNode) => {
var _a;
(_a = referenceNode.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, referenceNode);
};
const isBefore = (referenceNode, newNode) => {
do {
newNode = newNode === null || newNode === void 0 ? void 0 : newNode.previousElementSibling;
if (referenceNode == newNode) {
return true;
}
} while (newNode && newNode.previousElementSibling);
return false;
};
function default_1() {
var self = this;
if (self.settings.mode !== 'multi')
return;
var orig_lock = self.lock;
var orig_unlock = self.unlock;
let sortable = true;
let drag_item;
/**
* Add draggable attribute to item
*/
self.hook('after', 'setupTemplates', () => {
var orig_render_item = self.settings.render.item;
self.settings.render.item = (data, escape) => {
const item = (0, vanilla_ts_1.getDom)(orig_render_item.call(self, data, escape));
(0, vanilla_ts_1.setAttr)(item, { 'draggable': 'true' });
// prevent doc_mousedown (see tom-select.ts)
const mousedown = (evt) => {
if (!sortable)
(0, utils_ts_1.preventDefault)(evt);
evt.stopPropagation();
};
const dragStart = (evt) => {
drag_item = item;
setTimeout(() => {
item.classList.add('ts-dragging');
}, 0);
};
const dragOver = (evt) => {
evt.preventDefault();
item.classList.add('ts-drag-over');
moveitem(item, drag_item);
};
const dragLeave = () => {
item.classList.remove('ts-drag-over');
};
const moveitem = (targetitem, dragitem) => {
if (dragitem === undefined)
return;
if (isBefore(dragitem, item)) {
insertAfter(targetitem, dragitem);
}
else {
insertBefore(targetitem, dragitem);
}
};
const dragend = () => {
document.querySelectorAll('.ts-drag-over').forEach(el => el.classList.remove('ts-drag-over'));
drag_item === null || drag_item === void 0 ? void 0 : drag_item.classList.remove('ts-dragging');
drag_item = undefined;
var values = [];
self.control.querySelectorAll(`[data-value]`).forEach((el) => {
if (el.dataset.value) {
let value = el.dataset.value;
if (value) {
values.push(value);
}
}
});
self.setValue(values);
};
(0, utils_ts_1.addEvent)(item, 'mousedown', mousedown);
(0, utils_ts_1.addEvent)(item, 'dragstart', dragStart);
(0, utils_ts_1.addEvent)(item, 'dragenter', dragOver);
(0, utils_ts_1.addEvent)(item, 'dragover', dragOver);
(0, utils_ts_1.addEvent)(item, 'dragleave', dragLeave);
(0, utils_ts_1.addEvent)(item, 'dragend', dragend);
return item;
};
});
self.hook('instead', 'lock', () => {
sortable = false;
return orig_lock.call(self);
});
self.hook('instead', 'unlock', () => {
sortable = true;
return orig_unlock.call(self);
});
}
;
//# sourceMappingURL=plugin.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/plugins/drag_drop/plugin.ts"],"names":[],"mappings":"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"}