columns object for datatables.net
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/391970/746961/DATA_TABLE_COLUMN.js
// ==UserScript== // @name DATA_TABLE_COLUMN // @namespace hoehleg.userscripts.private // @version 0.1 // @description columns object for datatables.net // @author Gerrit Höhle // @require https://greasyfork.org/scripts/391854-enum/code/Enum.js?version=746956 // @require https://greasyfork.org/scripts/391608-privateproperty/code/PrivateProperty.js?version=744693 // @grant none // ==/UserScript== /* jshint esnext: true */ /* globals Enum, PrivateProperty */ const DATA_TABLE_COLUMN = (() => { const _renderFunctions = new PrivateProperty(); return class DATA_TABLE_COLUMN extends Enum { constructor(...args) { super(...args); _renderFunctions.set(this, {}); Object.defineProperties(this, { title: { value: this.text, enumerable: true }, data: { get() { return this._data || null; }, set(value) { this._data = value; }, enumerable: true }, render: { value: (data, type, row, meta) => { const fnc = _renderFunctions.get(this)[type]; return fnc ? fnc(data, row, meta) : data; }, enumerable: true } }); } set renderFunctions({ any, filter = any, display = any, type = any, sort = any }) { _renderFunctions.set(this, Object.fromEntries(Object.entries({ filter, display, type, sort }).filter(([, v]) => typeof v === "function"))); } get renderFunctions() { return _renderFunctions.get(this); } }; })();