mirror of https://gitee.com/stylefeng/guns
【8.3.0】更新8.3.0前端代码
parent
98bbf0eb4f
commit
ec47565636
|
@ -11,25 +11,28 @@
|
|||
"format": "prettier --write src/"
|
||||
},
|
||||
"dependencies": {
|
||||
"@amap/amap-jsapi-loader": "^1.0.1",
|
||||
"@ant-design/icons-vue": "^7.0.1",
|
||||
"ant-design-vue": "^3.2.17",
|
||||
"axios": "^1.6.0",
|
||||
"cropperjs": "^1.5.12",
|
||||
"dayjs": "^1.11.10",
|
||||
"echarts": "^5.4.2",
|
||||
"gm-crypto": "^0.1.12",
|
||||
"js-base64": "^3.7.7",
|
||||
"jsencrypt": "^3.3.2",
|
||||
"less": "^4.2.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"moment": "^2.30.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.7",
|
||||
"tinymce": "^5.10.7",
|
||||
"vue": "^3.3.4",
|
||||
"vue": "3.3.4",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-echarts": "^6.5.4",
|
||||
"vue-i18n": "^9.1.9",
|
||||
"vue-router": "^4.2.5",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"vxe-table": "^4.4.2",
|
||||
"vxe-table": "4.6.17",
|
||||
"xe-utils": "^3.5.14",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
|
@ -49,8 +52,12 @@
|
|||
"unplugin-vue-components": "^0.24.1",
|
||||
"vite": "^4.4.11",
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-imagemin": "^0.6.1",
|
||||
"vite-plugin-style-import": "^2.0.0",
|
||||
"vitest": "^0.34.6",
|
||||
"vue-eslint-parser": "^9.1.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"bin-wrapper": "npm:bin-wrapper-china"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,462 +0,0 @@
|
|||
tinymce.addI18n('zh_CN',{
|
||||
"Redo": "\u91cd\u505a",
|
||||
"Undo": "\u64a4\u9500",
|
||||
"Cut": "\u526a\u5207",
|
||||
"Copy": "\u590d\u5236",
|
||||
"Paste": "\u7c98\u8d34",
|
||||
"Select all": "\u5168\u9009",
|
||||
"New document": "\u65b0\u6587\u4ef6",
|
||||
"Ok": "\u786e\u5b9a",
|
||||
"Cancel": "\u53d6\u6d88",
|
||||
"Visual aids": "\u7f51\u683c\u7ebf",
|
||||
"Bold": "\u7c97\u4f53",
|
||||
"Italic": "\u659c\u4f53",
|
||||
"Underline": "\u4e0b\u5212\u7ebf",
|
||||
"Strikethrough": "\u5220\u9664\u7ebf",
|
||||
"Superscript": "\u4e0a\u6807",
|
||||
"Subscript": "\u4e0b\u6807",
|
||||
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
|
||||
"Align left": "\u5de6\u8fb9\u5bf9\u9f50",
|
||||
"Align center": "\u4e2d\u95f4\u5bf9\u9f50",
|
||||
"Align right": "\u53f3\u8fb9\u5bf9\u9f50",
|
||||
"Justify": "\u4e24\u7aef\u5bf9\u9f50",
|
||||
"Bullet list": "\u9879\u76ee\u7b26\u53f7",
|
||||
"Numbered list": "\u7f16\u53f7\u5217\u8868",
|
||||
"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
|
||||
"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
|
||||
"Close": "\u5173\u95ed",
|
||||
"Formats": "\u683c\u5f0f",
|
||||
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002",
|
||||
"Headers": "\u6807\u9898",
|
||||
"Header 1": "\u6807\u98981",
|
||||
"Header 2": "\u6807\u98982",
|
||||
"Header 3": "\u6807\u98983",
|
||||
"Header 4": "\u6807\u98984",
|
||||
"Header 5": "\u6807\u98985",
|
||||
"Header 6": "\u6807\u98986",
|
||||
"Headings": "\u6807\u9898",
|
||||
"Heading 1": "\u6807\u98981",
|
||||
"Heading 2": "\u6807\u98982",
|
||||
"Heading 3": "\u6807\u98983",
|
||||
"Heading 4": "\u6807\u98984",
|
||||
"Heading 5": "\u6807\u98985",
|
||||
"Heading 6": "\u6807\u98986",
|
||||
"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684",
|
||||
"Div": "Div",
|
||||
"Pre": "Pre",
|
||||
"Code": "\u4ee3\u7801",
|
||||
"Paragraph": "\u6bb5\u843d",
|
||||
"Blockquote": "\u5f15\u6587\u533a\u5757",
|
||||
"Inline": "\u6587\u672c",
|
||||
"Blocks": "\u57fa\u5757",
|
||||
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
|
||||
"Fonts": "\u5b57\u4f53",
|
||||
"Font Sizes": "\u5b57\u53f7",
|
||||
"Class": "\u7c7b\u578b",
|
||||
"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf",
|
||||
"OR": "\u6216",
|
||||
"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64",
|
||||
"Upload": "\u4e0a\u4f20",
|
||||
"Block": "\u5757",
|
||||
"Align": "\u5bf9\u9f50",
|
||||
"Default": "\u9ed8\u8ba4",
|
||||
"Circle": "\u7a7a\u5fc3\u5706",
|
||||
"Disc": "\u5b9e\u5fc3\u5706",
|
||||
"Square": "\u65b9\u5757",
|
||||
"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
|
||||
"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
|
||||
"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
|
||||
"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
|
||||
"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
|
||||
"Anchor...": "\u951a\u70b9...",
|
||||
"Name": "\u540d\u79f0",
|
||||
"Id": "\u6807\u8bc6\u7b26",
|
||||
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002",
|
||||
"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
|
||||
"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
|
||||
"Special character...": "\u7279\u6b8a\u5b57\u7b26...",
|
||||
"Source code": "\u6e90\u4ee3\u7801",
|
||||
"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b",
|
||||
"Language": "\u8bed\u8a00",
|
||||
"Code sample...": "\u793a\u4f8b\u4ee3\u7801...",
|
||||
"Color Picker": "\u9009\u8272\u5668",
|
||||
"R": "R",
|
||||
"G": "G",
|
||||
"B": "B",
|
||||
"Left to right": "\u4ece\u5de6\u5230\u53f3",
|
||||
"Right to left": "\u4ece\u53f3\u5230\u5de6",
|
||||
"Emoticons": "\u8868\u60c5",
|
||||
"Emoticons...": "\u8868\u60c5\u7b26\u53f7...",
|
||||
"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027",
|
||||
"Title": "\u6807\u9898",
|
||||
"Keywords": "\u5173\u952e\u8bcd",
|
||||
"Description": "\u63cf\u8ff0",
|
||||
"Robots": "\u673a\u5668\u4eba",
|
||||
"Author": "\u4f5c\u8005",
|
||||
"Encoding": "\u7f16\u7801",
|
||||
"Fullscreen": "\u5168\u5c4f",
|
||||
"Action": "\u64cd\u4f5c",
|
||||
"Shortcut": "\u5feb\u6377\u952e",
|
||||
"Help": "\u5e2e\u52a9",
|
||||
"Address": "\u5730\u5740",
|
||||
"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f",
|
||||
"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f",
|
||||
"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84",
|
||||
"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355",
|
||||
"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
|
||||
"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
|
||||
"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
|
||||
"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):",
|
||||
"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a",
|
||||
"Learn more...": "\u4e86\u89e3\u66f4\u591a...",
|
||||
"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}",
|
||||
"Plugins": "\u63d2\u4ef6",
|
||||
"Handy Shortcuts": "\u5feb\u6377\u952e",
|
||||
"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
|
||||
"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
|
||||
"Alternative description": "\u66ff\u4ee3\u63cf\u8ff0",
|
||||
"Accessibility": "\u8f85\u52a9\u529f\u80fd",
|
||||
"Image is decorative": "\u56fe\u50cf\u662f\u88c5\u9970\u6027\u7684",
|
||||
"Source": "\u5730\u5740",
|
||||
"Dimensions": "\u5927\u5c0f",
|
||||
"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
|
||||
"General": "\u666e\u901a",
|
||||
"Advanced": "\u9ad8\u7ea7",
|
||||
"Style": "\u6837\u5f0f",
|
||||
"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
|
||||
"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
|
||||
"Border": "\u8fb9\u6846",
|
||||
"Insert image": "\u63d2\u5165\u56fe\u7247",
|
||||
"Image...": "\u56fe\u7247...",
|
||||
"Image list": "\u56fe\u7247\u5217\u8868",
|
||||
"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c",
|
||||
"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c",
|
||||
"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c",
|
||||
"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c",
|
||||
"Edit image": "\u7f16\u8f91\u56fe\u7247",
|
||||
"Image options": "\u56fe\u7247\u9009\u9879",
|
||||
"Zoom in": "\u653e\u5927",
|
||||
"Zoom out": "\u7f29\u5c0f",
|
||||
"Crop": "\u88c1\u526a",
|
||||
"Resize": "\u8c03\u6574\u5927\u5c0f",
|
||||
"Orientation": "\u65b9\u5411",
|
||||
"Brightness": "\u4eae\u5ea6",
|
||||
"Sharpen": "\u9510\u5316",
|
||||
"Contrast": "\u5bf9\u6bd4\u5ea6",
|
||||
"Color levels": "\u989c\u8272\u5c42\u6b21",
|
||||
"Gamma": "\u4f3d\u9a6c\u503c",
|
||||
"Invert": "\u53cd\u8f6c",
|
||||
"Apply": "\u5e94\u7528",
|
||||
"Back": "\u540e\u9000",
|
||||
"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
|
||||
"Date\/time": "\u65e5\u671f\/\u65f6\u95f4",
|
||||
"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
|
||||
"Text to display": "\u663e\u793a\u6587\u5b57",
|
||||
"Url": "\u5730\u5740",
|
||||
"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...",
|
||||
"Current window": "\u5f53\u524d\u7a97\u53e3",
|
||||
"None": "\u65e0",
|
||||
"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
|
||||
"Open link": "\u6253\u5f00\u94fe\u63a5",
|
||||
"Remove link": "\u5220\u9664\u94fe\u63a5",
|
||||
"Anchors": "\u951a\u70b9",
|
||||
"Link...": "\u94fe\u63a5...",
|
||||
"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5",
|
||||
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f",
|
||||
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f",
|
||||
"The URL you entered seems to be an external link. Do you want to add the required https:\/\/ prefix?": "\u60a8\u8f93\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u4e2a\u5916\u90e8\u94fe\u63a5\u3002\u60a8\u60f3\u6dfb\u52a0\u6240\u9700\u7684 https:\/\/ \u524d\u7f00\u5417\uff1f",
|
||||
"Link list": "\u94fe\u63a5\u5217\u8868",
|
||||
"Insert video": "\u63d2\u5165\u89c6\u9891",
|
||||
"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
|
||||
"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53",
|
||||
"Alternative source": "\u955c\u50cf",
|
||||
"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740",
|
||||
"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)",
|
||||
"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
|
||||
"Embed": "\u5185\u5d4c",
|
||||
"Media...": "\u591a\u5a92\u4f53...",
|
||||
"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
|
||||
"Page break": "\u5206\u9875\u7b26",
|
||||
"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c",
|
||||
"Preview": "\u9884\u89c8",
|
||||
"Print...": "\u6253\u5370...",
|
||||
"Save": "\u4fdd\u5b58",
|
||||
"Find": "\u67e5\u627e",
|
||||
"Replace with": "\u66ff\u6362\u4e3a",
|
||||
"Replace": "\u66ff\u6362",
|
||||
"Replace all": "\u5168\u90e8\u66ff\u6362",
|
||||
"Previous": "\u4e0a\u4e00\u4e2a",
|
||||
"Next": "\u4e0b\u4e00\u4e2a",
|
||||
"Find and Replace": "\u67e5\u627e\u548c\u66ff\u6362",
|
||||
"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...",
|
||||
"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
|
||||
"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
|
||||
"Find whole words only": "\u5168\u5b57\u5339\u914d",
|
||||
"Find in selection": "\u5728\u9009\u533a\u4e2d\u67e5\u627e",
|
||||
"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
|
||||
"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00",
|
||||
"No misspellings found.": "\u6ca1\u6709\u53d1\u73b0\u62fc\u5199\u9519\u8bef",
|
||||
"Ignore": "\u5ffd\u7565",
|
||||
"Ignore all": "\u5168\u90e8\u5ffd\u7565",
|
||||
"Finish": "\u5b8c\u6210",
|
||||
"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178",
|
||||
"Insert table": "\u63d2\u5165\u8868\u683c",
|
||||
"Table properties": "\u8868\u683c\u5c5e\u6027",
|
||||
"Delete table": "\u5220\u9664\u8868\u683c",
|
||||
"Cell": "\u5355\u5143\u683c",
|
||||
"Row": "\u884c",
|
||||
"Column": "\u5217",
|
||||
"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
|
||||
"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
|
||||
"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
|
||||
"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
|
||||
"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
|
||||
"Delete row": "\u5220\u9664\u884c",
|
||||
"Row properties": "\u884c\u5c5e\u6027",
|
||||
"Cut row": "\u526a\u5207\u884c",
|
||||
"Copy row": "\u590d\u5236\u884c",
|
||||
"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
|
||||
"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
|
||||
"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
|
||||
"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
|
||||
"Delete column": "\u5220\u9664\u5217",
|
||||
"Cols": "\u5217",
|
||||
"Rows": "\u884c",
|
||||
"Width": "\u5bbd",
|
||||
"Height": "\u9ad8",
|
||||
"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
|
||||
"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
|
||||
"Caption": "\u6807\u9898",
|
||||
"Show caption": "\u663e\u793a\u6807\u9898",
|
||||
"Left": "\u5de6\u5bf9\u9f50",
|
||||
"Center": "\u5c45\u4e2d",
|
||||
"Right": "\u53f3\u5bf9\u9f50",
|
||||
"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
|
||||
"Scope": "\u8303\u56f4",
|
||||
"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
|
||||
"H Align": "\u6c34\u5e73\u5bf9\u9f50",
|
||||
"V Align": "\u5782\u76f4\u5bf9\u9f50",
|
||||
"Top": "\u9876\u90e8\u5bf9\u9f50",
|
||||
"Middle": "\u5782\u76f4\u5c45\u4e2d",
|
||||
"Bottom": "\u5e95\u90e8\u5bf9\u9f50",
|
||||
"Header cell": "\u8868\u5934\u5355\u5143\u683c",
|
||||
"Row group": "\u884c\u7ec4",
|
||||
"Column group": "\u5217\u7ec4",
|
||||
"Row type": "\u884c\u7c7b\u578b",
|
||||
"Header": "\u8868\u5934",
|
||||
"Body": "\u8868\u4f53",
|
||||
"Footer": "\u8868\u5c3e",
|
||||
"Border color": "\u8fb9\u6846\u989c\u8272",
|
||||
"Insert template...": "\u63d2\u5165\u6a21\u677f...",
|
||||
"Templates": "\u6a21\u677f",
|
||||
"Template": "\u6a21\u677f",
|
||||
"Text color": "\u6587\u5b57\u989c\u8272",
|
||||
"Background color": "\u80cc\u666f\u8272",
|
||||
"Custom...": "\u81ea\u5b9a\u4e49...",
|
||||
"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272",
|
||||
"No color": "\u65e0",
|
||||
"Remove color": "\u79fb\u9664\u989c\u8272",
|
||||
"Table of Contents": "\u5185\u5bb9\u5217\u8868",
|
||||
"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846",
|
||||
"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26",
|
||||
"Word count": "\u5b57\u6570",
|
||||
"Count": "\u8ba1\u6570",
|
||||
"Document": "\u6587\u6863",
|
||||
"Selection": "\u9009\u62e9",
|
||||
"Words": "\u5355\u8bcd",
|
||||
"Words: {0}": "\u5b57\u6570\uff1a{0}",
|
||||
"{0} words": "{0} \u5b57",
|
||||
"File": "\u6587\u4ef6",
|
||||
"Edit": "\u7f16\u8f91",
|
||||
"Insert": "\u63d2\u5165",
|
||||
"View": "\u89c6\u56fe",
|
||||
"Format": "\u683c\u5f0f",
|
||||
"Table": "\u8868\u683c",
|
||||
"Tools": "\u5de5\u5177",
|
||||
"Powered by {0}": "\u7531{0}\u9a71\u52a8",
|
||||
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9",
|
||||
"Image title": "\u56fe\u7247\u6807\u9898",
|
||||
"Border width": "\u8fb9\u6846\u5bbd\u5ea6",
|
||||
"Border style": "\u8fb9\u6846\u6837\u5f0f",
|
||||
"Error": "\u9519\u8bef",
|
||||
"Warn": "\u8b66\u544a",
|
||||
"Valid": "\u6709\u6548",
|
||||
"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846",
|
||||
"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002",
|
||||
"System Font": "\u7cfb\u7edf\u5b57\u4f53",
|
||||
"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}",
|
||||
"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}",
|
||||
"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}",
|
||||
"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}",
|
||||
"example": "\u793a\u4f8b",
|
||||
"Search": "\u641c\u7d22",
|
||||
"All": "\u5168\u90e8",
|
||||
"Currency": "\u8d27\u5e01",
|
||||
"Text": "\u6587\u5b57",
|
||||
"Quotations": "\u5f15\u7528",
|
||||
"Mathematical": "\u6570\u5b66",
|
||||
"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145",
|
||||
"Symbols": "\u7b26\u53f7",
|
||||
"Arrows": "\u7bad\u5934",
|
||||
"User Defined": "\u81ea\u5b9a\u4e49",
|
||||
"dollar sign": "\u7f8e\u5143\u7b26\u53f7",
|
||||
"currency sign": "\u8d27\u5e01\u7b26\u53f7",
|
||||
"euro-currency sign": "\u6b27\u5143\u7b26\u53f7",
|
||||
"colon sign": "\u5192\u53f7",
|
||||
"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7",
|
||||
"french franc sign": "\u6cd5\u90ce\u7b26\u53f7",
|
||||
"lira sign": "\u91cc\u62c9\u7b26\u53f7",
|
||||
"mill sign": "\u5bc6\u5c14\u7b26\u53f7",
|
||||
"naira sign": "\u5948\u62c9\u7b26\u53f7",
|
||||
"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7",
|
||||
"rupee sign": "\u5362\u6bd4\u7b26\u53f7",
|
||||
"won sign": "\u97e9\u5143\u7b26\u53f7",
|
||||
"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7",
|
||||
"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7",
|
||||
"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7",
|
||||
"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7",
|
||||
"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7",
|
||||
"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7",
|
||||
"peso sign": "\u6bd4\u7d22\u7b26\u53f7",
|
||||
"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7",
|
||||
"austral sign": "\u6fb3\u5143\u7b26\u53f7",
|
||||
"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7",
|
||||
"cedi sign": "\u585e\u5730\u7b26\u53f7",
|
||||
"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7",
|
||||
"spesmilo sign": "spesmilo\u7b26\u53f7",
|
||||
"tenge sign": "\u575a\u6208\u7b26\u53f7",
|
||||
"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4",
|
||||
"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9",
|
||||
"nordic mark sign": "\u5317\u6b27\u9a6c\u514b",
|
||||
"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7",
|
||||
"ruble sign": "\u5362\u5e03\u7b26\u53f7",
|
||||
"yen character": "\u65e5\u5143\u5b57\u6837",
|
||||
"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837",
|
||||
"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09",
|
||||
"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09",
|
||||
"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...",
|
||||
"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7",
|
||||
"People": "\u4eba\u7c7b",
|
||||
"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136",
|
||||
"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1",
|
||||
"Activity": "\u6d3b\u52a8",
|
||||
"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9",
|
||||
"Objects": "\u7269\u4ef6",
|
||||
"Flags": "\u65d7\u5e1c",
|
||||
"Characters": "\u5b57\u7b26",
|
||||
"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)",
|
||||
"{0} characters": "{0} \u4e2a\u5b57\u7b26",
|
||||
"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002",
|
||||
"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002",
|
||||
"Update": "\u66f4\u65b0",
|
||||
"Color swatch": "\u989c\u8272\u6837\u672c",
|
||||
"Turquoise": "\u9752\u7eff\u8272",
|
||||
"Green": "\u7eff\u8272",
|
||||
"Blue": "\u84dd\u8272",
|
||||
"Purple": "\u7d2b\u8272",
|
||||
"Navy Blue": "\u6d77\u519b\u84dd",
|
||||
"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272",
|
||||
"Dark Green": "\u6df1\u7eff\u8272",
|
||||
"Medium Blue": "\u4e2d\u84dd\u8272",
|
||||
"Medium Purple": "\u4e2d\u7d2b\u8272",
|
||||
"Midnight Blue": "\u6df1\u84dd\u8272",
|
||||
"Yellow": "\u9ec4\u8272",
|
||||
"Orange": "\u6a59\u8272",
|
||||
"Red": "\u7ea2\u8272",
|
||||
"Light Gray": "\u6d45\u7070\u8272",
|
||||
"Gray": "\u7070\u8272",
|
||||
"Dark Yellow": "\u6697\u9ec4\u8272",
|
||||
"Dark Orange": "\u6df1\u6a59\u8272",
|
||||
"Dark Red": "\u6df1\u7ea2\u8272",
|
||||
"Medium Gray": "\u4e2d\u7070\u8272",
|
||||
"Dark Gray": "\u6df1\u7070\u8272",
|
||||
"Light Green": "\u6d45\u7eff\u8272",
|
||||
"Light Yellow": "\u6d45\u9ec4\u8272",
|
||||
"Light Red": "\u6d45\u7ea2\u8272",
|
||||
"Light Purple": "\u6d45\u7d2b\u8272",
|
||||
"Light Blue": "\u6d45\u84dd\u8272",
|
||||
"Dark Purple": "\u6df1\u7d2b\u8272",
|
||||
"Dark Blue": "\u6df1\u84dd\u8272",
|
||||
"Black": "\u9ed1\u8272",
|
||||
"White": "\u767d\u8272",
|
||||
"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f",
|
||||
"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846",
|
||||
"history": "\u5386\u53f2",
|
||||
"styles": "\u6837\u5f0f",
|
||||
"formatting": "\u683c\u5f0f\u5316",
|
||||
"alignment": "\u5bf9\u9f50",
|
||||
"indentation": "\u7f29\u8fdb",
|
||||
"Font": "\u5b57\u4f53",
|
||||
"Size": "\u5b57\u53f7",
|
||||
"More...": "\u66f4\u591a...",
|
||||
"Select...": "\u9009\u62e9...",
|
||||
"Preferences": "\u9996\u9009\u9879",
|
||||
"Yes": "\u662f",
|
||||
"No": "\u5426",
|
||||
"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15",
|
||||
"Version": "\u7248\u672c",
|
||||
"Code view": "\u4ee3\u7801\u89c6\u56fe",
|
||||
"Open popup menu for split buttons": "\u6253\u5f00\u5f39\u51fa\u5f0f\u83dc\u5355\uff0c\u7528\u4e8e\u62c6\u5206\u6309\u94ae",
|
||||
"List Properties": "\u5217\u8868\u5c5e\u6027",
|
||||
"List properties...": "\u6807\u9898\u5b57\u4f53\u5c5e\u6027",
|
||||
"Start list at number": "\u4ee5\u6570\u5b57\u5f00\u59cb\u5217\u8868",
|
||||
"Line height": "\u884c\u9ad8",
|
||||
"comments": "\u5907\u6ce8",
|
||||
"Format Painter": "\u683c\u5f0f\u5237",
|
||||
"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6",
|
||||
"Capitalization": "\u5927\u5199",
|
||||
"lowercase": "\u5c0f\u5199",
|
||||
"UPPERCASE": "\u5927\u5199",
|
||||
"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199",
|
||||
"permanent pen": "\u8bb0\u53f7\u7b14",
|
||||
"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027",
|
||||
"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...",
|
||||
"case change": "\u6848\u4f8b\u66f4\u6539",
|
||||
"page embed": "\u9875\u9762\u5d4c\u5165",
|
||||
"Advanced sort...": "\u9ad8\u7ea7\u6392\u5e8f...",
|
||||
"Advanced Sort": "\u9ad8\u7ea7\u6392\u5e8f",
|
||||
"Sort table by column ascending": "\u6309\u5217\u5347\u5e8f\u8868",
|
||||
"Sort table by column descending": "\u6309\u5217\u964d\u5e8f\u8868",
|
||||
"Sort": "\u6392\u5e8f",
|
||||
"Order": "\u6392\u5e8f",
|
||||
"Sort by": "\u6392\u5e8f\u65b9\u5f0f",
|
||||
"Ascending": "\u5347\u5e8f",
|
||||
"Descending": "\u964d\u5e8f",
|
||||
"Column {0}": "\u5217{0}",
|
||||
"Row {0}": "\u884c{0}",
|
||||
"Spellcheck...": "\u62fc\u5199\u68c0\u67e5...",
|
||||
"Misspelled word": "\u62fc\u5199\u9519\u8bef\u7684\u5355\u8bcd",
|
||||
"Suggestions": "\u5efa\u8bae",
|
||||
"Change": "\u66f4\u6539",
|
||||
"Finding word suggestions": "\u67e5\u627e\u5355\u8bcd\u5efa\u8bae",
|
||||
"Success": "\u6210\u529f",
|
||||
"Repair": "\u4fee\u590d",
|
||||
"Issue {0} of {1}": "\u5171\u8ba1{1}\u95ee\u9898{0}",
|
||||
"Images must be marked as decorative or have an alternative text description": "\u56fe\u50cf\u5fc5\u987b\u6807\u8bb0\u4e3a\u88c5\u9970\u6027\u6216\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0",
|
||||
"Images must have an alternative text description. Decorative images are not allowed.": "\u56fe\u50cf\u5fc5\u987b\u5177\u6709\u66ff\u4ee3\u6587\u672c\u63cf\u8ff0\u3002\u4e0d\u5141\u8bb8\u4f7f\u7528\u88c5\u9970\u56fe\u50cf\u3002",
|
||||
"Or provide alternative text:": "\u6216\u63d0\u4f9b\u5907\u9009\u6587\u672c\uff1a",
|
||||
"Make image decorative:": "\u4f7f\u56fe\u50cf\u88c5\u9970\uff1a",
|
||||
"ID attribute must be unique": "ID \u5c5e\u6027\u5fc5\u987b\u662f\u552f\u4e00\u7684",
|
||||
"Make ID unique": "\u4f7f ID \u72ec\u4e00\u65e0\u4e8c",
|
||||
"Keep this ID and remove all others": "\u4fdd\u7559\u6b64 ID \u5e76\u5220\u9664\u6240\u6709\u5176\u4ed6",
|
||||
"Remove this ID": "\u5220\u9664\u6b64 ID",
|
||||
"Remove all IDs": "\u6e05\u9664\u5168\u90e8IDs",
|
||||
"Checklist": "\u6e05\u5355",
|
||||
"Anchor": "\u951a\u70b9",
|
||||
"Special character": "\u7279\u6b8a\u7b26\u53f7",
|
||||
"Code sample": "\u4ee3\u7801\u793a\u4f8b",
|
||||
"Color": "\u989c\u8272",
|
||||
"Document properties": "\u6587\u6863\u5c5e\u6027",
|
||||
"Image description": "\u56fe\u7247\u63cf\u8ff0",
|
||||
"Image": "\u56fe\u7247",
|
||||
"Insert link": "\u63d2\u5165\u94fe\u63a5",
|
||||
"Target": "\u6253\u5f00\u65b9\u5f0f",
|
||||
"Link": "\u94fe\u63a5",
|
||||
"Poster": "\u5c01\u9762",
|
||||
"Media": "\u5a92\u4f53",
|
||||
"Print": "\u6253\u5370",
|
||||
"Prev": "\u4e0a\u4e00\u4e2a",
|
||||
"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
|
||||
"Whole words": "\u5168\u5b57\u5339\u914d",
|
||||
"Insert template": "\u63d2\u5165\u6a21\u677f"
|
||||
});
|
|
@ -1,419 +0,0 @@
|
|||
tinymce.addI18n('zh_TW',{
|
||||
"Redo": "\u91cd\u505a",
|
||||
"Undo": "\u64a4\u92b7",
|
||||
"Cut": "\u526a\u4e0b",
|
||||
"Copy": "\u8907\u88fd",
|
||||
"Paste": "\u8cbc\u4e0a",
|
||||
"Select all": "\u5168\u9078",
|
||||
"New document": "\u65b0\u6587\u4ef6",
|
||||
"Ok": "\u78ba\u5b9a",
|
||||
"Cancel": "\u53d6\u6d88",
|
||||
"Visual aids": "\u5c0f\u5e6b\u624b",
|
||||
"Bold": "\u7c97\u9ad4",
|
||||
"Italic": "\u659c\u9ad4",
|
||||
"Underline": "\u4e0b\u5283\u7dda",
|
||||
"Strikethrough": "\u522a\u9664\u7dda",
|
||||
"Superscript": "\u4e0a\u6a19",
|
||||
"Subscript": "\u4e0b\u6a19",
|
||||
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
|
||||
"Align left": "\u5de6\u908a\u5c0d\u9f4a",
|
||||
"Align center": "\u4e2d\u9593\u5c0d\u9f4a",
|
||||
"Align right": "\u53f3\u908a\u5c0d\u9f4a",
|
||||
"Justify": "\u5de6\u53f3\u5c0d\u9f4a",
|
||||
"Bullet list": "\u9805\u76ee\u6e05\u55ae",
|
||||
"Numbered list": "\u6578\u5b57\u6e05\u55ae",
|
||||
"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392",
|
||||
"Increase indent": "\u589e\u52a0\u7e2e\u6392",
|
||||
"Close": "\u95dc\u9589",
|
||||
"Formats": "\u683c\u5f0f",
|
||||
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u60a8\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5feb\u901f\u9375 Ctrl + X\/C\/V \u4ee3\u66ff\u526a\u4e0b\u3001\u8907\u88fd\u8207\u8cbc\u4e0a\u3002",
|
||||
"Headers": "\u6a19\u984c",
|
||||
"Header 1": "\u6a19\u984c 1",
|
||||
"Header 2": "\u6a19\u984c 2",
|
||||
"Header 3": "\u6a19\u984c 3",
|
||||
"Header 4": "\u6a19\u984c 4",
|
||||
"Header 5": "\u6a19\u984c 5",
|
||||
"Header 6": "\u6a19\u984c 6",
|
||||
"Headings": "\u6a19\u984c",
|
||||
"Heading 1": "\u6a19\u984c1",
|
||||
"Heading 2": "\u6a19\u984c2",
|
||||
"Heading 3": "\u6a19\u984c3",
|
||||
"Heading 4": "\u6a19\u984c4",
|
||||
"Heading 5": "\u6a19\u984c5",
|
||||
"Heading 6": "\u6a19\u984c6",
|
||||
"Preformatted": "\u9810\u5148\u683c\u5f0f\u5316\u7684",
|
||||
"Div": "Div",
|
||||
"Pre": "Pre",
|
||||
"Code": "\u4ee3\u78bc",
|
||||
"Paragraph": "\u6bb5\u843d",
|
||||
"Blockquote": "\u5f15\u6587\u5340\u584a",
|
||||
"Inline": "\u5167\u806f",
|
||||
"Blocks": "\u57fa\u584a",
|
||||
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u76ee\u524d\u5c07\u4ee5\u7d14\u6587\u5b57\u7684\u6a21\u5f0f\u8cbc\u4e0a\uff0c\u60a8\u53ef\u4ee5\u518d\u9ede\u9078\u4e00\u6b21\u53d6\u6d88\u3002",
|
||||
"Fonts": "\u5b57\u578b",
|
||||
"Font Sizes": "\u5b57\u578b\u5927\u5c0f",
|
||||
"Class": "\u985e\u578b",
|
||||
"Browse for an image": "\u5f9e\u5716\u7247\u4e2d\u700f\u89bd",
|
||||
"OR": "\u6216",
|
||||
"Drop an image here": "\u62d6\u66f3\u5716\u7247\u81f3\u6b64",
|
||||
"Upload": "\u4e0a\u50b3",
|
||||
"Block": "\u5340\u584a",
|
||||
"Align": "\u5c0d\u9f4a",
|
||||
"Default": "\u9810\u8a2d",
|
||||
"Circle": "\u7a7a\u5fc3\u5713",
|
||||
"Disc": "\u5be6\u5fc3\u5713",
|
||||
"Square": "\u6b63\u65b9\u5f62",
|
||||
"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd",
|
||||
"Lower Greek": "\u5e0c\u81d8\u5b57\u6bcd",
|
||||
"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57",
|
||||
"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd",
|
||||
"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57",
|
||||
"Anchor...": "\u9328\u9ede...",
|
||||
"Name": "\u540d\u7a31",
|
||||
"Id": "Id",
|
||||
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id\u61c9\u4ee5\u5b57\u6bcd\u958b\u982d\uff0c\u5f8c\u9762\u63a5\u8457\u5b57\u6bcd\uff0c\u6578\u5b57\uff0c\u7834\u6298\u865f\uff0c\u9ede\u6578\uff0c\u5192\u865f\u6216\u4e0b\u5283\u7dda\u3002",
|
||||
"You have unsaved changes are you sure you want to navigate away?": "\u7de8\u8f2f\u5c1a\u672a\u88ab\u5132\u5b58\uff0c\u4f60\u78ba\u5b9a\u8981\u96e2\u958b\uff1f",
|
||||
"Restore last draft": "\u8f09\u5165\u4e0a\u4e00\u6b21\u7de8\u8f2f\u7684\u8349\u7a3f",
|
||||
"Special character...": "\u7279\u6b8a\u5b57\u5143......",
|
||||
"Source code": "\u539f\u59cb\u78bc",
|
||||
"Insert\/Edit code sample": "\u63d2\u5165\/\u7de8\u8f2f \u7a0b\u5f0f\u78bc\u7bc4\u4f8b",
|
||||
"Language": "\u8a9e\u8a00",
|
||||
"Code sample...": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b...",
|
||||
"Color Picker": "\u9078\u8272\u5668",
|
||||
"R": "\u7d05",
|
||||
"G": "\u7da0",
|
||||
"B": "\u85cd",
|
||||
"Left to right": "\u5f9e\u5de6\u5230\u53f3",
|
||||
"Right to left": "\u5f9e\u53f3\u5230\u5de6",
|
||||
"Emoticons...": "\u8868\u60c5\u7b26\u865f\u2026",
|
||||
"Metadata and Document Properties": "\u5f8c\u8a2d\u8cc7\u6599\u8207\u6587\u4ef6\u5c6c\u6027",
|
||||
"Title": "\u6a19\u984c",
|
||||
"Keywords": "\u95dc\u9375\u5b57",
|
||||
"Description": "\u63cf\u8ff0",
|
||||
"Robots": "\u6a5f\u5668\u4eba",
|
||||
"Author": "\u4f5c\u8005",
|
||||
"Encoding": "\u7de8\u78bc",
|
||||
"Fullscreen": "\u5168\u87a2\u5e55",
|
||||
"Action": "\u52d5\u4f5c",
|
||||
"Shortcut": "\u5feb\u901f\u9375",
|
||||
"Help": "\u5e6b\u52a9",
|
||||
"Address": "\u5730\u5740",
|
||||
"Focus to menubar": "\u8df3\u81f3\u9078\u55ae\u5217",
|
||||
"Focus to toolbar": "\u8df3\u81f3\u5de5\u5177\u5217",
|
||||
"Focus to element path": "\u8df3\u81f3HTML\u5143\u7d20\u5217",
|
||||
"Focus to contextual toolbar": "\u8df3\u81f3\u5feb\u6377\u9078\u55ae",
|
||||
"Insert link (if link plugin activated)": "\u65b0\u589e\u6377\u5f91 (\u6377\u5f91\u5916\u639b\u555f\u7528\u6642)",
|
||||
"Save (if save plugin activated)": "\u5132\u5b58 (\u5132\u5b58\u5916\u639b\u555f\u7528\u6642)",
|
||||
"Find (if searchreplace plugin activated)": "\u5c0b\u627e (\u5c0b\u627e\u53d6\u4ee3\u5916\u639b\u555f\u7528\u6642)",
|
||||
"Plugins installed ({0}):": "({0}) \u500b\u5916\u639b\u5df2\u5b89\u88dd\uff1a",
|
||||
"Premium plugins:": "\u52a0\u503c\u5916\u639b\uff1a",
|
||||
"Learn more...": "\u4e86\u89e3\u66f4\u591a...",
|
||||
"You are using {0}": "\u60a8\u6b63\u5728\u4f7f\u7528 {0}",
|
||||
"Plugins": "\u5916\u639b",
|
||||
"Handy Shortcuts": "\u5feb\u901f\u9375",
|
||||
"Horizontal line": "\u6c34\u5e73\u7dda",
|
||||
"Insert\/edit image": "\u63d2\u5165\/\u7de8\u8f2f \u5716\u7247",
|
||||
"Image description": "\u5716\u7247\u63cf\u8ff0",
|
||||
"Source": "\u5716\u7247\u7db2\u5740",
|
||||
"Dimensions": "\u5c3a\u5bf8",
|
||||
"Constrain proportions": "\u7b49\u6bd4\u4f8b\u7e2e\u653e",
|
||||
"General": "\u4e00\u822c",
|
||||
"Advanced": "\u9032\u968e",
|
||||
"Style": "\u6a23\u5f0f",
|
||||
"Vertical space": "\u9ad8\u5ea6",
|
||||
"Horizontal space": "\u5bec\u5ea6",
|
||||
"Border": "\u908a\u6846",
|
||||
"Insert image": "\u63d2\u5165\u5716\u7247",
|
||||
"Image...": "\u5716\u7247......",
|
||||
"Image list": "\u5716\u7247\u6e05\u55ae",
|
||||
"Rotate counterclockwise": "\u9006\u6642\u91dd\u65cb\u8f49",
|
||||
"Rotate clockwise": "\u9806\u6642\u91dd\u65cb\u8f49",
|
||||
"Flip vertically": "\u5782\u76f4\u7ffb\u8f49",
|
||||
"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f49",
|
||||
"Edit image": "\u7de8\u8f2f\u5716\u7247",
|
||||
"Image options": "\u5716\u7247\u9078\u9805",
|
||||
"Zoom in": "\u653e\u5927",
|
||||
"Zoom out": "\u7e2e\u5c0f",
|
||||
"Crop": "\u88c1\u526a",
|
||||
"Resize": "\u8abf\u6574\u5927\u5c0f",
|
||||
"Orientation": "\u65b9\u5411",
|
||||
"Brightness": "\u4eae\u5ea6",
|
||||
"Sharpen": "\u92b3\u5316",
|
||||
"Contrast": "\u5c0d\u6bd4",
|
||||
"Color levels": "\u984f\u8272\u5c64\u6b21",
|
||||
"Gamma": "\u4f3d\u99ac\u503c",
|
||||
"Invert": "\u53cd\u8f49",
|
||||
"Apply": "\u61c9\u7528",
|
||||
"Back": "\u5f8c\u9000",
|
||||
"Insert date\/time": "\u63d2\u5165 \u65e5\u671f\/\u6642\u9593",
|
||||
"Date\/time": "\u65e5\u671f\/\u6642\u9593",
|
||||
"Insert\/Edit Link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50",
|
||||
"Insert\/edit link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50",
|
||||
"Text to display": "\u986f\u793a\u6587\u5b57",
|
||||
"Url": "\u7db2\u5740",
|
||||
"Open link in...": "\u958b\u555f\u9023\u7d50\u65bc...",
|
||||
"Current window": "\u76ee\u524d\u8996\u7a97",
|
||||
"None": "\u7121",
|
||||
"New window": "\u53e6\u958b\u8996\u7a97",
|
||||
"Remove link": "\u79fb\u9664\u9023\u7d50",
|
||||
"Anchors": "\u52a0\u5165\u9328\u9ede",
|
||||
"Link...": "\u9023\u7d50...",
|
||||
"Paste or type a link": "\u8cbc\u4e0a\u6216\u8f38\u5165\u9023\u7d50",
|
||||
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u70ba\u96fb\u5b50\u90f5\u4ef6\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7db4\u55ce\uff1f",
|
||||
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u5c6c\u65bc\u5916\u90e8\u93c8\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7db4\u55ce\uff1f",
|
||||
"Link list": "\u9023\u7d50\u6e05\u55ae",
|
||||
"Insert video": "\u63d2\u5165\u5f71\u97f3",
|
||||
"Insert\/edit video": "\u63d2\u4ef6\/\u7de8\u8f2f \u5f71\u97f3",
|
||||
"Insert\/edit media": "\u63d2\u5165\/\u7de8\u8f2f \u5a92\u9ad4",
|
||||
"Alternative source": "\u66ff\u4ee3\u5f71\u97f3",
|
||||
"Alternative source URL": "\u66ff\u4ee3\u4f86\u6e90URL",
|
||||
"Media poster (Image URL)": "\u5a92\u9ad4\u6d77\u5831\uff08\u5f71\u50cfImage URL\uff09",
|
||||
"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u9762:",
|
||||
"Embed": "\u5d4c\u5165\u78bc",
|
||||
"Media...": "\u5a92\u9ad4...",
|
||||
"Nonbreaking space": "\u4e0d\u5206\u884c\u7684\u7a7a\u683c",
|
||||
"Page break": "\u5206\u9801",
|
||||
"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a",
|
||||
"Preview": "\u9810\u89bd",
|
||||
"Print...": "\u5217\u5370...",
|
||||
"Save": "\u5132\u5b58",
|
||||
"Find": "\u641c\u5c0b",
|
||||
"Replace with": "\u66f4\u63db",
|
||||
"Replace": "\u66ff\u63db",
|
||||
"Replace all": "\u66ff\u63db\u5168\u90e8",
|
||||
"Previous": "\u4e0a\u4e00\u500b",
|
||||
"Next": "\u4e0b\u4e00\u500b",
|
||||
"Find and replace...": "\u5c0b\u627e\u53ca\u53d6\u4ee3...",
|
||||
"Could not find the specified string.": "\u7121\u6cd5\u67e5\u8a62\u5230\u6b64\u7279\u5b9a\u5b57\u4e32",
|
||||
"Match case": "\u76f8\u5339\u914d\u6848\u4ef6",
|
||||
"Find whole words only": "\u50c5\u627e\u51fa\u5b8c\u6574\u5b57\u532f",
|
||||
"Spell check": "\u62fc\u5beb\u6aa2\u67e5",
|
||||
"Ignore": "\u5ffd\u7565",
|
||||
"Ignore all": "\u5ffd\u7565\u6240\u6709",
|
||||
"Finish": "\u5b8c\u6210",
|
||||
"Add to Dictionary": "\u52a0\u5165\u5b57\u5178\u4e2d",
|
||||
"Insert table": "\u63d2\u5165\u8868\u683c",
|
||||
"Table properties": "\u8868\u683c\u5c6c\u6027",
|
||||
"Delete table": "\u522a\u9664\u8868\u683c",
|
||||
"Cell": "\u5132\u5b58\u683c",
|
||||
"Row": "\u5217",
|
||||
"Column": "\u884c",
|
||||
"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027",
|
||||
"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c",
|
||||
"Split cell": "\u5206\u5272\u5132\u5b58\u683c",
|
||||
"Insert row before": "\u63d2\u5165\u5217\u5728...\u4e4b\u524d",
|
||||
"Insert row after": "\u63d2\u5165\u5217\u5728...\u4e4b\u5f8c",
|
||||
"Delete row": "\u522a\u9664\u5217",
|
||||
"Row properties": "\u5217\u5c6c\u6027",
|
||||
"Cut row": "\u526a\u4e0b\u5217",
|
||||
"Copy row": "\u8907\u88fd\u5217",
|
||||
"Paste row before": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u524d",
|
||||
"Paste row after": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u5f8c",
|
||||
"Insert column before": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u524d",
|
||||
"Insert column after": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u5f8c",
|
||||
"Delete column": "\u522a\u9664\u884c",
|
||||
"Cols": "\u6b04\u4f4d\u6bb5",
|
||||
"Rows": "\u5217",
|
||||
"Width": "\u5bec\u5ea6",
|
||||
"Height": "\u9ad8\u5ea6",
|
||||
"Cell spacing": "\u5132\u5b58\u683c\u5f97\u9593\u8ddd",
|
||||
"Cell padding": "\u5132\u5b58\u683c\u7684\u908a\u8ddd",
|
||||
"Show caption": "\u986f\u793a\u6a19\u984c",
|
||||
"Left": "\u5de6\u908a",
|
||||
"Center": "\u4e2d\u9593",
|
||||
"Right": "\u53f3\u908a",
|
||||
"Cell type": "\u5132\u5b58\u683c\u7684\u985e\u578b",
|
||||
"Scope": "\u7bc4\u570d",
|
||||
"Alignment": "\u5c0d\u9f4a",
|
||||
"H Align": "\u6c34\u5e73\u4f4d\u7f6e",
|
||||
"V Align": "\u5782\u76f4\u4f4d\u7f6e",
|
||||
"Top": "\u7f6e\u9802",
|
||||
"Middle": "\u7f6e\u4e2d",
|
||||
"Bottom": "\u7f6e\u5e95",
|
||||
"Header cell": "\u6a19\u982d\u5132\u5b58\u683c",
|
||||
"Row group": "\u5217\u7fa4\u7d44",
|
||||
"Column group": "\u6b04\u4f4d\u7fa4\u7d44",
|
||||
"Row type": "\u884c\u7684\u985e\u578b",
|
||||
"Header": "\u6a19\u982d",
|
||||
"Body": "\u4e3b\u9ad4",
|
||||
"Footer": "\u9801\u5c3e",
|
||||
"Border color": "\u908a\u6846\u984f\u8272",
|
||||
"Insert template...": "\u63d2\u5165\u6a23\u7248...",
|
||||
"Templates": "\u6a23\u7248",
|
||||
"Template": "\u6a23\u677f",
|
||||
"Text color": "\u6587\u5b57\u984f\u8272",
|
||||
"Background color": "\u80cc\u666f\u984f\u8272",
|
||||
"Custom...": "\u81ea\u8a02",
|
||||
"Custom color": "\u81ea\u8a02\u984f\u8272",
|
||||
"No color": "No color",
|
||||
"Remove color": "\u79fb\u9664\u984f\u8272",
|
||||
"Table of Contents": "\u76ee\u9304",
|
||||
"Show blocks": "\u986f\u793a\u5340\u584a\u8cc7\u8a0a",
|
||||
"Show invisible characters": "\u986f\u793a\u96b1\u85cf\u5b57\u5143",
|
||||
"Word count": "\u8a08\u7b97\u5b57\u6578",
|
||||
"Count": "\u8a08\u7b97",
|
||||
"Document": "\u6587\u4ef6",
|
||||
"Selection": "\u9078\u9805",
|
||||
"Words": "\u5b57\u6578",
|
||||
"Words: {0}": "\u5b57\u6578\uff1a{0}",
|
||||
"{0} words": "{0} \u5b57\u5143",
|
||||
"File": "\u6a94\u6848",
|
||||
"Edit": "\u7de8\u8f2f",
|
||||
"Insert": "\u63d2\u5165",
|
||||
"View": "\u6aa2\u8996",
|
||||
"Format": "\u683c\u5f0f",
|
||||
"Table": "\u8868\u683c",
|
||||
"Tools": "\u5de5\u5177",
|
||||
"Powered by {0}": "\u7531 {0} \u63d0\u4f9b",
|
||||
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u8c50\u5bcc\u7684\u6587\u672c\u5340\u57df\u3002\u6309ALT-F9\u524d\u5f80\u4e3b\u9078\u55ae\u3002\u6309ALT-F10\u547c\u53eb\u5de5\u5177\u6b04\u3002\u6309ALT-0\u5c0b\u6c42\u5e6b\u52a9",
|
||||
"Image title": "\u5716\u7247\u6a19\u984c",
|
||||
"Border width": "\u6846\u7dda\u5bec\u5ea6",
|
||||
"Border style": "\u6846\u7dda\u6a23\u5f0f",
|
||||
"Error": "\u932f\u8aa4",
|
||||
"Warn": "\u8b66\u544a",
|
||||
"Valid": "\u6709\u6548",
|
||||
"To open the popup, press Shift+Enter": "\u8981\u958b\u555f\u5f48\u51fa\u8996\u7a97\uff0c\u8acb\u6309Shift+Enter",
|
||||
"Rich Text Area. Press ALT-0 for help.": "\u5bcc\u6587\u672c\u5340\u57df\u3002\u8acb\u6309ALT-0\u5c0b\u6c42\u5354\u52a9\u3002",
|
||||
"System Font": "\u7cfb\u7d71\u5b57\u578b",
|
||||
"Failed to upload image: {0}": "\u7121\u6cd5\u4e0a\u50b3\u5f71\u50cf\uff1a{0}",
|
||||
"Failed to load plugin: {0} from url {1}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}\u81eaurl{1}",
|
||||
"Failed to load plugin url: {0}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}",
|
||||
"Failed to initialize plugin: {0}": "\u7121\u6cd5\u555f\u52d5\u63d2\u4ef6\uff1a{0}",
|
||||
"example": "\u7bc4\u4f8b",
|
||||
"Search": "\u641c\u7d22",
|
||||
"All": "\u5168\u90e8",
|
||||
"Currency": "\u8ca8\u5e63",
|
||||
"Text": "\u6587\u672c",
|
||||
"Quotations": "\u5f15\u7528",
|
||||
"Mathematical": "\u6578\u5b78",
|
||||
"Extended Latin": "\u62c9\u4e01\u5b57\u6bcd\u64f4\u5145",
|
||||
"Symbols": "\u7b26\u865f",
|
||||
"Arrows": "\u7bad\u982d",
|
||||
"User Defined": "\u4f7f\u7528\u8005\u5df2\u5b9a\u7fa9",
|
||||
"dollar sign": "\u7f8e\u5143\u7b26\u865f",
|
||||
"currency sign": "\u8ca8\u5e63\u7b26\u865f",
|
||||
"euro-currency sign": "\u6b50\u5143\u7b26\u865f",
|
||||
"colon sign": "\u79d1\u6717\u7b26\u865f",
|
||||
"cruzeiro sign": "\u514b\u9b6f\u8cfd\u7f85\u7b26\u865f",
|
||||
"french franc sign": "\u6cd5\u6717\u7b26\u865f",
|
||||
"lira sign": "\u91cc\u62c9\u7b26\u865f",
|
||||
"mill sign": "\u6587\u7b26\u865f",
|
||||
"naira sign": "\u5948\u62c9\u7b26\u865f",
|
||||
"peseta sign": "\u6bd4\u585e\u5854\u7b26\u865f",
|
||||
"rupee sign": "\u76e7\u6bd4\u7b26\u865f",
|
||||
"won sign": "\u97d3\u571c\u7b26\u865f",
|
||||
"new sheqel sign": "\u65b0\u8b1d\u514b\u723e\u7b26\u865f",
|
||||
"dong sign": "\u8d8a\u5357\u76fe\u7b26\u865f",
|
||||
"kip sign": "\u8001\u64be\u5e63\u7b26\u865f",
|
||||
"tugrik sign": "\u8499\u53e4\u5e63\u7b26\u865f",
|
||||
"drachma sign": "\u5fb7\u514b\u62c9\u99ac\u7b26\u865f",
|
||||
"german penny symbol": "\u5fb7\u570b\u5206\u7b26\u865f",
|
||||
"peso sign": "\u62ab\u7d22\u7b26\u865f",
|
||||
"guarani sign": "\u5df4\u62c9\u572d\u5e63\u7b26\u865f",
|
||||
"austral sign": "\u963f\u6839\u5ef7\u5e63\u7b26\u865f",
|
||||
"hryvnia sign": "\u70cf\u514b\u862d\u5e63\u7b26\u865f",
|
||||
"cedi sign": "\u8fe6\u7d0d\u5e63\u7b26\u865f",
|
||||
"livre tournois sign": "\u91cc\u5f17\u723e\u7b26\u865f",
|
||||
"spesmilo sign": "\u570b\u969b\u5e63\u7b26\u865f",
|
||||
"tenge sign": "\u54c8\u85a9\u514b\u5e63\u7b26\u865f",
|
||||
"indian rupee sign": "\u5370\u5ea6\u76e7\u6bd4\u7b26\u865f",
|
||||
"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9\u7b26\u865f",
|
||||
"nordic mark sign": "\u5317\u6b50\u99ac\u514b\u7b26\u865f",
|
||||
"manat sign": "\u4e9e\u585e\u62dc\u7136\u5e63\u7b26\u865f",
|
||||
"ruble sign": "\u76e7\u5e03\u7b26\u865f",
|
||||
"yen character": "\u65e5\u5713\u7b26\u865f",
|
||||
"yuan character": "\u4eba\u6c11\u5e63\u7b26\u865f",
|
||||
"yuan character, in hong kong and taiwan": "\u6e2f\u5143\u8207\u53f0\u5e63\u7b26\u865f",
|
||||
"yen\/yuan character variant one": "\u65e5\u5713\/\u4eba\u6c11\u5e63\u7b26\u865f\u8b8a\u5316\u578b",
|
||||
"Loading emoticons...": "\u8f09\u5165\u8868\u60c5\u7b26\u865f\u2026",
|
||||
"Could not load emoticons": "\u7121\u6cd5\u8f09\u5165\u8868\u60c5\u7b26\u865f",
|
||||
"People": "\u4eba",
|
||||
"Animals and Nature": "\u52d5\u7269\u8207\u81ea\u7136",
|
||||
"Food and Drink": "\u98f2\u98df",
|
||||
"Activity": "\u6d3b\u52d5",
|
||||
"Travel and Places": "\u65c5\u884c\u8207\u5730\u9ede",
|
||||
"Objects": "\u7269\u4ef6",
|
||||
"Flags": "\u65d7\u6a19",
|
||||
"Characters": "\u5b57\u5143",
|
||||
"Characters (no spaces)": "\u5b57\u5143\uff08\u7121\u7a7a\u683c\uff09",
|
||||
"{0} characters": "{0}\u5b57\u5143",
|
||||
"Error: Form submit field collision.": "\u932f\u8aa4\uff1a\u8868\u683c\u905e\u4ea4\u6b04\u4f4d\u885d\u7a81\u3002",
|
||||
"Error: No form element found.": "\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u8868\u683c\u5143\u7d20\u3002",
|
||||
"Update": "\u66f4\u65b0",
|
||||
"Color swatch": "\u8272\u5f69\u6a23\u672c",
|
||||
"Turquoise": "\u571f\u8033\u5176\u85cd",
|
||||
"Green": "\u7da0\u8272",
|
||||
"Blue": "\u85cd\u8272",
|
||||
"Purple": "\u7d2b\u8272",
|
||||
"Navy Blue": "\u6df1\u85cd\u8272",
|
||||
"Dark Turquoise": "\u6df1\u571f\u8033\u5176\u85cd",
|
||||
"Dark Green": "\u6df1\u7da0\u8272",
|
||||
"Medium Blue": "\u4e2d\u85cd\u8272",
|
||||
"Medium Purple": "\u4e2d\u7d2b\u8272",
|
||||
"Midnight Blue": "\u9ed1\u85cd\u8272",
|
||||
"Yellow": "\u9ec3\u8272",
|
||||
"Orange": "\u6a59\u8272",
|
||||
"Red": "\u7d05\u8272",
|
||||
"Light Gray": "\u6dfa\u7070\u8272",
|
||||
"Gray": "\u7070\u8272",
|
||||
"Dark Yellow": "\u6df1\u9ec3\u8272",
|
||||
"Dark Orange": "\u6df1\u6a59\u8272",
|
||||
"Dark Red": "\u6697\u7d05\u8272",
|
||||
"Medium Gray": "\u4e2d\u7070\u8272",
|
||||
"Dark Gray": "\u6df1\u7070\u8272",
|
||||
"Light Green": "\u6de1\u7da0\u8272",
|
||||
"Light Yellow": "\u6dfa\u9ec3\u8272",
|
||||
"Light Red": "\u6dfa\u7d05\u8272",
|
||||
"Light Purple": "\u6dfa\u7d2b\u8272",
|
||||
"Light Blue": "\u6dfa\u85cd\u8272",
|
||||
"Dark Purple": "\u6df1\u7d2b\u8272",
|
||||
"Dark Blue": "\u6df1\u85cd\u8272",
|
||||
"Black": "\u9ed1\u8272",
|
||||
"White": "\u767d\u8272",
|
||||
"Switch to or from fullscreen mode": "\u8f49\u63db\u81ea\/\u81f3\u5168\u87a2\u5e55\u6a21\u5f0f",
|
||||
"Open help dialog": "\u958b\u555f\u5354\u52a9\u5c0d\u8a71",
|
||||
"history": "\u6b77\u53f2",
|
||||
"styles": "\u6a23\u5f0f",
|
||||
"formatting": "\u683c\u5f0f",
|
||||
"alignment": "\u5c0d\u9f4a",
|
||||
"indentation": "\u7e2e\u6392",
|
||||
"permanent pen": "\u6c38\u4e45\u6027\u7b46",
|
||||
"comments": "\u8a3b\u89e3",
|
||||
"Format Painter": "\u8907\u88fd\u683c\u5f0f",
|
||||
"Insert\/edit iframe": "\u63d2\u5165\/\u7de8\u8f2fiframe",
|
||||
"Capitalization": "\u5927\u5beb",
|
||||
"lowercase": "\u5c0f\u5beb",
|
||||
"UPPERCASE": "\u5927\u5beb",
|
||||
"Title Case": "\u5b57\u9996\u5927\u5beb",
|
||||
"Permanent Pen Properties": "\u6c38\u4e45\u6a19\u8a18\u5c6c\u6027",
|
||||
"Permanent pen properties...": "\u6c38\u4e45\u6a19\u8a18\u5c6c\u6027......",
|
||||
"Font": "\u5b57\u578b",
|
||||
"Size": "\u5b57\u5f62\u5927\u5c0f",
|
||||
"More...": "\u66f4\u591a\u8cc7\u8a0a......",
|
||||
"Spellcheck Language": "\u62fc\u5beb\u8a9e\u8a00",
|
||||
"Select...": "\u9078\u64c7......",
|
||||
"Preferences": "\u9996\u9078\u9805",
|
||||
"Yes": "\u662f",
|
||||
"No": "\u5426",
|
||||
"Keyboard Navigation": "\u9375\u76e4\u5c0e\u822a",
|
||||
"Version": "\u7248\u672c",
|
||||
"Anchor": "\u52a0\u5165\u9328\u9ede",
|
||||
"Special character": "\u7279\u6b8a\u5b57\u5143",
|
||||
"Code sample": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b",
|
||||
"Color": "\u984f\u8272",
|
||||
"Emoticons": "\u8868\u60c5",
|
||||
"Document properties": "\u6587\u4ef6\u7684\u5c6c\u6027",
|
||||
"Image": "\u5716\u7247",
|
||||
"Insert link": "\u63d2\u5165\u9023\u7d50",
|
||||
"Target": "\u958b\u555f\u65b9\u5f0f",
|
||||
"Link": "\u9023\u7d50",
|
||||
"Poster": "\u9810\u89bd\u5716\u7247",
|
||||
"Media": "\u5a92\u9ad4",
|
||||
"Print": "\u5217\u5370",
|
||||
"Prev": "\u4e0a\u4e00\u500b",
|
||||
"Find and replace": "\u5c0b\u627e\u53ca\u53d6\u4ee3",
|
||||
"Whole words": "\u6574\u500b\u55ae\u5b57",
|
||||
"Spellcheck": "\u62fc\u5b57\u6aa2\u67e5",
|
||||
"Caption": "\u8868\u683c\u6a19\u984c",
|
||||
"Insert template": "\u63d2\u5165\u6a23\u7248"
|
||||
});
|
|
@ -1,72 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body {
|
||||
background-color: #2f3742;
|
||||
color: #dfe0e4;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
line-height: 1.4;
|
||||
margin: 1rem;
|
||||
}
|
||||
a {
|
||||
color: #4099ff;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
/* Apply a default padding if legacy cellpadding attribute is missing */
|
||||
table:not([cellpadding]) th,
|
||||
table:not([cellpadding]) td {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) td {
|
||||
border-width: 1px;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) td {
|
||||
border-style: solid;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) td {
|
||||
border-color: #6d737b;
|
||||
}
|
||||
figure {
|
||||
display: table;
|
||||
margin: 1rem auto;
|
||||
}
|
||||
figure figcaption {
|
||||
color: #8a8f97;
|
||||
display: block;
|
||||
margin-top: 0.25rem;
|
||||
text-align: center;
|
||||
}
|
||||
hr {
|
||||
border-color: #6d737b;
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
code {
|
||||
background-color: #6d737b;
|
||||
border-radius: 3px;
|
||||
padding: 0.1rem 0.2rem;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl]) blockquote {
|
||||
border-left: 2px solid #6d737b;
|
||||
margin-left: 1.5rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
.mce-content-body[dir=rtl] blockquote {
|
||||
border-right: 2px solid #6d737b;
|
||||
margin-right: 1.5rem;
|
||||
padding-right: 1rem;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem}
|
|
@ -1,67 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
line-height: 1.4;
|
||||
margin: 1rem;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
/* Apply a default padding if legacy cellpadding attribute is missing */
|
||||
table:not([cellpadding]) th,
|
||||
table:not([cellpadding]) td {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) td {
|
||||
border-width: 1px;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) td {
|
||||
border-style: solid;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) td {
|
||||
border-color: #ccc;
|
||||
}
|
||||
figure {
|
||||
display: table;
|
||||
margin: 1rem auto;
|
||||
}
|
||||
figure figcaption {
|
||||
color: #999;
|
||||
display: block;
|
||||
margin-top: 0.25rem;
|
||||
text-align: center;
|
||||
}
|
||||
hr {
|
||||
border-color: #ccc;
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
code {
|
||||
background-color: #e8e8e8;
|
||||
border-radius: 3px;
|
||||
padding: 0.1rem 0.2rem;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl]) blockquote {
|
||||
border-left: 2px solid #ccc;
|
||||
margin-left: 1.5rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
.mce-content-body[dir=rtl] blockquote {
|
||||
border-right: 2px solid #ccc;
|
||||
margin-right: 1.5rem;
|
||||
padding-right: 1rem;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
|
@ -1,72 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
@media screen {
|
||||
html {
|
||||
background: #f4f4f4;
|
||||
min-height: 100%;
|
||||
}
|
||||
}
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
}
|
||||
@media screen {
|
||||
body {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
|
||||
box-sizing: border-box;
|
||||
margin: 1rem auto 0;
|
||||
max-width: 820px;
|
||||
min-height: calc(100vh - 1rem);
|
||||
padding: 4rem 6rem 6rem 6rem;
|
||||
}
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
/* Apply a default padding if legacy cellpadding attribute is missing */
|
||||
table:not([cellpadding]) th,
|
||||
table:not([cellpadding]) td {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) td {
|
||||
border-width: 1px;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) td {
|
||||
border-style: solid;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) td {
|
||||
border-color: #ccc;
|
||||
}
|
||||
figure figcaption {
|
||||
color: #999;
|
||||
margin-top: 0.25rem;
|
||||
text-align: center;
|
||||
}
|
||||
hr {
|
||||
border-color: #ccc;
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl]) blockquote {
|
||||
border-left: 2px solid #ccc;
|
||||
margin-left: 1.5rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
.mce-content-body[dir=rtl] blockquote {
|
||||
border-right: 2px solid #ccc;
|
||||
margin-right: 1.5rem;
|
||||
padding-right: 1rem;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
|
@ -1,68 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
line-height: 1.4;
|
||||
margin: 1rem auto;
|
||||
max-width: 900px;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
/* Apply a default padding if legacy cellpadding attribute is missing */
|
||||
table:not([cellpadding]) th,
|
||||
table:not([cellpadding]) td {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-width"]) td {
|
||||
border-width: 1px;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-style"]) td {
|
||||
border-style: solid;
|
||||
}
|
||||
/* Set default table styles if a table has a positive border attribute
|
||||
and no inline css */
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) th,
|
||||
table[border]:not([border="0"]):not([style*="border-color"]) td {
|
||||
border-color: #ccc;
|
||||
}
|
||||
figure {
|
||||
display: table;
|
||||
margin: 1rem auto;
|
||||
}
|
||||
figure figcaption {
|
||||
color: #999;
|
||||
display: block;
|
||||
margin-top: 0.25rem;
|
||||
text-align: center;
|
||||
}
|
||||
hr {
|
||||
border-color: #ccc;
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
code {
|
||||
background-color: #e8e8e8;
|
||||
border-radius: 3px;
|
||||
padding: 0.1rem 0.2rem;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl]) blockquote {
|
||||
border-left: 2px solid #ccc;
|
||||
margin-left: 1.5rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
.mce-content-body[dir=rtl] blockquote {
|
||||
border-right: 2px solid #ccc;
|
||||
margin-right: 1.5rem;
|
||||
padding-right: 1rem;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
|
|
@ -1,714 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
cursor: default;
|
||||
display: inline-block;
|
||||
height: 12px !important;
|
||||
padding: 0 2px;
|
||||
-webkit-user-modify: read-only;
|
||||
-moz-user-modify: read-only;
|
||||
-webkit-user-select: all;
|
||||
-moz-user-select: all;
|
||||
-ms-user-select: all;
|
||||
user-select: all;
|
||||
width: 8px !important;
|
||||
}
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected] {
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.tox-comments-visible .tox-comment {
|
||||
background-color: #fff0b7;
|
||||
}
|
||||
.tox-comments-visible .tox-comment--active {
|
||||
background-color: #ffe168;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden) {
|
||||
list-style: none;
|
||||
margin: 0.25em 0;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%236d737b%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
cursor: pointer;
|
||||
height: 1em;
|
||||
margin-left: -1.5em;
|
||||
margin-top: 0.125em;
|
||||
position: absolute;
|
||||
width: 1em;
|
||||
}
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
}
|
||||
[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
margin-left: 0;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
/* stylelint-disable */
|
||||
/* http://prismjs.com/ */
|
||||
/**
|
||||
* Dracula Theme originally by Zeno Rocha [@zenorocha]
|
||||
* https://draculatheme.com/
|
||||
*
|
||||
* Ported for PrismJS by Albert Vallverdu [@byverdu]
|
||||
*/
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: #f8f8f2;
|
||||
background: none;
|
||||
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
-moz-tab-size: 4;
|
||||
tab-size: 4;
|
||||
-webkit-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: 0.5em 0;
|
||||
overflow: auto;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #282a36;
|
||||
}
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: 0.1em;
|
||||
border-radius: 0.3em;
|
||||
white-space: normal;
|
||||
}
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: #6272a4;
|
||||
}
|
||||
.token.punctuation {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
.namespace {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #ff79c6;
|
||||
}
|
||||
.token.boolean,
|
||||
.token.number {
|
||||
color: #bd93f9;
|
||||
}
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #50fa7b;
|
||||
}
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string,
|
||||
.token.variable {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #f1fa8c;
|
||||
}
|
||||
.token.keyword {
|
||||
color: #8be9fd;
|
||||
}
|
||||
.token.regex,
|
||||
.token.important {
|
||||
color: #ffb86c;
|
||||
}
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
||||
/* stylelint-enable */
|
||||
.mce-content-body {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret {
|
||||
background-color: black;
|
||||
background-color: currentColor;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret-hidden {
|
||||
display: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-caret] {
|
||||
left: -1000px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: auto;
|
||||
top: 0;
|
||||
}
|
||||
.mce-content-body .mce-offscreen-selection {
|
||||
left: -2000000px;
|
||||
max-width: 1000000px;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] {
|
||||
cursor: default;
|
||||
}
|
||||
.mce-content-body *[contentEditable=true] {
|
||||
cursor: text;
|
||||
}
|
||||
.tox-cursor-format-painter {
|
||||
cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default;
|
||||
}
|
||||
.mce-content-body figure.align-left {
|
||||
float: left;
|
||||
}
|
||||
.mce-content-body figure.align-right {
|
||||
float: right;
|
||||
}
|
||||
.mce-content-body figure.image.align-center {
|
||||
display: table;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.mce-preview-object {
|
||||
border: 1px solid gray;
|
||||
display: inline-block;
|
||||
line-height: 0;
|
||||
margin: 0 2px 0 2px;
|
||||
position: relative;
|
||||
}
|
||||
.mce-preview-object .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.mce-object {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%20fill%3D%22%23cccccc%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
border: 1px dashed #aaa;
|
||||
}
|
||||
.mce-pagebreak {
|
||||
border: 1px dashed #aaa;
|
||||
cursor: default;
|
||||
display: block;
|
||||
height: 5px;
|
||||
margin-top: 15px;
|
||||
page-break-before: always;
|
||||
width: 100%;
|
||||
}
|
||||
@media print {
|
||||
.mce-pagebreak {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
.tiny-pageembed .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.tiny-pageembed {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.tiny-pageembed--21by9,
|
||||
.tiny-pageembed--16by9,
|
||||
.tiny-pageembed--4by3,
|
||||
.tiny-pageembed--1by1 {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 {
|
||||
padding-top: 42.857143%;
|
||||
}
|
||||
.tiny-pageembed--16by9 {
|
||||
padding-top: 56.25%;
|
||||
}
|
||||
.tiny-pageembed--4by3 {
|
||||
padding-top: 75%;
|
||||
}
|
||||
.tiny-pageembed--1by1 {
|
||||
padding-top: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 iframe,
|
||||
.tiny-pageembed--16by9 iframe,
|
||||
.tiny-pageembed--4by3 iframe,
|
||||
.tiny-pageembed--1by1 iframe {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
color: rgba(34, 47, 62, 0.7);
|
||||
content: attr(data-mce-placeholder);
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
left: 1px;
|
||||
}
|
||||
.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
right: 1px;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle {
|
||||
background-color: #4099ff;
|
||||
border-color: #4099ff;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
box-sizing: border-box;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
z-index: 1298;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:hover {
|
||||
background-color: #4099ff;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body .mce-resize-backdrop {
|
||||
z-index: 10000;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable {
|
||||
cursor: default;
|
||||
opacity: 0.5;
|
||||
outline: 1px dashed black;
|
||||
position: absolute;
|
||||
z-index: 10001;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns th,
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns td {
|
||||
border: 0;
|
||||
}
|
||||
.mce-content-body .mce-resize-helper {
|
||||
background: #555;
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
border: 1px;
|
||||
border-radius: 3px;
|
||||
color: white;
|
||||
display: none;
|
||||
font-family: sans-serif;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
margin: 5px 10px;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
z-index: 10002;
|
||||
}
|
||||
.tox-rtc-user-selection {
|
||||
position: relative;
|
||||
}
|
||||
.tox-rtc-user-cursor {
|
||||
bottom: 0;
|
||||
cursor: default;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 2px;
|
||||
}
|
||||
.tox-rtc-user-cursor::before {
|
||||
background-color: inherit;
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 8px;
|
||||
position: absolute;
|
||||
right: -3px;
|
||||
top: -3px;
|
||||
width: 8px;
|
||||
}
|
||||
.tox-rtc-user-cursor:hover::after {
|
||||
background-color: inherit;
|
||||
border-radius: 100px;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
content: attr(data-user);
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
left: -5px;
|
||||
min-height: 8px;
|
||||
min-width: 8px;
|
||||
padding: 0 12px;
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
white-space: nowrap;
|
||||
z-index: 1000;
|
||||
}
|
||||
.tox-rtc-user-selection--1 .tox-rtc-user-cursor {
|
||||
background-color: #2dc26b;
|
||||
}
|
||||
.tox-rtc-user-selection--2 .tox-rtc-user-cursor {
|
||||
background-color: #e03e2d;
|
||||
}
|
||||
.tox-rtc-user-selection--3 .tox-rtc-user-cursor {
|
||||
background-color: #f1c40f;
|
||||
}
|
||||
.tox-rtc-user-selection--4 .tox-rtc-user-cursor {
|
||||
background-color: #3598db;
|
||||
}
|
||||
.tox-rtc-user-selection--5 .tox-rtc-user-cursor {
|
||||
background-color: #b96ad9;
|
||||
}
|
||||
.tox-rtc-user-selection--6 .tox-rtc-user-cursor {
|
||||
background-color: #e67e23;
|
||||
}
|
||||
.tox-rtc-user-selection--7 .tox-rtc-user-cursor {
|
||||
background-color: #aaa69d;
|
||||
}
|
||||
.tox-rtc-user-selection--8 .tox-rtc-user-cursor {
|
||||
background-color: #f368e0;
|
||||
}
|
||||
.tox-rtc-remote-image {
|
||||
background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;
|
||||
border: 1px solid #ccc;
|
||||
min-height: 240px;
|
||||
min-width: 320px;
|
||||
}
|
||||
.mce-match-marker {
|
||||
background: #aaa;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::-moz-selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-content-body img[data-mce-selected],
|
||||
.mce-content-body video[data-mce-selected],
|
||||
.mce-content-body audio[data-mce-selected],
|
||||
.mce-content-body object[data-mce-selected],
|
||||
.mce-content-body embed[data-mce-selected],
|
||||
.mce-content-body table[data-mce-selected] {
|
||||
outline: 3px solid #4099ff;
|
||||
}
|
||||
.mce-content-body hr[data-mce-selected] {
|
||||
outline: 3px solid #4099ff;
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {
|
||||
outline: 3px solid #4099ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {
|
||||
outline: 3px solid #4099ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false][data-mce-selected] {
|
||||
cursor: not-allowed;
|
||||
outline: 3px solid #4099ff;
|
||||
}
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:hover {
|
||||
outline: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-selected="inline-boundary"] {
|
||||
background-color: #4099ff;
|
||||
}
|
||||
.mce-content-body .mce-edit-focus {
|
||||
outline: 3px solid #4099ff;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected],
|
||||
.mce-content-body th[data-mce-selected] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,
|
||||
.mce-content-body th[data-mce-selected]::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::selection,
|
||||
.mce-content-body th[data-mce-selected]::selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected] *,
|
||||
.mce-content-body th[data-mce-selected] * {
|
||||
outline: none;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
background-color: rgba(180, 215, 255, 0.7);
|
||||
border: 1px solid transparent;
|
||||
bottom: -1px;
|
||||
content: '';
|
||||
left: -1px;
|
||||
mix-blend-mode: lighten;
|
||||
position: absolute;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
}
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
border-color: rgba(0, 84, 180, 0.7);
|
||||
}
|
||||
}
|
||||
.mce-content-body img::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body img::selection {
|
||||
background: none;
|
||||
}
|
||||
.ephox-snooker-resizer-bar {
|
||||
background-color: #4099ff;
|
||||
opacity: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.ephox-snooker-resizer-cols {
|
||||
cursor: col-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-rows {
|
||||
cursor: row-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging {
|
||||
opacity: 1;
|
||||
}
|
||||
.mce-spellchecker-word {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
height: 2rem;
|
||||
}
|
||||
.mce-spellchecker-grammar {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
}
|
||||
.mce-toc {
|
||||
border: 1px solid gray;
|
||||
}
|
||||
.mce-toc h2 {
|
||||
margin: 4px;
|
||||
}
|
||||
.mce-toc li {
|
||||
list-style-type: none;
|
||||
}
|
||||
table[style*="border-width: 0px"],
|
||||
.mce-item-table:not([border]),
|
||||
.mce-item-table[border="0"],
|
||||
table[style*="border-width: 0px"] td,
|
||||
.mce-item-table:not([border]) td,
|
||||
.mce-item-table[border="0"] td,
|
||||
table[style*="border-width: 0px"] th,
|
||||
.mce-item-table:not([border]) th,
|
||||
.mce-item-table[border="0"] th,
|
||||
table[style*="border-width: 0px"] caption,
|
||||
.mce-item-table:not([border]) caption,
|
||||
.mce-item-table[border="0"] caption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks p,
|
||||
.mce-visualblocks h1,
|
||||
.mce-visualblocks h2,
|
||||
.mce-visualblocks h3,
|
||||
.mce-visualblocks h4,
|
||||
.mce-visualblocks h5,
|
||||
.mce-visualblocks h6,
|
||||
.mce-visualblocks div:not([data-mce-bogus]),
|
||||
.mce-visualblocks section,
|
||||
.mce-visualblocks article,
|
||||
.mce-visualblocks blockquote,
|
||||
.mce-visualblocks address,
|
||||
.mce-visualblocks pre,
|
||||
.mce-visualblocks figure,
|
||||
.mce-visualblocks figcaption,
|
||||
.mce-visualblocks hgroup,
|
||||
.mce-visualblocks aside,
|
||||
.mce-visualblocks ul,
|
||||
.mce-visualblocks ol,
|
||||
.mce-visualblocks dl {
|
||||
background-repeat: no-repeat;
|
||||
border: 1px dashed #bbb;
|
||||
margin-left: 3px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.mce-visualblocks p {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
|
||||
}
|
||||
.mce-visualblocks h1 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
|
||||
}
|
||||
.mce-visualblocks h2 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h3 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
|
||||
}
|
||||
.mce-visualblocks h4 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
|
||||
}
|
||||
.mce-visualblocks h5 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h6 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
|
||||
}
|
||||
.mce-visualblocks div:not([data-mce-bogus]) {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
|
||||
}
|
||||
.mce-visualblocks section {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
|
||||
}
|
||||
.mce-visualblocks article {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
|
||||
}
|
||||
.mce-visualblocks blockquote {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
|
||||
}
|
||||
.mce-visualblocks address {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
|
||||
}
|
||||
.mce-visualblocks pre {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
|
||||
}
|
||||
.mce-visualblocks figure {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
|
||||
}
|
||||
.mce-visualblocks figcaption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks hgroup {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
|
||||
}
|
||||
.mce-visualblocks aside {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
|
||||
}
|
||||
.mce-visualblocks ul {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);
|
||||
}
|
||||
.mce-visualblocks ol {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
|
||||
}
|
||||
.mce-visualblocks dl {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
|
||||
}
|
||||
.mce-visualblocks:not([dir=rtl]) p,
|
||||
.mce-visualblocks:not([dir=rtl]) h1,
|
||||
.mce-visualblocks:not([dir=rtl]) h2,
|
||||
.mce-visualblocks:not([dir=rtl]) h3,
|
||||
.mce-visualblocks:not([dir=rtl]) h4,
|
||||
.mce-visualblocks:not([dir=rtl]) h5,
|
||||
.mce-visualblocks:not([dir=rtl]) h6,
|
||||
.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),
|
||||
.mce-visualblocks:not([dir=rtl]) section,
|
||||
.mce-visualblocks:not([dir=rtl]) article,
|
||||
.mce-visualblocks:not([dir=rtl]) blockquote,
|
||||
.mce-visualblocks:not([dir=rtl]) address,
|
||||
.mce-visualblocks:not([dir=rtl]) pre,
|
||||
.mce-visualblocks:not([dir=rtl]) figure,
|
||||
.mce-visualblocks:not([dir=rtl]) figcaption,
|
||||
.mce-visualblocks:not([dir=rtl]) hgroup,
|
||||
.mce-visualblocks:not([dir=rtl]) aside,
|
||||
.mce-visualblocks:not([dir=rtl]) ul,
|
||||
.mce-visualblocks:not([dir=rtl]) ol,
|
||||
.mce-visualblocks:not([dir=rtl]) dl {
|
||||
margin-left: 3px;
|
||||
}
|
||||
.mce-visualblocks[dir=rtl] p,
|
||||
.mce-visualblocks[dir=rtl] h1,
|
||||
.mce-visualblocks[dir=rtl] h2,
|
||||
.mce-visualblocks[dir=rtl] h3,
|
||||
.mce-visualblocks[dir=rtl] h4,
|
||||
.mce-visualblocks[dir=rtl] h5,
|
||||
.mce-visualblocks[dir=rtl] h6,
|
||||
.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),
|
||||
.mce-visualblocks[dir=rtl] section,
|
||||
.mce-visualblocks[dir=rtl] article,
|
||||
.mce-visualblocks[dir=rtl] blockquote,
|
||||
.mce-visualblocks[dir=rtl] address,
|
||||
.mce-visualblocks[dir=rtl] pre,
|
||||
.mce-visualblocks[dir=rtl] figure,
|
||||
.mce-visualblocks[dir=rtl] figcaption,
|
||||
.mce-visualblocks[dir=rtl] hgroup,
|
||||
.mce-visualblocks[dir=rtl] aside,
|
||||
.mce-visualblocks[dir=rtl] ul,
|
||||
.mce-visualblocks[dir=rtl] ol,
|
||||
.mce-visualblocks[dir=rtl] dl {
|
||||
background-position-x: right;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.mce-nbsp,
|
||||
.mce-shy {
|
||||
background: #aaa;
|
||||
}
|
||||
.mce-shy::after {
|
||||
content: '-';
|
||||
}
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
|
@ -1,726 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
cursor: default;
|
||||
display: inline-block;
|
||||
height: 12px !important;
|
||||
padding: 0 2px;
|
||||
-webkit-user-modify: read-only;
|
||||
-moz-user-modify: read-only;
|
||||
-webkit-user-select: all;
|
||||
-moz-user-select: all;
|
||||
-ms-user-select: all;
|
||||
user-select: all;
|
||||
width: 8px !important;
|
||||
}
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected] {
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.tox-comments-visible .tox-comment {
|
||||
background-color: #fff0b7;
|
||||
}
|
||||
.tox-comments-visible .tox-comment--active {
|
||||
background-color: #ffe168;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden) {
|
||||
list-style: none;
|
||||
margin: 0.25em 0;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
cursor: pointer;
|
||||
height: 1em;
|
||||
margin-left: -1.5em;
|
||||
margin-top: 0.125em;
|
||||
position: absolute;
|
||||
width: 1em;
|
||||
}
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
}
|
||||
[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
margin-left: 0;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
/* stylelint-disable */
|
||||
/* http://prismjs.com/ */
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
font-size: 1em;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
-moz-tab-size: 4;
|
||||
tab-size: 4;
|
||||
-webkit-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
pre[class*="language-"]::-moz-selection,
|
||||
pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection,
|
||||
code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
pre[class*="language-"]::selection,
|
||||
pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection,
|
||||
code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
@media print {
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: 0.5em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #f5f2f0;
|
||||
}
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: 0.1em;
|
||||
border-radius: 0.3em;
|
||||
white-space: normal;
|
||||
}
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
.token.punctuation {
|
||||
color: #999;
|
||||
}
|
||||
.namespace {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #905;
|
||||
}
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #690;
|
||||
}
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #9a6e3a;
|
||||
background: hsla(0, 0%, 100%, 0.5);
|
||||
}
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #07a;
|
||||
}
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #DD4A68;
|
||||
}
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #e90;
|
||||
}
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
||||
/* stylelint-enable */
|
||||
.mce-content-body {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret {
|
||||
background-color: black;
|
||||
background-color: currentColor;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret-hidden {
|
||||
display: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-caret] {
|
||||
left: -1000px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: auto;
|
||||
top: 0;
|
||||
}
|
||||
.mce-content-body .mce-offscreen-selection {
|
||||
left: -2000000px;
|
||||
max-width: 1000000px;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] {
|
||||
cursor: default;
|
||||
}
|
||||
.mce-content-body *[contentEditable=true] {
|
||||
cursor: text;
|
||||
}
|
||||
.tox-cursor-format-painter {
|
||||
cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default;
|
||||
}
|
||||
.mce-content-body figure.align-left {
|
||||
float: left;
|
||||
}
|
||||
.mce-content-body figure.align-right {
|
||||
float: right;
|
||||
}
|
||||
.mce-content-body figure.image.align-center {
|
||||
display: table;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.mce-preview-object {
|
||||
border: 1px solid gray;
|
||||
display: inline-block;
|
||||
line-height: 0;
|
||||
margin: 0 2px 0 2px;
|
||||
position: relative;
|
||||
}
|
||||
.mce-preview-object .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.mce-object {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
border: 1px dashed #aaa;
|
||||
}
|
||||
.mce-pagebreak {
|
||||
border: 1px dashed #aaa;
|
||||
cursor: default;
|
||||
display: block;
|
||||
height: 5px;
|
||||
margin-top: 15px;
|
||||
page-break-before: always;
|
||||
width: 100%;
|
||||
}
|
||||
@media print {
|
||||
.mce-pagebreak {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
.tiny-pageembed .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.tiny-pageembed {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.tiny-pageembed--21by9,
|
||||
.tiny-pageembed--16by9,
|
||||
.tiny-pageembed--4by3,
|
||||
.tiny-pageembed--1by1 {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 {
|
||||
padding-top: 42.857143%;
|
||||
}
|
||||
.tiny-pageembed--16by9 {
|
||||
padding-top: 56.25%;
|
||||
}
|
||||
.tiny-pageembed--4by3 {
|
||||
padding-top: 75%;
|
||||
}
|
||||
.tiny-pageembed--1by1 {
|
||||
padding-top: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 iframe,
|
||||
.tiny-pageembed--16by9 iframe,
|
||||
.tiny-pageembed--4by3 iframe,
|
||||
.tiny-pageembed--1by1 iframe {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
color: rgba(34, 47, 62, 0.7);
|
||||
content: attr(data-mce-placeholder);
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
left: 1px;
|
||||
}
|
||||
.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
right: 1px;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle {
|
||||
background-color: #4099ff;
|
||||
border-color: #4099ff;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
box-sizing: border-box;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
z-index: 1298;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:hover {
|
||||
background-color: #4099ff;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body .mce-resize-backdrop {
|
||||
z-index: 10000;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable {
|
||||
cursor: default;
|
||||
opacity: 0.5;
|
||||
outline: 1px dashed black;
|
||||
position: absolute;
|
||||
z-index: 10001;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns th,
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns td {
|
||||
border: 0;
|
||||
}
|
||||
.mce-content-body .mce-resize-helper {
|
||||
background: #555;
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
border: 1px;
|
||||
border-radius: 3px;
|
||||
color: white;
|
||||
display: none;
|
||||
font-family: sans-serif;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
margin: 5px 10px;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
z-index: 10002;
|
||||
}
|
||||
.tox-rtc-user-selection {
|
||||
position: relative;
|
||||
}
|
||||
.tox-rtc-user-cursor {
|
||||
bottom: 0;
|
||||
cursor: default;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 2px;
|
||||
}
|
||||
.tox-rtc-user-cursor::before {
|
||||
background-color: inherit;
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 8px;
|
||||
position: absolute;
|
||||
right: -3px;
|
||||
top: -3px;
|
||||
width: 8px;
|
||||
}
|
||||
.tox-rtc-user-cursor:hover::after {
|
||||
background-color: inherit;
|
||||
border-radius: 100px;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
content: attr(data-user);
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
left: -5px;
|
||||
min-height: 8px;
|
||||
min-width: 8px;
|
||||
padding: 0 12px;
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
white-space: nowrap;
|
||||
z-index: 1000;
|
||||
}
|
||||
.tox-rtc-user-selection--1 .tox-rtc-user-cursor {
|
||||
background-color: #2dc26b;
|
||||
}
|
||||
.tox-rtc-user-selection--2 .tox-rtc-user-cursor {
|
||||
background-color: #e03e2d;
|
||||
}
|
||||
.tox-rtc-user-selection--3 .tox-rtc-user-cursor {
|
||||
background-color: #f1c40f;
|
||||
}
|
||||
.tox-rtc-user-selection--4 .tox-rtc-user-cursor {
|
||||
background-color: #3598db;
|
||||
}
|
||||
.tox-rtc-user-selection--5 .tox-rtc-user-cursor {
|
||||
background-color: #b96ad9;
|
||||
}
|
||||
.tox-rtc-user-selection--6 .tox-rtc-user-cursor {
|
||||
background-color: #e67e23;
|
||||
}
|
||||
.tox-rtc-user-selection--7 .tox-rtc-user-cursor {
|
||||
background-color: #aaa69d;
|
||||
}
|
||||
.tox-rtc-user-selection--8 .tox-rtc-user-cursor {
|
||||
background-color: #f368e0;
|
||||
}
|
||||
.tox-rtc-remote-image {
|
||||
background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;
|
||||
border: 1px solid #ccc;
|
||||
min-height: 240px;
|
||||
min-width: 320px;
|
||||
}
|
||||
.mce-match-marker {
|
||||
background: #aaa;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::-moz-selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-content-body img[data-mce-selected],
|
||||
.mce-content-body video[data-mce-selected],
|
||||
.mce-content-body audio[data-mce-selected],
|
||||
.mce-content-body object[data-mce-selected],
|
||||
.mce-content-body embed[data-mce-selected],
|
||||
.mce-content-body table[data-mce-selected] {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body hr[data-mce-selected] {
|
||||
outline: 3px solid #b4d7ff;
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false][data-mce-selected] {
|
||||
cursor: not-allowed;
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:hover {
|
||||
outline: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-selected="inline-boundary"] {
|
||||
background-color: #b4d7ff;
|
||||
}
|
||||
.mce-content-body .mce-edit-focus {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected],
|
||||
.mce-content-body th[data-mce-selected] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,
|
||||
.mce-content-body th[data-mce-selected]::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::selection,
|
||||
.mce-content-body th[data-mce-selected]::selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected] *,
|
||||
.mce-content-body th[data-mce-selected] * {
|
||||
outline: none;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
background-color: rgba(180, 215, 255, 0.7);
|
||||
border: 1px solid rgba(180, 215, 255, 0.7);
|
||||
bottom: -1px;
|
||||
content: '';
|
||||
left: -1px;
|
||||
mix-blend-mode: multiply;
|
||||
position: absolute;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
}
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
border-color: rgba(0, 84, 180, 0.7);
|
||||
}
|
||||
}
|
||||
.mce-content-body img::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body img::selection {
|
||||
background: none;
|
||||
}
|
||||
.ephox-snooker-resizer-bar {
|
||||
background-color: #b4d7ff;
|
||||
opacity: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.ephox-snooker-resizer-cols {
|
||||
cursor: col-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-rows {
|
||||
cursor: row-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging {
|
||||
opacity: 1;
|
||||
}
|
||||
.mce-spellchecker-word {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
height: 2rem;
|
||||
}
|
||||
.mce-spellchecker-grammar {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
}
|
||||
.mce-toc {
|
||||
border: 1px solid gray;
|
||||
}
|
||||
.mce-toc h2 {
|
||||
margin: 4px;
|
||||
}
|
||||
.mce-toc li {
|
||||
list-style-type: none;
|
||||
}
|
||||
table[style*="border-width: 0px"],
|
||||
.mce-item-table:not([border]),
|
||||
.mce-item-table[border="0"],
|
||||
table[style*="border-width: 0px"] td,
|
||||
.mce-item-table:not([border]) td,
|
||||
.mce-item-table[border="0"] td,
|
||||
table[style*="border-width: 0px"] th,
|
||||
.mce-item-table:not([border]) th,
|
||||
.mce-item-table[border="0"] th,
|
||||
table[style*="border-width: 0px"] caption,
|
||||
.mce-item-table:not([border]) caption,
|
||||
.mce-item-table[border="0"] caption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks p,
|
||||
.mce-visualblocks h1,
|
||||
.mce-visualblocks h2,
|
||||
.mce-visualblocks h3,
|
||||
.mce-visualblocks h4,
|
||||
.mce-visualblocks h5,
|
||||
.mce-visualblocks h6,
|
||||
.mce-visualblocks div:not([data-mce-bogus]),
|
||||
.mce-visualblocks section,
|
||||
.mce-visualblocks article,
|
||||
.mce-visualblocks blockquote,
|
||||
.mce-visualblocks address,
|
||||
.mce-visualblocks pre,
|
||||
.mce-visualblocks figure,
|
||||
.mce-visualblocks figcaption,
|
||||
.mce-visualblocks hgroup,
|
||||
.mce-visualblocks aside,
|
||||
.mce-visualblocks ul,
|
||||
.mce-visualblocks ol,
|
||||
.mce-visualblocks dl {
|
||||
background-repeat: no-repeat;
|
||||
border: 1px dashed #bbb;
|
||||
margin-left: 3px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.mce-visualblocks p {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
|
||||
}
|
||||
.mce-visualblocks h1 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
|
||||
}
|
||||
.mce-visualblocks h2 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h3 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
|
||||
}
|
||||
.mce-visualblocks h4 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
|
||||
}
|
||||
.mce-visualblocks h5 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h6 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
|
||||
}
|
||||
.mce-visualblocks div:not([data-mce-bogus]) {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
|
||||
}
|
||||
.mce-visualblocks section {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
|
||||
}
|
||||
.mce-visualblocks article {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
|
||||
}
|
||||
.mce-visualblocks blockquote {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
|
||||
}
|
||||
.mce-visualblocks address {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
|
||||
}
|
||||
.mce-visualblocks pre {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
|
||||
}
|
||||
.mce-visualblocks figure {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
|
||||
}
|
||||
.mce-visualblocks figcaption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks hgroup {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
|
||||
}
|
||||
.mce-visualblocks aside {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
|
||||
}
|
||||
.mce-visualblocks ul {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);
|
||||
}
|
||||
.mce-visualblocks ol {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
|
||||
}
|
||||
.mce-visualblocks dl {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
|
||||
}
|
||||
.mce-visualblocks:not([dir=rtl]) p,
|
||||
.mce-visualblocks:not([dir=rtl]) h1,
|
||||
.mce-visualblocks:not([dir=rtl]) h2,
|
||||
.mce-visualblocks:not([dir=rtl]) h3,
|
||||
.mce-visualblocks:not([dir=rtl]) h4,
|
||||
.mce-visualblocks:not([dir=rtl]) h5,
|
||||
.mce-visualblocks:not([dir=rtl]) h6,
|
||||
.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),
|
||||
.mce-visualblocks:not([dir=rtl]) section,
|
||||
.mce-visualblocks:not([dir=rtl]) article,
|
||||
.mce-visualblocks:not([dir=rtl]) blockquote,
|
||||
.mce-visualblocks:not([dir=rtl]) address,
|
||||
.mce-visualblocks:not([dir=rtl]) pre,
|
||||
.mce-visualblocks:not([dir=rtl]) figure,
|
||||
.mce-visualblocks:not([dir=rtl]) figcaption,
|
||||
.mce-visualblocks:not([dir=rtl]) hgroup,
|
||||
.mce-visualblocks:not([dir=rtl]) aside,
|
||||
.mce-visualblocks:not([dir=rtl]) ul,
|
||||
.mce-visualblocks:not([dir=rtl]) ol,
|
||||
.mce-visualblocks:not([dir=rtl]) dl {
|
||||
margin-left: 3px;
|
||||
}
|
||||
.mce-visualblocks[dir=rtl] p,
|
||||
.mce-visualblocks[dir=rtl] h1,
|
||||
.mce-visualblocks[dir=rtl] h2,
|
||||
.mce-visualblocks[dir=rtl] h3,
|
||||
.mce-visualblocks[dir=rtl] h4,
|
||||
.mce-visualblocks[dir=rtl] h5,
|
||||
.mce-visualblocks[dir=rtl] h6,
|
||||
.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),
|
||||
.mce-visualblocks[dir=rtl] section,
|
||||
.mce-visualblocks[dir=rtl] article,
|
||||
.mce-visualblocks[dir=rtl] blockquote,
|
||||
.mce-visualblocks[dir=rtl] address,
|
||||
.mce-visualblocks[dir=rtl] pre,
|
||||
.mce-visualblocks[dir=rtl] figure,
|
||||
.mce-visualblocks[dir=rtl] figcaption,
|
||||
.mce-visualblocks[dir=rtl] hgroup,
|
||||
.mce-visualblocks[dir=rtl] aside,
|
||||
.mce-visualblocks[dir=rtl] ul,
|
||||
.mce-visualblocks[dir=rtl] ol,
|
||||
.mce-visualblocks[dir=rtl] dl {
|
||||
background-position-x: right;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.mce-nbsp,
|
||||
.mce-shy {
|
||||
background: #aaa;
|
||||
}
|
||||
.mce-shy::after {
|
||||
content: '-';
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,29 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
|
||||
/* Note: this file is used inside the content, so isn't part of theming */
|
||||
background-color: green;
|
||||
display: inline-block;
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
}
|
||||
body {
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
body img {
|
||||
/* this is related to the content margin */
|
||||
max-width: 96vw;
|
||||
}
|
||||
body table img {
|
||||
max-width: 95%;
|
||||
}
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,673 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
/* RESET all the things! */
|
||||
.tinymce-mobile-outer-container {
|
||||
all: initial;
|
||||
display: block;
|
||||
}
|
||||
.tinymce-mobile-outer-container * {
|
||||
border: 0;
|
||||
box-sizing: initial;
|
||||
cursor: inherit;
|
||||
float: none;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
/* TBIO-3691, stop the gray flicker on touch. */
|
||||
text-shadow: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.tinymce-mobile-icon-arrow-back::before {
|
||||
content: "\e5cd";
|
||||
}
|
||||
.tinymce-mobile-icon-image::before {
|
||||
content: "\e412";
|
||||
}
|
||||
.tinymce-mobile-icon-cancel-circle::before {
|
||||
content: "\e5c9";
|
||||
}
|
||||
.tinymce-mobile-icon-full-dot::before {
|
||||
content: "\e061";
|
||||
}
|
||||
.tinymce-mobile-icon-align-center::before {
|
||||
content: "\e234";
|
||||
}
|
||||
.tinymce-mobile-icon-align-left::before {
|
||||
content: "\e236";
|
||||
}
|
||||
.tinymce-mobile-icon-align-right::before {
|
||||
content: "\e237";
|
||||
}
|
||||
.tinymce-mobile-icon-bold::before {
|
||||
content: "\e238";
|
||||
}
|
||||
.tinymce-mobile-icon-italic::before {
|
||||
content: "\e23f";
|
||||
}
|
||||
.tinymce-mobile-icon-unordered-list::before {
|
||||
content: "\e241";
|
||||
}
|
||||
.tinymce-mobile-icon-ordered-list::before {
|
||||
content: "\e242";
|
||||
}
|
||||
.tinymce-mobile-icon-font-size::before {
|
||||
content: "\e245";
|
||||
}
|
||||
.tinymce-mobile-icon-underline::before {
|
||||
content: "\e249";
|
||||
}
|
||||
.tinymce-mobile-icon-link::before {
|
||||
content: "\e157";
|
||||
}
|
||||
.tinymce-mobile-icon-unlink::before {
|
||||
content: "\eca2";
|
||||
}
|
||||
.tinymce-mobile-icon-color::before {
|
||||
content: "\e891";
|
||||
}
|
||||
.tinymce-mobile-icon-previous::before {
|
||||
content: "\e314";
|
||||
}
|
||||
.tinymce-mobile-icon-next::before {
|
||||
content: "\e315";
|
||||
}
|
||||
.tinymce-mobile-icon-large-font::before,
|
||||
.tinymce-mobile-icon-style-formats::before {
|
||||
content: "\e264";
|
||||
}
|
||||
.tinymce-mobile-icon-undo::before {
|
||||
content: "\e166";
|
||||
}
|
||||
.tinymce-mobile-icon-redo::before {
|
||||
content: "\e15a";
|
||||
}
|
||||
.tinymce-mobile-icon-removeformat::before {
|
||||
content: "\e239";
|
||||
}
|
||||
.tinymce-mobile-icon-small-font::before {
|
||||
content: "\e906";
|
||||
}
|
||||
.tinymce-mobile-icon-readonly-back::before,
|
||||
.tinymce-mobile-format-matches::after {
|
||||
content: "\e5ca";
|
||||
}
|
||||
.tinymce-mobile-icon-small-heading::before {
|
||||
content: "small";
|
||||
}
|
||||
.tinymce-mobile-icon-large-heading::before {
|
||||
content: "large";
|
||||
}
|
||||
.tinymce-mobile-icon-small-heading::before,
|
||||
.tinymce-mobile-icon-large-heading::before {
|
||||
font-family: sans-serif;
|
||||
font-size: 80%;
|
||||
}
|
||||
.tinymce-mobile-mask-edit-icon::before {
|
||||
content: "\e254";
|
||||
}
|
||||
.tinymce-mobile-icon-back::before {
|
||||
content: "\e5c4";
|
||||
}
|
||||
.tinymce-mobile-icon-heading::before {
|
||||
/* TODO: Translate */
|
||||
content: "Headings";
|
||||
font-family: sans-serif;
|
||||
font-size: 80%;
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-icon-h1::before {
|
||||
content: "H1";
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-icon-h2::before {
|
||||
content: "H2";
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-icon-h3::before {
|
||||
content: "H3";
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
background: rgba(51, 51, 51, 0.5);
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container {
|
||||
align-items: center;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
height: 2.1em;
|
||||
width: 2.1em;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
font-size: 1em;
|
||||
}
|
||||
@media only screen and (min-device-width:700px) {
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
height: 2.1em;
|
||||
width: 2.1em;
|
||||
background-color: white;
|
||||
color: #207ab7;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before {
|
||||
content: "\e900";
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon {
|
||||
z-index: 2;
|
||||
}
|
||||
.tinymce-mobile-android-container.tinymce-mobile-android-maximized {
|
||||
background: #ffffff;
|
||||
border: none;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) {
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe {
|
||||
display: flex !important;
|
||||
flex-grow: 1;
|
||||
height: auto !important;
|
||||
}
|
||||
.tinymce-mobile-android-scroll-reload {
|
||||
overflow: hidden;
|
||||
}
|
||||
:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar {
|
||||
margin-top: 23px;
|
||||
}
|
||||
.tinymce-mobile-toolstrip {
|
||||
background: #fff;
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
z-index: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar {
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
height: 2.5em;
|
||||
width: 100%;
|
||||
/* Make it no larger than the toolstrip, so that it needs to scroll */
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container {
|
||||
background: #f44336;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item {
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 80%;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected {
|
||||
background: #c8cbcf;
|
||||
color: #cccccc;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type {
|
||||
background: #207ab7;
|
||||
color: #eceff1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar {
|
||||
/* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
padding-bottom: 0.4em;
|
||||
padding-top: 0.4em;
|
||||
/* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */
|
||||
/* For widgets like the colour picker, use the whole height */
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog {
|
||||
display: flex;
|
||||
min-height: 1.5em;
|
||||
overflow: hidden;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input {
|
||||
font-family: Sans-serif;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x {
|
||||
-ms-grid-row-align: center;
|
||||
align-self: center;
|
||||
background: inherit;
|
||||
border: none;
|
||||
border-radius: 50%;
|
||||
color: #888;
|
||||
font-size: 0.6em;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
padding-right: 2px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x {
|
||||
display: none;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before {
|
||||
visibility: hidden;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item {
|
||||
color: #cccccc;
|
||||
font-size: 10px;
|
||||
line-height: 10px;
|
||||
margin: 0 2px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active {
|
||||
color: #c8cbcf;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before {
|
||||
margin-left: 0.5em;
|
||||
margin-right: 0.9em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before {
|
||||
margin-left: 0.9em;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding: 0.28em 0;
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line {
|
||||
background: #cccccc;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient {
|
||||
background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%);
|
||||
display: flex;
|
||||
flex: 1;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black {
|
||||
/* Not part of theming */
|
||||
background: black;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
width: 1.2em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white {
|
||||
/* Not part of theming */
|
||||
background: white;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
width: 1.2em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb {
|
||||
/* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave
|
||||
* out these values, then it shows the thumb at the top of the spectrum. This is probably because it is
|
||||
* absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without
|
||||
* this approach.
|
||||
*/
|
||||
align-items: center;
|
||||
background-clip: padding-box;
|
||||
background-color: #455a64;
|
||||
border: 0.5em solid rgba(136, 136, 136, 0);
|
||||
border-radius: 3em;
|
||||
bottom: 0;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
height: 0.5em;
|
||||
justify-content: center;
|
||||
left: -10px;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1);
|
||||
width: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active {
|
||||
border: 0.5em solid rgba(136, 136, 136, 0.39);
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) {
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container {
|
||||
display: flex;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input {
|
||||
background: #ffffff;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
color: #455a64;
|
||||
flex-grow: 1;
|
||||
font-size: 0.85em;
|
||||
padding-bottom: 0.1em;
|
||||
padding-left: 5px;
|
||||
padding-top: 0.1em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder {
|
||||
/* WebKit, Blink, Edge */
|
||||
color: #888;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder {
|
||||
/* WebKit, Blink, Edge */
|
||||
color: #888;
|
||||
}
|
||||
/* dropup */
|
||||
.tinymce-mobile-dropup {
|
||||
background: white;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking {
|
||||
transition: height 0.3s ease-out;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-growing {
|
||||
transition: height 0.3s ease-in;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-closed {
|
||||
flex-grow: 0;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) {
|
||||
flex-grow: 1;
|
||||
}
|
||||
/* TODO min-height for device size and orientation */
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
|
||||
min-height: 200px;
|
||||
}
|
||||
@media only screen and (orientation: landscape) {
|
||||
.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
|
||||
min-height: 200px;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) {
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
|
||||
min-height: 150px;
|
||||
}
|
||||
}
|
||||
/* styles menu */
|
||||
.tinymce-mobile-styles-menu {
|
||||
font-family: sans-serif;
|
||||
outline: 4px solid black;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-styles-menu [role="menu"] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-styles-menu [role="menu"].transitioning {
|
||||
transition: transform 0.5s ease-in-out;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item {
|
||||
border-bottom: 1px solid #ddd;
|
||||
color: #455a64;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
padding: 1em 1em;
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before {
|
||||
color: #455a64;
|
||||
content: "\e314";
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after {
|
||||
color: #455a64;
|
||||
content: "\e315";
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after {
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator,
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser {
|
||||
align-items: center;
|
||||
background: #fff;
|
||||
border-top: #455a64;
|
||||
color: #455a64;
|
||||
display: flex;
|
||||
min-height: 2.5em;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state],
|
||||
.tinymce-mobile-styles-menu [data-transitioning-state="before"] {
|
||||
transform: translate(-100%);
|
||||
}
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state],
|
||||
.tinymce-mobile-styles-menu [data-transitioning-state="current"] {
|
||||
transform: translate(0%);
|
||||
}
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state],
|
||||
.tinymce-mobile-styles-menu [data-transitioning-state="after"] {
|
||||
transform: translate(100%);
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'tinymce-mobile';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff');
|
||||
}
|
||||
@media (min-device-width: 700px) {
|
||||
.tinymce-mobile-outer-container,
|
||||
.tinymce-mobile-outer-container input {
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
||||
@media (max-device-width: 700px) {
|
||||
.tinymce-mobile-outer-container,
|
||||
.tinymce-mobile-outer-container input {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
.tinymce-mobile-icon {
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
}
|
||||
.mixin-flex-and-centre {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.mixin-flex-bar {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe {
|
||||
background-color: #fff;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon {
|
||||
/* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */
|
||||
background-color: #207ab7;
|
||||
border-radius: 50%;
|
||||
bottom: 1em;
|
||||
color: white;
|
||||
font-size: 1em;
|
||||
height: 2.1em;
|
||||
position: fixed;
|
||||
right: 2em;
|
||||
width: 2.1em;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
@media only screen and (min-device-width:700px) {
|
||||
.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
}
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket {
|
||||
height: 300px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe {
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip {
|
||||
display: none;
|
||||
}
|
||||
/*
|
||||
Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets
|
||||
increased and the whole body becomes scrollable. It's important!
|
||||
*/
|
||||
input[type="file"]::-webkit-file-upload-button {
|
||||
display: none;
|
||||
}
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) {
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon {
|
||||
bottom: 50%;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1,37 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body.tox-dialog__disable-scroll {
|
||||
overflow: hidden;
|
||||
}
|
||||
.tox-fullscreen {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
-ms-scroll-chaining: none;
|
||||
overscroll-behavior: none;
|
||||
padding: 0;
|
||||
touch-action: pinch-zoom;
|
||||
width: 100%;
|
||||
}
|
||||
.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
|
||||
display: none;
|
||||
}
|
||||
.tox.tox-tinymce.tox-fullscreen,
|
||||
.tox-shadowhost.tox-fullscreen {
|
||||
left: 0;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
z-index: 1200;
|
||||
}
|
||||
.tox.tox-tinymce.tox-fullscreen {
|
||||
background-color: transparent;
|
||||
}
|
||||
.tox-fullscreen .tox.tox-tinymce-aux,
|
||||
.tox-fullscreen ~ .tox.tox-tinymce-aux {
|
||||
z-index: 1201;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
|
@ -1,732 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
cursor: default;
|
||||
display: inline-block;
|
||||
height: 12px !important;
|
||||
padding: 0 2px;
|
||||
-webkit-user-modify: read-only;
|
||||
-moz-user-modify: read-only;
|
||||
-webkit-user-select: all;
|
||||
-moz-user-select: all;
|
||||
-ms-user-select: all;
|
||||
user-select: all;
|
||||
width: 8px !important;
|
||||
}
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected] {
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.tox-comments-visible .tox-comment {
|
||||
background-color: #fff0b7;
|
||||
}
|
||||
.tox-comments-visible .tox-comment--active {
|
||||
background-color: #ffe168;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden) {
|
||||
list-style: none;
|
||||
margin: 0.25em 0;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
cursor: pointer;
|
||||
height: 1em;
|
||||
margin-left: -1.5em;
|
||||
margin-top: 0.125em;
|
||||
position: absolute;
|
||||
width: 1em;
|
||||
}
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
}
|
||||
[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
margin-left: 0;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
/* stylelint-disable */
|
||||
/* http://prismjs.com/ */
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
font-size: 1em;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
-moz-tab-size: 4;
|
||||
tab-size: 4;
|
||||
-webkit-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
pre[class*="language-"]::-moz-selection,
|
||||
pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection,
|
||||
code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
pre[class*="language-"]::selection,
|
||||
pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection,
|
||||
code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
@media print {
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: 0.5em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #f5f2f0;
|
||||
}
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: 0.1em;
|
||||
border-radius: 0.3em;
|
||||
white-space: normal;
|
||||
}
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
.token.punctuation {
|
||||
color: #999;
|
||||
}
|
||||
.namespace {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #905;
|
||||
}
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #690;
|
||||
}
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #9a6e3a;
|
||||
background: hsla(0, 0%, 100%, 0.5);
|
||||
}
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #07a;
|
||||
}
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #DD4A68;
|
||||
}
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #e90;
|
||||
}
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
||||
/* stylelint-enable */
|
||||
.mce-content-body {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret {
|
||||
background-color: black;
|
||||
background-color: currentColor;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret-hidden {
|
||||
display: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-caret] {
|
||||
left: -1000px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: auto;
|
||||
top: 0;
|
||||
}
|
||||
.mce-content-body .mce-offscreen-selection {
|
||||
left: -2000000px;
|
||||
max-width: 1000000px;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] {
|
||||
cursor: default;
|
||||
}
|
||||
.mce-content-body *[contentEditable=true] {
|
||||
cursor: text;
|
||||
}
|
||||
.tox-cursor-format-painter {
|
||||
cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default;
|
||||
}
|
||||
.mce-content-body figure.align-left {
|
||||
float: left;
|
||||
}
|
||||
.mce-content-body figure.align-right {
|
||||
float: right;
|
||||
}
|
||||
.mce-content-body figure.image.align-center {
|
||||
display: table;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.mce-preview-object {
|
||||
border: 1px solid gray;
|
||||
display: inline-block;
|
||||
line-height: 0;
|
||||
margin: 0 2px 0 2px;
|
||||
position: relative;
|
||||
}
|
||||
.mce-preview-object .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.mce-object {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
border: 1px dashed #aaa;
|
||||
}
|
||||
.mce-pagebreak {
|
||||
border: 1px dashed #aaa;
|
||||
cursor: default;
|
||||
display: block;
|
||||
height: 5px;
|
||||
margin-top: 15px;
|
||||
page-break-before: always;
|
||||
width: 100%;
|
||||
}
|
||||
@media print {
|
||||
.mce-pagebreak {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
.tiny-pageembed .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.tiny-pageembed {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.tiny-pageembed--21by9,
|
||||
.tiny-pageembed--16by9,
|
||||
.tiny-pageembed--4by3,
|
||||
.tiny-pageembed--1by1 {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 {
|
||||
padding-top: 42.857143%;
|
||||
}
|
||||
.tiny-pageembed--16by9 {
|
||||
padding-top: 56.25%;
|
||||
}
|
||||
.tiny-pageembed--4by3 {
|
||||
padding-top: 75%;
|
||||
}
|
||||
.tiny-pageembed--1by1 {
|
||||
padding-top: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 iframe,
|
||||
.tiny-pageembed--16by9 iframe,
|
||||
.tiny-pageembed--4by3 iframe,
|
||||
.tiny-pageembed--1by1 iframe {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
color: rgba(34, 47, 62, 0.7);
|
||||
content: attr(data-mce-placeholder);
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
left: 1px;
|
||||
}
|
||||
.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
right: 1px;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle {
|
||||
background-color: #4099ff;
|
||||
border-color: #4099ff;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
box-sizing: border-box;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
z-index: 1298;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:hover {
|
||||
background-color: #4099ff;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body .mce-resize-backdrop {
|
||||
z-index: 10000;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable {
|
||||
cursor: default;
|
||||
opacity: 0.5;
|
||||
outline: 1px dashed black;
|
||||
position: absolute;
|
||||
z-index: 10001;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns th,
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns td {
|
||||
border: 0;
|
||||
}
|
||||
.mce-content-body .mce-resize-helper {
|
||||
background: #555;
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
border: 1px;
|
||||
border-radius: 3px;
|
||||
color: white;
|
||||
display: none;
|
||||
font-family: sans-serif;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
margin: 5px 10px;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
z-index: 10002;
|
||||
}
|
||||
.tox-rtc-user-selection {
|
||||
position: relative;
|
||||
}
|
||||
.tox-rtc-user-cursor {
|
||||
bottom: 0;
|
||||
cursor: default;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 2px;
|
||||
}
|
||||
.tox-rtc-user-cursor::before {
|
||||
background-color: inherit;
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 8px;
|
||||
position: absolute;
|
||||
right: -3px;
|
||||
top: -3px;
|
||||
width: 8px;
|
||||
}
|
||||
.tox-rtc-user-cursor:hover::after {
|
||||
background-color: inherit;
|
||||
border-radius: 100px;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
content: attr(data-user);
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
left: -5px;
|
||||
min-height: 8px;
|
||||
min-width: 8px;
|
||||
padding: 0 12px;
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
white-space: nowrap;
|
||||
z-index: 1000;
|
||||
}
|
||||
.tox-rtc-user-selection--1 .tox-rtc-user-cursor {
|
||||
background-color: #2dc26b;
|
||||
}
|
||||
.tox-rtc-user-selection--2 .tox-rtc-user-cursor {
|
||||
background-color: #e03e2d;
|
||||
}
|
||||
.tox-rtc-user-selection--3 .tox-rtc-user-cursor {
|
||||
background-color: #f1c40f;
|
||||
}
|
||||
.tox-rtc-user-selection--4 .tox-rtc-user-cursor {
|
||||
background-color: #3598db;
|
||||
}
|
||||
.tox-rtc-user-selection--5 .tox-rtc-user-cursor {
|
||||
background-color: #b96ad9;
|
||||
}
|
||||
.tox-rtc-user-selection--6 .tox-rtc-user-cursor {
|
||||
background-color: #e67e23;
|
||||
}
|
||||
.tox-rtc-user-selection--7 .tox-rtc-user-cursor {
|
||||
background-color: #aaa69d;
|
||||
}
|
||||
.tox-rtc-user-selection--8 .tox-rtc-user-cursor {
|
||||
background-color: #f368e0;
|
||||
}
|
||||
.tox-rtc-remote-image {
|
||||
background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;
|
||||
border: 1px solid #ccc;
|
||||
min-height: 240px;
|
||||
min-width: 320px;
|
||||
}
|
||||
.mce-match-marker {
|
||||
background: #aaa;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::-moz-selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-content-body img[data-mce-selected],
|
||||
.mce-content-body video[data-mce-selected],
|
||||
.mce-content-body audio[data-mce-selected],
|
||||
.mce-content-body object[data-mce-selected],
|
||||
.mce-content-body embed[data-mce-selected],
|
||||
.mce-content-body table[data-mce-selected] {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body hr[data-mce-selected] {
|
||||
outline: 3px solid #b4d7ff;
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false][data-mce-selected] {
|
||||
cursor: not-allowed;
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:hover {
|
||||
outline: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-selected="inline-boundary"] {
|
||||
background-color: #b4d7ff;
|
||||
}
|
||||
.mce-content-body .mce-edit-focus {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected],
|
||||
.mce-content-body th[data-mce-selected] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,
|
||||
.mce-content-body th[data-mce-selected]::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::selection,
|
||||
.mce-content-body th[data-mce-selected]::selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected] *,
|
||||
.mce-content-body th[data-mce-selected] * {
|
||||
outline: none;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
background-color: rgba(180, 215, 255, 0.7);
|
||||
border: 1px solid rgba(180, 215, 255, 0.7);
|
||||
bottom: -1px;
|
||||
content: '';
|
||||
left: -1px;
|
||||
mix-blend-mode: multiply;
|
||||
position: absolute;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
}
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
border-color: rgba(0, 84, 180, 0.7);
|
||||
}
|
||||
}
|
||||
.mce-content-body img::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body img::selection {
|
||||
background: none;
|
||||
}
|
||||
.ephox-snooker-resizer-bar {
|
||||
background-color: #b4d7ff;
|
||||
opacity: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.ephox-snooker-resizer-cols {
|
||||
cursor: col-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-rows {
|
||||
cursor: row-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging {
|
||||
opacity: 1;
|
||||
}
|
||||
.mce-spellchecker-word {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
height: 2rem;
|
||||
}
|
||||
.mce-spellchecker-grammar {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
}
|
||||
.mce-toc {
|
||||
border: 1px solid gray;
|
||||
}
|
||||
.mce-toc h2 {
|
||||
margin: 4px;
|
||||
}
|
||||
.mce-toc li {
|
||||
list-style-type: none;
|
||||
}
|
||||
table[style*="border-width: 0px"],
|
||||
.mce-item-table:not([border]),
|
||||
.mce-item-table[border="0"],
|
||||
table[style*="border-width: 0px"] td,
|
||||
.mce-item-table:not([border]) td,
|
||||
.mce-item-table[border="0"] td,
|
||||
table[style*="border-width: 0px"] th,
|
||||
.mce-item-table:not([border]) th,
|
||||
.mce-item-table[border="0"] th,
|
||||
table[style*="border-width: 0px"] caption,
|
||||
.mce-item-table:not([border]) caption,
|
||||
.mce-item-table[border="0"] caption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks p,
|
||||
.mce-visualblocks h1,
|
||||
.mce-visualblocks h2,
|
||||
.mce-visualblocks h3,
|
||||
.mce-visualblocks h4,
|
||||
.mce-visualblocks h5,
|
||||
.mce-visualblocks h6,
|
||||
.mce-visualblocks div:not([data-mce-bogus]),
|
||||
.mce-visualblocks section,
|
||||
.mce-visualblocks article,
|
||||
.mce-visualblocks blockquote,
|
||||
.mce-visualblocks address,
|
||||
.mce-visualblocks pre,
|
||||
.mce-visualblocks figure,
|
||||
.mce-visualblocks figcaption,
|
||||
.mce-visualblocks hgroup,
|
||||
.mce-visualblocks aside,
|
||||
.mce-visualblocks ul,
|
||||
.mce-visualblocks ol,
|
||||
.mce-visualblocks dl {
|
||||
background-repeat: no-repeat;
|
||||
border: 1px dashed #bbb;
|
||||
margin-left: 3px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.mce-visualblocks p {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
|
||||
}
|
||||
.mce-visualblocks h1 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
|
||||
}
|
||||
.mce-visualblocks h2 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h3 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
|
||||
}
|
||||
.mce-visualblocks h4 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
|
||||
}
|
||||
.mce-visualblocks h5 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h6 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
|
||||
}
|
||||
.mce-visualblocks div:not([data-mce-bogus]) {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
|
||||
}
|
||||
.mce-visualblocks section {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
|
||||
}
|
||||
.mce-visualblocks article {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
|
||||
}
|
||||
.mce-visualblocks blockquote {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
|
||||
}
|
||||
.mce-visualblocks address {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
|
||||
}
|
||||
.mce-visualblocks pre {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
|
||||
}
|
||||
.mce-visualblocks figure {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
|
||||
}
|
||||
.mce-visualblocks figcaption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks hgroup {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
|
||||
}
|
||||
.mce-visualblocks aside {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
|
||||
}
|
||||
.mce-visualblocks ul {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);
|
||||
}
|
||||
.mce-visualblocks ol {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
|
||||
}
|
||||
.mce-visualblocks dl {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
|
||||
}
|
||||
.mce-visualblocks:not([dir=rtl]) p,
|
||||
.mce-visualblocks:not([dir=rtl]) h1,
|
||||
.mce-visualblocks:not([dir=rtl]) h2,
|
||||
.mce-visualblocks:not([dir=rtl]) h3,
|
||||
.mce-visualblocks:not([dir=rtl]) h4,
|
||||
.mce-visualblocks:not([dir=rtl]) h5,
|
||||
.mce-visualblocks:not([dir=rtl]) h6,
|
||||
.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),
|
||||
.mce-visualblocks:not([dir=rtl]) section,
|
||||
.mce-visualblocks:not([dir=rtl]) article,
|
||||
.mce-visualblocks:not([dir=rtl]) blockquote,
|
||||
.mce-visualblocks:not([dir=rtl]) address,
|
||||
.mce-visualblocks:not([dir=rtl]) pre,
|
||||
.mce-visualblocks:not([dir=rtl]) figure,
|
||||
.mce-visualblocks:not([dir=rtl]) figcaption,
|
||||
.mce-visualblocks:not([dir=rtl]) hgroup,
|
||||
.mce-visualblocks:not([dir=rtl]) aside,
|
||||
.mce-visualblocks:not([dir=rtl]) ul,
|
||||
.mce-visualblocks:not([dir=rtl]) ol,
|
||||
.mce-visualblocks:not([dir=rtl]) dl {
|
||||
margin-left: 3px;
|
||||
}
|
||||
.mce-visualblocks[dir=rtl] p,
|
||||
.mce-visualblocks[dir=rtl] h1,
|
||||
.mce-visualblocks[dir=rtl] h2,
|
||||
.mce-visualblocks[dir=rtl] h3,
|
||||
.mce-visualblocks[dir=rtl] h4,
|
||||
.mce-visualblocks[dir=rtl] h5,
|
||||
.mce-visualblocks[dir=rtl] h6,
|
||||
.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),
|
||||
.mce-visualblocks[dir=rtl] section,
|
||||
.mce-visualblocks[dir=rtl] article,
|
||||
.mce-visualblocks[dir=rtl] blockquote,
|
||||
.mce-visualblocks[dir=rtl] address,
|
||||
.mce-visualblocks[dir=rtl] pre,
|
||||
.mce-visualblocks[dir=rtl] figure,
|
||||
.mce-visualblocks[dir=rtl] figcaption,
|
||||
.mce-visualblocks[dir=rtl] hgroup,
|
||||
.mce-visualblocks[dir=rtl] aside,
|
||||
.mce-visualblocks[dir=rtl] ul,
|
||||
.mce-visualblocks[dir=rtl] ol,
|
||||
.mce-visualblocks[dir=rtl] dl {
|
||||
background-position-x: right;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.mce-nbsp,
|
||||
.mce-shy {
|
||||
background: #aaa;
|
||||
}
|
||||
.mce-shy::after {
|
||||
content: '-';
|
||||
}
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
|
@ -1,726 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
cursor: default;
|
||||
display: inline-block;
|
||||
height: 12px !important;
|
||||
padding: 0 2px;
|
||||
-webkit-user-modify: read-only;
|
||||
-moz-user-modify: read-only;
|
||||
-webkit-user-select: all;
|
||||
-moz-user-select: all;
|
||||
-ms-user-select: all;
|
||||
user-select: all;
|
||||
width: 8px !important;
|
||||
}
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected] {
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.tox-comments-visible .tox-comment {
|
||||
background-color: #fff0b7;
|
||||
}
|
||||
.tox-comments-visible .tox-comment--active {
|
||||
background-color: #ffe168;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden) {
|
||||
list-style: none;
|
||||
margin: 0.25em 0;
|
||||
}
|
||||
.tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
cursor: pointer;
|
||||
height: 1em;
|
||||
margin-left: -1.5em;
|
||||
margin-top: 0.125em;
|
||||
position: absolute;
|
||||
width: 1em;
|
||||
}
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before {
|
||||
content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");
|
||||
}
|
||||
[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before {
|
||||
margin-left: 0;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
/* stylelint-disable */
|
||||
/* http://prismjs.com/ */
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
font-size: 1em;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
-moz-tab-size: 4;
|
||||
tab-size: 4;
|
||||
-webkit-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
pre[class*="language-"]::-moz-selection,
|
||||
pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection,
|
||||
code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
pre[class*="language-"]::selection,
|
||||
pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection,
|
||||
code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
@media print {
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: 0.5em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #f5f2f0;
|
||||
}
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: 0.1em;
|
||||
border-radius: 0.3em;
|
||||
white-space: normal;
|
||||
}
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
.token.punctuation {
|
||||
color: #999;
|
||||
}
|
||||
.namespace {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #905;
|
||||
}
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #690;
|
||||
}
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #9a6e3a;
|
||||
background: hsla(0, 0%, 100%, 0.5);
|
||||
}
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #07a;
|
||||
}
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #DD4A68;
|
||||
}
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #e90;
|
||||
}
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
||||
/* stylelint-enable */
|
||||
.mce-content-body {
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret {
|
||||
background-color: black;
|
||||
background-color: currentColor;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body .mce-visual-caret-hidden {
|
||||
display: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-caret] {
|
||||
left: -1000px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: auto;
|
||||
top: 0;
|
||||
}
|
||||
.mce-content-body .mce-offscreen-selection {
|
||||
left: -2000000px;
|
||||
max-width: 1000000px;
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] {
|
||||
cursor: default;
|
||||
}
|
||||
.mce-content-body *[contentEditable=true] {
|
||||
cursor: text;
|
||||
}
|
||||
.tox-cursor-format-painter {
|
||||
cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default;
|
||||
}
|
||||
.mce-content-body figure.align-left {
|
||||
float: left;
|
||||
}
|
||||
.mce-content-body figure.align-right {
|
||||
float: right;
|
||||
}
|
||||
.mce-content-body figure.image.align-center {
|
||||
display: table;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.mce-preview-object {
|
||||
border: 1px solid gray;
|
||||
display: inline-block;
|
||||
line-height: 0;
|
||||
margin: 0 2px 0 2px;
|
||||
position: relative;
|
||||
}
|
||||
.mce-preview-object .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.mce-object {
|
||||
background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;
|
||||
border: 1px dashed #aaa;
|
||||
}
|
||||
.mce-pagebreak {
|
||||
border: 1px dashed #aaa;
|
||||
cursor: default;
|
||||
display: block;
|
||||
height: 5px;
|
||||
margin-top: 15px;
|
||||
page-break-before: always;
|
||||
width: 100%;
|
||||
}
|
||||
@media print {
|
||||
.mce-pagebreak {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
.tiny-pageembed .mce-shim {
|
||||
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim {
|
||||
display: none;
|
||||
}
|
||||
.tiny-pageembed {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.tiny-pageembed--21by9,
|
||||
.tiny-pageembed--16by9,
|
||||
.tiny-pageembed--4by3,
|
||||
.tiny-pageembed--1by1 {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 {
|
||||
padding-top: 42.857143%;
|
||||
}
|
||||
.tiny-pageembed--16by9 {
|
||||
padding-top: 56.25%;
|
||||
}
|
||||
.tiny-pageembed--4by3 {
|
||||
padding-top: 75%;
|
||||
}
|
||||
.tiny-pageembed--1by1 {
|
||||
padding-top: 100%;
|
||||
}
|
||||
.tiny-pageembed--21by9 iframe,
|
||||
.tiny-pageembed--16by9 iframe,
|
||||
.tiny-pageembed--4by3 iframe,
|
||||
.tiny-pageembed--1by1 iframe {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
color: rgba(34, 47, 62, 0.7);
|
||||
content: attr(data-mce-placeholder);
|
||||
position: absolute;
|
||||
}
|
||||
.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
left: 1px;
|
||||
}
|
||||
.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before {
|
||||
right: 1px;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle {
|
||||
background-color: #4099ff;
|
||||
border-color: #4099ff;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
box-sizing: border-box;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
width: 10px;
|
||||
z-index: 1298;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:hover {
|
||||
background-color: #4099ff;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3) {
|
||||
cursor: nwse-resize;
|
||||
}
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4) {
|
||||
cursor: nesw-resize;
|
||||
}
|
||||
.mce-content-body .mce-resize-backdrop {
|
||||
z-index: 10000;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable {
|
||||
cursor: default;
|
||||
opacity: 0.5;
|
||||
outline: 1px dashed black;
|
||||
position: absolute;
|
||||
z-index: 10001;
|
||||
}
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns th,
|
||||
.mce-content-body .mce-clonedresizable.mce-resizetable-columns td {
|
||||
border: 0;
|
||||
}
|
||||
.mce-content-body .mce-resize-helper {
|
||||
background: #555;
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
border: 1px;
|
||||
border-radius: 3px;
|
||||
color: white;
|
||||
display: none;
|
||||
font-family: sans-serif;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
margin: 5px 10px;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
z-index: 10002;
|
||||
}
|
||||
.tox-rtc-user-selection {
|
||||
position: relative;
|
||||
}
|
||||
.tox-rtc-user-cursor {
|
||||
bottom: 0;
|
||||
cursor: default;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 2px;
|
||||
}
|
||||
.tox-rtc-user-cursor::before {
|
||||
background-color: inherit;
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 8px;
|
||||
position: absolute;
|
||||
right: -3px;
|
||||
top: -3px;
|
||||
width: 8px;
|
||||
}
|
||||
.tox-rtc-user-cursor:hover::after {
|
||||
background-color: inherit;
|
||||
border-radius: 100px;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
content: attr(data-user);
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
left: -5px;
|
||||
min-height: 8px;
|
||||
min-width: 8px;
|
||||
padding: 0 12px;
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
white-space: nowrap;
|
||||
z-index: 1000;
|
||||
}
|
||||
.tox-rtc-user-selection--1 .tox-rtc-user-cursor {
|
||||
background-color: #2dc26b;
|
||||
}
|
||||
.tox-rtc-user-selection--2 .tox-rtc-user-cursor {
|
||||
background-color: #e03e2d;
|
||||
}
|
||||
.tox-rtc-user-selection--3 .tox-rtc-user-cursor {
|
||||
background-color: #f1c40f;
|
||||
}
|
||||
.tox-rtc-user-selection--4 .tox-rtc-user-cursor {
|
||||
background-color: #3598db;
|
||||
}
|
||||
.tox-rtc-user-selection--5 .tox-rtc-user-cursor {
|
||||
background-color: #b96ad9;
|
||||
}
|
||||
.tox-rtc-user-selection--6 .tox-rtc-user-cursor {
|
||||
background-color: #e67e23;
|
||||
}
|
||||
.tox-rtc-user-selection--7 .tox-rtc-user-cursor {
|
||||
background-color: #aaa69d;
|
||||
}
|
||||
.tox-rtc-user-selection--8 .tox-rtc-user-cursor {
|
||||
background-color: #f368e0;
|
||||
}
|
||||
.tox-rtc-remote-image {
|
||||
background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;
|
||||
border: 1px solid #ccc;
|
||||
min-height: 240px;
|
||||
min-width: 320px;
|
||||
}
|
||||
.mce-match-marker {
|
||||
background: #aaa;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::-moz-selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-match-marker-selected::selection {
|
||||
background: #39f;
|
||||
color: #fff;
|
||||
}
|
||||
.mce-content-body img[data-mce-selected],
|
||||
.mce-content-body video[data-mce-selected],
|
||||
.mce-content-body audio[data-mce-selected],
|
||||
.mce-content-body object[data-mce-selected],
|
||||
.mce-content-body embed[data-mce-selected],
|
||||
.mce-content-body table[data-mce-selected] {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body hr[data-mce-selected] {
|
||||
outline: 3px solid #b4d7ff;
|
||||
outline-offset: 1px;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body *[contentEditable=false][data-mce-selected] {
|
||||
cursor: not-allowed;
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,
|
||||
.mce-content-body.mce-content-readonly *[contentEditable=true]:hover {
|
||||
outline: none;
|
||||
}
|
||||
.mce-content-body *[data-mce-selected="inline-boundary"] {
|
||||
background-color: #b4d7ff;
|
||||
}
|
||||
.mce-content-body .mce-edit-focus {
|
||||
outline: 3px solid #b4d7ff;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected],
|
||||
.mce-content-body th[data-mce-selected] {
|
||||
position: relative;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,
|
||||
.mce-content-body th[data-mce-selected]::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::selection,
|
||||
.mce-content-body th[data-mce-selected]::selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected] *,
|
||||
.mce-content-body th[data-mce-selected] * {
|
||||
outline: none;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
background-color: rgba(180, 215, 255, 0.7);
|
||||
border: 1px solid rgba(180, 215, 255, 0.7);
|
||||
bottom: -1px;
|
||||
content: '';
|
||||
left: -1px;
|
||||
mix-blend-mode: multiply;
|
||||
position: absolute;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
}
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.mce-content-body td[data-mce-selected]::after,
|
||||
.mce-content-body th[data-mce-selected]::after {
|
||||
border-color: rgba(0, 84, 180, 0.7);
|
||||
}
|
||||
}
|
||||
.mce-content-body img::-moz-selection {
|
||||
background: none;
|
||||
}
|
||||
.mce-content-body img::selection {
|
||||
background: none;
|
||||
}
|
||||
.ephox-snooker-resizer-bar {
|
||||
background-color: #b4d7ff;
|
||||
opacity: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.ephox-snooker-resizer-cols {
|
||||
cursor: col-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-rows {
|
||||
cursor: row-resize;
|
||||
}
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging {
|
||||
opacity: 1;
|
||||
}
|
||||
.mce-spellchecker-word {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
height: 2rem;
|
||||
}
|
||||
.mce-spellchecker-grammar {
|
||||
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");
|
||||
background-position: 0 calc(100% + 1px);
|
||||
background-repeat: repeat-x;
|
||||
background-size: auto 6px;
|
||||
cursor: default;
|
||||
}
|
||||
.mce-toc {
|
||||
border: 1px solid gray;
|
||||
}
|
||||
.mce-toc h2 {
|
||||
margin: 4px;
|
||||
}
|
||||
.mce-toc li {
|
||||
list-style-type: none;
|
||||
}
|
||||
table[style*="border-width: 0px"],
|
||||
.mce-item-table:not([border]),
|
||||
.mce-item-table[border="0"],
|
||||
table[style*="border-width: 0px"] td,
|
||||
.mce-item-table:not([border]) td,
|
||||
.mce-item-table[border="0"] td,
|
||||
table[style*="border-width: 0px"] th,
|
||||
.mce-item-table:not([border]) th,
|
||||
.mce-item-table[border="0"] th,
|
||||
table[style*="border-width: 0px"] caption,
|
||||
.mce-item-table:not([border]) caption,
|
||||
.mce-item-table[border="0"] caption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks p,
|
||||
.mce-visualblocks h1,
|
||||
.mce-visualblocks h2,
|
||||
.mce-visualblocks h3,
|
||||
.mce-visualblocks h4,
|
||||
.mce-visualblocks h5,
|
||||
.mce-visualblocks h6,
|
||||
.mce-visualblocks div:not([data-mce-bogus]),
|
||||
.mce-visualblocks section,
|
||||
.mce-visualblocks article,
|
||||
.mce-visualblocks blockquote,
|
||||
.mce-visualblocks address,
|
||||
.mce-visualblocks pre,
|
||||
.mce-visualblocks figure,
|
||||
.mce-visualblocks figcaption,
|
||||
.mce-visualblocks hgroup,
|
||||
.mce-visualblocks aside,
|
||||
.mce-visualblocks ul,
|
||||
.mce-visualblocks ol,
|
||||
.mce-visualblocks dl {
|
||||
background-repeat: no-repeat;
|
||||
border: 1px dashed #bbb;
|
||||
margin-left: 3px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.mce-visualblocks p {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
|
||||
}
|
||||
.mce-visualblocks h1 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
|
||||
}
|
||||
.mce-visualblocks h2 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h3 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
|
||||
}
|
||||
.mce-visualblocks h4 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
|
||||
}
|
||||
.mce-visualblocks h5 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
|
||||
}
|
||||
.mce-visualblocks h6 {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
|
||||
}
|
||||
.mce-visualblocks div:not([data-mce-bogus]) {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
|
||||
}
|
||||
.mce-visualblocks section {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
|
||||
}
|
||||
.mce-visualblocks article {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
|
||||
}
|
||||
.mce-visualblocks blockquote {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
|
||||
}
|
||||
.mce-visualblocks address {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
|
||||
}
|
||||
.mce-visualblocks pre {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
|
||||
}
|
||||
.mce-visualblocks figure {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
|
||||
}
|
||||
.mce-visualblocks figcaption {
|
||||
border: 1px dashed #bbb;
|
||||
}
|
||||
.mce-visualblocks hgroup {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
|
||||
}
|
||||
.mce-visualblocks aside {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
|
||||
}
|
||||
.mce-visualblocks ul {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);
|
||||
}
|
||||
.mce-visualblocks ol {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
|
||||
}
|
||||
.mce-visualblocks dl {
|
||||
background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
|
||||
}
|
||||
.mce-visualblocks:not([dir=rtl]) p,
|
||||
.mce-visualblocks:not([dir=rtl]) h1,
|
||||
.mce-visualblocks:not([dir=rtl]) h2,
|
||||
.mce-visualblocks:not([dir=rtl]) h3,
|
||||
.mce-visualblocks:not([dir=rtl]) h4,
|
||||
.mce-visualblocks:not([dir=rtl]) h5,
|
||||
.mce-visualblocks:not([dir=rtl]) h6,
|
||||
.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),
|
||||
.mce-visualblocks:not([dir=rtl]) section,
|
||||
.mce-visualblocks:not([dir=rtl]) article,
|
||||
.mce-visualblocks:not([dir=rtl]) blockquote,
|
||||
.mce-visualblocks:not([dir=rtl]) address,
|
||||
.mce-visualblocks:not([dir=rtl]) pre,
|
||||
.mce-visualblocks:not([dir=rtl]) figure,
|
||||
.mce-visualblocks:not([dir=rtl]) figcaption,
|
||||
.mce-visualblocks:not([dir=rtl]) hgroup,
|
||||
.mce-visualblocks:not([dir=rtl]) aside,
|
||||
.mce-visualblocks:not([dir=rtl]) ul,
|
||||
.mce-visualblocks:not([dir=rtl]) ol,
|
||||
.mce-visualblocks:not([dir=rtl]) dl {
|
||||
margin-left: 3px;
|
||||
}
|
||||
.mce-visualblocks[dir=rtl] p,
|
||||
.mce-visualblocks[dir=rtl] h1,
|
||||
.mce-visualblocks[dir=rtl] h2,
|
||||
.mce-visualblocks[dir=rtl] h3,
|
||||
.mce-visualblocks[dir=rtl] h4,
|
||||
.mce-visualblocks[dir=rtl] h5,
|
||||
.mce-visualblocks[dir=rtl] h6,
|
||||
.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),
|
||||
.mce-visualblocks[dir=rtl] section,
|
||||
.mce-visualblocks[dir=rtl] article,
|
||||
.mce-visualblocks[dir=rtl] blockquote,
|
||||
.mce-visualblocks[dir=rtl] address,
|
||||
.mce-visualblocks[dir=rtl] pre,
|
||||
.mce-visualblocks[dir=rtl] figure,
|
||||
.mce-visualblocks[dir=rtl] figcaption,
|
||||
.mce-visualblocks[dir=rtl] hgroup,
|
||||
.mce-visualblocks[dir=rtl] aside,
|
||||
.mce-visualblocks[dir=rtl] ul,
|
||||
.mce-visualblocks[dir=rtl] ol,
|
||||
.mce-visualblocks[dir=rtl] dl {
|
||||
background-position-x: right;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.mce-nbsp,
|
||||
.mce-shy {
|
||||
background: #aaa;
|
||||
}
|
||||
.mce-shy::after {
|
||||
content: '-';
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,29 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
|
||||
/* Note: this file is used inside the content, so isn't part of theming */
|
||||
background-color: green;
|
||||
display: inline-block;
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
}
|
||||
body {
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
body img {
|
||||
/* this is related to the content margin */
|
||||
max-width: 96vw;
|
||||
}
|
||||
body table img {
|
||||
max-width: 95%;
|
||||
}
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,673 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
/* RESET all the things! */
|
||||
.tinymce-mobile-outer-container {
|
||||
all: initial;
|
||||
display: block;
|
||||
}
|
||||
.tinymce-mobile-outer-container * {
|
||||
border: 0;
|
||||
box-sizing: initial;
|
||||
cursor: inherit;
|
||||
float: none;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
/* TBIO-3691, stop the gray flicker on touch. */
|
||||
text-shadow: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.tinymce-mobile-icon-arrow-back::before {
|
||||
content: "\e5cd";
|
||||
}
|
||||
.tinymce-mobile-icon-image::before {
|
||||
content: "\e412";
|
||||
}
|
||||
.tinymce-mobile-icon-cancel-circle::before {
|
||||
content: "\e5c9";
|
||||
}
|
||||
.tinymce-mobile-icon-full-dot::before {
|
||||
content: "\e061";
|
||||
}
|
||||
.tinymce-mobile-icon-align-center::before {
|
||||
content: "\e234";
|
||||
}
|
||||
.tinymce-mobile-icon-align-left::before {
|
||||
content: "\e236";
|
||||
}
|
||||
.tinymce-mobile-icon-align-right::before {
|
||||
content: "\e237";
|
||||
}
|
||||
.tinymce-mobile-icon-bold::before {
|
||||
content: "\e238";
|
||||
}
|
||||
.tinymce-mobile-icon-italic::before {
|
||||
content: "\e23f";
|
||||
}
|
||||
.tinymce-mobile-icon-unordered-list::before {
|
||||
content: "\e241";
|
||||
}
|
||||
.tinymce-mobile-icon-ordered-list::before {
|
||||
content: "\e242";
|
||||
}
|
||||
.tinymce-mobile-icon-font-size::before {
|
||||
content: "\e245";
|
||||
}
|
||||
.tinymce-mobile-icon-underline::before {
|
||||
content: "\e249";
|
||||
}
|
||||
.tinymce-mobile-icon-link::before {
|
||||
content: "\e157";
|
||||
}
|
||||
.tinymce-mobile-icon-unlink::before {
|
||||
content: "\eca2";
|
||||
}
|
||||
.tinymce-mobile-icon-color::before {
|
||||
content: "\e891";
|
||||
}
|
||||
.tinymce-mobile-icon-previous::before {
|
||||
content: "\e314";
|
||||
}
|
||||
.tinymce-mobile-icon-next::before {
|
||||
content: "\e315";
|
||||
}
|
||||
.tinymce-mobile-icon-large-font::before,
|
||||
.tinymce-mobile-icon-style-formats::before {
|
||||
content: "\e264";
|
||||
}
|
||||
.tinymce-mobile-icon-undo::before {
|
||||
content: "\e166";
|
||||
}
|
||||
.tinymce-mobile-icon-redo::before {
|
||||
content: "\e15a";
|
||||
}
|
||||
.tinymce-mobile-icon-removeformat::before {
|
||||
content: "\e239";
|
||||
}
|
||||
.tinymce-mobile-icon-small-font::before {
|
||||
content: "\e906";
|
||||
}
|
||||
.tinymce-mobile-icon-readonly-back::before,
|
||||
.tinymce-mobile-format-matches::after {
|
||||
content: "\e5ca";
|
||||
}
|
||||
.tinymce-mobile-icon-small-heading::before {
|
||||
content: "small";
|
||||
}
|
||||
.tinymce-mobile-icon-large-heading::before {
|
||||
content: "large";
|
||||
}
|
||||
.tinymce-mobile-icon-small-heading::before,
|
||||
.tinymce-mobile-icon-large-heading::before {
|
||||
font-family: sans-serif;
|
||||
font-size: 80%;
|
||||
}
|
||||
.tinymce-mobile-mask-edit-icon::before {
|
||||
content: "\e254";
|
||||
}
|
||||
.tinymce-mobile-icon-back::before {
|
||||
content: "\e5c4";
|
||||
}
|
||||
.tinymce-mobile-icon-heading::before {
|
||||
/* TODO: Translate */
|
||||
content: "Headings";
|
||||
font-family: sans-serif;
|
||||
font-size: 80%;
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-icon-h1::before {
|
||||
content: "H1";
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-icon-h2::before {
|
||||
content: "H2";
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-icon-h3::before {
|
||||
content: "H3";
|
||||
font-weight: bold;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
background: rgba(51, 51, 51, 0.5);
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container {
|
||||
align-items: center;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
height: 2.1em;
|
||||
width: 2.1em;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
font-size: 1em;
|
||||
}
|
||||
@media only screen and (min-device-width:700px) {
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
height: 2.1em;
|
||||
width: 2.1em;
|
||||
background-color: white;
|
||||
color: #207ab7;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before {
|
||||
content: "\e900";
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon {
|
||||
z-index: 2;
|
||||
}
|
||||
.tinymce-mobile-android-container.tinymce-mobile-android-maximized {
|
||||
background: #ffffff;
|
||||
border: none;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized) {
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe {
|
||||
display: flex !important;
|
||||
flex-grow: 1;
|
||||
height: auto !important;
|
||||
}
|
||||
.tinymce-mobile-android-scroll-reload {
|
||||
overflow: hidden;
|
||||
}
|
||||
:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar {
|
||||
margin-top: 23px;
|
||||
}
|
||||
.tinymce-mobile-toolstrip {
|
||||
background: #fff;
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
z-index: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar {
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
height: 2.5em;
|
||||
width: 100%;
|
||||
/* Make it no larger than the toolstrip, so that it needs to scroll */
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group > div {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container {
|
||||
background: #f44336;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item {
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 80%;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected {
|
||||
background: #c8cbcf;
|
||||
color: #cccccc;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type {
|
||||
background: #207ab7;
|
||||
color: #eceff1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar {
|
||||
/* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
padding-bottom: 0.4em;
|
||||
padding-top: 0.4em;
|
||||
/* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */
|
||||
/* For widgets like the colour picker, use the whole height */
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog {
|
||||
display: flex;
|
||||
min-height: 1.5em;
|
||||
overflow: hidden;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
transition: left cubic-bezier(0.4, 0, 1, 1) 0.15s;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input {
|
||||
font-family: Sans-serif;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x {
|
||||
-ms-grid-row-align: center;
|
||||
align-self: center;
|
||||
background: inherit;
|
||||
border: none;
|
||||
border-radius: 50%;
|
||||
color: #888;
|
||||
font-size: 0.6em;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
padding-right: 2px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x {
|
||||
display: none;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before {
|
||||
visibility: hidden;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item {
|
||||
color: #cccccc;
|
||||
font-size: 10px;
|
||||
line-height: 10px;
|
||||
margin: 0 2px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active {
|
||||
color: #c8cbcf;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before {
|
||||
margin-left: 0.5em;
|
||||
margin-right: 0.9em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before {
|
||||
margin-left: 0.9em;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding: 0.28em 0;
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line {
|
||||
background: #cccccc;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient {
|
||||
background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(0, 100%, 50%) 100%);
|
||||
display: flex;
|
||||
flex: 1;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black {
|
||||
/* Not part of theming */
|
||||
background: black;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
width: 1.2em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white {
|
||||
/* Not part of theming */
|
||||
background: white;
|
||||
height: 0.2em;
|
||||
margin-bottom: 0.3em;
|
||||
margin-top: 0.3em;
|
||||
width: 1.2em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb {
|
||||
/* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave
|
||||
* out these values, then it shows the thumb at the top of the spectrum. This is probably because it is
|
||||
* absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without
|
||||
* this approach.
|
||||
*/
|
||||
align-items: center;
|
||||
background-clip: padding-box;
|
||||
background-color: #455a64;
|
||||
border: 0.5em solid rgba(136, 136, 136, 0);
|
||||
border-radius: 3em;
|
||||
bottom: 0;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
height: 0.5em;
|
||||
justify-content: center;
|
||||
left: -10px;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
transition: border 120ms cubic-bezier(0.39, 0.58, 0.57, 1);
|
||||
width: 0.5em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active {
|
||||
border: 0.5em solid rgba(136, 136, 136, 0.39);
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group > div {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) {
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container {
|
||||
display: flex;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input {
|
||||
background: #ffffff;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
color: #455a64;
|
||||
flex-grow: 1;
|
||||
font-size: 0.85em;
|
||||
padding-bottom: 0.1em;
|
||||
padding-left: 5px;
|
||||
padding-top: 0.1em;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder {
|
||||
/* WebKit, Blink, Edge */
|
||||
color: #888;
|
||||
}
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder {
|
||||
/* WebKit, Blink, Edge */
|
||||
color: #888;
|
||||
}
|
||||
/* dropup */
|
||||
.tinymce-mobile-dropup {
|
||||
background: white;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking {
|
||||
transition: height 0.3s ease-out;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-growing {
|
||||
transition: height 0.3s ease-in;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-closed {
|
||||
flex-grow: 0;
|
||||
}
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) {
|
||||
flex-grow: 1;
|
||||
}
|
||||
/* TODO min-height for device size and orientation */
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
|
||||
min-height: 200px;
|
||||
}
|
||||
@media only screen and (orientation: landscape) {
|
||||
.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
|
||||
min-height: 200px;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) {
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
|
||||
min-height: 150px;
|
||||
}
|
||||
}
|
||||
/* styles menu */
|
||||
.tinymce-mobile-styles-menu {
|
||||
font-family: sans-serif;
|
||||
outline: 4px solid black;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-styles-menu [role="menu"] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-styles-menu [role="menu"].transitioning {
|
||||
transition: transform 0.5s ease-in-out;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item {
|
||||
border-bottom: 1px solid #ddd;
|
||||
color: #455a64;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
padding: 1em 1em;
|
||||
position: relative;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before {
|
||||
color: #455a64;
|
||||
content: "\e314";
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after {
|
||||
color: #455a64;
|
||||
content: "\e315";
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after {
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator,
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser {
|
||||
align-items: center;
|
||||
background: #fff;
|
||||
border-top: #455a64;
|
||||
color: #455a64;
|
||||
display: flex;
|
||||
min-height: 2.5em;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination="before"][data-transitioning-state],
|
||||
.tinymce-mobile-styles-menu [data-transitioning-state="before"] {
|
||||
transform: translate(-100%);
|
||||
}
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination="current"][data-transitioning-state],
|
||||
.tinymce-mobile-styles-menu [data-transitioning-state="current"] {
|
||||
transform: translate(0%);
|
||||
}
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination="after"][data-transitioning-state],
|
||||
.tinymce-mobile-styles-menu [data-transitioning-state="after"] {
|
||||
transform: translate(100%);
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'tinymce-mobile';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff');
|
||||
}
|
||||
@media (min-device-width: 700px) {
|
||||
.tinymce-mobile-outer-container,
|
||||
.tinymce-mobile-outer-container input {
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
||||
@media (max-device-width: 700px) {
|
||||
.tinymce-mobile-outer-container,
|
||||
.tinymce-mobile-outer-container input {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
.tinymce-mobile-icon {
|
||||
font-family: 'tinymce-mobile', sans-serif;
|
||||
}
|
||||
.mixin-flex-and-centre {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.mixin-flex-bar {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe {
|
||||
background-color: #fff;
|
||||
width: 100%;
|
||||
}
|
||||
.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon {
|
||||
/* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */
|
||||
background-color: #207ab7;
|
||||
border-radius: 50%;
|
||||
bottom: 1em;
|
||||
color: white;
|
||||
font-size: 1em;
|
||||
height: 2.1em;
|
||||
position: fixed;
|
||||
right: 2em;
|
||||
width: 2.1em;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
@media only screen and (min-device-width:700px) {
|
||||
.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
}
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket {
|
||||
height: 300px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe {
|
||||
height: 100%;
|
||||
}
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip {
|
||||
display: none;
|
||||
}
|
||||
/*
|
||||
Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets
|
||||
increased and the whole body becomes scrollable. It's important!
|
||||
*/
|
||||
input[type="file"]::-webkit-file-upload-button {
|
||||
display: none;
|
||||
}
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) {
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon {
|
||||
bottom: 50%;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1,37 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body.tox-dialog__disable-scroll {
|
||||
overflow: hidden;
|
||||
}
|
||||
.tox-fullscreen {
|
||||
border: 0;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
-ms-scroll-chaining: none;
|
||||
overscroll-behavior: none;
|
||||
padding: 0;
|
||||
touch-action: pinch-zoom;
|
||||
width: 100%;
|
||||
}
|
||||
.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
|
||||
display: none;
|
||||
}
|
||||
.tox.tox-tinymce.tox-fullscreen,
|
||||
.tox-shadowhost.tox-fullscreen {
|
||||
left: 0;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
z-index: 1200;
|
||||
}
|
||||
.tox.tox-tinymce.tox-fullscreen {
|
||||
background-color: transparent;
|
||||
}
|
||||
.tox-fullscreen .tox.tox-tinymce-aux,
|
||||
.tox-fullscreen ~ .tox.tox-tinymce-aux {
|
||||
z-index: 1201;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
|
@ -13,4 +13,44 @@ export class CommonApi {
|
|||
static getSystemCode(params) {
|
||||
return Request.get('/devops/getSystemCode', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户选择组件单选人的名称
|
||||
* @returns userId
|
||||
*/
|
||||
static getUserName(params) {
|
||||
return Request.get('/bizFormComponentProvider/getUserName', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取组织机构选择组件机构的名称
|
||||
* @returns orgId
|
||||
*/
|
||||
static getOrgName(params) {
|
||||
return Request.get('/bizFormComponentProvider/getOrgName', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色选择的名称
|
||||
* @returns roleId
|
||||
*/
|
||||
static getRoleName(params) {
|
||||
return Request.get('/bizFormComponentProvider/getRoleName', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取职位选择的名称
|
||||
* @returns positionId
|
||||
*/
|
||||
static getPositionName(params) {
|
||||
return Request.get('/bizFormComponentProvider/getPositionName', params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典选择的名称
|
||||
* @returns dictId
|
||||
*/
|
||||
static getDictName(params) {
|
||||
return Request.get('/bizFormComponentProvider/getDictName', params);
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 3.3 MiB |
|
@ -1,8 +1,8 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 4453133 */
|
||||
src: url('iconfont.woff2?t=1710569016438') format('woff2'),
|
||||
url('iconfont.woff?t=1710569016438') format('woff'),
|
||||
url('iconfont.ttf?t=1710569016438') format('truetype');
|
||||
src: url('iconfont.woff2?t=1722595070279') format('woff2'),
|
||||
url('iconfont.woff?t=1722595070279') format('woff'),
|
||||
url('iconfont.ttf?t=1722595070279') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
|
@ -13,6 +13,46 @@
|
|||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-icon-menu-project:before {
|
||||
content: "\e758";
|
||||
}
|
||||
|
||||
.icon-icon-menu-project-p:before {
|
||||
content: "\e759";
|
||||
}
|
||||
|
||||
.icon-daibanxiangmu1:before {
|
||||
content: "\e750";
|
||||
}
|
||||
|
||||
.icon-quanbuxiangmu1:before {
|
||||
content: "\e751";
|
||||
}
|
||||
|
||||
.icon-renwu:before {
|
||||
content: "\e752";
|
||||
}
|
||||
|
||||
.icon-wenti:before {
|
||||
content: "\e753";
|
||||
}
|
||||
|
||||
.icon-wocanyude:before {
|
||||
content: "\e754";
|
||||
}
|
||||
|
||||
.icon-woshoucangde1:before {
|
||||
content: "\e755";
|
||||
}
|
||||
|
||||
.icon-xuqiu:before {
|
||||
content: "\e756";
|
||||
}
|
||||
|
||||
.icon-wofuzede:before {
|
||||
content: "\e757";
|
||||
}
|
||||
|
||||
.icon-menu-anquancaozuo-p:before {
|
||||
content: "\e748";
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5,6 +5,76 @@
|
|||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "41324355",
|
||||
"name": "项目管理-菜单",
|
||||
"font_class": "icon-menu-project",
|
||||
"unicode": "e758",
|
||||
"unicode_decimal": 59224
|
||||
},
|
||||
{
|
||||
"icon_id": "41324356",
|
||||
"name": "项目管理-菜单",
|
||||
"font_class": "icon-menu-project-p",
|
||||
"unicode": "e759",
|
||||
"unicode_decimal": 59225
|
||||
},
|
||||
{
|
||||
"icon_id": "41260383",
|
||||
"name": "待办项目",
|
||||
"font_class": "daibanxiangmu1",
|
||||
"unicode": "e750",
|
||||
"unicode_decimal": 59216
|
||||
},
|
||||
{
|
||||
"icon_id": "41260384",
|
||||
"name": "全部项目",
|
||||
"font_class": "quanbuxiangmu1",
|
||||
"unicode": "e751",
|
||||
"unicode_decimal": 59217
|
||||
},
|
||||
{
|
||||
"icon_id": "41260385",
|
||||
"name": "任务",
|
||||
"font_class": "renwu",
|
||||
"unicode": "e752",
|
||||
"unicode_decimal": 59218
|
||||
},
|
||||
{
|
||||
"icon_id": "41260386",
|
||||
"name": "问题",
|
||||
"font_class": "wenti",
|
||||
"unicode": "e753",
|
||||
"unicode_decimal": 59219
|
||||
},
|
||||
{
|
||||
"icon_id": "41260387",
|
||||
"name": "我参与的",
|
||||
"font_class": "wocanyude",
|
||||
"unicode": "e754",
|
||||
"unicode_decimal": 59220
|
||||
},
|
||||
{
|
||||
"icon_id": "41260388",
|
||||
"name": "我收藏的",
|
||||
"font_class": "woshoucangde1",
|
||||
"unicode": "e755",
|
||||
"unicode_decimal": 59221
|
||||
},
|
||||
{
|
||||
"icon_id": "41260389",
|
||||
"name": "需求",
|
||||
"font_class": "xuqiu",
|
||||
"unicode": "e756",
|
||||
"unicode_decimal": 59222
|
||||
},
|
||||
{
|
||||
"icon_id": "41260390",
|
||||
"name": "我负责的",
|
||||
"font_class": "wofuzede",
|
||||
"unicode": "e757",
|
||||
"unicode_decimal": 59223
|
||||
},
|
||||
{
|
||||
"icon_id": "39574651",
|
||||
"name": "菜单-安全操作",
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -31,8 +31,9 @@ export default {
|
|||
},
|
||||
// 传递进来的字典值
|
||||
value: {
|
||||
type: [String, Array],
|
||||
required: true,
|
||||
default: []
|
||||
default: ''
|
||||
},
|
||||
// 传递进来的值是字典编码还是字典id
|
||||
valueType: {
|
||||
|
@ -44,6 +45,11 @@ export default {
|
|||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
},
|
||||
// 是否正常保存,不是转json格式
|
||||
normal: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
setup(props, context) {
|
||||
|
@ -53,11 +59,7 @@ export default {
|
|||
});
|
||||
|
||||
onMounted(async () => {
|
||||
if (props.value) {
|
||||
data.modelValue = props.value;
|
||||
} else {
|
||||
data.modelValue = [];
|
||||
}
|
||||
setModeValue();
|
||||
// 如果传递了字典编码,则根据字典编码查询
|
||||
if (props.dictTypeCode) {
|
||||
data.dictList = await SysDictTypeApi.getDictListByParams({ dictTypeCode: props.dictTypeCode });
|
||||
|
@ -70,14 +72,24 @@ export default {
|
|||
});
|
||||
|
||||
const changeOption = value => {
|
||||
context.emit('update:value', value);
|
||||
context.emit('change', value);
|
||||
let valueData = props.normal ? value : JSON.stringify(value);
|
||||
context.emit('update:value', valueData);
|
||||
context.emit('change', valueData);
|
||||
};
|
||||
|
||||
// 设置值
|
||||
const setModeValue = () => {
|
||||
if (props.value) {
|
||||
data.modelValue = props.normal ? props.value : JSON.parse(props.value);
|
||||
} else {
|
||||
data.modelValue = [];
|
||||
}
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.value,
|
||||
val => {
|
||||
data.modelValue = val;
|
||||
setModeValue();
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
@ -105,7 +117,8 @@ export default {
|
|||
|
||||
return {
|
||||
...toRefs(data),
|
||||
changeOption
|
||||
changeOption,
|
||||
setModeValue
|
||||
};
|
||||
}
|
||||
};
|
||||
|
|
|
@ -49,7 +49,9 @@ export default {
|
|||
},
|
||||
// 传递进来的字典值
|
||||
value: {
|
||||
required: true
|
||||
type: [String, Array],
|
||||
required: true,
|
||||
default: ''
|
||||
},
|
||||
// 传递进来的值是字典编码还是字典id
|
||||
valueType: {
|
||||
|
@ -72,6 +74,11 @@ export default {
|
|||
type: String,
|
||||
required: true,
|
||||
default: '请选择'
|
||||
},
|
||||
// 是否正常保存,不是转json格式
|
||||
normal: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
setup(props, context) {
|
||||
|
@ -81,7 +88,7 @@ export default {
|
|||
});
|
||||
|
||||
onMounted(async () => {
|
||||
data.modelValue = props.value;
|
||||
setModelValue();
|
||||
// 如果传递了字典编码,则根据字典编码查询
|
||||
if (props.dictTypeCode) {
|
||||
data.dictList = await SysDictTypeApi.getDictListByParams({ dictTypeCode: props.dictTypeCode });
|
||||
|
@ -93,20 +100,27 @@ export default {
|
|||
}
|
||||
});
|
||||
|
||||
// 设置值
|
||||
const setModelValue = () => {
|
||||
data.modelValue = props.normal ? props.value : props.multiple && props.value ? JSON.parse(props.value) : props.value || [];
|
||||
};
|
||||
|
||||
const selectOption = value => {
|
||||
context.emit('update:value', value);
|
||||
context.emit('change', value);
|
||||
let valueData = props.normal ? value : props.multiple ? JSON.stringify(value) : value;
|
||||
context.emit('update:value', valueData);
|
||||
context.emit('change', valueData);
|
||||
};
|
||||
|
||||
const changeOption = value => {
|
||||
context.emit('update:value', value);
|
||||
context.emit('change', value);
|
||||
let valueData = props.normal ? value : props.multiple ? JSON.stringify(value) : value;
|
||||
context.emit('update:value', valueData);
|
||||
context.emit('change', valueData);
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.value,
|
||||
val => {
|
||||
data.modelValue = val;
|
||||
setModelValue();
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
@ -135,7 +149,8 @@ export default {
|
|||
return {
|
||||
...toRefs(data),
|
||||
selectOption,
|
||||
changeOption
|
||||
changeOption,
|
||||
setModelValue
|
||||
};
|
||||
}
|
||||
};
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useThemeStore } from '@/store/modules/theme';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useThemeStore } from '@/store/modules/theme';
|
||||
|
||||
export default {
|
||||
name: 'RouterLayout',
|
||||
setup() {
|
||||
const themeStore = useThemeStore();
|
||||
const { keepAliveInclude, transitionName } = storeToRefs(themeStore);
|
||||
export default {
|
||||
name: 'RouterLayout',
|
||||
setup() {
|
||||
const themeStore = useThemeStore();
|
||||
const { keepAliveInclude, transitionName } = storeToRefs(themeStore);
|
||||
|
||||
return { keepAliveInclude, transitionName };
|
||||
}
|
||||
};
|
||||
return { keepAliveInclude, transitionName };
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -1,238 +0,0 @@
|
|||
<!-- 富文本编辑器 -->
|
||||
<template>
|
||||
<component v-if="inlineEditor" :is="tagName" :id="elementId" />
|
||||
<textarea v-else :id="elementId"></textarea>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
watch,
|
||||
onMounted,
|
||||
onBeforeUnmount,
|
||||
onActivated,
|
||||
onDeactivated,
|
||||
nextTick,
|
||||
useAttrs
|
||||
} from 'vue';
|
||||
import tinymce from 'tinymce/tinymce';
|
||||
import 'tinymce/themes/silver';
|
||||
import 'tinymce/icons/default';
|
||||
import 'tinymce/plugins/code';
|
||||
import 'tinymce/plugins/preview';
|
||||
import 'tinymce/plugins/fullscreen';
|
||||
import 'tinymce/plugins/paste';
|
||||
import 'tinymce/plugins/searchreplace';
|
||||
import 'tinymce/plugins/save';
|
||||
import 'tinymce/plugins/autosave';
|
||||
import 'tinymce/plugins/link';
|
||||
import 'tinymce/plugins/autolink';
|
||||
import 'tinymce/plugins/image';
|
||||
import 'tinymce/plugins/media';
|
||||
import 'tinymce/plugins/table';
|
||||
import 'tinymce/plugins/codesample';
|
||||
import 'tinymce/plugins/lists';
|
||||
import 'tinymce/plugins/advlist';
|
||||
import 'tinymce/plugins/hr';
|
||||
import 'tinymce/plugins/charmap';
|
||||
import 'tinymce/plugins/emoticons';
|
||||
import 'tinymce/plugins/anchor';
|
||||
import 'tinymce/plugins/directionality';
|
||||
import 'tinymce/plugins/pagebreak';
|
||||
import 'tinymce/plugins/quickbars';
|
||||
import 'tinymce/plugins/nonbreaking';
|
||||
import 'tinymce/plugins/visualblocks';
|
||||
import 'tinymce/plugins/visualchars';
|
||||
import 'tinymce/plugins/wordcount';
|
||||
import 'tinymce/plugins/emoticons/js/emojis';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useThemeStore } from '@/store/modules/theme';
|
||||
import {
|
||||
DEFAULT_CONFIG,
|
||||
DARK_CONFIG,
|
||||
uuid,
|
||||
bindHandlers,
|
||||
openAlert
|
||||
} from './util';
|
||||
|
||||
const props = defineProps({
|
||||
// 编辑器唯一 id
|
||||
id: String,
|
||||
// v-model
|
||||
value: String,
|
||||
// 编辑器配置
|
||||
init: Object,
|
||||
// 是否内联模式
|
||||
inline: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// model events
|
||||
modelEvents: {
|
||||
type: String,
|
||||
default: 'change input undo redo'
|
||||
},
|
||||
// 内联模式标签名
|
||||
tagName: {
|
||||
type: String,
|
||||
default: 'div'
|
||||
},
|
||||
// 是否禁用
|
||||
disabled: Boolean,
|
||||
// 是否跟随框架主题
|
||||
autoTheme: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 不跟随框架主题时是否使用暗黑主题
|
||||
darkTheme: Boolean
|
||||
});
|
||||
|
||||
const emit = defineEmits(['update:value']);
|
||||
|
||||
const attrs = useAttrs();
|
||||
const themeStore = useThemeStore();
|
||||
const { darkMode } = storeToRefs(themeStore);
|
||||
|
||||
// 编辑器唯一 id
|
||||
const elementId = props.id || uuid('tiny-vue');
|
||||
|
||||
// 编辑器实例
|
||||
let editorIns = null;
|
||||
|
||||
// 是否内联模式
|
||||
const inlineEditor = props.init?.inline || props.inline;
|
||||
|
||||
/* 更新 value */
|
||||
const updateValue = (value) => {
|
||||
emit('update:value', value);
|
||||
};
|
||||
|
||||
/* 修改内容 */
|
||||
const setContent = (value) => {
|
||||
if (
|
||||
editorIns &&
|
||||
typeof value === 'string' &&
|
||||
value !== editorIns.getContent()
|
||||
) {
|
||||
editorIns.setContent(value);
|
||||
}
|
||||
};
|
||||
|
||||
/* 渲染编辑器 */
|
||||
const render = () => {
|
||||
const isDark = props.autoTheme ? darkMode.value : props.darkTheme;
|
||||
tinymce.init({
|
||||
...DEFAULT_CONFIG,
|
||||
...(isDark ? DARK_CONFIG : {}),
|
||||
...props.init,
|
||||
selector: `#${elementId}`,
|
||||
readonly: props.disabled,
|
||||
inline: inlineEditor,
|
||||
setup: (editor) => {
|
||||
editorIns = editor;
|
||||
editor.on('init', (e) => {
|
||||
// 回显初始值
|
||||
if (props.value) {
|
||||
setContent(props.value);
|
||||
}
|
||||
// v-model
|
||||
editor.on(props.modelEvents, () => {
|
||||
updateValue(editor.getContent());
|
||||
});
|
||||
// valid events
|
||||
bindHandlers(e, attrs, editor);
|
||||
});
|
||||
if (typeof props.init?.setup === 'function') {
|
||||
props.init.setup(editor);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/* 销毁编辑器 */
|
||||
const destory = () => {
|
||||
if (tinymce != null && editorIns != null) {
|
||||
tinymce.remove(editorIns);
|
||||
editorIns = null;
|
||||
}
|
||||
};
|
||||
|
||||
/* 弹出提示框 */
|
||||
const alert = (option) => {
|
||||
openAlert(editorIns, option);
|
||||
};
|
||||
|
||||
defineExpose({ editorIns, alert });
|
||||
|
||||
watch(
|
||||
() => props.value,
|
||||
(val, prevVal) => {
|
||||
if (val !== prevVal) {
|
||||
setContent(val);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.disabled,
|
||||
(disable) => {
|
||||
if (editorIns !== null) {
|
||||
if (typeof editorIns.mode?.set === 'function') {
|
||||
editorIns.mode.set(disable ? 'readonly' : 'design');
|
||||
} else {
|
||||
editorIns.setMode(disable ? 'readonly' : 'design');
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.tagName,
|
||||
() => {
|
||||
destory();
|
||||
nextTick(() => {
|
||||
render();
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
watch(darkMode, () => {
|
||||
if (props.autoTheme) {
|
||||
destory();
|
||||
nextTick(() => {
|
||||
render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
render();
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
destory();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
render();
|
||||
});
|
||||
|
||||
onDeactivated(() => {
|
||||
destory();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
body .tox-tinymce-aux {
|
||||
z-index: 19990000;
|
||||
}
|
||||
|
||||
textarea[id^='tiny-vue'] {
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
opacity: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
|
@ -1,229 +0,0 @@
|
|||
const BASE_URL = import.meta.env.BASE_URL;
|
||||
|
||||
// 默认加载插件
|
||||
const PLUGINS = [
|
||||
'code',
|
||||
'preview',
|
||||
'fullscreen',
|
||||
'paste',
|
||||
'searchreplace',
|
||||
'save',
|
||||
'autosave',
|
||||
'link',
|
||||
'autolink',
|
||||
'image',
|
||||
'media',
|
||||
'table',
|
||||
'codesample',
|
||||
'lists',
|
||||
'advlist',
|
||||
'hr',
|
||||
'charmap',
|
||||
'emoticons',
|
||||
'anchor',
|
||||
'directionality',
|
||||
'pagebreak',
|
||||
'quickbars',
|
||||
'nonbreaking',
|
||||
'visualblocks',
|
||||
'visualchars',
|
||||
'wordcount'
|
||||
].join(' ');
|
||||
|
||||
// 默认工具栏布局
|
||||
const TOOLBAR = [
|
||||
'fullscreen',
|
||||
'preview',
|
||||
'code',
|
||||
'|',
|
||||
'undo',
|
||||
'redo',
|
||||
'|',
|
||||
'forecolor',
|
||||
'backcolor',
|
||||
'|',
|
||||
'bold',
|
||||
'italic',
|
||||
'underline',
|
||||
'strikethrough',
|
||||
'|',
|
||||
'alignleft',
|
||||
'aligncenter',
|
||||
'alignright',
|
||||
'alignjustify',
|
||||
'|',
|
||||
'outdent',
|
||||
'indent',
|
||||
'|',
|
||||
'numlist',
|
||||
'bullist',
|
||||
'|',
|
||||
'formatselect',
|
||||
'fontselect',
|
||||
'fontsizeselect',
|
||||
'|',
|
||||
'link',
|
||||
'image',
|
||||
'media',
|
||||
'emoticons',
|
||||
'charmap',
|
||||
'anchor',
|
||||
'pagebreak',
|
||||
'codesample',
|
||||
'|',
|
||||
'ltr',
|
||||
'rtl'
|
||||
].join(' ');
|
||||
|
||||
// 默认配置
|
||||
export const DEFAULT_CONFIG = {
|
||||
height: 300,
|
||||
branding: false,
|
||||
skin_url: BASE_URL + 'tinymce/skins/ui/oxide',
|
||||
content_css: BASE_URL + 'tinymce/skins/content/default/content.min.css',
|
||||
language_url: BASE_URL + 'tinymce/langs/zh_CN.js',
|
||||
language: 'zh_CN',
|
||||
plugins: PLUGINS,
|
||||
toolbar: TOOLBAR,
|
||||
draggable_modal: true,
|
||||
toolbar_mode: 'sliding',
|
||||
quickbars_insert_toolbar: '',
|
||||
images_upload_handler: (blobInfo, success, error) => {
|
||||
if (blobInfo.blob().size / 1024 > 400) {
|
||||
error('大小不能超过 400KB');
|
||||
return;
|
||||
}
|
||||
success('data:image/jpeg;base64,' + blobInfo.base64());
|
||||
},
|
||||
file_picker_types: 'media',
|
||||
file_picker_callback: () => {}
|
||||
};
|
||||
|
||||
// 暗黑主题配置
|
||||
export const DARK_CONFIG = {
|
||||
skin_url: BASE_URL + 'tinymce/skins/ui/oxide-dark',
|
||||
content_css: BASE_URL + 'tinymce/skins/content/dark/content.min.css'
|
||||
};
|
||||
|
||||
// 支持监听的事件
|
||||
export const VALID_EVENTS = [
|
||||
'onActivate',
|
||||
'onAddUndo',
|
||||
'onBeforeAddUndo',
|
||||
'onBeforeExecCommand',
|
||||
'onBeforeGetContent',
|
||||
'onBeforeRenderUI',
|
||||
'onBeforeSetContent',
|
||||
'onBeforePaste',
|
||||
'onBlur',
|
||||
'onChange',
|
||||
'onClearUndos',
|
||||
'onClick',
|
||||
'onContextMenu',
|
||||
'onCopy',
|
||||
'onCut',
|
||||
'onDblclick',
|
||||
'onDeactivate',
|
||||
'onDirty',
|
||||
'onDrag',
|
||||
'onDragDrop',
|
||||
'onDragEnd',
|
||||
'onDragGesture',
|
||||
'onDragOver',
|
||||
'onDrop',
|
||||
'onExecCommand',
|
||||
'onFocus',
|
||||
'onFocusIn',
|
||||
'onFocusOut',
|
||||
'onGetContent',
|
||||
'onHide',
|
||||
'onInit',
|
||||
'onKeyDown',
|
||||
'onKeyPress',
|
||||
'onKeyUp',
|
||||
'onLoadContent',
|
||||
'onMouseDown',
|
||||
'onMouseEnter',
|
||||
'onMouseLeave',
|
||||
'onMouseMove',
|
||||
'onMouseOut',
|
||||
'onMouseOver',
|
||||
'onMouseUp',
|
||||
'onNodeChange',
|
||||
'onObjectResizeStart',
|
||||
'onObjectResized',
|
||||
'onObjectSelected',
|
||||
'onPaste',
|
||||
'onPostProcess',
|
||||
'onPostRender',
|
||||
'onPreProcess',
|
||||
'onProgressState',
|
||||
'onRedo',
|
||||
'onRemove',
|
||||
'onReset',
|
||||
'onSaveContent',
|
||||
'onSelectionChange',
|
||||
'onSetAttrib',
|
||||
'onSetContent',
|
||||
'onShow',
|
||||
'onSubmit',
|
||||
'onUndo',
|
||||
'onVisualAid'
|
||||
];
|
||||
|
||||
let unique = 0;
|
||||
|
||||
/**
|
||||
* 生成编辑器 id
|
||||
*/
|
||||
export function uuid(prefix) {
|
||||
const time = Date.now();
|
||||
const random = Math.floor(Math.random() * 1000000000);
|
||||
unique++;
|
||||
return prefix + '_' + random + unique + String(time);
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定事件
|
||||
*/
|
||||
export function bindHandlers(initEvent, listeners, editor) {
|
||||
const validEvents = VALID_EVENTS.map((event) => event.toLowerCase());
|
||||
Object.keys(listeners)
|
||||
.filter((key) => validEvents.includes(key.toLowerCase()))
|
||||
.forEach((key) => {
|
||||
const handler = listeners[key];
|
||||
if (typeof handler === 'function') {
|
||||
if (key === 'onInit') {
|
||||
handler(initEvent, editor);
|
||||
} else {
|
||||
editor.on(key.substring(2), (e) => handler(e, editor));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹出提示框
|
||||
*/
|
||||
export function openAlert(editor, option = {}) {
|
||||
editor?.windowManager?.open({
|
||||
title: option.title ?? '提示',
|
||||
body: {
|
||||
type: 'panel',
|
||||
items: [
|
||||
{
|
||||
type: 'htmlpanel',
|
||||
html: `<p>${option.content ?? ''}</p>`
|
||||
}
|
||||
]
|
||||
},
|
||||
buttons: [
|
||||
{
|
||||
type: 'cancel',
|
||||
name: 'closeButton',
|
||||
text: '确定',
|
||||
primary: true
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-drawer v-bind="props" @close="close" @afterVisibleChange="afterVisibleChange">
|
||||
<a-drawer v-bind="props" @close="close" @afterVisibleChange="afterVisibleChange" :width="isMobile ? 340 : props.width">
|
||||
<!-- 抽屉右上角的操作区域 -->
|
||||
<template #extra v-if="slots.extra">
|
||||
<slot name="extra"></slot>
|
||||
|
@ -31,14 +31,14 @@
|
|||
</a-tabs>
|
||||
<!-- 内容 -->
|
||||
<slot></slot>
|
||||
|
||||
<!-- 关闭按钮 -->
|
||||
<div class="close-button" @click="close" v-if="visible"><close-outlined /></div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
<script setup name="CommonDrawer">
|
||||
import { useSlots, watch, ref } from 'vue';
|
||||
import { useSlots, watch, ref, inject } from 'vue';
|
||||
import { LAYOUT_KEY, screenWidth } from '../../layout/util';
|
||||
|
||||
const slots = useSlots();
|
||||
const props = defineProps({
|
||||
|
@ -176,6 +176,20 @@ const props = defineProps({
|
|||
const emit = defineEmits(['close', 'afterVisibleChange', 'tabChange']);
|
||||
// 当前默认选中
|
||||
const currentActive = ref('1');
|
||||
|
||||
// 布局状态
|
||||
const layoutProvide = inject(LAYOUT_KEY, ref({ isMobile: screenWidth() < 768 }));
|
||||
|
||||
const isMobile = ref(false);
|
||||
|
||||
watch(
|
||||
() => layoutProvide.value,
|
||||
val => {
|
||||
isMobile.value = val.isMobile;
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
|
||||
// 关闭抽屉
|
||||
const close = e => {
|
||||
emit('close', e);
|
||||
|
@ -210,11 +224,14 @@ watch(
|
|||
width: 40px;
|
||||
height: 40px;
|
||||
font-size: 22px;
|
||||
background: #7127de;
|
||||
background: #6F9AE7;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
box-shadow: -2px 0px 4px 3px #0000001F;
|
||||
}
|
||||
:deep(.ant-drawer-content) {
|
||||
overflow: visible;
|
||||
|
|
|
@ -0,0 +1,386 @@
|
|||
<script>
|
||||
/** 弹窗组件 */
|
||||
import { defineComponent, ref, unref, computed, watch, onActivated, onDeactivated, nextTick, inject, h } from 'vue';
|
||||
import { Modal as AModal } from 'ant-design-vue/es';
|
||||
import ExpandOutlined from '@ant-design/icons-vue/es/icons/ExpandOutlined';
|
||||
import CompressOutlined from '@ant-design/icons-vue/es/icons/CompressOutlined';
|
||||
import { LAYOUT_KEY, screenWidth } from '../../layout/util';
|
||||
import {
|
||||
closedClass,
|
||||
movableClass,
|
||||
moveOutClass,
|
||||
moveOutPositiveClass,
|
||||
resizableClass,
|
||||
multipleClass,
|
||||
fullscreenClass,
|
||||
innerClass,
|
||||
hideClass,
|
||||
noResponsiveClass,
|
||||
collapseClass,
|
||||
navCollapseClass,
|
||||
bodyFullscreenClass,
|
||||
showTabsClass,
|
||||
sideMixClass,
|
||||
sideMixSingleClass,
|
||||
layoutTopClass,
|
||||
contentFullscreenClass,
|
||||
mobileClass,
|
||||
useModalMovable,
|
||||
useModalResizable,
|
||||
useModalAutoSetTop,
|
||||
getStyleString,
|
||||
getModalContainer,
|
||||
setModalTop,
|
||||
resetModalStyle,
|
||||
setInitPosition
|
||||
} from './util';
|
||||
import props from './props';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CommonModal',
|
||||
props,
|
||||
emits: ['update:visible', 'cancel', 'ok', 'change', 'update:fullscreen'],
|
||||
setup(props, { emit, slots }) {
|
||||
// 布局状态
|
||||
const layoutProvide = inject(LAYOUT_KEY, ref({ isMobile: screenWidth() < 768 }));
|
||||
|
||||
// 标题 ref
|
||||
const titleRef = ref(null);
|
||||
|
||||
// 弹窗是否全屏
|
||||
const isFullscreen = ref(props.fullscreen ?? false);
|
||||
|
||||
// 适配 keep-alive
|
||||
const isActivated = ref(true);
|
||||
|
||||
// 弹窗容器
|
||||
const modalContainer = ref();
|
||||
|
||||
// 限制在内部区域的 class
|
||||
const modalInnerClass = computed(() => {
|
||||
const layoutState = unref(layoutProvide);
|
||||
const classes = [];
|
||||
if (props.inner) {
|
||||
classes.push(innerClass);
|
||||
// 适配各种布局状态
|
||||
if (layoutState.collapse && !layoutState.isTopMenu) {
|
||||
classes.push(collapseClass);
|
||||
}
|
||||
if (layoutState.sideNavCollapse && layoutState.isMixSideMenu && !layoutState.isTopMenu) {
|
||||
classes.push(navCollapseClass);
|
||||
}
|
||||
if (layoutState.bodyFullscreen) {
|
||||
classes.push(bodyFullscreenClass);
|
||||
}
|
||||
if (layoutState.showTabs) {
|
||||
classes.push(showTabsClass);
|
||||
}
|
||||
if (layoutState.isMixSideMenu && !layoutState.isTopMenu) {
|
||||
classes.push(sideMixClass);
|
||||
if (!layoutState.haveSideMenuData) {
|
||||
classes.push(sideMixSingleClass);
|
||||
}
|
||||
}
|
||||
if (layoutState.isTopMenu) {
|
||||
classes.push(layoutTopClass);
|
||||
}
|
||||
if (layoutState.bodyFullscreen && layoutState.contentFullscreen) {
|
||||
classes.push(contentFullscreenClass);
|
||||
}
|
||||
if (layoutState.isMobile) {
|
||||
classes.push(mobileClass);
|
||||
}
|
||||
}
|
||||
return classes.join(' ');
|
||||
});
|
||||
|
||||
// 弹窗 wrap 的 class
|
||||
const modalWrapClass = computed(() => {
|
||||
const classes = [];
|
||||
if (!unref(layoutProvide).isMobile) {
|
||||
// 支持拖动
|
||||
if (props.movable) {
|
||||
classes.push(movableClass);
|
||||
}
|
||||
// 支持拖出屏幕
|
||||
if (props.moveOut) {
|
||||
classes.push(moveOutClass);
|
||||
}
|
||||
// 只允许右下方向拖出屏幕
|
||||
if (props.moveOutPositive) {
|
||||
classes.push(moveOutPositiveClass);
|
||||
}
|
||||
// 支持拉伸
|
||||
if (props.resizable) {
|
||||
classes.push(resizableClass);
|
||||
// 只允许单方向拉伸
|
||||
if (typeof props.resizable === 'string') {
|
||||
classes.push(resizableClass + '-' + props.resizable);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 支持打开多个并点击自动置顶
|
||||
if (props.multiple) {
|
||||
classes.push(multipleClass);
|
||||
}
|
||||
// 全屏
|
||||
if (isFullscreen.value) {
|
||||
classes.push(fullscreenClass);
|
||||
}
|
||||
// 弹窗是否处于关闭状态
|
||||
if (!props.visible) {
|
||||
classes.push(closedClass);
|
||||
}
|
||||
// 适配 keep-alive
|
||||
if (!isActivated.value && props.visible) {
|
||||
classes.push(hideClass);
|
||||
}
|
||||
// 限制在内部区域
|
||||
if (modalInnerClass.value) {
|
||||
classes.push(modalInnerClass.value);
|
||||
}
|
||||
// 关闭响应式
|
||||
if (unref(layoutProvide)?.styleResponsive === false) {
|
||||
classes.push(noResponsiveClass);
|
||||
}
|
||||
// 自定义 class
|
||||
if (props.wrapClassName) {
|
||||
classes.push(props.wrapClassName);
|
||||
}
|
||||
return classes.join(' ');
|
||||
});
|
||||
|
||||
// 弹窗 style
|
||||
const dialogStyle = computed(() => {
|
||||
if (!props.centered || unref(layoutProvide).isMobile) {
|
||||
return props.style;
|
||||
}
|
||||
const width = typeof props.width === 'number' ? `${props.width / 2}px` : `calc(${props.width} / 2)`;
|
||||
const styleObj = {
|
||||
'--modal-centered-left': `calc(50% - ${width})`
|
||||
};
|
||||
if (typeof props.style === 'string') {
|
||||
return getStyleString(styleObj) + props.style;
|
||||
} else if (typeof props.style === 'object' && props.style !== null) {
|
||||
return { ...styleObj, ...props.style };
|
||||
}
|
||||
return styleObj;
|
||||
});
|
||||
|
||||
// 遮罩组件的属性
|
||||
const modalMaskProps = computed(() => {
|
||||
const classes = ['ant-modal-mask'];
|
||||
// 限制在内部区域
|
||||
if (modalInnerClass.value) {
|
||||
classes.push(modalInnerClass.value);
|
||||
}
|
||||
// 适配 keep-alive
|
||||
if (!isActivated.value && props.visible) {
|
||||
classes.push(hideClass);
|
||||
}
|
||||
// 自定义 class
|
||||
if (props.maskClass) {
|
||||
classes.push(props.maskClass);
|
||||
}
|
||||
return { class: classes.join(' ') };
|
||||
});
|
||||
|
||||
// 弹窗是否显示遮罩层
|
||||
const modalMask = computed(() => (props.multiple ? false : props.mask));
|
||||
|
||||
// 更新 visible
|
||||
const updateVisible = visible => {
|
||||
emit('update:visible', visible);
|
||||
};
|
||||
|
||||
// visible 改变事件
|
||||
const onChange = visible => {
|
||||
emit('change', visible);
|
||||
};
|
||||
|
||||
// 弹窗关闭事件
|
||||
const onCancel = e => {
|
||||
emit('cancel', e);
|
||||
};
|
||||
|
||||
// 确定按钮点击事件
|
||||
const onOk = e => {
|
||||
emit('ok', e);
|
||||
};
|
||||
|
||||
// 弹窗全屏切换
|
||||
const toggleFullscreen = fullscreen => {
|
||||
if (typeof fullscreen === 'undefined') {
|
||||
isFullscreen.value = !isFullscreen.value;
|
||||
} else {
|
||||
isFullscreen.value = fullscreen;
|
||||
}
|
||||
emit('update:fullscreen', isFullscreen.value);
|
||||
};
|
||||
|
||||
// 更新弹窗容器属性
|
||||
const updateModalContainer = () => {
|
||||
if (props.multiple) {
|
||||
modalContainer.value = () => {
|
||||
return getModalContainer();
|
||||
};
|
||||
} else {
|
||||
modalContainer.value = props.getContainer;
|
||||
}
|
||||
};
|
||||
|
||||
// 加载支持拖动插件
|
||||
watch(
|
||||
() => props.movable,
|
||||
movable => {
|
||||
if (movable) {
|
||||
useModalMovable();
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
);
|
||||
|
||||
// 加载支持拉伸插件
|
||||
watch(
|
||||
() => props.resizable,
|
||||
movable => {
|
||||
if (movable) {
|
||||
useModalResizable();
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
);
|
||||
|
||||
// 加载点击自动置顶插件
|
||||
watch(
|
||||
() => props.multiple,
|
||||
multiple => {
|
||||
if (multiple) {
|
||||
useModalAutoSetTop();
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
);
|
||||
|
||||
// 更新全屏状态
|
||||
watch(
|
||||
() => props.fullscreen,
|
||||
fullscreen => {
|
||||
if (isFullscreen.value !== fullscreen) {
|
||||
isFullscreen.value = fullscreen;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// 更新弹窗打开状态
|
||||
watch(
|
||||
() => props.visible,
|
||||
visible => {
|
||||
if (visible) {
|
||||
nextTick(() => {
|
||||
const modalEl = titleRef.value?.parentNode?.parentNode?.parentNode?.parentNode;
|
||||
if (props.resetOnClose) {
|
||||
resetModalStyle(modalEl, props.width);
|
||||
}
|
||||
if (props.position) {
|
||||
setInitPosition(modalEl, props.position, props.moveOut, props.resetOnClose);
|
||||
}
|
||||
setModalTop(modalEl);
|
||||
});
|
||||
if (props.resetOnClose || props.destroyOnClose) {
|
||||
isFullscreen.value = props.fullscreen;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// 更新弹窗容器属性
|
||||
watch(
|
||||
() => props.getContainer,
|
||||
() => {
|
||||
updateModalContainer();
|
||||
}
|
||||
);
|
||||
|
||||
onDeactivated(() => {
|
||||
isActivated.value = false;
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
isActivated.value = true;
|
||||
});
|
||||
|
||||
updateModalContainer();
|
||||
|
||||
return () => {
|
||||
return h(
|
||||
AModal,
|
||||
{
|
||||
afterClose: props.afterClose,
|
||||
bodyStyle: props.bodyStyle,
|
||||
cancelText: props.cancelText,
|
||||
centered: props.centered,
|
||||
closable: props.closable,
|
||||
closeIcon: props.closeIcon,
|
||||
confirmLoading: props.confirmLoading,
|
||||
destroyOnClose: props.destroyOnClose,
|
||||
footer: props.footer,
|
||||
forceRender: props.forceRender,
|
||||
keyboard: props.keyboard,
|
||||
maskClosable: props.maskClosable,
|
||||
maskStyle: props.maskStyle,
|
||||
okText: props.okText,
|
||||
okType: props.okType,
|
||||
okButtonProps: props.okButtonProps,
|
||||
cancelButtonProps: props.cancelButtonProps,
|
||||
visible: props.visible,
|
||||
width: props.width,
|
||||
zIndex: props.zIndex,
|
||||
dialogClass: props.dialogClass,
|
||||
getContainer: modalContainer.value,
|
||||
mask: modalMask.value,
|
||||
wrapClassName: modalWrapClass.value,
|
||||
style: dialogStyle.value,
|
||||
maskProps: modalMaskProps.value,
|
||||
'onUpdate:visible': updateVisible,
|
||||
onChange,
|
||||
onCancel,
|
||||
onOk
|
||||
},
|
||||
{
|
||||
...slots,
|
||||
title: () => {
|
||||
const titleNode = slots.title ? slots.title() : props.title;
|
||||
const nodes = [h('div', { class: 'guns-modal-title-label' }, titleNode)];
|
||||
if (props.maxable) {
|
||||
const maxIconNode = slots.maxIcon
|
||||
? slots.maxIcon({ fullscreen: isFullscreen.value })
|
||||
: h(isFullscreen.value ? CompressOutlined : ExpandOutlined);
|
||||
nodes.push(
|
||||
h(
|
||||
'div',
|
||||
{
|
||||
class: 'guns-modal-icon-fullscreen',
|
||||
onClick: () => toggleFullscreen()
|
||||
},
|
||||
maxIconNode
|
||||
)
|
||||
);
|
||||
}
|
||||
return h('div', { ref: titleRef, class: 'guns-modal-title-group' }, nodes);
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style lang="less">
|
||||
@import url('./style/index.less');
|
||||
</style>
|
|
@ -0,0 +1,107 @@
|
|||
export const proProps = {
|
||||
// 是否可以拖动
|
||||
movable: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否可以拖出边界
|
||||
moveOut: Boolean,
|
||||
// 如果可以拖出边界是否只允许下右拖出
|
||||
moveOutPositive: Boolean,
|
||||
// 是否可以拉伸
|
||||
resizable: [Boolean, String],
|
||||
// 是否显示最大化切换按钮
|
||||
maxable: Boolean,
|
||||
// 是否支持打开多个
|
||||
multiple: Boolean,
|
||||
// 是否默认全屏
|
||||
fullscreen: Boolean,
|
||||
// 是否限制在主体内部
|
||||
inner: Boolean,
|
||||
// 是否在弹窗关闭后重置位置和大小
|
||||
resetOnClose: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 遮罩的类名
|
||||
maskClass: String,
|
||||
// 初始位置
|
||||
position: [String, Object]
|
||||
};
|
||||
|
||||
export const antCommonProps = {
|
||||
// Modal 是否垂直居中
|
||||
centered: Boolean,
|
||||
// Modal 是否显示关闭按钮
|
||||
closable: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 关闭时销毁 Modal 里的子元素
|
||||
destroyOnClose: Boolean,
|
||||
// 强制渲染 Modal
|
||||
forceRender: Boolean,
|
||||
// 是否支持键盘 esc 关闭
|
||||
keyboard: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否展示遮罩
|
||||
mask: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 点击蒙层是否允许关闭
|
||||
maskClosable: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 遮罩样式
|
||||
maskStyle: Object,
|
||||
// 对话框外层容器的类名
|
||||
wrapClassName: String,
|
||||
// 设置 Modal 的 z-index
|
||||
zIndex: {
|
||||
type: Number,
|
||||
default: 1000
|
||||
},
|
||||
// 可用于设置浮层的类名
|
||||
dialogClass: String
|
||||
};
|
||||
|
||||
export const antProps = {
|
||||
...antCommonProps,
|
||||
afterClose: Function,
|
||||
bodyStyle: Object,
|
||||
cancelText: String,
|
||||
closeIcon: Object,
|
||||
confirmLoading: Boolean,
|
||||
footer: String,
|
||||
getContainer: [
|
||||
Boolean,
|
||||
String,
|
||||
Object,
|
||||
Function
|
||||
],
|
||||
okText: String,
|
||||
okType: String,
|
||||
okButtonProps: Object,
|
||||
cancelButtonProps: Object,
|
||||
title: String,
|
||||
visible: Boolean,
|
||||
width: {
|
||||
type: [String, Number],
|
||||
default: 520
|
||||
},
|
||||
style: Object
|
||||
};
|
||||
|
||||
export const commonProps = {
|
||||
...antCommonProps,
|
||||
...proProps
|
||||
};
|
||||
|
||||
export default {
|
||||
...antProps,
|
||||
...proProps
|
||||
};
|
|
@ -0,0 +1,259 @@
|
|||
@import '../../../layout/style/themes/default.less';
|
||||
|
||||
/* 支持拖拽 */
|
||||
.ant-modal-wrap.guns-modal-movable > .ant-modal {
|
||||
padding-bottom: 0;
|
||||
|
||||
& > .ant-modal-content > .ant-modal-header {
|
||||
cursor: move;
|
||||
user-select: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* 支持拉伸 */
|
||||
.ant-modal-wrap.guns-modal-resizable > .ant-modal > .ant-modal-content:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
cursor: se-resize;
|
||||
background-image: linear-gradient(
|
||||
135deg,
|
||||
transparent 45%,
|
||||
@input-placeholder-color 0,
|
||||
@input-placeholder-color 55%,
|
||||
transparent 0,
|
||||
transparent 75%,
|
||||
@input-placeholder-color 0,
|
||||
@input-placeholder-color 85%,
|
||||
transparent 0
|
||||
);
|
||||
background-size: 10px 10px;
|
||||
background-position: 0 0;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.ant-modal-wrap.guns-modal-resizable-horizontal
|
||||
> .ant-modal
|
||||
> .ant-modal-content:after {
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
.ant-modal-wrap.guns-modal-resizable-vertical
|
||||
> .ant-modal
|
||||
> .ant-modal-content:after {
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
.ant-modal-wrap.guns-modal-resizable > .ant-modal,
|
||||
.ant-modal-wrap.guns-modal-wrap-fullscreen > .ant-modal {
|
||||
padding-bottom: 0;
|
||||
|
||||
& > .ant-modal-content {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
& > .ant-modal-body {
|
||||
flex: auto;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 全屏 */
|
||||
.ant-modal-wrap.guns-modal-wrap-fullscreen {
|
||||
overflow: hidden;
|
||||
|
||||
& > .ant-modal {
|
||||
top: 0 !important;
|
||||
left: 0 !important;
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
max-width: inherit !important;
|
||||
min-width: inherit !important;
|
||||
max-height: inherit !important;
|
||||
min-height: inherit !important;
|
||||
margin: 0 !important;
|
||||
transform-origin: center !important;
|
||||
border: 1px solid @border-color-split;
|
||||
|
||||
& > .ant-modal-content {
|
||||
border-radius: 0;
|
||||
|
||||
& > .ant-modal-header {
|
||||
cursor: default !important;
|
||||
}
|
||||
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ant-modal .guns-modal-icon-fullscreen {
|
||||
cursor: pointer;
|
||||
font-size: @font-size-base;
|
||||
color: @text-color-secondary;
|
||||
|
||||
&:hover {
|
||||
color: @icon-color-hover;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-modal .guns-modal-title-group {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
& > .guns-modal-title-label {
|
||||
flex: 1;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
/* 支持打开多个 */
|
||||
.guns-modal-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
z-index: @zindex-modal;
|
||||
--modal-multiple-z-index: @zindex-modal;
|
||||
}
|
||||
|
||||
.ant-modal-wrap.guns-modal-multiple {
|
||||
pointer-events: none;
|
||||
overflow: hidden;
|
||||
z-index: var(--modal-multiple-z-index) !important;
|
||||
}
|
||||
|
||||
/* 关闭响应式 */
|
||||
.ant-modal-wrap.guns-modal-no-responsive {
|
||||
position: absolute;
|
||||
|
||||
.ant-modal {
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* 限制在内部区域, 适配各种布局状态 */
|
||||
.guns-modal-hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.ant-modal-wrap.guns-modal-inner,
|
||||
.ant-modal-mask.guns-modal-inner {
|
||||
top: @header-height;
|
||||
left: @sidebar-width;
|
||||
transition: @sidebar-transition;
|
||||
}
|
||||
|
||||
.guns-state-show-tabs.guns-modal-inner {
|
||||
top: calc(@header-height + @tabs-height);
|
||||
}
|
||||
|
||||
.guns-state-collapse.guns-modal-inner {
|
||||
left: @sidebar-collapse-width;
|
||||
}
|
||||
|
||||
.guns-state-side-mix.guns-modal-inner {
|
||||
left: calc(@sidebar-nav-width + @sidebar-width - @sidebar-collapse-width);
|
||||
|
||||
&.guns-state-collapse {
|
||||
left: @sidebar-nav-width;
|
||||
}
|
||||
|
||||
&.guns-state-side-mix-single {
|
||||
left: @sidebar-nav-width;
|
||||
}
|
||||
}
|
||||
|
||||
.guns-state-nav-collapse.guns-modal-inner {
|
||||
left: @sidebar-width;
|
||||
|
||||
&.guns-state-side-mix-single {
|
||||
left: @sidebar-collapse-width;
|
||||
}
|
||||
|
||||
&.guns-state-collapse {
|
||||
left: @sidebar-collapse-width;
|
||||
}
|
||||
}
|
||||
|
||||
.guns-state-layout-top.guns-modal-inner {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.guns-state-body-fullscreen.guns-modal-inner {
|
||||
top: @tabs-height;
|
||||
left: 0 !important;
|
||||
}
|
||||
|
||||
.guns-state-content-fullscreen.guns-modal-inner {
|
||||
top: 0 !important;
|
||||
}
|
||||
|
||||
.guns-state-mobile.guns-modal-inner {
|
||||
left: 0 !important;
|
||||
}
|
||||
|
||||
/* 适配垂直居中 */
|
||||
.guns-modal-movable.ant-modal-centered,
|
||||
.guns-modal-resizable.ant-modal-centered {
|
||||
text-align: left;
|
||||
--modal-centered-left: auto;
|
||||
|
||||
& > .ant-modal {
|
||||
left: var(--modal-centered-left);
|
||||
}
|
||||
}
|
||||
|
||||
.project-modal {
|
||||
.ant-modal-content {
|
||||
border-radius: 8px;
|
||||
}
|
||||
.ant-modal-title {
|
||||
color: #262626;
|
||||
font-size: 18px !important;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
}
|
||||
.ant-modal-close-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
.guns-modal-icon-fullscreen {
|
||||
font-size: 17px;
|
||||
}
|
||||
.ant-modal-close-x {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.ant-modal-header {
|
||||
border-radius: 8px 8px 0 0;
|
||||
border-bottom: 0px !important;
|
||||
padding: 24px 24px 0px 24px !important;
|
||||
}
|
||||
.ant-modal-footer {
|
||||
padding: 6px 16px !important;
|
||||
border-top: 0px !important;
|
||||
border-radius: 0 0 8px 8px;
|
||||
}
|
||||
.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
.project-modal:not(.guns-modal-wrap-fullscreen) {
|
||||
.ant-modal-body {
|
||||
max-height: 70vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,485 @@
|
|||
export const containerClass = 'guns-modal-container';
|
||||
export const closedClass = 'guns-modal-closed';
|
||||
export const movableClass = 'guns-modal-movable';
|
||||
export const moveOutClass = 'guns-modal-move-out';
|
||||
export const moveOutPositiveClass = 'guns-modal-move-out-positive';
|
||||
export const resizableClass = 'guns-modal-resizable';
|
||||
export const resizableHorizontalClass = 'guns-modal-resizable-horizontal';
|
||||
export const resizableVerticalClass = 'guns-modal-resizable-vertical';
|
||||
export const multipleClass = 'guns-modal-multiple';
|
||||
export const fullscreenClass = 'guns-modal-wrap-fullscreen';
|
||||
export const innerClass = 'guns-modal-inner';
|
||||
export const hideClass = 'guns-modal-hide';
|
||||
export const closedResetClass = 'guns-modal-closed-reset';
|
||||
//
|
||||
export const noResponsiveClass = 'guns-modal-no-responsive';
|
||||
export const collapseClass = 'guns-state-collapse';
|
||||
export const navCollapseClass = 'guns-state-nav-collapse';
|
||||
export const bodyFullscreenClass = 'guns-state-body-fullscreen';
|
||||
export const showTabsClass = 'guns-state-show-tabs';
|
||||
export const sideMixClass = 'guns-state-side-mix';
|
||||
export const sideMixSingleClass = 'guns-state-side-mix-single';
|
||||
export const layoutTopClass = 'guns-state-layout-top';
|
||||
export const contentFullscreenClass = 'guns-state-content-fullscreen';
|
||||
export const mobileClass = 'guns-state-mobile';
|
||||
//
|
||||
const wrapClass = 'ant-modal-wrap';
|
||||
const modalClass = 'ant-modal';
|
||||
const headerClass = 'ant-modal-header';
|
||||
const modalDefaultZIndex = 1000;
|
||||
const defaultMinWidth = 260;
|
||||
const defaultMinHeight = 160;
|
||||
let movableIsUse = false;
|
||||
let resizableIsUse = false;
|
||||
let setTopIsUse = false;
|
||||
|
||||
/**
|
||||
* 初始化 modal 样式
|
||||
*/
|
||||
function initModalStyle(modalEl) {
|
||||
modalEl.style.top = modalEl.offsetTop + 'px';
|
||||
modalEl.style.left = modalEl.offsetLeft + 'px';
|
||||
modalEl.style.bottom = 'auto';
|
||||
modalEl.style.right = 'auto';
|
||||
modalEl.style.margin = '0';
|
||||
modalEl.style.position = 'relative';
|
||||
modalEl.style.display = 'inline-block';
|
||||
modalEl.style.verticalAlign = 'top';
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找最近的父元素
|
||||
* @param el 目标元素
|
||||
* @param parentClass 父元素class
|
||||
*/
|
||||
export function queryParentByClass(
|
||||
el,
|
||||
parentClass,
|
||||
stopHandle
|
||||
) {
|
||||
if (el == null || el === document) {
|
||||
return;
|
||||
}
|
||||
if (el.classList?.contains(parentClass)) {
|
||||
return el;
|
||||
}
|
||||
if (stopHandle && stopHandle(el) === true) {
|
||||
return;
|
||||
}
|
||||
return queryParentByClass(el.parentNode, parentClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 dom 样式
|
||||
* @param el
|
||||
*/
|
||||
function getCurrentStyle(el) {
|
||||
return el['currentStyle'] || window.getComputedStyle(el, null) || {};
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取样式对象的字符形式
|
||||
*/
|
||||
export function getStyleString(obj) {
|
||||
const keys = Object.keys(obj);
|
||||
if (!keys.length) {
|
||||
return '';
|
||||
}
|
||||
return keys.map((key) => key + ':' + obj[key]).join(';') + ';';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支持同时打开多个时的弹窗容器
|
||||
*/
|
||||
export function getModalContainer() {
|
||||
const elem = document.querySelector('.' + containerClass);
|
||||
if (elem) {
|
||||
return elem;
|
||||
}
|
||||
const el = document.createElement('div');
|
||||
el.classList.add(containerClass);
|
||||
document.body.appendChild(el);
|
||||
return el;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持打开多个时获取所有已打开的弹窗
|
||||
*/
|
||||
function getVisibleModalWrap() {
|
||||
return getModalContainer().querySelectorAll(
|
||||
`.${wrapClass}:not(.${closedClass})`
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持打开多个时获取已打开的最大 zIndex
|
||||
*/
|
||||
function getModalMaxIndex(el) {
|
||||
const wrapEl = getVisibleModalWrap();
|
||||
let maxIndex = 0;
|
||||
if (wrapEl) {
|
||||
for (let i = 0; i < wrapEl.length; i++) {
|
||||
const index = Number(
|
||||
getCurrentStyle(wrapEl[i]).zIndex || modalDefaultZIndex
|
||||
);
|
||||
if (index >= maxIndex) {
|
||||
if (el) {
|
||||
if (wrapEl[i] !== el) {
|
||||
maxIndex = index + 1;
|
||||
}
|
||||
} else {
|
||||
maxIndex = index + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return maxIndex || modalDefaultZIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹窗移动事件处理
|
||||
*/
|
||||
const modalMovableListener = function (event) {
|
||||
const headerEl = queryParentByClass(event.target, headerClass);
|
||||
if (!headerEl) {
|
||||
return;
|
||||
}
|
||||
const modalEl = headerEl.parentNode?.parentNode;
|
||||
const wrapEl = modalEl?.parentNode;
|
||||
const wrapClass = wrapEl?.classList;
|
||||
if (wrapClass?.contains(fullscreenClass)) {
|
||||
return;
|
||||
}
|
||||
const moveOut = wrapClass?.contains(moveOutClass);
|
||||
const moveOutPositive = wrapClass?.contains(moveOutPositiveClass);
|
||||
const multiple = wrapClass?.contains(multipleClass);
|
||||
if (!wrapClass?.contains(movableClass) && !moveOut) {
|
||||
return;
|
||||
}
|
||||
modalEl.style.userSelect = 'none';
|
||||
initModalStyle(modalEl);
|
||||
// 获取原始位置
|
||||
const downX = event.clientX;
|
||||
const downY = event.clientY;
|
||||
const downOL = modalEl.offsetLeft;
|
||||
const downOT = modalEl.offsetTop;
|
||||
|
||||
// 鼠标移动事件
|
||||
const mousemoveFn = function (e) {
|
||||
let l = e.clientX - downX + downOL;
|
||||
let t = e.clientY - downY + downOT;
|
||||
// 边界判断
|
||||
if (!moveOut) {
|
||||
const limitL = wrapEl.clientWidth - modalEl.clientWidth - 1;
|
||||
if (l < 0) {
|
||||
l = 0;
|
||||
} else if (l > limitL) {
|
||||
l = limitL;
|
||||
}
|
||||
const limitT = wrapEl.clientHeight - modalEl.clientHeight - 1;
|
||||
if (t > limitT) {
|
||||
t = limitT;
|
||||
}
|
||||
if (t < 0) {
|
||||
t = 0;
|
||||
}
|
||||
} else if (moveOutPositive) {
|
||||
const limitL = wrapEl.clientWidth - 50;
|
||||
if (l < 0) {
|
||||
l = 0;
|
||||
} else if (multiple && l > limitL) {
|
||||
l = limitL;
|
||||
}
|
||||
const limitT = wrapEl.clientHeight - 50;
|
||||
if (multiple && t > limitT) {
|
||||
t = limitT;
|
||||
}
|
||||
if (t < 0) {
|
||||
t = 0;
|
||||
}
|
||||
}
|
||||
// 移动 dialog
|
||||
modalEl.style.left = l + 'px';
|
||||
modalEl.style.top = t + 'px';
|
||||
modalEl.style.transformOrigin = 'center';
|
||||
};
|
||||
|
||||
// 鼠标抬起事件
|
||||
const mouseupFn = function () {
|
||||
modalEl.style.userSelect = '';
|
||||
document.removeEventListener('mousemove', mousemoveFn);
|
||||
document.removeEventListener('mouseup', mouseupFn);
|
||||
};
|
||||
|
||||
// 添加鼠标事件监听
|
||||
document.addEventListener('mousemove', mousemoveFn);
|
||||
document.addEventListener('mouseup', mouseupFn);
|
||||
};
|
||||
|
||||
/**
|
||||
* 弹窗拉伸事件处理
|
||||
*/
|
||||
const modalResizableListener = function (event) {
|
||||
const modalEl = queryParentByClass(event.target, modalClass);
|
||||
if (!modalEl) {
|
||||
return;
|
||||
}
|
||||
const wrapEl = modalEl.parentNode;
|
||||
const wrapClass = wrapEl?.classList;
|
||||
if (!wrapClass?.contains(resizableClass)) {
|
||||
return;
|
||||
}
|
||||
if (wrapClass?.contains(fullscreenClass)) {
|
||||
return;
|
||||
}
|
||||
const moveOut = wrapClass?.contains(moveOutClass);
|
||||
const canSetWidth = !wrapClass?.contains(resizableVerticalClass);
|
||||
const canSetHeight = !wrapClass?.contains(resizableHorizontalClass);
|
||||
const limitX =
|
||||
modalEl.clientWidth +
|
||||
modalEl.offsetLeft -
|
||||
wrapEl.scrollLeft +
|
||||
wrapEl.offsetLeft;
|
||||
const limitY =
|
||||
modalEl.clientHeight +
|
||||
modalEl.offsetTop -
|
||||
wrapEl.scrollTop +
|
||||
wrapEl.offsetTop;
|
||||
if (
|
||||
event.clientX > limitX ||
|
||||
limitX - event.clientX > 10 ||
|
||||
event.clientY > limitY ||
|
||||
limitY - event.clientY > 10
|
||||
) {
|
||||
return;
|
||||
}
|
||||
modalEl.style.userSelect = 'none';
|
||||
initModalStyle(modalEl);
|
||||
// 获取原始位置
|
||||
const downX = event.clientX;
|
||||
const downY = event.clientY;
|
||||
const downW = modalEl.clientWidth;
|
||||
const downH = modalEl.clientHeight;
|
||||
|
||||
// 鼠标移动事件
|
||||
const mousemoveFn = function (e) {
|
||||
if (canSetWidth) {
|
||||
const w = e.clientX - downX + downW;
|
||||
const maxW = wrapEl.clientWidth - modalEl.offsetLeft - 1;
|
||||
const nw =
|
||||
(w < defaultMinWidth
|
||||
? defaultMinWidth
|
||||
: !moveOut && w > maxW
|
||||
? maxW
|
||||
: w) + 'px';
|
||||
modalEl.style.width = nw;
|
||||
modalEl.style.maxWidth = nw;
|
||||
modalEl.style.minWidth = nw;
|
||||
}
|
||||
if (canSetHeight) {
|
||||
const h = e.clientY - downY + downH;
|
||||
const maxH = wrapEl.clientHeight - modalEl.offsetTop - 1;
|
||||
const nh =
|
||||
(h < defaultMinHeight
|
||||
? defaultMinHeight
|
||||
: !moveOut && h > maxH
|
||||
? maxH
|
||||
: h) + 'px';
|
||||
modalEl.style.height = nh;
|
||||
modalEl.style.maxHeight = nh;
|
||||
modalEl.style.minHeight = nh;
|
||||
}
|
||||
modalEl.style.transformOrigin = 'center';
|
||||
};
|
||||
|
||||
// 鼠标抬起事件
|
||||
const mouseupFn = function () {
|
||||
modalEl.style.userSelect = '';
|
||||
document.removeEventListener('mousemove', mousemoveFn);
|
||||
document.removeEventListener('mouseup', mouseupFn);
|
||||
};
|
||||
|
||||
// 添加鼠标事件监听
|
||||
document.addEventListener('mousemove', mousemoveFn);
|
||||
document.addEventListener('mouseup', mouseupFn);
|
||||
};
|
||||
|
||||
/**
|
||||
* 弹窗点击置顶事件处理
|
||||
*/
|
||||
const modalAutoSetTopListener = function (event) {
|
||||
const modalEl = queryParentByClass(event.target, modalClass);
|
||||
setModalTop(modalEl);
|
||||
};
|
||||
|
||||
/**
|
||||
* 弹窗支持拖动
|
||||
*/
|
||||
export function useModalMovable() {
|
||||
if (movableIsUse) {
|
||||
return;
|
||||
}
|
||||
movableIsUse = true;
|
||||
document.removeEventListener('mousedown', modalMovableListener);
|
||||
document.addEventListener('mousedown', modalMovableListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹窗支持拉伸
|
||||
*/
|
||||
export function useModalResizable() {
|
||||
if (resizableIsUse) {
|
||||
return;
|
||||
}
|
||||
resizableIsUse = true;
|
||||
document.removeEventListener('mousedown', modalResizableListener);
|
||||
document.addEventListener('mousedown', modalResizableListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹窗点击自动置顶
|
||||
*/
|
||||
export function useModalAutoSetTop() {
|
||||
if (setTopIsUse) {
|
||||
return;
|
||||
}
|
||||
setTopIsUse = true;
|
||||
document.removeEventListener('mousedown', modalAutoSetTopListener);
|
||||
document.addEventListener('mousedown', modalAutoSetTopListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 让弹窗置顶
|
||||
* @param modalEl
|
||||
*/
|
||||
export function setModalTop(modalEl) {
|
||||
const wrapEl = modalEl?.parentNode;
|
||||
if (!wrapEl?.classList?.contains(multipleClass)) {
|
||||
return;
|
||||
}
|
||||
const zIndex = Number(getCurrentStyle(wrapEl).zIndex || modalDefaultZIndex);
|
||||
const maxIndex = getModalMaxIndex(wrapEl);
|
||||
if (maxIndex > zIndex) {
|
||||
wrapEl.style.zIndex = String(maxIndex);
|
||||
const rootEl = wrapEl.parentNode;
|
||||
if (rootEl) {
|
||||
rootEl.style.setProperty('--modal-multiple-z-index', String(maxIndex));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置弹窗位置、大小等
|
||||
* @param selector 选择器
|
||||
* @param width 默认宽度
|
||||
*/
|
||||
export function resetModalStyle(
|
||||
modalEl,
|
||||
width
|
||||
) {
|
||||
if (!modalEl) {
|
||||
return;
|
||||
}
|
||||
modalEl.style.top = '';
|
||||
modalEl.style.left = '';
|
||||
modalEl.style.bottom = '';
|
||||
modalEl.style.right = '';
|
||||
modalEl.style.margin = '';
|
||||
modalEl.style.position = '';
|
||||
modalEl.style.display = '';
|
||||
modalEl.style.verticalAlign = '';
|
||||
modalEl.style.height = '';
|
||||
modalEl.style.maxHeight = '';
|
||||
modalEl.style.minHeight = '';
|
||||
if (width != null) {
|
||||
modalEl.style.width = typeof width === 'number' ? width + 'px' : width;
|
||||
}
|
||||
modalEl.style.maxWidth = '';
|
||||
modalEl.style.minWidth = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置弹窗位置
|
||||
* @param modalEl 弹窗 el
|
||||
* @param position 位置
|
||||
* @param moveOut 是否可以拉出容器
|
||||
*/
|
||||
export function setModalPosition(
|
||||
modalEl,
|
||||
position,
|
||||
moveOut
|
||||
) {
|
||||
const wrapEl = modalEl.parentNode;
|
||||
if (!wrapEl) {
|
||||
return;
|
||||
}
|
||||
initModalStyle(modalEl);
|
||||
const maxTop = wrapEl.clientHeight - modalEl.clientHeight - (moveOut ? 0 : 2);
|
||||
const maxLeft = wrapEl.clientWidth - modalEl.clientWidth - (moveOut ? 0 : 1);
|
||||
if (position === 'top') {
|
||||
modalEl.style.top = '0px';
|
||||
modalEl.style.left = `${maxLeft / 2}px`;
|
||||
} else if (position === 'bottom') {
|
||||
modalEl.style.top = `${maxTop}px`;
|
||||
modalEl.style.left = `${maxLeft / 2}px`;
|
||||
} else if (position === 'left') {
|
||||
modalEl.style.top = `${maxTop / 2}px`;
|
||||
modalEl.style.left = '0px';
|
||||
} else if (position === 'right') {
|
||||
modalEl.style.top = `${maxTop / 2}px`;
|
||||
modalEl.style.left = `${maxLeft}px`;
|
||||
} else if (position === 'leftTop') {
|
||||
modalEl.style.top = '0px';
|
||||
modalEl.style.left = '0px';
|
||||
} else if (position === 'leftBottom') {
|
||||
modalEl.style.top = `${maxTop}px`;
|
||||
modalEl.style.left = '0px';
|
||||
} else if (position === 'rightTop') {
|
||||
modalEl.style.top = '0px';
|
||||
modalEl.style.left = `${maxLeft}px`;
|
||||
} else if (position === 'rightBottom') {
|
||||
modalEl.style.top = `${maxTop}px`;
|
||||
modalEl.style.left = `${maxLeft}px`;
|
||||
} else if (position === 'center') {
|
||||
modalEl.style.top = `${maxTop / 2}px`;
|
||||
modalEl.style.left = `${maxLeft / 2}px`;
|
||||
} else if (typeof position === 'object') {
|
||||
if (position.top != null) {
|
||||
modalEl.style.top =
|
||||
typeof position.top === 'number' ? `${position.top}px` : position.top;
|
||||
} else if (position.left != null) {
|
||||
modalEl.style.top = `${maxTop / 2}px`;
|
||||
}
|
||||
if (position.left != null) {
|
||||
modalEl.style.left =
|
||||
typeof position.left === 'number'
|
||||
? `${position.left}px`
|
||||
: position.left;
|
||||
} else if (position.top != null) {
|
||||
modalEl.style.left = `${maxLeft / 2}px`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置弹窗初始位置
|
||||
* @param modalEl 弹窗 el
|
||||
* @param position 位置
|
||||
* @param moveOut 是否可以拉出容器
|
||||
* @param force 是否强制更新
|
||||
*/
|
||||
export function setInitPosition(
|
||||
modalEl,
|
||||
position,
|
||||
moveOut,
|
||||
force
|
||||
) {
|
||||
if (
|
||||
modalEl &&
|
||||
position &&
|
||||
(force || !modalEl.getAttribute('init-position'))
|
||||
) {
|
||||
modalEl.setAttribute('init-position', '1');
|
||||
setModalPosition(modalEl, position, moveOut);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
<template>
|
||||
<a-space :size="16">
|
||||
<template v-for="(tool, index) in tools">
|
||||
<!-- 刷新 -->
|
||||
<CommonToolItem v-if="tool === 'reload'" :key="'reload' + index" :placement="tipsPlacement" title="刷新" @click="reload">
|
||||
<ReloadOutlined />
|
||||
</CommonToolItem>
|
||||
<!-- 密度设置 -->
|
||||
<CommonToolItem v-if="tool === 'size'" :key="'size' + index" :placement="tipsPlacement" title="密度">
|
||||
<a-dropdown :trigger="['click']" :overlay-style="{ minWidth: '80px' }" placement="bottomRight">
|
||||
<ColumnHeightOutlined />
|
||||
<template #overlay>
|
||||
<a-menu :selected-keys="selectedKeys" @click="updateSize">
|
||||
<a-menu-item key="default">默认</a-menu-item>
|
||||
<a-menu-item key="middle">中等</a-menu-item>
|
||||
<a-menu-item key="small">紧凑</a-menu-item>
|
||||
</a-menu>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</CommonToolItem>
|
||||
<!-- 列设置 -->
|
||||
<CommonToolItem v-if="tool === 'columns'" :key="'columns' + index" :placement="tipsPlacement" title="列设置" @click="columnConfig">
|
||||
<SettingOutlined />
|
||||
</CommonToolItem>
|
||||
<!-- 全屏切换 -->
|
||||
<CommonToolItem
|
||||
v-if="tool === 'fullscreen'"
|
||||
:key="'fullscreen' + index"
|
||||
:placement="tipsPlacement"
|
||||
:title="props.fullscreen ? '取消全屏' : '全屏'"
|
||||
@click="toggleFullscreen"
|
||||
>
|
||||
<FullscreenExitOutlined v-if="props.fullscreen" />
|
||||
<FullscreenOutlined v-else />
|
||||
</CommonToolItem>
|
||||
</template>
|
||||
|
||||
<!-- 自定义列 -->
|
||||
<Custom
|
||||
v-model:visible="isShowCustom"
|
||||
v-if="isShowCustom"
|
||||
:data="props.columns"
|
||||
@done="updateColumns"
|
||||
:fieldBusinessCode="fieldBusinessCode"
|
||||
/>
|
||||
</a-space>
|
||||
</template>
|
||||
|
||||
<script setup name="TableTool">
|
||||
import { computed, ref } from 'vue';
|
||||
import { getSizeCacheKey } from '../util';
|
||||
|
||||
const props = defineProps({
|
||||
// 工具按钮布局
|
||||
tools: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['reload', 'size', 'columns', 'fullscreen'];
|
||||
}
|
||||
},
|
||||
// 表格尺寸
|
||||
size: {
|
||||
type: String,
|
||||
default: 'small'
|
||||
},
|
||||
// 表格列配置
|
||||
columns: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
// 业务编码
|
||||
fieldBusinessCode: String,
|
||||
// 是否是全屏状态
|
||||
fullscreen: Boolean,
|
||||
// 列配置缓存本地的 key
|
||||
cacheKey: String
|
||||
});
|
||||
|
||||
const emits = defineEmits(['reload', 'update:size', 'update:columns', 'update:fullscreen']);
|
||||
|
||||
// 是否显示自定义列
|
||||
const isShowCustom = ref(false);
|
||||
|
||||
// tooltip 的方向
|
||||
const tipsPlacement = computed(() => {
|
||||
return props.fullscreen ? 'bottom' : 'top';
|
||||
});
|
||||
|
||||
// 表格尺寸下拉选中
|
||||
const selectedKeys = computed(() => {
|
||||
return [props.size];
|
||||
});
|
||||
|
||||
/* 刷新表格 */
|
||||
const reload = () => {
|
||||
emits('reload');
|
||||
};
|
||||
|
||||
/* 修改表格尺寸 */
|
||||
const updateSize = ({ key }) => {
|
||||
if (props.cacheKey) {
|
||||
localStorage.setItem(getSizeCacheKey(props.cacheKey), JSON.stringify(key));
|
||||
}
|
||||
emits('update:size', key);
|
||||
};
|
||||
|
||||
// 列配置
|
||||
const columnConfig = () => {
|
||||
isShowCustom.value = true;
|
||||
};
|
||||
|
||||
// 关闭自定义列
|
||||
const updateColumns = columns => {
|
||||
emits('update:columns', columns);
|
||||
};
|
||||
|
||||
/* 全屏切换 */
|
||||
const toggleFullscreen = () => {
|
||||
emits('update:fullscreen', !props.fullscreen);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="less"></style>
|
|
@ -1,20 +1,55 @@
|
|||
<template>
|
||||
<a-row class="table-top">
|
||||
<div :class="['table-top', { 'table-fullscreen': tableFullscreen }, { 'table-height-100': props.height100 }]">
|
||||
<div class="table-tool" v-if="props.showTool">
|
||||
<div class="table-tool-top">
|
||||
<div class="table-tool-top-left">
|
||||
<a-space :size="16" class="table-tool-top-left-space">
|
||||
<span class="total-num" v-if="showToolTotal">共 {{ props.isPage ? pagination.total : list?.length }} 个</span>
|
||||
<slot name="toolLeft"></slot>
|
||||
</a-space>
|
||||
</div>
|
||||
<div class="table-tool-top-right">
|
||||
<a-space :size="16">
|
||||
<slot name="toolRight"></slot>
|
||||
<!-- 工具栏 -->
|
||||
<TableTool
|
||||
v-if="props.showTableTool"
|
||||
:tools="props.tools"
|
||||
:size="tableSize"
|
||||
:cacheKey="cacheKey"
|
||||
:fullscreen="tableFullscreen"
|
||||
@reload="reload"
|
||||
:columns="tableColumn"
|
||||
:fieldBusinessCode="props.fieldBusinessCode"
|
||||
@update:size="onTableSizeChange"
|
||||
@update:columns="onColumnsChange"
|
||||
@update:fullscreen="onFullscreenChange"
|
||||
/>
|
||||
</a-space>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-tool-bottom">
|
||||
<slot name="toolBottom"></slot>
|
||||
</div>
|
||||
</div>
|
||||
<a-table
|
||||
:data-source="list"
|
||||
:row-key="rowId"
|
||||
:size="size"
|
||||
:size="tableSize"
|
||||
class="table"
|
||||
:bordered="bordered"
|
||||
style="width: 100%"
|
||||
:columns="
|
||||
columns.filter((col, num) => {
|
||||
if (col.isShow) return col;
|
||||
tableColumn.filter((col, num) => {
|
||||
if (col?.checked) return col;
|
||||
})
|
||||
"
|
||||
:loading="tableLoading"
|
||||
:defaultExpandedRowKeys="props.defaultExpandedRowKeys"
|
||||
v-model:expandedRowKeys="expandedRowKeys"
|
||||
:expandIconColumnIndex="props.expandIconColumnIndex"
|
||||
:pagination="isPage ? pagination : false"
|
||||
@change="tableChange"
|
||||
@expand="expand"
|
||||
:row-selection="
|
||||
rowSelection
|
||||
? {
|
||||
|
@ -29,11 +64,12 @@
|
|||
"
|
||||
:scroll="list?.length > 0 ? scroll : { y: '100%' }"
|
||||
:customRow="customRow"
|
||||
:childrenColumnName="props.childrenColumnName"
|
||||
>
|
||||
<template v-slot:[item]="scope" v-for="item in renderArr">
|
||||
<template v-slot:[item]="scope" v-for="item in renderArr" :key="item + 'slot'">
|
||||
<template v-if="item == 'bodyCell'">
|
||||
<slot :name="item" :scope="scope" v-bind="scope || {}">
|
||||
<template v-if="scope.column.title == '序号'">{{ scope.index + 1 }}</template>
|
||||
<template v-if="scope.column?.title == '序号'">{{ scope.index + 1 }}</template>
|
||||
</slot>
|
||||
</template>
|
||||
<template v-else>
|
||||
|
@ -41,12 +77,21 @@
|
|||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="CommonTable">
|
||||
import { onMounted, reactive, ref, useSlots, watch } from 'vue';
|
||||
<script setup>
|
||||
import { getCacheSize, getInitColumnsAndCache } from './util';
|
||||
import { onMounted, reactive, ref, useSlots, watch, nextTick, defineAsyncComponent } from 'vue';
|
||||
import Request from '@/utils/request/request-util';
|
||||
import { camelToUnderline } from '@/utils/common/util';
|
||||
import { CustomApi } from '@/components/common/Custom/api/CustomApi';
|
||||
|
||||
const TableTool = defineAsyncComponent(() => import('./components/table-tool.vue'));
|
||||
|
||||
defineOptions({
|
||||
name: 'GunsTable'
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
// 表格配置项
|
||||
|
@ -136,10 +181,85 @@ const props = defineProps({
|
|||
dataSource: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
expandIconColumnIndex: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
isLoad: {
|
||||
type: Function,
|
||||
default: () => {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
// 多选选中数据, v-model
|
||||
selection: Array,
|
||||
// 外部加载
|
||||
loading: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 默认展开的行
|
||||
defaultExpandedRowKeys: Array,
|
||||
// 展开的行控制属性
|
||||
expandedRowKeys: Array,
|
||||
// 是否顶部操作栏
|
||||
showTool: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否显示操作栏
|
||||
showTableTool: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 工具按钮布局
|
||||
tools: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['reload', 'size', 'columns', 'fullscreen'];
|
||||
}
|
||||
},
|
||||
// 列配置缓存本地的 key
|
||||
cacheKey: String,
|
||||
// 业务标识的编码 用于自定义列
|
||||
fieldBusinessCode: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否显示头部总数
|
||||
showToolTotal: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// children 名称
|
||||
childrenColumnName: {
|
||||
type: String,
|
||||
default: 'children'
|
||||
},
|
||||
// 是否拼接参数到url上
|
||||
montageParams: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
height100: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
});
|
||||
|
||||
const emits = defineEmits(['tableListChange', 'onSelect', 'onSelectAll']);
|
||||
const emits = defineEmits([
|
||||
'tableListChange',
|
||||
'onSelect',
|
||||
'onSelectAll',
|
||||
'customRowClick',
|
||||
'getTotal',
|
||||
'update:selection',
|
||||
'expand',
|
||||
'size-change',
|
||||
'columns-change',
|
||||
'fullscreen-change'
|
||||
]);
|
||||
// 数据列表
|
||||
const list = ref([]);
|
||||
// 表格加载动画
|
||||
|
@ -167,15 +287,46 @@ const currentSelectedRows = ref([]);
|
|||
const slots = useSlots();
|
||||
const renderArr = Object.keys(slots);
|
||||
|
||||
// 展开行设置
|
||||
const expandedRowKeys = ref([]);
|
||||
|
||||
// 表格大小
|
||||
const tableSize = ref('small');
|
||||
|
||||
// 是否是全屏状态
|
||||
const tableFullscreen = ref(false);
|
||||
|
||||
// 表格列配置
|
||||
const tableColumn = ref([]);
|
||||
|
||||
onMounted(() => {
|
||||
getColumnConfig(true);
|
||||
|
||||
if (props.isInit) {
|
||||
getTableList();
|
||||
}
|
||||
});
|
||||
|
||||
// 获取列配置
|
||||
const getColumnConfig = async (init = false) => {
|
||||
let newColumns = props.columns;
|
||||
if (props.fieldBusinessCode && init) {
|
||||
const res = await CustomApi.getUserConfig({ fieldBusinessCode: props.fieldBusinessCode });
|
||||
if (res.tableWidthJson) {
|
||||
newColumns = JSON.parse(res.tableWidthJson);
|
||||
}
|
||||
}
|
||||
if (newColumns) {
|
||||
tableColumn.value = getInitColumnsAndCache(newColumns, props.cacheKey, true);
|
||||
} else {
|
||||
tableColumn.value = [];
|
||||
}
|
||||
};
|
||||
|
||||
// 加载表格数据
|
||||
const getTableList = () => {
|
||||
if (props.url) {
|
||||
expandedRowKeys.value = [];
|
||||
if (props.url && props.isLoad()) {
|
||||
tableLoading.value = true;
|
||||
let params = {
|
||||
...props.where
|
||||
|
@ -183,7 +334,7 @@ const getTableList = () => {
|
|||
// 是否排序
|
||||
if (props.isSort) {
|
||||
params.sortBy = sortBy.value;
|
||||
params.orderBy = orderBy.value;
|
||||
params.orderBy = camelToUnderline(orderBy.value);
|
||||
}
|
||||
|
||||
// 需要分页
|
||||
|
@ -192,7 +343,24 @@ const getTableList = () => {
|
|||
params.pageSize = pagination.pageSize || 20;
|
||||
}
|
||||
|
||||
Request[props.methods](props.url, params)
|
||||
// 用于post拼接参数到url上
|
||||
let requestUrl = '';
|
||||
if (props.montageParams) {
|
||||
if (params === undefined) {
|
||||
params = {};
|
||||
}
|
||||
let paramUrl = '?';
|
||||
for (let field in params) {
|
||||
if (params[field]) {
|
||||
paramUrl = paramUrl + field + '=' + params[field] + '&';
|
||||
}
|
||||
}
|
||||
paramUrl = paramUrl.substring(0, paramUrl.length - 1);
|
||||
requestUrl = `${props.url}${paramUrl}`;
|
||||
} else {
|
||||
requestUrl = props.url;
|
||||
}
|
||||
Request[props.methods](requestUrl, props.montageParams ? {} : params)
|
||||
.then(res => {
|
||||
// 需要分页
|
||||
if (props.isPage) {
|
||||
|
@ -201,14 +369,16 @@ const getTableList = () => {
|
|||
}
|
||||
list.value = res.data.rows;
|
||||
pagination.total = res.data.totalRows;
|
||||
emits('getTotal', res.data.totalRows);
|
||||
} else {
|
||||
if (props.customData) {
|
||||
list.value = props.customData(res);
|
||||
}
|
||||
list.value = res.data;
|
||||
emits('getTotal', list.value?.length ?? 0);
|
||||
}
|
||||
|
||||
emits('tableListChange', list.value);
|
||||
// emits('tableListChange', list.value);
|
||||
})
|
||||
.finally(() => (tableLoading.value = false));
|
||||
}
|
||||
|
@ -221,8 +391,40 @@ const onSizeChange = (current, pageSize) => {
|
|||
};
|
||||
|
||||
// 表格选中事件
|
||||
const onSelectChange = selectedRowKeys => {
|
||||
const onSelectChange = (selectedRowKeys, rows) => {
|
||||
selectedRowList.value = selectedRowKeys;
|
||||
|
||||
const selectedRows = selectedRowKeys
|
||||
.map(k => {
|
||||
const temp = rows.find(d => getFieldValue(d, props.rowId) === k);
|
||||
if (temp != null) {
|
||||
return temp;
|
||||
}
|
||||
if (props.selection == null || !props.selection.length) {
|
||||
return null;
|
||||
}
|
||||
return props.selection.find(t => getFieldValue(t, props.rowId) === k);
|
||||
})
|
||||
.filter(d => d != null);
|
||||
emits('update:selection', selectedRows);
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取任意数据任意字段的值, 支持多层 *.*
|
||||
* @param data 数据
|
||||
* @param field 字段
|
||||
*/
|
||||
const getFieldValue = (data, field) => {
|
||||
if (typeof field === 'function') {
|
||||
return field(data);
|
||||
}
|
||||
if (field) {
|
||||
let value = data;
|
||||
field.split('.').forEach(f => {
|
||||
value = value ? value[f] : null;
|
||||
});
|
||||
return value;
|
||||
}
|
||||
};
|
||||
|
||||
// 用户手动选择/取消选择某列的回调
|
||||
|
@ -261,8 +463,10 @@ const tableChange = (pagination, filters, sorter) => {
|
|||
* 重置
|
||||
*/
|
||||
const reload = () => {
|
||||
pagination.current = 1;
|
||||
getTableList();
|
||||
nextTick(() => {
|
||||
pagination.current = 1;
|
||||
getTableList();
|
||||
});
|
||||
};
|
||||
|
||||
// 行点击事件
|
||||
|
@ -293,10 +497,40 @@ const customRow = (record, index) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
emits('customRowClick', record, index);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
// 展开
|
||||
const expand = (expanded, record) => {
|
||||
emits('expand', expanded, record);
|
||||
};
|
||||
|
||||
const setList = data => {
|
||||
setTimeout(() => {
|
||||
list.value = [...data];
|
||||
}, 500);
|
||||
};
|
||||
|
||||
/* 表格大小事件 */
|
||||
const onTableSizeChange = value => {
|
||||
tableSize.value = value;
|
||||
emits('size-change', value);
|
||||
};
|
||||
|
||||
/* 表格列改变事件 */
|
||||
const onColumnsChange = value => {
|
||||
tableColumn.value = value;
|
||||
emits('columns-change', value);
|
||||
};
|
||||
|
||||
/* 表格全屏切换切换事件 */
|
||||
const onFullscreenChange = value => {
|
||||
tableFullscreen.value = value;
|
||||
emits('fullscreen-change', value);
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.dataSource,
|
||||
val => {
|
||||
|
@ -304,11 +538,75 @@ watch(
|
|||
list.value = val;
|
||||
}
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.columns,
|
||||
columns => {
|
||||
onColumnsChange(columns);
|
||||
},
|
||||
{
|
||||
deep: true
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.selection,
|
||||
selection => {
|
||||
if (props.isRadio) {
|
||||
return;
|
||||
}
|
||||
if (selection?.length) {
|
||||
const keys = selection.map(d => getFieldValue(d, props.rowId));
|
||||
if (keys.length !== selectedRowList.value.length) {
|
||||
selectedRowList.value = keys;
|
||||
} else {
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
if (!selectedRowList.value.includes(keys[i])) {
|
||||
selectedRowList.value = keys;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (selectedRowList.value.length) {
|
||||
selectedRowList.value = [];
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
deep: true
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.loading,
|
||||
val => {
|
||||
tableLoading.value = val;
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.expandedRowKeys,
|
||||
val => {
|
||||
expandedRowKeys.value = val;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.size,
|
||||
val => {
|
||||
tableSize.value = getCacheSize(props.cacheKey) ?? props.size ?? 'small';
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
|
||||
defineExpose({
|
||||
reload,
|
||||
list,
|
||||
setList,
|
||||
expandedRowKeys,
|
||||
tableLoading,
|
||||
selectedRowList
|
||||
});
|
||||
|
@ -318,44 +616,116 @@ defineExpose({
|
|||
.table-top {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.table-bottom {
|
||||
position: absolute;
|
||||
bottom: 15px;
|
||||
left: -20px;
|
||||
}
|
||||
}
|
||||
.table-tool {
|
||||
min-height: 50px;
|
||||
padding: 8px 16px;
|
||||
display: flex;
|
||||
height: auto;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
border: 1px solid rgba(197, 207, 209, 0.4);
|
||||
border-top-right-radius: 8px;
|
||||
border-top-left-radius: 8px;
|
||||
|
||||
.table-tool-top {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
flex: auto;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
.table-tool-top-left,
|
||||
.table-tool-top-right {
|
||||
display: flex;
|
||||
flex: auto;
|
||||
align-items: center;
|
||||
}
|
||||
.table-tool-top-left {
|
||||
margin-right: 10px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.table-tool-top-right {
|
||||
white-space: nowrap;
|
||||
justify-content: end;
|
||||
}
|
||||
|
||||
.table-tool-top-left-space {
|
||||
width: 100%;
|
||||
|
||||
:deep(.ant-space-item:last-child) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table-tool-bottom {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.total-num {
|
||||
font-size: 16px;
|
||||
color: #60666b;
|
||||
}
|
||||
:deep(.ant-table) {
|
||||
border-left: 1px solid rgba(197, 207, 209, 0.4);
|
||||
border-right: 1px solid rgba(197, 207, 209, 0.4);
|
||||
border-bottom: 1px solid rgba(197, 207, 209, 0.4);
|
||||
border-top: v-bind('props.showTool ? 0 : "1px solid rgba(197, 207, 209, 0.4)"');
|
||||
}
|
||||
:deep(.table) {
|
||||
width: 100%;
|
||||
flex: auto;
|
||||
::-webkit-scrollbar {
|
||||
width: 10px !important;
|
||||
}
|
||||
}
|
||||
:deep(.ant-spin-nested-loading) {
|
||||
height: 100%;
|
||||
.ant-spin-container {
|
||||
.table-height-100 {
|
||||
:deep(.ant-spin-nested-loading) {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.ant-table-container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.ant-table-body {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
table {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
.ant-spin-container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.ant-table-container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.ant-table-body {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
table {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.ant-table {
|
||||
flex: 1;
|
||||
.ant-table {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-table-body) {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
@ -366,4 +736,43 @@ defineExpose({
|
|||
:deep(.ant-table-bordered div.ant-table-body:before) {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.table-fullscreen {
|
||||
z-index: 999;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: auto;
|
||||
padding: 0 0 16px 0;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
|
||||
.ant-table-pagination {
|
||||
margin-bottom: 0;
|
||||
padding: 0 16px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.table-tool {
|
||||
justify-content: left;
|
||||
min-height: 50px;
|
||||
height: auto !important;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.table-tool-top-left,
|
||||
.table-tool-top-right {
|
||||
flex: none !important;
|
||||
}
|
||||
|
||||
.table-tool-top-left {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
:deep(.ant-table-thead .ant-table-cell-fix-right-first) {
|
||||
right: 1px !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -0,0 +1,220 @@
|
|||
import { eachTreeData } from '@/utils/common/menu-util'
|
||||
|
||||
/**
|
||||
* 获取表格密度缓存的 key
|
||||
*/
|
||||
export function getSizeCacheKey(cacheKey) {
|
||||
return `${cacheKey}Size`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取缓存的表格密度
|
||||
* @param cacheKey 缓存的 key
|
||||
*/
|
||||
export function getCacheSize(cacheKey) {
|
||||
if (cacheKey) {
|
||||
const size = localStorage.getItem(getSizeCacheKey(cacheKey));
|
||||
if (size) {
|
||||
return JSON.parse(size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取初始显示的表格列
|
||||
* @param columns 列配置
|
||||
*/
|
||||
export function getInitColumns(columns) {
|
||||
const data = [];
|
||||
columns.forEach((d) => {
|
||||
if (d.children?.length) {
|
||||
const children = getInitColumns(d.children);
|
||||
if (children.length) {
|
||||
data.push({ ...d, checked: true, children });
|
||||
}
|
||||
} else {
|
||||
data.push({ ...d, checked: d.hideInTable ? false : true, });
|
||||
}
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取初始显示的表格列
|
||||
* @param columns 列配置
|
||||
* @param cacheKey 缓存的 key
|
||||
* @param sortable 是否排序
|
||||
*/
|
||||
export function getInitColumnsAndCache(
|
||||
columns,
|
||||
cacheKey,
|
||||
sortable
|
||||
) {
|
||||
const cacheSetting = getCacheCols(cacheKey);
|
||||
if (!cacheSetting) {
|
||||
return getInitColumns(columns);
|
||||
}
|
||||
return getCheckedColumns(
|
||||
columns,
|
||||
cacheSetting.data,
|
||||
cacheSetting.checkedIds,
|
||||
sortable
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取显示的列配置
|
||||
* @param columns 原始列数据
|
||||
* @param cols 列配置数据
|
||||
* @param checkedIds 选中数据的 id
|
||||
* @param sortable 是否进行排序
|
||||
*/
|
||||
export function getCheckedColumns(
|
||||
columns,
|
||||
cols,
|
||||
checkedIds,
|
||||
sortable
|
||||
) {
|
||||
const data = [];
|
||||
if (columns) {
|
||||
columns.forEach((d) => {
|
||||
const key = getColKey(d);
|
||||
const temp = cols.find((c) => c.id === key);
|
||||
const fixed = temp?.fixed ?? d.fixed;
|
||||
const checked = temp?.checked ?? true;
|
||||
if (d.children) {
|
||||
const children = getCheckedColumns(
|
||||
d.children,
|
||||
cols,
|
||||
checkedIds,
|
||||
sortable
|
||||
);
|
||||
if (children.length) {
|
||||
data.push({ ...d, fixed, checked, children });
|
||||
}
|
||||
} else {
|
||||
data.push({ ...d, fixed, checked });
|
||||
}
|
||||
});
|
||||
}
|
||||
// 排序
|
||||
if (sortable && data.length) {
|
||||
data.sort((a, b) => {
|
||||
const aId = getColKey(a);
|
||||
const bId = getColKey(b);
|
||||
let ai = cols.findIndex((c) => c.id === aId);
|
||||
let bi = cols.findIndex((c) => c.id === bId);
|
||||
// 父级列处理
|
||||
if (ai === -1 && a.children?.length) {
|
||||
const id = getColKey(a.children[0]);
|
||||
ai = cols.findIndex((c) => c.id === id);
|
||||
}
|
||||
if (bi === -1 && b.children?.length) {
|
||||
const id = getColKey(b.children[0]);
|
||||
bi = cols.findIndex((c) => c.id === id);
|
||||
}
|
||||
// 固定列处理
|
||||
if (ai === -1 && a.hideInSetting && a.fixed === 'right') {
|
||||
ai = cols.length;
|
||||
}
|
||||
if (a.fixed === true || a.fixed === 'left') {
|
||||
ai -= cols.length;
|
||||
} else if (a.fixed === 'right' || (a.hideInSetting && !a.fixed)) {
|
||||
ai += cols.length;
|
||||
}
|
||||
if (bi === -1 && b.hideInSetting && b.fixed === 'right') {
|
||||
bi = cols.length;
|
||||
}
|
||||
if (b.fixed === true || b.fixed === 'left') {
|
||||
bi -= cols.length;
|
||||
} else if (b.fixed === 'right' || (b.hideInSetting && !b.fixed)) {
|
||||
bi += cols.length;
|
||||
}
|
||||
return ai - bi;
|
||||
});
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取缓存的列配置下拉列表数据
|
||||
* @param cacheKey 缓存的 key
|
||||
*/
|
||||
export function getCacheCols(cacheKey) {
|
||||
if (cacheKey) {
|
||||
try {
|
||||
const temp = localStorage.getItem(getColsCacheKey(cacheKey));
|
||||
if (temp) {
|
||||
const data = JSON.parse(temp);
|
||||
if (Array.isArray(data)) {
|
||||
const checkedIds = data.filter((d) => d.checked).map((d) => d.id);
|
||||
return {
|
||||
data,
|
||||
checkedIds,
|
||||
isAllChecked: data.length > 0 && data.length === checkedIds.length,
|
||||
isIndeterminate:
|
||||
checkedIds.length !== 0 && data.length !== checkedIds.length
|
||||
};
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列配置缓存的 key
|
||||
*/
|
||||
export function getColsCacheKey(cacheKey) {
|
||||
return `${cacheKey}Cols`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列 key
|
||||
*/
|
||||
export function getColKey(column) {
|
||||
const key = column.key || column.dataIndex;
|
||||
return (Array.isArray(key) ? key : [key]).join('.');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列配置下拉列表数据
|
||||
* @param columns 原始列数据
|
||||
* @param untitledText 未命名列文字
|
||||
*/
|
||||
export function getSettingCols(
|
||||
columns,
|
||||
untitledText,
|
||||
cacheKey
|
||||
) {
|
||||
const cacheSetting = getCacheCols(cacheKey);
|
||||
if (cacheSetting) {
|
||||
return cacheSetting;
|
||||
}
|
||||
const data = [];
|
||||
if (columns) {
|
||||
eachTreeData(columns, (d) => {
|
||||
const id = getColKey(d);
|
||||
if (id && !d.children?.length && !d.hideInSetting) {
|
||||
data.push({
|
||||
id,
|
||||
key: d.key,
|
||||
width: d.width || 120,
|
||||
dataIndex: d.dataIndex,
|
||||
title: d.title || untitledText,
|
||||
checked: d.checked,
|
||||
fixed: d.fixed,
|
||||
...d
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
const checkedIds = data.filter((d) => d.checked).map((d) => d.id);
|
||||
return {
|
||||
data,
|
||||
checkedIds,
|
||||
isAllChecked: data.length > 0 && data.length === checkedIds.length,
|
||||
isIndeterminate:
|
||||
checkedIds.length !== 0 && data.length !== checkedIds.length
|
||||
};
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
<!-- 表头工具栏按钮 -->
|
||||
<template>
|
||||
<div class="guns-tool-item" @click="onClick">
|
||||
<ATooltip :title="title" :visible="visible" :placement="placement" @update:visible="updateVisible">
|
||||
<slot></slot>
|
||||
</ATooltip>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch } from 'vue';
|
||||
import { Tooltip as ATooltip } from 'ant-design-vue/es';
|
||||
|
||||
const props = defineProps({
|
||||
title: String,
|
||||
placement: String,
|
||||
disabled: Boolean
|
||||
});
|
||||
const emits = defineEmits(['click']);
|
||||
const visible = ref(false);
|
||||
|
||||
const updateVisible = value => {
|
||||
if (!props.disabled) {
|
||||
visible.value = value;
|
||||
}
|
||||
};
|
||||
|
||||
const onClick = e => {
|
||||
visible.value = false;
|
||||
emits('click', e);
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.disabled,
|
||||
value => {
|
||||
if (!value) {
|
||||
visible.value = false;
|
||||
}
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.guns-tool-item {
|
||||
font-size: 16px;
|
||||
}
|
||||
</style>
|
|
@ -1,12 +1,12 @@
|
|||
<template>
|
||||
<a-modal
|
||||
:width="526"
|
||||
<common-modal
|
||||
:width="600"
|
||||
:visible="props.visible"
|
||||
:confirm-loading="loading"
|
||||
:title="'自定义显示列'"
|
||||
:body-style="{ padding: '16px 24px' }"
|
||||
@ok="save"
|
||||
wrapClassName="custom-modal"
|
||||
wrapClassName="project-modal"
|
||||
:maskClosable="false"
|
||||
@cancel="cancel"
|
||||
>
|
||||
|
@ -27,44 +27,65 @@
|
|||
<icon-font iconClass="icon-opt-zidingyilie" color="#60666b" fontSize="20px"></icon-font>
|
||||
</td>
|
||||
<!-- 名称 -->
|
||||
<td style="text-align: left; width: 260px" class="">
|
||||
<td style="text-align: left; width: 260px">
|
||||
{{ element.title }}
|
||||
</td>
|
||||
<!-- 是否显示 -->
|
||||
<td style="text-align: center; padding: 8px" class="">
|
||||
<a-switch v-model:checked="element.isShow" :disabled="element.title == '序号'" />
|
||||
<td style="text-align: center; padding: 8px">
|
||||
<a-switch
|
||||
:checked="checkedIds.includes(element.id)"
|
||||
:disabled="element.title == '序号'"
|
||||
@change="showChange($event, element)"
|
||||
/>
|
||||
</td>
|
||||
<!-- 是否显示 -->
|
||||
<td style="text-align: center; padding: 8px 8px 8px 32px" class="">
|
||||
<td style="text-align: center; padding: 8px 8px 8px 32px; width: 150px">
|
||||
<a-input v-model:value="element.width"></a-input>
|
||||
</td>
|
||||
<td
|
||||
:class="[
|
||||
'table-tool-fixed-item',
|
||||
{
|
||||
active: element.fixed === true || element.fixed === 'left'
|
||||
}
|
||||
]"
|
||||
@click="onItemFixedLeft(element)"
|
||||
>
|
||||
<ATooltip title="固定在左侧">
|
||||
<VerticalRightOutlined />
|
||||
</ATooltip>
|
||||
</td>
|
||||
<td
|
||||
:class="[
|
||||
'table-tool-fixed-item',
|
||||
{
|
||||
active: element.fixed === 'right'
|
||||
}
|
||||
]"
|
||||
@click="onItemFixedRight(element)"
|
||||
>
|
||||
<ATooltip title="固定在右侧">
|
||||
<VerticalLeftOutlined />
|
||||
</ATooltip>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</draggable>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="footer">
|
||||
<div>
|
||||
<vxe-switch v-model="fieldType" :open-value="1" :close-value="2" :disabled="isDisabled"></vxe-switch>是否同步全体员工
|
||||
<a-tooltip>
|
||||
<template #title>只有管理员才能操作</template>
|
||||
<question-circle-outlined />
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<a-space>
|
||||
<a-button @click="cancel" :loading="loading">取消</a-button>
|
||||
<a-button type="primary" @click="save" :loading="loading">确定</a-button>
|
||||
</a-space>
|
||||
</div>
|
||||
<a-space>
|
||||
<a-button @click="cancel" class="border-radius grey" type="link" :loading="loading">取消</a-button>
|
||||
<a-button type="primary" @click="save" class="border-radius" :loading="loading">确定</a-button>
|
||||
</a-space>
|
||||
</template>
|
||||
</a-modal>
|
||||
</common-modal>
|
||||
</template>
|
||||
|
||||
<script setup name="Custom">
|
||||
import draggable from 'vuedraggable';
|
||||
import { CustomApi } from './api/CustomApi';
|
||||
import { computed, onMounted, ref } from 'vue';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { getSettingCols, getCheckedColumns, getInitColumnsAndCache } from '@/components/common/CommonTable/util';
|
||||
|
||||
const props = defineProps({
|
||||
// 弹窗是否打开
|
||||
|
@ -76,51 +97,66 @@ const props = defineProps({
|
|||
// 业务标识的编码
|
||||
fieldBusinessCode: {
|
||||
type: String,
|
||||
default: 'PROJECT_TABLE'
|
||||
}
|
||||
default: ''
|
||||
},
|
||||
cacheKey: String,
|
||||
untitledText: String
|
||||
});
|
||||
const emits = defineEmits(['update:visible', 'done']);
|
||||
|
||||
// store
|
||||
const userStore = useUserStore();
|
||||
// 是否禁用同步全体员工
|
||||
const isDisabled = computed(() => {
|
||||
if (userStore.authorities && userStore.authorities.find(item => item == 'SYS_CONFIG')) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
// 提交状态
|
||||
const loading = ref(false);
|
||||
// 配置项
|
||||
const columns = ref([]);
|
||||
// 是否同步全体员工
|
||||
const fieldType = ref(2);
|
||||
// 选中列表
|
||||
const checkedIds = ref([]);
|
||||
|
||||
onMounted(() => {
|
||||
if (props.data) {
|
||||
columns.value = deepClone(props.data);
|
||||
let arr = props.data;
|
||||
const hasCheckedField = props.data.some(item => 'checked' in item);
|
||||
if (!hasCheckedField) {
|
||||
arr = getInitColumnsAndCache(props.data, props.cacheKey, true);
|
||||
}
|
||||
const result = getSettingCols(arr, props.untitledText, props.cacheKey);
|
||||
columns.value = result.data;
|
||||
checkedIds.value = result.checkedIds;
|
||||
}
|
||||
});
|
||||
|
||||
const deepClone = obj => {
|
||||
let result;
|
||||
if (Array.isArray(obj)) {
|
||||
result = [];
|
||||
} else if (typeof obj === 'object' && obj !== null) {
|
||||
result = {};
|
||||
const showChange = (e, element) => {
|
||||
if (e) {
|
||||
checkedIds.value.push(element.id);
|
||||
} else {
|
||||
return obj;
|
||||
checkedIds.value.splice(
|
||||
checkedIds.value.findIndex(c => c === element.id),
|
||||
1
|
||||
);
|
||||
}
|
||||
Object.keys(obj).forEach(key => {
|
||||
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
||||
result[key] = deepClone(obj[key]);
|
||||
} else {
|
||||
result[key] = obj[key];
|
||||
}
|
||||
|
||||
columns.value.forEach(d => {
|
||||
d.checked = checkedIds.value.includes(d.id);
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
/* 固定列左侧 */
|
||||
const onItemFixedLeft = col => {
|
||||
col.fixed = col.fixed === true || col.fixed === 'left' ? false : 'left';
|
||||
onColumnSortChange();
|
||||
};
|
||||
|
||||
/* 固定列右侧 */
|
||||
const onItemFixedRight = col => {
|
||||
col.fixed = col.fixed === 'right' ? false : 'right';
|
||||
onColumnSortChange();
|
||||
};
|
||||
|
||||
/* 列配置拖动改变顺序 */
|
||||
const onColumnSortChange = () => {
|
||||
const newColumns = getCheckedColumns(columns.value, columns.value, checkedIds.value, true);
|
||||
columns.value = newColumns;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -136,24 +172,27 @@ const save = () => {
|
|||
if (item.width) item.width = Number(item.width);
|
||||
});
|
||||
|
||||
let params = {
|
||||
fieldBusinessCode: props.fieldBusinessCode,
|
||||
fieldType: fieldType.value,
|
||||
tableWidthJson: JSON.stringify(columns.value)
|
||||
};
|
||||
CustomApi.setTableWidth(params)
|
||||
.then(res => {
|
||||
// 移除加载框
|
||||
loading.value = false;
|
||||
const newColumns = getCheckedColumns(columns.value, columns.value, checkedIds.value, false);
|
||||
|
||||
// 关闭弹框,通过控制visible的值,传递给父组件
|
||||
updateVisible(false);
|
||||
// 触发父组件done事件
|
||||
emits('done', columns.value);
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
if (props.fieldBusinessCode) {
|
||||
let params = {
|
||||
fieldBusinessCode: props.fieldBusinessCode,
|
||||
fieldType: fieldType.value,
|
||||
tableWidthJson: JSON.stringify(newColumns)
|
||||
};
|
||||
CustomApi.setTableWidth(params)
|
||||
.then(res => {
|
||||
loading.value = false;
|
||||
updateVisible(false);
|
||||
emits('done', columns.value);
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
} else {
|
||||
updateVisible(false);
|
||||
emits('done', newColumns);
|
||||
}
|
||||
};
|
||||
|
||||
const updateVisible = value => {
|
||||
|
@ -179,47 +218,31 @@ const cancel = () => {
|
|||
border-radius: 5px;
|
||||
}
|
||||
}
|
||||
.footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
:deep(.ant-input) {
|
||||
background: rgba(197, 207, 209, 0.2) !important;
|
||||
}
|
||||
</style>
|
||||
<style lang="less">
|
||||
.custom-modal {
|
||||
.ant-modal-title {
|
||||
color: #262626;
|
||||
font-size: 18px !important;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
.table-tool-fixed-item {
|
||||
text-align: center;
|
||||
padding: 8px;
|
||||
font-size: 13px;
|
||||
margin-left: 4px;
|
||||
color: var(--text-color-secondary);
|
||||
transition: color 0.2s;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: var(--text-color);
|
||||
}
|
||||
.ant-modal-close-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
.ant-modal-header {
|
||||
border-bottom: 0px !important;
|
||||
padding: 16px 24px 0px 24px !important;
|
||||
}
|
||||
.ant-modal-footer {
|
||||
padding: 0px 16px 16px 16px !important;
|
||||
border-top: 0px !important;
|
||||
|
||||
&.active {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style lang="less">
|
||||
.outlined {
|
||||
.iconfont {
|
||||
cursor: move !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.ant-btn {
|
||||
border-radius: 4px !important;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -55,7 +55,7 @@ export default defineComponent({
|
|||
|
||||
// 下拉点击
|
||||
const dropClick = ({ key }) => {
|
||||
data.downName = props.list.filter(item => item[props.keyValue] == key)[0].name;
|
||||
data.downName = props.list.filter(item => item[props.keyValue] == key)[0][props.keyName];
|
||||
context.emit('dropClick', key);
|
||||
};
|
||||
|
||||
|
@ -92,6 +92,7 @@ export default defineComponent({
|
|||
border-radius: 4px;
|
||||
color: #60666B;
|
||||
font-size: 16px;
|
||||
font-weight: normal;
|
||||
border: 1px solid rgba(197, 207, 209, 0.60);
|
||||
}
|
||||
:deep(.ant-dropdown-content) {
|
||||
|
|
|
@ -79,7 +79,9 @@ const getOrgTreeData = () => {
|
|||
apiLoading.value = true;
|
||||
OrgApi.tree({ searchText: searchText.value, companySearchFlag: props.companySearchFlag })
|
||||
.then(res => {
|
||||
expandedKeys.value = res.data.expandOrgIdList;
|
||||
if (searchText.value) {
|
||||
expandedKeys.value = res.data.expandOrgIdList;
|
||||
}
|
||||
const arr = setIsLeaf(res.data.orgTreeList);
|
||||
treeData.value = arr;
|
||||
})
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
<template>
|
||||
<a-row class="user-select" :gutter="16">
|
||||
<!-- 公司选择 -->
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<SelectionOrgTree @treeSelect="treeSelect" :company-search-flag="true" ref="selectionOrgTreeRef"></SelectionOrgTree>
|
||||
</a-col>
|
||||
|
||||
<!-- 已选列表 -->
|
||||
<a-col :span="12" class="common-height paddingTop10">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="common-height paddingTop10">
|
||||
<selected-list v-model:list="companyList" @delete="deleteCompany" @deleteAll="deleteAll" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<template>
|
||||
<a-row class="user-select" :gutter="16">
|
||||
<!-- 公司部门选择 -->
|
||||
<a-col :span="6" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='6' class="height100">
|
||||
<SelectionOrgTree @treeSelect="treeSelect"></SelectionOrgTree>
|
||||
</a-col>
|
||||
<!-- 人员表格 -->
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<a-card :bordered="false" style="height: 100%">
|
||||
<!-- 搜索 -->
|
||||
<div class="search">
|
||||
|
@ -45,7 +45,7 @@
|
|||
</a-card>
|
||||
</a-col>
|
||||
<!-- 已选列表 -->
|
||||
<a-col :span="6" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='6' class="height100">
|
||||
<selected-list v-model:list="deptList" @delete="deleteUser" @deleteAll="deleteAll" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<a-row class="user-select" :gutter="16">
|
||||
<a-col :span="6" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='6' class="height100">
|
||||
<common-table
|
||||
:columns="typeColumns"
|
||||
bordered
|
||||
|
@ -15,7 +15,7 @@
|
|||
></common-table>
|
||||
</a-col>
|
||||
<!-- 字典选择 -->
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<common-table
|
||||
:columns="columns"
|
||||
:where="where"
|
||||
|
@ -33,7 +33,7 @@
|
|||
></common-table>
|
||||
</a-col>
|
||||
<!-- 已选列表 -->
|
||||
<a-col :span="6" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='6' class="height100">
|
||||
<selected-list v-model:list="dictList" @delete="deleteRelation" @deleteAll="deleteAll"></selected-list>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<a-row class="user-select" :gutter="16">
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<a-card :bordered="false" style="height: 100%">
|
||||
<!-- 搜索 -->
|
||||
<div class="search">
|
||||
|
@ -36,7 +36,7 @@
|
|||
</a-card>
|
||||
</a-col>
|
||||
<!-- 已选列表 -->
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<selected-list v-model:list="positionList" @delete="deleteUser" @deleteAll="deleteAll" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<a-row class="user-select" :gutter="16">
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<a-card :bordered="false" style="height: 100%">
|
||||
<!-- 搜索 -->
|
||||
<div class="search">
|
||||
|
@ -34,7 +34,7 @@
|
|||
</a-card>
|
||||
</a-col>
|
||||
<!-- 已选列表 -->
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<selected-list v-model:list="roleList" @delete="deleteUser" @deleteAll="deleteAll" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<template>
|
||||
<a-row class="user-select" :gutter="16">
|
||||
<!-- 公司部门选择 -->
|
||||
<a-col :span="6" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='6' class="height100">
|
||||
<SelectionOrgTree @treeSelect="treeSelect"></SelectionOrgTree>
|
||||
</a-col>
|
||||
<!-- 人员表格 -->
|
||||
<a-col :span="12" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='12' class="height100">
|
||||
<a-card :bordered="false" style="height: 100%">
|
||||
<!-- 搜索 -->
|
||||
<div class="search">
|
||||
|
@ -58,7 +58,7 @@
|
|||
</a-card>
|
||||
</a-col>
|
||||
<!-- 已选列表 -->
|
||||
<a-col :span="6" class="height100">
|
||||
<a-col :xs='24' :sm='24' :md='6' class="height100">
|
||||
<selected-list v-model:list="userList" @delete="deleteUser" @deleteAll="deleteAll" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
@cancel="updateVisible(false)"
|
||||
:footer="footer"
|
||||
:maskClosable="false"
|
||||
wrapClassName="selection-modal"
|
||||
v-if="visible"
|
||||
>
|
||||
<div class="box">
|
||||
|
@ -404,3 +405,17 @@ watch(
|
|||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="less">
|
||||
@media screen and (max-width: 768px) {
|
||||
.selection-modal {
|
||||
.ant-modal {
|
||||
width: 100% !important;
|
||||
top: 20px;
|
||||
}
|
||||
.user-select {
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -8,14 +8,15 @@
|
|||
</div>
|
||||
<!-- 左侧功能区 -->
|
||||
<div class="guns-admin-header-tool" v-if="showLeftTool">
|
||||
<div v-if="showCollapse && !collapse" class="guns-admin-header-tool-item" @click="toggleCollapse">
|
||||
<MenuFoldOutlined v-if="!collapse" />
|
||||
<div v-if="showCollapse" class="guns-admin-header-tool-item" @click="toggleCollapse">
|
||||
<MenuUnfoldOutlined v-if="collapse" />
|
||||
<MenuFoldOutlined v-else />
|
||||
</div>
|
||||
<div v-if="showRefresh" class="guns-admin-header-tool-item" @click="reloadPage">
|
||||
<ReloadOutlined />
|
||||
</div>
|
||||
<!-- 自定义左侧功能 -->
|
||||
<slot name="left"></slot>
|
||||
<slot name="left" v-if="!isMobile"></slot>
|
||||
</div>
|
||||
<!-- 面包屑导航 -->
|
||||
<div v-if="showBreadcrumb" class="guns-admin-breadcrumb">
|
||||
|
@ -48,7 +49,7 @@
|
|||
</LayoutMenus>
|
||||
</div>
|
||||
<!-- 右侧功能区 -->
|
||||
<slot name="right"></slot>
|
||||
<slot name="right" :isMobile="isMobile"></slot>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -56,6 +57,7 @@
|
|||
import { defineComponent, computed } from 'vue';
|
||||
import { Breadcrumb as ABreadcrumb, BreadcrumbItem as ABreadcrumbItem, message } from 'ant-design-vue/es';
|
||||
import LayoutMenus from './layout-menus';
|
||||
import props from '../props';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LayoutHeader',
|
||||
|
@ -95,7 +97,8 @@ export default defineComponent({
|
|||
// 是否显示面包屑导航
|
||||
showBreadcrumb: Boolean,
|
||||
// 面包屑导航分隔符
|
||||
breadcrumbSeparator: String
|
||||
breadcrumbSeparator: String,
|
||||
isMobile: Boolean,
|
||||
},
|
||||
emits: ['logo-click', 'reload-page', 'toggle-collapse', 'title-click'],
|
||||
setup(props, { emit }) {
|
||||
|
|
|
@ -18,14 +18,6 @@
|
|||
</template>
|
||||
</LayoutMenus>
|
||||
</div>
|
||||
<div
|
||||
v-if="showCollapse && collapse"
|
||||
class="guns-admin-sidebar-tool-item"
|
||||
@click="toggleCollapse"
|
||||
>
|
||||
<MenuUnfoldOutlined v-if="collapse" class="guns-admin-sidebar-tool-item-icon"/>
|
||||
<!-- <MenuFoldOutlined v-else class="guns-admin-sidebar-tool-item-icon"/> -->
|
||||
</div>
|
||||
<slot name="bottom"></slot>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -58,8 +50,6 @@ export default defineComponent({
|
|||
theme: String,
|
||||
// 是否折叠
|
||||
collapse: Boolean,
|
||||
// 是否显示折叠按钮
|
||||
showCollapse: Boolean,
|
||||
// 是否只保持一个子菜单展开
|
||||
uniqueOpen: Boolean,
|
||||
// 菜单缩进
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
/** 页签 */
|
||||
import { defineComponent, h } from 'vue';
|
||||
import {
|
||||
Dropdown as ADropdown,
|
||||
Menu as AMenu,
|
||||
MenuItem as AMenuItem
|
||||
} from 'ant-design-vue/es';
|
||||
import ReloadOutlined from '@ant-design/icons-vue/es/icons/ReloadOutlined';
|
||||
import ArrowLeftOutlined from '@ant-design/icons-vue/es/icons/ArrowLeftOutlined';
|
||||
import ArrowRightOutlined from '@ant-design/icons-vue/es/icons/ArrowRightOutlined';
|
||||
import CloseOutlined from '@ant-design/icons-vue/es/icons/CloseOutlined';
|
||||
import MinusCircleOutlined from '@ant-design/icons-vue/es/icons/MinusCircleOutlined';
|
||||
import { useLocale } from '@/utils/common/iframe-component';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LayoutTabItem',
|
||||
props: {
|
||||
active: String,
|
||||
tabKey: String,
|
||||
title: String,
|
||||
item: Object
|
||||
},
|
||||
emits: ['menu-click'],
|
||||
setup(props, { emit, slots }) {
|
||||
const { locale } = useLocale({ name: 'tabs' });
|
||||
|
||||
/* 菜单 item 点击事件 */
|
||||
const onClick = ({ key }) => {
|
||||
emit('menu-click', {
|
||||
key,
|
||||
tabKey: props.tabKey,
|
||||
item: props.item,
|
||||
active: props.active
|
||||
});
|
||||
};
|
||||
|
||||
/* 渲染菜单 item */
|
||||
const hMI = (
|
||||
key,
|
||||
label,
|
||||
icon,
|
||||
scale
|
||||
) => {
|
||||
return h(AMenuItem, { key }, () => {
|
||||
return h('div', { class: 'guns-dropdown-item' }, [
|
||||
h(icon, {
|
||||
style: { transform: scale ? `scale(${scale})` : void 0 }
|
||||
}),
|
||||
h('div', { class: 'guns-dropdown-item-label' }, label)
|
||||
]);
|
||||
});
|
||||
};
|
||||
|
||||
return () => {
|
||||
return h(
|
||||
ADropdown,
|
||||
{
|
||||
trigger: ['contextmenu'],
|
||||
overlayClassName: 'guns-admin-tab-context-menu'
|
||||
},
|
||||
{
|
||||
default: () => {
|
||||
const tSlot = slots['tab-title'];
|
||||
const option = { title: props.title, item: props.item };
|
||||
return h(
|
||||
'div',
|
||||
{ class: 'guns-admin-tab-title' },
|
||||
tSlot ? tSlot(option) : props.title
|
||||
);
|
||||
},
|
||||
overlay: () => {
|
||||
const ctxSlot = slots['context-menu'];
|
||||
if (ctxSlot) {
|
||||
return ctxSlot({
|
||||
tabKey: props.tabKey,
|
||||
item: props.item,
|
||||
active: props.active
|
||||
});
|
||||
}
|
||||
const items = [
|
||||
hMI('reload', locale.value.reload, ReloadOutlined),
|
||||
hMI('close', locale.value.close, CloseOutlined, 1.04),
|
||||
hMI('left', locale.value.closeLeft, ArrowLeftOutlined),
|
||||
hMI('right', locale.value.closeRight, ArrowRightOutlined),
|
||||
hMI('other', locale.value.closeOther, MinusCircleOutlined, 1.02)
|
||||
];
|
||||
return h(AMenu, { selectable: false, onClick }, () => items);
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
});
|
|
@ -0,0 +1,266 @@
|
|||
<!-- 页签栏 -->
|
||||
<template>
|
||||
<div ref="tabRef" :class="['guns-admin-tabs', { 'is-show-arrow': tabArrow }]">
|
||||
<TabTool :tab="true" :active="active === homePath" @click="onTabClick(homePath)">
|
||||
<LayoutTabItem :title="homeTitle" :tabKey="homePath" :active="active" @menu-click="onContextMenuClick">
|
||||
<template #tab-title="slotProps">
|
||||
<slot name="tab-title" v-bind="slotProps || {}">
|
||||
<HomeOutlined style="font-size: 14px" />
|
||||
</slot>
|
||||
</template>
|
||||
<template v-if="$slots['context-menu']" #context-menu="slotProps">
|
||||
<slot name="context-menu" v-bind="slotProps || {}"></slot>
|
||||
</template>
|
||||
</LayoutTabItem>
|
||||
</TabTool>
|
||||
<ATabs :hideAdd="true" :animated="false" type="editable-card" :activeKey="tabActive" @edit="onTabEdit" @tabClick="onTabClick">
|
||||
<ATabPane v-for="(item, index) in tabs" :key="index + '-' + item.key" :closable="item.closable">
|
||||
<template #tab>
|
||||
<LayoutTabItem :item="item" :title="item.title" :tabKey="item.key" :active="active" @menu-click="onContextMenuClick">
|
||||
<template v-if="$slots['tab-title']" #tab-title="slotProps">
|
||||
<slot name="tab-title" v-bind="slotProps || {}"></slot>
|
||||
</template>
|
||||
<template v-if="$slots['context-menu']" #context-menu="slotProps">
|
||||
<slot name="context-menu" v-bind="slotProps || {}"></slot>
|
||||
</template>
|
||||
</LayoutTabItem>
|
||||
</template>
|
||||
</ATabPane>
|
||||
<template #leftExtra>
|
||||
<TabTool v-if="tabArrow" class="guns-tab-arrow" @click="scrollLeft">
|
||||
<LeftOutlined />
|
||||
</TabTool>
|
||||
</template>
|
||||
<template #rightExtra>
|
||||
<TabTool v-if="tabArrow" class="guns-tab-arrow" @click="scrollRight">
|
||||
<RightOutlined />
|
||||
</TabTool>
|
||||
<TabTool>
|
||||
<TabDropdown :active="active" :showRefresh="showRefresh" :bodyFullscreen="bodyFullscreen" @menu-click="onDropMenuClick">
|
||||
<template v-if="$slots.dropdown" #dropdown="slotProps">
|
||||
<slot name="dropdown" v-bind="slotProps || {}"></slot>
|
||||
</template>
|
||||
</TabDropdown>
|
||||
</TabTool>
|
||||
</template>
|
||||
</ATabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { defineComponent, ref, computed, onMounted, onBeforeUnmount } from 'vue';
|
||||
import LeftOutlined from '@ant-design/icons-vue/es/icons/LeftOutlined';
|
||||
import RightOutlined from '@ant-design/icons-vue/es/icons/RightOutlined';
|
||||
import HomeOutlined from '@ant-design/icons-vue/es/icons/HomeOutlined';
|
||||
import { Tabs as ATabs, TabPane as ATabPane } from 'ant-design-vue/es';
|
||||
import SortableJs from 'sortablejs';
|
||||
import TabTool from './tab-tool.vue';
|
||||
import TabDropdown from './tab-dropdown';
|
||||
import LayoutTabItem from './layout-tab-item';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LayoutTabs',
|
||||
components: {
|
||||
LeftOutlined,
|
||||
RightOutlined,
|
||||
HomeOutlined,
|
||||
ATabs,
|
||||
ATabPane,
|
||||
TabTool,
|
||||
LayoutTabItem,
|
||||
TabDropdown
|
||||
},
|
||||
props: {
|
||||
// 标签页数据
|
||||
tabs: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
// 页签选中
|
||||
active: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// 主页路由地址
|
||||
homePath: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// 主页标题
|
||||
homeTitle: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// 右侧下拉是否显示刷新按钮
|
||||
showRefresh: Boolean,
|
||||
// 是否再次点击选中 tab 刷新
|
||||
clickReload: Boolean,
|
||||
// 内容区域是否处于全屏状态
|
||||
bodyFullscreen: Boolean,
|
||||
// 是否开启页签右键菜单
|
||||
tabContextMenu: Boolean,
|
||||
// 是否支持拖动排序
|
||||
tabSortable: Boolean,
|
||||
// 是否显示页签左右滚动箭头
|
||||
tabArrow: Boolean
|
||||
},
|
||||
emits: [
|
||||
'tab-change',
|
||||
'tab-remove',
|
||||
'tab-remove-all',
|
||||
'tab-remove-left',
|
||||
'tab-remove-right',
|
||||
'tab-remove-other',
|
||||
'fullscreen-body',
|
||||
'context-menu',
|
||||
'reload-page',
|
||||
'tabSortChange'
|
||||
],
|
||||
setup(props, { emit }) {
|
||||
// 当前数据
|
||||
const current = { sortIns: null };
|
||||
|
||||
// 根节点
|
||||
const tabRef = ref(null);
|
||||
|
||||
// 页签选中
|
||||
const tabActive = computed(() => {
|
||||
const i = props.tabs.findIndex(d => d.key === props.active);
|
||||
if (i !== -1) {
|
||||
return i + '-' + props.active;
|
||||
}
|
||||
return props.active;
|
||||
});
|
||||
|
||||
/* 刷新页面 */
|
||||
const reloadPage = () => {
|
||||
emit('reload-page');
|
||||
};
|
||||
|
||||
/* 处理页签点击 */
|
||||
const onTabClick = k => {
|
||||
const tab = props.tabs.find((d, i) => i + '-' + d.key === k);
|
||||
const key = tab?.key ?? k;
|
||||
if (props.active === key) {
|
||||
if (props.clickReload) {
|
||||
reloadPage();
|
||||
}
|
||||
return;
|
||||
}
|
||||
emit('tab-change', tab ? tab : { key });
|
||||
};
|
||||
|
||||
/* 处理页签删除 */
|
||||
const onTabEdit = (k, action) => {
|
||||
if (action === 'remove') {
|
||||
const tab = props.tabs.find((d, i) => i + '-' + d.key === k);
|
||||
const key = tab?.key ?? k;
|
||||
emit('tab-remove', { key, active: props.active });
|
||||
}
|
||||
};
|
||||
|
||||
/* 下拉菜单点击 */
|
||||
const onDropMenuClick = command => {
|
||||
const key = props.active;
|
||||
const option = { key, active: key };
|
||||
switch (command) {
|
||||
case 'left': // 关闭左侧
|
||||
emit('tab-remove-left', option);
|
||||
break;
|
||||
case 'right': // 关闭右侧
|
||||
emit('tab-remove-right', option);
|
||||
break;
|
||||
case 'other': // 关闭其他
|
||||
emit('tab-remove-other', option);
|
||||
break;
|
||||
case 'all': // 关闭全部
|
||||
emit('tab-remove-all', key);
|
||||
break;
|
||||
case 'reload': // 刷新当前
|
||||
reloadPage();
|
||||
break;
|
||||
case 'fullscreen': // 内容全屏
|
||||
emit('fullscreen-body', !props.bodyFullscreen);
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/* 右键菜单点击 */
|
||||
const onContextMenuClick = option => {
|
||||
emit('context-menu', option);
|
||||
};
|
||||
|
||||
/* 获取页签栏 DOM */
|
||||
const getTabWrapEl = () => {
|
||||
const el = tabRef.value;
|
||||
return el ? el.querySelector('.ant-tabs-nav-wrap') : void 0;
|
||||
};
|
||||
|
||||
/* 左滚动页签栏 */
|
||||
const scrollLeft = e => {
|
||||
const el = getTabWrapEl();
|
||||
if (!el) {
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
el.dispatchEvent(new WheelEvent('wheel', { deltaX: 0, deltaY: -100 }));
|
||||
};
|
||||
|
||||
/* 右滚动页签栏 */
|
||||
const scrollRight = e => {
|
||||
const el = getTabWrapEl();
|
||||
if (!el) {
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
el.dispatchEvent(new WheelEvent('wheel', { deltaX: 0, deltaY: 100 }));
|
||||
};
|
||||
|
||||
/* 页签拖动排序 */
|
||||
const bindDragSort = () => {
|
||||
unbindDragSort();
|
||||
const tabEl = getTabWrapEl();
|
||||
const el = tabEl ? tabEl.querySelector('.ant-tabs-nav-list') : void 0;
|
||||
if (!props.tabSortable || !el) {
|
||||
return;
|
||||
}
|
||||
current.sortIns = new SortableJs(el, {
|
||||
animation: 300,
|
||||
draggable: '.ant-tabs-tab',
|
||||
onUpdate: ({ oldDraggableIndex, newDraggableIndex }) => {
|
||||
if (typeof oldDraggableIndex === 'number' && typeof newDraggableIndex === 'number') {
|
||||
const temp = [...props.tabs];
|
||||
temp.splice(newDraggableIndex, 0, temp.splice(oldDraggableIndex, 1)[0]);
|
||||
emit('tabSortChange', temp);
|
||||
}
|
||||
},
|
||||
setData: () => {}
|
||||
});
|
||||
};
|
||||
|
||||
/* 销毁页签拖动排序 */
|
||||
const unbindDragSort = () => {
|
||||
current.sortIns && current.sortIns.destroy();
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
bindDragSort();
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
unbindDragSort();
|
||||
});
|
||||
|
||||
return {
|
||||
tabRef,
|
||||
tabActive,
|
||||
onTabEdit,
|
||||
onTabClick,
|
||||
onContextMenuClick,
|
||||
onDropMenuClick,
|
||||
scrollLeft,
|
||||
scrollRight
|
||||
};
|
||||
}
|
||||
});
|
||||
</script>
|
|
@ -13,7 +13,7 @@ import CloseCircleOutlined from '@ant-design/icons-vue/es/icons/CloseCircleOutli
|
|||
import ExpandOutlined from '@ant-design/icons-vue/es/icons/ExpandOutlined';
|
||||
import CompressOutlined from '@ant-design/icons-vue/es/icons/CompressOutlined';
|
||||
import MinusCircleOutlined from '@ant-design/icons-vue/es/icons/MinusCircleOutlined';
|
||||
import { useLocale } from '@/i18n/use-locale';
|
||||
import { useLocale } from '@/utils/common/iframe-component';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LayoutTabDropdown',
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<div :class="layoutClass">
|
||||
<!-- 顶栏 -->
|
||||
<LayoutHeader
|
||||
:is-mobile="isMobile"
|
||||
:levels="levelData"
|
||||
:collapse="collapse"
|
||||
:menus="headMenuData"
|
||||
|
@ -44,6 +45,34 @@
|
|||
</LayoutSidebar>
|
||||
<!-- 主体 -->
|
||||
<div class="guns-admin-body">
|
||||
<!-- 页签栏 -->
|
||||
<LayoutTabs
|
||||
v-if="showTabs"
|
||||
:tabs="tabData"
|
||||
:active="tabActive"
|
||||
:home-path="homePath"
|
||||
:home-title="homeRouteTitle"
|
||||
:click-reload="clickReload"
|
||||
:show-refresh="showTabRefresh"
|
||||
:body-fullscreen="bodyFullscreen"
|
||||
:tab-context-menu="tabContextMenu"
|
||||
:tabArrow="tabArrow"
|
||||
:tabSortable="tabSortable"
|
||||
@tab-change="onTabChange"
|
||||
@tab-remove="onTabRemove"
|
||||
@tab-remove-all="onTabRemoveAll"
|
||||
@tab-remove-left="onTabRemoveLeft"
|
||||
@tab-remove-right="onTabRemoveRight"
|
||||
@tab-remove-other="onTabRemoveOther"
|
||||
@fullscreen-body="updateBodyFullscreen"
|
||||
@context-menu="onTabContextMenu"
|
||||
@tabSortChange="onTabSortChange"
|
||||
@reload-page="reloadPage"
|
||||
>
|
||||
<template v-for="name in Object.keys($slots)" #[name]="props">
|
||||
<slot :name="name" v-bind="props || {}"></slot>
|
||||
</template>
|
||||
</LayoutTabs>
|
||||
<!-- 内容区域 -->
|
||||
<div ref="contentRef" class="guns-admin-content">
|
||||
<div class="guns-admin-content-view">
|
||||
|
@ -81,6 +110,7 @@ import {
|
|||
import { LAYOUT_KEY } from './util';
|
||||
import LayoutHeader from './components/layout-header.vue';
|
||||
import LayoutSidebar from './components/layout-sidebar.vue';
|
||||
import LayoutTabs from './components/layout-tabs.vue';
|
||||
import props from './props';
|
||||
|
||||
export default defineComponent({
|
||||
|
@ -88,6 +118,7 @@ export default defineComponent({
|
|||
components: {
|
||||
LayoutHeader,
|
||||
LayoutSidebar,
|
||||
LayoutTabs
|
||||
},
|
||||
props,
|
||||
emits: [
|
||||
|
@ -119,6 +150,8 @@ export default defineComponent({
|
|||
return props.styleResponsive ? screenWidth() < 768 : false;
|
||||
};
|
||||
|
||||
const isInit = ref(true);
|
||||
|
||||
// 内容区域 ref
|
||||
const contentRef = ref(null);
|
||||
|
||||
|
@ -195,6 +228,14 @@ export default defineComponent({
|
|||
{
|
||||
'guns-admin-logo-auto': (props.logoAutoSize || !showSidebar.value) && !isMobile.value
|
||||
},
|
||||
// 开启页签栏
|
||||
{ 'guns-admin-show-tabs': props.showTabs },
|
||||
// 圆点默认页签
|
||||
{ 'guns-admin-tab-default': props.tabStyle === 'default' },
|
||||
// 圆点风格页签
|
||||
{ 'guns-admin-tab-dot': props.tabStyle === 'dot' },
|
||||
// 卡片风格页签
|
||||
{ 'guns-admin-tab-card': props.tabStyle === 'card' },
|
||||
// 内容区域全屏
|
||||
{ 'guns-admin-body-fullscreen': props.bodyFullscreen },
|
||||
// 内容区域全屏不显示页签栏
|
||||
|
@ -208,7 +249,7 @@ export default defineComponent({
|
|||
|
||||
// 是否折叠侧栏菜单
|
||||
const sideMenuCollapse = computed(() => {
|
||||
return isMobile.value || props.collapse;
|
||||
return isMobile.value ? false : props.collapse;
|
||||
});
|
||||
|
||||
// 双侧栏一级菜单主题
|
||||
|
@ -445,6 +486,9 @@ export default defineComponent({
|
|||
sideMenuActive.value = [active].concat(openKeys);
|
||||
}
|
||||
|
||||
if (isMobile.value) {
|
||||
sideMenuActive.value = [active].concat(openKeys);
|
||||
}
|
||||
if (props.sideUniqueOpen) {
|
||||
sideMenuOpen.value = openKeys;
|
||||
} else {
|
||||
|
@ -621,7 +665,10 @@ export default defineComponent({
|
|||
watch(
|
||||
() => props.sideDefaultOpeneds,
|
||||
openeds => {
|
||||
sideMenuOpen.value = openeds ? openeds.slice() : [];
|
||||
if (isInit.value && props.sideInitOpenAll) {
|
||||
sideMenuOpen.value = openeds ? openeds.slice() : [];
|
||||
}
|
||||
isInit.value = false;
|
||||
},
|
||||
{
|
||||
deep: true,
|
||||
|
@ -676,7 +723,7 @@ export default defineComponent({
|
|||
isMixSideMenu: false,
|
||||
bodyFullscreen: props.bodyFullscreen,
|
||||
contentFullscreen: props.contentFullscreen,
|
||||
showTabs: false,
|
||||
showTabs: props.showTabs,
|
||||
haveSideMenuData: !!sideMenuData.value.length,
|
||||
styleResponsive: props.styleResponsive
|
||||
};
|
||||
|
@ -684,7 +731,9 @@ export default defineComponent({
|
|||
provide(LAYOUT_KEY, layoutProvide);
|
||||
|
||||
return {
|
||||
isMobile,
|
||||
tabData,
|
||||
isInit,
|
||||
levelData,
|
||||
sideNavData,
|
||||
sideMenuData,
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
/** 简体中文 */
|
||||
const localeValues = {
|
||||
// 多页签
|
||||
tabs: {
|
||||
reload: '刷新当前',
|
||||
fullscreen: '内容全屏',
|
||||
fullscreenExit: '退出全屏',
|
||||
closeLeft: '关闭左侧',
|
||||
closeRight: '关闭右侧',
|
||||
closeOther: '关闭其他',
|
||||
closeAll: '关闭全部',
|
||||
close: '关闭当前'
|
||||
},
|
||||
// table工具按钮
|
||||
tableTools: {
|
||||
refresh: '刷新',
|
||||
size: '密度',
|
||||
sizeOption: {
|
||||
medium: '默认',
|
||||
small: '中等',
|
||||
mini: '紧凑'
|
||||
},
|
||||
columns: '列设置',
|
||||
columnsOption: {
|
||||
columns: '列展示',
|
||||
reset: '重置',
|
||||
untitled: '无标题',
|
||||
fixedLeft: '固定在左侧',
|
||||
fixedRight: '固定在右侧'
|
||||
},
|
||||
fullscreen: '全屏'
|
||||
},
|
||||
// 文件列表
|
||||
fileList: {
|
||||
selectAll: '全选',
|
||||
selectTips: '已选中 {total} 个文件/文件夹',
|
||||
fileName: '文件名',
|
||||
fileSize: '大小',
|
||||
fileTimestamp: '修改日期'
|
||||
},
|
||||
// 图片裁剪
|
||||
cropper: {
|
||||
zoomIn: '放大',
|
||||
zoomOut: '缩小',
|
||||
rotateLeft: '向左旋转',
|
||||
rotateRight: '向右旋转',
|
||||
moveLeft: '左移',
|
||||
moveRight: '右移',
|
||||
moveUp: '上移',
|
||||
moveDown: '下移',
|
||||
flipX: '左右翻转',
|
||||
flipY: '上下翻转',
|
||||
reset: '重新开始',
|
||||
upload: '选择图片',
|
||||
ok: '完成',
|
||||
title: '裁剪图片'
|
||||
},
|
||||
// 地图选择
|
||||
map: {
|
||||
title: '选择位置',
|
||||
placeholder: '输入关键字搜索',
|
||||
message: '请点击列表选中位置',
|
||||
ok: '确定'
|
||||
},
|
||||
// 颜色选择
|
||||
colorPicker: {
|
||||
cancelText: '取消',
|
||||
okText: '确定'
|
||||
},
|
||||
upload: {
|
||||
uploading: '上传中',
|
||||
exception: '上传失败',
|
||||
retry: '重试'
|
||||
},
|
||||
tour: {
|
||||
skip: '跳过',
|
||||
prev: '上一步',
|
||||
next: '下一步',
|
||||
finish: '结束'
|
||||
}
|
||||
};
|
||||
|
||||
export default localeValues;
|
|
@ -24,6 +24,11 @@ export default {
|
|||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否开启页签栏
|
||||
showTabs: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否显示刷新按钮
|
||||
showRefresh: {
|
||||
type: Boolean,
|
||||
|
@ -45,7 +50,7 @@ export default {
|
|||
headStyle: {
|
||||
type: String,
|
||||
default: 'light',
|
||||
validator: (value) => {
|
||||
validator: value => {
|
||||
return ['light', 'dark', 'primary'].includes(value);
|
||||
}
|
||||
},
|
||||
|
@ -53,7 +58,7 @@ export default {
|
|||
sideStyle: {
|
||||
type: String,
|
||||
default: 'dark',
|
||||
validator: (value) => {
|
||||
validator: value => {
|
||||
return ['light', 'dark'].includes(value);
|
||||
}
|
||||
},
|
||||
|
@ -61,7 +66,7 @@ export default {
|
|||
layoutStyle: {
|
||||
type: String,
|
||||
default: 'side',
|
||||
validator: (value) => {
|
||||
validator: value => {
|
||||
return ['side', 'top', 'mix'].includes(value);
|
||||
}
|
||||
},
|
||||
|
@ -69,10 +74,18 @@ export default {
|
|||
sideMenuStyle: {
|
||||
type: String,
|
||||
default: 'default',
|
||||
validator: (value) => {
|
||||
validator: value => {
|
||||
return ['default', 'mix'].includes(value);
|
||||
}
|
||||
},
|
||||
// 标签页风格, default | dot | card
|
||||
tabStyle: {
|
||||
type: String,
|
||||
default: 'default',
|
||||
validator: (value) => {
|
||||
return ['default', 'dot', 'card'].includes(value);
|
||||
}
|
||||
},
|
||||
// 是否固定主体
|
||||
fixedBody: Boolean,
|
||||
// 内容区域宽度是否铺满
|
||||
|
@ -87,6 +100,11 @@ export default {
|
|||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 默认展开所有侧栏
|
||||
sideInitOpenAll: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 菜单缩进量
|
||||
inlineIndent: {
|
||||
type: Number,
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
}
|
||||
|
||||
.ant-menu-vertical > .ant-menu-item {
|
||||
display: flex;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,81 @@
|
|||
@import './themes/default.less';
|
||||
|
||||
/* 页签默认风格 */
|
||||
.guns-admin-tab-default,
|
||||
.guns-admin-tab-dot {
|
||||
.guns-admin-tabs {
|
||||
.ant-tabs-tab-active,
|
||||
.is-active {
|
||||
border-radius: 8px 8px 0 0 !important;
|
||||
position: relative;
|
||||
&::before {
|
||||
content: '';
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: block;
|
||||
transition: all 0.2s;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
bottom: -2px;
|
||||
left: -7px;
|
||||
background: radial-gradient(circle at left top, transparent 50%, var(--primary-1) 0);
|
||||
}
|
||||
&::after {
|
||||
content: '';
|
||||
left: auto !important;
|
||||
bottom: -2px !important;
|
||||
right: -7px !important;
|
||||
width: 10px !important;
|
||||
height: 10px !important;
|
||||
display: block !important;
|
||||
position: absolute;
|
||||
background: radial-gradient(circle at right top, transparent 50%, var(--primary-1) 0) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-tabs-tab:not(.ant-tabs-tab-active):hover,
|
||||
.is-tab:not(.is-active):hover {
|
||||
border-radius: 8px 8px 0 0 !important;
|
||||
position: relative;
|
||||
background-color: #eeeeee63 !important;
|
||||
&::before {
|
||||
content: '';
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: block;
|
||||
transition: all 0.2s;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
bottom: -2px;
|
||||
left: -7px;
|
||||
background: radial-gradient(circle at left top, transparent 50%, #eeeeee63 0);
|
||||
}
|
||||
&::after {
|
||||
content: '';
|
||||
left: auto !important;
|
||||
bottom: -2px !important;
|
||||
right: -7px !important;
|
||||
width: 10px !important;
|
||||
height: 10px !important;
|
||||
display: block !important;
|
||||
position: absolute;
|
||||
background: radial-gradient(circle at right top, transparent 50%, #eeeeee63 0) !important;
|
||||
}
|
||||
}
|
||||
.ant-tabs-nav-wrap {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.is-tab {
|
||||
margin-right: -10px;
|
||||
}
|
||||
|
||||
.ant-tabs-tab-remove {
|
||||
margin-left: 10px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 页签圆点风格 */
|
||||
.guns-admin-tab-dot .guns-admin-tabs {
|
||||
& > .ant-tabs > .ant-tabs-nav .ant-tabs-tab {
|
||||
|
@ -56,7 +132,7 @@
|
|||
}
|
||||
|
||||
.ant-tabs-tab + .ant-tabs-tab {
|
||||
margin-left: @tabs-card-padding;
|
||||
margin-left: @tabs-card-padding !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,6 +145,10 @@
|
|||
background: none;
|
||||
}
|
||||
|
||||
.ant-tabs-tab-remove {
|
||||
margin-left: 10px !important;
|
||||
}
|
||||
|
||||
& + .guns-admin-content {
|
||||
margin-top: @tabs-card-padding;
|
||||
|
||||
|
|
|
@ -15,6 +15,10 @@ export const SHOW_I18n = true;
|
|||
|
||||
// 是否使用图形验证码
|
||||
export const DRAW_CAPTCHA_FLAG = false;
|
||||
|
||||
// 是否开启自定义登录背景
|
||||
export const CUSTOM_LOGIN_BACKGROUND_ENABLE = false;
|
||||
|
||||
// SQL监控地址
|
||||
export const SQL_MONITOR_URL = 'http://localhost:8080/druid';
|
||||
|
||||
|
@ -101,5 +105,6 @@ export const WEBSOCKET_MESSAGE_TYPE = {
|
|||
|
||||
// 登录接口-是否需要rsa加密
|
||||
export const IS_NEED_RSA = false;
|
||||
// 是否显示新的流程设计
|
||||
export const SHOW_NEW_FLOW_DESIGN = false;
|
||||
|
||||
// 需要加密的接口
|
||||
export const NEED_ENCRYPT_API = [];
|
|
@ -17,8 +17,8 @@
|
|||
<img :src="logo" alt="logo" />
|
||||
</template>
|
||||
<!-- 顶栏右侧区域 -->
|
||||
<template #right>
|
||||
<header-tools />
|
||||
<template #right="rightProp">
|
||||
<header-tools :is-mobile="rightProp.isMobile"/>
|
||||
</template>
|
||||
<!-- 全局页脚 -->
|
||||
<template #footer>
|
||||
|
|
|
@ -55,9 +55,11 @@ export default {
|
|||
styleResponsive: 'Responsive',
|
||||
colorfulIcon: 'Colorful Icon',
|
||||
sideUniqueOpen: 'Menu Unique Open',
|
||||
sideInitOpenAll: 'Menu Default Open All',
|
||||
weakMode: 'Weak Mode',
|
||||
showFooter: 'Show Footer',
|
||||
showTabs: 'Show Tabs',
|
||||
tabsConfig: 'Tabs Config',
|
||||
tabStyle: 'Tab Style',
|
||||
tabStyles: {
|
||||
default: 'Default',
|
||||
|
|
|
@ -55,9 +55,11 @@ export default {
|
|||
styleResponsive: '移动端响应式',
|
||||
colorfulIcon: '侧栏彩色图标',
|
||||
sideUniqueOpen: '侧栏排他展开',
|
||||
sideInitOpenAll: '默认展开所有侧栏',
|
||||
weakMode: '开启色弱模式',
|
||||
showFooter: '开启全局页脚',
|
||||
showTabs: '开启多页签栏',
|
||||
tabsConfig: '多页签配置',
|
||||
tabStyle: '页签显示风格',
|
||||
tabStyles: {
|
||||
default: '默认',
|
||||
|
|
|
@ -55,9 +55,11 @@ export default {
|
|||
styleResponsive: '移動端響應式',
|
||||
colorfulIcon: '側欄彩色圖標',
|
||||
sideUniqueOpen: '側欄排他展開',
|
||||
sideInitOpenAll: '默認展開所有側欄',
|
||||
weakMode: '開啟色弱模式',
|
||||
showFooter: '開啟全域頁腳',
|
||||
showTabs: '開啟多頁簽欄',
|
||||
tabsConfig: '多頁簽配寘',
|
||||
tabStyle: '頁簽顯示風格',
|
||||
tabStyles: {
|
||||
default: '默認',
|
||||
|
|
|
@ -70,10 +70,16 @@ const changeApp = item => {
|
|||
if (item.menuList && item.menuList.length) {
|
||||
setPath(item.menuList);
|
||||
if (isNewTab.value) {
|
||||
window.open(path.value, '_blank');
|
||||
const { href } = router.resolve({
|
||||
path: path.value
|
||||
});
|
||||
window.open(href, '_blank');
|
||||
} else {
|
||||
if (isExternalLink(path.value)) {
|
||||
window.open(path.value, '_blank');
|
||||
const { href } = router.resolve({
|
||||
path: path.value
|
||||
});
|
||||
window.open(href, '_blank');
|
||||
} else {
|
||||
router.push(path.value);
|
||||
}
|
||||
|
@ -149,10 +155,10 @@ onUnmounted(() => {
|
|||
.app-item-name {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
color: #1B2C45;
|
||||
color: #1b2c45;
|
||||
}
|
||||
.app-item-remark {
|
||||
color: #898E91;
|
||||
color: #898e91;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
width: 100%;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<template>
|
||||
<div class="guns-admin-header-tool">
|
||||
<!-- 公司切换 -->
|
||||
<div class="guns-admin-header-tool-item" v-if="companyData?.companyName" @click="switchCompany">
|
||||
<div class="guns-admin-header-tool-item" v-if="companyData?.companyName && !isMobile" @click="switchCompany">
|
||||
<i class="iconfont icon-nav-gongsi f-s-24"></i>
|
||||
<span class="company-name">{{ companyData?.companyName }}</span>
|
||||
</div>
|
||||
|
@ -93,6 +93,13 @@ import AppSwitchModal from './app-switch-modal.vue';
|
|||
import SwitchCompany from '@/views/index/components/switch-company.vue';
|
||||
import { Modal } from 'ant-design-vue';
|
||||
|
||||
const props = defineProps({
|
||||
isMobile: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
});
|
||||
|
||||
const { push, resolve } = useRouter();
|
||||
const { t } = useI18n();
|
||||
const userStore = useUserStore();
|
||||
|
@ -144,13 +151,11 @@ const onUserDropClick = ({ key }) => {
|
|||
removeToken();
|
||||
// 调用sso退出接口
|
||||
SsoUtil.ssoLogoutRedirect();
|
||||
clearLocalStorage();
|
||||
} else {
|
||||
// 调用退出接口
|
||||
await LoginApi.logout();
|
||||
// 清除缓存token并退出
|
||||
logout();
|
||||
clearLocalStorage();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -180,15 +185,6 @@ const setName = realName => {
|
|||
}
|
||||
return name;
|
||||
};
|
||||
// 清除本地缓存
|
||||
const clearLocalStorage = () => {
|
||||
const collapse = localStorage.getItem('collapse');
|
||||
localStorage.clear();
|
||||
// 保留菜单折叠
|
||||
if (collapse) {
|
||||
localStorage.setItem('collapse', collapse);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
|
|
@ -88,6 +88,49 @@
|
|||
<a-switch size="small" :checked="weakMode" @change="updateWeakMode" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 侧栏排他展开 -->
|
||||
<div class="guns-setting-item">
|
||||
<div class="setting-item-title">{{ t('layout.setting.sideUniqueOpen') }}</div>
|
||||
<div class="setting-item-control">
|
||||
<a-switch size="small" :checked="sideUniqueOpen" @change="updateSideUniqueOpen" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- 默认展开所有侧栏 -->
|
||||
<div class="guns-setting-item">
|
||||
<div class="setting-item-title">{{ t('layout.setting.sideInitOpenAll') }}</div>
|
||||
<div class="setting-item-control">
|
||||
<a-switch size="small" :checked="sideInitOpenAll" :disabled="sideUniqueOpen" @change="updateSideInitOpenAll" />
|
||||
</div>
|
||||
</div>
|
||||
<a-divider class="hidden-xs-only" />
|
||||
<div class="guns-setting-title guns-text-secondary">
|
||||
{{ t('layout.setting.tabsConfig') }}
|
||||
</div>
|
||||
<!-- 页签 -->
|
||||
<div class="guns-setting-item">
|
||||
<div class="setting-item-title">{{ t('layout.setting.showTabs') }}</div>
|
||||
<div class="setting-item-control">
|
||||
<a-switch size="small" :checked="showTabs" @change="updateShowTabs" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- 页签风格 -->
|
||||
<div v-if="showTabs" class="guns-setting-item">
|
||||
<div class="setting-item-title">{{ t('layout.setting.tabStyle') }}</div>
|
||||
<div class="setting-item-control">
|
||||
<a-select size="small" :value="tabStyle" style="width: 80px" @change="updateTabStyle">
|
||||
<a-select-option value="default">
|
||||
{{ t('layout.setting.tabStyles.default') }}
|
||||
</a-select-option>
|
||||
<a-select-option value="dot">
|
||||
{{ t('layout.setting.tabStyles.dot') }}
|
||||
</a-select-option>
|
||||
<a-select-option value="card">
|
||||
{{ t('layout.setting.tabStyles.card') }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 提示 -->
|
||||
<a-divider />
|
||||
<a-alert show-icon type="warning" :message="t('layout.setting.tips')">
|
||||
|
@ -122,7 +165,8 @@ const emit = defineEmits(['update:visible']);
|
|||
const { t } = useI18n();
|
||||
const themeStore = useThemeStore();
|
||||
|
||||
const { showFooter, sideStyle, layoutStyle, weakMode, darkMode, color } = storeToRefs(themeStore);
|
||||
const { showTabs, tabStyle, showFooter, sideStyle, layoutStyle, weakMode, darkMode, color, sideUniqueOpen, sideInitOpenAll } =
|
||||
storeToRefs(themeStore);
|
||||
|
||||
// 主题列表
|
||||
const themes = ref([
|
||||
|
@ -166,6 +210,10 @@ const updateVisible = value => {
|
|||
emit('update:visible', value);
|
||||
};
|
||||
|
||||
const updateShowTabs = value => {
|
||||
themeStore.setShowTabs(value);
|
||||
};
|
||||
|
||||
const updateShowFooter = value => {
|
||||
themeStore.setShowFooter(value);
|
||||
};
|
||||
|
@ -178,9 +226,25 @@ const updateLayoutStyle = value => {
|
|||
themeStore.setLayoutStyle(value);
|
||||
};
|
||||
|
||||
const updateTabStyle = value => {
|
||||
themeStore.setTabStyle(value);
|
||||
};
|
||||
|
||||
const updateWeakMode = value => {
|
||||
themeStore.setWeakMode(value);
|
||||
};
|
||||
|
||||
const updateSideUniqueOpen = value => {
|
||||
themeStore.setSideUniqueOpen(value);
|
||||
if (value) {
|
||||
themeStore.setSideInitOpenAll(false);
|
||||
}
|
||||
};
|
||||
|
||||
const updateSideInitOpenAll = value => {
|
||||
themeStore.setSideInitOpenAll(value);
|
||||
};
|
||||
|
||||
const updateColor = value => {
|
||||
doWithLoading(() => themeStore.setColor(value));
|
||||
};
|
||||
|
|
|
@ -5,15 +5,18 @@
|
|||
:collapse="collapse"
|
||||
:side-nav-collapse="sideNavCollapse"
|
||||
:body-fullscreen="bodyFullscreen"
|
||||
:show-tabs="showTabs"
|
||||
:show-footer="showFooter"
|
||||
:head-style="headStyle"
|
||||
:side-style="sideStyle"
|
||||
:layout-style="layoutStyle"
|
||||
:side-menu-style="sideMenuStyle"
|
||||
:tab-style="tabStyle"
|
||||
:fixed-body="fixedBody"
|
||||
:body-full="bodyFull"
|
||||
:logo-auto-size="logoAutoSize"
|
||||
:side-unique-open="sideUniqueOpen"
|
||||
:side-init-open-all="sideInitOpenAll"
|
||||
:project-name="projectName"
|
||||
:hide-footers="HIDE_FOOTERS"
|
||||
:hide-sidebars="HIDE_SIDEBARS"
|
||||
|
@ -56,8 +59,8 @@
|
|||
</div>
|
||||
</template>
|
||||
<!-- 顶栏右侧区域 -->
|
||||
<template #right>
|
||||
<header-tools />
|
||||
<template #right="rightProp">
|
||||
<header-tools :is-mobile="rightProp.isMobile"/>
|
||||
</template>
|
||||
<!-- 全局页脚 -->
|
||||
<template #footer>
|
||||
|
@ -142,13 +145,16 @@ const {
|
|||
bodyFullscreen,
|
||||
showFooter,
|
||||
headStyle,
|
||||
showTabs,
|
||||
sideStyle,
|
||||
layoutStyle,
|
||||
sideMenuStyle,
|
||||
tabStyle,
|
||||
fixedBody,
|
||||
bodyFull,
|
||||
logoAutoSize,
|
||||
sideUniqueOpen
|
||||
sideUniqueOpen,
|
||||
sideInitOpenAll
|
||||
} = storeToRefs(themeStore);
|
||||
|
||||
// 当前菜单数据
|
||||
|
|
|
@ -83,8 +83,8 @@ router.beforeEach(async (to, from) => {
|
|||
// 需要左侧菜单
|
||||
if (needMenus) {
|
||||
router.addRoute(getMenuRoutes(needMenus, homePath));
|
||||
return { ...to, replace: true };
|
||||
}
|
||||
return { ...to, replace: true };
|
||||
} else {
|
||||
let currentApp = {};
|
||||
userStore.appList.forEach(item => {
|
||||
|
|
|
@ -57,7 +57,7 @@ export function getMenuRoutes(menus, homePath, isNeedMenuTree = true) {
|
|||
];
|
||||
// 路由铺平处理
|
||||
eachTreeData(menuToRoutes(menus, getComponent), (route) => {
|
||||
routes.push({ ...route, children: void 0 });
|
||||
routes.push(Object.assign({}, route, { children: void 0 }));
|
||||
});
|
||||
return {
|
||||
path: LAYOUT_PATH,
|
||||
|
|
|
@ -24,6 +24,10 @@ const DEFAULT_STATE = Object.freeze({
|
|||
collapse: localStorage.getItem('collapse') !== 'false',
|
||||
// 是否开启页脚
|
||||
showFooter: false,
|
||||
// 是否开启页签栏
|
||||
showTabs: true,
|
||||
// 内容区域是否全屏
|
||||
bodyFullscreen: false,
|
||||
// 顶栏风格: light(亮色), dark(暗色), primary(主色)
|
||||
headStyle: 'light',
|
||||
// 侧栏风格: light(亮色), dark(暗色)
|
||||
|
@ -32,14 +36,20 @@ const DEFAULT_STATE = Object.freeze({
|
|||
layoutStyle: 'mix',
|
||||
// 侧栏菜单风格: default(默认), mix(双排侧栏)
|
||||
sideMenuStyle: 'default',
|
||||
// 页签风格: default(默认), dot(圆点), card(卡片)
|
||||
tabStyle: 'default',
|
||||
// 是否固定主体
|
||||
fixedBody: true,
|
||||
// 侧栏是否只保持一个子菜单展开
|
||||
sideUniqueOpen: false,
|
||||
// 侧栏初始时,是否展开全部
|
||||
sideInitOpenAll: true,
|
||||
// 是否是色弱模式
|
||||
weakMode: false,
|
||||
// 主题色
|
||||
color: null,
|
||||
// 暗黑模式
|
||||
darkMode: false,
|
||||
// 主页的组件名称
|
||||
homeComponents: [],
|
||||
// 刷新路由时的参数
|
||||
|
@ -142,7 +152,7 @@ export const useThemeStore = defineStore({
|
|||
getters: {
|
||||
// 需要 keep-alive 的组件
|
||||
keepAliveInclude() {
|
||||
if (!TAB_KEEP_ALIVE) {
|
||||
if (!TAB_KEEP_ALIVE || !this.showTabs) {
|
||||
return [];
|
||||
}
|
||||
const components = new Set();
|
||||
|
@ -183,6 +193,11 @@ export const useThemeStore = defineStore({
|
|||
cacheSetting('showFooter', value);
|
||||
this.delayUpdateContentSize();
|
||||
},
|
||||
setShowTabs(value) {
|
||||
this.showTabs = value;
|
||||
cacheSetting('showTabs', value);
|
||||
this.delayUpdateContentSize();
|
||||
},
|
||||
setHeadStyle(value) {
|
||||
this.headStyle = value;
|
||||
cacheSetting('headStyle', value);
|
||||
|
@ -203,6 +218,15 @@ export const useThemeStore = defineStore({
|
|||
cacheSetting('sideMenuStyle', value);
|
||||
this.delayUpdateContentSize();
|
||||
},
|
||||
setTabStyle(value) {
|
||||
this.tabStyle = value;
|
||||
cacheSetting('tabStyle', value);
|
||||
},
|
||||
setBodyFullscreen(value) {
|
||||
disableTransition();
|
||||
this.bodyFullscreen = value;
|
||||
this.delayUpdateContentSize(800);
|
||||
},
|
||||
setFixedBody(value) {
|
||||
disableTransition();
|
||||
this.fixedBody = value;
|
||||
|
@ -212,6 +236,10 @@ export const useThemeStore = defineStore({
|
|||
this.sideUniqueOpen = value;
|
||||
cacheSetting('sideUniqueOpen', value);
|
||||
},
|
||||
setSideInitOpenAll(value) {
|
||||
this.sideInitOpenAll = value;
|
||||
cacheSetting('sideInitOpenAll', value);
|
||||
},
|
||||
setStyleResponsive(value) {
|
||||
changeStyleResponsive(value);
|
||||
this.styleResponsive = value;
|
||||
|
@ -291,6 +319,7 @@ export const useThemeStore = defineStore({
|
|||
resetSetting() {
|
||||
return new Promise((resolve, reject) => {
|
||||
disableTransition();
|
||||
this.showTabs = DEFAULT_STATE.showTabs;
|
||||
this.showFooter = DEFAULT_STATE.showFooter;
|
||||
this.headStyle = DEFAULT_STATE.headStyle;
|
||||
this.sideStyle = DEFAULT_STATE.sideStyle;
|
||||
|
@ -298,6 +327,7 @@ export const useThemeStore = defineStore({
|
|||
this.sideMenuStyle = DEFAULT_STATE.sideMenuStyle;
|
||||
this.fixedBody = DEFAULT_STATE.fixedBody;
|
||||
this.sideUniqueOpen = DEFAULT_STATE.sideUniqueOpen;
|
||||
this.sideInitOpenAll = DEFAULT_STATE.sideInitOpenAll;
|
||||
this.styleResponsive = DEFAULT_STATE.styleResponsive;
|
||||
this.weakMode = DEFAULT_STATE.weakMode;
|
||||
this.color = DEFAULT_STATE.color;
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
@border-radius: 4px;
|
||||
@input-disabled-color: #60666b;
|
||||
@input-disabled-border-color: transparent;
|
||||
@input-disabled-background: #f5f7f9;
|
||||
|
||||
.ant-input {
|
||||
border-radius: @border-radius;
|
||||
}
|
||||
// input
|
||||
.ant-input-affix-wrapper {
|
||||
border-radius: @border-radius;
|
||||
}
|
||||
.ant-input[disabled] {
|
||||
color: @input-disabled-color !important;
|
||||
}
|
||||
.ant-input-affix-wrapper-disabled {
|
||||
background-color: @input-disabled-background !important;
|
||||
}
|
||||
// number
|
||||
.ant-input-number {
|
||||
border-radius: @border-radius !important;
|
||||
}
|
||||
.ant-input-number-disabled {
|
||||
color: @input-disabled-color !important;
|
||||
background-color: @input-disabled-background !important;
|
||||
}
|
||||
// select
|
||||
.ant-select-selector {
|
||||
border-radius: @border-radius !important;
|
||||
}
|
||||
.ant-select-disabled .ant-select-selector {
|
||||
color: @input-disabled-color !important;
|
||||
}
|
||||
.ant-select-disabled.ant-select-multiple .ant-select-selection-item {
|
||||
color: @input-disabled-color !important;
|
||||
}
|
||||
|
||||
.border-background-disabled {
|
||||
// border-color: @input-disabled-border-color;
|
||||
background-color: @input-disabled-background;
|
||||
}
|
||||
// date
|
||||
.ant-picker-input > input[disabled] {
|
||||
color: @input-disabled-color !important;
|
||||
}
|
||||
|
||||
.ant-picker.ant-picker-disabled {
|
||||
border-radius: @border-radius;
|
||||
background-color: @input-disabled-background !important;
|
||||
&:extend(.border-background-disabled);
|
||||
&:hover {
|
||||
border-color: @input-disabled-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-radio-disabled .ant-radio-inner {
|
||||
&:extend(.border-background-disabled);
|
||||
&:hover {
|
||||
border-color: @input-disabled-border-color;
|
||||
}
|
||||
}
|
||||
.ant-radio-disabled + span {
|
||||
color: @input-disabled-color;
|
||||
}
|
||||
.ant-radio-disabled .ant-radio-inner::after {
|
||||
background-color: var(--primary-color);
|
||||
}
|
||||
.ant-checkbox-disabled .ant-checkbox-inner {
|
||||
&:extend(.border-background-disabled);
|
||||
&:hover {
|
||||
border-color: @input-disabled-border-color;
|
||||
}
|
||||
}
|
||||
.ant-checkbox-disabled + span {
|
||||
color: @input-disabled-color;
|
||||
}
|
||||
.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
|
||||
&:extend(.border-background-disabled);
|
||||
color: @input-disabled-color;
|
||||
}
|
||||
|
||||
.guns-modal-title-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
.ant-modal-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.ant-drawer-title {
|
||||
font-weight: bold !important;
|
||||
}
|
|
@ -1,59 +1,63 @@
|
|||
:deep(.ant-menu-inline) {
|
||||
border-right: 0;
|
||||
}
|
||||
:deep(.ant-menu) {
|
||||
--component-background: #fbfbfb;
|
||||
}
|
||||
:deep(.ant-menu-inline .ant-menu-item::after) {
|
||||
border-right: 0;
|
||||
}
|
||||
:deep(.ant-menu-submenu-selected) {
|
||||
color: #999;
|
||||
}
|
||||
:deep(.ant-menu-submenu-title) {
|
||||
font-size: 14px;
|
||||
padding-left: 10px !important;
|
||||
color: #60666b;
|
||||
&:hover {
|
||||
.sidebar-content {
|
||||
.ant-menu-inline {
|
||||
border-right: 0;
|
||||
}
|
||||
.ant-menu {
|
||||
--component-background: #fff !important;
|
||||
--background-color-light: #fff !important;
|
||||
}
|
||||
.ant-menu-inline .ant-menu-item::after {
|
||||
border-right: 0;
|
||||
}
|
||||
.ant-menu-submenu-selected {
|
||||
color: #999;
|
||||
}
|
||||
.ant-menu-submenu-title {
|
||||
font-size: 14px;
|
||||
padding-left: 10px !important;
|
||||
color: #60666b;
|
||||
&:hover {
|
||||
color: #60666b;
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(.ant-menu-item-selected) {
|
||||
color: #0f56d7 !important;
|
||||
border-radius: 4px;
|
||||
font-weight: 500 !important;
|
||||
background: rgba(207, 221, 247, 0.35) !important;
|
||||
.iconfont {
|
||||
.ant-menu-item-selected {
|
||||
color: #0f56d7 !important;
|
||||
border-radius: 4px;
|
||||
font-weight: 700 !important;
|
||||
background: rgba(207, 221, 247, 0.35) !important;
|
||||
.iconfont {
|
||||
color: #0f56d7 !important;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(.ant-menu-item:active) {
|
||||
color: #0f56d7 !important;
|
||||
border-radius: 4px;
|
||||
font-weight: 500 !important;
|
||||
background: rgba(207, 221, 247, 0.35) !important;
|
||||
.iconfont {
|
||||
.ant-menu-item:active {
|
||||
color: #0f56d7 !important;
|
||||
border-radius: 4px;
|
||||
font-weight: 500 !important;
|
||||
background: rgba(207, 221, 247, 0.35) !important;
|
||||
.iconfont {
|
||||
color: #0f56d7 !important;
|
||||
}
|
||||
}
|
||||
.ant-menu-item:hover {
|
||||
background: #f3f3f3;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.ant-menu-item {
|
||||
font-weight: 400;
|
||||
color: #43505e;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
.ant-menu-submenu {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
.ant-menu-submenu:first-child {
|
||||
border-top: 1px solid #fbfbfb;
|
||||
}
|
||||
.ant-menu-submenu-title:active {
|
||||
background: #fbfbfb !important;
|
||||
}
|
||||
.ant-menu-submenu-arrow {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
:deep(.ant-menu-item:hover) {
|
||||
background: #f3f3f3;
|
||||
border-radius: 4px;
|
||||
}
|
||||
:deep(.ant-menu-item) {
|
||||
font-weight: 400;
|
||||
color: #43505e;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
:deep(.ant-menu-submenu) {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
:deep(.ant-menu-submenu:first-child) {
|
||||
border-top: 1px solid #fbfbfb;
|
||||
}
|
||||
:deep(.ant-menu-submenu-title:active) {
|
||||
background: #fbfbfb !important;
|
||||
}
|
||||
:deep(.ant-menu-submenu-arrow) {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -5,10 +5,12 @@
|
|||
flex: auto;
|
||||
height: 100%;
|
||||
min-height: 0px;
|
||||
position: relative;
|
||||
}
|
||||
@collapse-transition: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
.guns-layout-sidebar {
|
||||
padding: 0 12px 12px 12px;
|
||||
background: #fbfbfb;
|
||||
background: #fff;
|
||||
flex: 0 0 auto;
|
||||
position: relative;
|
||||
transition: width 0.2s;
|
||||
|
@ -18,6 +20,7 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.sidebar-content {
|
||||
width: 100%;
|
||||
flex: auto;
|
||||
|
@ -27,6 +30,7 @@
|
|||
}
|
||||
}
|
||||
.guns-layout-content {
|
||||
position: relative;
|
||||
min-width: 0px;
|
||||
flex: auto;
|
||||
display: flex;
|
||||
|
@ -55,7 +59,8 @@
|
|||
justify-content: space-between;
|
||||
height: 30px;
|
||||
margin-bottom: 16px;
|
||||
span {
|
||||
|
||||
&:nth-child(1) {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
@ -71,26 +76,63 @@
|
|||
.content-mian {
|
||||
flex: auto;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
.content-mian-header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: 100%;
|
||||
.search-input {
|
||||
width: 324px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.search-date {
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.search-select {
|
||||
width: 100%;
|
||||
border-radius: 4px;
|
||||
.ant-select-selector {
|
||||
height: 36px !important;
|
||||
input {
|
||||
height: 36px;
|
||||
}
|
||||
}
|
||||
.ant-select-selection-item {
|
||||
line-height: 34px;
|
||||
}
|
||||
.ant-select-selection-placeholder {
|
||||
line-height: 36px;
|
||||
}
|
||||
}
|
||||
.header-content {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
.search-input {
|
||||
width: 324px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
margin-bottom: 10px;
|
||||
|
||||
.header-content-left {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 70%;
|
||||
overflow: hidden;
|
||||
|
||||
.fold-btn {
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -20px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%); /* 让三角形水平居中 */
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 8px solid transparent; /* 左边透明 */
|
||||
border-right: 8px solid transparent; /* 右边透明 */
|
||||
border-bottom: 14px solid #f8f8f8; /* 顶部为红色,可以调整高度和颜色 */
|
||||
}
|
||||
}
|
||||
}
|
||||
.header-content-right {
|
||||
width: 30%;
|
||||
|
@ -103,13 +145,16 @@
|
|||
flex-direction: column;
|
||||
flex: auto;
|
||||
.table-content {
|
||||
height: calc(100% - 10px);
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.width-100 {
|
||||
width: 100% !important;
|
||||
}
|
||||
.ant-btn {
|
||||
height: 36px;
|
||||
line-height: 18px;
|
||||
|
@ -134,3 +179,159 @@
|
|||
.surely-table-header-cell {
|
||||
--surely-table-background-color: #fff;
|
||||
}
|
||||
|
||||
.super-search-right {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.super-search-right-tags {
|
||||
max-width: calc(100% - 40px);
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
|
||||
.super-search-right-tags-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
padding: 4px 16px;
|
||||
border-radius: 4px;
|
||||
background: #f7f7f9;
|
||||
color: #60666b;
|
||||
margin-right: 16px;
|
||||
|
||||
.close-btn {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.super-search-right-btns {
|
||||
text-align: right;
|
||||
width: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.super-search {
|
||||
background-color: #f8f8f8;
|
||||
border-radius: 4px;
|
||||
padding: 16px 16px 0 16px;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.ant-btn {
|
||||
height: 32px;
|
||||
line-height: 10px;
|
||||
font-size: 16px !important;
|
||||
padding: 4px 16px !important;
|
||||
font-weight: 500 !important;
|
||||
}
|
||||
|
||||
.ant-form-item {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.not-label {
|
||||
.ant-form-item-label > label::after {
|
||||
content: '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.collapse-btn {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
width: 12px;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -20px;
|
||||
font-size: 12px;
|
||||
color: @text-color-secondary;
|
||||
background: @border-color-split;
|
||||
border-radius: 0 4px 4px 0;
|
||||
transition:
|
||||
left 0.3s @collapse-transition,
|
||||
background-color @collapse-transition;
|
||||
cursor: pointer;
|
||||
z-index: 3;
|
||||
right: -12px;
|
||||
|
||||
&:hover {
|
||||
background: @border-color-base;
|
||||
}
|
||||
}
|
||||
|
||||
.collapse-mask {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 2;
|
||||
background: transparent;
|
||||
transition: background-color 0.3s @collapse-transition;
|
||||
pointer-events: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.guns-layout-sidebar {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 3;
|
||||
}
|
||||
.guns-layout {
|
||||
.collapse-mask {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.content-mian {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.content-mian-body {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.guns-collapse {
|
||||
.collapse-mask {
|
||||
background: @modal-mask-bg;
|
||||
pointer-events: all;
|
||||
}
|
||||
}
|
||||
|
||||
.header-content {
|
||||
height: auto;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.header-content-left,
|
||||
.header-content-right {
|
||||
width: 100% !important;
|
||||
|
||||
.ant-space {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
.fold-btn::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.header-content-right {
|
||||
margin-top: 16px;
|
||||
text-align: left !important;
|
||||
}
|
||||
}
|
||||
.ant-table-pagination.ant-pagination {
|
||||
margin: 12px 0 !important;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
@import '../components/layout/style/themes/dynamic.less';
|
||||
@import './gunsLayout.less';
|
||||
@import './shortcut.less';
|
||||
@import './antDesignVue.less';
|
||||
@import '../assets/iconfont/iconfont.css';
|
||||
/** 全局样式 */
|
||||
@import 'ant-design-vue/es/message/style/index.less';
|
||||
|
|
|
@ -12,6 +12,7 @@ import {
|
|||
nextTick
|
||||
} from 'vue';
|
||||
import { PROVIDE_KEY } from '@/components/layout/util'
|
||||
import defaultLocale from '@/components/layout/lang/zh_CN';
|
||||
|
||||
/**
|
||||
* 创建 iframe 组件
|
||||
|
@ -98,3 +99,18 @@ export function createIframeComponent(name, url) {
|
|||
export function useReceiver() {
|
||||
return inject(PROVIDE_KEY, {});
|
||||
}
|
||||
|
||||
/**
|
||||
* 国际化 hook
|
||||
*/
|
||||
export function useLocale(options, props) {
|
||||
const globalConfig = useReceiver();
|
||||
const locale = computed(() => {
|
||||
const temp = globalConfig.locale ?? defaultLocale;
|
||||
if (options.name) {
|
||||
return Object.assign(temp[options.name] ?? {}, props?.locale);
|
||||
}
|
||||
return temp;
|
||||
});
|
||||
return { locale, globalConfig };
|
||||
}
|
||||
|
|
|
@ -7,6 +7,13 @@
|
|||
import request from '@/utils/request/request';
|
||||
import axios from 'axios';
|
||||
import { getToken } from '@/utils/token-util';
|
||||
import { API_BASE_PREFIX, NEED_ENCRYPT_API } from '@/config/setting';
|
||||
import { SM2, SM4 } from 'gm-crypto'
|
||||
import { getRandomNumber, deepClone } from '@/utils/common/util';
|
||||
import { message } from 'ant-design-vue';
|
||||
|
||||
// 定义公钥
|
||||
const publicKey = `048f630f53fad962ecf00f3b9d005690a4d56298e70148ce7b709af5d9ac7277aea5fa3b7cbebc1f27c2b798d60ec9c17a74f73e8dfcf4fddfdccdcb08235acc32`
|
||||
|
||||
export default class RequestUtil {
|
||||
/**
|
||||
|
@ -34,6 +41,65 @@ export default class RequestUtil {
|
|||
return result.data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 封装post加密请求
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/4/8 10:50
|
||||
*/
|
||||
static async postEncryption(url, params) {
|
||||
// 获取16为随机数
|
||||
const random16 = getRandomNumber(16);
|
||||
|
||||
// 转成16进制
|
||||
const base16 = strToHexCharCode(random16);
|
||||
if (params) {
|
||||
// 将data转为json字符串
|
||||
params = JSON.stringify(params);
|
||||
|
||||
// 加密的随机数
|
||||
const random16Encryption = SM2.encrypt(random16, publicKey, {
|
||||
inputEncoding: 'utf8',
|
||||
outputEncoding: 'base64' //以base64格式输出
|
||||
});
|
||||
// 加密参数
|
||||
const encryptionParams = SM4.encrypt(params, base16, {
|
||||
inputEncoding: 'utf8',
|
||||
outputEncoding: 'base64'
|
||||
});
|
||||
params = {
|
||||
passedKey: random16Encryption,
|
||||
passedData: encryptionParams
|
||||
}
|
||||
}
|
||||
// 发送post请求
|
||||
let result = await request.post(url, params);
|
||||
let resultData = deepClone(result.data);
|
||||
if (resultData.success) {
|
||||
try {
|
||||
// 解密
|
||||
let decryptData = SM4.decrypt(resultData.data, base16, {
|
||||
inputEncoding: 'base64',
|
||||
outputEncoding: 'utf8'
|
||||
});
|
||||
resultData.data = JSON.parse(decryptData);
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
return resultData;
|
||||
|
||||
function strToHexCharCode(str) {
|
||||
if (str === "")
|
||||
return "";
|
||||
var hexCharCode = [];
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
hexCharCode.push((str.charCodeAt(i)).toString(16));
|
||||
}
|
||||
return hexCharCode.join("");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* post请求
|
||||
*
|
||||
|
@ -41,11 +107,15 @@ export default class RequestUtil {
|
|||
* @date 2022/4/8 10:50
|
||||
*/
|
||||
static async post(url, params) {
|
||||
if (params === undefined) {
|
||||
params = {};
|
||||
if (NEED_ENCRYPT_API.find(item => item == url)) {
|
||||
return this.postEncryption(url, params);
|
||||
} else {
|
||||
if (params === undefined) {
|
||||
params = {};
|
||||
}
|
||||
let result = await request.post(url, params);
|
||||
return result.data;
|
||||
}
|
||||
let result = await request.post(url, params);
|
||||
return result.data;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -76,7 +146,7 @@ export default class RequestUtil {
|
|||
}
|
||||
}
|
||||
paramUrl = paramUrl.substring(0, paramUrl.length - 1);
|
||||
|
||||
|
||||
if (!paramUrl) {
|
||||
paramUrl = `?token=${getToken()}`;
|
||||
} else {
|
||||
|
@ -84,7 +154,7 @@ export default class RequestUtil {
|
|||
paramUrl = `${paramUrl}&token=${getToken()}`;
|
||||
}
|
||||
}
|
||||
window.location.href = `${url}${paramUrl}`;
|
||||
window.location.href = `${API_BASE_PREFIX}${url}${paramUrl}`;
|
||||
}
|
||||
|
||||
// post下载文件封装
|
||||
|
@ -92,14 +162,26 @@ export default class RequestUtil {
|
|||
return axios({
|
||||
method: 'post',
|
||||
responseType: 'blob',
|
||||
url: url,
|
||||
url: `${API_BASE_PREFIX}${url}`,
|
||||
data: params,
|
||||
headers: {
|
||||
"Authorization": getToken()
|
||||
}
|
||||
}).then(res => {
|
||||
return res
|
||||
}).catch(error => {
|
||||
}).catch(err => {
|
||||
const data = err.response.data;
|
||||
const reader = new FileReader();
|
||||
reader.onload = evt => {
|
||||
try {
|
||||
const resultObj = JSON.parse(evt.target.result);
|
||||
message.error(resultObj.message);
|
||||
// resultOb是解码后的数据,然后再进行提示处理
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
};
|
||||
reader.readAsText(data);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<!--弹窗 选择常用功能-->
|
||||
<a-modal
|
||||
width="50%"
|
||||
:width="760"
|
||||
v-model:visible="showVisible"
|
||||
title="选择常用功能"
|
||||
@cancel="updateShowVisible(false)"
|
||||
|
@ -44,10 +44,9 @@
|
|||
<a-radio-group
|
||||
class="common-function-header-left"
|
||||
v-model:value="tabClickAppId"
|
||||
:style="{ marginBottom: '8px' }"
|
||||
@change="tabAppIdChange"
|
||||
>
|
||||
<a-radio-button v-for="item in userAppInfoList" :key="item.appId" :value="item.appId">{{ item.appName }} </a-radio-button>
|
||||
<a-radio-button style="min-width: 120px; text-align: center;" v-for="item in userAppInfoList" :key="item.appId" :value="item.appId">{{ item.appName }} </a-radio-button>
|
||||
</a-radio-group>
|
||||
|
||||
<a-input v-model:value="keyword" class="common-function-header-right" allow-clear placeholder="菜单名称(回车搜索)">
|
||||
|
@ -377,7 +376,7 @@ watch(
|
|||
|
||||
.app-list-item {
|
||||
cursor: pointer;
|
||||
width: calc((100% - 80px) / 10);
|
||||
min-width: 80px;
|
||||
height: calc(100% / 2);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -411,7 +410,7 @@ watch(
|
|||
}
|
||||
|
||||
.common-function-header-right {
|
||||
width: 280px;
|
||||
width: 220px;
|
||||
line-height: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
|
|
@ -16,16 +16,7 @@
|
|||
</a-space>
|
||||
</div>
|
||||
<div class="my-notice-body">
|
||||
<common-table
|
||||
:columns="columns"
|
||||
:rowSelection="false"
|
||||
:scroll="{ y: '100%' }"
|
||||
:where="where"
|
||||
bordered
|
||||
rowId="noticeId"
|
||||
ref="tableRef"
|
||||
url="/sysMessage/page"
|
||||
>
|
||||
<common-table :columns="columns" :rowSelection="false" :where="where" bordered rowId="noticeId" ref="tableRef" url="/sysMessage/page">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<!-- 姓名 -->
|
||||
<template v-if="column.dataIndex == 'messageTitle'">
|
||||
|
@ -262,10 +253,25 @@ const readAll = () => {
|
|||
justify-content: space-between;
|
||||
}
|
||||
.my-notice-body {
|
||||
flex: auto;
|
||||
width: 100%;
|
||||
height: calc(100% - 46px);
|
||||
overflow: hidden;
|
||||
}
|
||||
.check-outlined {
|
||||
cursor: pointer;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.my-notice-header {
|
||||
height: auto;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
|
||||
:deep(.ant-space) {
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<!-- 新增编辑 -->
|
||||
<a-modal
|
||||
<common-modal
|
||||
:width="1000"
|
||||
:maskClosable="false"
|
||||
:visible="props.visible"
|
||||
|
@ -16,12 +16,12 @@
|
|||
<a-form ref="formRef" :model="form" layout="vertical">
|
||||
<!-- 通知内容 -->
|
||||
<a-row :gutter="20">
|
||||
<a-col :span="12">
|
||||
<a-col :xs='24' :sm='24' :md='12'>
|
||||
<a-form-item label="通知标题:" name="messageTitle">
|
||||
<a-input v-model:value="form.messageTitle" allow-clear placeholder="请输入通知标题" :disabled="true" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-col :xs='24' :sm='24' :md='12'>
|
||||
<a-form-item label="优先级" name="priorityLevel">
|
||||
<a-radio-group v-model:value="form.priorityLevel" name="sex" :disabled="true">
|
||||
<a-radio value="high">高</a-radio>
|
||||
|
@ -32,18 +32,17 @@
|
|||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="通知内容" name="messageContent">
|
||||
<tinymce v-model:value="form.messageContent" :disabled="true" />
|
||||
<a-textarea v-model:value="form.messageContent" :rows="4" disabled></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
</common-modal>
|
||||
</template>
|
||||
|
||||
<script setup name="NoticeDetail">
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { MyNoticeApi } from '../api/MyNoticeApi';
|
||||
import Tinymce from '@/components/TinymceEditor/index.vue';
|
||||
|
||||
const props = defineProps({
|
||||
visible: Boolean,
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue