├── .gitignore ├── README.md ├── asset ├── calendar.js ├── main.js └── zui │ └── dist │ ├── css │ ├── zui-theme.min.css │ ├── zui.lite.min.css │ └── zui.min.css │ ├── fonts │ ├── zenicon.eot │ ├── zenicon.svg │ ├── zenicon.ttf │ └── zenicon.woff │ ├── js │ ├── langs │ │ ├── zui.lang.de.min.js │ │ └── zui.lang.ja.min.js │ ├── zui.lite.min.js │ └── zui.min.js │ └── lib │ ├── ajaxFake │ └── zui.ajaxFake.min.js │ ├── array │ └── zui.array.min.js │ ├── board │ ├── zui.board.css │ ├── zui.board.js │ ├── zui.board.min.css │ └── zui.board.min.js │ ├── bootbox │ ├── bootbox.css │ ├── bootbox.js │ ├── bootbox.min.css │ └── bootbox.min.js │ ├── calendar │ ├── zui.calendar.css │ ├── zui.calendar.js │ ├── zui.calendar.min.css │ └── zui.calendar.min.js │ ├── chart │ ├── zui.chart.js │ └── zui.chart.min.js │ ├── chosen │ ├── chosen.css │ ├── chosen.js │ ├── chosen.min.css │ └── chosen.min.js │ ├── chosenicons │ ├── zui.chosenicons.css │ ├── zui.chosenicons.js │ ├── zui.chosenicons.min.css │ └── zui.chosenicons.min.js │ ├── clipboard │ ├── clipboard.js │ └── clipboard.min.js │ ├── colorpicker │ ├── zui.colorpicker.css │ ├── zui.colorpicker.js │ ├── zui.colorpicker.min.css │ └── zui.colorpicker.min.js │ ├── colorset.js │ ├── zui.colorset.js │ └── zui.colorset.min.js │ ├── contextmenu │ ├── zui.contextmenu.js │ └── zui.contextmenu.min.js │ ├── dashboard │ ├── zui.dashboard.css │ ├── zui.dashboard.js │ ├── zui.dashboard.min.css │ └── zui.dashboard.min.js │ ├── datagrid │ ├── zui.datagrid.css │ ├── zui.datagrid.js │ ├── zui.datagrid.min.css │ └── zui.datagrid.min.js │ ├── datatable │ ├── zui.datatable.css │ ├── zui.datatable.js │ ├── zui.datatable.min.css │ └── zui.datatable.min.js │ ├── datetimepicker │ ├── datetimepicker.css │ ├── datetimepicker.js │ ├── datetimepicker.min.css │ └── datetimepicker.min.js │ ├── hotkey │ ├── hotkey.js │ └── hotkey.min.js │ ├── ieonly │ ├── excanvas.js │ ├── html5shiv.js │ └── respond.js │ ├── imgcutter │ ├── zui.imgcutter.css │ ├── zui.imgcutter.js │ ├── zui.imgcutter.min.css │ └── zui.imgcutter.min.js │ ├── imgready │ ├── imgready.js │ └── imgready.min.js │ ├── jquery │ ├── jquery-3.4.1.min.js │ ├── jquery-migrate-3.1.0.min.js │ └── jquery.js │ ├── kindeditor │ ├── README.md │ ├── kindeditor.css │ ├── kindeditor.js │ ├── kindeditor.min.css │ ├── kindeditor.min.js │ ├── lang │ │ ├── ar.js │ │ ├── en.js │ │ ├── fr.js │ │ ├── ja.js │ │ ├── zh_CN.js │ │ └── zh_TW.js │ ├── plugins.zip │ └── themes │ │ ├── common │ │ ├── anchor.gif │ │ ├── audio.png │ │ ├── blank.gif │ │ ├── loading.gif │ │ ├── media.png │ │ └── video.png │ │ └── default │ │ └── default.png │ ├── markdoc │ ├── zui.markdoc.js │ └── zui.markdoc.min.js │ ├── migrate1.2 │ ├── zui.migrate1.2.js │ └── zui.migrate1.2.min.js │ ├── picker │ ├── zui.picker.css │ ├── zui.picker.js │ ├── zui.picker.min.css │ └── zui.picker.min.js │ ├── prettify │ ├── lang-apollo.js │ ├── lang-basic.js │ ├── lang-clj.js │ ├── lang-css.js │ ├── lang-dart.js │ ├── lang-erlang.js │ ├── lang-go.js │ ├── lang-hs.js │ ├── lang-lisp.js │ ├── lang-llvm.js │ ├── lang-lua.js │ ├── lang-matlab.js │ ├── lang-ml.js │ ├── lang-mumps.js │ ├── lang-n.js │ ├── lang-pascal.js │ ├── lang-proto.js │ ├── lang-r.js │ ├── lang-rd.js │ ├── lang-scala.js │ ├── lang-sql.js │ ├── lang-tcl.js │ ├── lang-tex.js │ ├── lang-vb.js │ ├── lang-vhdl.js │ ├── lang-wiki.js │ ├── lang-xq.js │ ├── lang-yaml.js │ ├── prettify.css │ ├── prettify.js │ └── run_prettify.js │ ├── selectable │ ├── zui.selectable.js │ └── zui.selectable.min.js │ ├── sortable │ ├── zui.sortable.js │ └── zui.sortable.min.js │ ├── tabs │ ├── zui.tabs.css │ ├── zui.tabs.js │ ├── zui.tabs.min.css │ └── zui.tabs.min.js │ ├── treemap │ ├── zui.treemap.css │ ├── zui.treemap.js │ ├── zui.treemap.min.css │ └── zui.treemap.min.js │ ├── ueditor │ ├── ueditor.css │ └── ueditor.min.css │ └── uploader │ ├── Moxie.swf │ ├── Moxie.xap │ ├── zui.uploader.css │ ├── zui.uploader.js │ ├── zui.uploader.min.css │ └── zui.uploader.min.js ├── index.html ├── preview .png └── widget.json /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 思源日历挂件 2 | 3 | 4 | 5 | 6 | ## 下载 7 | git clone https://github.com/bestv5/sy-calendar.git 8 | 9 | 或者 10 | 11 | git clone https://hub.fastgit.org/bestv5/sy-calendar.git 12 | 13 | 或者直接下载文件 14 | 15 | https://github.com/bestv5/sy-calendar/archive/refs/heads/main.zip 16 | 17 | 解压后把文件夹重命名为sy-calendar 18 | 19 | ## 使用方法 20 | 1. 下载 21 | 22 | 命令行clone: 23 | 24 | ``` 25 | git clone https://github.com/bestv5/sy-calendar.git 26 | 或者 27 | git clone https://hub.fastgit.org/bestv5/sy-calendar.git 28 | ``` 29 | 30 | 直接下载文件: 31 | 32 | `https://github.com/bestv5/sy-calendar/archive/refs/heads/main.zip 33 | ` 34 | 2. 解压后把文件夹重命名为sy-calendar(如果已是,跳过) 35 | 36 | 目录结构: 37 | 38 | /sy-calendar/ 39 | 40 | |- index.html 41 | 42 | |- assset 43 | 44 | |- readme.md 45 | 46 | |- widget.json 47 | 48 | 49 | 50 | 3. 复制下载下来的文件夹sy-calendar,到思源的data/widgets目录 51 | 52 | 4. 在笔记页面添加挂件 53 | 54 | 订阅用户: 55 | 56 | 在笔记页面,输入 "/",弹出面板选择挂件。 57 | 58 | 非订阅用户: 59 | 60 | 通过页面添加iframe,然后在url里添加/widgets/sy-calendar/index.html 61 | 62 | 不会的看下思源的帮助手册 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /asset/zui/dist/fonts/zenicon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/fonts/zenicon.eot -------------------------------------------------------------------------------- /asset/zui/dist/fonts/zenicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/fonts/zenicon.ttf -------------------------------------------------------------------------------- /asset/zui/dist/fonts/zenicon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/fonts/zenicon.woff -------------------------------------------------------------------------------- /asset/zui/dist/js/langs/zui.lang.de.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: Lang.de - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | $.zui.lang("de",{"zui.pager":{pageOfText:"Seite {0}",prev:"Zurück",next:"Nächste Seite",first:"Erste Seite",last:"Letzte Seite","goto":"Goto",pageOf:"Seite {page}",totalPage:"{totalPage} Seiten",totalCount:"Total: {recTotal} Artikel",pageSize:"{recPerPage} Artikel pro Seite",itemsRange:"Seiten {start} bis {end}",pageOfTotal:"Seite {page}/{totalPage}"},"zui.boards":{append2end:"Gehen Sie zum Ende"},"zui.browser":{tip:"Online. Sorgenfrei. Aktualisiere deinen Browser noch heute!"},"zui.calendar":{weekNames:["Son","Mon","Die","Mit","Don","Fri","Sam"],monthNames:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",year:"{0}Jahr",month:"{0}Monat",yearMonth:"{0}-{1}"},"zui.chosenIcons":{emptyIcon:"[Kein Icon]",commonIcons:"Gemeinsame Symbole",webIcons:"Web-Symbol",editorIcons:"Editor-Symbol",directionalIcons:"Pfeil Zusammenfluss",otherIcons:"Andere Symbole"},"zui.colorPicker":{errorTip:"Kein gültiger Farbwert"},"zui.datagrid":{errorCannotGetDataFromRemote:"Daten vom Remote-Server ({0}) können nicht abgerufen werden.",errorCannotHandleRemoteData:"Die vom Remote-Server zurückgegebenen Daten können nicht verarbeitet werden."},"zui.guideViewer":{prevStep:"Vorheriger Schritt",nextStep:"Nächster Schritt"},"zui.tabs":{reload:"Neu laden",close:"Schliessen",closeOthers:"Schließen Sie andere Registerkarten",closeRight:"Schließen Sie die rechte Registerkarte",reopenLast:"Letzten geschlossenen Tab wiederherstellen",errorCannotFetchFromRemote:"Inhalt kann nicht vom Remote-Server abgerufen werden ({0})."},"zui.uploader":{},datetimepicker:{days:["Sonntag","Montag","Diensteg","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fri","Sam"],daysMin:["Son","Mon","Die","Mit","Don","Fri","Sam"],months:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",suffix:[],meridiem:[]},chosen:{no_results_text:"Nicht gefunden"},bootbox:{OK:"OK",CANCEL:"Stornieren",CONFIRM:"Bestätigen"}}); -------------------------------------------------------------------------------- /asset/zui/dist/js/langs/zui.lang.ja.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: Lang.ja - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | $.zui.lang("ja",{"zui.pager":{pageOfText:"ページ{0}",prev:"前へ",next:"次のページ",first:"最初のページ",last:"最後のページ","goto":"回す",pageOf:"ページ {page}",totalPage:"合計 {totalPage} ページ",totalCount:"{recTotal} アイテム",pageSize:"1ページに {recPerPage} 個のアイテム",itemsRange:"ページ {start} からページ {end}",pageOfTotal:"合計 {page}/{totalPage}"},"zui.boards":{append2end:"最後に移動"},"zui.browser":{tip:"安心してネットを使うために、今すぐブラウザをアップグレード !"},"zui.calendar":{weekNames:["月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日曜日"],monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",year:"{0}年",month:"{0}月",yearMonth:"{0}年{1}月"},"zui.chosenIcons":{emptyIcon:"[アイコンなし]",commonIcons:"共通のアイコン",webIcons:"Webアイコン",editorIcons:"エディターアイコン",directionalIcons:"矢印の合流点",otherIcons:"その他のアイコン"},"zui.colorPicker":{errorTip:"有効な色の値ではありません"},"zui.datagrid":{errorCannotGetDataFromRemote:"リモートサーバーからデータを取得できません({0})。",errorCannotHandleRemoteData:"リモートサーバーから返されたデータを処理できません。"},"zui.guideViewer":{prevStep:"前のステップ",nextStep:"次のステップ"},"zui.tabs":{reload:"リロード",close:"閉じる",closeOthers:"他のタブを閉じる",closeRight:"右のタブを閉じる",reopenLast:"最後に閉じたタブを復元",errorCannotFetchFromRemote:"リモートサーバーからコンテンツを取得できません({0})。"},"zui.uploader":{},datetimepicker:{days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜","日曜"],daysShort:["日","月","火","水","木","金","土","日"],daysMin:["日","月","火","水","木","金","土","日"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",suffix:[],meridiem:[]},chosen:{no_results_text:"見つかりません"},bootbox:{OK:"オーケー",CANCEL:"キャンセル",CONFIRM:"確認する"}}); -------------------------------------------------------------------------------- /asset/zui/dist/lib/ajaxFake/zui.ajaxFake.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: Ajax 响应模拟工具 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(e){"use strict";var a=[],l=e.ajax,r=function(l){for(var r=a.length-1;r>=0;--r){var t=a[r];if(t.urlMatch instanceof RegExp){if(t.urlMatch.test(l))return e.extend(!0,{url:l},t)}else if("function"==typeof t.urlMatch){if(t.urlMatch(l))return e.extend(!0,{url:l},t)}else if(0===l.indexOf(t.urlMatch))return e.extend(!0,{url:l},t)}},t=function(a){var t=a.url,n=r(t);if(n){var o=function(l,r){if(!n.aborted){var t=a.dataType;"json"===t?"string"==typeof l&&(l=e.parseJSON(l)):"string"!=typeof l&&(l=JSON.stringify(l)),a.success&&a.success(l,r),n.doneCallback&&n.doneCallback(l,r),a.complete&&a.complete(null,r),n.alwaysCallback&&n.alwaysCallback(l,r)}},c=function(e,l){n.aborted||(a.error&&a.error(null,e,l),n.failCallback&&n.failCallback(e,l),a.complete&&a.complete(null,e),n.alwaysCallback&&n.alwaysCallback(e,l))};a.beforeSend&&a.beforeSend(null,a);var u=function(){if(!n.aborted){var e="function"==typeof n.route?n.route.call(n,a,o,c):n.route;return e!==!0&&(e===!1?c(500):o(e,200)),console.groupCollapsed("%cFakeAjax %c"+t+"%c "+(e===!1?"Error":"Success"),"color: lightblue","text-decoration: underline",e===!1?"color: red":"color: green"),console.log("response",e),console.log("ajax options",a),console.groupEnd(),e}};return setTimeout(u,n.delay||0),n}return l.apply(null,arguments)},n=function(r,n,o){e.ajax_origin||(e.ajax_origin=l,e.ajax=t);var c={done:function(e){return this.doneCallback=e,this},fail:function(e){return this.failCallback=e,this},always:function(e){return this.alwaysCallback=e,this},abort:function(){this.aborted=!0}};e.isPlainObject(r)?e.extend(c,r):(c.urlMatch=r,c.route=n,e.isPlainObject(o)?e.extend(c,o):"number"==typeof o&&(c.delay=o)),a.push(c)};e.fakeServer=n}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/array/zui.array.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 数组辅助方法 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(){"use strict";var r="function";Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(r){var t=this.length,e=Number(arguments[1]);for(isNaN(e)?e=t-1:(e=e<0?Math.ceil(e):Math.floor(e),e<0?e+=t:e>=t&&(e=t-1));e>-1;e--)if(e in this&&this[e]===r)return e;return-1}),Array.prototype.every||(Array.prototype.every=function(t){var e=this.length;if(typeof t!=r)throw new TypeError;for(var o=arguments[1],n=0;n>>0;if("function"!=typeof r)throw new TypeError("predicate must be a function");for(var o=arguments[1],n=0;n>>0;if("function"!=typeof r)throw new TypeError("predicate must be a function");for(var o=arguments[1],n=0;n .panel-body { 71 | padding: 5px; 72 | background: #f1f1f1; 73 | } 74 | .boards:before, 75 | .boards:after { 76 | display: table; 77 | content: " "; 78 | } 79 | .boards:after { 80 | clear: both; 81 | } 82 | .boards.dragging .board.drop-in { 83 | border-color: #c4c4c4; 84 | -webkit-box-shadow: 1px 1px 15px rgba(0, 0, 0, .25); 85 | box-shadow: 1px 1px 15px rgba(0, 0, 0, .25); 86 | } 87 | .boards.dragging .board.drop-in .board-item-shadow { 88 | display: block; 89 | } 90 | .boards.dragging .board .board-item.board-item-empty { 91 | display: block; 92 | } 93 | .boards.dragging .board-item.disable-drop { 94 | display: none; 95 | } 96 | .boards.drop-in .board-item.drag-from { 97 | height: 0; 98 | padding: 0; 99 | margin: 0; 100 | overflow: hidden; 101 | border: transparent; 102 | } 103 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/board/zui.board.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 看板 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | /* ======================================================================== 9 | * ZUI: boards.js 10 | * http://openzui.com 11 | * ======================================================================== 12 | * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT 13 | * ======================================================================== */ 14 | 15 | 16 | (function($) { 17 | 'use strict'; 18 | 19 | if(!$.fn.droppable) throw new Error('Droppable requires for boards'); 20 | 21 | var NAME = 'zui.boards'; 22 | 23 | var Boards = function(element, options) { 24 | this.$ = $(element); 25 | this.options = this.getOptions(options); 26 | 27 | this.getLang(); 28 | this.init(); 29 | }; 30 | 31 | Boards.DEFAULTS = { 32 | lang: 'en', 33 | langs: { 34 | 'zh_cn': { 35 | append2end: '移动到末尾' 36 | }, 37 | 'zh_tw': { 38 | append2end: '移动到末尾' 39 | }, 40 | 'en': { 41 | append2end: 'Move to the end.' 42 | } 43 | } 44 | }; // default options 45 | 46 | Boards.prototype.getOptions = function(options) { 47 | options = $.extend({}, Boards.DEFAULTS, this.$.data(), options); 48 | return options; 49 | }; 50 | 51 | Boards.prototype.getLang = function() { 52 | var options = this.options; 53 | this.langName = options.lang || $.zui.clientLang(); 54 | this.lang = $.zui.getLangData(NAME, this.langName, options.langs); 55 | }; 56 | 57 | Boards.prototype.init = function() { 58 | var idSeed = 1; 59 | var lang = this.lang; 60 | this.$.find('.board-item:not(".disable-drop"), .board:not(".disable-drop")').each(function() { 61 | var $this = $(this); 62 | if($this.attr('id')) { 63 | $this.attr('data-id', $this.attr('id')); 64 | } else if(!$this.attr('data-id')) { 65 | $this.attr('data-id', 'board' + (idSeed++)); 66 | } 67 | 68 | if($this.hasClass('board')) { 69 | $this.find('.board-list').append('
{append2end}
'.format(lang)) 70 | .append('
'.format(lang)); 71 | } 72 | }); 73 | 74 | this.bind(); 75 | }; 76 | 77 | Boards.prototype.bind = function(items) { 78 | var $boards = this.$, 79 | setting = this.options; 80 | 81 | $boards.droppable($.extend({ 82 | before: setting.before, 83 | target: '.board-item:not(".disable-drop, .board-item-shadow")', 84 | flex: true, 85 | selector: '.board-item:not(".disable-drop, .board-item-shadow")', 86 | start: function(e) { 87 | $boards.addClass('dragging').find('.board-item-shadow').height(e.element.outerHeight()); 88 | }, 89 | drag: function(e) { 90 | $boards.find('.board.drop-in-empty').removeClass('drop-in-empty'); 91 | if(e.isIn) { 92 | var board = e.target.closest('.board').addClass('drop-in'); 93 | var shadow = board.find('.board-item-shadow'); 94 | var target = e.target; 95 | 96 | $boards.addClass('drop-in').find('.board.drop-in').not(board).removeClass('drop-in'); 97 | 98 | shadow.insertBefore(target); 99 | 100 | board.toggleClass('drop-in-empty', target.hasClass('board-item-empty')); 101 | } 102 | }, 103 | drop: function(e) { 104 | if(e.isNew) { 105 | var result; 106 | if(typeof setting['drop'] === 'function') { 107 | result = setting['drop'](e); 108 | } 109 | if(result !== false) e.element.insertBefore(e.target); 110 | } 111 | }, 112 | finish: function() { 113 | $boards.removeClass('dragging').removeClass('drop-in').find('.board.drop-in').removeClass('drop-in'); 114 | } 115 | }, setting.droppable)); 116 | }; 117 | 118 | $.fn.boards = function(option) { 119 | return this.each(function() { 120 | var $this = $(this); 121 | var data = $this.data(NAME); 122 | var options = typeof option == 'object' && option; 123 | 124 | if(!data) $this.data(NAME, (data = new Boards(this, options))); 125 | 126 | if(typeof option == 'string') data[option](); 127 | }); 128 | }; 129 | 130 | $.fn.boards.Constructor = Boards; 131 | }(jQuery)); 132 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/board/zui.board.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 看板 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.board-item{padding:6px 10px;margin-bottom:5px;background:#fff;border:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.05);box-shadow:0 1px 0 rgba(0,0,0,.05);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.board-item:hover{-webkit-box-shadow:0 1px 1 rgba(0,0,0,.1);box-shadow:0 1px 1 rgba(0,0,0,.1)}.board-item.board-item-empty{display:none;color:grey;border-style:dashed}.board-item.board-item-shadow{display:none;padding:0;background:#ddd;border:none;border-color:#ddd;-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,.1);box-shadow:inset 0 0 4px rgba(0,0,0,.1);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.board-item.drag-shadow{width:250px;cursor:move;background-color:#fff;border-color:#c4c4c4;-webkit-box-shadow:1px 1px 15px rgba(0,0,0,.25);box-shadow:1px 1px 15px rgba(0,0,0,.25);opacity:.9}.board-item.drag-from{background-color:#ebf2f9}.board-list .board-item:last-child{margin-bottom:0}.board{float:left;width:250px;margin-right:10px}.board.drop-in-empty .board-item-empty{height:0;padding:0;margin:0;overflow:hidden;border:transparent}.board:last-child{margin-right:0}.board>.panel-body{padding:5px;background:#f1f1f1}.boards:after,.boards:before{display:table;content:" "}.boards:after{clear:both}.boards.dragging .board.drop-in{border-color:#c4c4c4;-webkit-box-shadow:1px 1px 15px rgba(0,0,0,.25);box-shadow:1px 1px 15px rgba(0,0,0,.25)}.boards.dragging .board.drop-in .board-item-shadow{display:block}.boards.dragging .board .board-item.board-item-empty{display:block}.boards.dragging .board-item.disable-drop{display:none}.boards.drop-in .board-item.drag-from{height:0;padding:0;margin:0;overflow:hidden;border:transparent} -------------------------------------------------------------------------------- /asset/zui/dist/lib/board/zui.board.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 看板 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(t){"use strict";if(!t.fn.droppable)throw new Error("Droppable requires for boards");var a="zui.boards",o=function(a,o){this.$=t(a),this.options=this.getOptions(o),this.getLang(),this.init()};o.DEFAULTS={lang:"en",langs:{zh_cn:{append2end:"移动到末尾"},zh_tw:{append2end:"移动到末尾"},en:{append2end:"Move to the end."}}},o.prototype.getOptions=function(a){return a=t.extend({},o.DEFAULTS,this.$.data(),a)},o.prototype.getLang=function(){var o=this.options;this.langName=o.lang||t.zui.clientLang(),this.lang=t.zui.getLangData(a,this.langName,o.langs)},o.prototype.init=function(){var a=1,o=this.lang;this.$.find('.board-item:not(".disable-drop"), .board:not(".disable-drop")').each(function(){var i=t(this);i.attr("id")?i.attr("data-id",i.attr("id")):i.attr("data-id")||i.attr("data-id","board"+a++),i.hasClass("board")&&i.find(".board-list").append('
{append2end}
'.format(o)).append('
'.format(o))}),this.bind()},o.prototype.bind=function(a){var o=this.$,i=this.options;o.droppable(t.extend({before:i.before,target:'.board-item:not(".disable-drop, .board-item-shadow")',flex:!0,selector:'.board-item:not(".disable-drop, .board-item-shadow")',start:function(t){o.addClass("dragging").find(".board-item-shadow").height(t.element.outerHeight())},drag:function(t){if(o.find(".board.drop-in-empty").removeClass("drop-in-empty"),t.isIn){var a=t.target.closest(".board").addClass("drop-in"),i=a.find(".board-item-shadow"),e=t.target;o.addClass("drop-in").find(".board.drop-in").not(a).removeClass("drop-in"),i.insertBefore(e),a.toggleClass("drop-in-empty",e.hasClass("board-item-empty"))}},drop:function(t){if(t.isNew){var a;"function"==typeof i.drop&&(a=i.drop(t)),a!==!1&&t.element.insertBefore(t.target)}},finish:function(){o.removeClass("dragging").removeClass("drop-in").find(".board.drop-in").removeClass("drop-in")}},i.droppable))},t.fn.boards=function(i){return this.each(function(){var e=t(this),n=e.data(a),r="object"==typeof i&&i;n||e.data(a,n=new o(this,r)),"string"==typeof i&&n[i]()})},t.fn.boards.Constructor=o}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/bootbox/bootbox.css: -------------------------------------------------------------------------------- 1 | .bootbox.modal .modal-dialog { 2 | width: 400px; 3 | } 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/bootbox/bootbox.min.css: -------------------------------------------------------------------------------- 1 | .bootbox.modal .modal-dialog{width:400px} -------------------------------------------------------------------------------- /asset/zui/dist/lib/calendar/zui.calendar.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 日历 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | .calendar { 9 | margin-bottom: 20px; 10 | } 11 | .calendar > header { 12 | margin-bottom: 10px; 13 | } 14 | .calendar > header .btn-toolbar > .btn-group { 15 | margin-right: 10px; 16 | } 17 | .calendar > header .calendar-caption { 18 | line-height: 30px; 19 | } 20 | .calendar .table { 21 | margin-bottom: 0; 22 | table-layout: fixed; 23 | } 24 | .calendar .table > thead > tr > th, 25 | .calendar .table > tbody > tr > td { 26 | width: 14.28571429%; 27 | padding: 0; 28 | } 29 | .calendar .table > thead > tr > th { 30 | color: #808080; 31 | text-align: center; 32 | background-color: #fff; 33 | } 34 | .calendar .weekends-empty .table > thead > tr > th, 35 | .calendar .weekends-empty .table > tbody > tr > td { 36 | width: 20%; 37 | } 38 | .calendar .weekends-empty .table > thead > tr > th.weekend-head, 39 | .calendar .weekends-empty .table > tbody > tr > td.weekend-day { 40 | width: 60px; 41 | min-width: 40px; 42 | } 43 | .calendar .day { 44 | opacity: .7; 45 | } 46 | .calendar .day > .heading { 47 | padding: 2px 5px; 48 | text-align: right; 49 | } 50 | .calendar .day > .heading > .month { 51 | padding: 1px 2px; 52 | color: #fff; 53 | white-space: nowrap; 54 | background-color: #b3b3b3; 55 | border-radius: 3px; 56 | } 57 | .calendar .day > .content { 58 | height: 100%; 59 | min-height: 70px; 60 | } 61 | .calendar .cell-day { 62 | background-color: #f1f1f1; 63 | } 64 | .calendar .cell-day.past > .day > .content { 65 | opacity: .7; 66 | } 67 | .calendar .cell-day.current-month { 68 | background: none; 69 | } 70 | .calendar .cell-day.current-month > .day { 71 | opacity: 1; 72 | } 73 | .calendar .cell-day.current { 74 | background-color: #fff0d5; 75 | -webkit-box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #808080; 76 | box-shadow: inset 1px 1px 0 #808080, inset -1px -1px 0 #808080; 77 | } 78 | .calendar .cell-day.current > .day > .content { 79 | padding: 0; 80 | } 81 | .calendar .cell-day.current > .day > .heading { 82 | background-color: rgba(0, 0, 0, .1); 83 | } 84 | .calendar .cell-day.drop-to { 85 | background-color: #fff0d5; 86 | opacity: 1; 87 | } 88 | .calendar .event { 89 | padding: 1px 5px; 90 | margin: 0 1px 1px; 91 | color: #fff; 92 | cursor: pointer; 93 | background-color: #3280fc; 94 | opacity: .95; 95 | -webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1); 96 | -o-transition: all .4s cubic-bezier(.175, .885, .32, 1); 97 | transition: all .4s cubic-bezier(.175, .885, .32, 1); 98 | } 99 | a.calendar .event:hover { 100 | background-color: #0462f7; 101 | } 102 | .calendar .event:hover { 103 | opacity: 1; 104 | } 105 | .calendar .event.drag-shadow { 106 | cursor: move; 107 | } 108 | .calendar .event.drag-from { 109 | opacity: .25; 110 | } 111 | .calendar .event.color-red { 112 | color: #fff; 113 | background-color: #ea644a; 114 | } 115 | a.calendar .event.color-red:hover { 116 | background-color: #e53d1c; 117 | } 118 | .calendar .event.color-green { 119 | color: #fff; 120 | background-color: #38b03f; 121 | } 122 | a.calendar .event.color-green:hover { 123 | background-color: #2c8931; 124 | } 125 | .calendar .event.color-yellow { 126 | color: #fff; 127 | background-color: #f1a325; 128 | } 129 | a.calendar .event.color-yellow:hover { 130 | background-color: #d5890e; 131 | } 132 | .calendar .event.color-blue { 133 | color: #fff; 134 | background-color: #03b8cf; 135 | } 136 | a.calendar .event.color-blue:hover { 137 | background-color: #028b9d; 138 | } 139 | .calendar .event.color-brown { 140 | color: #fff; 141 | background-color: #bd7b46; 142 | } 143 | a.calendar .event.color-brown:hover { 144 | background-color: #996337; 145 | } 146 | .calendar .event.color-purple { 147 | color: #fff; 148 | background-color: #8666b8; 149 | } 150 | a.calendar .event.color-purple:hover { 151 | background-color: #6c4aa1; 152 | } 153 | .calendar.limit-event-title .event { 154 | overflow: hidden; 155 | text-overflow: ellipsis; 156 | white-space: nowrap; 157 | } 158 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/calendar/zui.calendar.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 日历 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.calendar{margin-bottom:20px}.calendar>header{margin-bottom:10px}.calendar>header .btn-toolbar>.btn-group{margin-right:10px}.calendar>header .calendar-caption{line-height:30px}.calendar .table{margin-bottom:0;table-layout:fixed}.calendar .table>tbody>tr>td,.calendar .table>thead>tr>th{width:14.28571429%;padding:0}.calendar .table>thead>tr>th{color:grey;text-align:center;background-color:#fff}.calendar .weekends-empty .table>tbody>tr>td,.calendar .weekends-empty .table>thead>tr>th{width:20%}.calendar .weekends-empty .table>tbody>tr>td.weekend-day,.calendar .weekends-empty .table>thead>tr>th.weekend-head{width:60px;min-width:40px}.calendar .day{opacity:.7}.calendar .day>.heading{padding:2px 5px;text-align:right}.calendar .day>.heading>.month{padding:1px 2px;color:#fff;white-space:nowrap;background-color:#b3b3b3;border-radius:3px}.calendar .day>.content{height:100%;min-height:70px}.calendar .cell-day{background-color:#f1f1f1}.calendar .cell-day.past>.day>.content{opacity:.7}.calendar .cell-day.current-month{background:0 0}.calendar .cell-day.current-month>.day{opacity:1}.calendar .cell-day.current{background-color:#fff0d5;-webkit-box-shadow:inset 1px 1px 0 grey,inset -1px -1px 0 grey;box-shadow:inset 1px 1px 0 grey,inset -1px -1px 0 grey}.calendar .cell-day.current>.day>.content{padding:0}.calendar .cell-day.current>.day>.heading{background-color:rgba(0,0,0,.1)}.calendar .cell-day.drop-to{background-color:#fff0d5;opacity:1}.calendar .event{padding:1px 5px;margin:0 1px 1px;color:#fff;cursor:pointer;background-color:#3280fc;opacity:.95;-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}a.calendar .event:hover{background-color:#0462f7}.calendar .event:hover{opacity:1}.calendar .event.drag-shadow{cursor:move}.calendar .event.drag-from{opacity:.25}.calendar .event.color-red{color:#fff;background-color:#ea644a}a.calendar .event.color-red:hover{background-color:#e53d1c}.calendar .event.color-green{color:#fff;background-color:#38b03f}a.calendar .event.color-green:hover{background-color:#2c8931}.calendar .event.color-yellow{color:#fff;background-color:#f1a325}a.calendar .event.color-yellow:hover{background-color:#d5890e}.calendar .event.color-blue{color:#fff;background-color:#03b8cf}a.calendar .event.color-blue:hover{background-color:#028b9d}.calendar .event.color-brown{color:#fff;background-color:#bd7b46}a.calendar .event.color-brown:hover{background-color:#996337}.calendar .event.color-purple{color:#fff;background-color:#8666b8}a.calendar .event.color-purple:hover{background-color:#6c4aa1}.calendar.limit-event-title .event{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} -------------------------------------------------------------------------------- /asset/zui/dist/lib/chosenicons/zui.chosenicons.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 图标选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | .chosen-container.chosen-icons .chosen-results { 9 | padding: 5px; 10 | } 11 | .chosen-container.chosen-icons .chosen-results li { 12 | border-radius: 4px; 13 | } 14 | .chosen-container.chosen-icons .chosen-results li.group-result { 15 | padding: 5px 0; 16 | font-size: 12px; 17 | color: #666; 18 | border-radius: 0; 19 | } 20 | .chosen-container.chosen-icons .chosen-results li.group-option { 21 | display: inline-block !important; 22 | width: 30px; 23 | padding: 8px; 24 | font-size: 14px; 25 | line-height: 14px; 26 | text-align: center; 27 | } 28 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/chosenicons/zui.chosenicons.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 图标选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | /* ======================================================================== 9 | * ZUI: chosen.icons.js 10 | * http://openzui.com 11 | * ======================================================================== 12 | * Copyright 2014-2020 cnezsoft.com; Licensed MIT 13 | * ======================================================================== */ 14 | 15 | 16 | + function($) { 17 | 'use strict'; 18 | 19 | var NAME = 'zui.chosenIcons'; 20 | 21 | var ChosenIcons = function(element, options) { 22 | this.$ = $(element); 23 | this.options = this.getOptions(options); 24 | this.lang = ChosenIcons.LANGS[this.options.lang] || ChosenIcons.LANGS.en; 25 | this.id = 'chosen-icons-' + $.zui.uuid(); 26 | 27 | this.init(); 28 | }; 29 | 30 | ChosenIcons.DEFAULTS = { 31 | optional: true, 32 | lang: 'zh_cn', 33 | icons: { 34 | common: ['heart', 'user', 'group', 'list-ul', 'th', 'th-large', 'star', 'star-empty', 'search', 'envelope', 'dashboard', 'sitemap', 'umbrella', 'lightbulb', 'envelope-alt', 'cog', 'ok', 'remove', 'home', 'time', 'flag', 'flag-alt', 'flag-checkered', 'qrcode', 'tag', 'tags', 'book', 'bookmark', 'bookmark-empty', 'print', 'camera', 'picture', 'globe', 'map-marker', 'edit', 'edit-sign', 'play', 'stop', 'plus-sign', 'minus-sign', 'remove-sign', 'ok-sign', 'check-sign', 'question-sign', 'info-sign', 'exclamation-sign', 'plus', 'plus-sign', 'minus', 'minus-sign', 'asterisk', 'calendar', 'calendar-empty', 'comment', 'comment-alt', 'comments', 'comments-alt', 'folder-close', 'folder-open', 'folder-close-alt', 'folder-open-alt', 'thumbs-up', 'thumbs-down', 'pushpin', 'building', 'phone', 'rss', 'rss-sign', 'bullhorn', 'bell', 'bell-alt', 'certificate', 'wrench', 'tasks', 'cloud', 'beaker', 'magic', 'smile', 'frown', 'meh', 'code', 'location-arrow'], 35 | web: ['share', 'pencil', 'trash', 'file-alt', 'file', 'file-text', 'download-alt', 'upload-alt', 'inbox', 'repeat', 'refresh', 'lock', 'check', 'check-empty', 'eye-open', 'eye-close', 'key', 'signin', 'signout', 'external-link', 'external-link-sign', 'link', 'reorder', 'quote-left', 'quote-right', 'spinner', 'reply', 'question', 'info', 'archive', 'collapse', 'collapse-top'], 36 | editor: ['table', 'copy', 'save', 'list-ol', 'paste', 'keyboard', 'paper-clip', 'crop', 'unlink', 'sort-by-alphabet', 'sort-by-alphabet-alt', 'sort-by-attributes', 'sort-by-attributes-alt', 'sort-by-order', 'sort-by-order-alt'], 37 | directional: ['chevron-left', 'chevron-right', 'chevron-down', 'chevron-up', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'hand-right', 'hand-left', 'hand-up', 'hand-down', 'circle-arrow-left', 'circle-arrow-right', 'circle-arrow-up', 'circle-arrow-down', 'double-angle-left', 'double-angle-right', 'double-angle-down', 'double-angle-up', 'angle-left', 'angle-right', 'angle-down', 'angle-up', 'long-arrow-left', 'long-arrow-right', 'long-arrow-down', 'long-arrow-up', 'caret-left', 'caret-right', 'caret-down', 'caret-up'], 38 | other: ['desktop', 'laptop', 'tablet', 'mobile', 'building', 'firefox', 'ie', 'opera', 'qq', 'lemon', 'sign-blank', 'circle', 'circle-blank', 'terminal', 'html5', 'android', 'apple', 'windows', 'weibo', 'wechat', 'renren', 'bug', 'moon', 'sun'] 39 | } 40 | }; 41 | 42 | ChosenIcons.LANGS = {}; 43 | ChosenIcons.LANGS['zh_cn'] = { 44 | emptyIcon: '[没有图标]', 45 | commonIcons: '常用图标', 46 | webIcons: 'Web 图标', 47 | editorIcons: '编辑器图标', 48 | directionalIcons: '箭头总汇', 49 | otherIcons: '其他图标', 50 | }; 51 | ChosenIcons.LANGS['en'] = { 52 | emptyIcon: '[No Icon]', 53 | commonIcons: 'Common Icons', 54 | webIcons: 'Web Icons', 55 | editorIcons: 'Editor Icons', 56 | directionalIcons: 'Directional Icons', 57 | otherIcons: 'Other Icons' 58 | }; 59 | ChosenIcons.LANGS['zh_tw'] = { 60 | emptyIcon: '[沒有圖標]', 61 | commonIcons: '常用圖標', 62 | webIcons: 'Web 圖標', 63 | editorIcons: '編輯器圖標', 64 | directionalIcons: '箭頭總匯', 65 | otherIcons: '其他圖標' 66 | }; 67 | 68 | ChosenIcons.prototype.getOptions = function(options) { 69 | options = $.extend(true, { 70 | placeholder_text: ' ', 71 | disable_search: true, 72 | width: '100%', 73 | inherit_select_classes: true 74 | }, ChosenIcons.DEFAULTS, this.$.data(), options); 75 | return options; 76 | }; 77 | 78 | ChosenIcons.prototype.init = function() { 79 | var that = this; 80 | var $this = this.$.addClass('chosen-icons').addClass(this.id).removeClass('form-control'); 81 | 82 | $this.empty(); 83 | 84 | if(this.options.optional) { 85 | $this.append(this.getOptionHtml()); 86 | } 87 | 88 | var lang = this.lang; 89 | 90 | var iconsHtml = []; 91 | $.each(this.options.icons, function(name, icons) { 92 | iconsHtml.push(that.getgroupHtml(name, icons)); 93 | }); 94 | 95 | $this.append(iconsHtml.join('')); 96 | 97 | $this.chosen(this.options); 98 | 99 | var chosenSelector = '.chosen-container.' + this.id; 100 | 101 | $this.on('chosen:showing_dropdown', function() { 102 | $(chosenSelector + ' .chosen-results .group-option').each(function() { 103 | var $this = $(this).addClass('icon'); 104 | var text = $(this).text(); 105 | $this.html(''); 106 | }); 107 | }).change(function() { 108 | var span = $(chosenSelector + ' .chosen-single > span'); 109 | var text = $(this).val(); 110 | 111 | if(text && text.length > 0) { 112 | span.html('   ' + text.substr(5).replace(/-/g, ' ') + ''); 113 | } 114 | else { 115 | span.html('' + lang.emptyIcon + ''); 116 | } 117 | }); 118 | 119 | var val = $this.data('value'); 120 | if(val) { 121 | $this.val(val).change(); 122 | } 123 | } 124 | 125 | ChosenIcons.prototype.getgroupHtml = function(name, icons) { 126 | icons = icons || this.options.icons[name] 127 | var iconsHtml = [], 128 | that = this; 129 | 130 | $.each(icons, function(i, icon) { 131 | iconsHtml.push(that.getOptionHtml(icon)); 132 | }); 133 | 134 | return '' + iconsHtml.join('') + ''; 135 | } 136 | 137 | ChosenIcons.prototype.getOptionHtml = function(value) { 138 | var name = value; 139 | if(value && value.length > 0) { 140 | value = 'icon-' + value; 141 | } else { 142 | value = ''; 143 | name = this.lang.emptyIcon; 144 | } 145 | return ''; 146 | } 147 | 148 | $.fn.chosenIcons = function(option) { 149 | return this.each(function() { 150 | var $this = $(this); 151 | var data = $this.data(NAME); 152 | var options = typeof option == 'object' && option; 153 | 154 | if(!data) $this.data(NAME, (data = new ChosenIcons(this, options))); 155 | 156 | if(typeof option == 'string') data[option](); 157 | }) 158 | }; 159 | 160 | $.fn.chosenIcons.Constructor = ChosenIcons; 161 | }(jQuery); 162 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/chosenicons/zui.chosenicons.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 图标选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.chosen-container.chosen-icons .chosen-results{padding:5px}.chosen-container.chosen-icons .chosen-results li{border-radius:4px}.chosen-container.chosen-icons .chosen-results li.group-result{padding:5px 0;font-size:12px;color:#666;border-radius:0}.chosen-container.chosen-icons .chosen-results li.group-option{display:inline-block!important;width:30px;padding:8px;font-size:14px;line-height:14px;text-align:center} -------------------------------------------------------------------------------- /asset/zui/dist/lib/chosenicons/zui.chosenicons.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 图标选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | +function(o){"use strict";var e="zui.chosenIcons",t=function(e,n){this.$=o(e),this.options=this.getOptions(n),this.lang=t.LANGS[this.options.lang]||t.LANGS.en,this.id="chosen-icons-"+o.zui.uuid(),this.init()};t.DEFAULTS={optional:!0,lang:"zh_cn",icons:{common:["heart","user","group","list-ul","th","th-large","star","star-empty","search","envelope","dashboard","sitemap","umbrella","lightbulb","envelope-alt","cog","ok","remove","home","time","flag","flag-alt","flag-checkered","qrcode","tag","tags","book","bookmark","bookmark-empty","print","camera","picture","globe","map-marker","edit","edit-sign","play","stop","plus-sign","minus-sign","remove-sign","ok-sign","check-sign","question-sign","info-sign","exclamation-sign","plus","plus-sign","minus","minus-sign","asterisk","calendar","calendar-empty","comment","comment-alt","comments","comments-alt","folder-close","folder-open","folder-close-alt","folder-open-alt","thumbs-up","thumbs-down","pushpin","building","phone","rss","rss-sign","bullhorn","bell","bell-alt","certificate","wrench","tasks","cloud","beaker","magic","smile","frown","meh","code","location-arrow"],web:["share","pencil","trash","file-alt","file","file-text","download-alt","upload-alt","inbox","repeat","refresh","lock","check","check-empty","eye-open","eye-close","key","signin","signout","external-link","external-link-sign","link","reorder","quote-left","quote-right","spinner","reply","question","info","archive","collapse","collapse-top"],editor:["table","copy","save","list-ol","paste","keyboard","paper-clip","crop","unlink","sort-by-alphabet","sort-by-alphabet-alt","sort-by-attributes","sort-by-attributes-alt","sort-by-order","sort-by-order-alt"],directional:["chevron-left","chevron-right","chevron-down","chevron-up","arrow-left","arrow-right","arrow-down","arrow-up","hand-right","hand-left","hand-up","hand-down","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-down","double-angle-left","double-angle-right","double-angle-down","double-angle-up","angle-left","angle-right","angle-down","angle-up","long-arrow-left","long-arrow-right","long-arrow-down","long-arrow-up","caret-left","caret-right","caret-down","caret-up"],other:["desktop","laptop","tablet","mobile","building","firefox","ie","opera","qq","lemon","sign-blank","circle","circle-blank","terminal","html5","android","apple","windows","weibo","wechat","renren","bug","moon","sun"]}},t.LANGS={},t.LANGS.zh_cn={emptyIcon:"[没有图标]",commonIcons:"常用图标",webIcons:"Web 图标",editorIcons:"编辑器图标",directionalIcons:"箭头总汇",otherIcons:"其他图标"},t.LANGS.en={emptyIcon:"[No Icon]",commonIcons:"Common Icons",webIcons:"Web Icons",editorIcons:"Editor Icons",directionalIcons:"Directional Icons",otherIcons:"Other Icons"},t.LANGS.zh_tw={emptyIcon:"[沒有圖標]",commonIcons:"常用圖標",webIcons:"Web 圖標",editorIcons:"編輯器圖標",directionalIcons:"箭頭總匯",otherIcons:"其他圖標"},t.prototype.getOptions=function(e){return e=o.extend(!0,{placeholder_text:" ",disable_search:!0,width:"100%",inherit_select_classes:!0},t.DEFAULTS,this.$.data(),e)},t.prototype.init=function(){var e=this,t=this.$.addClass("chosen-icons").addClass(this.id).removeClass("form-control");t.empty(),this.options.optional&&t.append(this.getOptionHtml());var n=this.lang,i=[];o.each(this.options.icons,function(o,t){i.push(e.getgroupHtml(o,t))}),t.append(i.join("")),t.chosen(this.options);var s=".chosen-container."+this.id;t.on("chosen:showing_dropdown",function(){o(s+" .chosen-results .group-option").each(function(){var e=o(this).addClass("icon"),t=o(this).text();e.html('')})}).change(function(){var e=o(s+" .chosen-single > span"),t=o(this).val();t&&t.length>0?e.html('   '+t.substr(5).replace(/-/g," ")+""):e.html(''+n.emptyIcon+"")});var r=t.data("value");r&&t.val(r).change()},t.prototype.getgroupHtml=function(e,t){t=t||this.options.icons[e];var n=[],i=this;return o.each(t,function(o,e){n.push(i.getOptionHtml(e))}),''+n.join("")+""},t.prototype.getOptionHtml=function(o){var e=o;return o&&o.length>0?o="icon-"+o:(o="",e=this.lang.emptyIcon),'"},o.fn.chosenIcons=function(n){return this.each(function(){var i=o(this),s=i.data(e),r="object"==typeof n&&n;s||i.data(e,s=new t(this,r)),"string"==typeof n&&s[n]()})},o.fn.chosenIcons.Constructor=t}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/colorpicker/zui.colorpicker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 颜色选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | .colorpicker .dropdown-menu { 9 | min-width: 0; 10 | padding: 2px; 11 | } 12 | .colorpicker .dropdown-menu > li { 13 | display: block; 14 | float: left; 15 | padding: 2px; 16 | } 17 | .colorpicker .dropdown-menu > li > a { 18 | position: relative; 19 | display: block; 20 | width: 100%; 21 | height: 100%; 22 | padding: 0; 23 | font-family: ZenIcon; 24 | font-size: 14px; 25 | font-style: normal; 26 | font-weight: normal; 27 | font-variant: normal; 28 | line-height: 1; 29 | text-align: center; 30 | text-transform: none; 31 | border: 1px solid transparent; 32 | border-radius: 4px; 33 | 34 | speak: none; 35 | -webkit-font-smoothing: antialiased; 36 | -moz-osx-font-smoothing: grayscale; 37 | } 38 | .colorpicker .dropdown-menu > li > a:before { 39 | position: absolute; 40 | top: 50%; 41 | display: block; 42 | width: 100%; 43 | height: 20px; 44 | margin-top: -8px; 45 | } 46 | .colorpicker .dropdown-menu > li > a:hover { 47 | border-color: #333; 48 | -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, .25); 49 | box-shadow: 0 1px 4px rgba(0, 0, 0, .25); 50 | } 51 | .colorpicker .dropdown-menu > li > a.active:before { 52 | content: '\e60d'; 53 | } 54 | .colorpicker .dropdown-menu > li > a.empty { 55 | color: #666; 56 | background: #f2f2f2; 57 | } 58 | .colorpicker .dropdown-menu > li > a.empty:before { 59 | content: '\d7'; 60 | } 61 | .colorpicker .btn { 62 | text-shadow: none; 63 | } 64 | .colorpicker .btn .cp-title { 65 | display: inline-block; 66 | margin-right: 5px; 67 | } 68 | .colorpicker.btn-wrapper { 69 | position: relative; 70 | display: inline-block; 71 | } 72 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/colorpicker/zui.colorpicker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 颜色选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.colorpicker .dropdown-menu{min-width:0;padding:2px}.colorpicker .dropdown-menu>li{display:block;float:left;padding:2px}.colorpicker .dropdown-menu>li>a{position:relative;display:block;width:100%;height:100%;padding:0;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;border:1px solid transparent;border-radius:4px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.colorpicker .dropdown-menu>li>a:before{position:absolute;top:50%;display:block;width:100%;height:20px;margin-top:-8px}.colorpicker .dropdown-menu>li>a:hover{border-color:#333;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25)}.colorpicker .dropdown-menu>li>a.active:before{content:'\e60d'}.colorpicker .dropdown-menu>li>a.empty{color:#666;background:#f2f2f2}.colorpicker .dropdown-menu>li>a.empty:before{content:'\d7'}.colorpicker .btn{text-shadow:none}.colorpicker .btn .cp-title{display:inline-block;margin-right:5px}.colorpicker.btn-wrapper{position:relative;display:inline-block} -------------------------------------------------------------------------------- /asset/zui/dist/lib/colorpicker/zui.colorpicker.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 颜色选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(t){"use strict";var o="zui.colorPicker",i='
',e={zh_cn:{errorTip:"不是有效的颜色值"},zh_tw:{errorTip:"不是有效的顏色值"},en:{errorTip:"Not a valid color value"}},r=function(i,e){this.name=o,this.$=t(i),this.getOptions(e),this.init()};r.prototype.init=function(){var o=this,e=o.options,r=o.$,a=r.parent(),n=!1;a.hasClass("colorpicker")?o.$picker=a:(o.$picker=t(e.template||i),n=!0),o.$picker.addClass(e.wrapper).find(".cp-title").toggle(void 0!==e.title).text(e.title),o.$menu=o.$picker.find(".dropdown-menu").toggleClass("pull-right",e.pullMenuRight),o.$btn=o.$picker.find(".btn.dropdown-toggle"),o.$btn.find(".ic").addClass("icon-"+e.icon),e.btnTip&&o.$picker.attr("data-toggle","tooltip").tooltip({title:e.btnTip,placement:e.tooltip,container:"body"}),r.attr("data-provide",null),n&&r.after(o.$picker),o.colors={},t.each(e.colors,function(i,e){if(t.zui.Color.isColor(e)){var r=new t.zui.Color(e);o.colors[r.toCssStr()]=r}}),o.updateColors(),o.$picker.on("click",".cp-tile",function(){o.setValue(t(this).data("color"))});var l=function(){var i=r.val(),a=t.zui.Color.isColor(i);r.parent().toggleClass("has-error",!(a||e.optional&&""===i)),a?o.setValue(i,!0):e.optional&&""===i?r.tooltip("hide"):r.is(":focus")||r.tooltip("show",e.errorTip)};r.is("input:not([type=hidden])")?(e.tooltip&&r.attr("data-toggle","tooltip").tooltip({trigger:"manual",placement:e.tooltip,tipClass:"tooltip-danger",container:"body"}),r.on("keyup paste input change",l)):r.appendTo(o.$picker),l()},r.prototype.addColor=function(o){o instanceof t.zui.Color||(o=new t.zui.Color(o));var i=o.toCssStr(),e=this.options;this.colors[i]||(this.colors[i]=o);var r=t('',{titile:o}).data("color",o).css({color:o.contrast().toCssStr(),background:i,"border-color":o.luma()>.43?"#ccc":"transparent"}).attr("data-color",i);this.$menu.append(t("
  • ").css({width:e.tileSize,height:e.tileSize}).append(r)),e.optional&&this.$menu.find(".cp-tile.empty").parent().detach().appendTo(this.$menu)},r.prototype.updateColors=function(o){var i=this.$menu,e=this.options,o=o||this.colors,r=this,a=0;if(i.children("li:not(.heading)").remove(),t.each(o,function(t,o){r.addColor(o),a++}),e.optional){var n=t('
  • ').css({width:e.tileSize,height:e.tileSize});this.$menu.append(n),a++}i.css("width",Math.min(a,e.lineCount)*e.tileSize+6)},r.prototype.setValue=function(o,i){var e=this,r=e.options,a=e.$btn,n="";e.$menu.find(".cp-tile.active").removeClass("active");var l=r.updateBtn;if("auto"===l){var c=a.find(".color-bar");l=!c.length||function(t){c.css("background",t||"")}}if(o){var p=new t.zui.Color(o);n=p.toCssStr().toLowerCase(),l&&("function"==typeof l?l(n,a,e):a.css({background:n,color:p.contrast().toCssStr(),borderColor:p.luma()>.43?"#ccc":n})),e.colors[n]||e.addColor(p),i||e.$.val().toLowerCase()===n||e.$.val(n).trigger("change"),e.$menu.find('.cp-tile[data-color="'+n+'"]').addClass("active"),e.$.tooltip("hide"),e.$.trigger("colorchange",p)}else l&&("function"==typeof l?l(null,a,e):a.attr("style",null)),i||""===e.$.val()||e.$.val(n).trigger("change"),r.optional&&e.$.tooltip("hide"),e.$menu.find(".cp-tile.empty").addClass("active"),e.$.trigger("colorchange",null);r.updateBorder&&t(r.updateBorder).css("border-color",n),r.updateBackground&&t(r.updateBackground).css("background-color",n),r.updateColor&&t(r.updateColor).css("color",n),r.updateText&&t(r.updateText).text(n)},r.prototype.getOptions=function(i){var a=t.extend({},r.DEFAULTS,this.$.data(),i);"string"==typeof a.colors&&(a.colors=a.colors.split(","));var n=a.lang||t.zui.clientLang(),l=this.lang=t.zui.getLangData?t.zui.getLangData(o,n,e):e[n]||e.en;a.errorTip||(a.errorTip=l.errorTip),t.fn.tooltip||(a.btnTip=!1),this.options=a},r.DEFAULTS={colors:["#00BCD4","#388E3C","#3280fc","#3F51B5","#9C27B0","#795548","#F57C00","#F44336","#E91E63"],pullMenuRight:!0,wrapper:"btn-wrapper",tileSize:30,lineCount:5,optional:!0,tooltip:"top",icon:"caret-down",updateBtn:"auto"},r.LANG=e,t.fn.colorPicker=function(o){return this.each(function(){var i=t(this),e=i.data(name),a="object"==typeof o&&o;e||i.data(name,e=new r(this,a)),"string"==typeof o&&e[o]()})},t.fn.colorPicker.Constructor=r,t(function(){t('[data-provide="colorpicker"]').colorPicker()})}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/colorset.js/zui.colorset.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: JS配色表 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | /*! 9 | * ZUI: Generated from less code - v1.10.0 - 2021-11-04 10 | * http://openzui.com 11 | * GitHub: https://github.com/easysoft/zui.git 12 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 13 | */ 14 | 15 | (function($) { 16 | 'use strict'; 17 | var nextColorIndex = 0; 18 | var presetColors = ['primary', 'red', 'yellow', 'green', 'blue', 'purple', 'brown', 'dark']; 19 | 20 | var colorset = { 21 | primary: '#3280fc', 22 | secondary: '#145ccd', 23 | pale: '#ebf2f9', 24 | fore: '#353535', 25 | back: '#fff', 26 | grayDarker: '#222222', 27 | grayDark: '#333333', 28 | gray: '#808080', 29 | grayLight: '#dddddd', 30 | grayLighter: '#e5e5e5', 31 | grayPale: '#f1f1f1', 32 | white: '#fff', 33 | black: '#000', 34 | red: '#ea644a', 35 | yellow: '#f1a325', 36 | green: '#38b03f', 37 | blue: '#03b8cf', 38 | purple: '#8666b8', 39 | brown: '#bd7b46', 40 | greenPale: '#ddf4df', 41 | yellowPale: '#fff0d5', 42 | redPale: '#ffe5e0', 43 | bluePale: '#ddf3f5', 44 | brownPale: '#f7ebe1', 45 | purplePale: '#f5eeff', 46 | light: '#fff', 47 | dark: '#353535', 48 | success: '#38b03f', 49 | warning: '#f1a325', 50 | danger: '#ea644a', 51 | info: '#03b8cf', 52 | important: '#bd7b46', 53 | special: '#8666b8', 54 | successPale: '#ddf4df', 55 | warningPale: '#fff0d5', 56 | dangerPale: '#ffe5e0', 57 | infoPale: '#ddf3f5', 58 | importantPale: '#f7ebe1', 59 | specialPale: '#f5eeff' 60 | }; 61 | 62 | colorset.get = function(colorName) { 63 | if(typeof colorName === 'undefined' || colorName === 'random') { 64 | colorName = presetColors[(nextColorIndex++) % presetColors.length]; 65 | } 66 | var color = colorset[colorName] ? colorset[colorName] : colorName; 67 | return $.zui.Color ? new $.zui.Color(color) : color; 68 | } 69 | 70 | $.zui({colorset: colorset}); 71 | if($.zui.Color) $.extend($.zui.Color, colorset); 72 | }(jQuery)); 73 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/colorset.js/zui.colorset.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: JS配色表 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | /*! 8 | * ZUI: Generated from less code - v1.10.0 - 2021-11-04 9 | * http://openzui.com 10 | * GitHub: https://github.com/easysoft/zui.git 11 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 12 | */ 13 | !function(e){"use strict";var f=0,r=["primary","red","yellow","green","blue","purple","brown","dark"],a={primary:"#3280fc",secondary:"#145ccd",pale:"#ebf2f9",fore:"#353535",back:"#fff",grayDarker:"#222222",grayDark:"#333333",gray:"#808080",grayLight:"#dddddd",grayLighter:"#e5e5e5",grayPale:"#f1f1f1",white:"#fff",black:"#000",red:"#ea644a",yellow:"#f1a325",green:"#38b03f",blue:"#03b8cf",purple:"#8666b8",brown:"#bd7b46",greenPale:"#ddf4df",yellowPale:"#fff0d5",redPale:"#ffe5e0",bluePale:"#ddf3f5",brownPale:"#f7ebe1",purplePale:"#f5eeff",light:"#fff",dark:"#353535",success:"#38b03f",warning:"#f1a325",danger:"#ea644a",info:"#03b8cf",important:"#bd7b46",special:"#8666b8",successPale:"#ddf4df",warningPale:"#fff0d5",dangerPale:"#ffe5e0",infoPale:"#ddf3f5",importantPale:"#f7ebe1",specialPale:"#f5eeff"};a.get=function(l){"undefined"!=typeof l&&"random"!==l||(l=r[f++%r.length]);var d=a[l]?a[l]:l;return e.zui.Color?new e.zui.Color(d):d},e.zui({colorset:a}),e.zui.Color&&e.extend(e.zui.Color,a)}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/contextmenu/zui.contextmenu.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 右键菜单 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(t,e){"use strict";var n="zui.contextmenu",o={animation:"fade",menuTemplate:'',toggleTrigger:!1,duration:200,limitInsideWindow:!0},i=!1,r={},a="zui-contextmenu-"+t.zui.uuid(),s=0,u=0,l=function(){return t(document).off("mousemove."+n).on("mousemove."+n,function(t){s=t.clientX,u=t.clientY}),r},d=function(e,n){if("string"==typeof e&&(e="seperator"===e||"divider"===e||"-"===e||"|"===e?{type:"seperator"}:{label:e,id:n}),"seperator"===e.type||"divider"===e.type)return t('
  • ');var o=t("").attr(t.extend({href:e.url||"###","class":e.className,style:e.style},e.attrs)).data("item",e);return e.html?e.html===!0?o.html(e.label||e.text):o=t(e.html):o.text(e.label||e.text),e.icon&&o.prepend(''),e.onClick&&o.on("click",e.onClick),t("
  • ").toggleClass("disabled",e.disabled===!0).append(o)},c=function(e){var n=t("#"+a);return n.length&&n.hasClass("contextmenu-show")&&(!e||(n.data("options")||{}).id===e)},h=null,m=function(e,n){"function"==typeof e&&(n=e,e=null),h&&(clearTimeout(h),h=null);var o=t("#"+a);if(o.length){var i=o.removeClass("contextmenu-show").data("options");if(!e||i.id===e){var s=function(){o.find(".contextmenu-menu").removeClass("open"),i.onHidden&&i.onHidden(),n&&n()};i.onHide&&i.onHide();var u=i.animation;o.find(".contextmenu-menu").removeClass("in"),u?h=setTimeout(s,i.duration):s()}}return r},f=function(l,c,f){t.isPlainObject(l)&&(f=c,c=l,l=c.items),i=!0,c=t.extend({},o,c);var p=t("#"+a);p.length||(p=t('
    ').appendTo("body"));var g=p.find(".contextmenu-menu").off("click."+n).on("click."+n,"a,.contextmenu-item",function(e){var n=t(this),o=c.onClickItem&&c.onClickItem(n.data("item"),n,e,c);o!==!1&&m()}).empty();g.attr("class","contextmenu-menu"+(c.className?" "+c.className:"")),p.attr("class","contextmenu contextmenu-show");var v=c.menuCreator;if(v)g.append(v(l,c));else{g.append(c.menuTemplate);var x=g.children().first(),w=c.itemCreator||d,y=typeof l;if("string"===y?l=l.split(","):"function"===y&&(l=l(c)),!l)return!1;t.each(l,function(t,e){x.append(w(e,t,c))})}var C=c.animation,b=c.duration;C===!0&&(c.animation=C="fade"),h&&(clearTimeout(h),h=null);var T=function(){g.addClass("in"),c.onShown&&c.onShown(),f&&f()};c.onShow&&c.onShow(),p.data("options",{animation:C,onHide:c.onHide,onHidden:c.onHidden,id:c.id,duration:b});var M=c.x,k=c.y;M===e&&(M=(c.event||c).clientX),M===e&&(M=s),k===e&&(k=(c.event||c).clientY),k===e&&(k=u);var x=g.children().first(),$=x.outerWidth(),H=x.outerHeight();if(c.position){var S=c.position({x:M,y:k,width:$,height:H},c,g);S&&(M=S.x,k=S.y)}if(c.limitInsideWindow){var z=t(window);M=Math.max(0,Math.min(M,z.width()-$)),k=Math.max(0,Math.min(k,z.height()-H))}return p.css({left:M,top:k}).show(),g.addClass("open"),C?(g.addClass(C),h=setTimeout(function(){T(),i=!1},10)):(T(),i=!1),r};t.extend(r,{NAME:n,DEFAULTS:o,show:f,hide:m,listenMouse:l,isShow:c}),t.zui({ContextMenu:r});var p=function(e,o){var i=this;i.name=n,i.$=t(e),i.id=t.zui.uuid(),o=i.options=t.extend({trigger:"contextmenu"},r.DEFAULTS,this.$.data(),o);var a=function(t){if("mousedown"!==t.type||2===t.button){if(o.toggleTrigger&&i.isShow())i.hide();else{var e={x:t.clientX,y:t.clientY,event:t};if(i.show(e)===!1)return}return t.preventDefault(),t.returnValue=!1,!1}},s=o.trigger,u=s+"."+n;o.selector?i.$.on(u,o.selector,a):i.$.on(u,a),o.show&&i.show("object"==typeof o.show?o.show:null)};p.prototype.destory=function(){that.$.off("."+n)},p.prototype.hide=function(t){return r.hide(this.id,t)},p.prototype.show=function(e,n){return e=t.extend({id:this.id,$toggle:this.$},this.options,e),r.show(e,n)},p.prototype.isShow=function(){return c(this.id)},t.fn.contextmenu=function(e){return this.each(function(){var o=t(this),i=o.data(n),r="object"==typeof e&&e;i||o.data(n,i=new p(this,r)),"string"==typeof e&&i[e]()})},t.fn.contextmenu.Constructor=p,t.fn.contextDropdown=function(e){t(this).contextmenu(t.extend({trigger:"click",animation:"fade",toggleTrigger:!0,menuCreator:function(e,n){var o=n.$toggle,i=o.attr("data-target");i||(i=o.attr("href"),i=i&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var r=i?t(i):o.next(".dropdown-menu"),a=n.transferEvent;if(a!==!1){var s="data-contextmenu-index";r.find("a,.contextmenu-item").each(function(e){t(this).attr(s,e)});var u=r.clone();return u.on("string"==typeof a?a:"click","a,.contextmenu-item",function(e){var n=r.find("["+s+'="'+t(this).attr(s)+'"]'),o=n[0];if(o)return o[e.type]?o[e.type]():n.trigger(e.type),e.preventDefault(),e.stopPropagation(),!1}),u}return r.clone()},position:function(t,e,n){var o=e.placement,i=e.$toggle;if(!o){var r=n.find(".dropdown-menu"),a=r.hasClass("pull-right"),s=i.parent().hasClass("dropup");o=a?s?"top-right":"bottom-right":s?"top-left":"bottom-left",a&&r.removeClass("pull-right")}var u=i[0].getBoundingClientRect();switch(o){case"top-left":return{x:u.left,y:Math.floor(u.top-t.height)};case"top-right":return{x:Math.floor(u.right-t.width),y:Math.floor(u.top-t.height)};case"bottom-left":return{x:u.left,y:u.bottom};case"bottom-right":return{x:Math.floor(u.right-t.width),y:u.bottom}}return t}},e))},t(document).on("click",function(e){var o=t(e.target),r=o.closest('[data-toggle="context-dropdown"]');if(r.length){var a=r.data(n);a||r.contextDropdown({show:!0})}else i||o.closest(".contextmenu").length||m()})}(jQuery,void 0); -------------------------------------------------------------------------------- /asset/zui/dist/lib/dashboard/zui.dashboard.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 仪表盘 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.dashboard{position:relative}.dashboard .panel{position:relative}.dashboard .panel-actions{position:absolute;top:0;right:0}.dashboard .panel-actions .dropdown-menu{min-width:80px}.dashboard .panel-actions .dropdown-menu>li>a{padding:3px 10px}.dashboard .panel-actions>.dropdown>a,.dashboard .panel-actions>a{color:grey;text-decoration:none!important}.dashboard .panel-actions>.btn,.dashboard .panel-actions>.dropdown,.dashboard .panel-actions>a{display:block;float:left}.dashboard .panel-actions>.btn,.dashboard .panel-actions>.dropdown>.btn,.dashboard .panel-actions>.dropdown>a,.dashboard .panel-actions>a{display:block;min-width:28px;height:31px;padding:0 3px;line-height:30px;text-align:center;filter:alpha(opacity=70);border:none;border-radius:0;opacity:.7}.dashboard .panel-actions>.dropdown>a:hover,.dashboard .panel-actions>a:hover{background-color:rgba(0,0,0,.1)}.dashboard .panel-heading{height:32px;padding:6px 60px 6px 6px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.dashboard .panel-heading>.icon{filter:alpha(opacity=70);opacity:.7}.dashboard .panel-heading:hover>.panel-actions>.btn,.dashboard .panel-heading:hover>.panel-actions>.dropdown>.btn,.dashboard .panel-heading:hover>.panel-actions>.dropdown>a,.dashboard .panel-heading:hover>.panel-actions>a{filter:alpha(opacity=100);opacity:1}.dashboard .panel-body{position:absolute;top:32px;right:0;bottom:0;left:0;padding:10px;overflow:auto}.dashboard .panel-body.no-padding{padding:0}.dashboard .panel-body>:last-child{margin:0}.dashboard .panel-body>.list-group .list-group-item{border-right:none;border-left:none;border-radius:0}.dashboard .panel-body>.list-group .list-group-item:first-child{border-top:none}.dashboard.dashboard-draggable .panel-heading{cursor:move}.dashboard .panel-dragging{color:#fff;background:rgba(0,0,0,.1);border:1px solid #fff;-webkit-box-shadow:none!important;box-shadow:none!important}.dashboard .panel-dragging>*{filter:alpha(opacity=10);opacity:.1}.dashboard .panel-dragging-shadow{position:absolute;cursor:move;background:rgba(255,255,255,.5);border:2px solid rgba(255,255,255,.9);-webkit-box-shadow:1px 5px 15px rgba(0,0,0,.5)!important;box-shadow:1px 5px 15px rgba(0,0,0,.5)!important}.dashboard .panel-dragging-shadow>*{filter:alpha(opacity=70);opacity:.7}.dashboard .panel-dragging-shadow.circle{overflow:hidden;border-radius:50%;-webkit-transition:width .2s,height .2s;-o-transition:width .2s,height .2s;transition:width .2s,height .2s}.dashboard .panel-dragging-shadow.circle .panel-actions{display:none}.dashboard .dragging-col-holder{display:none}.dashboard.dashboard-holding .dragging-col-holder{display:block}.dashboard.dashboard-holding .dragging-col{display:none}.dashboard .resize-handle{position:absolute;top:0;right:4px;bottom:20px;width:12px;cursor:e-resize;filter:alpha(opacity=0);border-radius:4px;opacity:0;-webkit-transition:opacity .4s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .4s cubic-bezier(.175,.885,.32,1);transition:opacity .4s cubic-bezier(.175,.885,.32,1)}.dashboard .resize-handle>.icon{position:absolute;top:50%;left:0;display:block;width:20px;height:20px;margin-top:-10px;line-height:20px;color:#3280fc;text-align:center;background-color:rgba(50,128,252,.2);-webkit-transition:left .4s cubic-bezier(.175,.885,.32,1),top .4s cubic-bezier(.175,.885,.32,1);-o-transition:left .4s cubic-bezier(.175,.885,.32,1),top .4s cubic-bezier(.175,.885,.32,1);transition:left .4s cubic-bezier(.175,.885,.32,1),top .4s cubic-bezier(.175,.885,.32,1)}.dashboard .resize-handle:hover{background-color:rgba(50,128,252,.12);filter:alpha(opacity=100);opacity:1}.dashboard .resize-handle:hover>.icon{left:-4px}.dashboard .resize-handle.resize-vertical{top:auto;right:10px;bottom:14px;left:10px;width:auto;height:12px;cursor:n-resize}.dashboard .resize-handle.resize-vertical>.icon{top:0;left:50%;margin-top:0;margin-left:-10px}.dashboard .resize-handle.resize-vertical:hover{background-color:rgba(50,128,252,.12);filter:alpha(opacity=100);opacity:1}.dashboard .resize-handle.resize-vertical:hover>.icon{top:-4px}.dashboard .resizing{-webkit-transition:width .2s cubic-bezier(.175,.885,.32,1);-o-transition:width .2s cubic-bezier(.175,.885,.32,1);transition:width .2s cubic-bezier(.175,.885,.32,1)}.dashboard .resizing-v .resize-vertical{opacity:1}.dashboard .resizing-v .resize-vertical>.icon{top:-4px}.dashboard .resizing-h .resize-horizontal{opacity:1}.dashboard .resizing-h .resize-horizontal>.icon{left:-4px}.dashboard .resizing .resize-handle{background-color:rgba(50,128,252,.12)}.dashboard .panel-body:after,.dashboard .panel-body:before{display:block;visibility:hidden;content:' ';opacity:0;-webkit-transition:visibility .2s,opacity .2s;-o-transition:visibility .2s,opacity .2s;transition:visibility .2s,opacity .2s}.dashboard .panel-body:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.dashboard .panel-body:after{position:absolute;top:50%;left:50%;width:40px;height:40px;margin-top:-20px;margin-left:-20px;font-family:ZenIcon;font-size:14px;font-size:28px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:40px;text-align:center;text-transform:none;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashboard .panel-loading>.panel-body{overflow:hidden}.dashboard .panel-loading>.panel-body:after,.dashboard .panel-loading>.panel-body:before{visibility:visible;opacity:.5}.dashboard-inverse{background-color:#3280fc}.dashboard-inverse .panel{-webkit-box-shadow:0 1px 5px rgba(0,0,0,.15);box-shadow:0 1px 5px rgba(0,0,0,.15)}.dashboard-inverse .panel-dragging{background:rgba(0,0,0,.3)}.dashboard-inverse .panel-dragging-shadow{-webkit-box-shadow:1px 2px 15px rgba(0,0,0,.5)!important;box-shadow:1px 2px 15px rgba(0,0,0,.5)!important} -------------------------------------------------------------------------------- /asset/zui/dist/lib/datagrid/zui.datagrid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 数据表格② - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.datagrid-container{position:relative;overflow:hidden;background-color:#f1f1f1;border:1px solid #ddd}.datagrid-cells{position:absolute;top:0;left:0;overflow:visible}.datagrid-cell{position:absolute;padding:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;border:1px solid #ddd;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,outline;-o-transition-property:background,outline;transition-property:background,outline}.datagrid-cell.datagrid-cell-index{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;color:grey;text-align:right;background-color:#f1f1f1}.datagrid-cell.datagrid-cell-head{background-color:#f1f1f1}.datagrid-cell-span{z-index:10}.datagrid-row{position:absolute;width:100%;background-color:#fff;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,outline;-o-transition-property:background,outline;transition-property:background,outline}.datagrid-row-head{font-weight:700;color:grey;background-color:#f1f1f1}.datagrid-fixed.datagrid-row{z-index:35}.datagrid-fixed.datagrid-cell{z-index:30}.datagrid-fixed-edge-top{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.125),0 1px 0 rgba(0,0,0,.25);box-shadow:0 2px 5px 0 rgba(0,0,0,.125),0 1px 0 rgba(0,0,0,.25)}.datagrid-fixed-edge-bottom{-webkit-box-shadow:0 -2px 5px 0 rgba(0,0,0,.125),0 -1px 0 rgba(0,0,0,.25);box-shadow:0 -2px 5px 0 rgba(0,0,0,.125),0 -1px 0 rgba(0,0,0,.25)}.datagrid-fixed-edge-left{-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.25) inset;box-shadow:-1px 0 0 rgba(0,0,0,.25) inset}.datagrid-fixed-edge-right{-webkit-box-shadow:1px 0 0 rgba(0,0,0,.25) inset;box-shadow:1px 0 0 rgba(0,0,0,.25) inset}.datagrid-row-cell.active .datagrid-cell{background-color:#fff0d5}.datagrid-row-cell.active .datagrid-cell.datagrid-cell-index{background-color:#ffe7bc}.datagrid-hover-row .datagrid-row-cell:hover{z-index:20}.datagrid-hover-row .datagrid-row-cell:hover .datagrid-cell{background-color:#ebf2f9}.datagrid-hover-row .datagrid-row-cell:hover.datagrid-fixed{z-index:38}.datagrid-hover-row .datagrid-row-cell:hover>.datagrid-cell-index{background-color:#ddd}.datagrid-hover-row .datagrid-row-cell:hover.active .datagrid-cell{background-color:#ffe1ac}.datagrid-hover-row .datagrid-row-cell:hover.active .datagrid-cell-index{background-color:#ffda98}.datagrid-hover-row.datagrid-hover-shadow .datagrid-row-cell:hover{-webkit-box-shadow:0 1px 3px 2px rgba(0,0,0,.05),0 0 2px 1px rgba(0,0,0,.075);box-shadow:0 1px 3px 2px rgba(0,0,0,.05),0 0 2px 1px rgba(0,0,0,.075)}.datagrid-hover-cell .datagrid-row-cell .datagrid-cell-cell:hover{z-index:40;background-color:#fff;outline:1px solid grey;outline-offset:-1px}.datagrid-hover-cell .datagrid-row-cell .datagrid-cell-cell.datagrid-fixed:hover,.datagrid-hover-cell .datagrid-row-cell.datagrid-fixed .datagrid-cell-cell:hover{z-index:42}.datagrid-hover-cell.datagrid-hover-shadow .datagrid-row-cell .datagrid-cell:hover{-webkit-box-shadow:0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1);box-shadow:0 1px 3px 3px rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.1)}.datagrid-hover-col .datagrid-cell.hover{background-color:#ebf2f9}.datagrid-hover-col .datagrid-cell-head.hover,.datagrid-hover-col .datagrid-cell-index.hover{background-color:#ddd}.datagrid-hover-col .datagrid-row-cell.active .datagrid-cell.hover{background-color:#d7e5f3}.datagrid-scrollbar{position:absolute;right:0;bottom:0;z-index:50;opacity:0;-webkit-transition:2.5s cubic-bezier(.175,.885,.32,1);-o-transition:2.5s cubic-bezier(.175,.885,.32,1);transition:2.5s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,opacity;-o-transition-property:background,opacity;transition-property:background,opacity}.datagrid-container:hover .datagrid-scrollbar,.datagrid-scrollbar.scrolling{opacity:1}.datagrid-scrollbar>.bar{position:absolute;min-width:10px;background-color:#ddd;background-color:rgba(0,0,0,.25)}.datagrid-scrollbar.scrolling,.datagrid-scrollbar:hover{background-color:rgba(0,0,0,.075)}.datagrid-scrollbar.scrolling>.bar,.datagrid-scrollbar:hover>.bar{position:absolute;background-color:grey;background-color:rgba(0,0,0,.5)}.datagrid-scrollbar-h{left:0;height:10px}.datagrid-scrollbar-h>.bar{top:0!important;bottom:0!important;min-width:20px}.datagrid-scrollbar-v{top:0;width:10px}.datagrid-scrollbar-v>.bar{right:0!important;left:0!important;min-height:20px}.datagrid-messager{position:absolute;top:0;right:0;left:0;z-index:60;padding:5px 10px;text-align:center}.datagrid-messager>.close{position:absolute;top:0;right:0;display:block;width:30px;height:30px;padding-bottom:5px;line-height:20px;text-align:center}.datagrid-messager>.close:hover{background-color:rgba(0,0,0,.1)}.datagrid-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:61;background-color:rgba(255,255,255,.6)}.datagrid-loading>.content{position:relative;top:50%;display:block;height:50px;margin-top:-25px;text-align:center}.datagrid-loading>.content>.icon{color:#3280fc}.datagrid-col-sortable{padding-right:20px;cursor:pointer}.datagrid-sorter{position:absolute;top:3px;right:0;bottom:0;width:20px;line-height:30px;text-align:center}.datagrid-sort-down>.icon-sort:before{color:#3280fc;content:'\e6b8'}.datagrid-sort-up>.icon-sort:before{color:#3280fc;content:'\e6b9'}.datagrid-borderless .datagrid-container{border-color:transparent}.datagrid-borderless .datagrid-cell{border-right-color:transparent;border-left-color:transparent}.datagrid-borderless .datagrid-fixed-edge-left{-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.1) inset;box-shadow:-1px 0 0 rgba(0,0,0,.1) inset}.datagrid-borderless .datagrid-fixed-edge-right{-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1) inset;box-shadow:1px 0 0 rgba(0,0,0,.1) inset}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-cell{background-color:#f9f9f9}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd).active .datagrid-cell{background-color:#fff0d5}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd).active .datagrid-cell.datagrid-cell-index{background-color:#ffe7bc}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-cell.hover{background-color:#ebf2f9}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-head.hover,.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd) .datagrid-cell-index.hover{background-color:#ddd}.datagrid-striped .datagrid-cells>.datagrid-row-cell:nth-child(odd).active .datagrid-cell.hover{background-color:#d7e5f3} -------------------------------------------------------------------------------- /asset/zui/dist/lib/datatable/zui.datatable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 数据表格 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | .datatable-head, 9 | .datatable-rows { 10 | display: table; 11 | width: 100%; 12 | table-layout: fixed; 13 | } 14 | .datatable { 15 | margin-bottom: 20px; 16 | } 17 | .datatable > .datatable-head { 18 | -webkit-transition: -webkit-box-shadow .2s; 19 | -o-transition: box-shadow .2s; 20 | transition: -webkit-box-shadow .2s; 21 | transition: box-shadow .2s; 22 | transition: box-shadow .2s, -webkit-box-shadow .2s; 23 | } 24 | .datatable .table { 25 | margin: 0; 26 | table-layout: fixed; 27 | } 28 | .datatable .table > tbody > tr > td, 29 | .datatable .table > thead > tr > th { 30 | min-width: 20px; 31 | } 32 | .datatable .table > tbody > tr > td.check-btn, 33 | .datatable .table > thead > tr > th.check-btn { 34 | width: 30px; 35 | color: #9b9b9b; 36 | text-align: center; 37 | cursor: pointer; 38 | } 39 | .datatable .table > tbody > tr.hover > td.check-btn, 40 | .datatable .table > tbody > tr.active > td.check-btn, 41 | .datatable .table > thead > tr > th.check-btn:hover, 42 | .datatable .table > tbody > tr > td.check-btn:hover, 43 | .datatable .table > thead > tr > th.check-btn.checked, 44 | .datatable .table > tbody > tr > td.check-btn.checked { 45 | color: #4f4f4f; 46 | } 47 | .datatable .table > thead > tr > th.check-btn.checked > .icon-check-empty:before, 48 | .datatable .table > tbody > tr > td.check-btn.checked > .icon-check-empty:before, 49 | .datatable .table > tbody > tr.active > td.check-btn > .icon-check-empty:before { 50 | content: '\e642'; 51 | } 52 | .datatable .table > thead > tr > th.col-hover { 53 | background-color: #e2e2e2; 54 | } 55 | .datatable .table > tbody > tr > td.col-hover, 56 | .datatable .table > tbody > tr.hover > td { 57 | background-color: #ebf2f9; 58 | } 59 | .datatable .table > tbody > tr.active.hover td { 60 | background-color: #ffdea2; 61 | } 62 | .datatable.head-fixed > .datatable-head { 63 | position: fixed; 64 | z-index: 1030; 65 | -webkit-box-shadow: 0 1px 4px 0 rgba(0, 0, 0, .15); 66 | box-shadow: 0 1px 4px 0 rgba(0, 0, 0, .15); 67 | } 68 | .datatable.sortable .datatable-head-span .table > thead > tr > th { 69 | overflow: hidden; 70 | white-space: nowrap; 71 | cursor: pointer; 72 | } 73 | .datatable.sortable .datatable-head-span .table > thead > tr > th.text-center { 74 | padding-right: 0; 75 | padding-left: 0; 76 | } 77 | .datatable.sortable .datatable-head-span .table > thead > tr > th:after { 78 | display: inline-block; 79 | margin-left: 5px; 80 | font-family: ZenIcon; 81 | font-size: 14px; 82 | font-style: normal; 83 | font-weight: normal; 84 | font-variant: normal; 85 | line-height: 1; 86 | color: #808080; 87 | text-transform: none; 88 | content: '\e6bd'; 89 | 90 | speak: none; 91 | -webkit-font-smoothing: antialiased; 92 | -moz-osx-font-smoothing: grayscale; 93 | } 94 | .datatable.sortable .datatable-head-span .table > thead > tr > th.sort-down:after { 95 | color: #145ccd; 96 | content: '\e6b8'; 97 | } 98 | .datatable.sortable .datatable-head-span .table > thead > tr > th.sort-up:after { 99 | color: #145ccd; 100 | content: '\e6b9'; 101 | } 102 | .datatable.sortable .datatable-head-span .table > thead > tr > th.check-btn:after, 103 | .datatable.sortable .datatable-head-span .table > thead > tr > th.sort-disabled:after { 104 | display: none; 105 | } 106 | .datatable.sortable .datatable-head-span .table > thead > tr > th.sort-disabled { 107 | cursor: default; 108 | } 109 | .datatable-wrapper { 110 | position: relative; 111 | } 112 | .datatable-span { 113 | display: table-cell; 114 | vertical-align: top; 115 | } 116 | .datatable-span.flexarea { 117 | overflow: hidden; 118 | } 119 | .datatable-span.flexarea.datatable-head-span.dragging { 120 | cursor: move !important; 121 | } 122 | .datatable-span.flexarea .table { 123 | position: relative; 124 | top: 0; 125 | left: 0; 126 | } 127 | .datatable-span.flexarea .scrolled-shadow { 128 | position: absolute; 129 | top: 0; 130 | bottom: 0; 131 | display: none; 132 | width: 20px; 133 | -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, .15); 134 | box-shadow: 0 0 10px rgba(0, 0, 0, .15); 135 | opacity: 0; 136 | -webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1); 137 | -o-transition: all .4s cubic-bezier(.175, .885, .32, 1); 138 | transition: all .4s cubic-bezier(.175, .885, .32, 1); 139 | } 140 | .datatable-span.flexarea .scrolled-in-shadow { 141 | left: -30px; 142 | } 143 | .datatable-span.flexarea .scrolled-out-shadow { 144 | right: -30px; 145 | } 146 | .datatable > .scroll-wrapper { 147 | position: relative; 148 | width: 100%; 149 | } 150 | .datatable .scroll-slide { 151 | position: absolute; 152 | right: -1px; 153 | bottom: 0; 154 | left: -1px; 155 | display: none; 156 | height: 11px; 157 | background: #e5e5e5; 158 | background: rgba(128, 128, 128, .1); 159 | border: 1px solid #e5e5e5; 160 | border-bottom: none; 161 | opacity: 0; 162 | -webkit-transition: opacity .5s, background .3s; 163 | -o-transition: opacity .5s, background .3s; 164 | transition: opacity .5s, background .3s; 165 | } 166 | .datatable .scroll-slide > .bar { 167 | position: absolute; 168 | top: 0; 169 | left: 0; 170 | min-width: 50px; 171 | height: 10px; 172 | cursor: move; 173 | background-color: #a6a6a6; 174 | } 175 | .datatable .scroll-slide:hover > .bar { 176 | background-color: #808080; 177 | } 178 | .datatable .scroll-slide.scroll-pos-out { 179 | bottom: -14px; 180 | height: 15px; 181 | } 182 | .datatable .scroll-slide.scroll-pos-out > .bar { 183 | height: 14px; 184 | } 185 | .datatable.show-scroll-slide:hover .scroll-slide, 186 | .datatable.show-scroll-slide.scrolling .scroll-slide, 187 | .datatable.show-scroll-slide:hover .scrolled-shadow, 188 | .datatable.show-scroll-slide.scrolling .scrolled-shadow { 189 | opacity: 1; 190 | } 191 | .datatable.show-scroll-slide .scroll-slide, 192 | .datatable.show-scroll-slide .scrolled-shadow { 193 | display: block; 194 | } 195 | .datatable.show-scroll-slide.scrolled-in .scrolled-in-shadow { 196 | left: -20px; 197 | } 198 | .datatable.show-scroll-slide.scrolled-out .scrolled-out-shadow { 199 | right: -20px; 200 | } 201 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/datatable/zui.datatable.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 数据表格 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.datatable-head,.datatable-rows{display:table;width:100%;table-layout:fixed}.datatable{margin-bottom:20px}.datatable>.datatable-head{-webkit-transition:-webkit-box-shadow .2s;-o-transition:box-shadow .2s;transition:-webkit-box-shadow .2s;transition:box-shadow .2s;transition:box-shadow .2s,-webkit-box-shadow .2s}.datatable .table{margin:0;table-layout:fixed}.datatable .table>tbody>tr>td,.datatable .table>thead>tr>th{min-width:20px}.datatable .table>tbody>tr>td.check-btn,.datatable .table>thead>tr>th.check-btn{width:30px;color:#9b9b9b;text-align:center;cursor:pointer}.datatable .table>tbody>tr.active>td.check-btn,.datatable .table>tbody>tr.hover>td.check-btn,.datatable .table>tbody>tr>td.check-btn.checked,.datatable .table>tbody>tr>td.check-btn:hover,.datatable .table>thead>tr>th.check-btn.checked,.datatable .table>thead>tr>th.check-btn:hover{color:#4f4f4f}.datatable .table>tbody>tr.active>td.check-btn>.icon-check-empty:before,.datatable .table>tbody>tr>td.check-btn.checked>.icon-check-empty:before,.datatable .table>thead>tr>th.check-btn.checked>.icon-check-empty:before{content:'\e642'}.datatable .table>thead>tr>th.col-hover{background-color:#e2e2e2}.datatable .table>tbody>tr.hover>td,.datatable .table>tbody>tr>td.col-hover{background-color:#ebf2f9}.datatable .table>tbody>tr.active.hover td{background-color:#ffdea2}.datatable.head-fixed>.datatable-head{position:fixed;z-index:1030;-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.15);box-shadow:0 1px 4px 0 rgba(0,0,0,.15)}.datatable.sortable .datatable-head-span .table>thead>tr>th{overflow:hidden;white-space:nowrap;cursor:pointer}.datatable.sortable .datatable-head-span .table>thead>tr>th.text-center{padding-right:0;padding-left:0}.datatable.sortable .datatable-head-span .table>thead>tr>th:after{display:inline-block;margin-left:5px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:grey;text-transform:none;content:'\e6bd';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.datatable.sortable .datatable-head-span .table>thead>tr>th.sort-down:after{color:#145ccd;content:'\e6b8'}.datatable.sortable .datatable-head-span .table>thead>tr>th.sort-up:after{color:#145ccd;content:'\e6b9'}.datatable.sortable .datatable-head-span .table>thead>tr>th.check-btn:after,.datatable.sortable .datatable-head-span .table>thead>tr>th.sort-disabled:after{display:none}.datatable.sortable .datatable-head-span .table>thead>tr>th.sort-disabled{cursor:default}.datatable-wrapper{position:relative}.datatable-span{display:table-cell;vertical-align:top}.datatable-span.flexarea{overflow:hidden}.datatable-span.flexarea.datatable-head-span.dragging{cursor:move!important}.datatable-span.flexarea .table{position:relative;top:0;left:0}.datatable-span.flexarea .scrolled-shadow{position:absolute;top:0;bottom:0;display:none;width:20px;-webkit-box-shadow:0 0 10px rgba(0,0,0,.15);box-shadow:0 0 10px rgba(0,0,0,.15);opacity:0;-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.datatable-span.flexarea .scrolled-in-shadow{left:-30px}.datatable-span.flexarea .scrolled-out-shadow{right:-30px}.datatable>.scroll-wrapper{position:relative;width:100%}.datatable .scroll-slide{position:absolute;right:-1px;bottom:0;left:-1px;display:none;height:11px;background:#e5e5e5;background:rgba(128,128,128,.1);border:1px solid #e5e5e5;border-bottom:none;opacity:0;-webkit-transition:opacity .5s,background .3s;-o-transition:opacity .5s,background .3s;transition:opacity .5s,background .3s}.datatable .scroll-slide>.bar{position:absolute;top:0;left:0;min-width:50px;height:10px;cursor:move;background-color:#a6a6a6}.datatable .scroll-slide:hover>.bar{background-color:grey}.datatable .scroll-slide.scroll-pos-out{bottom:-14px;height:15px}.datatable .scroll-slide.scroll-pos-out>.bar{height:14px}.datatable.show-scroll-slide.scrolling .scroll-slide,.datatable.show-scroll-slide.scrolling .scrolled-shadow,.datatable.show-scroll-slide:hover .scroll-slide,.datatable.show-scroll-slide:hover .scrolled-shadow{opacity:1}.datatable.show-scroll-slide .scroll-slide,.datatable.show-scroll-slide .scrolled-shadow{display:block}.datatable.show-scroll-slide.scrolled-in .scrolled-in-shadow{left:-20px}.datatable.show-scroll-slide.scrolled-out .scrolled-out-shadow{right:-20px} -------------------------------------------------------------------------------- /asset/zui/dist/lib/datetimepicker/datetimepicker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datetimepicker for Bootstrap 3 | * Copyright 2012 Stefan Petre 4 | * Licensed under the Apache License v2.0 5 | */ 6 | .datetimepicker { 7 | padding: 4px; 8 | margin-top: 1px; 9 | white-space: normal; 10 | border-radius: 4px; 11 | 12 | direction: ltr; 13 | } 14 | .datetimepicker.datetimepicker-rtl { 15 | direction: rtl; 16 | } 17 | .datetimepicker.datetimepicker-rtl table tr td span { 18 | float: right; 19 | } 20 | .datetimepicker > div { 21 | display: none; 22 | } 23 | .datetimepicker.minutes div.datetimepicker-minutes { 24 | display: block; 25 | } 26 | .datetimepicker.hours div.datetimepicker-hours { 27 | display: block; 28 | } 29 | .datetimepicker.days div.datetimepicker-days { 30 | display: block; 31 | } 32 | .datetimepicker.months div.datetimepicker-months { 33 | display: block; 34 | } 35 | .datetimepicker.years div.datetimepicker-years { 36 | display: block; 37 | } 38 | .datetimepicker table { 39 | margin: 0; 40 | } 41 | .datetimepicker table tr td.minute:hover { 42 | cursor: pointer; 43 | background: #eee; 44 | } 45 | .datetimepicker table tr td.hour:hover { 46 | cursor: pointer; 47 | background: #eee; 48 | } 49 | .datetimepicker table tr td.day:hover { 50 | cursor: pointer; 51 | background: #eee; 52 | } 53 | .datetimepicker table tr td span { 54 | display: block; 55 | float: left; 56 | width: 23%; 57 | height: 54px; 58 | margin: 1%; 59 | line-height: 54px; 60 | cursor: pointer; 61 | border-radius: 4px; 62 | } 63 | .datetimepicker table tr td span:hover { 64 | background: #eee; 65 | } 66 | .datetimepicker table tr td span.old { 67 | color: #999; 68 | } 69 | .datetimepicker .datetimepicker-hours span { 70 | height: 26px; 71 | line-height: 26px; 72 | } 73 | .datetimepicker .datetimepicker-minutes span { 74 | height: 26px; 75 | line-height: 26px; 76 | } 77 | .datetimepicker th.switch { 78 | width: 145px; 79 | } 80 | .datetimepicker-inline { 81 | width: 220px; 82 | } 83 | .datetimepicker-dropdown, 84 | .datetimepicker-dropdown-left { 85 | top: 0; 86 | left: 0; 87 | } 88 | [class*="datetimepicker-dropdown"]:before { 89 | position: absolute; 90 | display: inline-block; 91 | content: ''; 92 | border-right: 7px solid transparent; 93 | border-bottom: 7px solid #ccc; 94 | border-bottom-color: rgba(0, 0, 0, .2); 95 | border-left: 7px solid transparent; 96 | } 97 | [class*="datetimepicker-dropdown"]:after { 98 | position: absolute; 99 | display: inline-block; 100 | content: ''; 101 | border-right: 6px solid transparent; 102 | border-bottom: 6px solid #fff; 103 | border-left: 6px solid transparent; 104 | } 105 | [class*="datetimepicker-dropdown-top"]:before { 106 | display: inline-block; 107 | content: ''; 108 | border-top: 7px solid #ccc; 109 | border-top-color: rgba(0, 0, 0, .2); 110 | border-right: 7px solid transparent; 111 | border-bottom: 0; 112 | border-left: 7px solid transparent; 113 | } 114 | [class*="datetimepicker-dropdown-top"]:after { 115 | display: inline-block; 116 | content: ''; 117 | border-top: 6px solid #fff; 118 | border-right: 6px solid transparent; 119 | border-bottom: 0; 120 | border-left: 6px solid transparent; 121 | } 122 | .datetimepicker-dropdown-bottom-left:before { 123 | top: -7px; 124 | right: 6px; 125 | } 126 | .datetimepicker-dropdown-bottom-left:after { 127 | top: -6px; 128 | right: 7px; 129 | } 130 | .datetimepicker-dropdown-bottom-right:before { 131 | top: -7px; 132 | left: 6px; 133 | } 134 | .datetimepicker-dropdown-bottom-right:after { 135 | top: -6px; 136 | left: 7px; 137 | } 138 | .datetimepicker-dropdown-top-left:before { 139 | right: 6px; 140 | bottom: -7px; 141 | } 142 | .datetimepicker-dropdown-top-left:after { 143 | right: 7px; 144 | bottom: -6px; 145 | } 146 | .datetimepicker-dropdown-top-right:before { 147 | bottom: -7px; 148 | left: 6px; 149 | } 150 | .datetimepicker-dropdown-top-right:after { 151 | bottom: -6px; 152 | left: 7px; 153 | } 154 | .datetimepicker td, 155 | .datetimepicker th { 156 | width: 22px; 157 | height: 20px; 158 | padding: 3px 0; 159 | text-align: center; 160 | border: none; 161 | border-radius: 4px; 162 | } 163 | .table-striped .datetimepicker td, 164 | .table-striped .datetimepicker th { 165 | background-color: transparent; 166 | } 167 | .datetimepicker td.old, 168 | .datetimepicker td.new { 169 | color: #999; 170 | } 171 | .datetimepicker td.disabled, 172 | .datetimepicker td.disabled:hover { 173 | color: #999; 174 | cursor: default; 175 | background: none; 176 | } 177 | .datetimepicker td.day.today { 178 | color: #fff; 179 | background-color: #f1a325; 180 | border-color: #f1a325; 181 | border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .25); 182 | } 183 | .datetimepicker td.day.active { 184 | color: #fff; 185 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); 186 | background-color: #3280fc; 187 | border-color: #0462f7; 188 | border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .25); 189 | } 190 | .datetimepicker td.day.active:hover { 191 | background-color: #0462f7; 192 | } 193 | .datetimepicker td.day.today:hover, 194 | .datetimepicker td.day.today.active:hover { 195 | background-color: #d5890e; 196 | } 197 | .datetimepicker .datetimepicker-hours td span.hour_am, 198 | .datetimepicker .datetimepicker-hours td span.hour_pm { 199 | width: 14.6%; 200 | } 201 | .datetimepicker .datetimepicker-hours fieldset legend, 202 | .datetimepicker .datetimepicker-minutes fieldset legend { 203 | margin-bottom: inherit; 204 | line-height: 30px; 205 | } 206 | .datetimepicker td span.disabled, 207 | .datetimepicker td span.disabled:hover { 208 | color: #999; 209 | cursor: default; 210 | background: none; 211 | } 212 | .datetimepicker td span.active, 213 | .datetimepicker td span.active:hover, 214 | .datetimepicker td span.active.disabled, 215 | .datetimepicker td span.active.disabled:hover { 216 | color: #fff; 217 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); 218 | background-color: #3280fc; 219 | border-color: #0462f7; 220 | border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) rgba(0, 0, 0, .25); 221 | } 222 | .datetimepicker thead tr:first-child th, 223 | .datetimepicker tfoot tr:first-child th { 224 | cursor: pointer; 225 | } 226 | .datetimepicker thead tr:first-child th:hover, 227 | .datetimepicker tfoot tr:first-child th:hover { 228 | background: #eee; 229 | } 230 | .input-group.date > .input-group-addon { 231 | border-left: none; 232 | } 233 | .input-append.date .add-on i, 234 | .input-prepend.date .add-on i, 235 | .input-group.date .input-group-addon span { 236 | width: 14px; 237 | height: 14px; 238 | cursor: pointer; 239 | } 240 | .datetimepicker-only-time table { 241 | width: 190px; 242 | } 243 | .datetimepicker-only-time thead, 244 | .datetimepicker-only-time tfoot { 245 | display: none; 246 | } 247 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/datetimepicker/datetimepicker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datetimepicker for Bootstrap 3 | * Copyright 2012 Stefan Petre 4 | * Licensed under the Apache License v2.0 5 | */.datetimepicker{padding:4px;margin-top:1px;white-space:normal;border-radius:4px;direction:ltr}.datetimepicker.datetimepicker-rtl{direction:rtl}.datetimepicker.datetimepicker-rtl table tr td span{float:right}.datetimepicker>div{display:none}.datetimepicker.minutes div.datetimepicker-minutes{display:block}.datetimepicker.hours div.datetimepicker-hours{display:block}.datetimepicker.days div.datetimepicker-days{display:block}.datetimepicker.months div.datetimepicker-months{display:block}.datetimepicker.years div.datetimepicker-years{display:block}.datetimepicker table{margin:0}.datetimepicker table tr td.minute:hover{cursor:pointer;background:#eee}.datetimepicker table tr td.hour:hover{cursor:pointer;background:#eee}.datetimepicker table tr td.day:hover{cursor:pointer;background:#eee}.datetimepicker table tr td span{display:block;float:left;width:23%;height:54px;margin:1%;line-height:54px;cursor:pointer;border-radius:4px}.datetimepicker table tr td span:hover{background:#eee}.datetimepicker table tr td span.old{color:#999}.datetimepicker .datetimepicker-hours span{height:26px;line-height:26px}.datetimepicker .datetimepicker-minutes span{height:26px;line-height:26px}.datetimepicker th.switch{width:145px}.datetimepicker-inline{width:220px}.datetimepicker-dropdown,.datetimepicker-dropdown-left{top:0;left:0}[class*=datetimepicker-dropdown]:before{position:absolute;display:inline-block;content:'';border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);border-left:7px solid transparent}[class*=datetimepicker-dropdown]:after{position:absolute;display:inline-block;content:'';border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}[class*=datetimepicker-dropdown-top]:before{display:inline-block;content:'';border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);border-right:7px solid transparent;border-bottom:0;border-left:7px solid transparent}[class*=datetimepicker-dropdown-top]:after{display:inline-block;content:'';border-top:6px solid #fff;border-right:6px solid transparent;border-bottom:0;border-left:6px solid transparent}.datetimepicker-dropdown-bottom-left:before{top:-7px;right:6px}.datetimepicker-dropdown-bottom-left:after{top:-6px;right:7px}.datetimepicker-dropdown-bottom-right:before{top:-7px;left:6px}.datetimepicker-dropdown-bottom-right:after{top:-6px;left:7px}.datetimepicker-dropdown-top-left:before{right:6px;bottom:-7px}.datetimepicker-dropdown-top-left:after{right:7px;bottom:-6px}.datetimepicker-dropdown-top-right:before{bottom:-7px;left:6px}.datetimepicker-dropdown-top-right:after{bottom:-6px;left:7px}.datetimepicker td,.datetimepicker th{width:22px;height:20px;padding:3px 0;text-align:center;border:none;border-radius:4px}.table-striped .datetimepicker td,.table-striped .datetimepicker th{background-color:transparent}.datetimepicker td.new,.datetimepicker td.old{color:#999}.datetimepicker td.disabled,.datetimepicker td.disabled:hover{color:#999;cursor:default;background:0 0}.datetimepicker td.day.today{color:#fff;background-color:#f1a325;border-color:#f1a325;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.datetimepicker td.day.active{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#3280fc;border-color:#0462f7;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.datetimepicker td.day.active:hover{background-color:#0462f7}.datetimepicker td.day.today.active:hover,.datetimepicker td.day.today:hover{background-color:#d5890e}.datetimepicker .datetimepicker-hours td span.hour_am,.datetimepicker .datetimepicker-hours td span.hour_pm{width:14.6%}.datetimepicker .datetimepicker-hours fieldset legend,.datetimepicker .datetimepicker-minutes fieldset legend{margin-bottom:inherit;line-height:30px}.datetimepicker td span.disabled,.datetimepicker td span.disabled:hover{color:#999;cursor:default;background:0 0}.datetimepicker td span.active,.datetimepicker td span.active.disabled,.datetimepicker td span.active.disabled:hover,.datetimepicker td span.active:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#3280fc;border-color:#0462f7;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.datetimepicker tfoot tr:first-child th,.datetimepicker thead tr:first-child th{cursor:pointer}.datetimepicker tfoot tr:first-child th:hover,.datetimepicker thead tr:first-child th:hover{background:#eee}.input-group.date>.input-group-addon{border-left:none}.input-append.date .add-on i,.input-group.date .input-group-addon span,.input-prepend.date .add-on i{width:14px;height:14px;cursor:pointer}.datetimepicker-only-time table{width:190px}.datetimepicker-only-time tfoot,.datetimepicker-only-time thead{display:none} -------------------------------------------------------------------------------- /asset/zui/dist/lib/hotkey/hotkey.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * jQuery Hotkeys Plugin 3 | * Based upon the plugin by Tzury Bar Yochay: 4 | * https://github.com/tzuryby/jquery.hotkeys 5 | * 6 | * ZUI: The file has been changed in ZUI. It will not keep update with the 7 | * official version in the future. 8 | * http://openzui.com 9 | * ======================================================================== 10 | * Copyright 2010, John Resig 11 | * Dual licensed under the MIT or GPL Version 2 licenses. 12 | * Original idea by: 13 | * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/ 14 | * ======================================================================== */ 15 | 16 | 17 | /*! 18 | * jQuery Hotkeys Plugin 19 | * Copyright 2010, John Resig 20 | * Dual licensed under the MIT or GPL Version 2 licenses. 21 | * 22 | * Based upon the plugin by Tzury Bar Yochay: 23 | * http://github.com/tzuryby/hotkeys 24 | * 25 | * Original idea by: 26 | * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/ 27 | */ 28 | 29 | (function(jQuery) { 30 | 31 | jQuery.hotkeys = { 32 | version: "0.8", 33 | 34 | specialKeys: { 35 | 8: "backspace", 36 | 9: "tab", 37 | 13: "return", 38 | 16: "shift", 39 | 17: "ctrl", 40 | 18: "alt", 41 | 19: "pause", 42 | 20: "capslock", 43 | 27: "esc", 44 | 32: "space", 45 | 33: "pageup", 46 | 34: "pagedown", 47 | 35: "end", 48 | 36: "home", 49 | 37: "left", 50 | 38: "up", 51 | 39: "right", 52 | 40: "down", 53 | 45: "insert", 54 | 46: "del", 55 | 96: "0", 56 | 97: "1", 57 | 98: "2", 58 | 99: "3", 59 | 100: "4", 60 | 101: "5", 61 | 102: "6", 62 | 103: "7", 63 | 104: "8", 64 | 105: "9", 65 | 106: "*", 66 | 107: "+", 67 | 109: "-", 68 | 110: ".", 69 | 111: "/", 70 | 112: "f1", 71 | 113: "f2", 72 | 114: "f3", 73 | 115: "f4", 74 | 116: "f5", 75 | 117: "f6", 76 | 118: "f7", 77 | 119: "f8", 78 | 120: "f9", 79 | 121: "f10", 80 | 122: "f11", 81 | 123: "f12", 82 | 144: "numlock", 83 | 145: "scroll", 84 | 191: "/", 85 | 224: "meta" 86 | }, 87 | 88 | shiftNums: { 89 | "`": "~", 90 | "1": "!", 91 | "2": "@", 92 | "3": "#", 93 | "4": "$", 94 | "5": "%", 95 | "6": "^", 96 | "7": "&", 97 | "8": "*", 98 | "9": "(", 99 | "0": ")", 100 | "-": "_", 101 | "=": "+", 102 | ";": ": ", 103 | "'": "\"", 104 | ",": "<", 105 | ".": ">", 106 | "/": "?", 107 | "\\": "|" 108 | } 109 | }; 110 | 111 | function keyHandler(handleObj) { 112 | // Only care when a possible input has been specified 113 | if(typeof handleObj.data !== "string") { 114 | return; 115 | } 116 | 117 | var origHandler = handleObj.handler, 118 | keys = handleObj.data.toLowerCase().split(" "); 119 | 120 | handleObj.handler = function(event) { 121 | // Don't fire in text-accepting inputs that we didn't directly bind to 122 | if(this !== event.target && (/textarea|select/i.test(event.target.nodeName) || 123 | event.target.type === "text")) { 124 | return; 125 | } 126 | 127 | // Keypress represents characters, not special keys 128 | var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[event.which], 129 | character = String.fromCharCode(event.which).toLowerCase(), 130 | key, modif = "", 131 | possible = {}; 132 | 133 | // check combinations (alt|ctrl|shift+anything) 134 | if(event.altKey && special !== "alt") { 135 | modif += "alt+"; 136 | } 137 | 138 | if(event.ctrlKey && special !== "ctrl") { 139 | modif += "ctrl+"; 140 | } 141 | 142 | // TODO: Need to make sure this works consistently across platforms 143 | if(event.metaKey && !event.ctrlKey && special !== "meta") { 144 | modif += "meta+"; 145 | } 146 | 147 | if(event.shiftKey && special !== "shift") { 148 | modif += "shift+"; 149 | } 150 | 151 | if(special) { 152 | possible[modif + special] = true; 153 | 154 | } else { 155 | possible[modif + character] = true; 156 | possible[modif + jQuery.hotkeys.shiftNums[character]] = true; 157 | 158 | // "$" can be triggered as "Shift+4" or "Shift+$" or just "$" 159 | if(modif === "shift+") { 160 | possible[jQuery.hotkeys.shiftNums[character]] = true; 161 | } 162 | } 163 | 164 | for(var i = 0, l = keys.length; i < l; i++) { 165 | if(possible[keys[i]]) { 166 | return origHandler.apply(this, arguments); 167 | } 168 | } 169 | }; 170 | } 171 | 172 | jQuery.each(["keydown", "keyup", "keypress"], function() { 173 | jQuery.event.special[this] = { 174 | add: keyHandler 175 | }; 176 | }); 177 | 178 | })(jQuery); 179 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/hotkey/hotkey.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Hotkeys Plugin 3 | * Copyright 2010, John Resig 4 | * Dual licensed under the MIT or GPL Version 2 licenses. 5 | * 6 | * Based upon the plugin by Tzury Bar Yochay: 7 | * http://github.com/tzuryby/hotkeys 8 | * 9 | * Original idea by: 10 | * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/ 11 | */ 12 | !function(e){function t(t){if("string"==typeof t.data){var s=t.handler,a=t.data.toLowerCase().split(" ");t.handler=function(t){if(this===t.target||!/textarea|select/i.test(t.target.nodeName)&&"text"!==t.target.type){var r="keypress"!==t.type&&e.hotkeys.specialKeys[t.which],f=String.fromCharCode(t.which).toLowerCase(),i="",h={};t.altKey&&"alt"!==r&&(i+="alt+"),t.ctrlKey&&"ctrl"!==r&&(i+="ctrl+"),t.metaKey&&!t.ctrlKey&&"meta"!==r&&(i+="meta+"),t.shiftKey&&"shift"!==r&&(i+="shift+"),r?h[i+r]=!0:(h[i+f]=!0,h[i+e.hotkeys.shiftNums[f]]=!0,"shift+"===i&&(h[e.hotkeys.shiftNums[f]]=!0));for(var o=0,c=a.length;o","/":"?","\\":"|"}},e.each(["keydown","keyup","keypress"],function(){e.event.special[this]={add:t}})}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/ieonly/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); 8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b .canvas { 15 | position: relative; 16 | min-width: 50px; 17 | max-width: 100%; 18 | margin: 0 auto; 19 | } 20 | .img-cutter > .canvas > .cover { 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | z-index: 1; 25 | width: 100%; 26 | height: 100%; 27 | -webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1); 28 | -o-transition: all .4s cubic-bezier(.175, .885, .32, 1); 29 | transition: all .4s cubic-bezier(.175, .885, .32, 1); 30 | } 31 | .img-cutter > .canvas > img { 32 | -webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1); 33 | -o-transition: all .4s cubic-bezier(.175, .885, .32, 1); 34 | transition: all .4s cubic-bezier(.175, .885, .32, 1); 35 | } 36 | .img-cutter > .canvas > .controller { 37 | position: absolute; 38 | top: 5%; 39 | left: 5%; 40 | z-index: 5; 41 | width: 100px; 42 | height: 100px; 43 | cursor: move; 44 | background: none; 45 | border: 1px dashed #fff; 46 | border-color: rgba(255, 255, 255, .7); 47 | -webkit-transition: opacity .4s cubic-bezier(.175, .885, .32, 1); 48 | -o-transition: opacity .4s cubic-bezier(.175, .885, .32, 1); 49 | transition: opacity .4s cubic-bezier(.175, .885, .32, 1); 50 | } 51 | .img-cutter > .canvas > .controller > .control { 52 | position: absolute; 53 | width: 6px; 54 | height: 6px; 55 | background: #000; 56 | background: rgba(0, 0, 0, .6); 57 | border: 1px solid #fff; 58 | border-color: rgba(255, 255, 255, .6); 59 | } 60 | .img-cutter > .canvas > .controller > .control[data-direction='left'] { 61 | top: 50%; 62 | left: -4px; 63 | margin-top: -3px; 64 | cursor: w-resize; 65 | } 66 | .img-cutter > .canvas > .controller > .control[data-direction='top'] { 67 | top: -4px; 68 | left: 50%; 69 | margin-left: -3px; 70 | cursor: n-resize; 71 | } 72 | .img-cutter > .canvas > .controller > .control[data-direction='right'] { 73 | top: 50%; 74 | right: -4px; 75 | margin-top: -3px; 76 | cursor: e-resize; 77 | } 78 | .img-cutter > .canvas > .controller > .control[data-direction='bottom'] { 79 | bottom: -4px; 80 | left: 50%; 81 | margin-left: -3px; 82 | cursor: s-resize; 83 | } 84 | .img-cutter > .canvas > .controller > .control[data-direction='top-left'] { 85 | top: -4px; 86 | left: -4px; 87 | cursor: nw-resize; 88 | } 89 | .img-cutter > .canvas > .controller > .control[data-direction='top-right'] { 90 | top: -4px; 91 | right: -4px; 92 | cursor: ne-resize; 93 | } 94 | .img-cutter > .canvas > .controller > .control[data-direction='bottom-left'] { 95 | bottom: -4px; 96 | left: -4px; 97 | cursor: sw-resize; 98 | } 99 | .img-cutter > .canvas > .controller > .control[data-direction='bottom-right'] { 100 | right: -4px; 101 | bottom: -4px; 102 | cursor: se-resize; 103 | } 104 | .img-cutter > .canvas > .cliper { 105 | position: absolute; 106 | top: 0; 107 | left: 0; 108 | z-index: 2; 109 | width: 100%; 110 | height: 100%; 111 | clip: rect(0px, 50px, 50px, 0); 112 | } 113 | .img-cutter.hover > .canvas > img, 114 | .img-cutter.hover > .canvas > .controller > .cover { 115 | filter: alpha(opacity=0); 116 | opacity: 0; 117 | } 118 | .img-cutter.hover > .canvas > .controller { 119 | display: none; 120 | } 121 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/imgcutter/zui.imgcutter.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 图片裁剪工具 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.img-cutter{padding:10px;margin-bottom:20px;background:#e5e5e5;border:1px solid #ddd}.img-cutter>.canvas{position:relative;min-width:50px;max-width:100%;margin:0 auto}.img-cutter>.canvas>.cover{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.img-cutter>.canvas>img{-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.img-cutter>.canvas>.controller{position:absolute;top:5%;left:5%;z-index:5;width:100px;height:100px;cursor:move;background:0 0;border:1px dashed #fff;border-color:rgba(255,255,255,.7);-webkit-transition:opacity .4s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .4s cubic-bezier(.175,.885,.32,1);transition:opacity .4s cubic-bezier(.175,.885,.32,1)}.img-cutter>.canvas>.controller>.control{position:absolute;width:6px;height:6px;background:#000;background:rgba(0,0,0,.6);border:1px solid #fff;border-color:rgba(255,255,255,.6)}.img-cutter>.canvas>.controller>.control[data-direction=left]{top:50%;left:-4px;margin-top:-3px;cursor:w-resize}.img-cutter>.canvas>.controller>.control[data-direction=top]{top:-4px;left:50%;margin-left:-3px;cursor:n-resize}.img-cutter>.canvas>.controller>.control[data-direction=right]{top:50%;right:-4px;margin-top:-3px;cursor:e-resize}.img-cutter>.canvas>.controller>.control[data-direction=bottom]{bottom:-4px;left:50%;margin-left:-3px;cursor:s-resize}.img-cutter>.canvas>.controller>.control[data-direction=top-left]{top:-4px;left:-4px;cursor:nw-resize}.img-cutter>.canvas>.controller>.control[data-direction=top-right]{top:-4px;right:-4px;cursor:ne-resize}.img-cutter>.canvas>.controller>.control[data-direction=bottom-left]{bottom:-4px;left:-4px;cursor:sw-resize}.img-cutter>.canvas>.controller>.control[data-direction=bottom-right]{right:-4px;bottom:-4px;cursor:se-resize}.img-cutter>.canvas>.cliper{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;clip:rect(0,50px,50px,0)}.img-cutter.hover>.canvas>.controller>.cover,.img-cutter.hover>.canvas>img{filter:alpha(opacity=0);opacity:0}.img-cutter.hover>.canvas>.controller{display:none} -------------------------------------------------------------------------------- /asset/zui/dist/lib/imgcutter/zui.imgcutter.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 图片裁剪工具 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(t,i,h){"use strict";t.fn.draggable||console.error("img-cutter requires draggable.js"),t.zui.imgReady||console.error("img-cutter requires image.ready.js");var e="zui.imgCutter",o=function(i,h){this.$=t(i),this.initOptions(h),this.init()};o.DEFAULTS={coverColor:"#000",coverOpacity:.6,defaultWidth:128,defaultHeight:128,minWidth:48,minHeight:48},o.prototype.callEvent=function(t,i){var o=this.$.callEvent(t+"."+e,i,this);return!(o.result!==h&&!o.result)},o.prototype.initOptions=function(i){this.options=t.extend({},o.DEFAULTS,this.$.data(),i),this.options.coverOpacityIE=100*this.options.coverOpacity,this.clipWidth=this.options.defaultWidth,this.clipHeight=this.options.defaultHeight},o.prototype.init=function(){this.initDom(),this.initSize(),this.bindEvents()},o.prototype.initDom=function(){this.$canvas=this.$.children(".canvas"),this.$img=this.$canvas.children("img"),this.$actions=this.$.children(".actions"),this.$btn=this.$.find(".img-cutter-submit"),this.$preview=this.$.find(".img-cutter-preview"),this.options.img=this.$img.attr("src"),this.$canvas.append('
    '.format(this.options)),this.$cover=this.$canvas.children(".cover"),this.$controller=this.$canvas.children(".controller"),this.$cliper=this.$canvas.children(".cliper"),this.$chipImg=this.$cliper.children("img"),this.options.fixedRatio&&this.$.addClass("fixed-ratio")},o.prototype.resetImage=function(t){var i=this;i.options.img=t,i.$img.attr("src",t),i.$chipImg.attr("src",t),i.imgWidth=h,i.left=h,i.initSize()},o.prototype.initSize=function(){var e=this;e.imgWidth||t.zui.imgReady(e.options.img,function(){e.imgWidth=this.width,e.imgHeight=this.height,(this.width张图片,单张图片容量不超过<%=sizeLimit%>', 148 | 'multiimage.startUpload' : '开始上传', 149 | 'multiimage.clearAll' : '全部清空', 150 | 'multiimage.insertAll' : '全部插入', 151 | 'multiimage.queueLimitExceeded' : '文件数量超过限制。', 152 | 'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。', 153 | 'multiimage.zeroByteFile' : '无法上传空文件。', 154 | 'multiimage.invalidFiletype' : '文件类型不正确。', 155 | 'multiimage.unknownError' : '发生异常,无法上传。', 156 | 'multiimage.pending' : '等待上传', 157 | 'multiimage.uploadError' : '上传失败', 158 | 'filemanager.emptyFolder' : '空文件夹', 159 | 'filemanager.moveup' : '移到上一级文件夹', 160 | 'filemanager.viewType' : '显示方式:', 161 | 'filemanager.viewImage' : '缩略图', 162 | 'filemanager.listImage' : '详细信息', 163 | 'filemanager.orderType' : '排序方式:', 164 | 'filemanager.fileName' : '名称', 165 | 'filemanager.fileSize' : '大小', 166 | 'filemanager.fileType' : '类型', 167 | 'insertfile.url' : 'URL', 168 | 'insertfile.title' : '文件说明', 169 | 'insertfile.upload' : '上传', 170 | 'insertfile.viewServer' : '文件空间', 171 | 'table.cells' : '单元格数', 172 | 'table.rows' : '行数', 173 | 'table.cols' : '列数', 174 | 'table.size' : '大小', 175 | 'table.width' : '宽度', 176 | 'table.height' : '高度', 177 | 'table.percent' : '%', 178 | 'table.px' : 'px', 179 | 'table.space' : '边距间距', 180 | 'table.padding' : '边距', 181 | 'table.spacing' : '间距', 182 | 'table.align' : '对齐方式', 183 | 'table.textAlign' : '水平对齐', 184 | 'table.verticalAlign' : '垂直对齐', 185 | 'table.alignDefault' : '默认', 186 | 'table.alignLeft' : '左对齐', 187 | 'table.alignCenter' : '居中', 188 | 'table.alignRight' : '右对齐', 189 | 'table.alignTop' : '顶部', 190 | 'table.alignMiddle' : '中部', 191 | 'table.alignBottom' : '底部', 192 | 'table.alignBaseline' : '基线', 193 | 'table.border' : '边框', 194 | 'table.borderWidth' : '边框', 195 | 'table.borderColor' : '颜色', 196 | 'table.backgroundColor' : '背景颜色', 197 | 'map.address' : '地址: ', 198 | 'map.search' : '搜索', 199 | 'baidumap.address' : '地址: ', 200 | 'baidumap.search' : '搜索', 201 | 'baidumap.insertDynamicMap' : '插入动态地图', 202 | 'anchor.name' : '锚点名称', 203 | 'formatblock.formatBlock' : { 204 | h1 : '标题 1', 205 | h2 : '标题 2', 206 | h3 : '标题 3', 207 | h4 : '标题 4', 208 | p : '正 文' 209 | }, 210 | 'fontname.fontName' : { 211 | 'SimSun' : '宋体', 212 | 'NSimSun' : '新宋体', 213 | 'FangSong_GB2312' : '仿宋_GB2312', 214 | 'KaiTi_GB2312' : '楷体_GB2312', 215 | 'SimHei' : '黑体', 216 | 'Source Han Sans': '思源黑体', 217 | 'Source Han Serif': '思源宋体', 218 | 'Microsoft YaHei' : '微软雅黑', 219 | 'Arial' : 'Arial', 220 | 'Arial Black' : 'Arial Black', 221 | 'Times New Roman' : 'Times New Roman', 222 | 'Courier New' : 'Courier New', 223 | 'Tahoma' : 'Tahoma', 224 | 'Verdana' : 'Verdana' 225 | }, 226 | 'lineheight.lineHeight' : [ 227 | {'1' : '单倍行距'}, 228 | {'1.5' : '1.5倍行距'}, 229 | {'2' : '2倍行距'}, 230 | {'2.5' : '2.5倍行距'}, 231 | {'3' : '3倍行距'} 232 | ], 233 | 'template.selectTemplate' : '可选模板', 234 | 'template.replaceContent' : '替换当前内容', 235 | 'template.fileList' : { 236 | '1.html' : '图片和文字', 237 | '2.html' : '表格', 238 | '3.html' : '项目编号' 239 | } 240 | }, 'zh_CN'); 241 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/lang/zh_TW.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.lang({ 11 | source : '原始碼', 12 | preview : '預覽', 13 | undo : '復原(Ctrl+Z)', 14 | redo : '重複(Ctrl+Y)', 15 | cut : '剪下(Ctrl+X)', 16 | copy : '複製(Ctrl+C)', 17 | paste : '貼上(Ctrl+V)', 18 | plainpaste : '貼為純文字格式', 19 | wordpaste : '自Word貼上', 20 | selectall : '全選(Ctrl+A)', 21 | justifyleft : '靠左對齊', 22 | justifycenter : '置中', 23 | justifyright : '靠右對齊', 24 | justifyfull : '左右對齊', 25 | insertorderedlist : '編號清單', 26 | insertunorderedlist : '項目清單', 27 | indent : '增加縮排', 28 | outdent : '減少縮排', 29 | subscript : '下標', 30 | superscript : '上標', 31 | formatblock : '標題', 32 | fontname : '字體', 33 | fontsize : '文字大小', 34 | forecolor : '文字顏色', 35 | hilitecolor : '背景顏色', 36 | bold : '粗體(Ctrl+B)', 37 | italic : '斜體(Ctrl+I)', 38 | underline : '底線(Ctrl+U)', 39 | strikethrough : '刪除線', 40 | removeformat : '清除格式', 41 | image : '影像', 42 | multiimage : '批量影像上傳', 43 | flash : 'Flash', 44 | media : '多媒體', 45 | table : '表格', 46 | hr : '插入水平線', 47 | emoticons : '插入表情', 48 | link : '超連結', 49 | unlink : '移除超連結', 50 | fullscreen : '最大化', 51 | about : '關於', 52 | print : '列印(Ctrl+P)', 53 | fileManager : '瀏覽伺服器', 54 | code : '插入程式代碼', 55 | map : 'Google地圖', 56 | baidumap : 'Baidu地圖', 57 | lineheight : '行距', 58 | clearhtml : '清理HTML代碼', 59 | pagebreak : '插入分頁符號', 60 | quickformat : '快速排版', 61 | insertfile : '插入文件', 62 | template : '插入樣板', 63 | anchor : '錨點', 64 | yes : '確定', 65 | no : '取消', 66 | close : '關閉', 67 | editImage : '影像屬性', 68 | deleteImage : '刪除影像', 69 | editFlash : 'Flash屬性', 70 | deleteFlash : '删除Flash', 71 | editMedia : '多媒體屬性', 72 | deleteMedia : '删除多媒體', 73 | editLink : '超連結屬性', 74 | deleteLink : '移除超連結', 75 | tableprop : '表格屬性', 76 | tablecellprop : '儲存格屬性', 77 | tableinsert : '插入表格', 78 | tabledelete : '刪除表格', 79 | tablecolinsertleft : '向左插入列', 80 | tablecolinsertright : '向右插入列', 81 | tablerowinsertabove : '向上插入欄', 82 | tablerowinsertbelow : '下方插入欄', 83 | tablerowmerge : '向下合併單元格', 84 | tablecolmerge : '向右合併單元格', 85 | tablerowsplit : '分割欄', 86 | tablecolsplit : '分割列', 87 | tablecoldelete : '删除列', 88 | tablerowdelete : '删除欄', 89 | noColor : '自動', 90 | pleaseSelectFile : '請選擇文件。', 91 | invalidImg : "請輸入有效的URL。\n只允許jpg,gif,bmp,png格式。", 92 | invalidMedia : "請輸入有效的URL。\n只允許swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。", 93 | invalidWidth : "寬度必須是數字。", 94 | invalidHeight : "高度必須是數字。", 95 | invalidBorder : "邊框必須是數字。", 96 | invalidUrl : "請輸入有效的URL。", 97 | invalidRows : '欄數是必須輸入項目,只允許輸入大於0的數字。', 98 | invalidCols : '列數是必須輸入項目,只允許輸入大於0的數字。', 99 | invalidPadding : '內距必須是數字。', 100 | invalidSpacing : '間距必須是數字。', 101 | invalidBorder : '边框必须为数字。', 102 | pleaseInput : "請輸入內容。", 103 | invalidJson : '伺服器發生故障。', 104 | uploadSuccess : '上傳成功。', 105 | cutError : '您的瀏覽器安全設置不允許使用剪下操作,請使用快捷鍵(Ctrl+X)完成。', 106 | copyError : '您的瀏覽器安全設置不允許使用剪下操作,請使用快捷鍵(Ctrl+C)完成。', 107 | pasteError : '您的瀏覽器安全設置不允許使用剪下操作,請使用快捷鍵(Ctrl+V)完成。', 108 | ajaxLoading : '加載中,請稍候 ...', 109 | uploadLoading : '上傳中,請稍候 ...', 110 | uploadError : '上傳錯誤', 111 | 'plainpaste.comment' : '請使用快捷鍵(Ctrl+V)把內容貼到下方區域裡。', 112 | 'wordpaste.comment' : '請使用快捷鍵(Ctrl+V)把內容貼到下方區域裡。', 113 | 'code.pleaseInput' : 'Please input code.', 114 | 'link.url' : 'URL', 115 | 'link.linkType' : '打開類型', 116 | 'link.newWindow' : '新窗口', 117 | 'link.selfWindow' : '本頁窗口', 118 | 'flash.url' : 'URL', 119 | 'flash.width' : '寬度', 120 | 'flash.height' : '高度', 121 | 'flash.upload' : '上傳', 122 | 'flash.viewServer' : '瀏覽', 123 | 'media.url' : 'URL', 124 | 'media.urlTip': '多個 URL 使用英文逗號分隔', 125 | 'media.width' : '寬度', 126 | 'media.height' : '高度', 127 | 'media.autostart' : '自動播放', 128 | 'media.upload' : '上傳', 129 | 'media.viewServer' : '瀏覽', 130 | 'media.controls': '播放控件', 131 | 'image.remoteImage' : '網絡影像', 132 | 'image.localImage' : '上傳影像', 133 | 'image.remoteUrl' : '影像URL', 134 | 'image.localUrl' : '影像URL', 135 | 'image.size' : '影像大小', 136 | 'image.width' : '寬度', 137 | 'image.height' : '高度', 138 | 'image.resetSize' : '原始大小', 139 | 'image.align' : '對齊方式', 140 | 'image.defaultAlign' : '未設定', 141 | 'image.leftAlign' : '向左對齊', 142 | 'image.rightAlign' : '向右對齊', 143 | 'image.imgTitle' : '影像說明', 144 | 'image.upload' : '瀏覽...', 145 | 'image.viewServer' : '瀏覽...', 146 | 'multiimage.uploadDesc' : 'Allows users to upload <%=uploadLimit%> images, single image size not exceeding <%=sizeLimit%>', 147 | 'multiimage.startUpload' : 'Start upload', 148 | 'multiimage.clearAll' : 'Clear all', 149 | 'multiimage.insertAll' : 'Insert all', 150 | 'multiimage.queueLimitExceeded' : 'Queue limit exceeded.', 151 | 'multiimage.fileExceedsSizeLimit' : 'File exceeds size limit.', 152 | 'multiimage.zeroByteFile' : 'Zero byte file.', 153 | 'multiimage.invalidFiletype' : 'Invalid file type.', 154 | 'multiimage.unknownError' : 'Unknown upload error.', 155 | 'multiimage.pending' : 'Pending ...', 156 | 'multiimage.uploadError' : 'Upload error', 157 | 'filemanager.emptyFolder' : '空文件夾', 158 | 'filemanager.moveup' : '至上一級文件夾', 159 | 'filemanager.viewType' : '顯示方式:', 160 | 'filemanager.viewImage' : '縮略圖', 161 | 'filemanager.listImage' : '詳細信息', 162 | 'filemanager.orderType' : '排序方式:', 163 | 'filemanager.fileName' : '名稱', 164 | 'filemanager.fileSize' : '大小', 165 | 'filemanager.fileType' : '類型', 166 | 'insertfile.url' : 'URL', 167 | 'insertfile.title' : '文件說明', 168 | 'insertfile.upload' : '上傳', 169 | 'insertfile.viewServer' : '瀏覽', 170 | 'table.cells' : '儲存格數', 171 | 'table.rows' : '欄數', 172 | 'table.cols' : '列數', 173 | 'table.size' : '表格大小', 174 | 'table.width' : '寬度', 175 | 'table.height' : '高度', 176 | 'table.percent' : '%', 177 | 'table.px' : 'px', 178 | 'table.space' : '內距間距', 179 | 'table.padding' : '內距', 180 | 'table.spacing' : '間距', 181 | 'table.align' : '對齊方式', 182 | 'table.textAlign' : '水平對齊', 183 | 'table.verticalAlign' : '垂直對齊', 184 | 'table.alignDefault' : '未設定', 185 | 'table.alignLeft' : '向左對齊', 186 | 'table.alignCenter' : '置中', 187 | 'table.alignRight' : '向右對齊', 188 | 'table.alignTop' : '靠上', 189 | 'table.alignMiddle' : '置中', 190 | 'table.alignBottom' : '靠下', 191 | 'table.alignBaseline' : '基線', 192 | 'table.border' : '表格邊框', 193 | 'table.borderWidth' : '邊框', 194 | 'table.borderColor' : '顏色', 195 | 'table.backgroundColor' : '背景顏色', 196 | 'map.address' : '住所: ', 197 | 'map.search' : '尋找', 198 | 'baidumap.address' : '住所: ', 199 | 'baidumap.search' : '尋找', 200 | 'baidumap.insertDynamicMap' : '插入動態地圖', 201 | 'anchor.name' : '錨點名稱', 202 | 'formatblock.formatBlock' : { 203 | h1 : '標題 1', 204 | h2 : '標題 2', 205 | h3 : '標題 3', 206 | h4 : '標題 4', 207 | p : '一般' 208 | }, 209 | 'fontname.fontName' : { 210 | 'MingLiU' : '細明體', 211 | 'PMingLiU' : '新細明體', 212 | 'DFKai-SB' : '標楷體', 213 | 'SimSun' : '宋體', 214 | 'NSimSun' : '新宋體', 215 | 'FangSong' : '仿宋體', 216 | 'Arial' : 'Arial', 217 | 'Arial Black' : 'Arial Black', 218 | 'Times New Roman' : 'Times New Roman', 219 | 'Courier New' : 'Courier New', 220 | 'Tahoma' : 'Tahoma', 221 | 'Verdana' : 'Verdana' 222 | }, 223 | 'lineheight.lineHeight' : [ 224 | {'1' : '单倍行距'}, 225 | {'1.5' : '1.5倍行距'}, 226 | {'2' : '2倍行距'}, 227 | {'2.5' : '2.5倍行距'}, 228 | {'3' : '3倍行距'} 229 | ], 230 | 'template.selectTemplate' : '可選樣板', 231 | 'template.replaceContent' : '取代當前內容', 232 | 'template.fileList' : { 233 | '1.html' : '影像和文字', 234 | '2.html' : '表格', 235 | '3.html' : '项目清單' 236 | } 237 | }, 'zh_TW'); 238 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/plugins.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/plugins.zip -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/common/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/common/anchor.gif -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/common/audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/common/audio.png -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/common/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/common/blank.gif -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/common/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/common/loading.gif -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/common/media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/common/media.png -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/common/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/common/video.png -------------------------------------------------------------------------------- /asset/zui/dist/lib/kindeditor/themes/default/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/kindeditor/themes/default/default.png -------------------------------------------------------------------------------- /asset/zui/dist/lib/migrate1.2/zui.migrate1.2.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 1.2升级到1.3兼容插件 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | /* ======================================================================== 9 | * ZUI: zui.migrate.1.2.js 10 | * This file inclues some helper methods to help upgrad version 1.2 or 11 | * lower to version 1.3 12 | * If you are using 1.3+, then ignore this. 13 | * http://openzui.com 14 | * ======================================================================== 15 | * Copyright 2014-2020 cnezsoft.com; Licensed MIT 16 | * ======================================================================== */ 17 | 18 | 19 | (function($, window) { 20 | var zui = $.zui; 21 | if(zui) { 22 | function extendTo(name, target) { 23 | if(Array.isArray(name)) { 24 | $.each(name, function(i, n) { 25 | extendTo(n, target); 26 | }); 27 | return; 28 | } 29 | 30 | var config = {}; 31 | config[name] = zui[name]; 32 | 33 | if(target) { 34 | $.extend(target, config); 35 | } else { 36 | $.extend(config); 37 | } 38 | } 39 | 40 | extendTo(['uuid', 'callEvent', 'clientLang', 'browser', 'messager', 'Messager', 'showMessager', 'closeModal', 'ajustModalPosition', 'ModalTrigger', 'modalTrigger', 'store']); 41 | extendTo(['Color', 'imgReady', 'messager', 'Messager', 'showMessager', 'closeModal', 'ajustModalPosition', 'ModalTrigger', 'modalTrigger', 'store'], window); 42 | } 43 | }(jQuery, window)); 44 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/migrate1.2/zui.migrate1.2.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 1.2升级到1.3兼容插件 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(e,r){function o(r,s){if(Array.isArray(r))return void e.each(r,function(e,r){o(r,s)});var i={};i[r]=a[r],s?e.extend(s,i):e.extend(i)}var a=e.zui;a&&(o(["uuid","callEvent","clientLang","browser","messager","Messager","showMessager","closeModal","ajustModalPosition","ModalTrigger","modalTrigger","store"]),o(["Color","imgReady","messager","Messager","showMessager","closeModal","ajustModalPosition","ModalTrigger","modalTrigger","store"],r))}(jQuery,window); -------------------------------------------------------------------------------- /asset/zui/dist/lib/picker/zui.picker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 下拉选择器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.picker{min-height:32px;background-color:#eee}.picker:not(.picker-ready)>*{display:none}.picker-selections{position:relative;min-height:32px;color:#222;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.picker-focus .picker-selections{border-color:#145ccd;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(20,92,205,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(20,92,205,.6)}.picker-multi .picker-selections{padding:3px}.picker-multi.picker-focus .picker-selections:before{position:absolute;right:0;bottom:8px;display:block;width:24px;height:14px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;content:'\e603';opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-multi.picker-focus.picker-loading .picker-selections::before{display:inline-block;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.picker-multi .picker-selection{position:relative;display:inline-block;padding:0 20px 0 5px;margin:2px;line-height:18px;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ddd;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05)}.picker-selection-single{max-width:100%;padding:5px 20px 5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-focus .picker-selection-single .picker-selection-text{display:none}.picker-selection-single:after{position:absolute;top:7px;right:0;display:block;width:24px;height:14px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;content:'\e6b8';opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-focus .picker-selection-single::after{content:'\e603'}.picker-focus.picker-loading .picker-selection-single::after{display:inline-block;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.picker-selection-remove{position:absolute;top:0;right:0;width:20px;height:20px;text-align:center;cursor:pointer;opacity:.2}.picker-selection-remove:before{font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-shadow:0 1px 0 #fff;text-transform:none;content:'\d7';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-selection-remove:hover{opacity:.5}.picker-single .picker-selection-remove{top:5px;right:20px;z-index:1}.picker-no-value .picker-selection-remove,.picker-single.picker-focus .picker-selection-remove{display:none}.picker-multi.picker-sortable .picker-selection-text{cursor:move}.picker-search{color:transparent;background:0 0;border:none}.picker-search:focus{color:inherit;outline:0}.picker-single .picker-search{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;padding:5px 8px}.picker-multi .picker-search{display:inline-block;width:10px;min-width:10px;max-width:100%;padding:0 2px;margin:2px 0}.picker-placeholder{position:absolute;top:5px;right:20px;left:8px;z-index:0;display:none;overflow:hidden;color:grey;text-overflow:ellipsis;white-space:nowrap}.picker-no-value.picker-focus .picker-placeholder{display:none}.picker-input-empty.picker-focus.picker-no-value .picker-placeholder,.picker-no-value .picker-placeholder{display:block}.picker-drop-menu{position:fixed;z-index:1200;display:none;min-width:100px;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.12),0 1px 3px rgba(0,0,0,.1);box-shadow:0 6px 12px rgba(0,0,0,.12),0 1px 3px rgba(0,0,0,.1);opacity:0}.picker-drop-menu.picker-drop-show{display:block}.picker-drop-menu.picker-has-message{min-height:22px;padding-bottom:22px}.picker-option-list{padding:5px 0;margin:0;overflow-y:auto}.picker-no-options .picker-option-list{display:none}.picker-option{display:block;min-height:30px;padding:5px 10px;overflow:hidden;clear:both;font-weight:400;line-height:1.53846154;color:#353535;text-overflow:ellipsis;white-space:nowrap;-webkit-transition:none;-o-transition:none;transition:none}.picker-single .picker-option.picker-option-selected{color:#3280fc;background:#ebf2f9}.picker-option:focus,.picker-option:hover{text-decoration:none}.picker-option.picker-option-active,.picker-single .picker-option.picker-option-selected.picker-option-active{color:#fff;background-color:#3280fc}.picker-multi .picker-option.picker-option-selected,.picker-multi .picker-option.picker-option-selected.picker-option-active{color:#ccc;cursor:not-allowed;background-color:#fff}.picker-option-text-matched{position:relative;color:#3280fc}.picker-option-text-matched:before{position:absolute;right:0;bottom:-4px;left:0;display:block;height:2px;content:' ';background-color:#3280fc;border-radius:2px;opacity:.5}.picker-option-active .picker-option-text-matched,.picker-option:hover .picker-option-text-matched{color:#fff}.picker-option-active .picker-option-text-matched:before,.picker-option:hover .picker-option-text-matched:before{background-color:#fff}.picker-message{position:absolute;right:0;bottom:0;left:0;display:none;height:22px;padding:2px 5px;overflow:hidden;font-size:12px;color:grey;text-overflow:ellipsis;white-space:nowrap;background-color:#f1f1f1}.picker-has-message .picker-message{display:block}.picker-message[data-type=danger]{color:#ea644a} -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-apollo.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, 2 | null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-basic.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^"(?:[^\n\r"\\]|\\.)*(?:"|$)/,a,'"'],["pln",/^\s+/,a," \r\n\t\u00a0"]],[["com",/^REM[^\n\r]*/,a],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,a],["pln",/^[a-z][^\W_]?(?:\$|%)?/i,a],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?/i,a,"0123456789"],["pun", 3 | /^.[^\s\w"$%.]*/,a]]),["basic","cbm"]); 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-clj.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2011 Google Inc. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | var a=null; 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a], 18 | ["typ",/^:[\dA-Za-z-]+/]]),["clj"]); 19 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n\u000c"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]+)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//], 2 | ["com",/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}\b/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-dart.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"]],[["com",/^#!.*/],["kwd",/^\b(?:import|library|part of|part|as|show|hide)\b/i],["com",/^\/\/.*/],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["kwd",/^\b(?:class|interface)\b/i],["kwd",/^\b(?:assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b/i],["kwd",/^\b(?:abstract|const|extends|factory|final|get|implements|native|operator|set|static|typedef|var)\b/i], 2 | ["typ",/^\b(?:bool|double|dynamic|int|num|object|string|void)\b/i],["kwd",/^\b(?:false|null|true)\b/i],["str",/^r?'''[\S\s]*?[^\\]'''/],["str",/^r?"""[\S\s]*?[^\\]"""/],["str",/^r?'('|[^\n\f\r]*?[^\\]')/],["str",/^r?"("|[^\n\f\r]*?[^\\]")/],["pln",/^[$_a-z]\w*/i],["pun",/^[!%&*+/:<-?^|~-]/],["lit",/^\b0x[\da-f]+/i],["lit",/^\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i],["lit",/^\b\.\d+(?:e[+-]?\d+)?/i],["pun",/^[(),.;[\]{}]/]]), 3 | ["dart"]); 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-erlang.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n\u000b\u000c\r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["lit",/^[a-z]\w*/],["lit",/^'(?:[^\n\f\r'\\]|\\[^&])+'?/,null,"'"],["lit",/^\?[^\t\n ({]+/,null,"?"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\n]*/],["kwd",/^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/], 2 | ["kwd",/^-[_a-z]+/],["typ",/^[A-Z_]\w*/],["pun",/^[,.;]/]]),["erlang","erl"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-go.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); 2 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-hs.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n\u000b\u000c\r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, 2 | null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-lisp.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], 3 | ["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","lsp","scm","ss","rkt"]); 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-llvm.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^!?"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["com",/^;[^\n\r]*/,null,";"]],[["pln",/^[!%@](?:[$\-.A-Z_a-z][\w$\-.]*|\d+)/],["kwd",/^[^\W\d]\w*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[Xx][\dA-Fa-f]+)/],["pun",/^[(-*,:<->[\]{}]|\.\.\.$/]]),["llvm","ll"]); 2 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-lua.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], 2 | ["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-ml.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], 2 | ["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-mumps.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:[^"]|\\.)*"/,null,'"']],[["com",/^;[^\n\r]*/,null,";"],["dec",/^\$(?:d|device|ec|ecode|es|estack|et|etrap|h|horolog|i|io|j|job|k|key|p|principal|q|quit|st|stack|s|storage|sy|system|t|test|tl|tlevel|tr|trestart|x|y|z[a-z]*|a|ascii|c|char|d|data|e|extract|f|find|fn|fnumber|g|get|j|justify|l|length|na|name|o|order|p|piece|ql|qlength|qs|qsubscript|q|query|r|random|re|reverse|s|select|st|stack|t|text|tr|translate|nan)\b/i, 2 | null],["kwd",/^(?:[^$]b|break|c|close|d|do|e|else|f|for|g|goto|h|halt|h|hang|i|if|j|job|k|kill|l|lock|m|merge|n|new|o|open|q|quit|r|read|s|set|tc|tcommit|tre|trestart|tro|trollback|ts|tstart|u|use|v|view|w|write|x|xecute)\b/i,null],["lit",/^[+-]?(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?/i],["pln",/^[a-z][^\W_]*/i],["pun",/^[^\w\t\n\r"$%;^\xa0]|_/]]),["mumps"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-n.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\u00a0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, 3 | a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, 4 | a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); 5 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-pascal.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^'(?:[^\n\r'\\]|\\.)*(?:'|$)/,a,"'"],["pln",/^\s+/,a," \r\n\t\u00a0"]],[["com",/^\(\*[\S\s]*?(?:\*\)|$)|^{[\S\s]*?(?:}|$)/,a],["kwd",/^(?:absolute|and|array|asm|assembler|begin|case|const|constructor|destructor|div|do|downto|else|end|external|for|forward|function|goto|if|implementation|in|inline|interface|interrupt|label|mod|not|object|of|or|packed|procedure|program|record|repeat|set|shl|shr|then|to|type|unit|until|uses|var|virtual|while|with|xor)\b/i,a], 3 | ["lit",/^(?:true|false|self|nil)/i,a],["pln",/^[a-z][^\W_]*/i,a],["lit",/^(?:\$[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)/i,a,"0123456789"],["pun",/^.[^\s\w$'./@]*/,a]]),["pascal"]); 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-proto.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); 2 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-r.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^'\\]|\\[\S\s])*(?:'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![\w.])/],["lit",/^0[Xx][\dA-Fa-f]+([Pp]\d+)?[Li]?/],["lit",/^[+-]?(\d+(\.\d+)?|\.\d+)([Ee][+-]?\d+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|\d+))(?![\w.])/], 2 | ["pun",/^(?:<>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|[!*+/^]|%.*?%|[$=@~]|:{1,3}|[(),;?[\]{}])/],["pln",/^(?:[A-Za-z]+[\w.]*|\.[^\W\d][\w.]*)(?![\w.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-rd.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\n\r]*/,null,"%"]],[["lit",/^\\(?:cr|l?dots|R|tab)\b/],["kwd",/^\\[@-Za-z]+/],["kwd",/^#(?:ifn?def|endif)/],["pln",/^\\[{}]/],["pun",/^[()[\]{}]+/]]),["Rd","rd"]); 2 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-scala.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], 2 | ["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-sql.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|apply|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|connect|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|following|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|matched|merge|natural|national|nocheck|nonclustered|nocycle|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|partition|percent|pivot|plan|preceding|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rows?|rule|save|schema|select|session_user|set|setuser|shutdown|some|start|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|unbounded|union|unique|unpivot|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|within|writetext|xml)(?=[^\w-]|$)/i, 2 | null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-tcl.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^{+/,a,"{"],["clo",/^}+/,a,"}"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:after|append|apply|array|break|case|catch|continue|error|eval|exec|exit|expr|for|foreach|if|incr|info|proc|return|set|switch|trace|uplevel|upvar|while)\b/,a],["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit", 3 | /^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["tcl"]); 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-tex.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); 2 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-vb.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"\u201c\u201d'],["com",/^['\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\n\r_\u2028\u2029])*/,null,"'\u2018\u2019"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i, 2 | null],["com",/^rem\b.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*(?:\[[!#%&@]+])?|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-vhdl.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, 2 | null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i], 3 | ["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]); 4 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-wiki.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); 2 | PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/lang-yaml.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/prettify/prettify.css: -------------------------------------------------------------------------------- 1 | /*! Apache License 2.0 https://github.com/google/code-prettify*/ 2 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 3 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/selectable/zui.selectable.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 拖拽选择 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(t){"use strict";var e="zui.selectable",i=function(i,n){this.name=e,this.$=t(i),this.id=t.zui.uuid(),this.selectOrder=1,this.selections={},this.getOptions(n),this._init()},n=function(t,e,i){return t>=i.left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height},o=function(t,e){var i=Math.max(t.left,e.left),o=Math.max(t.top,e.top),s=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height);return n(i,o,t)&&n(s,l,t)&&n(i,o,e)&&n(s,l,e)};i.DEFAULTS={selector:"li,tr,div",trigger:"",selectClass:"active",rangeStyle:{border:"1px solid "+(t.zui.colorset?t.zui.colorset.primary:"#3280fc"),backgroundColor:t.zui.colorset?new t.zui.Color(t.zui.colorset.primary).fade(20).toCssStr():"rgba(50, 128, 252, 0.2)"},clickBehavior:"toggle",ignoreVal:3,listenClick:!0},i.prototype.getOptions=function(e){this.options=t.extend({},i.DEFAULTS,this.$.data(),e)},i.prototype.select=function(t){this.toggle(t,!0)},i.prototype.unselect=function(t){this.toggle(t,!1)},i.prototype.toggle=function(e,i,n){var o,s,l=this.options.selector,c=this;if(void 0===e)return void this.$.find(l).each(function(){c.toggle(this,i)});if("object"==typeof e?(o=t(e).closest(l),s=o.data("id")):(s=e,o=c.$.find('.slectable-item[data-id="'+s+'"]')),o&&o.length){if(s||(s=t.zui.uuid(),o.attr("data-id",s)),void 0!==i&&null!==i||(i=!c.selections[s]),!!i!=!!c.selections[s]){var a;"function"==typeof n&&(a=n(i)),a!==!0&&(c.selections[s]=!!i&&c.selectOrder++,c.callEvent(i?"select":"unselect",{id:s,selections:c.selections,target:o,selected:c.getSelectedArray()},c))}c.options.selectClass&&o.toggleClass(c.options.selectClass,i)}},i.prototype.getSelectedArray=function(){var e=[];return t.each(this.selections,function(t,i){i&&e.push(t)}),e},i.prototype.syncSelectionsFromClass=function(){var e=this,i=e.$children=e.$.find(e.options.selector);e.selections={},i.each(function(){var i=t(this);e.selections[i.data("id")]=i.hasClass(e.options.selectClass)})},i.prototype._init=function(){var e,i,n,s,l,c,a,r=this.options,u=this,h=r.ignoreVal,d=!0,f="."+this.name+"."+this.id,g="function"==typeof r.checkFunc?r.checkFunc:null,p="function"==typeof r.rangeFunc?r.rangeFunc:null,v=!1,y=null,m="mousedown"+f,b=function(){s&&u.$children.each(function(){var e=t(this),i=e.offset();i.width=e.outerWidth(),i.height=e.outerHeight();var n=p?p.call(this,s,i):o(s,i);if(g){var l=g.call(u,{intersect:n,target:e,range:s,targetRange:i});l===!0?u.select(e):l===!1&&u.unselect(e)}else n?u.select(e):u.multiKey||u.unselect(e)})},C=function(o){v&&(l=o.pageX,c=o.pageY,s={width:Math.abs(l-e),height:Math.abs(c-i),left:l>e?e:l,top:c>i?i:c},d&&s.width').css(t.extend({zIndex:1060,position:"absolute",top:e,left:i,pointerEvents:"none"},u.options.rangeStyle)).appendTo(t("body")))),n.css(s),clearTimeout(a),a=setTimeout(b,10),d=!1))},w=function(e){t(document).off(f),clearTimeout(y),v&&(v=!1,n&&n.remove(),d||s&&(clearTimeout(a),b(),s=null),u.callEvent("finish",{selections:u.selections,selected:u.getSelectedArray()}),e.preventDefault())},$=function(o){if(v)return w(o);var s=t.zui.getMouseButtonCode(r.mouseButton);if(!(s>-1&&o.button!==s||u.altKey||3===o.which||u.callEvent("start",o)===!1)){var l=u.$children=u.$.find(r.selector);l.addClass("slectable-item");var c=u.multiKey?"multi":r.clickBehavior;if("single"===c&&u.unselect(),r.listenClick&&("multi"===c?u.toggle(o.target):"single"===c?u.select(o.target):"toggle"===c&&u.toggle(o.target,null,function(t){u.unselect()})),u.callEvent("startDrag",o)===!1)return void u.callEvent("finish",{selections:u.selections,selected:u.getSelectedArray()});e=o.pageX,i=o.pageY,n=null,d=!0,v=!0,t(document).on("mousemove"+f,C).on("mouseup"+f,w),y=setTimeout(function(){t(document).on(m,w)},10),o.preventDefault()}},k=r.container&&"default"!==r.container?t(r.container):this.$;r.trigger?k.on(m,r.trigger,$):k.on(m,$),t(document).on("keydown",function(t){var e=t.keyCode;17===e||91==e?u.multiKey=e:18===e&&(u.altKey=!0)}).on("keyup",function(t){u.multiKey=!1,u.altKey=!1})},i.prototype.callEvent=function(e,i){var n=t.Event(e+"."+this.name);this.$.trigger(n,i);var o=n.result,s=this.options[e];return"function"==typeof s&&(o=s.apply(this,Array.isArray(i)?i:[i])),o},t.fn.selectable=function(n){return this.each(function(){var o=t(this),s=o.data(e),l="object"==typeof n&&n;s||o.data(e,s=new i(this,l)),"string"==typeof n&&s[n]()})},t.fn.selectable.Constructor=i,t(function(){t('[data-ride="selectable"]').selectable()})}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/sortable/zui.sortable.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 排序 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | /* ======================================================================== 9 | * ZUI: sortable.js 10 | * http://openzui.com 11 | * ======================================================================== 12 | * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT 13 | * ======================================================================== */ 14 | 15 | 16 | + function($, window, document) { 17 | 'use strict'; 18 | 19 | if(!$.fn.droppable) { 20 | console.error('Sortable requires droppable.js'); 21 | return; 22 | } 23 | 24 | var NAME = 'zui.sortable', 25 | DEFAULTS = { 26 | selector : 'li,div', 27 | dragCssClass : 'invisible', 28 | sortingClass : 'sortable-sorting' 29 | }, 30 | STR_ORDER = 'order'; 31 | 32 | var Sortable = function(element, options) { 33 | var that = this; 34 | that.$ = $(element); 35 | that.options = $.extend({}, DEFAULTS, that.$.data(), options); 36 | that.init(); 37 | }; 38 | 39 | Sortable.DEFAULTS = DEFAULTS; 40 | Sortable.NAME = NAME; 41 | 42 | Sortable.prototype.init = function() { 43 | var that = this, 44 | $root = that.$, 45 | options = that.options, 46 | selector = options.selector, 47 | containerSelector = options.containerSelector, 48 | sortingClass = options.sortingClass, 49 | dragCssClass = options.dragCssClass, 50 | targetSelector = options.targetSelector, 51 | isReverse = options.reverse, 52 | orderChanged; 53 | 54 | var markOrders = function($items) { 55 | $items = $items || that.getItems(1); 56 | var itemsCount = $items.length; 57 | if (itemsCount) { 58 | $items.each(function(itemIndex) { 59 | var itemOrder = isReverse ? itemsCount - itemIndex : itemIndex; 60 | $(this).attr('data-' + STR_ORDER, itemOrder).data(STR_ORDER, itemOrder); 61 | }); 62 | } 63 | }; 64 | 65 | markOrders(); 66 | 67 | $root.droppable({ 68 | handle : options.trigger, 69 | target : targetSelector ? targetSelector : (containerSelector ? (selector + ',' + containerSelector) : selector), 70 | selector : selector, 71 | container : $root, 72 | always : options.always, 73 | flex : true, 74 | lazy : options.lazy, 75 | canMoveHere : options.canMoveHere, 76 | dropToClass : options.dropToClass, 77 | before : options.before, 78 | nested : !!containerSelector, 79 | mouseButton : options.mouseButton, 80 | stopPropagation : options.stopPropagation, 81 | start: function(e) { 82 | if(dragCssClass) e.element.addClass(dragCssClass); 83 | orderChanged = false; 84 | that.trigger('start', e); 85 | }, 86 | drag: function(e) { 87 | $root.addClass(sortingClass); 88 | if(e.isIn) { 89 | var $ele = e.element, 90 | $target = e.target, 91 | isContainer = containerSelector && $target.is(containerSelector); 92 | 93 | if (isContainer) { 94 | if (!$target.children(selector).filter('.dragging').length) { 95 | $target.append($ele); 96 | var $items = that.getItems(1); 97 | markOrders($items); 98 | that.trigger(STR_ORDER, { 99 | list: $items, 100 | element: $ele 101 | }); 102 | } 103 | return; 104 | } 105 | 106 | var eleOrder = $ele.data(STR_ORDER), 107 | targetOrder = $target.data(STR_ORDER); 108 | if(eleOrder === targetOrder) return markOrders($items); 109 | else if(eleOrder > targetOrder) { 110 | $target[isReverse ? 'after' : 'before']($ele); 111 | } else { 112 | $target[isReverse ? 'before' : 'after']($ele); 113 | } 114 | orderChanged = true; 115 | var $items = that.getItems(1); 116 | markOrders($items); 117 | that.trigger(STR_ORDER, { 118 | list: $items, 119 | element: $ele 120 | }); 121 | } 122 | }, 123 | finish: function(e) { 124 | if(dragCssClass && e.element) e.element.removeClass(dragCssClass); 125 | $root.removeClass(sortingClass); 126 | that.trigger('finish', { 127 | list: that.getItems(), 128 | element: e.element, 129 | changed: orderChanged 130 | }); 131 | } 132 | }); 133 | }; 134 | 135 | Sortable.prototype.destroy = function() { 136 | this.$.droppable('destroy'); 137 | this.$.data(NAME, null); 138 | }; 139 | 140 | Sortable.prototype.reset = function() { 141 | this.destroy(); 142 | this.init(); 143 | }; 144 | 145 | Sortable.prototype.getItems = function(onlyElements) { 146 | var $items = this.$.find(this.options.selector).not('.drag-shadow'); 147 | if(!onlyElements) { 148 | return $items.map(function() { 149 | var $item = $(this); 150 | return { 151 | item: $item, 152 | order: $item.data('order') 153 | }; 154 | }); 155 | } 156 | return $items; 157 | }; 158 | 159 | Sortable.prototype.trigger = function(name, params) { 160 | return $.zui.callEvent(this.options[name], params, this); 161 | }; 162 | 163 | $.fn.sortable = function(option) { 164 | return this.each(function() { 165 | var $this = $(this); 166 | var data = $this.data(NAME); 167 | var options = typeof option == 'object' && option; 168 | 169 | if(!data) $this.data(NAME, (data = new Sortable(this, options))); 170 | else if(typeof option == 'object') data.reset(); 171 | 172 | if(typeof option == 'string') data[option](); 173 | }); 174 | }; 175 | 176 | $.fn.sortable.Constructor = Sortable; 177 | }(jQuery, window, document); 178 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/sortable/zui.sortable.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 排序 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | +function(t,e,r){"use strict";if(!t.fn.droppable)return void console.error("Sortable requires droppable.js");var o="zui.sortable",n={selector:"li,div",dragCssClass:"invisible",sortingClass:"sortable-sorting"},s="order",a=function(e,r){var o=this;o.$=t(e),o.options=t.extend({},n,o.$.data(),r),o.init()};a.DEFAULTS=n,a.NAME=o,a.prototype.init=function(){var e,r=this,o=r.$,n=r.options,a=n.selector,i=n.containerSelector,l=n.sortingClass,d=n.dragCssClass,f=n.targetSelector,c=n.reverse,g=function(e){e=e||r.getItems(1);var o=e.length;o&&e.each(function(e){var r=c?o-e:e;t(this).attr("data-"+s,r).data(s,r)})};g(),o.droppable({handle:n.trigger,target:f?f:i?a+","+i:a,selector:a,container:o,always:n.always,flex:!0,lazy:n.lazy,canMoveHere:n.canMoveHere,dropToClass:n.dropToClass,before:n.before,nested:!!i,mouseButton:n.mouseButton,stopPropagation:n.stopPropagation,start:function(t){d&&t.element.addClass(d),e=!1,r.trigger("start",t)},drag:function(t){if(o.addClass(l),t.isIn){var n=t.element,d=t.target,f=i&&d.is(i);if(f){if(!d.children(a).filter(".dragging").length){d.append(n);var p=r.getItems(1);g(p),r.trigger(s,{list:p,element:n})}return}var u=n.data(s),h=d.data(s);if(u===h)return g(p);u>h?d[c?"after":"before"](n):d[c?"before":"after"](n),e=!0;var p=r.getItems(1);g(p),r.trigger(s,{list:p,element:n})}},finish:function(t){d&&t.element&&t.element.removeClass(d),o.removeClass(l),r.trigger("finish",{list:r.getItems(),element:t.element,changed:e})}})},a.prototype.destroy=function(){this.$.droppable("destroy"),this.$.data(o,null)},a.prototype.reset=function(){this.destroy(),this.init()},a.prototype.getItems=function(e){var r=this.$.find(this.options.selector).not(".drag-shadow");return e?r:r.map(function(){var e=t(this);return{item:e,order:e.data("order")}})},a.prototype.trigger=function(e,r){return t.zui.callEvent(this.options[e],r,this)},t.fn.sortable=function(e){return this.each(function(){var r=t(this),n=r.data(o),s="object"==typeof e&&e;n?"object"==typeof e&&n.reset():r.data(o,n=new a(this,s)),"string"==typeof e&&n[e]()})},t.fn.sortable.Constructor=a}(jQuery,window,document); -------------------------------------------------------------------------------- /asset/zui/dist/lib/tabs/zui.tabs.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 标签页管理器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | .tabs { 9 | position: relative; 10 | min-height: 400px; 11 | } 12 | .tabs-navbar { 13 | padding: 4px 4px 0 4px; 14 | } 15 | .tabs-nav { 16 | height: 30px; 17 | -webkit-user-select: none; 18 | -moz-user-select: none; 19 | -ms-user-select: none; 20 | user-select: none; 21 | border-bottom: none; 22 | border-bottom: 1px solid #ddd; 23 | } 24 | .tab-nav-item { 25 | width: 160px; 26 | min-width: 0; 27 | max-width: 160px; 28 | padding-right: 2px; 29 | margin-bottom: 0; 30 | border: none; 31 | } 32 | .tab-nav-item:hover { 33 | min-width: 95px; 34 | } 35 | .tab-nav-link { 36 | position: relative; 37 | height: 30px; 38 | margin: 0; 39 | overflow: hidden; 40 | background-color: rgba(255, 255, 255, .65); 41 | background-color: #e5e5e5; 42 | border-color: #ddd; 43 | border-bottom: none; 44 | border-radius: 2px 2px 0 0; 45 | } 46 | .tab-nav-link > .title { 47 | position: absolute; 48 | top: 5px; 49 | right: 5px; 50 | left: 30px; 51 | display: block; 52 | overflow: hidden; 53 | font-size: 14px; 54 | line-height: 20px; 55 | text-overflow: ellipsis; 56 | white-space: nowrap; 57 | } 58 | .tab-nav-link > .icon { 59 | position: absolute; 60 | top: 5px; 61 | left: 5px; 62 | display: block; 63 | width: 20px; 64 | height: 20px; 65 | line-height: 20px; 66 | text-align: center; 67 | opacity: .8; 68 | } 69 | .tab-nav-item.loading .tab-nav-link > .icon:before { 70 | content: '\e97b'; 71 | -webkit-animation: spin 2s infinite linear; 72 | -o-animation: spin 2s infinite linear; 73 | animation: spin 2s infinite linear; 74 | } 75 | .tab-nav-link > .close { 76 | position: absolute; 77 | top: 5px; 78 | right: 5px; 79 | width: 20px; 80 | height: 20px; 81 | font-weight: 200; 82 | line-height: 16px; 83 | text-align: center; 84 | text-shadow: none; 85 | visibility: hidden; 86 | border-radius: 4px; 87 | opacity: 0; 88 | -webkit-transition: all .2s; 89 | -o-transition: all .2s; 90 | transition: all .2s; 91 | } 92 | .tab-nav-link > .close:hover { 93 | color: #fff; 94 | background-color: #ea644a; 95 | } 96 | .tab-nav-link:hover > .title { 97 | right: 25px; 98 | } 99 | .tab-nav-link:hover > .close { 100 | visibility: visible; 101 | opacity: 1; 102 | } 103 | .tab-nav-link.not-closable > .close { 104 | display: none; 105 | } 106 | .nav-tabs.tabs-nav > li > a, 107 | .nav-tabs.tabs-nav > li > a:hover, 108 | .nav-tabs.tabs-nav > li > a:focus { 109 | border-color: #ddd #ddd transparent #ddd; 110 | } 111 | .tab-nav-condensed .tab-nav-link > .title { 112 | left: 5px; 113 | text-overflow: initial; 114 | } 115 | .tab-nav-condensed .tab-nav-link > .icon { 116 | display: none; 117 | } 118 | .tabs-container { 119 | position: absolute; 120 | top: 34px; 121 | right: 0; 122 | bottom: 0; 123 | left: 0; 124 | } 125 | .tabs-container > .tab-pane { 126 | position: absolute; 127 | top: 0; 128 | right: 0; 129 | bottom: 0; 130 | left: 0; 131 | display: none; 132 | } 133 | .tabs-container > .tab-pane.active { 134 | display: block; 135 | } 136 | .tab-iframe-cover { 137 | display: none; 138 | } 139 | .tabs-show-contextmenu .tab-iframe-cover { 140 | position: absolute; 141 | top: 0; 142 | right: 0; 143 | bottom: 0; 144 | left: 0; 145 | display: block; 146 | } 147 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/tabs/zui.tabs.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 标签页管理器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.tabs{position:relative;min-height:400px}.tabs-navbar{padding:4px 4px 0 4px}.tabs-nav{height:30px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom:none;border-bottom:1px solid #ddd}.tab-nav-item{width:160px;min-width:0;max-width:160px;padding-right:2px;margin-bottom:0;border:none}.tab-nav-item:hover{min-width:95px}.tab-nav-link{position:relative;height:30px;margin:0;overflow:hidden;background-color:rgba(255,255,255,.65);background-color:#e5e5e5;border-color:#ddd;border-bottom:none;border-radius:2px 2px 0 0}.tab-nav-link>.title{position:absolute;top:5px;right:5px;left:30px;display:block;overflow:hidden;font-size:14px;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.tab-nav-link>.icon{position:absolute;top:5px;left:5px;display:block;width:20px;height:20px;line-height:20px;text-align:center;opacity:.8}.tab-nav-item.loading .tab-nav-link>.icon:before{content:'\e97b';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.tab-nav-link>.close{position:absolute;top:5px;right:5px;width:20px;height:20px;font-weight:200;line-height:16px;text-align:center;text-shadow:none;visibility:hidden;border-radius:4px;opacity:0;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.tab-nav-link>.close:hover{color:#fff;background-color:#ea644a}.tab-nav-link:hover>.title{right:25px}.tab-nav-link:hover>.close{visibility:visible;opacity:1}.tab-nav-link.not-closable>.close{display:none}.nav-tabs.tabs-nav>li>a,.nav-tabs.tabs-nav>li>a:focus,.nav-tabs.tabs-nav>li>a:hover{border-color:#ddd #ddd transparent #ddd}.tab-nav-condensed .tab-nav-link>.title{left:5px;text-overflow:initial}.tab-nav-condensed .tab-nav-link>.icon{display:none}.tabs-container{position:absolute;top:34px;right:0;bottom:0;left:0}.tabs-container>.tab-pane{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.tabs-container>.tab-pane.active{display:block}.tab-iframe-cover{display:none}.tabs-show-contextmenu .tab-iframe-cover{position:absolute;top:0;right:0;bottom:0;left:0;display:block} -------------------------------------------------------------------------------- /asset/zui/dist/lib/tabs/zui.tabs.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 标签页管理器 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(e){"use strict";var t=function(t){var a=this;"string"==typeof t?a.url=t:e.isPlainObject(t)&&e.extend(a,t),a.id||(a.id=e.zui.uuid()),a.type||(a.iframe?(a.type="iframe",a.url=a.url||a.iframe):a.ajax?(a.type="ajax",a.url=a.url||(e.isPlainObject(a.ajax)?a.ajax.url:a.ajax)):a.url?a.type=t.ajax?"ajax":"iframe":a.type="custom"),a.createTime=(new Date).getTime(),a.openTime=0,a.onCreate&&a.onCreate.call(a)};t.prototype.open=function(){var e=this;e.openTime=(new Date).getTime(),e.onOpen&&e.onOpen.call(e)},t.prototype.close=function(){var e=this;e.openTime=0,e.onClose&&e.onClose.call(e)},t.create=function(e){return e instanceof t?e:new t(e)};var a="zui.tabs",n={tabs:[],defaultTabIcon:"icon-window",contextMenu:!0,errorTemplate:'
    {0}
    ',showMessage:!0,navTemplate:'',containerTemplate:'
    '},o={zh_cn:{reload:"重新加载",close:"关闭",closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",reopenLast:"恢复上次关闭的标签页",errorCannotFetchFromRemote:"无法从远程服务器({0})获取内容。"},zh_tw:{reload:"重新加載",close:"關閉",closeOthers:"關閉其他標籤頁",closeRight:"關閉右側標籤頁",reopenLast:"恢復上次關閉的標籤頁",errorCannotFetchFromRemote:"無法從遠程服務器({0})獲取內容。"},en:{reload:"Reload",close:"Close",closeOthers:"Close others",closeRight:"Close right",reopenLast:"Reopen last",errorCannotFetchFromRemote:"Cannot fetch data from remote server {0}."}},i=function(i,s){var r=this;r.name=a,r.$=e(i),s=r.options=e.extend({},n,this.$.data(),s);var l=e.zui.clientLang(),c=s.lang;e.isPlainObject(c)?r.lang=e.zui.getLangData?e.zui.getLangData(a,l,o):e.extend(!0,{},o[c.lang||l],c):(c=c||l,r.lang=e.zui.getLangData?e.zui.getLangData(a,c,o):o[c]||o.en);var d=r.$.find(".tabs-navbar");d.length||(d=e(s.navTemplate).appendTo(r.$)),r.$navbar=d;var v=d.find(".tabs-nav");v.length||(v=e('').appendTo(d)),r.$nav=v;var p=r.$.find(".tabs-container");p.length||(p=e(s.containerTemplate).appendTo(r.$)),r.$tabs=p,r.activeTabId=s.defaultTab;var u=s.tabs||[];r.tabs={},e.each(u,function(e,a){var n=t.create(a);r.tabs[n.id]=n,r.activeTabId||(r.activeTabId=n.id),r.renderTab(n)}),r.closedTabs=[],r.open(r.getActiveTab()),v.on("click."+a,".tab-nav-link",function(){r.open(r.getTab(e(this).data("id")))}).on("click."+a,".tab-nav-close",function(t){r.close(e(this).closest(".tab-nav-link").data("id")),t.stopPropagation()}).on("resize."+a,function(){r.adjustNavs()}),s.contextMenu&&v.contextmenu({selector:".tab-nav-link",itemsCreator:function(t){return r.createMenuItems(r.getTab(e(this).data("id")))},onShow:function(){r.$.addClass("tabs-show-contextmenu")},onHide:function(){r.$.removeClass("tabs-show-contextmenu")}})};i.prototype.createMenuItems=function(t){var a=this,n=a.lang;return[{label:n.reload,onClick:function(){a.open(t,!0)}},"-",{label:n.close,disabled:t.forbidClose,onClick:function(){a.close(t.id)}},{label:n.closeOthers,disabled:a.$nav.find(".tab-nav-item:not(.hidden)").length<=1,onClick:function(){a.closeOthers(t.id)}},{label:n.closeRight,disabled:!e("#tab-nav-item-"+t.id).next(".tab-nav-item:not(.hidden)").length,onClick:function(){a.closeRight(t.id)}},"-",{label:n.reopenLast,disabled:!a.closedTabs.length,onClick:function(){a.reopen()}}]},i.prototype.adjustNavs=function(e){var t=this;if(!e)return t.adjustNavsTimer&&clearTimeout(t.adjustNavsTimer),void(t.adjustNavsTimer=setTimeout(function(){t.adjustNavs(!0)},50));t.adjustNavsTimer&&(t.adjustNavsTimer=null);var a=t.$nav,n=a.find(".tab-nav-item:not(.hidden)"),o=a.width(),i=n.length,s=Math.floor(o/i);s<96&&(s=Math.floor((o-96)/(i-1))),a.toggleClass("tab-nav-condensed",s<=50),n.css("max-width",s)},i.prototype.renderTab=function(t,a){var n=this,o=(n.$nav,e("#tab-nav-item-"+t.id));if(!o.length){var i=e('
    ×').attr({href:"#tabs-item-"+t.id,"data-id":t.id});if(o=e('
  • ').append(i).appendTo(n.$nav),a){var s=e("#tab-nav-item-"+a);s.length&&o.insertAfter(s)}n.adjustNavs()}var i=o.find("a").attr("title",t.desc).toggleClass("not-closable",!!t.forbidClose);return i.find(".icon").attr("class","icon "+(t.icon||n.options.defaultTabIcon)),i.find(".title").text(t.title||t.defaultTitle||""),o},i.prototype.getActiveTab=function(){var e=this;return e.activeTabId?e.tabs[e.activeTabId]:null},i.prototype.getTab=function(e){var t=this;return e?("object"==typeof e&&(e=e.id),t.tabs[e]):t.getActiveTab()},i.prototype.close=function(t,a){var n=this,o=n.getTab(t);if(o&&(a||!o.forbidClose)){e("#tab-nav-item-"+o.id).remove(),e("#tab-"+o.id).remove(),o.close(),delete n.tabs[o.id],n.closedTabs.push(o),n.$.callComEvent(n,"onClose",o);var i;e.each(n.tabs,function(e,t){(!i||i.openTime').appendTo(o.$tabs)),o.$tabs.find(".tab-pane.active").removeClass("active"),s.addClass("active"),a.open(),o.activeTabId=a.id,o.tabs[a.id]=a,!n&&a.loaded||o.reload(a),o.$.callComEvent(o,"onOpen",a)},i.prototype.showMessage=function(t,a){e.zui.messager.show(t,e.extend({placement:"center"},this.options.messagerOptions,{type:a}))},i.prototype.reload=function(t){var a=this;if("string"==typeof t?t=a.getTab(t):t||(t=a.getActiveTab()),t){if(!t.openTime)return a.open(t);var n=e("#tab-nav-item-"+t.id).addClass("loading").removeClass("has-error"),o=e("#tab-"+t.id).addClass("loading").removeClass("has-error"),i=function(i,s){if(t.openTime){if(n.removeClass("loading"),o.removeClass("loading"),a.$.callComEvent(a,"onLoad",t),("string"==typeof i||i instanceof e)&&(t.contentConverter&&(i=t.contentConverter(i,t)),o.empty().append(i),t.title||(i=o.text().replace(/\n/g,""),t.title=i.length>10?i.substr(0,10):i,a.renderTab(t))),s){n.addClass("has-error"),o.addClass("has-error");var r=a.options.showMessage;r&&("function"==typeof r&&(s=r(s)),a.showMessage(s,"danger")),i||o.html(a.options.errorTemplate.format(s))}t.loaded=(new Date).getTime()}};if("ajax"===t.type){var s={type:"get",url:t.url,error:function(e,n,o){i(!1,a.lang.errorCannotFetchFromRemote.format(t.url))},success:function(e){i(e)}};e.isPlainObject(t.ajax)&&(s=e.extend(s,t.ajax)),e.ajax(s)}else if("iframe"===t.type)try{var r="tab-iframe-"+t.id,l=e('');l.appendTo(o.empty()),e('
    ').appendTo(o);var c=document.getElementById(r);c.onload=c.onreadystatechange=function(){if(!this.readyState||"complete"==this.readyState){i();var e=c.contentDocument;e&&!t.title&&(t.title=e.title,a.renderTab(t))}}}catch(d){i()}else{var v=t.content||t.custom;"function"==typeof v?(v=v(t,i,a),v!==!0&&i(v)):i(v)}}},i.prototype.closeOthers=function(t){var a=this;a.$nav.find(".tab-nav-link:not(.hidden)").each(function(){var n=e(this).data("id");n!==t&&a.close(n)})},i.prototype.closeRight=function(t){for(var a=e("#tab-nav-item-"+t),n=a.next(".tab-nav-item:not(.hidden)");n.length;)this.close(n.data("id")),n=a.next(".tab-nav-item:not(.hidden)")},i.prototype.closeAll=function(){var t=this;t.$nav.find(".tab-nav-link:not(.hidden)").each(function(){t.close(e(this).data("id"))})},i.prototype.reopen=function(){var e=this;e.closedTabs.length&&e.open(e.closedTabs.pop(),!0)},e.fn.tabs=function(t){return this.each(function(){var n=e(this),o=n.data(a),s="object"==typeof t&&t;o||n.data(a,o=new i(this,s)),"string"==typeof t&&o[t]()})},i.NAME=a,e.fn.tabs.Constructor=i}(jQuery); -------------------------------------------------------------------------------- /asset/zui/dist/lib/treemap/zui.treemap.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 树形图 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | 8 | .treemap-data { 9 | text-align: left; 10 | } 11 | .treemap-nodes { 12 | position: relative; 13 | display: table; 14 | padding: 10px; 15 | margin-right: auto; 16 | margin-left: auto; 17 | text-align: center; 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | } 21 | .treemap-node { 22 | display: table-cell; 23 | vertical-align: top; 24 | } 25 | .treemap-node-wrapper { 26 | position: relative; 27 | z-index: 5; 28 | display: inline-block; 29 | padding: 5px 10px; 30 | border: 1px solid #808080; 31 | border-radius: 1px; 32 | } 33 | a.treemap-node-wrapper { 34 | color: #353535; 35 | cursor: pointer; 36 | } 37 | a.treemap-node-wrapper:active, 38 | a.treemap-node-wrapper:focus, 39 | a.treemap-node-wrapper:hover { 40 | color: #3280fc; 41 | text-decoration: none; 42 | background-color: #ebf2f9; 43 | border-color: #3280fc; 44 | } 45 | .treemap-node-root > .treemap-node-wrapper { 46 | background-color: rgba(0, 0, 0, .1); 47 | } 48 | .treemap-node-children { 49 | display: table; 50 | margin-top: 20px auto 0; 51 | } 52 | .treemap-line-top, 53 | .treemap-line-bottom { 54 | position: absolute; 55 | top: 100%; 56 | left: 50%; 57 | margin-left: -1px; 58 | border-right: none!important; 59 | border-bottom: none!important; 60 | } 61 | .treemap-line-top { 62 | top: 0; 63 | } 64 | .treemap-node > .treemap-line { 65 | position: absolute; 66 | right: 0; 67 | left: 0; 68 | z-index: 1; 69 | border-right: none!important; 70 | border-bottom: none!important; 71 | } 72 | .treemap-node-fold-icon { 73 | position: absolute; 74 | top: -6px; 75 | left: -5px; 76 | z-index: 10; 77 | display: block!important; 78 | width: 10px; 79 | height: 10px; 80 | line-height: 10px; 81 | color: #808080; 82 | background-color: #fff; 83 | border-radius: 5px; 84 | opacity: 0; 85 | -webkit-transition: opacity .2s, -webkit-transform .1s; 86 | -o-transition: opacity .2s, -o-transform .1s; 87 | transition: opacity .2s, -webkit-transform .1s; 88 | transition: opacity .2s, transform .1s; 89 | transition: opacity .2s, transform .1s, -webkit-transform .1s, -o-transform .1s; 90 | } 91 | .treemap-node-fold-icon:before { 92 | min-width: 10px; 93 | content: '\e6f2'; 94 | } 95 | .treemap-node-wrapper:hover .treemap-node-fold-icon { 96 | opacity: 1; 97 | } 98 | .treemap-node.collapsed > .treemap-line, 99 | .treemap-node.collapsed .treemap-line-bottom { 100 | border-color: transparent!important; 101 | } 102 | .treemap-node.collapsed > .treemap-node-children { 103 | display: none; 104 | } 105 | .treemap-node.collapsed .treemap-node-fold-icon { 106 | top: -6px; 107 | color: #808080; 108 | opacity: 1; 109 | -webkit-transform: none!important; 110 | -ms-transform: none!important; 111 | -o-transform: none!important; 112 | transform: none!important; 113 | } 114 | .treemap-node.collapsed .treemap-node-fold-icon:before { 115 | content: '\e6f1'; 116 | } 117 | .treemap-node.tree-node-collapsing > .treemap-line, 118 | .treemap-node.tree-node-collapsing > .treemap-node-children { 119 | visibility: hidden; 120 | } 121 | -------------------------------------------------------------------------------- /asset/zui/dist/lib/treemap/zui.treemap.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 树形图 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */.treemap-data{text-align:left}.treemap-nodes{position:relative;display:table;padding:10px;margin-right:auto;margin-left:auto;text-align:center;-webkit-user-select:none;-moz-user-select:none}.treemap-node{display:table-cell;vertical-align:top}.treemap-node-wrapper{position:relative;z-index:5;display:inline-block;padding:5px 10px;border:1px solid grey;border-radius:1px}a.treemap-node-wrapper{color:#353535;cursor:pointer}a.treemap-node-wrapper:active,a.treemap-node-wrapper:focus,a.treemap-node-wrapper:hover{color:#3280fc;text-decoration:none;background-color:#ebf2f9;border-color:#3280fc}.treemap-node-root>.treemap-node-wrapper{background-color:rgba(0,0,0,.1)}.treemap-node-children{display:table;margin-top:20px auto 0}.treemap-line-bottom,.treemap-line-top{position:absolute;top:100%;left:50%;margin-left:-1px;border-right:none!important;border-bottom:none!important}.treemap-line-top{top:0}.treemap-node>.treemap-line{position:absolute;right:0;left:0;z-index:1;border-right:none!important;border-bottom:none!important}.treemap-node-fold-icon{position:absolute;top:-6px;left:-5px;z-index:10;display:block!important;width:10px;height:10px;line-height:10px;color:grey;background-color:#fff;border-radius:5px;opacity:0;-webkit-transition:opacity .2s,-webkit-transform .1s;-o-transition:opacity .2s,-o-transform .1s;transition:opacity .2s,-webkit-transform .1s;transition:opacity .2s,transform .1s;transition:opacity .2s,transform .1s,-webkit-transform .1s,-o-transform .1s}.treemap-node-fold-icon:before{min-width:10px;content:'\e6f2'}.treemap-node-wrapper:hover .treemap-node-fold-icon{opacity:1}.treemap-node.collapsed .treemap-line-bottom,.treemap-node.collapsed>.treemap-line{border-color:transparent!important}.treemap-node.collapsed>.treemap-node-children{display:none}.treemap-node.collapsed .treemap-node-fold-icon{top:-6px;color:grey;opacity:1;-webkit-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important}.treemap-node.collapsed .treemap-node-fold-icon:before{content:'\e6f1'}.treemap-node.tree-node-collapsing>.treemap-line,.treemap-node.tree-node-collapsing>.treemap-node-children{visibility:hidden} -------------------------------------------------------------------------------- /asset/zui/dist/lib/treemap/zui.treemap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * ZUI: 树形图 - v1.10.0 - 2021-11-04 3 | * http://openzui.com 4 | * GitHub: https://github.com/easysoft/zui.git 5 | * Copyright (c) 2021 cnezsoft.com; Licensed MIT 6 | */ 7 | !function(e,t,a,o,r){"use strict";var n="zui.treemap",l={data:[],cableWidth:1,cableColor:"#808080",cableStyle:"solid",rowSpace:30,nodeSpace:20,listenNodeResize:!0,nodeTemplate:'
    ',foldable:!0,clickNodeToFold:!0},d=function(t){return t.children("li,.treemap-data-item").map(function(){var t=e(this),a=t.data(),o=t.children(".text"),r=t.children(".content"),n=t.children("ul,.treemap-data-list");if(o.length&&(a.text=o.text()),r.length&&(a.html=r.html()),n.length&&(a.children=d(n)),!a.text&&!a.html){var l=t.children(":not(ul,.treemap-data-list)"),i=t.clone();i.find("ul,.treemap-data-list").remove(),l.length?a.html=i.html():a.text=i.text()}return a}).get()},i=function(t,a){var o=e(t);Array.isArray(a)&&(a={data:a}),a=e.extend({},l,o.data(),a);var r=a.data||[];if(!r.length){var n=o.children(".treemap-data");n.length&&(r=d(n.hide()))}var i=o.children(".treemap-nodes");i.length||(i=e('
    ').appendTo(o));var s=this;s.$=o,s.$nodes=i,s.data=Array.isArray(r)?r:[r],s.options=a,s.offsetX=0,s.offsetY=0,s.scale=a.scale||1,s.render(),i.on("resize",".treemap-node-wrapper",function(){s.delayDrawLines()}),a.foldable&&i.on("click",a.clickNodeToFold?".treemap-node-wrapper":".treemap-node-fold-icon",function(){s.toggle(e(this).closest(".treemap-node"))}),i.on("click",".treemap-node-wrapper",function(){var t=e(this).closest(".treemap-node");s.callEvent("onNodeClick",t.data("node"))})};i.prototype.toggle=function(e,t,a){var o=this;if("boolean"==typeof e&&(t=e,e=null),e||(e=o.$nodes.children(".treemap-node").first()),e){if(e.data("node").foldable===!1)return;t===r&&(t=e.hasClass("collapsed")),e.toggleClass("collapsed",!t).find('[data-toggle="tooltip"]').tooltip("hide"),a||e.addClass("tree-node-collapsing"),o.$nodes.find(".tooltip").remove(),o.drawLines(),a?(clearTimeout(o.toggleTimeTask),o.toggleTimeTask=setTimeout(function(){e.removeClass("tree-node-collapsing")},200)):e.removeClass("tree-node-collapsing")}},i.prototype.showLevel=function(t){var a=this;a.$nodes.find(".treemap-node").each(function(){var o=e(this);a.toggle(o,o.data("level")').appendTo(m));var v=h.children,u=v&&v.length;h.isOnlyOneChild=1===u,h.idx=c;var y=a?a.row+1:0;m.toggleClass("treemap-node-has-child",!!u).toggleClass("treemap-node-has-parent",!!a).toggleClass("treemap-node-one-child",1===u).toggleClass("collapsed",!!h.collapsed&&"false"!==h.collapsed).toggleClass("treemap-node-root",!y).attr({"data-id":h.id,"data-level":h.level}).data("node",h),h.className&&m.addClass(h.className),h.row=y;var w=e.extend({},d.nodeStyle,h.style);h.textColor&&(w.color=h.textColor),h.color&&(w.backgroundColor=h.color),h.border&&(w.border=h.border);var b=e.extend({},h.attrs,{title:h.caption});if(h.tooltip&&(b["data-toggle"]="tooltip",b.title=h.tooltip),g.attr(b).css(w),p&&m.css("padding-left",d.nodeSpace),f||(h.html?g.append(h.html):h.text&&g.text(h.text)),m.appendTo(a?a.$children:s),p&&(p.next=h),h.prev=p,h.parent=a,h.$=m,h.$wrapper=g,u){var x=m.find(".treemap-node-children");x.length||(x=e('
    ').appendTo(m)),x.css("margin-top",i),h.$children=x,l.createNodes(v,h)}d.listenNodeResize&&g.on("resize."+n,function(){l.delayDrawLines()}),p=h,r&&r(m,h)}),a||s.find('[data-toggle="tooltip"]').tooltip(d.tooltip)},i.prototype.delayDrawLines=function(e){var t=this;clearTimeout(t.delayDrawLinesTask),t.delayDrawLinesTask=setTimeout(function(){t.drawLines()},e||10)},i.prototype.drawLines=function(t,a){var r=this,n=r.options,l=n.rowSpace,d={};n.cableWidth&&(d.borderWidth=n.cableWidth),n.cableStyle&&(d.borderStyle=n.cableStyle),n.cableColor&&(d.borderColor=n.cableColor);var i=o.round(l/2),s=r.$nodes.offset().left;e.each(t||r.data,function(t,p){var c=p.$wrapper,h=p.children,f=e.extend({height:i,top:-i-1,left:o.round((c.outerWidth()-d.borderWidth)/2),color:d.borderColor},d);if(a&&!a.isOnlyOneChild){var m=c.find(".treemap-line-top");m.length||(m=e('
    ').appendTo(c)),m.css(f)}if(h&&h.length){f.top=c.outerHeight()-1,p.isOnlyOneChild&&(f.height=l);var g=c.find(".treemap-line-bottom");if(g.length||(g=e('
    ').appendTo(c),n.foldable&&g.append('')),g.css(f),r.drawLines(h,p),h.length>1){var v=h[0],u=h[h.length-1],y=p.$.children(".treemap-line");y.length||(y=e('
    ').insertAfter(c));var w=o.round(v.$wrapper.offset().left-s+v.$wrapper.outerWidth()/2);y.css(e.extend({marginTop:i,left:w,width:u.$wrapper.offset().left-s-w+u.$wrapper.outerWidth()/2},d))}}}),a||r.callEvent("afterDrawLines")},i.prototype.callEvent=function(e,t){var a=this;if(Array.isArray(t)||(t=[t]),a.$.trigger(e,t),"function"==typeof a.options[e])return a.options[e].apply(a,t)},i.DEFAULTS=l,i.NAME=n,e.fn.treemap=function(t,a,o){return this.each(function(){var r=e(this),l=r.data(n),d="object"==typeof t&&t;l||r.data(n,l=new i(this,d)),"string"==typeof t&&l[t](a,o)})},e.fn.treemap.Constructor=i}(jQuery,window,document,Math,void 0); -------------------------------------------------------------------------------- /asset/zui/dist/lib/uploader/Moxie.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/uploader/Moxie.swf -------------------------------------------------------------------------------- /asset/zui/dist/lib/uploader/Moxie.xap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/asset/zui/dist/lib/uploader/Moxie.xap -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 思源笔记-日历 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 19 |
    20 | 21 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /preview .png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bestv5/sy-calendar/dcab0ec8649efe9ec264d9937061ccb4c376af30/preview .png -------------------------------------------------------------------------------- /widget.json: -------------------------------------------------------------------------------- 1 | { 2 | "name":"思源日历挂件", 3 | "author":"bestv5", 4 | "url":"https://github.com/bestv5/sy-calendar", 5 | "version":"1.1.0" 6 | } --------------------------------------------------------------------------------