()
| 824 | }; |
| 825 | |
| 826 | let _createSettingPanel = () => { |
| 827 | let html = `<div id="jfSettingPanel" class="mod-setting-panel"> |
| 828 | <h4>基本配置项</h4> |
| 829 | <form action="#"> |
| 830 | <div class="setting-section-title">运行</div> |
| 831 | <ul> |
| 832 | <li><label><input type="checkbox" name="alwaysOn" value="1">总是开启 JSON 自动格式化</label></li> |
| 833 | <li><label><input type="checkbox" name="alwaysShowToolbar" value="1">总是显示顶部工具栏</label></li> |
| 834 | </ul> |
| 835 | |
| 836 | <div class="setting-section-title">解析与排序</div> |
| 837 | <ul> |
| 838 | <li><label><input type="checkbox" name="enableSort" value="1">启用 JSON 键名排序</label></li> |
| 839 | <li><label><input type="checkbox" name="nestedParse" value="1">默认启用嵌套解析</label></li> |
| 840 | <li><label><input type="checkbox" name="autoDecode" value="1">自动进行 URL / Unicode 解码</label></li> |
| 841 | <li><label><input type="checkbox" name="errorEncoding" value="1">显示乱码修正入口</label></li> |
| 842 | <li><label><input type="text" name="maxlength" value="10000">最大支持的 JSON Key 数量</label></li> |
| 843 | </ul> |
| 844 | |
| 845 | <div class="setting-section-title">显示</div> |
| 846 | <ul> |
| 847 | <li><label><input type="checkbox" name="alwaysShowStatusbar" value="1">启用状态栏(复制/下载/删除)</label></li> |
| 848 | <li><label><input type="checkbox" name="keepQuote" value="1">保留键值对双引号</label></li> |
| 849 | </ul> |
| 850 | |
| 851 | <h4>自定义皮肤</h4> |
| 852 | <ul> |
| 853 | <li><label><input type="radio" name="skinId" value="0">默认模式(简约风格)</label></li> |
| 854 | <li><label><input type="radio" name="skinId" value="1">极简模式(纯源码)</label></li> |
| 855 | <li><label><input type="radio" name="skinId" value="2">清爽模式(明亮、跳跃)</label></li> |
| 856 | <li><label><input type="radio" name="skinId" value="3">暗黑模式(安静、忧郁)</label></li> |
| 857 | <li><label><input type="radio" name="skinId" value="4">vscode模式(醒目、专注)</label></li> |
| 858 | <li><label><input type="radio" name="skinId" value="5">github模式(纵享丝滑)</label></li> |
| 859 | <li><label><input type="radio" name="skinId" value="6">素人模式(清心寡欲)</label></li> |
| 860 | </ul> |
| 861 | |
| 862 | <div class="setting-support-link"> |
| 863 | <a href="#" class="setting-donate-link"><span class="setting-donate-badge">SP</span><span>请作者喝咖啡</span></a> |
| 864 | </div> |
| 865 | |
| 866 | <div class="btns"> |
| 867 | <input type="submit" class="xjf-btn" name="submit" value="完成"> |
| 868 | <input type="button" class="xjf-btn" name="close" value="关闭"> |
| 869 | </div> |
| 870 | </form> |
| 871 | </div>`; |
| 872 | |
| 873 | let sPanel = $('#jfSettingPanel'); |
| 874 | if (!sPanel.length) { |
| 875 | sPanel = $(html).appendTo('#jfToolbar'); |
| 876 | let collectPanelOptions = () => ({ |
| 877 | JSON_PAGE_FORMAT: sPanel.find('input[name="alwaysOn"]').prop('checked'), |
| 878 | JSON_TOOL_BAR_ALWAYS_SHOW: sPanel.find('input[name="alwaysShowToolbar"]').prop('checked'), |
| 879 | STATUS_BAR_ALWAYS_SHOW: sPanel.find('input[name="alwaysShowStatusbar"]').prop('checked'), |
| 880 | AUTO_TEXT_DECODE: sPanel.find('input[name="autoDecode"]').prop('checked'), |
| 881 | FIX_ERROR_ENCODING: sPanel.find('input[name="errorEncoding"]').prop('checked'), |
| 882 | ENABLE_JSON_KEY_SORT: sPanel.find('input[name="enableSort"]').prop('checked'), |
| 883 | NESTED_ESCAPE_PARSE: sPanel.find('input[name="nestedParse"]').prop('checked'), |
no test coverage detected