{"version":3,"sources":["webpack:///./src/App.less?af91","App.less","webpack:///./src/component/windows/windows.less?641b","component/windows/windows.less","webpack:///./src/component/windows/Button/index.less?a127","component/windows/Button/index.less","webpack:///./src/component/fontSelection.less?3971","component/fontSelection.less","index.css","function/createInvisibleDOM.ts","function/getFontList.ts","function/ZeroWidthFont.ts","function/guid.ts","component/windows/Button/index.tsx","component/windows/index.tsx","component/fontSelection.tsx","App.tsx","function/hash.ts","reportWebVitals.ts","index.tsx"],"names":["api","content","__esModule","default","module","i","options","exports","locals","___CSS_LOADER_EXPORT___","push","createInvisibleDOM","visible","newDiv","document","createElement","style","position","top","left","height","overflow","background","width","body","appendChild","removeDOM","dom","parentElement","removeChild","console","error","installZeroWidthFontIfNeed","getElementById","innerHTML","head","getFontList","a","element","waitingCheckDomList","outterDiv","frontList","fontInfo","fontCSSName","en_name","fontFamily","className","setAttribute","cn_name","installedFontEnNameList","Set","fonts","ready","offsetWidth","add","getAttribute","isSupportFontWeight","fontWeight","defaultFontWeight","toLowerCase","canvas","context","getContext","textAlign","fillStyle","textBaseline","getFontData","clearRect","font","fillText","data","getImageData","slice","call","filter","value","join","scriptList","name","testText","sampleText","key","getFontSupportScript","script","supportScript","Button","classNames","this","props","type","onMouseDown","onMouseUp","onClick","children","React","Group","ButtonGroup","state","setState","internalActivedChildKey","defaultActivedKey","addEventListener","mouseUp","bind","removeEventListener","event","lastMouseDownChildKey","map","component","cid","thisKey","String","undefined","warn","WindowContext","focus","setFocus","displayName","Window","WINDOW","WINDOW_title","moving","mouseMovingTitleBarOffsetX","mouseMovingTitleBarOffsetY","titleHeight","titleButtonWidth","webViewWidth","window","innerWidth","Math","max","round","webViewHeight","innerHeight","display","windowFocus","current","titleBarMousedown","windowMouseDown","mouseup","mousemove","setTimeout","checkWindowVisible","windowHeight","scale","titleButtons","Provider","next","ref","transform","length","title","Array","from","item","titleButtonAction","offsetX","offsetY","target","tagName","preventDefault","clientX","clientY","transition","log","openWindow","closeWindow","onClose","Modal","footerHeight","onCancel","zIndex","right","bottom","onOK","closeModal","WindowComponent","COMPONENT_ID","COMPONENT","S4","random","toString","substring","GUID","tryContent","isFocused","contextType","Select","node","activedKey","needFocusSelected","didMounted","scrollIntoViewIfNeed","hasSelected","render","renderStyle","selected","onChange","text","selectedFirstItem","force","getElementsByClassName","scrollIntoView","block","DropdownSelect","showDropdown","mousedown","currentSelectedText","childrenCount","hoveredSelectionkey","hideDropdown","onMouseEnter","selectionsHeight","selectionsBorderColor","selectionsBorderWidth","selectionsBackgroundColor","selectionsBackgroundTransitionDuration","selectionsShadowHeight","selectionsShadowTransitionDuration","maxHeight","borderColor","borderWidth","backgroundColor","transitionDuration","selfNode","clickTarget","compareDocumentPosition","Input","inputNode","ignoreNextMouseUp","primary","select","Paragraph","Fieldset","FontSelection","fontWeightTestList","fontSizeList","id","testWeight","fontStyle","currentSelectedFont","currentInputedFontText","currnetSupportedFontStyleList","getSupportedStyleList","currentSelectedFontStyleKey","currentInputedFontStyleText","currentInputedFontStyleData","currentSelectedFontSize","currentInputedFontSizeText","currentFontSupportedScript","currentFontSupportedScriptForSelect","currentFontSupportedScriptSelectedKey","currentFontSupportedScriptSelectedSampleText","fontInstalled","fontInstalled4Select","calcSupportedScriptNewState","supportedScriptNewState","marginLeft","lineHeight","verticalAlign","fontSize","paddingLeft","marginBottom","calcFontStyle","dir","href","SupportedScript","needUpdateSelectedKey","currnetFontSupportWeightList","App","textInput","textInputsim","fontTemp","posY","posX","lastContentHTML","lines","freshCursorPosition","onKeyDown","onInput","afterInput","contentEditable","spellCheck","backgroundImage","backgroundPosition","backgroundRepeat","marginRight","contentFilter","escapeHtmlText","html","createTextNode","p","childNodeTextsEscape","paragraph","walker","createTreeWalker","nextNode","nodeType","nodeData","replaceAll","childNodeTextsSymbolRecover","isNodeNeed2BeUpdate","thisElement","thisMD5","newMD5","jsMD5","md5","nodeName","innerText","childNodes","removeList","Node","ELEMENT_NODE","thisNode","parentNode","elementRemoveBR","TEXT_NODE","childSpanElement","getSelection","textInputDom","textInputsimDom","addLinesList","before","textContent","tempDom","newLines","split","line","insertBefore","newPos","getCurrentCursorPosition","x","y","X","Y","contentTopDOM","sel","anchorNode","anchorOffset","some","childNode","nodeId","compare","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM"],"mappings":"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","file":"static/js/main.3e8fc98b.chunk.js","sourcesContent":["var api = require(\"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../node_modules/less-loader/dist/cjs.js!./App.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"*,\\n*:before,\\n*:after {\\n box-sizing: border-box;\\n}\\ninput:focus,\\ntextarea:focus,\\n.App-content:focus,\\ninput:focus-visible,\\ntextarea:focus-visible,\\n.App-content:focus-visible {\\n outline: none;\\n}\\n::selection {\\n background: #0078D7;\\n color: #fff;\\n}\\n:root {\\n --state-bar-height: 21px;\\n --settings-font-size: 16px;\\n --settings-line-height: 22px;\\n}\\nhtml {\\n height: 100%;\\n}\\nbody {\\n height: 100%;\\n margin: 0;\\n}\\n#root {\\n height: 100%;\\n}\\n.App {\\n text-align: center;\\n border-top: #F0F0F0 2px solid;\\n height: 100%;\\n overflow: hidden;\\n -webkit-user-drag: none;\\n}\\n.App-logo {\\n height: 40vmin;\\n pointer-events: none;\\n}\\n@media (prefers-reduced-motion: no-preference) {\\n .App-logo {\\n animation: App-logo-spin infinite 20s linear;\\n }\\n}\\n.App-content {\\n display: block;\\n text-align: left;\\n padding-left: 3px;\\n padding-right: 6px;\\n height: calc(100% - var(--state-bar-height));\\n width: 100%;\\n overflow: scroll;\\n white-space: nowrap;\\n border-width: 0px;\\n resize: none;\\n font-size: var(--settings-font-size);\\n line-height: var(--settings-line-height);\\n}\\n.App-content > div {\\n white-space: nowrap;\\n font-size: var(--settings-font-size);\\n min-height: var(--settings-line-height);\\n}\\n/* 因为不会计入行数所以禁用BR */\\n.App-content > br {\\n display: none;\\n}\\n.App-state {\\n user-select: none;\\n display: block;\\n border-top: #D7D7D7 1px solid;\\n padding-top: 1px 0;\\n background-color: #F0F0F0;\\n height: var(--state-bar-height);\\n line-height: var(--state-bar-height);\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n justify-content: flex-end;\\n font-weight: 500;\\n font-size: 12px;\\n}\\n.App-state > div {\\n display: inline-block;\\n}\\n.App-link {\\n color: #61dafb;\\n}\\n@keyframes App-logo-spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/App.less\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE,sBAAA;AACF;AAEA;;;;;;EAME,aAAA;AAAF;AAGA;EACE,mBAAA;EACA,WAAA;AADF;AAIA;EACE,wBAAA;EACA,0BAAA;EACA,4BAAA;AAFF;AAKA;EACE,YAAA;AAHF;AAMA;EACE,YAAA;EACA,SAAA;AAJF;AAOA;EACE,YAAA;AALF;AASA;EACE,kBAAA;EACA,6BAAA;EACA,YAAA;EACA,gBAAA;EACA,uBAAA;AAPF;AAUA;EACE,cAAA;EACA,oBAAA;AARF;AAWA;EACE;IACE,4CAAA;EATF;AACF;AAYA;EACE,cAAA;EACA,gBAAA;EACA,iBAAA;EACA,kBAAA;EACA,4CAAA;EAEA,WAAA;EACA,gBAAA;EACA,mBAAA;EACA,iBAAA;EACA,YAAA;EACA,oCAAA;EACA,wCAAA;AAXF;AAmBA;EACE,mBAAA;EACA,oCAAA;EACA,uCAAA;AAjBF;AACA,mBAAmB;AAoBnB;EACE,aAAA;AAlBF;AAqBA;EACE,iBAAA;EACA,cAAA;EACA,6BAAA;EACA,kBAAA;EACA,yBAAA;EACA,+BAAA;EACA,oCAAA;EACA,WAAA;EACA,gBAAA;EACA,aAAA;EACA,yBAAA;EACA,gBAAA;EACA,eAAA;AAnBF;AAsBA;EACE,qBAAA;AApBF;AAiCA;EACE,cAAA;AA/BF;AAkCA;EACE;IACE,uBAAA;EAhCF;EAmCA;IACE,yBAAA;EAjCF;AACF\",\"sourcesContent\":[\"*,\\n*:before,\\n*:after {\\n box-sizing: border-box;\\n}\\n\\ninput:focus,\\ntextarea:focus,\\n.App-content:focus,\\ninput:focus-visible,\\ntextarea:focus-visible,\\n.App-content:focus-visible {\\n outline: none;\\n}\\n\\n::selection {\\n background: #0078D7;\\n color: #fff;\\n}\\n\\n:root {\\n --state-bar-height: 21px;\\n --settings-font-size: 16px;\\n --settings-line-height: 22px;\\n}\\n\\nhtml {\\n height: 100%;\\n}\\n\\nbody {\\n height: 100%;\\n margin: 0;\\n}\\n\\n#root {\\n height: 100%;\\n\\n}\\n\\n.App {\\n text-align: center;\\n border-top: #F0F0F0 2px solid;\\n height: 100%;\\n overflow: hidden;\\n -webkit-user-drag: none;\\n}\\n\\n.App-logo {\\n height: 40vmin;\\n pointer-events: none;\\n}\\n\\n@media (prefers-reduced-motion: no-preference) {\\n .App-logo {\\n animation: App-logo-spin infinite 20s linear;\\n }\\n}\\n\\n.App-content {\\n display: block;\\n text-align: left;\\n padding-left: 3px;\\n padding-right: 6px;\\n height: calc(100% - var(--state-bar-height)); \\n // height: calc((100% - var(--state-bar-height)) / 2);\\n width: 100%;\\n overflow: scroll;\\n white-space: nowrap;\\n border-width: 0px;\\n resize: none;\\n font-size: var(--settings-font-size);\\n line-height: var(--settings-line-height);\\n\\n}\\n// .App-sim{\\n// text-align: left;\\n// height: calc((100% - var(--state-bar-height)) / 2);\\n// }\\n\\n.App-content>div {\\n white-space: nowrap;\\n font-size: var(--settings-font-size);\\n min-height: var(--settings-line-height);\\n}\\n\\n/* 因为不会计入行数所以禁用BR */\\n.App-content>br {\\n display: none;\\n}\\n\\n.App-state {\\n user-select: none;\\n display: block;\\n border-top: #D7D7D7 1px solid;\\n padding-top: 1px 0;\\n background-color: #F0F0F0;\\n height: var(--state-bar-height);\\n line-height: var(--state-bar-height);\\n width: 100%;\\n overflow: hidden;\\n display: flex;\\n justify-content: flex-end;\\n font-weight: 500;\\n font-size: 12px;\\n}\\n\\n.App-state>div {\\n display: inline-block;\\n}\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.App-link {\\n color: #61dafb;\\n}\\n\\n@keyframes App-logo-spin {\\n from {\\n transform: rotate(0deg);\\n }\\n\\n to {\\n transform: rotate(360deg);\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../node_modules/less-loader/dist/cjs.js!./windows.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".WINDOWS-window {\\n display: none;\\n background: #d9d9d9;\\n user-select: none;\\n position: fixed;\\n left: 0;\\n top: 0;\\n border: 1px #707070 solid;\\n filter: drop-shadow(0px 0px 8px #8b8b8b);\\n text-align: left;\\n font-family: sans-serif;\\n opacity: 0;\\n transition: transform 0.3s, opacity 0.3s;\\n --themeColor: #0078D7;\\n --themeContentColor: #000;\\n --themeContentBackgroundColor: #F0F0F0;\\n --themeTitleColor: #000;\\n --themeTitleBackgroundColor: #FFFFFF;\\n --General_Border: #828790;\\n --General_Border-Actived: #0078D7;\\n --titleHeight: 29px;\\n}\\n.WINDOWS-window.WINDOWS-window-display {\\n display: block;\\n}\\n.WINDOWS-window.WINDOWS-window-visible {\\n opacity: 1;\\n}\\n.WINDOWS-window .WINDOWS-title {\\n vertical-align: top;\\n height: var(--titleHeight);\\n background-color: var(--themeTitleBackgroundColor);\\n color: var(--themeTitleColor);\\n padding-left: 7px;\\n line-height: 30px;\\n font-size: 12px;\\n width: 100%;\\n display: inline-block;\\n}\\n.WINDOWS-window .WINDOWS-titleButton {\\n display: inline-block;\\n vertical-align: top;\\n height: var(--titleHeight);\\n background-color: var(--themeTitleBackgroundColor);\\n}\\n.WINDOWS-window .WINDOWS-titleButton:hover {\\n background-color: #E5E5E5;\\n}\\n.WINDOWS-window .WINDOWS-titleButton:active {\\n background-color: #CCCCCC;\\n}\\n.WINDOWS-window .WINDOWS-titleButton.WINDOWS-titleButton-close ::before {\\n content: \\\"A\\\";\\n}\\n.WINDOWS-window .WINDOWS-titleButton.WINDOWS-titleButton-close:hover {\\n background-color: #E81123;\\n}\\n.WINDOWS-window .WINDOWS-titleButton.WINDOWS-titleButton-close:active {\\n background-color: #F1707A;\\n}\\n.WINDOWS-window .WINDOWS-content {\\n background-color: var(--themeContentBackgroundColor);\\n height: calc(100% - var(--titleHeight));\\n width: 100%;\\n overflow: hidden;\\n}\\n.WINDOWS-window.alert {\\n filter: drop-shadow(10px 10px 8px #8b8b8b);\\n}\\n.WINDOWS-select-outBorder {\\n --themeColor: #0077D5;\\n --themeBackgroundColor: #fff;\\n --themeSelectedColor: #fff;\\n border: 1px #828790 solid;\\n background-color: var(--themeBackgroundColor);\\n padding: 1px;\\n height: 100%;\\n width: 100%;\\n}\\n.WINDOWS-select-outBorder .WINDOWS-select {\\n height: 100%;\\n width: 100%;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n background-color: var(--themeBackgroundColor);\\n scroll-snap-type: y;\\n}\\n.WINDOWS-select-outBorder .WINDOWS-select .WINDOWS-selection {\\n scroll-snap-align: start end;\\n line-height: 20px;\\n height: 20px;\\n margin-right: 1px;\\n width: calc(100% - 1px);\\n overflow: hidden;\\n white-space: nowrap;\\n font-size: 14px;\\n}\\n.WINDOWS-select-outBorder .WINDOWS-select .WINDOWS-selection.WINDOWS-selection-selected {\\n background: var(--themeColor);\\n color: var(--themeSelectedColor);\\n}\\n.WINDOWS-dropdownSelect {\\n --themeColor: #0078D7;\\n --themeBackgroundColor: #fff;\\n position: relative;\\n transition: border-color 1s;\\n background-color: var(--themeBackgroundColor);\\n height: 24px;\\n width: 100%;\\n padding-left: 3px;\\n padding-right: 21px;\\n}\\n.WINDOWS-dropdownSelect:hover .WINDOWS-dropdownSelect-box {\\n transition: border-color 0.5s;\\n border: 1px #171717 solid;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-box {\\n z-index: 1;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n width: 100%;\\n height: 100%;\\n padding-left: 2px;\\n padding-right: 21px;\\n background-color: white;\\n border: 1px #7A7A7A solid;\\n transition: border-color 1s;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-box .WINDOWS-dropdownSelect-currentSelected {\\n position: absolute;\\n top: 2px;\\n padding: 0px;\\n height: 18px;\\n line-height: 18px;\\n border: 0px;\\n width: calc(100% - 21px);\\n font-size: 12px;\\n font-family: sans-serif;\\n transition: background-color 0s, color 0s;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-box .WINDOWS-dropdownSelect-arrow {\\n position: absolute;\\n top: -1px;\\n right: -1px;\\n height: 24px;\\n width: 17px;\\n border: 1px #7a7a7a00 solid;\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFwmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0xMC0xMlQyMzowNDoyMiswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMC0xMlQyMzowNDoyMiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTAtMTJUMjM6MDQ6MjIrMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YTQ2N2Y1MjctZjExZC05YzQ2LWE4ZWQtNmNmNmIwZTMxMDk5IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NDdhYmI4NTYtZjRjNy1hMTRiLThkZjUtNjY3YWMzMzQzMWM0IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTQ5ODY1MGYtOGFhYi00NTQ2LTg3ZjAtZjk3NTQyZGY1Nzc2IiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTQ5ODY1MGYtOGFhYi00NTQ2LTg3ZjAtZjk3NTQyZGY1Nzc2IiBzdEV2dDp3aGVuPSIyMDIxLTEwLTEyVDIzOjA0OjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphNDY3ZjUyNy1mMTFkLTljNDYtYThlZC02Y2Y2YjBlMzEwOTkiIHN0RXZ0OndoZW49IjIwMjEtMTAtMTJUMjM6MDQ6MjIrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7luufwAAAENJREFUCJltzNEJAEAIAtAGbcUGaZwm8DAIuupDAn0kAMTdwXulNokIqCrMbGF23GiyuHBH+bGGjif6YMcTLVh4IuYB5di1P8BIxosAAAAASUVORK5CYII=\\\");\\n background-position: center;\\n background-repeat: no-repeat;\\n transition: all 1s;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-box .WINDOWS-dropdownSelect-arrow:hover {\\n border: 1px #0078D7 solid;\\n background-color: #E5F1FB;\\n transition: all 1s;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-box .WINDOWS-dropdownSelect-fakeInput {\\n position: absolute;\\n width: calc(100% - 17px);\\n height: 100%;\\n border: 0px;\\n top: 0px;\\n left: 0px;\\n opacity: 0;\\n cursor: default;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter {\\n z-index: 0;\\n height: 0px;\\n overflow: hidden;\\n position: absolute;\\n left: 0px;\\n top: 1px;\\n width: calc(100% + 20px);\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter .WINDOWS-dropdownSelect-selections {\\n position: absolute;\\n top: 23px;\\n left: 0px;\\n width: calc(100% - 20px);\\n border: 1px var(--themeColor) solid;\\n background-color: white;\\n font-size: 12px;\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-end;\\n max-height: 0px;\\n transition-property: max-height;\\n transition-duration: 0s;\\n transition-timing-function: linear;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter .WINDOWS-dropdownSelect-selections:hover .WINDOWS-dropdownSelect-selection.WINDOWS-dropdownSelect-selection-selected {\\n background-color: unset;\\n color: unset;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter .WINDOWS-dropdownSelect-selections .WINDOWS-dropdownSelect-selections-shadow {\\n position: absolute;\\n top: 3px;\\n left: 0px;\\n width: 100%;\\n box-shadow: 3px 3px 2px #7e7e7e;\\n transition-property: height;\\n transition-duration: 0s;\\n transition-timing-function: linear;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter .WINDOWS-dropdownSelect-selections .WINDOWS-dropdownSelect-selection {\\n z-index: 1;\\n height: 17px;\\n line-height: 17px;\\n padding-left: 1px;\\n transition-delay: 0.01s;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter .WINDOWS-dropdownSelect-selections .WINDOWS-dropdownSelect-selection.WINDOWS-dropdownSelect-selection-selected {\\n background-color: var(--themeColor);\\n color: white;\\n}\\n.WINDOWS-dropdownSelect .WINDOWS-dropdownSelect-selections-limiter .WINDOWS-dropdownSelect-selections .WINDOWS-dropdownSelect-selection:hover {\\n background-color: var(--themeColor) !important;\\n color: white !important;\\n}\\n.WINDOWS-dropdownSelect.WINDOWS-dropdownSelect-showDropdown .WINDOWS-dropdownSelect-box {\\n border: 1px var(--themeColor) solid;\\n}\\n.WINDOWS-dropdownSelect.WINDOWS-dropdownSelect-showDropdown .WINDOWS-dropdownSelect-arrow {\\n border: 1px #005499 solid;\\n background-color: #CCE4F7;\\n transition: border 0s, background-color 0s;\\n}\\n.WINDOWS-dropdownSelect.WINDOWS-dropdownSelect-showDropdown .WINDOWS-dropdownSelect-selections-limiter {\\n height: 10000px;\\n}\\n.WINDOWS-input {\\n position: relative;\\n width: 100%;\\n background-color: white;\\n border: 1px var(--General_Border) solid;\\n height: 24px;\\n padding-left: 3px;\\n padding-right: 4px;\\n}\\n.WINDOWS-input input {\\n position: absolute;\\n top: 2px;\\n padding: 0px;\\n height: 17px;\\n line-height: 17px;\\n border: 0px;\\n width: calc(100% - 7px);\\n font-size: 12px;\\n font-family: sans-serif;\\n}\\n.WINDOWS-input.WINDOWS-input-primary {\\n border: 1px var(--General_Border-Actived) solid;\\n}\\n.WINDOWS-paragraph {\\n font-size: 12px;\\n padding-top: 3px;\\n padding-bottom: 3px;\\n}\\n.WINDOWS-paragraph a {\\n color: #0066CC;\\n -webkit-user-drag: none;\\n border: 1px #00000000 dotted;\\n}\\n.WINDOWS-paragraph a:focus-within {\\n border-color: #000000;\\n}\\n.WINDOWS-fieldset {\\n width: 100%;\\n height: 100%;\\n}\\n.WINDOWS-fieldset > fieldset {\\n width: 100%;\\n height: 100%;\\n min-width: 0;\\n margin: 0;\\n border: 1px #DCDCDC solid;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n white-space: nowrap;\\n overflow: hidden;\\n padding: 0px;\\n}\\n.WINDOWS-fieldset > fieldset > legend {\\n font-size: 12px;\\n margin-left: 7px;\\n}\\n.WINDOWS-fieldset > fieldset > .WINDOWS-fieldset-content {\\n margin: 1px;\\n width: 100%;\\n text-align: center;\\n overflow: hidden;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/component/windows/windows.less\"],\"names\":[],\"mappings\":\"AAAA;EACI,aAAA;EACA,mBAAA;EACA,iBAAA;EACA,eAAA;EACA,OAAA;EACA,MAAA;EACA,yBAAA;EACA,wCAAA;EACA,gBAAA;EACA,uBAAA;EACA,UAAA;EACA,wCAAA;EAUA,qBAAA;EACA,yBAAA;EACA,sCAAA;EACA,uBAAA;EACA,oCAAA;EACA,yBAAA;EACA,iCAAA;EAEA,mBAAA;AATJ;AAPI;EACI,cAAA;AASR;AANI;EACI,UAAA;AAQR;AA3BA;EAiCQ,mBAAA;EACA,0BAAA;EACA,kDAAA;EACA,6BAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;EACA,WAAA;EACA,qBAAA;AAHR;AAtCA;EA6CQ,qBAAA;EACA,mBAAA;EACA,0BAAA;EACA,kDAAA;AAJR;AAMQ;EACI,yBAAA;AAJZ;AAOQ;EACI,yBAAA;AALZ;AAYQ;EAEQ,YAAA;AAXhB;AAaY;EACI,yBAAA;AAXhB;AAcY;EACI,yBAAA;AAZhB;AA3DA;EA6EQ,oDAAA;EACA,uCAAA;EACA,WAAA;EACA,gBAAA;AAfR;AAkBI;EACI,0CAAA;AAhBR;AAqBA;EACI,qBAAA;EACA,4BAAA;EACA,0BAAA;EAEA,yBAAA;EACA,6CAAA;EACA,YAAA;EACA,YAAA;EACA,WAAA;AApBJ;AAWA;EAYQ,YAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,6CAAA;EACA,mBAAA;AApBR;AAGA;EAoBY,4BAAA;EACA,iBAAA;EACA,YAAA;EACA,iBAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;EACA,eAAA;AApBZ;AAsBY;EACI,6BAAA;EACA,gCAAA;AApBhB;AA0BA;EACI,qBAAA;EACA,4BAAA;EAEA,kBAAA;EAEA,2BAAA;EACA,6CAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,mBAAA;AA1BJ;AA4BI;EAEQ,6BAAA;EACA,yBAAA;AA3BZ;AAWA;EA4BQ,UAAA;EACA,kBAAA;EACA,SAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,uBAAA;EACA,yBAAA;EACA,2BAAA;AApCR;AAFA;EA0CY,kBAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,yCAAA;AArCZ;AAdA;EAuDY,kBAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,2BAAA;EACA,+qEAAA;EACA,2BAAA;EACA,4BAAA;EACA,kBAAA;AAtCZ;AAwCY;EACI,yBAAA;EACA,yBAAA;EACA,kBAAA;AAtChB;AA/BA;EA2EY,kBAAA;EACA,wBAAA;EACA,YAAA;EACA,WAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,eAAA;AAzCZ;AAzCA;EAwFQ,UAAA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,SAAA;EACA,QAAA;EACA,wBAAA;AA5CR;AAlDA;EAiGY,kBAAA;EACA,SAAA;EACA,SAAA;EACA,wBAAA;EACA,mCAAA;EACA,uBAAA;EACA,eAAA;EACA,aAAA;EACA,sBAAA;EACA,yBAAA;EACA,eAAA;EACA,+BAAA;EACA,uBAAA;EACA,kCAAA;AA5CZ;AAgDY;EAEQ,uBAAA;EACA,YAAA;AA/CpB;AAtEA;EA0HgB,kBAAA;EACA,QAAA;EACA,SAAA;EACA,WAAA;EACA,+BAAA;EACA,2BAAA;EACA,uBAAA;EACA,kCAAA;AAjDhB;AAhFA;EAsIgB,UAAA;EACA,YAAA;EACA,iBAAA;EACA,iBAAA;EACA,uBAAA;AAnDhB;AAqDgB;EACI,mCAAA;EACA,YAAA;AAnDpB;AAsDgB;EACI,8CAAA;EACA,uBAAA;AApDpB;AA2DI;EAEQ,mCAAA;AA1DZ;AAwDI;EAMQ,yBAAA;EACA,yBAAA;EACA,0CAAA;AA3DZ;AAmDI;EAYQ,eAAA;AA5DZ;AAkEA;EAEI,kBAAA;EACA,WAAA;EACA,uBAAA;EACA,uCAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;AAjEJ;AAyDA;EAWQ,kBAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,iBAAA;EACA,WAAA;EACA,uBAAA;EACA,eAAA;EACA,uBAAA;AAjER;AAqEI;EACI,+CAAA;AAnER;AAuEA;EACI,eAAA;EACA,gBAAA;EACA,mBAAA;AArEJ;AAkEA;EAMQ,cAAA;EACA,uBAAA;EACA,4BAAA;AArER;AAuEQ;EACI,qBAAA;AArEZ;AA2EA;EACI,WAAA;EACA,YAAA;AAzEJ;AAuEA;EAKQ,WAAA;EACA,YAAA;EACA,YAAA;EACA,SAAA;EACA,yBAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,YAAA;AAzER;AA0DA;EAkBY,eAAA;EACA,gBAAA;AAzEZ;AAsDA;EAuBY,WAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;AA1EZ\",\"sourcesContent\":[\".WINDOWS-window {\\n display: none;\\n background: #d9d9d9;\\n user-select: none;\\n position: fixed;\\n left: 0;\\n top: 0;\\n border: 1px #707070 solid;\\n filter: drop-shadow(0px 0px 8px #8b8b8b);\\n text-align: left;\\n font-family: sans-serif;\\n opacity: 0;\\n transition: transform 0.3s, opacity 0.3s;\\n\\n &.WINDOWS-window-display {\\n display: block;\\n }\\n\\n &.WINDOWS-window-visible {\\n opacity: 1;\\n }\\n\\n --themeColor: #0078D7;\\n --themeContentColor: #000;\\n --themeContentBackgroundColor: #F0F0F0;\\n --themeTitleColor: #000;\\n --themeTitleBackgroundColor: #FFFFFF;\\n --General_Border: #828790;\\n --General_Border-Actived: #0078D7;\\n\\n --titleHeight: 29px;\\n\\n .WINDOWS-title {\\n vertical-align: top;\\n height: var(--titleHeight);\\n background-color: var(--themeTitleBackgroundColor);\\n color: var(--themeTitleColor);\\n padding-left: 7px;\\n line-height: 30px;\\n font-size: 12px;\\n width: 100%;\\n display: inline-block;\\n }\\n\\n .WINDOWS-titleButton {\\n display: inline-block;\\n vertical-align: top;\\n height: var(--titleHeight);\\n background-color: var(--themeTitleBackgroundColor);\\n\\n &:hover {\\n background-color: #E5E5E5;\\n }\\n\\n &:active {\\n background-color: #CCCCCC\\n }\\n\\n &.WINDOWS-titleButton-minimize {}\\n\\n &.WINDOWS-titleButton-maximize {}\\n\\n &.WINDOWS-titleButton-close {\\n ::before{\\n content: \\\"A\\\";\\n }\\n &:hover {\\n background-color: #E81123;\\n }\\n\\n &:active {\\n background-color: #F1707A\\n }\\n }\\n }\\n\\n .WINDOWS-content {\\n background-color: var(--themeContentBackgroundColor);\\n height: calc(100% - var(--titleHeight));\\n width: 100%;\\n overflow: hidden;\\n }\\n\\n &.alert {\\n filter: drop-shadow(10px 10px 8px #8b8b8b);\\n }\\n}\\n\\n\\n.WINDOWS-select-outBorder {\\n --themeColor: #0077D5;\\n --themeBackgroundColor: #fff;\\n --themeSelectedColor: #fff;\\n\\n border: 1px #828790 solid;\\n background-color: var(--themeBackgroundColor);\\n padding: 1px;\\n height: 100%;\\n width: 100%;\\n\\n .WINDOWS-select {\\n height: 100%;\\n width: 100%;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n background-color: var(--themeBackgroundColor);\\n scroll-snap-type: y;\\n\\n .WINDOWS-selection {\\n scroll-snap-align: start end;\\n line-height: 20px;\\n height: 20px;\\n margin-right: 1px;\\n width: calc(100% - 1px);\\n overflow: hidden;\\n white-space: nowrap;\\n font-size: 14px;\\n\\n &.WINDOWS-selection-selected {\\n background: var(--themeColor);\\n color: var(--themeSelectedColor);\\n }\\n }\\n }\\n}\\n\\n.WINDOWS-dropdownSelect {\\n --themeColor: #0078D7;\\n --themeBackgroundColor: #fff;\\n\\n position: relative;\\n // border: 1px #7A7A7A solid;\\n transition: border-color 1s;\\n background-color: var(--themeBackgroundColor);\\n height: 24px;\\n width: 100%;\\n padding-left: 3px;\\n padding-right: 21px;\\n\\n &:hover {\\n .WINDOWS-dropdownSelect-box {\\n transition: border-color 0.5s;\\n border: 1px #171717 solid;\\n }\\n }\\n\\n // &:focus-within {\\n // .WINDOWS-dropdownSelect-currentSelected:not(.WINDOWS-dropdownSelect-currentSelected-noActive) {\\n // background-color: var(--themeColor);\\n // color: var(--themeBackgroundColor); \\n // }\\n // }\\n\\n .WINDOWS-dropdownSelect-box {\\n z-index: 1;\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n width: 100%;\\n height: 100%;\\n padding-left: 2px;\\n padding-right: 21px;\\n background-color: white;\\n border: 1px #7A7A7A solid;\\n transition: border-color 1s;\\n\\n\\n .WINDOWS-dropdownSelect-currentSelected {\\n position: absolute;\\n top: 2px;\\n padding: 0px;\\n height: 18px;\\n line-height: 18px;\\n border: 0px;\\n width: calc(100% - 21px);\\n font-size: 12px;\\n font-family: sans-serif;\\n transition: background-color 0s, color 0s;\\n }\\n\\n .WINDOWS-dropdownSelect-arrow {\\n position: absolute;\\n top: -1px;\\n right: -1px;\\n height: 24px;\\n width: 17px;\\n border: 1px #7a7a7a00 solid;\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFwmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0xMC0xMlQyMzowNDoyMiswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMC0xMlQyMzowNDoyMiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTAtMTJUMjM6MDQ6MjIrMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YTQ2N2Y1MjctZjExZC05YzQ2LWE4ZWQtNmNmNmIwZTMxMDk5IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NDdhYmI4NTYtZjRjNy1hMTRiLThkZjUtNjY3YWMzMzQzMWM0IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTQ5ODY1MGYtOGFhYi00NTQ2LTg3ZjAtZjk3NTQyZGY1Nzc2IiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTQ5ODY1MGYtOGFhYi00NTQ2LTg3ZjAtZjk3NTQyZGY1Nzc2IiBzdEV2dDp3aGVuPSIyMDIxLTEwLTEyVDIzOjA0OjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphNDY3ZjUyNy1mMTFkLTljNDYtYThlZC02Y2Y2YjBlMzEwOTkiIHN0RXZ0OndoZW49IjIwMjEtMTAtMTJUMjM6MDQ6MjIrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7luufwAAAENJREFUCJltzNEJAEAIAtAGbcUGaZwm8DAIuupDAn0kAMTdwXulNokIqCrMbGF23GiyuHBH+bGGjif6YMcTLVh4IuYB5di1P8BIxosAAAAASUVORK5CYII=\\\");\\n background-position: center;\\n background-repeat: no-repeat;\\n transition: all 1s;\\n\\n &:hover {\\n border: 1px #0078D7 solid;\\n background-color: #E5F1FB;\\n transition: all 1s;\\n }\\n\\n }\\n\\n .WINDOWS-dropdownSelect-fakeInput {\\n position: absolute;\\n width: calc(100% - 17px);\\n height: 100%;\\n border: 0px;\\n top: 0px;\\n left: 0px;\\n opacity: 0;\\n cursor: default;\\n }\\n }\\n\\n\\n .WINDOWS-dropdownSelect-selections-limiter {\\n z-index: 0;\\n height: 0px;\\n overflow: hidden;\\n position: absolute;\\n left: 0px;\\n top: 1px;\\n width: (calc(100% + 20px));\\n\\n .WINDOWS-dropdownSelect-selections {\\n position: absolute;\\n top: 23px;\\n left: 0px;\\n width: calc(100% - 20px);\\n border: 1px var(--themeColor) solid;\\n background-color: white;\\n font-size: 12px;\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-end;\\n max-height: 0px;\\n transition-property: max-height;\\n transition-duration: 0s;\\n transition-timing-function: linear;\\n // overflow: hidden;\\n // padding-bottom: 10px;\\n\\n &:hover {\\n .WINDOWS-dropdownSelect-selection.WINDOWS-dropdownSelect-selection-selected {\\n background-color: unset;\\n color: unset;\\n }\\n }\\n\\n .WINDOWS-dropdownSelect-selections-shadow {\\n position: absolute;\\n top: 3px;\\n left: 0px;\\n width: 100%;\\n box-shadow: 3px 3px 2px #7e7e7e;\\n transition-property: height;\\n transition-duration: 0s;\\n transition-timing-function: linear;\\n\\n }\\n\\n .WINDOWS-dropdownSelect-selection {\\n z-index: 1;\\n height: 17px;\\n line-height: 17px;\\n padding-left: 1px;\\n transition-delay: 0.01s;\\n\\n &.WINDOWS-dropdownSelect-selection-selected {\\n background-color: var(--themeColor);\\n color: white;\\n }\\n\\n &:hover {\\n background-color: var(--themeColor) !important;\\n color: white !important;\\n }\\n }\\n\\n }\\n }\\n\\n &.WINDOWS-dropdownSelect-showDropdown {\\n .WINDOWS-dropdownSelect-box {\\n border: 1px var(--themeColor) solid;\\n }\\n\\n .WINDOWS-dropdownSelect-arrow {\\n border: 1px #005499 solid;\\n background-color: #CCE4F7;\\n transition: border 0s, background-color 0s;\\n }\\n\\n .WINDOWS-dropdownSelect-selections-limiter {\\n height: 10000px;\\n }\\n }\\n}\\n\\n\\n.WINDOWS-input {\\n\\n position: relative;\\n width: 100%;\\n background-color: white;\\n border: 1px var(--General_Border) solid;\\n height: 24px;\\n padding-left: 3px;\\n padding-right: 4px;\\n\\n input {\\n position: absolute;\\n top: 2px;\\n padding: 0px;\\n height: 17px;\\n line-height: 17px;\\n border: 0px;\\n width: calc(100% - 7px);\\n font-size: 12px;\\n font-family: sans-serif;\\n\\n }\\n\\n &.WINDOWS-input-primary {\\n border: 1px var(--General_Border-Actived) solid;\\n }\\n}\\n\\n.WINDOWS-paragraph {\\n font-size: 12px;\\n padding-top: 3px;\\n padding-bottom: 3px;\\n\\n a {\\n color: #0066CC;\\n -webkit-user-drag: none;\\n border: 1px #00000000 dotted;\\n\\n &:focus-within {\\n border-color: #000000;\\n\\n }\\n }\\n}\\n\\n.WINDOWS-fieldset {\\n width: 100%;\\n height: 100%;\\n\\n >fieldset {\\n width: 100%;\\n height: 100%;\\n min-width: 0;\\n margin: 0;\\n border: 1px #DCDCDC solid;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n white-space: nowrap;\\n overflow: hidden;\\n padding: 0px;\\n\\n >legend {\\n font-size: 12px;\\n margin-left: 7px;\\n }\\n\\n >.WINDOWS-fieldset-content {\\n margin: 1px;\\n width: 100%;\\n text-align: center;\\n overflow: hidden;\\n }\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../../../node_modules/less-loader/dist/cjs.js!./index.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".WINDOWS-button {\\n margin: 5px;\\n height: 28px;\\n width: 77px;\\n background-color: #E1E1E1;\\n border-style: solid;\\n border-color: #ADADAD;\\n border-width: 1px;\\n transition: background-color 0.4s, border-color 0.4s;\\n}\\n.WINDOWS-button.WINDOWS-button-primary {\\n border-color: #0078D7;\\n}\\n.WINDOWS-button.WINDOWS-button-primary .WINDOWS-button-content {\\n border-color: #0076d7;\\n}\\n.WINDOWS-button:hover {\\n background-color: #E5F1FB;\\n border-color: #0078D7;\\n}\\n.WINDOWS-button:hover .WINDOWS-button-content {\\n border-color: #0076d700;\\n}\\n.WINDOWS-button:active {\\n background-color: #CCE4F7;\\n border-color: #005499;\\n}\\n.WINDOWS-button:active .WINDOWS-button-content {\\n border-color: #0076d700;\\n}\\n.WINDOWS-button .WINDOWS-button-content {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n border-style: solid;\\n border-color: #0076d700;\\n border-width: 1px;\\n transition: border-color 0.4s;\\n font-size: 12px;\\n touch-action: none;\\n}\\n.WINDOWS-buttonGroup {\\n display: flex;\\n justify-content: flex-end;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/component/windows/Button/index.less\"],\"names\":[],\"mappings\":\"AAAA;EACI,WAAA;EAEA,YAAA;EACA,WAAA;EACA,yBAAA;EACA,mBAAA;EACA,qBAAA;EACA,iBAAA;EACA,oDAAA;AAAJ;AAEI;EACI,qBAAA;AAAR;AADI;EAIQ,qBAAA;AAAZ;AAII;EACI,yBAAA;EACA,qBAAA;AAFR;AAAI;EAKQ,uBAAA;AAFZ;AAMI;EACI,yBAAA;EACA,qBAAA;AAJR;AAEI;EAKQ,uBAAA;AAJZ;AA7BA;EAsCQ,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,iBAAA;EACA,6BAAA;EACA,eAAA;EACA,kBAAA;AANR;AAUA;EACI,aAAA;EACA,yBAAA;AARJ\",\"sourcesContent\":[\".WINDOWS-button {\\n margin: 5px;\\n\\n height: 28px;\\n width: 77px;\\n background-color: #E1E1E1;\\n border-style: solid;\\n border-color: #ADADAD;\\n border-width: 1px;\\n transition: background-color 0.4s, border-color 0.4s;\\n\\n &.WINDOWS-button-primary {\\n border-color: #0078D7;\\n\\n .WINDOWS-button-content {\\n border-color: #0076d7;\\n }\\n }\\n\\n &:hover {\\n background-color: #E5F1FB;\\n border-color: #0078D7;\\n\\n .WINDOWS-button-content {\\n border-color: #0076d700;\\n }\\n }\\n\\n &:active {\\n background-color: #CCE4F7;\\n border-color: #005499;\\n\\n .WINDOWS-button-content {\\n border-color: #0076d700;\\n }\\n }\\n\\n .WINDOWS-button-content {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n border-style: solid;\\n border-color: #0076d700;\\n border-width: 1px;\\n transition: border-color 0.4s;\\n font-size: 12px;\\n touch-action: none;\\n }\\n}\\n\\n.WINDOWS-buttonGroup {\\n display: flex;\\n justify-content: flex-end;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!../../node_modules/less-loader/dist/cjs.js!./fontSelection.less\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".fontSelection {\\n position: relative;\\n height: 100%;\\n width: 100%;\\n padding-top: 12px;\\n}\\n.fontSelection > div {\\n display: inline-block;\\n}\\n.FontSelector {\\n --themeColor: #0077D5;\\n --themeSelectedColor: #fff;\\n height: 137px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n border: 1px #828790 solid;\\n}\\n.FontSelector .selection {\\n line-height: 19px;\\n height: 19px;\\n margin-left: 1px;\\n margin-right: 1px;\\n width: calc(100% - 2px);\\n overflow: hidden;\\n white-space: nowrap;\\n font-size: 14px;\\n}\\n.FontSelector .selection.selected {\\n background: var(--themeColor);\\n color: var(--themeSelectedColor);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://src/component/fontSelection.less\"],\"names\":[],\"mappings\":\"AAAA;EACI,kBAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;AACJ;AALA;EAOQ,qBAAA;AACR;AAGA;EACI,qBAAA;EACA,0BAAA;EAEA,aAAA;EACA,kBAAA;EACA,kBAAA;EACA,yBAAA;AAFJ;AALA;EAUQ,iBAAA;EACA,YAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;EACA,eAAA;AAFR;AAIQ;EACI,6BAAA;EACA,gCAAA;AAFZ\",\"sourcesContent\":[\".fontSelection {\\n position: relative;\\n height: 100%;\\n width: 100%;\\n padding-top: 12px;\\n\\n >div {\\n display: inline-block;\\n }\\n}\\n\\n.FontSelector {\\n --themeColor: #0077D5;\\n --themeSelectedColor: #fff;\\n\\n height: 137px;\\n overflow-y: scroll;\\n overflow-x: hidden;\\n border: 1px #828790 solid;\\n\\n .selection {\\n line-height: 19px;\\n height: 19px;\\n margin-left: 1px;\\n margin-right: 1px;\\n width: calc(100% - 2px);\\n overflow: hidden;\\n white-space: nowrap;\\n font-size: 14px;\\n\\n &.selected {\\n background: var(--themeColor);\\n color: var(--themeSelectedColor);\\n }\\n }\\n\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default __webpack_public_path__ + \"static/media/index.ddd668af.css\";","\n\n\nexport function createInvisibleDOM(visible = false) {\n let newDiv = document.createElement(\"div\");\n if (!visible) {\n newDiv.style.height = \"0px\"\n newDiv.style.overflow = \"hidden\"\n } else {\n newDiv.style.position = \"fixed\"\n newDiv.style.top = \"0px\"\n newDiv.style.left = \"64px\"\n }\n newDiv.style.background = \"#94a995\"\n newDiv.style.width = \"100%\"\n document.body.appendChild(newDiv);\n return newDiv\n}\nexport function removeDOM(dom: HTMLElement): void {\n if (!dom.parentElement) {\n console.error(\"无法删除dom\", dom)\n return\n }\n dom.parentElement.removeChild(dom)\n}\n","import { createInvisibleDOM, removeDOM } from \"./createInvisibleDOM\"\nimport { ZerWidth_WoffBase64 } from \"./ZeroWidthFont\"\n\n\nconst installZeroWidthFontIfNeed = function (): boolean {\n if (!document.getElementById(\"ZeroWidthFont-install\")) {\n const dom = document.createElement(\"style\");\n dom.innerHTML = `@font-face {\n font-family: 'ZeroWidth'; \n src: url(${ZerWidth_WoffBase64}) format('woff');\n}\n.font-test-span{\n font-size: 64px;\n font-weight: 400;\n}`\n document.head.appendChild(dom);\n return true\n }\n return false\n}\n\nexport async function getFontList() {\n const element = createInvisibleDOM()\n installZeroWidthFontIfNeed()\n\n element.innerHTML = \"\"\n let waitingCheckDomList: HTMLSpanElement[] = []\n let outterDiv = document.createElement(\"div\");\n\n for (let fontInfo of frontList) {\n const fontCSSName = fontInfo.en_name\n let newDiv = document.createElement(\"span\");\n newDiv.style.fontFamily = `\"${fontCSSName}\", \"ZeroWidth\"`\n newDiv.className = \"font-test-span\"\n newDiv.innerHTML = \"A\"\n newDiv.setAttribute(\"en_name\", fontInfo.en_name)\n newDiv.setAttribute(\"cn_name\", fontInfo.cn_name)\n outterDiv.appendChild(newDiv);\n waitingCheckDomList.push(newDiv)\n }\n\n element.appendChild(outterDiv);\n const installedFontEnNameList: Set<{\n en_name: string\n cn_name: string\n }> = new Set()\n\n await document.fonts.ready\n for (let dom of waitingCheckDomList) {\n if (dom.offsetWidth > 5) {\n installedFontEnNameList.add({\n en_name: dom.getAttribute(\"en_name\") || \"null??\",\n cn_name: dom.getAttribute(\"cn_name\") || \"null??\"\n })\n }\n }\n removeDOM(element)\n return [...installedFontEnNameList]\n}\n\n\n\nconst frontList = [\n {\n \"cn_name\": \"Zhiyong Elegant\",\n \"en_name\": \"Zhiyong Elegant\"\n },\n {\n \"cn_name\": \"ZhiyongWrite\",\n \"en_name\": \"ZhiyongWrite\"\n },\n {\n \"cn_name\": \"汉仪贤二体\",\n \"en_name\": \"XianErTi\"\n },\n {\n \"cn_name\": \"等线\",\n \"en_name\": \"等线\"\n },\n {\n \"cn_name\": \"濑户字体\",\n \"en_name\": \"SetoFont\"\n },\n {\n \"cn_name\": \"隶书\",\n \"en_name\": \"LiSu\"\n },\n {\n \"cn_name\": \"沐瑶软笔手写体\",\n \"en_name\": \"Muyao-Softbrush\"\n },\n {\n \"cn_name\": \"庞门正道标题体\",\n \"en_name\": \"PangMenZhengDao\"\n },\n {\n \"cn_name\": \"锐字真言体\",\n \"en_name\": \"ZhenyanGB\"\n },\n {\n \"cn_name\": \"手书体\",\n \"en_name\": \"ShouShuti\"\n },\n {\n \"cn_name\": \"思源黑体\",\n \"en_name\": \"Source Han Sans CN\"\n },\n {\n \"cn_name\": \"思源柔黑体\",\n \"en_name\": \"Gen Jyuu Gothic\"\n },\n {\n \"cn_name\": \"思源宋体\",\n \"en_name\": \"Source Han Serif CN\"\n },\n {\n \"cn_name\": \"思源真黑体\",\n \"en_name\": \"Gen Shin Gothic\"\n },\n {\n \"cn_name\": \"杨任东竹石体\",\n \"en_name\": \"YRDZST\"\n },\n {\n \"cn_name\": \"幼圆\",\n \"en_name\": \"YouYuan\"\n },\n {\n \"cn_name\": \"源流明体\",\n \"en_name\": \"GenRynMin TW\"\n },\n {\n \"cn_name\": \"源漾明体\",\n \"en_name\": \"GenYoMin TW\"\n },\n {\n \"cn_name\": \"源云明体\",\n \"en_name\": \"GenWanMin TW\"\n },\n {\n \"cn_name\": \"站酷高端黑\",\n \"en_name\": \"huxiaobo-gdh\"\n },\n {\n \"cn_name\": \"站酷酷黑\",\n \"en_name\": \"HuXiaoBo-KuHei\"\n },\n {\n \"cn_name\": \"站酷快乐体\",\n \"en_name\": \"HappyZcool\"\n },\n {\n \"cn_name\": \"站酷快乐体新版\",\n \"en_name\": \"HappyZcool-2016\"\n },\n {\n \"cn_name\": \"站酷庆科黄油体\",\n \"en_name\": \"zcoolqingkehuangyouti\"\n },\n {\n \"cn_name\": \"站酷文艺体\",\n \"en_name\": \"zcoolwenyiti\"\n },\n {\n \"cn_name\": \"站酷小薇logo体\",\n \"en_name\": \"xiaowei\"\n },\n {\n \"cn_name\": \"装甲明朝体\",\n \"en_name\": \"SoukouMincho\"\n },\n {\n \"cn_name\": \"Abril\",\n \"en_name\": \"Abril\"\n },\n {\n \"cn_name\": \"Abril Titling\",\n \"en_name\": \"Abril Titling\"\n },\n {\n \"cn_name\": \"Adelle\",\n \"en_name\": \"Adelle\"\n },\n {\n \"cn_name\": \"Adelle Sans\",\n \"en_name\": \"Adelle Sans\"\n },\n {\n \"cn_name\": \"Adelle Sans DEV\",\n \"en_name\": \"Adelle Sans\"\n },\n {\n \"cn_name\": \"Adobe Gothic Std B\",\n \"en_name\": \"Adobe Gothic Std B\"\n },\n {\n \"cn_name\": \"Adobe Myungjo Std M\",\n \"en_name\": \"Adobe Myungjo Std M\"\n },\n {\n \"cn_name\": \"Alize\",\n \"en_name\": \"Alize\"\n },\n {\n \"cn_name\": \"Athelas\",\n \"en_name\": \"Athelas\"\n },\n {\n \"cn_name\": \"AwanZaman\",\n \"en_name\": \"AwanZaman\"\n },\n {\n \"cn_name\": \"Bely\",\n \"en_name\": \"BELY\"\n },\n {\n \"cn_name\": \"Bree\",\n \"en_name\": \"Bree\"\n },\n {\n \"cn_name\": \"Bree Serif\",\n \"en_name\": \"Bree Serif\"\n },\n {\n \"cn_name\": \"Capitolium2\",\n \"en_name\": \"Capitolium2\"\n },\n {\n \"cn_name\": \"Century Gothic\",\n \"en_name\": \"Century Gothic\"\n },\n {\n \"cn_name\": \"Cora\",\n \"en_name\": \"Cora\"\n },\n {\n \"cn_name\": \"Coranto 2\",\n \"en_name\": \"Coranto 2\"\n },\n {\n \"cn_name\": \"Crete\",\n \"en_name\": \"Crete\"\n },\n {\n \"cn_name\": \"Ebony\",\n \"en_name\": \"Ebony\"\n },\n {\n \"cn_name\": \"Edita\",\n \"en_name\": \"Edita\"\n },\n {\n \"cn_name\": \"Eskapade\",\n \"en_name\": \"Eskapade\"\n },\n {\n \"cn_name\": \"Essay\",\n \"en_name\": \"Essay Text\"\n },\n {\n \"cn_name\": \"Fino\",\n \"en_name\": \"FINO\"\n },\n {\n \"cn_name\": \"Fino Stencil\",\n \"en_name\": \"FINO STENCIL\"\n },\n {\n \"cn_name\": \"Garalda\",\n \"en_name\": \"Garalda\"\n },\n {\n \"cn_name\": \"Givry\",\n \"en_name\": \"Givry\"\n },\n {\n \"cn_name\": \"Helvetica\",\n \"en_name\": \"Helvetica\"\n },\n {\n \"cn_name\": \"Iro Sans\",\n \"en_name\": \"IRO SANS\"\n },\n {\n \"cn_name\": \"Iskra\",\n \"en_name\": \"Iskra\"\n },\n {\n \"cn_name\": \"Karmina\",\n \"en_name\": \"Karmina\"\n },\n {\n \"cn_name\": \"Karmina Sans\",\n \"en_name\": \"Karmina Sans\"\n },\n {\n \"cn_name\": \"LFT Etica\",\n \"en_name\": \"LFT Etica\"\n },\n {\n \"cn_name\": \"Lipa Agate\",\n \"en_name\": \"Lipa Agate\"\n },\n {\n \"cn_name\": \"Lisbeth\",\n \"en_name\": \"Lisbeth\"\n },\n {\n \"cn_name\": \"Maiola\",\n \"en_name\": \"Maiola\"\n },\n {\n \"cn_name\": \"Marco\",\n \"en_name\": \"Marco\"\n },\n {\n \"cn_name\": \"Noam\",\n \"en_name\": \"NOAM\"\n },\n {\n \"cn_name\": \"Noort\",\n \"en_name\": \"NOORT\"\n },\n {\n \"cn_name\": \"Pollen\",\n \"en_name\": \"Pollen\"\n },\n {\n \"cn_name\": \"Protipo\",\n \"en_name\": \"PROTIPO\"\n },\n {\n \"cn_name\": \"Ronnia\",\n \"en_name\": \"Ronnia\"\n },\n {\n \"cn_name\": \"Sanserata\",\n \"en_name\": \"Sanserata\"\n },\n {\n \"cn_name\": \"Serifa?\",\n \"en_name\": \"Serifa\"\n },\n {\n \"cn_name\": \"Serpentine?\",\n \"en_name\": \"Serpentine\"\n },\n {\n \"cn_name\": \"Sirba\",\n \"en_name\": \"Sirba\"\n },\n {\n \"cn_name\": \"Soleil\",\n \"en_name\": \"Soleil\"\n },\n {\n \"cn_name\": \"Tablet Gothic\",\n \"en_name\": \"Tablet Gothic\"\n },\n {\n \"cn_name\": \"冬青黑体简\",\n \"en_name\": \"Hiragino Sans GB\"\n },\n {\n \"cn_name\": \"方正报宋简体\",\n \"en_name\": \"FZBaoSong-Z04S\"\n },\n {\n \"cn_name\": \"方正本墨绪圆体\",\n \"en_name\": \"FZBMXY JW\"\n },\n {\n \"cn_name\": \"方正兵马俑体\",\n \"en_name\": \"FZBingMaYongTiS\"\n },\n {\n \"cn_name\": \"方正博雅宋简体\",\n \"en_name\": \"FZBoYaSongS-GB\"\n },\n {\n \"cn_name\": \"方正彩云简体\",\n \"en_name\": \"FZCaiYun-M09S\"\n },\n {\n \"cn_name\": \"方正藏意汉体简体\",\n \"en_name\": \"FZZangYiHanTiS-R-GB\"\n },\n {\n \"cn_name\": \"方正超粗黑简体\",\n \"en_name\": \"FZChaoCuHei-M10S\"\n },\n {\n \"cn_name\": \"方正超重要体\",\n \"en_name\": \"FzCHAOZYTJW\"\n },\n {\n \"cn_name\": \"方正粗活意简体\",\n \"en_name\": \"FZCuHuoYi-M25S\"\n },\n {\n \"cn_name\": \"方正粗倩简体\",\n \"en_name\": \"FZCuQian-M17S\"\n },\n {\n \"cn_name\": \"方正粗宋简体\",\n \"en_name\": \"FZCuSong-B09S\"\n },\n {\n \"cn_name\": \"方正粗谭黑简体\",\n \"en_name\": \"FZTanHeiS-B-GB\"\n },\n {\n \"cn_name\": \"方正粗雅宋简体\",\n \"en_name\": \"FZYaSongS-B-GB\"\n },\n {\n \"cn_name\": \"方正粗圆简体\",\n \"en_name\": \"FZCuYuan-M03S\"\n },\n {\n \"cn_name\": \"方正大标宋简体\",\n \"en_name\": \"FZDaBiaoSong-B06S\"\n },\n {\n \"cn_name\": \"方正大黑简体\",\n \"en_name\": \"FZDaHei-B02S\"\n },\n {\n \"cn_name\": \"方正大魏体简体\",\n \"en_name\": \"FZDaWeiTiS-R-GB\"\n },\n {\n \"cn_name\": \"方正邓黑隶\",\n \"en_name\": \"FZDengHLJ\"\n },\n {\n \"cn_name\": \"方正方俊黑\",\n \"en_name\": \"FZFangJunHeiS\"\n },\n {\n \"cn_name\": \"方正仿宋简体\",\n \"en_name\": \"FZFangSong-Z02S\"\n },\n {\n \"cn_name\": \"方正飞跃体\",\n \"en_name\": \"FZFeiYueTiS\"\n },\n {\n \"cn_name\": \"方正复古粗宋\",\n \"en_name\": \"FOUNDERTYPE\"\n },\n {\n \"cn_name\": \"方正古隶简体\",\n \"en_name\": \"FZGuLi-S12S\"\n },\n {\n \"cn_name\": \"方正管峻楷书\",\n \"en_name\": \"FZGUANJUNKAISHUS\"\n },\n {\n \"cn_name\": \"方正汉真广标简体\",\n \"en_name\": \"FZHanZhenGuangBiaoS-GB\"\n },\n {\n \"cn_name\": \"方正行楷简体\",\n \"en_name\": \"FZXingKai-S04S\"\n },\n {\n \"cn_name\": \"方正黑体简体\",\n \"en_name\": \"FZHei-B01S\"\n },\n {\n \"cn_name\": \"方正琥珀简体\",\n \"en_name\": \"FZHuPo-M04S\"\n },\n {\n \"cn_name\": \"方正华隶简体\",\n \"en_name\": \"FZHuaLi-M14S\"\n },\n {\n \"cn_name\": \"方正黄草简体\",\n \"en_name\": \"FZHuangCao-S09S\"\n },\n {\n \"cn_name\": \"方正活龙体\",\n \"en_name\": \"FZHuoLTJ\"\n },\n {\n \"cn_name\": \"方正记忆的碎片体\",\n \"en_name\": \"FZJiYiDeSuiPianTiS\"\n },\n {\n \"cn_name\": \"方正剪纸简体\",\n \"en_name\": \"FZJianZhi-M23S\"\n },\n {\n \"cn_name\": \"方正静蕾简体\",\n \"en_name\": \"FZJingLeiS-R-GB\"\n },\n {\n \"cn_name\": \"方正卡通简体\",\n \"en_name\": \"FZKaTong-M19S\"\n },\n {\n \"cn_name\": \"方正楷体简体\",\n \"en_name\": \"FZKai-Z03S\"\n },\n {\n \"cn_name\": \"方正康体简体\",\n \"en_name\": \"FZKangTi-S07S\"\n },\n {\n \"cn_name\": \"方正克书皇榜体\",\n \"en_name\": \"FZKeShuHuangBang\"\n },\n {\n \"cn_name\": \"方正兰亭超细黑简体\",\n \"en_name\": \"FZLanTingHeiS-UL-GB\"\n },\n {\n \"cn_name\": \"方正兰亭粗黑简体\",\n \"en_name\": \"FZLTCHJW\"\n },\n {\n \"cn_name\": \"方正兰亭黑简体\",\n \"en_name\": \"FZLanTingHeiS-R-GB\"\n },\n {\n \"cn_name\": \"方正兰亭特黑简体\",\n \"en_name\": \"FZLanTingHeiS-H-GB\"\n },\n {\n \"cn_name\": \"方正兰亭细黑_GBK\",\n \"en_name\": \"FZLanTingHei-L-GBK\"\n },\n {\n \"cn_name\": \"方正兰亭细黑_GBK-M\",\n \"en_name\": \"FZLanTingHei-L-GBK-M\"\n },\n {\n \"cn_name\": \"方正兰亭纤黑繁体\",\n \"en_name\": \"FZLanTingHeiT-EL-GB\"\n },\n {\n \"cn_name\": \"方正兰亭纤黑简体\",\n \"en_name\": \"FZLanTingHeiS-EL-GB\"\n },\n {\n \"cn_name\": \"方正兰亭圆简体\",\n \"en_name\": \"FZLanTingYuanS-R-GB\"\n },\n {\n \"cn_name\": \"方正兰亭圆简体_纤\",\n \"en_name\": \"FZLanTingYuanS-EL-GB\"\n },\n {\n \"cn_name\": \"方正隶变简体\",\n \"en_name\": \"FZLiBian-S02S\"\n },\n {\n \"cn_name\": \"方正隶二简体\",\n \"en_name\": \"FZLiShu II-S06S\"\n },\n {\n \"cn_name\": \"方正隶书简体\",\n \"en_name\": \"FZLiShu-S01S\"\n },\n {\n \"cn_name\": \"方正流行体简体\",\n \"en_name\": \"FZLiuXingTi-M26S\"\n },\n {\n \"cn_name\": \"方正美黑简体\",\n \"en_name\": \"FZMeiHei-M07S\"\n },\n {\n \"cn_name\": \"方正萌软体\",\n \"en_name\": \"FZMengRuanTiS\"\n },\n {\n \"cn_name\": \"方正萌艺体\",\n \"en_name\": \"FZMengYiTiS\"\n },\n {\n \"cn_name\": \"方正喵呜简体\",\n \"en_name\": \"FZMiaoWuS-R-GB\"\n },\n {\n \"cn_name\": \"方正喵呜体\",\n \"en_name\": \"FZMiaoWuS-R-GB\"\n },\n {\n \"cn_name\": \"方正胖头鱼简体\",\n \"en_name\": \"FZPangTouYu-M24S\"\n },\n {\n \"cn_name\": \"方正胖娃简体\",\n \"en_name\": \"FZPangWa-M18S\"\n },\n {\n \"cn_name\": \"方正品尚粗黑简体\",\n \"en_name\": \"FZPinShangHeiS-B-GB\"\n },\n {\n \"cn_name\": \"方正品尚黑简体\",\n \"en_name\": \"FZPinShangHeiS-R-GB\"\n },\n {\n \"cn_name\": \"方正平和简体\",\n \"en_name\": \"FZPingHe-S11S\"\n },\n {\n \"cn_name\": \"方正奇妙体\",\n \"en_name\": \"FZQiMTJ\"\n },\n {\n \"cn_name\": \"方正启笛简体\",\n \"en_name\": \"FZQiDiS-R-GB\"\n },\n {\n \"cn_name\": \"方正启体简体\",\n \"en_name\": \"FZQiTi-S14S\"\n },\n {\n \"cn_name\": \"方正清仿宋系列\",\n \"en_name\": \"FZQingFangSongS\"\n },\n {\n \"cn_name\": \"方正晴朗体\",\n \"en_name\": \"FZQINGLANGTIS\"\n },\n {\n \"cn_name\": \"方正趣黑\",\n \"en_name\": \"FZQuHJW\"\n },\n {\n \"cn_name\": \"方正锐正圆\",\n \"en_name\": \"FZRuiZhengYuanS\"\n },\n {\n \"cn_name\": \"方正尚酷简体\",\n \"en_name\": \"FZShangKuS-R-GB\"\n },\n {\n \"cn_name\": \"方正尚艺体\",\n \"en_name\": \"FZShangYiTiS\"\n },\n {\n \"cn_name\": \"方正少儿简体\",\n \"en_name\": \"FZShaoEr-M11S\"\n },\n {\n \"cn_name\": \"方正瘦金书简体\",\n \"en_name\": \"FZShouJinShu-S10S\"\n },\n {\n \"cn_name\": \"方正书宋\",\n \"en_name\": \"FZSS\"\n },\n {\n \"cn_name\": \"方正书宋简体\",\n \"en_name\": \"FZShuSong-Z01S\"\n },\n {\n \"cn_name\": \"方正舒体\",\n \"en_name\": \"FZShuTi\"\n },\n {\n \"cn_name\": \"方正舒体简体\",\n \"en_name\": \"FZShuTi-S05S\"\n },\n {\n \"cn_name\": \"方正水黑简体\",\n \"en_name\": \"FZShuiHei-M21S\"\n },\n {\n \"cn_name\": \"方正水云简体\",\n \"en_name\": \"FZShuiYunS-EB-GB\"\n },\n {\n \"cn_name\": \"方正水柱简体\",\n \"en_name\": \"FZShuiZhu-M08S\"\n },\n {\n \"cn_name\": \"方正宋黑简体\",\n \"en_name\": \"FZSongHei-B07S\"\n },\n {\n \"cn_name\": \"方正宋三简体\",\n \"en_name\": \"FZSong\"\n },\n {\n \"cn_name\": \"方正宋一简体\",\n \"en_name\": \"FZSongYi-Z13S\"\n },\n {\n \"cn_name\": \"方正苏新诗小爨\",\n \"en_name\": \"FZSuXinShiXiaoCuanS\"\n },\n {\n \"cn_name\": \"方正孙拥声简体\",\n \"en_name\": \"FZSunYongShengS-R-GB\"\n },\n {\n \"cn_name\": \"方正淘乐简体\",\n \"en_name\": \"FZTLJW\"\n },\n {\n \"cn_name\": \"方正玩伴体系列\",\n \"en_name\": \"FZWanBTJ\"\n },\n {\n \"cn_name\": \"方正魏碑简体\",\n \"en_name\": \"FZWeiBei-S03S\"\n },\n {\n \"cn_name\": \"方正细等线简体\",\n \"en_name\": \"FZXiDengXian-Z06S\"\n },\n {\n \"cn_name\": \"方正细黑一简体\",\n \"en_name\": \"FZXiHei I-Z08S\"\n },\n {\n \"cn_name\": \"方正细倩简体\",\n \"en_name\": \"FZXiQian-M15S\"\n },\n {\n \"cn_name\": \"方正细珊瑚简体\",\n \"en_name\": \"FZXiShanHu-M13S\"\n },\n {\n \"cn_name\": \"方正细圆简体\",\n \"en_name\": \"FZXiYuan-M01S\"\n },\n {\n \"cn_name\": \"方正仙阵体\",\n \"en_name\": \"FZXianZhenTiS\"\n },\n {\n \"cn_name\": \"方正祥隶简体\",\n \"en_name\": \"FZXiangLi-S17S\"\n },\n {\n \"cn_name\": \"方正小标宋简体\",\n \"en_name\": \"FZXiaoBiaoSong-B05S\"\n },\n {\n \"cn_name\": \"方正小篆体\",\n \"en_name\": \"FZXiaoZhuanTi-S13T\"\n },\n {\n \"cn_name\": \"方正新报宋简体\",\n \"en_name\": \"FZNew BaoSong-Z12S\"\n },\n {\n \"cn_name\": \"方正新舒体简体\",\n \"en_name\": \"FZNew ShuTi-S08S\"\n },\n {\n \"cn_name\": \"方正秀麗\",\n \"en_name\": \"FZXiuLiB-Z13\"\n },\n {\n \"cn_name\": \"方正雅士黑\",\n \"en_name\": \"FZYaShiHeiS\"\n },\n {\n \"cn_name\": \"方正颜宋简体_粗\",\n \"en_name\": \"FZYanSongS-B-GB\"\n },\n {\n \"cn_name\": \"方正姚体\",\n \"en_name\": \"FZYaoti\"\n },\n {\n \"cn_name\": \"方正姚体简体\",\n \"en_name\": \"FZYaoTi-M06S\"\n },\n {\n \"cn_name\": \"方正艺黑简体\",\n \"en_name\": \"FZYiHei-M20S\"\n },\n {\n \"cn_name\": \"方正硬笔行书简体\",\n \"en_name\": \"FZYingBiXingShu-S16S\"\n },\n {\n \"cn_name\": \"方正硬笔楷书简体\",\n \"en_name\": \"FZYingBiKaiShu-S15S\"\n },\n {\n \"cn_name\": \"方正悠宋简可变\",\n \"en_name\": \"FZYouSJ VF WT\"\n },\n {\n \"cn_name\": \"方正幼线简体\",\n \"en_name\": \"FZYouXian-Z09S\"\n },\n {\n \"cn_name\": \"方正韵动特黑简体\",\n \"en_name\": \"FZYunDongHeiS-H-GB\"\n },\n {\n \"cn_name\": \"方正赞美体\",\n \"en_name\": \"FZZANMTJ\"\n },\n {\n \"cn_name\": \"方正毡笔黑简体\",\n \"en_name\": \"FZZhanBiHei-M22S\"\n },\n {\n \"cn_name\": \"方正正粗黑简体\",\n \"en_name\": \"FZZhengHeiS-B-GB\"\n },\n {\n \"cn_name\": \"方正正大黑简体\",\n \"en_name\": \"FZZhengHeiS-EB-GB\"\n },\n {\n \"cn_name\": \"方正正纤黑简体\",\n \"en_name\": \"FZZhengHeiS-EL-GB\"\n },\n {\n \"cn_name\": \"方正正准黑简体\",\n \"en_name\": \"FZZhengHeiS-M-GB\"\n },\n {\n \"cn_name\": \"方正稚艺简体\",\n \"en_name\": \"FZZhiYi-M12S\"\n },\n {\n \"cn_name\": \"方正中等线简体\",\n \"en_name\": \"FZZhongDengXian-Z07S\"\n },\n {\n \"cn_name\": \"方正中倩简体\",\n \"en_name\": \"FZZhongQian-M16S\"\n },\n {\n \"cn_name\": \"方正准圆简体\",\n \"en_name\": \"FZZhunYuan-M02S\"\n },\n {\n \"cn_name\": \"方正字迹-曾柏求排笔\",\n \"en_name\": \"FZZJ-ZBQPBJW\"\n },\n {\n \"cn_name\": \"方正字迹-陈光池楷书\",\n \"en_name\": \"FZZJ-CGCKSJW\"\n },\n {\n \"cn_name\": \"方正字迹-顾建平楷书\",\n \"en_name\": \"FZZJ-GJPKSJW\"\n },\n {\n \"cn_name\": \"方正字迹-顾建平隶书\",\n \"en_name\": \"FZZJ-GJPLSJF\"\n },\n {\n \"cn_name\": \"方正字迹-顧建平篆書\",\n \"en_name\": \"FZZJ-GJPZSFU\"\n },\n {\n \"cn_name\": \"方正字迹-豪放行书简体\",\n \"en_name\": \"FZZJ-HFXSJW\"\n },\n {\n \"cn_name\": \"方正字迹-李凤武行书\",\n \"en_name\": \"FZZJ-LFWXSJW\"\n },\n {\n \"cn_name\": \"方正字迹-刘宏楷书\",\n \"en_name\": \"FZZJ-LHKSJW\"\n },\n {\n \"cn_name\": \"方正字迹-刘毅硬笔行书\",\n \"en_name\": \"FZZJ-LYYBXSJW\"\n },\n {\n \"cn_name\": \"方正字迹-刘毅硬笔楷书\",\n \"en_name\": \"FZZJ-LYYBKSJW\"\n },\n {\n \"cn_name\": \"方正字迹-柳正枢行楷\",\n \"en_name\": \"FZZJ-LZSXKJW\"\n },\n {\n \"cn_name\": \"方正字迹-清代碑体\",\n \"en_name\": \"FZZJ-QDBTJW\"\n },\n {\n \"cn_name\": \"方正字迹-陶建华魏碑\",\n \"en_name\": \"FZZJ-TJHWBJW\"\n },\n {\n \"cn_name\": \"方正字迹-童体硬笔字体\",\n \"en_name\": \"FZZJ-TTYBFONT\"\n },\n {\n \"cn_name\": \"方正字迹-吴进行书\",\n \"en_name\": \"FZZJ-WJXSJW\"\n },\n {\n \"cn_name\": \"方正字迹-严祖喜行楷\",\n \"en_name\": \"FZZJ-YZXXKJW\"\n },\n {\n \"cn_name\": \"方正字迹-颜振东楷\",\n \"en_name\": \"FZZJ-YZDKJW\"\n },\n {\n \"cn_name\": \"方正字迹-叶根友特楷\",\n \"en_name\": \"YEGENYOUTEKAI\"\n },\n {\n \"cn_name\": \"方正字迹-张二魁硬楷\",\n \"en_name\": \"FZZJ-ZEKYKJW\"\n },\n {\n \"cn_name\": \"方正字迹-张亮硬笔行书\",\n \"en_name\": \"FZZJ-ZLYBXSJW\"\n },\n {\n \"cn_name\": \"方正字迹-长江行书\",\n \"en_name\": \"FZZJ-CJXSJW\"\n },\n {\n \"cn_name\": \"方正字迹-周密行楷\",\n \"en_name\": \"FZZJ-ZMXKJW\"\n },\n {\n \"cn_name\": \"方正字迹-禚效锋行草\",\n \"en_name\": \"FZZJ-ZXFXCJW\"\n },\n {\n \"cn_name\": \"方正字迹-自强魏楷体\",\n \"en_name\": \"FZZJ-ZQWKJW\"\n },\n {\n \"cn_name\": \"方正综艺简体\",\n \"en_name\": \"FZZongYi-M05S\"\n },\n {\n \"cn_name\": \"仿宋\",\n \"en_name\": \"FangSong\"\n },\n {\n \"cn_name\": \"汉仪PP体简\",\n \"en_name\": \"HYPPTiJ\"\n },\n {\n \"cn_name\": \"汉仪程行简\",\n \"en_name\": \"HYChengXingJ\"\n },\n {\n \"cn_name\": \"汉仪大黑简\",\n \"en_name\": \"HYDaHeiJ\"\n },\n {\n \"cn_name\": \"汉仪大宋简\",\n \"en_name\": \"HYDaSongJ\"\n },\n {\n \"cn_name\": \"汉仪蝶语简体\",\n \"en_name\": \"HYDieYuJ\"\n },\n {\n \"cn_name\": \"汉仪方叠体检\",\n \"en_name\": \"HYFangDieJ\"\n },\n {\n \"cn_name\": \"汉仪仿宋简\",\n \"en_name\": \"HYFangSongJ\"\n },\n {\n \"cn_name\": \"汉仪刚艺体\",\n \"en_name\": \"HYGangYiTi\"\n },\n {\n \"cn_name\": \"汉仪行楷简\",\n \"en_name\": \"HYXingKaiJ\"\n },\n {\n \"cn_name\": \"汉仪黑荔枝\",\n \"en_name\": \"HYHeiLiZhiTiJ\"\n },\n {\n \"cn_name\": \"汉仪家书简\",\n \"en_name\": \"HYJiaShuJ\"\n },\n {\n \"cn_name\": \"汉仪楷体\",\n \"en_name\": \"HYKaiti\"\n },\n {\n \"cn_name\": \"汉仪楷体简\",\n \"en_name\": \"HYKaiTiJ\"\n },\n {\n \"cn_name\": \"汉仪乐喵体简\",\n \"en_name\": \"HYLeMiaoTi\"\n },\n {\n \"cn_name\": \"汉仪立黑简\",\n \"en_name\": \"HYLiHeiJ\"\n },\n {\n \"cn_name\": \"汉仪菱心体简\",\n \"en_name\": \"HYLingXinJ\"\n },\n {\n \"cn_name\": \"汉仪漫步体间\",\n \"en_name\": \"HYManBuJ\"\n },\n {\n \"cn_name\": \"汉仪旗黑\",\n \"en_name\": \"HYQihei 40S\"\n },\n {\n \"cn_name\": \"汉仪旗黑\",\n \"en_name\": \"HYQihei 50S\"\n },\n {\n \"cn_name\": \"汉仪旗黑\",\n \"en_name\": \"HYQihei 60S\"\n },\n {\n \"cn_name\": \"汉仪尚巍手书W\",\n \"en_name\": \"HYShangWeiShouShuW\"\n },\n {\n \"cn_name\": \"汉仪书魂体检\",\n \"en_name\": \"HYShuHunJ\"\n },\n {\n \"cn_name\": \"汉仪娃娃纂简\",\n \"en_name\": \"HYWaWaZhuanJ\"\n },\n {\n \"cn_name\": \"汉仪小麦体\",\n \"en_name\": \"HYXiaoMaiTiJ\"\n },\n {\n \"cn_name\": \"汉仪醒示体简\",\n \"en_name\": \"HYXingShiJ\"\n },\n {\n \"cn_name\": \"汉仪秀英体简\",\n \"en_name\": \"HYXiuYingJ\"\n },\n {\n \"cn_name\": \"汉仪雪峰体简\",\n \"en_name\": \"HYXueFengJ\"\n },\n {\n \"cn_name\": \"汉仪雪君体简\",\n \"en_name\": \"HYXueJunJ\"\n },\n {\n \"cn_name\": \"汉仪丫丫体简\",\n \"en_name\": \"HYYaYaJ\"\n },\n {\n \"cn_name\": \"汉仪雅酷黑W\",\n \"en_name\": \"HYYaKuHeiW\"\n },\n {\n \"cn_name\": \"汉仪长美黑简\",\n \"en_name\": \"HYChangMeiHeiJ\"\n },\n {\n \"cn_name\": \"汉仪中等线简\",\n \"en_name\": \"HYZhongDengXianJ\"\n },\n {\n \"cn_name\": \"汉仪中黑简\",\n \"en_name\": \"HYZhongHeiJ\"\n },\n {\n \"cn_name\": \"汉仪中隶书简\",\n \"en_name\": \"HYZhongLiShuJ\"\n },\n {\n \"cn_name\": \"汉仪中宋简\",\n \"en_name\": \"HYZhongSongJ\"\n },\n {\n \"cn_name\": \"汉仪综艺体简\",\n \"en_name\": \"HYZongYiJ\"\n },\n {\n \"cn_name\": \"黑体\",\n \"en_name\": \"SimHei\"\n },\n {\n \"cn_name\": \"华康翩翩体\",\n \"en_name\": \"Hanzipen SC\"\n },\n {\n \"cn_name\": \"华康手札体\",\n \"en_name\": \"Hannotate SC\"\n },\n {\n \"cn_name\": \"华文彩云\",\n \"en_name\": \"STCaiyun\"\n },\n {\n \"cn_name\": \"华文仿宋\",\n \"en_name\": \"STFangsong\"\n },\n {\n \"cn_name\": \"华文行楷\",\n \"en_name\": \"STXingkai\"\n },\n {\n \"cn_name\": \"华文黑体\",\n \"en_name\": \"STHeiti\"\n },\n {\n \"cn_name\": \"华文琥珀\",\n \"en_name\": \"STHupo\"\n },\n {\n \"cn_name\": \"华文楷体\",\n \"en_name\": \"STKaiti\"\n },\n {\n \"cn_name\": \"华文隶书\",\n \"en_name\": \"STLiti\"\n },\n {\n \"cn_name\": \"华文宋体\",\n \"en_name\": \"STSong\"\n },\n {\n \"cn_name\": \"华文细黑\",\n \"en_name\": \"STXihei\"\n },\n {\n \"cn_name\": \"华文新魏\",\n \"en_name\": \"STXinwei\"\n },\n {\n \"cn_name\": \"华文中宋\",\n \"en_name\": \"STZhongsong\"\n },\n {\n \"cn_name\": \"楷体\",\n \"en_name\": \"KaiTi\"\n },\n {\n \"cn_name\": \"兰亭黑-简\",\n \"en_name\": \"Lantinghei SC\"\n },\n {\n \"cn_name\": \"苹方\",\n \"en_name\": \"PingFang SC\"\n },\n {\n \"cn_name\": \"宋体\",\n \"en_name\": \"SimSun\"\n },\n {\n \"cn_name\": \"微软雅黑\",\n \"en_name\": \"Microsoft Yahei\"\n },\n {\n \"cn_name\": \"微软正黑体\",\n \"en_name\": \"Microsoft JhengHei\"\n },\n {\n \"cn_name\": \"小美体\",\n \"en_name\": \"XIAOMEI JW\"\n },\n {\n \"cn_name\": \"新宋体\",\n \"en_name\": \"NSimSun\"\n },\n {\n \"cn_name\": \"造字工房版黑 G0v1\",\n \"en_name\": \"RTWS BanHei G0v1\"\n },\n {\n \"cn_name\": \"造字工房博黑\",\n \"en_name\": \"MF BoHei\"\n },\n {\n \"cn_name\": \"造字工房典黑\",\n \"en_name\": \"MF DianHei\"\n },\n {\n \"cn_name\": \"造字工房鼎黑体\",\n \"en_name\": \"MF DingHei\"\n },\n {\n \"cn_name\": \"造字工房黄金时代\",\n \"en_name\": \"MF TheGoldenEra\"\n },\n {\n \"cn_name\": \"造字工房佳黑\",\n \"en_name\": \"MF JiaHei\"\n },\n {\n \"cn_name\": \"造字工房坚黑\",\n \"en_name\": \"MF JianHei\"\n },\n {\n \"cn_name\": \"造字工房锦宋体\",\n \"en_name\": \"MF JinSong\"\n },\n {\n \"cn_name\": \"造字工房劲黑 G0v1\",\n \"en_name\": \"RTWS JinHei G0v1\"\n },\n {\n \"cn_name\": \"造字工房郎宋 G0v1\",\n \"en_name\": \"RTWS LangSong G0v1\"\n },\n {\n \"cn_name\": \"造字工房力黑\",\n \"en_name\": \"MF LiHei\"\n },\n {\n \"cn_name\": \"造字工房力黑体\",\n \"en_name\": \"MF LiHei\"\n },\n {\n \"cn_name\": \"造字工房凌黑\",\n \"en_name\": \"MF LingHei\"\n },\n {\n \"cn_name\": \"造字工房明黑\",\n \"en_name\": \"MF MingHei\"\n },\n {\n \"cn_name\": \"造字工房品宋\",\n \"en_name\": \"MF PinSong\"\n },\n {\n \"cn_name\": \"造字工房启黑体\",\n \"en_name\": \"MF QiHei\"\n },\n {\n \"cn_name\": \"造字工房形黑\",\n \"en_name\": \"MF XingHei\"\n },\n {\n \"cn_name\": \"造字工房形黑体\",\n \"en_name\": \"MF XingHei\"\n },\n {\n \"cn_name\": \"造字工房雅圆 G0v1\",\n \"en_name\": \"RTWS YaYuan G0v1\"\n },\n {\n \"cn_name\": \"造字工房元黑体\",\n \"en_name\": \"MF YuanHei\"\n },\n {\n \"cn_name\": \"造字工房云宋体\",\n \"en_name\": \"MF YunSong\"\n },\n {\n \"cn_name\": \"造字工房哲黑\",\n \"en_name\": \"MF ZheHei\"\n },\n {\n \"cn_name\": \"造字工房臻宋体\",\n \"en_name\": \"MF ZhenSong\"\n },\n {\n \"cn_name\": \"造字工房卓黑体\",\n \"en_name\": \"MF ZhuoHei\"\n },\n {\n \"cn_name\": \"Tahoma\",\n \"en_name\": \"tahoma\"\n },\n {\n \"cn_name\": \"行楷-简\",\n \"en_name\": \"Xingkai SC\"\n },\n {\n \"cn_name\": \"宋体-简\",\n \"en_name\": \"Songti SC\"\n },\n {\n \"cn_name\": \"娃娃体-简\",\n \"en_name\": \"Wawati SC\"\n },\n {\n \"cn_name\": \"魏碑-简\",\n \"en_name\": \"Weibei SC\"\n },\n {\n \"cn_name\": \"雅痞-简\",\n \"en_name\": \"Yapi SC\"\n },\n {\n \"cn_name\": \"圆体-简\",\n \"en_name\": \"Yuanti SC\"\n },\n {\n \"cn_name\": \"AR BERKLEY\",\n \"en_name\": \"AR BERKLEY\"\n },\n {\n \"cn_name\": \"AR BLANCA\",\n \"en_name\": \"AR BLANCA\"\n },\n {\n \"cn_name\": \"AR BONNIE\",\n \"en_name\": \"AR BONNIE\"\n },\n {\n \"cn_name\": \"AR CARTER\",\n \"en_name\": \"AR CARTER\"\n },\n {\n \"cn_name\": \"AR CENA\",\n \"en_name\": \"AR CENA\"\n },\n {\n \"cn_name\": \"AR CHRISTY\",\n \"en_name\": \"AR CHRISTY\"\n },\n {\n \"cn_name\": \"AR DARLING\",\n \"en_name\": \"AR DARLING\"\n },\n {\n \"cn_name\": \"AR DECODE\",\n \"en_name\": \"AR DECODE\"\n },\n {\n \"cn_name\": \"AR DELANEY\",\n \"en_name\": \"AR DELANEY\"\n },\n {\n \"cn_name\": \"AR DESTINE\",\n \"en_name\": \"AR DESTINE\"\n },\n {\n \"cn_name\": \"AR ESSENCE\",\n \"en_name\": \"AR ESSENCE\"\n },\n {\n \"cn_name\": \"AR HERMANN\",\n \"en_name\": \"AR HERMANN\"\n },\n {\n \"cn_name\": \"AR JULIAN\",\n \"en_name\": \"AR JULIAN\"\n },\n {\n \"cn_name\": \"Arial\",\n \"en_name\": \"Arial\"\n },\n {\n \"cn_name\": \"Arial Black\",\n \"en_name\": \"Arial Black\"\n },\n {\n \"cn_name\": \"Arial Narrow\",\n \"en_name\": \"Arial Narrow\"\n },\n {\n \"cn_name\": \"Bahnschrift\",\n \"en_name\": \"Bahnschrift\"\n },\n {\n \"cn_name\": \"Bahnschrift Condensed\",\n \"en_name\": \"Bahnschrift Condensed\"\n },\n {\n \"cn_name\": \"Bahnschrift Light\",\n \"en_name\": \"Bahnschrift Light\"\n },\n {\n \"cn_name\": \"Bahnschrift Light Condensed\",\n \"en_name\": \"Bahnschrift Light Condensed\"\n },\n {\n \"cn_name\": \"Bahnschrift Light SemiCondensed\",\n \"en_name\": \"Bahnschrift Light SemiCondensed\"\n },\n {\n \"cn_name\": \"Bahnschrift SemiBold\",\n \"en_name\": \"Bahnschrift SemiBold\"\n },\n {\n \"cn_name\": \"Bahnschrift SemiBold Condensed\",\n \"en_name\": \"Bahnschrift SemiBold Condensed\"\n },\n {\n \"cn_name\": \"Bahnschrift SemiCondensed\",\n \"en_name\": \"Bahnschrift SemiCondensed\"\n },\n {\n \"cn_name\": \"Bahnschrift SemiLight\",\n \"en_name\": \"Bahnschrift SemiLight\"\n },\n {\n \"cn_name\": \"Bahnschrift SemiLight Condensed\",\n \"en_name\": \"Bahnschrift SemiLight Condensed\"\n },\n {\n \"cn_name\": \"Book Antiqua\",\n \"en_name\": \"Book Antiqua\"\n },\n {\n \"cn_name\": \"Bookman Old Style\",\n \"en_name\": \"Bookman Old Style\"\n },\n {\n \"cn_name\": \"Bookshelf Symbol 7\",\n \"en_name\": \"Bookshelf Symbol 7\"\n },\n {\n \"cn_name\": \"Bradley Hand ITC\",\n \"en_name\": \"Bradley Hand ITC\"\n },\n {\n \"cn_name\": \"Calibri\",\n \"en_name\": \"Calibri\"\n },\n {\n \"cn_name\": \"Calibri Light\",\n \"en_name\": \"Calibri Light\"\n },\n {\n \"cn_name\": \"Cambria\",\n \"en_name\": \"Cambria\"\n },\n {\n \"cn_name\": \"Cambria Math\",\n \"en_name\": \"Cambria Math\"\n },\n {\n \"cn_name\": \"Candara\",\n \"en_name\": \"Candara\"\n },\n {\n \"cn_name\": \"Candara Light\",\n \"en_name\": \"Candara Light\"\n },\n {\n \"cn_name\": \"Cascadia Code\",\n \"en_name\": \"Cascadia Code\"\n },\n {\n \"cn_name\": \"Cascadia Code ExtraLight\",\n \"en_name\": \"Cascadia Code ExtraLight\"\n },\n {\n \"cn_name\": \"Cascadia Code Light\",\n \"en_name\": \"Cascadia Code Light\"\n },\n {\n \"cn_name\": \"Cascadia Code PL\",\n \"en_name\": \"Cascadia Code PL\"\n },\n {\n \"cn_name\": \"Cascadia Code PL ExtraLight\",\n \"en_name\": \"Cascadia Code PL ExtraLight\"\n },\n {\n \"cn_name\": \"Cascadia Code PL Light\",\n \"en_name\": \"Cascadia Code PL Light\"\n },\n {\n \"cn_name\": \"Cascadia Code PL SemiBold\",\n \"en_name\": \"Cascadia Code PL SemiBold\"\n },\n {\n \"cn_name\": \"Cascadia Code PL SemiLight\",\n \"en_name\": \"Cascadia Code PL SemiLight\"\n },\n {\n \"cn_name\": \"Cascadia Code SemiBold\",\n \"en_name\": \"Cascadia Code SemiBold\"\n },\n {\n \"cn_name\": \"Cascadia Code SemiLight\",\n \"en_name\": \"Cascadia Code SemiLight\"\n },\n {\n \"cn_name\": \"Cascadia Mono\",\n \"en_name\": \"Cascadia Mono\"\n },\n {\n \"cn_name\": \"Cascadia Mono ExtraLight\",\n \"en_name\": \"Cascadia Mono ExtraLight\"\n },\n {\n \"cn_name\": \"Cascadia Mono Light\",\n \"en_name\": \"Cascadia Mono Light\"\n },\n {\n \"cn_name\": \"Cascadia Mono PL\",\n \"en_name\": \"Cascadia Mono PL\"\n },\n {\n \"cn_name\": \"Cascadia Mono PL ExtraLight\",\n \"en_name\": \"Cascadia Mono PL ExtraLight\"\n },\n {\n \"cn_name\": \"Cascadia Mono PL Light\",\n \"en_name\": \"Cascadia Mono PL Light\"\n },\n {\n \"cn_name\": \"Cascadia Mono PL SemiBold\",\n \"en_name\": \"Cascadia Mono PL SemiBold\"\n },\n {\n \"cn_name\": \"Cascadia Mono PL SemiLight\",\n \"en_name\": \"Cascadia Mono PL SemiLight\"\n },\n {\n \"cn_name\": \"Cascadia Mono SemiBold\",\n \"en_name\": \"Cascadia Mono SemiBold\"\n },\n {\n \"cn_name\": \"Cascadia Mono SemiLight\",\n \"en_name\": \"Cascadia Mono SemiLight\"\n },\n {\n \"cn_name\": \"Century\",\n \"en_name\": \"Century\"\n },\n {\n \"cn_name\": \"Comic Sans MS\",\n \"en_name\": \"Comic Sans MS\"\n },\n {\n \"cn_name\": \"Consolas\",\n \"en_name\": \"Consolas\"\n },\n {\n \"cn_name\": \"Constantia\",\n \"en_name\": \"Constantia\"\n },\n {\n \"cn_name\": \"Corbel\",\n \"en_name\": \"Corbel\"\n },\n {\n \"cn_name\": \"Corbel Light\",\n \"en_name\": \"Corbel Light\"\n },\n {\n \"cn_name\": \"Courier New\",\n \"en_name\": \"Courier New\"\n },\n {\n \"cn_name\": \"Dubai\",\n \"en_name\": \"Dubai\"\n },\n {\n \"cn_name\": \"Dubai Light\",\n \"en_name\": \"Dubai Light\"\n },\n {\n \"cn_name\": \"Dubai Medium\",\n \"en_name\": \"Dubai Medium\"\n },\n {\n \"cn_name\": \"Ebrima\",\n \"en_name\": \"Ebrima\"\n },\n {\n \"cn_name\": \"Fira Code\",\n \"en_name\": \"Fira Code\"\n },\n {\n \"cn_name\": \"Fira Code Light\",\n \"en_name\": \"Fira Code Light\"\n },\n {\n \"cn_name\": \"Fira Code Medium\",\n \"en_name\": \"Fira Code Medium\"\n },\n {\n \"cn_name\": \"Fira Code Retina\",\n \"en_name\": \"Fira Code Retina\"\n },\n {\n \"cn_name\": \"Franklin Gothic Medium\",\n \"en_name\": \"Franklin Gothic Medium\"\n },\n {\n \"cn_name\": \"Freestyle Script\",\n \"en_name\": \"Freestyle Script\"\n },\n {\n \"cn_name\": \"French Script MT\",\n \"en_name\": \"French Script MT\"\n },\n {\n \"cn_name\": \"Gabriola\",\n \"en_name\": \"Gabriola\"\n },\n {\n \"cn_name\": \"Gadugi\",\n \"en_name\": \"Gadugi\"\n },\n {\n \"cn_name\": \"Garamond\",\n \"en_name\": \"Garamond\"\n },\n {\n \"cn_name\": \"Georgia\",\n \"en_name\": \"Georgia\"\n },\n {\n \"cn_name\": \"Impact\",\n \"en_name\": \"Impact\"\n },\n {\n \"cn_name\": \"Ink Free\",\n \"en_name\": \"Ink Free\"\n },\n {\n \"cn_name\": \"Javanese Text\",\n \"en_name\": \"Javanese Text\"\n },\n {\n \"cn_name\": \"Juice ITC\",\n \"en_name\": \"Juice ITC\"\n },\n {\n \"cn_name\": \"Kristen ITC\",\n \"en_name\": \"Kristen ITC\"\n },\n {\n \"cn_name\": \"Leelawadee\",\n \"en_name\": \"Leelawadee\"\n },\n {\n \"cn_name\": \"Leelawadee UI\",\n \"en_name\": \"Leelawadee UI\"\n },\n {\n \"cn_name\": \"Leelawadee UI Semilight\",\n \"en_name\": \"Leelawadee UI Semilight\"\n },\n {\n \"cn_name\": \"Lucida Console\",\n \"en_name\": \"Lucida Console\"\n },\n {\n \"cn_name\": \"Lucida Handwriting\",\n \"en_name\": \"Lucida Handwriting\"\n },\n {\n \"cn_name\": \"Lucida Sans Unicode\",\n \"en_name\": \"Lucida Sans Unicode\"\n },\n {\n \"cn_name\": \"Malgun Gothic\",\n \"en_name\": \"Malgun Gothic\"\n },\n {\n \"cn_name\": \"Malgun Gothic Semilight\",\n \"en_name\": \"Malgun Gothic Semilight\"\n },\n {\n \"cn_name\": \"Manrope\",\n \"en_name\": \"Manrope\"\n },\n {\n \"cn_name\": \"Manrope ExtraBold\",\n \"en_name\": \"Manrope ExtraBold\"\n },\n {\n \"cn_name\": \"Manrope ExtraLight\",\n \"en_name\": \"Manrope ExtraLight\"\n },\n {\n \"cn_name\": \"Manrope Light\",\n \"en_name\": \"Manrope Light\"\n },\n {\n \"cn_name\": \"Manrope Medium\",\n \"en_name\": \"Manrope Medium\"\n },\n {\n \"cn_name\": \"Manrope SemiBold\",\n \"en_name\": \"Manrope SemiBold\"\n },\n {\n \"cn_name\": \"Marlett\",\n \"en_name\": \"Marlett\"\n },\n {\n \"cn_name\": \"Microsoft Himalaya\",\n \"en_name\": \"Microsoft Himalaya\"\n },\n {\n \"cn_name\": \"Microsoft JhengHei UI\",\n \"en_name\": \"Microsoft JhengHei UI\"\n },\n {\n \"cn_name\": \"Microsoft JhengHei UI Light\",\n \"en_name\": \"Microsoft JhengHei UI Light\"\n },\n {\n \"cn_name\": \"Microsoft New Tai Lue\",\n \"en_name\": \"Microsoft New Tai Lue\"\n },\n {\n \"cn_name\": \"Microsoft PhagsPa\",\n \"en_name\": \"Microsoft PhagsPa\"\n },\n {\n \"cn_name\": \"Microsoft Sans Serif\",\n \"en_name\": \"Microsoft Sans Serif\"\n },\n {\n \"cn_name\": \"Microsoft Tai Le\",\n \"en_name\": \"Microsoft Tai Le\"\n },\n {\n \"cn_name\": \"Microsoft Uighur\",\n \"en_name\": \"Microsoft Uighur\"\n },\n {\n \"cn_name\": \"Microsoft YaHei UI\",\n \"en_name\": \"Microsoft YaHei UI\"\n },\n {\n \"cn_name\": \"Microsoft YaHei UI Light\",\n \"en_name\": \"Microsoft YaHei UI Light\"\n },\n {\n \"cn_name\": \"Microsoft Yi Baiti\",\n \"en_name\": \"Microsoft Yi Baiti\"\n },\n {\n \"cn_name\": \"Mistral\",\n \"en_name\": \"Mistral\"\n },\n {\n \"cn_name\": \"Mongolian Baiti\",\n \"en_name\": \"Mongolian Baiti\"\n },\n {\n \"cn_name\": \"Monotype Corsiva\",\n \"en_name\": \"Monotype Corsiva\"\n },\n {\n \"cn_name\": \"Montserrat\",\n \"en_name\": \"Montserrat\"\n },\n {\n \"cn_name\": \"Montserrat Medium\",\n \"en_name\": \"Montserrat Medium\"\n },\n {\n \"cn_name\": \"MS Gothic\",\n \"en_name\": \"MS Gothic\"\n },\n {\n \"cn_name\": \"MS PGothic\",\n \"en_name\": \"MS PGothic\"\n },\n {\n \"cn_name\": \"MS Reference Sans Serif\",\n \"en_name\": \"MS Reference Sans Serif\"\n },\n {\n \"cn_name\": \"MS Reference Specialty\",\n \"en_name\": \"MS Reference Specialty\"\n },\n {\n \"cn_name\": \"MS UI Gothic\",\n \"en_name\": \"MS UI Gothic\"\n },\n {\n \"cn_name\": \"MT Extra\",\n \"en_name\": \"MT Extra\"\n },\n {\n \"cn_name\": \"MV Boli\",\n \"en_name\": \"MV Boli\"\n },\n {\n \"cn_name\": \"Myanmar Text\",\n \"en_name\": \"Myanmar Text\"\n },\n {\n \"cn_name\": \"Nirmala UI\",\n \"en_name\": \"Nirmala UI\"\n },\n {\n \"cn_name\": \"Nirmala UI Semilight\",\n \"en_name\": \"Nirmala UI Semilight\"\n },\n {\n \"cn_name\": \"Palatino Linotype\",\n \"en_name\": \"Palatino Linotype\"\n },\n {\n \"cn_name\": \"Papyrus\",\n \"en_name\": \"Papyrus\"\n },\n {\n \"cn_name\": \"Pristina\",\n \"en_name\": \"Pristina\"\n },\n {\n \"cn_name\": \"r6icons\",\n \"en_name\": \"r6icons\"\n },\n {\n \"cn_name\": \"Segoe MDL2 Assets\",\n \"en_name\": \"Segoe MDL2 Assets\"\n },\n {\n \"cn_name\": \"Segoe Print\",\n \"en_name\": \"Segoe Print\"\n },\n {\n \"cn_name\": \"Segoe Script\",\n \"en_name\": \"Segoe Script\"\n },\n {\n \"cn_name\": \"Segoe UI\",\n \"en_name\": \"Segoe UI\"\n },\n {\n \"cn_name\": \"Segoe UI Black\",\n \"en_name\": \"Segoe UI Black\"\n },\n {\n \"cn_name\": \"Segoe UI Emoji\",\n \"en_name\": \"Segoe UI Emoji\"\n },\n {\n \"cn_name\": \"Segoe UI Historic\",\n \"en_name\": \"Segoe UI Historic\"\n },\n {\n \"cn_name\": \"Segoe UI Light\",\n \"en_name\": \"Segoe UI Light\"\n },\n {\n \"cn_name\": \"Segoe UI Semibold\",\n \"en_name\": \"Segoe UI Semibold\"\n },\n {\n \"cn_name\": \"Segoe UI Semilight\",\n \"en_name\": \"Segoe UI Semilight\"\n },\n {\n \"cn_name\": \"Segoe UI Symbol\",\n \"en_name\": \"Segoe UI Symbol\"\n },\n {\n \"cn_name\": \"SimSun-ExtB\",\n \"en_name\": \"SimSun-ExtB\"\n },\n {\n \"cn_name\": \"Sitka Banner\",\n \"en_name\": \"Sitka Banner\"\n },\n {\n \"cn_name\": \"Sitka Display\",\n \"en_name\": \"Sitka Display\"\n },\n {\n \"cn_name\": \"Sitka Heading\",\n \"en_name\": \"Sitka Heading\"\n },\n {\n \"cn_name\": \"Sitka Small\",\n \"en_name\": \"Sitka Small\"\n },\n {\n \"cn_name\": \"Sitka Subheading\",\n \"en_name\": \"Sitka Subheading\"\n },\n {\n \"cn_name\": \"Sitka Text\",\n \"en_name\": \"Sitka Text\"\n },\n {\n \"cn_name\": \"Sylfaen\",\n \"en_name\": \"Sylfaen\"\n },\n {\n \"cn_name\": \"Symbol\",\n \"en_name\": \"Symbol\"\n },\n {\n \"cn_name\": \"Tahoma\",\n \"en_name\": \"Tahoma\"\n },\n {\n \"cn_name\": \"TeamViewer14\",\n \"en_name\": \"TeamViewer14\"\n },\n {\n \"cn_name\": \"Tempus Sans ITC\",\n \"en_name\": \"Tempus Sans ITC\"\n },\n {\n \"cn_name\": \"Times New Roman\",\n \"en_name\": \"Times New Roman\"\n },\n {\n \"cn_name\": \"Trebuchet MS\",\n \"en_name\": \"Trebuchet MS\"\n },\n {\n \"cn_name\": \"Verdana\",\n \"en_name\": \"Verdana\"\n },\n {\n \"cn_name\": \"Webdings\",\n \"en_name\": \"Webdings\"\n },\n {\n \"cn_name\": \"Wingdings\",\n \"en_name\": \"Wingdings\"\n },\n {\n \"cn_name\": \"Wingdings 2\",\n \"en_name\": \"Wingdings 2\"\n },\n {\n \"cn_name\": \"Wingdings 3\",\n \"en_name\": \"Wingdings 3\"\n },\n {\n \"cn_name\": \"Yu Gothic\",\n \"en_name\": \"Yu Gothic\"\n },\n {\n \"cn_name\": \"Yu Gothic Light\",\n \"en_name\": \"Yu Gothic Light\"\n },\n {\n \"cn_name\": \"Yu Gothic Medium\",\n \"en_name\": \"Yu Gothic Medium\"\n },\n {\n \"cn_name\": \"Yu Gothic UI\",\n \"en_name\": \"Yu Gothic UI\"\n },\n {\n \"cn_name\": \"Yu Gothic UI Light\",\n \"en_name\": \"Yu Gothic UI Light\"\n },\n {\n \"cn_name\": \"Yu Gothic UI Semibold\",\n \"en_name\": \"Yu Gothic UI Semibold\"\n },\n {\n \"cn_name\": \"Yu Gothic UI Semilight\",\n \"en_name\": \"Yu Gothic UI Semilight\"\n }\n]\n\nexport type fontWeight = \"bolder\" | \"bold\" | \"normal\" | \"lighter\"\nexport function isSupportFontWeight(fontFamily: string, fontWeight: fontWeight) {\n let defaultFontWeight: fontWeight = \"normal\"\n if (fontWeight.toLowerCase() === defaultFontWeight.toLowerCase()) {\n return true;\n }\n\n let defaultLetter = 'a整*';\n let defaultFontSize = 64;\n\n // 使用该字体绘制的canvas\n let width = 64;\n let height = 64;\n let canvas = document.createElement('canvas')\n let context = canvas.getContext('2d')\n if (!context) { return false }\n canvas.width = width;\n canvas.height = height;\n\n\n // 全局一致的绘制设定\n context.textAlign = 'center';\n context.fillStyle = 'black';\n context.textBaseline = 'middle';\n\n\n let getFontData = (fontWeight: fontWeight, context: CanvasRenderingContext2D) => {\n context.clearRect(0, 0, width, height);\n\n // document.fonts.check(\"bold 16px Arial\", \"text\");\n\n context.font = `${fontWeight} ${defaultFontSize}px ${fontFamily}`;\n\n context.fillText(defaultLetter, width / 2, height / 2);\n let data = context.getImageData(0, 0, width, height).data;\n return [].slice.call(data).filter(function (value) {\n return value !== 0;\n });\n };\n\n return getFontData(defaultFontWeight, context).join('') !== getFontData(fontWeight, context).join('');\n};\nexport type Script = {\n name: string\n testText: string\n sampleText: string\n key: string\n}\nconst scriptList: Script[] = [\n {\n name: \"汉字\",\n // name: \"中文 GB2312\",\n testText: \"刨\",\n sampleText: \"走向世界\",\n // sampleText: \"微软中文软件\",\n\n key: \"chinese\",\n }, {\n name: \"西欧语言\",\n testText: \"A\",\n sampleText: \"AaBbYyZz\",\n key: \"西欧语言\",\n }, {\n name: \"希伯来语\",\n testText: \"ת\",\n sampleText: \"AaBbנסשת\",\n key: \"希伯来语\",\n }, {\n name: \"阿拉伯语\",\n testText: \"ل\",\n sampleText: \"AaBbابجدهوز\",\n key: \"阿拉伯语\",\n }, {\n name: \"希腊语\",\n testText: \"β\",\n sampleText: \"AaBbΑαΒβ\",\n key: \"希腊语\",\n }, {\n name: \"土耳其语\",\n testText: \"Ğ\",\n sampleText: \"AaBbĞğŞş\",\n key: \"土耳其语\",\n }, {\n name: \"波罗的语\",\n testText: \"ś\",\n sampleText: \"AaBbYyZz\",\n key: \"波罗的语\",\n }, {\n name: \"中欧字符\",\n testText: \"Á\",\n sampleText: \"AaBbÁáÔô\",\n key: \"中欧字符\",\n }, {\n name: \"西里尔语\",\n testText: \"ф\",\n sampleText: \"AaBbБбФф\",\n key: \"西里尔语\",\n }, {\n name: \"越南语\",\n testText: \"ữ\",\n sampleText: \"AaBbƯưƠơ\",\n key: \"越南语\",\n }\n]\nexport async function getFontSupportScript(fontFamily: string) {\n\n const element = createInvisibleDOM()\n installZeroWidthFontIfNeed()\n\n element.innerHTML = \"\"\n let waitingCheckDomList: HTMLSpanElement[] = []\n let outterDiv = document.createElement(\"div\");\n\n for (let script of scriptList) {\n let newDiv = document.createElement(\"span\");\n newDiv.style.fontFamily = `\"${fontFamily}\", \"ZeroWidth\"`\n newDiv.className = \"font-test-span\"\n newDiv.innerHTML = script.testText\n\n newDiv.setAttribute(\"script_name\", script.name)\n newDiv.setAttribute(\"script_key\", script.key)\n newDiv.setAttribute(\"script_sampleText\", script.sampleText)\n outterDiv.appendChild(newDiv);\n waitingCheckDomList.push(newDiv)\n }\n\n element.appendChild(outterDiv);\n const supportScript: Set<{\n name: string\n key: string\n sampleText: string\n }> = new Set()\n\n await document.fonts.ready\n for (let dom of waitingCheckDomList) {\n if (dom.offsetWidth > 5) {\n supportScript.add({\n name: dom.getAttribute(\"script_name\") || \"null??\",\n key: dom.getAttribute(\"script_key\") || \"null??\",\n sampleText: dom.getAttribute(\"script_sampleText\") || \"null??\",\n })\n }\n }\n removeDOM(element)\n return [...supportScript]\n};","export const ZerWidth_WoffBase64 = \"data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAigAAoAAAAACFgAAiMSAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgd2jC2WNtYXAAAAFUAAABigAAAYqT7PdzZ2x5ZgAAAuAAAABUAAAAVKfeRU9oZWFkAAADNAAAADYAAAA2HScHwGhoZWEAAANsAAAAJAAAACQK+gIAaG10eAAAA5AAAAAcAAAAHAOnAGRsb2NhAAADrAAAABgAAAAYANIA/G1heHAAAAPEAAAAIAAAACACHwARbmFtZQAAA+QAAAR0AAAEdPDbH4Zwb3N0AAAIWAAAAEYAAABGCFYIvgAEA4wBkAAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv8QAAAAAAAAIAAAAABHT09HAEAAQVIoBgD+AABmB5oCACAAAZ8AAAAABDoFsAAgACAAAwAAAAMAAAADAAAAHAABAAAAAACEAAMAAQAAABwABABoAAAAFgAQAAMABgBBAMEBHgFbA7IERAXqBkQe71Io//8AAABBAMEBHgFbA7IERAXqBkQe71Io////wP9D/uj+qvxV+7/6H/nE4ROt4gABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAGQAAAMoBbAAAwAGAAkADAAPAAAlIREhAxEJAREBAyEBNQEhAyj9PALENv7u/roBDOQCA/7+AQL9/QAFsPqkBQf9fQJ3+xECeP1eAl6IAl4AAAABAAAAAiMS71wfMV8PPPUAGQgAAAAAAN020AwAAAAA3TbJ9ABkAAADKAWwAAAACQACAAAAAAAAAAEAAAds/gwAAAOMAGQAZAMoAAEAAAAAAAAAAAAAAAAAAAADA4wAZAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAKgAqACoAKgAqACoAKgAqACoAKgABAAAACwAQAAUAAAAAAAEAAAAAAA4AAAIAAAAAAAAAAAAAGgE+AAEAAAAAAAAALwAAAAEAAAAAAAEACQAvAAEAAAAAAAIACQA4AAEAAAAAAAMACQBBAAEAAAAAAAQACQBKAAEAAAAAAAUAEwBTAAEAAAAAAAYAEQBmAAEAAAAAAAcAIAB3AAEAAAAAAAkABgCXAAEAAAAAAAsACgCdAAEAAAAAAAwAEwCnAAEAAAAAAA0ALgC6AAEAAAAAAA4AKgDoAAMAAQQJAAAAXgESAAMAAQQJAAEAEgFwAAMAAQQJAAIAEgGCAAMAAQQJAAMAEgGUAAMAAQQJAAQAEgGmAAMAAQQJAAUAJgG4AAMAAQQJAAYAIgHeAAMAAQQJAAcAQAIAAAMAAQQJAAkADAJAAAMAAQQJAAsAFAJMAAMAAQQJAAwAJgJgAAMAAQQJAA0AXAKGAAMAAQQJAA4AVALiQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5aZXJvV2lkdGhaZXJvV2lkdGhaZXJvV2lkdGhaZXJvV2lkdGhWZXJzaW9uIDIuMTM3OyAyMDE3WmVyb1dpZHRoLVJlZ3VsYXJSb2JvdG8gaXMgYSB0cmFkZW1hcmsgb2YgR29vZ2xlLkdvb2dsZUdvb2dsZS5jb21DaHJpc3RpYW4gUm9iZXJ0c29uTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMABDAG8AcAB5AHIAaQBnAGgAdAAgADIAMAAxADEAIABHAG8AbwBnAGwAZQAgAEkAbgBjAC4AIABBAGwAbAAgAFIAaQBnAGgAdABzACAAUgBlAHMAZQByAHYAZQBkAC4AWgBlAHIAbwBXAGkAZAB0AGgAWgBlAHIAbwBXAGkAZAB0AGgAWgBlAHIAbwBXAGkAZAB0AGgAWgBlAHIAbwBXAGkAZAB0AGgAVgBlAHIAcwBpAG8AbgAgADIALgAxADMANwA7ACAAMgAwADEANwBaAGUAcgBvAFcAaQBkAHQAaAAtAFIAZQBnAHUAbABhAHIAUgBvAGIAbwB0AG8AIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABHAG8AbwBnAGwAZQAuAEcAbwBvAGcAbABlAEcAbwBvAGcAbABlAC4AYwBvAG0AQwBoAHIAaQBzAHQAaQBhAG4AIABSAG8AYgBlAHIAdABzAG8AbgBMAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEEAcABhAGMAaABlACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADIALgAwAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAHAAYQBjAGgAZQAuAG8AcgBnAC8AbABpAGMAZQBuAHMAZQBzAC8ATABJAEMARQBOAFMARQAtADIALgAwAAIAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAsACwAAACQBAgEDAMkBBAD4AQUBBgEHAQgBKgEqASoBKgEqASoBKgAA\"","export const GUID = function () {\n function S4() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\n}","import * as React from 'react';\nimport \"./index.less\"\n\n\ntype ButtonProps = {\n key?: string\n style?: React.CSSProperties\n type?: \"primary\"\n onMouseUp?: (event: React.MouseEvent) => void\n onMouseDown?: (event: React.MouseEvent) => void\n onClick?: (event: React.MouseEvent) => void\n}\n\nexport class Button extends React.PureComponent {\n static Group: typeof ButtonGroup;\n render() {\n let classNames = [\"WINDOWS-button\"]\n if (this.props.type === \"primary\") { classNames.push(\"WINDOWS-button-primary\") }\n\n return (\n \n \n {this.props.children}\n \n\n \n\n )\n }\n}\n\n\ntype ButtonGroupProps = {\n children: Array>\n defaultActivedKey?: string,\n style?: React.CSSProperties\n\n\n}\ntype ButtonGroupState = {\n lastMouseDownChildKey?: string\n internalActivedChildKey?: string\n\n}\n\nclass ButtonGroup extends React.PureComponent {\n constructor(props: ButtonGroupProps) {\n super(props);\n this.state = {\n }\n }\n componentDidMount() {\n this.setState({ internalActivedChildKey: this.props.defaultActivedKey })\n document.addEventListener(\"mouseup\", this.mouseUp.bind(this));\n }\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.mouseUp.bind(this));\n\n }\n mouseUp(event: MouseEvent) {\n this.setState({ internalActivedChildKey: this.state.lastMouseDownChildKey })\n }\n render() {\n const children: React.ReactElement[] = []\n\n this.props.children.map((component, cid) => {\n if (component.type === Button) {\n const thisKey = (typeof component.key === \"string\" || typeof (component.key) === \"number\") ? String(component.key) : `ButtonGroup-${cid}`\n children.push(React.cloneElement(\n component,\n {\n // style: { ...component.props.style, ...extraStyle },\n key: thisKey,\n type: (() => (this.state.internalActivedChildKey) ?\n (thisKey === this.state.internalActivedChildKey ? \"primary\" : undefined) :\n ((cid === 0) ? \"primary\" : undefined))(),\n onMouseDown: () => { this.setState({ lastMouseDownChildKey: thisKey }) },\n },\n ))\n } else {\n console.warn(\"ButtonGroup 的子组件只能是 Button\")\n }\n })\n\n\n return (\n
\n {children}\n
\n\n )\n }\n}\n\n\nButton.Group = ButtonGroup\n\n\n\n\n","import * as React from 'react';\nimport { GUID } from \"../../function/guid\";\nimport \"./windows.less\";\n\nimport { Button } from \"./Button\";\nexport * from \"./Button\";\n\nexport let WindowContext = React.createContext({\n focus: '_unset',\n setFocus: () => { },\n});\nWindowContext.displayName = 'MyDisplayName'\nexport type WindowContextProps = {\n focus: string\n setFocus: (next: string) => void,\n}\n\ntype WindowProps = {\n width?: number\n height?: number\n title: string\n onClose?: () => void\n visible?: boolean\n}\ntype WindowState = {\n /**window是否显示 */\n visible: boolean\n /**style的display属性 */\n display: boolean\n windowFocus: string\n}\ntype Window_TitleButton = \"minimize\" | \"maximize\" | \"close\"\nexport class Window extends React.PureComponent {\n WINDOW: React.RefObject\n WINDOW_title: React.RefObject\n moving: boolean\n mouseMovingTitleBarOffsetX: number\n mouseMovingTitleBarOffsetY: number\n\n titleHeight: number\n titleButtonWidth: number\n left: number\n top: number\n\n constructor(props: WindowProps) {\n super(props);\n this.WINDOW = React.createRef();\n this.WINDOW_title = React.createRef();\n this.moving = false\n this.mouseMovingTitleBarOffsetX = 0\n this.mouseMovingTitleBarOffsetY = 0\n\n this.titleHeight = 30\n this.titleButtonWidth = 45\n this.left = 60\n this.top = 60\n if (props.width) {\n const webViewWidth = window.innerWidth\n this.left = Math.max(Math.round((webViewWidth - props.width) / 2), 0)\n }\n if (props.height) {\n const webViewHeight = window.innerHeight\n this.top = Math.max(Math.round((webViewHeight - props.height) / 2), 0)\n }\n\n this.state = {\n visible: false,\n display: false,\n windowFocus: \"_unset\"\n }\n }\n\n async componentDidMount() {\n if (this.WINDOW_title?.current && this.WINDOW?.current) {\n this.WINDOW_title.current.addEventListener('mousedown', this.titleBarMousedown.bind(this));\n this.WINDOW.current.addEventListener('mousedown', this.windowMouseDown.bind(this));\n document.addEventListener('mouseup', this.mouseup.bind(this));\n document.addEventListener('mousemove', this.mousemove.bind(this));\n } else {\n console.error(\"WINDOW\", \"not readt\")\n }\n setTimeout(() => {\n this.checkWindowVisible()\n }, 0);\n }\n componentWillUnmount() {\n if (this.WINDOW_title?.current) {\n this.WINDOW_title.current.removeEventListener('mousedown', this.titleBarMousedown);\n }\n if (this.WINDOW?.current) {\n this.WINDOW.current.addEventListener('mousedown', this.windowMouseDown.bind(this));\n }\n document.removeEventListener('mouseup', this.mouseup);\n document.removeEventListener('mousemove', this.mousemove);\n }\n componentDidUpdate() {\n this.checkWindowVisible()\n }\n render() {\n let windowHeight = 400\n if (this.props.height) {\n windowHeight = this.props.height + this.titleHeight\n }\n const classNames = [\"WINDOWS-window\"]\n let scale = 0.9\n if (this.state.display) {\n classNames.push(\"WINDOWS-window-display\")\n\n }\n if (this.state.visible) {\n classNames.push(\"WINDOWS-window-visible\")\n scale = 1\n }\n\n const titleButtons: Window_TitleButton[] = [\"minimize\", \"maximize\", \"close\"]\n\n return (\n { this.setState({ windowFocus: next }) }\n }}>\n \n
\n {this.props.title}\n
\n {Array.from(titleButtons, (item) => {\n return
{ this.titleButtonAction(item) }} />\n })}\n\n
\n {this.props.children}\n
\n
\n
\n )\n }\n\n titleBarMousedown(event: MouseEvent) {\n this.moving = true\n\n const left = event.offsetX\n const top = event.offsetY\n\n this.mouseMovingTitleBarOffsetX = left\n this.mouseMovingTitleBarOffsetY = top\n }\n windowMouseDown(event: MouseEvent) {\n if (!event.target) {\n return\n }\n\n const target: HTMLElement = event.target as HTMLElement\n switch (target.tagName) {\n case \"INPUT\":\n case \"A\":\n return\n\n default:\n break;\n }\n\n event.preventDefault()\n }\n mousemove(event: MouseEvent) {\n if (!this.moving) {\n return\n }\n\n const left = event.clientX - this.mouseMovingTitleBarOffsetX\n const top = event.clientY - this.mouseMovingTitleBarOffsetY\n if (this.WINDOW?.current) {\n this.left = left\n this.top = top\n let scale = this.state.visible ? 1 : 0.9\n\n this.WINDOW.current.style.transition = \"transform 0s, opacity 0s\"\n this.WINDOW.current.style.transform = `translate(${left}px, ${top}px) scale(${scale})`\n }\n }\n mouseup() {\n if (this.moving) {\n console.log(\"mouseup\")\n this.moving = false\n }\n }\n checkWindowVisible() {\n if (this.props.visible !== this.state.visible) {\n if (this.props.visible) {\n this.openWindow()\n } else {\n this.closeWindow()\n }\n }\n }\n openWindow() {\n if (this.WINDOW.current) {\n this.WINDOW.current.style.transition = \"\"\n }\n this.setState({ display: true, })\n setTimeout(() => {\n this.setState({ visible: true })\n }, 0);\n }\n closeWindow() {\n console.log(\"closeWindow\")\n if (this.WINDOW.current) {\n this.WINDOW.current.style.transition = \"\"\n }\n this.setState({ visible: false, })\n setTimeout(() => {\n this.setState({ display: false })\n }, 1000);\n }\n titleButtonAction(type: Window_TitleButton) {\n switch (type) {\n case \"close\":\n if (this.props.onClose) { this.props.onClose() }\n break;\n\n default:\n break;\n }\n }\n}\n\ntype ModalProps = {\n width?: number\n height?: number\n title?: string\n onOK?: () => void\n onCancel?: () => void\n}\ntype ModalState = {\n visible?: boolean\n}\nexport class Modal extends React.PureComponent {\n footerHeight: number\n constructor(props: ModalProps) {\n super(props);\n this.footerHeight = 48\n this.state = {\n visible: true\n\n }\n }\n\n async componentDidMount() {\n\n }\n componentWillUnmount() {\n\n }\n render() {\n return (\n \n
\n {this.props.children}\n
\n
\n \n \n \n \n
\n \n )\n }\n onCancel() {\n this.closeModal()\n if (this.props.onCancel) {\n this.props.onCancel()\n }\n }\n onOK() {\n this.closeModal()\n if (this.props.onOK) {\n this.props.onOK()\n }\n }\n closeModal() {\n this.setState({\n visible: false\n })\n }\n}\n\n\nclass WindowComponent extends React.PureComponent {\n protected COMPONENT_ID: string\n static contextType = WindowContext;\n\n protected COMPONENT: {\n isFocused: () => boolean | undefined\n focus: () => void | undefined\n };\n\n constructor(props: P) {\n super(props);\n this.COMPONENT_ID = GUID()\n const tryContent = () => {\n return typeof (this.context) === \"object\"\n }\n this.COMPONENT = {\n isFocused: () => {\n if (tryContent()) {\n const WINDOW_STATE: WindowContextProps = this.context\n return WINDOW_STATE.focus === this.COMPONENT_ID\n }\n },\n focus: () => {\n if (tryContent()) {\n const WINDOW_STATE: WindowContextProps = this.context\n return WINDOW_STATE.setFocus(this.COMPONENT_ID)\n }\n }\n }\n\n }\n}\n\nexport type SelectionData = {\n data?: T\n key: string\n text: string\n}\ntype SelectProps = {\n data: SelectionData[]\n activedKey?: number | string\n renderStyle?: (data: SelectionData) => React.CSSProperties\n style?: React.CSSProperties\n onChange?: (data: SelectionData) => void\n}\ntype SelectState = {\n needFocusSelected?: boolean\n didMounted?: boolean\n}\nexport class Select extends React.PureComponent, SelectState> {\n node: React.RefObject\n constructor(props: SelectProps) {\n super(props);\n this.node = React.createRef();\n this.state = {}\n }\n\n componentDidMount() {\n if (this.props.activedKey) {\n this.setState({ needFocusSelected: true, didMounted: true })\n }\n this.scrollIntoViewIfNeed()\n }\n componentDidUpdate() {\n this.scrollIntoViewIfNeed()\n }\n render() {\n let hasSelected: boolean = false\n let render = (item: SelectionData) => {\n let renderStyle = {}\n if (this.props.renderStyle) {\n renderStyle = this.props.renderStyle(item)\n }\n const selected = this.props.activedKey === item.key\n if (selected) {\n hasSelected = true\n }\n return {\n if (this.props.onChange) { this.props.onChange(item) }\n setTimeout(() => this.scrollIntoViewIfNeed(true), 0);\n }}\n key={(item.key ? String(item.key) : undefined)}\n >\n {item.text}\n \n }\n\n const children = Array.from(this.props.data, render)\n if (!hasSelected && this.state.didMounted) {\n this.selectedFirstItem()\n }\n return (\n
\n \n {children}\n
\n \n\n )\n }\n\n selectedFirstItem() {\n if (this.props.data.length > 0) {\n for (let item of this.props.data) {\n if (this.props.onChange) { this.props.onChange(item) }\n break\n }\n }\n }\n scrollIntoViewIfNeed(force = false) {\n if (this.state.needFocusSelected || force) {\n if (this.node.current) {\n const selected = this.node.current.getElementsByClassName(\"WINDOWS-selection-selected\")\n for (let element of selected) {\n element.scrollIntoView({ block: \"nearest\" })\n this.setState({\n needFocusSelected: false\n })\n }\n } else {\n console.error(\"无法滚动到被选中内容\")\n }\n }\n }\n\n}\ntype DropdownSelectState = {\n needFocusSelected?: boolean\n didMounted?: boolean\n showDropdown: boolean\n hoveredSelectionkey?: string\n}\nexport class DropdownSelect extends React.PureComponent, DropdownSelectState> {\n node: React.RefObject\n constructor(props: SelectProps) {\n super(props);\n this.node = React.createRef();\n this.state = {\n showDropdown: false\n }\n }\n\n componentDidMount() {\n if (this.props.activedKey) {\n this.setState({ needFocusSelected: true, didMounted: true })\n }\n this.scrollIntoViewIfNeed()\n document.addEventListener('mousedown', this.mousedown.bind(this));\n }\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.mousedown);\n\n }\n\n componentDidUpdate() {\n this.scrollIntoViewIfNeed()\n }\n\n render() {\n let hasSelected: boolean = false\n let currentSelectedText = \"\"\n let renderFunc = (item: SelectionData) => {\n let renderStyle = {}\n if (this.props.renderStyle) {\n renderStyle = this.props.renderStyle(item)\n }\n let selected = this.props.activedKey === item.key\n if (selected) {\n currentSelectedText = item.text\n }\n if (this.state.hoveredSelectionkey) {\n selected = this.state.hoveredSelectionkey === item.key\n }\n if (selected) {\n hasSelected = true\n }\n return {\n if (this.props.onChange) { this.props.onChange(item) }\n setTimeout(() => this.scrollIntoViewIfNeed(true), 0);\n this.hideDropdown()\n }}\n onMouseEnter={() => { this.setState({ hoveredSelectionkey: item.key }) }}\n key={(item.key ? String(item.key) : undefined)}\n >\n {item.text}\n \n }\n const childrenCount = this.props.data.length\n const children = Array.from(this.props.data, renderFunc)\n if (!hasSelected && this.state.didMounted) {\n this.selectedFirstItem()\n }\n const selectionsHeight = this.state.showDropdown ? (childrenCount * 17) : (0)\n const selectionsBorderColor = this.state.showDropdown ? undefined : (\"#0078d700\")\n const selectionsBorderWidth = this.state.showDropdown ? undefined : (0)\n const selectionsBackgroundColor = this.state.showDropdown ? undefined : (\"#ffffff00\")\n const selectionsBackgroundTransitionDuration = this.state.showDropdown ? \"0.1s\" : undefined\n const selectionsShadowHeight = this.state.showDropdown ? Math.max((childrenCount * 17 - 5), 0) : (0)\n const selectionsShadowTransitionDuration = selectionsBackgroundTransitionDuration\n\n return (\n \n
{ this.setState({ showDropdown: !this.state.showDropdown, hoveredSelectionkey: \"\" }) }}\n >\n
\n {currentSelectedText}\n
\n
\n \n
\n
\n
\n
\n {children}\n
\n
\n
\n\n )\n }\n\n selectedFirstItem() {\n if (this.props.data.length > 0) {\n for (let item of this.props.data) {\n if (this.props.onChange) { this.props.onChange(item) }\n break\n }\n }\n }\n scrollIntoViewIfNeed(force = false) {\n if (this.state.needFocusSelected || force) {\n if (this.node.current) {\n const selected = this.node.current.getElementsByClassName(\"WINDOWS-selection-selected\")\n for (let element of selected) {\n element.scrollIntoView({ block: \"nearest\" })\n this.setState({\n needFocusSelected: false\n })\n }\n } else {\n console.error(\"无法滚动到被选中内容\")\n }\n }\n }\n hideDropdown() {\n this.setState({ showDropdown: false, hoveredSelectionkey: \"\" })\n }\n mousedown(event: MouseEvent) {\n if (this.node && this.node.current && event.target) {\n\n const selfNode = this.node.current\n const clickTarget = event.target as HTMLDivElement\n const compare = selfNode.compareDocumentPosition(clickTarget)\n if (compare < 16) {\n this.hideDropdown()\n }\n }\n }\n}\ntype InputProps = {\n primary?: boolean\n value?: string\n ref?: string\n style?: React.CSSProperties\n onChange?: (newValue: string, event: React.ChangeEvent) => void\n}\ntype InputState = {\n}\nexport class Input extends WindowComponent {\n inputNode: React.RefObject\n ignoreNextMouseUp?: boolean\n\n constructor(props: InputProps) {\n super(props);\n this.inputNode = React.createRef();\n }\n\n render() {\n let classNames = [\"WINDOWS-input\"]\n\n if (this.props.primary) {\n classNames.push(\"WINDOWS-input-primary\")\n }\n\n return (\n
\n {\n if (!this.COMPONENT.isFocused()) {\n this.COMPONENT.focus()\n if (this.inputNode && this.inputNode.current) {\n this.ignoreNextMouseUp = true\n this.inputNode.current.focus()\n this.inputNode.current.select()\n }\n }\n }}\n onMouseUp={(event) => {\n if (this.ignoreNextMouseUp) {\n this.ignoreNextMouseUp = false\n event.preventDefault()\n }\n }}\n onChange={(event) => {\n if (this.props.onChange) {\n this.props.onChange(event.target.value, event)\n }\n }}\n />\n
\n )\n }\n\n}\n\nInput.contextType = WindowContext;\ntype ParagraphProps = {\n}\nexport class Paragraph extends React.PureComponent {\n render() {\n return (\n
\n {this.props.children}\n
\n )\n }\n\n}\ntype FieldsetProps = {\n title: string\n style: React.CSSProperties\n}\nexport class Fieldset extends React.PureComponent {\n render() {\n return (\n
\n
\n {this.props.title}\n
\n {this.props.children}\n
\n
\n
\n )\n }\n\n}\n\n","import * as React from 'react';\nimport { getFontList, isSupportFontWeight, fontWeight, getFontSupportScript } from \"../function/getFontList\"\nimport {\n Modal, Select,\n DropdownSelect, SelectionData,\n Input, Paragraph, Fieldset, Button\n} from \"./windows\"\nimport \"./fontSelection.less\"\n\ntype FontInstalled = {\n en_name: string;\n cn_name: string;\n}\ntype AppState = {\n fontInstalled?: FontInstalled[]\n fontInstalled4Select?: SelectionData[]\n currentSelectedFont: string\n currentInputedFontText: string\n\n currnetSupportedFontStyleList: {\n key: string,\n text: string,\n data: React.CSSProperties\n }[],\n currentSelectedFontStyleKey: string\n currentInputedFontStyleText: string\n currentInputedFontStyleData: React.CSSProperties\n\n currentSelectedFontSize: string\n currentInputedFontSizeText: string\n\n currentFontSupportedScript: { name: string, key: string, sampleText: string }[]\n currentFontSupportedScriptForSelect: { text: string, key: string, data: string }[]\n currentFontSupportedScriptSelectedKey: string\n currentFontSupportedScriptSelectedSampleText: string\n\n}\n\n\n\n\n// bolder\n// bold\n// normal\n// lighter\n\nexport class FontSelection extends React.PureComponent<{}, AppState> {\n // fontTemp: React.RefObject | undefined\n fontWeightTestList: {\n id: number,\n text: string,\n testWeight: fontWeight\n value: React.CSSProperties\n }[]\n fontSizeList: {\n text: string,\n key: string,\n }[]\n constructor(props: {}) {\n super(props);\n this.fontWeightTestList = [\n {\n id: 1,\n text: \"细体\",\n testWeight: \"lighter\",\n value: { fontWeight: \"lighter\", },\n },\n {\n id: 2,\n text: \"常规\",\n testWeight: \"normal\",\n value: { fontWeight: \"normal\", },\n },\n {\n id: 3,\n text: \"粗体\",\n testWeight: \"bold\",\n value: { fontWeight: \"bold\", },\n },\n {\n id: 5,\n text: \"细体倾斜\",\n testWeight: \"lighter\",\n value: { fontWeight: \"lighter\", fontStyle: \"italic\" },\n },\n {\n id: 6,\n text: \"倾斜\",\n testWeight: \"normal\",\n value: { fontWeight: \"normal\", fontStyle: \"italic\" },\n },\n {\n id: 7,\n text: \"粗偏斜体\",\n testWeight: \"bold\",\n value: { fontWeight: \"bold\", fontStyle: \"italic\" },\n },\n ]\n this.fontSizeList = [\n { text: \"8\", key: \"8pt\" },\n { text: \"9\", key: \"9pt\" },\n { text: \"10\", key: \"10pt\" },\n { text: \"11\", key: \"11pt\" },\n { text: \"12\", key: \"12pt\" },\n { text: \"14\", key: \"14pt\" },\n { text: \"16\", key: \"16pt\" },\n { text: \"18\", key: \"18pt\" },\n { text: \"20\", key: \"20pt\" },\n { text: \"22\", key: \"22pt\" },\n { text: \"24\", key: \"24pt\" },\n { text: \"26\", key: \"26pt\" },\n { text: \"28\", key: \"28pt\" },\n { text: \"36\", key: \"36pt\" },\n { text: \"48\", key: \"48pt\" },\n { text: \"72\", key: \"72pt\" },\n { text: \"初号\", key: \"14.82mm\" },\n { text: \"小初\", key: \"12.7mm\" },\n { text: \"一号\", key: \"9.17mm\" },\n { text: \"小一\", key: \"8.47mm\" },\n { text: \"二号\", key: \"7.76mm\" },\n { text: \"小二\", key: \"6.35mm\" },\n { text: \"三号\", key: \"5.64mm\" },\n { text: \"小三\", key: \"5.29mm\" },\n { text: \"四号\", key: \"4.94mm\" },\n { text: \"小四\", key: \"4.23mm\" },\n { text: \"五号\", key: \"3.7mm\" },\n { text: \"小五\", key: \"3.18mm\" },\n { text: \"六号\", key: \"2.65mm\" },\n { text: \"小六\", key: \"2.29mm\" },\n { text: \"七号\", key: \"1.845mm\" },\n { text: \"八号\", key: \"1.581mm\" }\n ]\n\n\n this.state = {\n currentSelectedFont: \"Microsoft Yahei\",\n currentInputedFontText: \"微软雅黑\",\n\n currnetSupportedFontStyleList: this.getSupportedStyleList(\"Microsoft Yahei\"),\n currentSelectedFontStyleKey: String(this.fontWeightTestList[1].id),\n currentInputedFontStyleText: this.fontWeightTestList[1].text,\n currentInputedFontStyleData: this.fontWeightTestList[1].value,\n\n currentSelectedFontSize: \"4.23mm\",\n currentInputedFontSizeText: \"小四\",\n currentFontSupportedScript: [],\n currentFontSupportedScriptForSelect: [],\n currentFontSupportedScriptSelectedKey: \"\",\n currentFontSupportedScriptSelectedSampleText: \"\",\n }\n\n }\n\n\n async componentDidMount() {\n const fontInstalled = await getFontList()\n const fontInstalled4Select: SelectionData[] = []\n for (let item of (fontInstalled)) {\n fontInstalled4Select.push({ text: item.cn_name, key: item.en_name })\n }\n const supportedScriptNewState = await this.calcSupportedScriptNewState(this.state.currentSelectedFont)\n this.setState({ fontInstalled, fontInstalled4Select, ...supportedScriptNewState })\n }\n\n\n\n render() {\n return (\n {\n setTimeout(() => {\n // alert(\"onCancel\")\n }, 1000);\n }}\n onOK={() => {\n setTimeout(() => {\n // alert(\"onOK\")\n }, 1000);\n }}\n >\n
\n
\n {\"字体(\"}{\"F\"}{\"):\"}\n \n \n data={this.state.fontInstalled4Select || []}\n activedKey={this.state.currentSelectedFont}\n style={{ height: 137 }}\n renderStyle={(item) => ({ fontFamily: `\"${item.key}\"`, })}\n onChange={async (item) => {\n const supportedScriptNewState = await this.calcSupportedScriptNewState(item.key)\n this.setState({\n currnetSupportedFontStyleList: this.getSupportedStyleList(item.key),\n currentSelectedFont: item.key,\n currentInputedFontText: item.text,\n ...supportedScriptNewState\n })\n }}\n />\n
\n
\n {\"字形(\"}{\"Y\"}{\"):\"}\n \n ({ fontFamily: `\"${this.state.currentSelectedFont}\"`, lineHeight: \"19px\", ...item.data })}\n onChange={(item) => {\n this.setState({\n currentSelectedFontStyleKey: item.key,\n currentInputedFontStyleText: item.text,\n currentInputedFontStyleData: item.data || {}\n })\n }}\n />\n
\n
\n {\"大小(\"}{\"S\"}{\"):\"}\n \n ({ fontSize: 12, paddingLeft: 1, lineHeight: \"19px\" })}\n onChange={(item) => {\n this.setState({\n currentInputedFontSizeText: item.text,\n currentSelectedFontSize: item.key\n })\n }}\n />\n
\n {/* //新一行 */}\n
\n
\n
\n \n {this.state.currentFontSupportedScriptSelectedSampleText}\n \n
\n\n {\"脚本(\"}{\"R\"}{\"):\"}\n {\n this.setState({\n currentFontSupportedScriptSelectedKey: item.key,\n currentFontSupportedScriptSelectedSampleText: item.data || \"\",\n\n })\n }}\n />\n
\n {/* //新一行 */}\n \n\n\n
\n\n \n )\n }\n calcFontStyle() {\n let style: React.CSSProperties = {}\n if (this.state.currentSelectedFont) {\n style.fontFamily = `\"${this.state.currentSelectedFont}\"`\n }\n if (this.state.currentInputedFontStyleData) {\n style.fontWeight = this.state.currentInputedFontStyleData.fontWeight\n style.fontStyle = this.state.currentInputedFontStyleData.fontStyle\n }\n if (this.state.currentSelectedFontSize) {\n style.fontSize = this.state.currentSelectedFontSize\n style.lineHeight = this.state.currentSelectedFontSize\n }\n return style\n }\n async calcSupportedScriptNewState(currentSelectedFont: string) {\n let state: {\n currentFontSupportedScript: AppState[\"currentFontSupportedScript\"]\n currentFontSupportedScriptForSelect: AppState[\"currentFontSupportedScriptForSelect\"]\n currentFontSupportedScriptSelectedKey: AppState[\"currentFontSupportedScriptSelectedKey\"]\n currentFontSupportedScriptSelectedSampleText: AppState[\"currentFontSupportedScriptSelectedSampleText\"]\n } = {\n currentFontSupportedScript: this.state[\"currentFontSupportedScript\"],\n currentFontSupportedScriptForSelect: this.state[\"currentFontSupportedScriptForSelect\"],\n currentFontSupportedScriptSelectedKey: this.state[\"currentFontSupportedScriptSelectedKey\"],\n currentFontSupportedScriptSelectedSampleText: this.state[\"currentFontSupportedScriptSelectedSampleText\"],\n }\n\n const SupportedScript = await getFontSupportScript(currentSelectedFont)\n\n const currentFontSupportedScriptForSelect: AppState[\"currentFontSupportedScriptForSelect\"] = []\n for (let item of SupportedScript) {\n currentFontSupportedScriptForSelect.push({\n text: item.name,\n key: item.key,\n data: item.sampleText\n })\n }\n\n state.currentFontSupportedScript = SupportedScript\n state.currentFontSupportedScriptForSelect = currentFontSupportedScriptForSelect\n\n if (SupportedScript.length > 0) {\n let needUpdateSelectedKey = true\n if (state.currentFontSupportedScriptSelectedKey) {\n for (let item of SupportedScript) {\n if (state.currentFontSupportedScriptSelectedKey === item.key) {\n needUpdateSelectedKey = false\n }\n }\n }\n if (needUpdateSelectedKey) {\n for (let item of SupportedScript) {\n state.currentFontSupportedScriptSelectedKey = item.key\n state.currentFontSupportedScriptSelectedSampleText = item.sampleText\n break\n }\n\n }\n }\n // this.setState(state)\n return state\n }\n\n getSupportedStyleList(currentSelectedFont?: string) {\n const currnetFontSupportWeightList: AppState[\"currnetSupportedFontStyleList\"] = []\n for (let item of this.fontWeightTestList) {\n if (isSupportFontWeight(currentSelectedFont || this.state.currentSelectedFont, item.testWeight)) {\n currnetFontSupportWeightList.push({\n key: String(item.id),\n text: item.text,\n data: item.value\n })\n }\n }\n return currnetFontSupportWeightList\n }\n}\ntype FontSelectorProps = {\n fontInstalled: FontInstalled[]\n defalultFont?: string\n}\n\n\n// type FontSelectorProps = {\n// fontInstalled: FontInstalled[]\n// defalultFont?: string\n// }\n\n// function FontSelector(props: FontSelectorProps) {\n// const data: SelectionData[] = []\n// for (let item of (props.fontInstalled)) {\n// data.push({ text: item.cn_name, value: item.en_name })\n// }\n// return (\n// ({ fontFamily: `\"${item.value}\",Arial`, })}\n// />\n// )\n// }\n\n\n","import * as React from 'react';\nimport './App.less';\nimport { getFontList } from \"./function/getFontList\"\nimport { md5 } from \"./function/hash\"\nimport { diffChars } from \"diff\"\nimport { type } from 'os';\nimport { setInterval } from 'timers';\nimport { createInvisibleDOM, removeDOM } from \"./function/createInvisibleDOM\"\nimport { FontSelection } from \"./component/fontSelection\"\nimport { GUID } from \"./function/guid\"\n\n\ntype AppState = {\n posY: number\n posX: number\n lastContentHTML: string\n lines: {\n elements: {\n text: string,\n id: string\n type: \"text\"\n }[],\n lid: string\n }[]\n}\nclass App extends React.PureComponent {\n textInput: React.RefObject | undefined\n textInputsim: React.RefObject | undefined\n fontTemp: React.RefObject | undefined\n constructor(props: {}) {\n super(props);\n this.textInput = React.createRef();\n this.textInputsim = React.createRef();\n this.fontTemp = React.createRef();\n this.state = {\n posY: 1,\n posX: 1,\n lastContentHTML: \"\",\n lines: []\n }\n }\n\n\n async componentDidMount() {\n // if (!this.fontTemp || !this.fontTemp.current) {\n // return\n // }\n // const fontInstalled = await getFontList()\n // console.log(\"fontInstalled\", fontInstalled)\n\n }\n\n render() {\n return (\n
\n
\n
\n
\n
\n \n \n\n {/* */}\n
\n
{\n\n }}>\n {\"点击 \"}\n
\n
\n {`第 ${this.state.posY} 行,第 ${this.state.posX} 列`}\n
\n
\n {\"100%\"}\n
\n
\n {\"Windows (CRLF)\"}\n
\n
\n {\"UTF-8\"}\n
\n
\n
\n
\n
\n
\n );\n }\n afterInput(event: React.FormEvent) {\n this.contentFilter()\n // setTimeout(this.contentFilter, 0);\n this.freshCursorPosition()\n }\n contentFilter() {\n function escapeHtmlText(html: string) {\n var text = document.createTextNode(html);\n var p = document.createElement('p');\n p.appendChild(text);\n return p.innerHTML;\n }\n function childNodeTextsEscape(html: string): string {\n const paragraph = document.createElement('aside');\n paragraph.innerHTML = html\n const walker = document.createTreeWalker(paragraph);\n\n let node = walker.nextNode();\n while (node !== null) {\n if (node.nodeType === 3) {\n // @ts-ignore\n if (typeof (node.data) === \"string\") {\n // @ts-ignore\n let nodeData: string = node.data\n nodeData = escapeHtmlText(nodeData)\n nodeData = nodeData.replaceAll(\"\\\\n\", \"&wrap;\")\n nodeData = nodeData.replaceAll(\" \", \" \")\n nodeData = nodeData.replaceAll(\" \", \"  \")\n // @ts-ignore\n node.data = nodeData\n }\n\n }\n node = walker.nextNode();\n }\n return paragraph.innerHTML;\n }\n function childNodeTextsSymbolRecover(html: string): string {\n const paragraph = document.createElement('aside');\n paragraph.innerHTML = html\n const walker = document.createTreeWalker(paragraph);\n\n let node = walker.nextNode();\n while (node !== null) {\n if (node.nodeType === 3) {\n // @ts-ignore\n if (typeof (node.data) === \"string\") {\n // @ts-ignore\n let nodeData: string = node.data\n nodeData = nodeData.replaceAll('&wrap;', \"\\\\n\")\n // @ts-ignore\n node.data = nodeData\n }\n }\n node = walker.nextNode();\n }\n console.log(\"paragraph\", paragraph)\n return paragraph.innerHTML;\n }\n function htmlAddBRs(html: string): string {\n html = html.replaceAll(\"\\n\", \"
\")\n return html\n }\n function elementRemoveBR(thisElement: HTMLElement): void {\n const walker = document.createTreeWalker(thisElement);\n let node = walker.nextNode();\n const removeList: Node[] = []\n\n while (node !== null) {\n if (Node.ELEMENT_NODE !== node.nodeType) {\n const thisNode: HTMLElement = node as unknown as HTMLElement\n if (thisNode.tagName === \"BR\") {\n removeList.push(thisNode)\n }\n }\n node = walker.nextNode();\n }\n\n for (let dom of removeList) {\n dom.parentNode?.removeChild(dom)\n }\n }\n function isNodeNeed2BeUpdate(thisElement: HTMLElement): boolean {\n const thisMD5 = thisElement.getAttribute(\"inner_html_md5\") || \"\"\n const newMD5 = md5(thisElement.innerHTML)\n if (thisMD5 === newMD5) {\n return false\n }\n thisElement.setAttribute(\"inner_html_md5\", newMD5)\n\n if (thisElement.nodeName !== \"DIV\") {\n return true\n }\n\n const textEscaped = escapeHtmlText(thisElement.innerText)\n const innerHTML = thisElement.innerHTML\n if (textEscaped === innerHTML) {\n return false\n }\n //检查子节点\n const childNodes = thisElement.childNodes\n elementRemoveBR(thisElement)\n for (let node of childNodes) {\n if (Node.TEXT_NODE === node.nodeType) {\n //文字节点略过,看看其他的node\n } else if (Node.ELEMENT_NODE !== node.nodeType) {\n console.log(\"treu\", 1, node.nodeType)\n return true\n } else if (node.nodeName === \"SPAN\") {\n const childSpanElement: HTMLElement = node as unknown as HTMLElement\n const childSpanElementTextEscaped = escapeHtmlText(childSpanElement.innerText)\n const childSpanElementInnerHTML = childSpanElement.innerHTML\n if (childSpanElementTextEscaped !== childSpanElementInnerHTML) {\n console.log(\"treu\", 2)\n return true\n\n }\n } else if (node.nodeName === \"BR\") {\n\n } else {\n console.log(\"treu\", 3, node.nodeName)\n\n return true\n\n }\n }\n\n return false\n }\n\n if (!this.textInput || !this.textInput.current) {\n console.error('textInput not ready')\n return\n }\n if (!this.textInputsim || !this.textInputsim.current) {\n console.error('textInputsim not ready')\n return\n }\n const selection = getSelection()\n const textInputDom = this.textInput.current\n const textInputsimDom = this.textInputsim.current\n const childNodes = textInputDom.childNodes\n const removeList: Node[] = []\n const addLinesList: {\n before: Node,\n text: string\n }[] = []\n\n textInputsimDom.innerHTML = textInputDom.innerHTML\n\n\n\n if (this.state.lastContentHTML.length === 0) {\n textInputDom.innerHTML = `
${textInputDom.innerHTML}
`\n }\n\n this.setState({\n lastContentHTML: textInputDom.innerHTML\n })\n const stage = document.createElement('div');\n\n for (let node of childNodes) {\n if (Node.TEXT_NODE === node.nodeType) {\n removeList.push(node)\n addLinesList.push({\n before: node,\n text: node.textContent || \"\"\n })\n } else if (Node.ELEMENT_NODE !== node.nodeType) {\n removeList.push(node)\n } else {\n const thisElement: HTMLElement = node as unknown as HTMLElement\n switch (thisElement.tagName) {\n case \"BR\":\n removeList.push(thisElement)\n break;\n case \"SPAN\":\n case \"B\":\n\n break;\n\n default:\n if (isNodeNeed2BeUpdate(thisElement)) {\n removeList.push(node)\n console.log(\"isNodeNeed2BeUpdate\", true, thisElement)\n const tempDom = createInvisibleDOM()\n tempDom.innerHTML = childNodeTextsEscape(thisElement.innerHTML)\n const newLines = []\n console.log(\"tempDom.innerHTML\", tempDom.innerHTML,)\n console.log(\"tempDom.innerText\", tempDom.innerText, tempDom.innerText.split(\"\\n\"))\n newLines.push(...tempDom.innerText.split(\"\\n\"))\n console.log(\"newLines\", newLines)\n for (let text of newLines) {\n addLinesList.push({\n before: thisElement,\n text: childNodeTextsSymbolRecover(text)\n })\n }\n removeDOM(tempDom)\n }\n break;\n }\n // if (thisElement.tagName === \"BR\") {\n // removeList.push(thisElement)\n // } else if (thisElement.tagName === \"SPAN\") {\n // removeList.push(thisElement)\n // } else if (isNodeNeed2BeUpdate(thisElement)) {\n // removeList.push(node)\n // console.log(\"isNodeNeed2BeUpdate\", true, thisElement)\n // const tempDom = createInvisibleDOM()\n // tempDom.innerHTML = childNodeTextsEscape(thisElement.innerHTML)\n // const newLines = []\n // console.log(\"tempDom.innerHTML\", tempDom.innerHTML,)\n // console.log(\"tempDom.innerText\", tempDom.innerText, tempDom.innerText.split(\"\\n\"))\n // newLines.push(...tempDom.innerText.split(\"\\n\"))\n // console.log(\"newLines\", newLines)\n // for (let text of newLines) {\n // addLinesList.push({\n // before: thisElement,\n // text: childNodeTextsSymbolRecover(text)\n // })\n // }\n // removeDOM(tempDom)\n // } else {\n // // console.log(\"NOT\", \"isNodeNeed2BeUpdate\", thisElement)\n // }\n\n }\n }\n // return\n\n //!先insert后remove\n for (let line of addLinesList) {\n var paragraph = document.createElement('div');\n paragraph.innerHTML = line.text\n textInputDom.insertBefore(paragraph, line.before);\n }\n for (let dom of removeList) {\n dom.parentNode?.removeChild(dom)\n }\n\n }\n freshCursorPosition() {\n const newPos = this.getCurrentCursorPosition()\n this.setState({\n posX: newPos.x,\n posY: newPos.y,\n })\n setTimeout(() => {\n const newPos = this.getCurrentCursorPosition()\n this.setState({\n posX: newPos.x,\n posY: newPos.y,\n })\n }, 100);\n }\n getCurrentCursorPosition(): { x: number, y: number } {\n let X = 1\n let Y = 1\n if (this.textInput) {\n const contentTopDOM = this.textInput.current\n if (contentTopDOM) {\n const sel = document.getSelection();\n if (sel) {\n const anchorNode: any = sel.anchorNode\n const offset = sel.anchorOffset + 1\n X = offset\n if (contentTopDOM === anchorNode) {\n Y = 1\n } else {\n\n [...contentTopDOM.childNodes].some((childNode, nodeId) => {\n const compare = childNode.compareDocumentPosition(anchorNode)\n if (compare === 0 || compare >= 16) {\n Y = nodeId + 1\n return true\n }\n })\n }\n }\n }\n }\n return {\n x: X, y: Y\n }\n }\n\n}\n\n\nexport default App;\n","import jsMD5 from \"md5\"\n\nexport function md5(text: string) {\n return jsMD5(text)\n}\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}