DATA_TABLE_COLUMN

columns object for datatables.net

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/391970/746961/DATA_TABLE_COLUMN.js

  1. // ==UserScript==
  2. // @name DATA_TABLE_COLUMN
  3. // @namespace hoehleg.userscripts.private
  4. // @version 0.1
  5. // @description columns object for datatables.net
  6. // @author Gerrit Höhle
  7. // @require https://gf.qytechs.cn/scripts/391854-enum/code/Enum.js?version=746956
  8. // @require https://gf.qytechs.cn/scripts/391608-privateproperty/code/PrivateProperty.js?version=744693
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. /* jshint esnext: true */
  13. /* globals Enum, PrivateProperty */
  14. const DATA_TABLE_COLUMN = (() => {
  15. const _renderFunctions = new PrivateProperty();
  16.  
  17. return class DATA_TABLE_COLUMN extends Enum {
  18. constructor(...args) {
  19. super(...args);
  20.  
  21. _renderFunctions.set(this, {});
  22.  
  23. Object.defineProperties(this, {
  24. title: {
  25. value: this.text, enumerable: true
  26. },
  27. data: {
  28. get() {
  29. return this._data || null;
  30. },
  31. set(value) {
  32. this._data = value;
  33. },
  34. enumerable: true
  35. },
  36. render: {
  37. value: (data, type, row, meta) => {
  38. const fnc = _renderFunctions.get(this)[type];
  39. return fnc ? fnc(data, row, meta) : data;
  40. },
  41. enumerable: true
  42. }
  43. });
  44. }
  45.  
  46. set renderFunctions({ any, filter = any, display = any, type = any, sort = any }) {
  47. _renderFunctions.set(this, Object.fromEntries(Object.entries({ filter, display, type, sort }).filter(([, v]) => typeof v === "function")));
  48. }
  49.  
  50. get renderFunctions() {
  51. return _renderFunctions.get(this);
  52. }
  53. };
  54. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址