├── 00-客户大模型呼叫中心测试-裁剪掉公司信息.mp4 ├── 00-运营商电话助理测试-带字幕.mp4 ├── 05-LLM Call Center.pptx ├── 05-大模型呼叫中心-自助解决问题-拓扑图.pptx ├── LICENSE ├── README.md ├── README_AR.md ├── README_BN.md ├── README_CN.md ├── README_DE.md ├── README_EN.md ├── README_ES.md ├── README_FR.md ├── README_JA.md ├── README_KL.md ├── README_KR.md ├── README_PT.md ├── README_RU.md ├── README_SI.md ├── README_TR.md ├── README_VI.md ├── Sample online customer service to manual backend code ├── common │ └── src │ │ └── com │ │ └── sxx │ │ └── jcc │ │ └── common │ │ ├── action │ │ ├── BaseAction.java │ │ └── Message.java │ │ ├── service │ │ ├── BaseReportService.java │ │ ├── BaseService.java │ │ ├── IBaseReportSevice.java │ │ └── IBaseService.java │ │ └── utils │ │ ├── Base62.java │ │ ├── BrowserClient.java │ │ ├── DateJsonValueProcessor.java │ │ ├── DateUtil.java │ │ ├── Escape.java │ │ ├── IdGenerator.java │ │ ├── JsonUtil.java │ │ ├── MD5.java │ │ ├── MD5Encrypt.java │ │ ├── NameConverter.java │ │ ├── ReflectionUtils.java │ │ ├── SpringBeanFactory.java │ │ ├── XKDataContext.java │ │ ├── XKTools.java │ │ ├── disruptor │ │ ├── UserDataEventFactory.java │ │ ├── UserDataEventProducer.java │ │ ├── UserEventHandler.java │ │ └── multiupdate │ │ │ └── MultiUpdateEventFactory.java │ │ └── event │ │ ├── AiEvent.java │ │ ├── UserDataEvent.java │ │ └── UserEvent.java ├── core │ └── src │ │ ├── com │ │ └── sxx │ │ │ └── jcc │ │ │ └── core │ │ │ ├── cache │ │ │ ├── CacheBean.java │ │ │ ├── CacheInstance.java │ │ │ ├── MemCached.java │ │ │ ├── SystemCache.java │ │ │ └── WoseqGen.java │ │ │ ├── chartReport │ │ │ ├── BarChart.java │ │ │ └── BaseChart.java │ │ │ ├── dao │ │ │ └── hibernate │ │ │ │ ├── HibernateDao.java │ │ │ │ ├── Page.java │ │ │ │ ├── PropertyFilter.java │ │ │ │ ├── QueryConditionFilter.java │ │ │ │ ├── QueryParameter.java │ │ │ │ └── SimpleHibernateDao.java │ │ │ ├── exception │ │ │ ├── AppBaseException.java │ │ │ ├── BaseException.java │ │ │ ├── LoginException.java │ │ │ └── UnauthorizedException.java │ │ │ ├── filter │ │ │ └── Struts2Filter.java │ │ │ ├── intereptor │ │ │ ├── AuthorityInterceptor.java │ │ │ ├── AuthorizationInterceptor.java │ │ │ └── ExceptionHandlerInterceptor.java │ │ │ ├── model │ │ │ ├── ADBase.java │ │ │ ├── ADEntity.java │ │ │ ├── IMClient.java │ │ │ ├── PageModel.java │ │ │ └── ReportBase.java │ │ │ ├── server │ │ │ ├── DemoSocketServer.java │ │ │ ├── ServerRunner.java │ │ │ ├── handler │ │ │ │ ├── AgentEventHandler.java │ │ │ │ └── IMEventHandler.java │ │ │ └── message │ │ │ │ ├── AgentServiceMessage.java │ │ │ │ ├── AgentStatusMessage.java │ │ │ │ ├── ChatObject.java │ │ │ │ ├── Message.java │ │ │ │ ├── NewRequestMessage.java │ │ │ │ ├── OtherMessage.java │ │ │ │ ├── OtherMessageItem.java │ │ │ │ └── SessionConfigItem.java │ │ │ ├── struts │ │ │ ├── CRUDActionSupport.java │ │ │ ├── ReportBaseAction.java │ │ │ └── SimpleActionSupport.java │ │ │ ├── taglib │ │ │ ├── bean │ │ │ │ └── PageTable.java │ │ │ ├── model │ │ │ │ └── HtmlColumn.java │ │ │ └── ui │ │ │ │ └── pageTableTag.java │ │ │ ├── utils │ │ │ ├── BeanUtils.java │ │ │ ├── Constant.java │ │ │ ├── DateUtil.java │ │ │ ├── WebUtils.java │ │ │ └── tree │ │ │ │ ├── JQueryTreeUtil.java │ │ │ │ ├── TreeCompare.java │ │ │ │ ├── TreeNode.java │ │ │ │ ├── ZTreeCompare.java │ │ │ │ ├── ZTreeNode.java │ │ │ │ └── ZTreeUtil.java │ │ │ └── view │ │ │ ├── AbstractExportView.java │ │ │ ├── AbstractViewExporter.java │ │ │ ├── ExcelView.java │ │ │ ├── ExcelViewExporter.java │ │ │ ├── ExportType.java │ │ │ ├── View.java │ │ │ ├── ViewExporter.java │ │ │ └── utils │ │ │ ├── BeanUtils.java │ │ │ ├── ExportUtils.java │ │ │ └── ItemUtils.java │ │ ├── memcached.xml │ │ └── struts.xml ├── temp └── webim │ └── src │ └── com │ └── sxx │ └── jcc │ └── webim │ ├── action │ ├── AgentController.java │ └── IMControllerAction.java │ ├── config │ ├── DisruptorConfigure.java │ └── SessionConfigItem.java │ ├── pojo │ ├── AgentReport.java │ ├── AgentServiceSummary.java │ ├── AgentStatus.java │ ├── AgentUserTask.java │ ├── BlackEntity.java │ ├── ChatMessage.java │ ├── Contacts.java │ ├── MessageDataBean.java │ ├── MessageInContent.java │ ├── MessageLeave.java │ ├── MessageOutContent.java │ ├── OnlineUser.java │ ├── OnlineUserHis.java │ ├── QuickReply.java │ ├── QuickType.java │ ├── RequestLog.java │ ├── SNSAccount.java │ ├── SocketIOMessage.java │ ├── StatusEvent.java │ ├── SystemConfig.java │ ├── UserHistory.java │ ├── UserTraceHistory.java │ ├── WorkMonitor.java │ └── WorkserviceTime.java │ ├── queue │ ├── AgentStatusBusyOrgiFilterPredicate.java │ ├── AgentStatusOrgiFilterPredicate.java │ └── AgentUserOrgiFilterPredicate.java │ ├── rpc │ ├── AgentTopicListener.java │ ├── ClusterMember.java │ ├── IMTopicListener.java │ ├── RPCDataBean.java │ └── RPCTools.java │ ├── service │ ├── IAgentReportService.java │ ├── IAgentStatusService.java │ ├── IAgentUserTaskService.java │ ├── IChatMessageService.java │ ├── IQuickReplyService.java │ ├── IQuickTypeService.java │ ├── ISummaryService.java │ ├── ISysAgentUserService.java │ ├── IWorkMonitorService.java │ ├── ServiceQuene.java │ └── impl │ │ ├── AgentReportServiceImpl.java │ │ ├── AgentStatusServiceImpl.java │ │ ├── AgentUserTaskServiceImpl.java │ │ ├── ChatMessageServiceImpl.java │ │ ├── QuickReplyServiceImpl.java │ │ ├── QuickTypeServiceImpl.java │ │ ├── SummaryServiceImpl.java │ │ ├── SysAgentUserServiceImpl.java │ │ └── WorkMonitorServiceImpl.java │ └── util │ ├── BeanUtils.java │ ├── IP.java │ ├── MessageUtils.java │ ├── NettyAgentClient.java │ ├── NettyCallCenterClient.java │ ├── NettyClient.java │ ├── NettyClients.java │ ├── NettyIMClient.java │ ├── OnlineUserUtils.java │ └── router │ ├── MessageRouter.java │ ├── OutMessageRouter.java │ ├── Router.java │ ├── RouterHelper.java │ └── WebIMOutMessageRouter.java └── ui └── WorkOrder ├── LICENSE ├── console ├── 1155.d58c3d4b.async.js ├── 1174.5864050a.async.js ├── 1257.bb2f37dc.async.js ├── 1576.f5026d9a.async.js ├── 1658.7b18f233.async.js ├── 2263.c5d19d11.async.js ├── 2587.126043f3.chunk.css ├── 2816.8c502489.async.js ├── 3009.767fa640.async.js ├── 3088.94f2c31f.async.js ├── 3528.ef867b1a.async.js ├── 3529.455559aa.async.js ├── 4239.565b44fa.async.js ├── 4411.8f31d597.async.js ├── 5304.3bece408.chunk.css ├── 5304.d4b98e60.async.js ├── 5405.310431d9.async.js ├── 5648.79d96e57.async.js ├── 5672.a5b10493.async.js ├── 5802.ee30e968.async.js ├── 6111.d96c1e19.async.js ├── 6425.24f9d969.async.js ├── 660.d0dd04f3.async.js ├── 7232.145de910.async.js ├── 7277.280985a2.async.js ├── 8182.53f443c8.async.js ├── 8182.d71dc756.chunk.css ├── 8511.3f1d9d08.async.js ├── 8602.602a8962.async.js ├── 8694.70492d15.chunk.css ├── 8694.be223bf2.async.js ├── 9709.8eec9a10.async.js ├── 9861.8f85ee42.async.js ├── 9926.c0beafce.async.js ├── 9960.a29839ef.chunk.css ├── 9960.bf7d32da.async.js ├── CNAME ├── favicon-pro.ico ├── favicon.ico ├── gsd-logo.png ├── icons │ ├── icon-128x128.png │ ├── icon-192x192.png │ └── icon-512x512.png ├── index.html ├── logo.png ├── logo1.svg ├── p__404.422cb932.async.js ├── p__AiChat__agent__index.4d8dff70.chunk.css ├── p__AiChat__agent__index.b59babf7.async.js ├── p__AiChat__user__index.38c219fa.chunk.css ├── p__AiChat__user__index.3cdb11cc.async.js ├── p__Home.50883685.async.js ├── p__User__Login3__index.35415562.chunk.css ├── p__User__Login3__index.a6313278.async.js ├── p__User__register-result__index.0ed1e83c.async.js ├── p__User__register-result__index.28ee0439.chunk.css ├── p__User__register__index.16600706.async.js ├── p__User__register__index.a1cb2cb5.chunk.css ├── p__account__center__index.22f0d874.chunk.css ├── p__account__center__index.a821ffe8.async.js ├── p__account__settings__index.1bac8a21.chunk.css ├── p__account__settings__index.c92491c4.async.js ├── p__cc__company__displayIndex.92fcbca6.async.js ├── p__cc__company__index.54429ac3.async.js ├── p__cc__company__phoneIndex.c057db14.async.js ├── p__cc__group__index.3d34e0b0.async.js ├── p__cc__playback__index.2b45f5d5.chunk.css ├── p__cc__playback__index.a078a36e.async.js ├── p__cc__route__gatewayIndex.eaeca864.async.js ├── p__cc__route__routeCallIndex.61db783c.async.js ├── p__cc__vdnSchedule__index.861c5438.async.js ├── p__cc__vdn__index.1b1cf2db.chunk.css ├── p__cc__vdn__index.534f20b4.async.js ├── p__dashboard__analysis__index.2b856f2b.async.js ├── p__dashboard__analysis__index.e640426b.chunk.css ├── p__dashboard__monitor__index.8d46d7c6.async.js ├── p__dashboard__monitor__index.f9338dbe.chunk.css ├── p__dashboard__workplace__index.c79bbf1e.chunk.css ├── p__dashboard__workplace__index.ee1157f0.async.js ├── p__flow__flowmanager__index.670faba9.async.js ├── p__flow__flowmap__index.5fc879f4.chunk.css ├── p__flow__flowmap__index.6e7fcef2.async.js ├── p__flow__ivr__index.6f3d0560.async.js ├── p__flow__ivr__index.907ffd73.chunk.css ├── p__flow__test__index.29e7fc39.async.js ├── p__flow__test__index.bb6d8c38.chunk.css ├── p__gptchat__canvas__index.6df254ac.chunk.css ├── p__gptchat__canvas__index.ea8ce148.async.js ├── p__gptchat__chatflows__index.e16bd458.async.js ├── p__monitor__cacheList__index.dc08eed6.async.js ├── p__monitor__cacheList__index.ea6c07b7.chunk.css ├── p__monitor__cache__index.2c16124e.chunk.css ├── p__monitor__cache__index.735502d5.async.js ├── p__monitor__druid__index.8473113e.async.js ├── p__monitor__job__index.d83c7e50.async.js ├── p__monitor__joblog__index.b1434f23.async.js ├── p__monitor__logininfor__index.f090d93c.async.js ├── p__monitor__online__index.2e880cdf.async.js ├── p__monitor__operlog__index.c8a1711d.async.js ├── p__monitor__server__index.bc132933.chunk.css ├── p__monitor__server__index.bc4509fe.async.js ├── p__report__agent__index.6dde81a7.async.js ├── p__report__tcd__index.7f77f529.async.js ├── p__robot__knowledge__index.d4566f6d.async.js ├── p__robot__rbtsmanager__index.52b14c1b.async.js ├── p__robot__rbtsmanager__index.fa9d5c00.chunk.css ├── p__system__config__index.d5ad25b6.async.js ├── p__system__dept__index.e4638307.async.js ├── p__system__dictData__index.e0d7ca77.async.js ├── p__system__dict__index.752532f2.async.js ├── p__system__menu__index.d5a1530e.chunk.css ├── p__system__menu__index.f2358a36.async.js ├── p__system__notice__index.8b59aaf4.async.js ├── p__system__post__index.2618d975.async.js ├── p__system__role__index.d5cd3892.async.js ├── p__system__user__index.3272fc11.async.js ├── p__tool__builder__index.9c992f13.async.js ├── p__tool__gen__index.9fe39b03.async.js ├── p__tool__swagger__index.2d989e1d.async.js ├── pro_icon.svg ├── react-syntax-highlighter │ └── refractor-core-import.037c9ea8.async.js ├── react-syntax-highlighter_languages_refractor_abap.94596215.async.js ├── react-syntax-highlighter_languages_refractor_actionscript.0c03b575.async.js ├── react-syntax-highlighter_languages_refractor_ada.ca5ed12a.async.js ├── react-syntax-highlighter_languages_refractor_apacheconf.b89b096d.async.js ├── react-syntax-highlighter_languages_refractor_apl.bfa048fb.async.js ├── react-syntax-highlighter_languages_refractor_applescript.b90478e2.async.js ├── react-syntax-highlighter_languages_refractor_arduino.01b005cc.async.js ├── react-syntax-highlighter_languages_refractor_arff.bc5fc3c3.async.js ├── react-syntax-highlighter_languages_refractor_asciidoc.0e2afc71.async.js ├── react-syntax-highlighter_languages_refractor_asm6502.2ee7f680.async.js ├── react-syntax-highlighter_languages_refractor_aspnet.94543355.async.js ├── react-syntax-highlighter_languages_refractor_autohotkey.042192aa.async.js ├── react-syntax-highlighter_languages_refractor_autoit.e23241f9.async.js ├── react-syntax-highlighter_languages_refractor_bash.8b02b966.async.js ├── react-syntax-highlighter_languages_refractor_basic.18a32378.async.js ├── react-syntax-highlighter_languages_refractor_batch.120fcb58.async.js ├── react-syntax-highlighter_languages_refractor_bison.c340c8b3.async.js ├── react-syntax-highlighter_languages_refractor_brainfuck.447e9df5.async.js ├── react-syntax-highlighter_languages_refractor_bro.e7f8db58.async.js ├── react-syntax-highlighter_languages_refractor_c.1b5ce4fe.async.js ├── react-syntax-highlighter_languages_refractor_clike.7a3882b8.async.js ├── react-syntax-highlighter_languages_refractor_clojure.89e8a408.async.js ├── react-syntax-highlighter_languages_refractor_coffeescript.498632f9.async.js ├── react-syntax-highlighter_languages_refractor_cpp.f646219e.async.js ├── react-syntax-highlighter_languages_refractor_crystal.7edd726b.async.js ├── react-syntax-highlighter_languages_refractor_csharp.6a89d41e.async.js ├── react-syntax-highlighter_languages_refractor_csp.f1ecc9e5.async.js ├── react-syntax-highlighter_languages_refractor_css.d07363b7.async.js ├── react-syntax-highlighter_languages_refractor_cssExtras.cad920f5.async.js ├── react-syntax-highlighter_languages_refractor_d.b20a7278.async.js ├── react-syntax-highlighter_languages_refractor_dart.96353f07.async.js ├── react-syntax-highlighter_languages_refractor_diff.23e79d76.async.js ├── react-syntax-highlighter_languages_refractor_django.79fa0ba9.async.js ├── react-syntax-highlighter_languages_refractor_docker.f1bbe9da.async.js ├── react-syntax-highlighter_languages_refractor_eiffel.0ae65090.async.js ├── react-syntax-highlighter_languages_refractor_elixir.d551fabc.async.js ├── react-syntax-highlighter_languages_refractor_elm.1da6c3a1.async.js ├── react-syntax-highlighter_languages_refractor_erb.9e5b4093.async.js ├── react-syntax-highlighter_languages_refractor_erlang.bb25901a.async.js ├── react-syntax-highlighter_languages_refractor_flow.581dfe80.async.js ├── react-syntax-highlighter_languages_refractor_fortran.731e736d.async.js ├── react-syntax-highlighter_languages_refractor_fsharp.b1ceecb6.async.js ├── react-syntax-highlighter_languages_refractor_gedcom.4d605f72.async.js ├── react-syntax-highlighter_languages_refractor_gherkin.2791a014.async.js ├── react-syntax-highlighter_languages_refractor_git.05c12380.async.js ├── react-syntax-highlighter_languages_refractor_glsl.c81c4b1c.async.js ├── react-syntax-highlighter_languages_refractor_go.05dc14ce.async.js ├── react-syntax-highlighter_languages_refractor_graphql.9b123fdf.async.js ├── react-syntax-highlighter_languages_refractor_groovy.1b885dea.async.js ├── react-syntax-highlighter_languages_refractor_haml.d60feac7.async.js ├── react-syntax-highlighter_languages_refractor_handlebars.3ea33aa5.async.js ├── react-syntax-highlighter_languages_refractor_haskell.3d7c3f94.async.js ├── react-syntax-highlighter_languages_refractor_haxe.80bbe231.async.js ├── react-syntax-highlighter_languages_refractor_hpkp.f8ffb0f0.async.js ├── react-syntax-highlighter_languages_refractor_hsts.17da7285.async.js ├── react-syntax-highlighter_languages_refractor_http.b2b4bf94.async.js ├── react-syntax-highlighter_languages_refractor_ichigojam.8f30fbb6.async.js ├── react-syntax-highlighter_languages_refractor_icon.caaadad6.async.js ├── react-syntax-highlighter_languages_refractor_inform7.e3ec6dc0.async.js ├── react-syntax-highlighter_languages_refractor_ini.ba7d28d4.async.js ├── react-syntax-highlighter_languages_refractor_io.865ef58a.async.js ├── react-syntax-highlighter_languages_refractor_j.c2b14f03.async.js ├── react-syntax-highlighter_languages_refractor_java.504414fc.async.js ├── react-syntax-highlighter_languages_refractor_javascript.4dc6848e.async.js ├── react-syntax-highlighter_languages_refractor_jolie.d4abe639.async.js ├── react-syntax-highlighter_languages_refractor_json.ed7b0db9.async.js ├── react-syntax-highlighter_languages_refractor_jsx.d8217046.async.js ├── react-syntax-highlighter_languages_refractor_julia.9ec867b2.async.js ├── react-syntax-highlighter_languages_refractor_keyman.8cfa8d9c.async.js ├── react-syntax-highlighter_languages_refractor_kotlin.7cec8a13.async.js ├── react-syntax-highlighter_languages_refractor_latex.3ec20880.async.js ├── react-syntax-highlighter_languages_refractor_less.9cf7051b.async.js ├── react-syntax-highlighter_languages_refractor_liquid.e4bfb384.async.js ├── react-syntax-highlighter_languages_refractor_lisp.7f228077.async.js ├── react-syntax-highlighter_languages_refractor_livescript.76868bd5.async.js ├── react-syntax-highlighter_languages_refractor_lolcode.c2bcad22.async.js ├── react-syntax-highlighter_languages_refractor_lua.9aebec04.async.js ├── react-syntax-highlighter_languages_refractor_makefile.062f365d.async.js ├── react-syntax-highlighter_languages_refractor_markdown.11f31261.async.js ├── react-syntax-highlighter_languages_refractor_markup.a94d368d.async.js ├── react-syntax-highlighter_languages_refractor_markupTemplating.3ac01906.async.js ├── react-syntax-highlighter_languages_refractor_matlab.f90b5e7e.async.js ├── react-syntax-highlighter_languages_refractor_mel.7fc89269.async.js ├── react-syntax-highlighter_languages_refractor_mizar.f07ecc67.async.js ├── react-syntax-highlighter_languages_refractor_monkey.fc01c5c1.async.js ├── react-syntax-highlighter_languages_refractor_n4js.8d7164b2.async.js ├── react-syntax-highlighter_languages_refractor_nasm.7ba5c19a.async.js ├── react-syntax-highlighter_languages_refractor_nginx.79b28f52.async.js ├── react-syntax-highlighter_languages_refractor_nim.d4033a04.async.js ├── react-syntax-highlighter_languages_refractor_nix.96ced170.async.js ├── react-syntax-highlighter_languages_refractor_nsis.ae57f7c5.async.js ├── react-syntax-highlighter_languages_refractor_objectivec.3b31349e.async.js ├── react-syntax-highlighter_languages_refractor_ocaml.ce7ed371.async.js ├── react-syntax-highlighter_languages_refractor_opencl.766b40c1.async.js ├── react-syntax-highlighter_languages_refractor_oz.8e532df1.async.js ├── react-syntax-highlighter_languages_refractor_parigp.1409fdab.async.js ├── react-syntax-highlighter_languages_refractor_parser.9f50eda2.async.js ├── react-syntax-highlighter_languages_refractor_pascal.12668cd7.async.js ├── react-syntax-highlighter_languages_refractor_perl.489bd96b.async.js ├── react-syntax-highlighter_languages_refractor_php.e7c1d785.async.js ├── react-syntax-highlighter_languages_refractor_phpExtras.9a33ee4f.async.js ├── react-syntax-highlighter_languages_refractor_plsql.625daff2.async.js ├── react-syntax-highlighter_languages_refractor_powershell.c72232e7.async.js ├── react-syntax-highlighter_languages_refractor_processing.8e884432.async.js ├── react-syntax-highlighter_languages_refractor_prolog.5003c17d.async.js ├── react-syntax-highlighter_languages_refractor_properties.5fdd890a.async.js ├── react-syntax-highlighter_languages_refractor_protobuf.c35c3c5f.async.js ├── react-syntax-highlighter_languages_refractor_pug.6641fe2c.async.js ├── react-syntax-highlighter_languages_refractor_puppet.7b1b3cec.async.js ├── react-syntax-highlighter_languages_refractor_pure.f6a93735.async.js ├── react-syntax-highlighter_languages_refractor_python.e3ef6f72.async.js ├── react-syntax-highlighter_languages_refractor_q.f85026b2.async.js ├── react-syntax-highlighter_languages_refractor_qore.18856d82.async.js ├── react-syntax-highlighter_languages_refractor_r.43540998.async.js ├── react-syntax-highlighter_languages_refractor_reason.7951b6c5.async.js ├── react-syntax-highlighter_languages_refractor_renpy.820f3b12.async.js ├── react-syntax-highlighter_languages_refractor_rest.2f04d49f.async.js ├── react-syntax-highlighter_languages_refractor_rip.fcd46bb4.async.js ├── react-syntax-highlighter_languages_refractor_roboconf.b7caee90.async.js ├── react-syntax-highlighter_languages_refractor_ruby.dc90c9b4.async.js ├── react-syntax-highlighter_languages_refractor_rust.f4776a2b.async.js ├── react-syntax-highlighter_languages_refractor_sas.fc29ee49.async.js ├── react-syntax-highlighter_languages_refractor_sass.bdd48c62.async.js ├── react-syntax-highlighter_languages_refractor_scala.23f7d8e9.async.js ├── react-syntax-highlighter_languages_refractor_scheme.3a756bf6.async.js ├── react-syntax-highlighter_languages_refractor_scss.03b12594.async.js ├── react-syntax-highlighter_languages_refractor_smalltalk.7d661e28.async.js ├── react-syntax-highlighter_languages_refractor_smarty.bc948f7d.async.js ├── react-syntax-highlighter_languages_refractor_soy.77677ebc.async.js ├── react-syntax-highlighter_languages_refractor_sql.22b57e53.async.js ├── react-syntax-highlighter_languages_refractor_stylus.6257e64d.async.js ├── react-syntax-highlighter_languages_refractor_swift.58297f25.async.js ├── react-syntax-highlighter_languages_refractor_tap.6bf245b4.async.js ├── react-syntax-highlighter_languages_refractor_tcl.929c86c8.async.js ├── react-syntax-highlighter_languages_refractor_textile.9df35746.async.js ├── react-syntax-highlighter_languages_refractor_tsx.23030514.async.js ├── react-syntax-highlighter_languages_refractor_tt2.6221cfc6.async.js ├── react-syntax-highlighter_languages_refractor_twig.7590589e.async.js ├── react-syntax-highlighter_languages_refractor_typescript.3ad2831c.async.js ├── react-syntax-highlighter_languages_refractor_vbnet.94286abf.async.js ├── react-syntax-highlighter_languages_refractor_velocity.b762ed7a.async.js ├── react-syntax-highlighter_languages_refractor_verilog.5f4d996c.async.js ├── react-syntax-highlighter_languages_refractor_vhdl.70b9825d.async.js ├── react-syntax-highlighter_languages_refractor_vim.712e6260.async.js ├── react-syntax-highlighter_languages_refractor_visualBasic.0a978bdc.async.js ├── react-syntax-highlighter_languages_refractor_wasm.5c42c62a.async.js ├── react-syntax-highlighter_languages_refractor_wiki.9982cbd6.async.js ├── react-syntax-highlighter_languages_refractor_xeora.e219a6c0.async.js ├── react-syntax-highlighter_languages_refractor_xojo.f05e8a5b.async.js ├── react-syntax-highlighter_languages_refractor_xquery.c2efa5b1.async.js ├── react-syntax-highlighter_languages_refractor_yaml.827b1bf6.async.js ├── static │ ├── Azure.1e55a774.svg │ ├── account.bccec459.png │ ├── agent.f478bfe2.svg │ ├── apichain.c035fac3.svg │ ├── autogpt.25ba894a.png │ ├── banner2.5c36f1ab.png │ ├── chain.512bd70a.svg │ ├── chathistory.c04a95d8.png │ ├── chroma.5e822937.svg │ ├── faiss.d0832574.svg │ ├── huggingface.81940a6f.png │ ├── langchain.03999e05.png │ ├── langfuse.428d797f.png │ ├── localai.064d8f8a.png │ ├── memory.d5658a01.svg │ ├── milvus.86429b97.svg │ ├── openapi.8ec8d86e.png │ ├── postgres.8010962f.svg │ ├── product.54eb43f9.png │ ├── prompt.0fed2908.svg │ ├── qdrant.93ff1362.png │ ├── redis.f6028c3c.svg │ ├── robot.3e38acc0.png │ ├── sharing.932311c9.png │ ├── sqlchain.52374685.svg │ ├── vectara.35f34dd0.png │ └── zep.093fc1ca.png ├── t__plugin-layout__Layout.4edc3567.async.js ├── t__plugin-layout__Layout.afd0f6cd.chunk.css ├── temp ├── umi.1236cfd0.js └── umi.3a0fd1f7.css ├── jest.config.js ├── jsconfig.json ├── mock ├── listTableList.ts ├── notices.ts ├── route.ts └── user.ts ├── package-lock.json ├── package.json ├── playwright.config.ts ├── public ├── CNAME ├── favicon-pro.ico ├── favicon.ico ├── gsd-logo.png ├── icons │ ├── icon-128x128.png │ ├── icon-192x192.png │ └── icon-512x512.png ├── logo.png ├── logo1.svg └── pro_icon.svg ├── src ├── access.ts ├── api │ ├── apikey.js │ ├── assistants.js │ ├── chatflows.js │ ├── chatmessage.js │ ├── client.js │ ├── config.js │ ├── credentials.js │ ├── nodes.js │ ├── prediction.js │ ├── prompt.js │ ├── tools.js │ └── vectorstore.js ├── app.tsx ├── assets │ ├── images │ │ ├── account.png │ │ ├── api_empty.svg │ │ ├── cURL.svg │ │ ├── chathistory.png │ │ ├── credential_empty.svg │ │ ├── embed.svg │ │ ├── flowise_logo.png │ │ ├── flowise_logo_dark.png │ │ ├── google-login-white.png │ │ ├── javascript.svg │ │ ├── langchain.png │ │ ├── langfuse.png │ │ ├── llmonitor.png │ │ ├── message_empty.svg │ │ ├── prompt_empty.svg │ │ ├── python.svg │ │ ├── robot.png │ │ ├── settings.svg │ │ ├── sharing.png │ │ ├── tools_empty.svg │ │ └── workflow_empty.svg │ └── scss │ │ ├── _themes-vars.module.scss │ │ └── style.scss ├── common │ ├── hooks │ │ └── useObservableState.ts │ └── utils.ts ├── components │ ├── AIcon │ │ └── index.tsx │ ├── Authorized │ │ ├── Authorized.tsx │ │ ├── AuthorizedRoute.tsx │ │ ├── CheckPermissions.tsx │ │ ├── PromiseRender.tsx │ │ ├── Secured.tsx │ │ ├── index.tsx │ │ └── renderAuthorize.ts │ ├── Footer │ │ └── index.tsx │ ├── HeaderDropdown │ │ ├── index.less │ │ └── index.tsx │ ├── HeaderSearch │ │ ├── index.less │ │ └── index.tsx │ ├── IconSelector │ │ ├── Category.tsx │ │ ├── CopyableIcon.tsx │ │ ├── IconPicSearcher.tsx │ │ ├── fields.ts │ │ ├── index.tsx │ │ ├── style.less │ │ └── themeIcons.tsx │ ├── NoticeIcon │ │ ├── NoticeIcon.tsx │ │ ├── NoticeList.less │ │ ├── NoticeList.tsx │ │ ├── index.less │ │ └── index.tsx │ ├── RightContent │ │ ├── AvatarDropdown.tsx │ │ ├── index.less │ │ └── index.tsx │ ├── WrapContent │ │ ├── index.less │ │ └── index.tsx │ ├── chat │ │ ├── DemoIndex.tsx │ │ ├── DemoPage.tsx │ │ ├── DemoSection.tsx │ │ ├── LangSwitcher.tsx │ │ └── index.ts │ ├── flow │ │ ├── key │ │ │ ├── cut.less │ │ │ ├── cut.tsx │ │ │ ├── item-name.tsx │ │ │ ├── keyword.less │ │ │ └── keyword.tsx │ │ ├── modal │ │ │ └── index.tsx │ │ └── rx-component │ │ │ └── rx-input.tsx │ ├── index.md │ └── socket │ │ └── index.tsx ├── constants │ ├── global.ts │ └── graph.ts ├── e2e │ └── baseLayout.e2e.spec.ts ├── fixMenuItemIcon.ts ├── global.less ├── global.tsx ├── hooks │ ├── useApi.js │ ├── useConfirm.js │ └── useScriptRef.js ├── layout │ ├── MainLayout │ │ ├── Header │ │ │ ├── ProfileSection │ │ │ │ ├── index.css │ │ │ │ └── index.js │ │ │ └── index.js │ │ ├── LogoSection │ │ │ └── index.js │ │ ├── Sidebar │ │ │ ├── MenuList │ │ │ │ ├── NavCollapse │ │ │ │ │ └── index.js │ │ │ │ ├── NavGroup │ │ │ │ │ └── index.js │ │ │ │ ├── NavItem │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ └── index.js │ │ └── index.js │ ├── MinimalLayout │ │ └── index.js │ ├── NavMotion.js │ └── NavigationScroll.js ├── locales │ ├── bn-BD.ts │ ├── bn-BD │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── en-US.ts │ ├── en-US │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── fa-IR.ts │ ├── fa-IR │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── id-ID.ts │ ├── id-ID │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── ja-JP.ts │ ├── ja-JP │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── pt-BR.ts │ ├── pt-BR │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── zh-CN.ts │ ├── zh-CN │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts │ ├── zh-TW.ts │ └── zh-TW │ │ ├── component.ts │ │ ├── globalHeader.ts │ │ ├── menu.ts │ │ ├── pages.ts │ │ ├── pwa.ts │ │ ├── settingDrawer.ts │ │ └── settings.ts ├── manifest.json ├── menu-items │ ├── dashboard.js │ ├── index.js │ └── settings.js ├── mock │ ├── algo.ts │ ├── graph.ts │ └── status.ts ├── navConfig.ts ├── requestErrorConfig.tsx ├── service-worker.js ├── services │ ├── ant-design-pro │ │ ├── api.ts │ │ ├── index.ts │ │ ├── login.ts │ │ └── typings.d.ts │ ├── api.ts │ ├── index.ts │ ├── login.ts │ ├── session.ts │ ├── swagger │ │ ├── index.ts │ │ ├── pet.ts │ │ ├── store.ts │ │ ├── typings.d.ts │ │ └── user.ts │ ├── typings.d.ts │ └── user.ts ├── store │ ├── actions.js │ ├── constant.js │ ├── context │ │ ├── ConfirmContext.js │ │ ├── ConfirmContextProvider.js │ │ └── ReactFlowContext.js │ ├── index.js │ ├── reducer.js │ └── reducers │ │ ├── canvasReducer.js │ │ ├── customizationReducer.js │ │ ├── dialogReducer.js │ │ └── notifierReducer.js ├── temp ├── typings.d.ts ├── ui-component │ ├── button │ │ ├── AnimateButton.js │ │ ├── FlowListMenu.js │ │ ├── StyledButton.js │ │ └── StyledFab.js │ ├── cards │ │ ├── ItemCard.js │ │ ├── MainCard.js │ │ └── Skeleton │ │ │ └── ChatflowCard.js │ ├── checkbox │ │ └── Checkbox.js │ ├── dialog │ │ ├── AboutDialog.js │ │ ├── AdditionalParamsDialog.js │ │ ├── AnalyseFlowDialog.js │ │ ├── ConfirmDialog.js │ │ ├── ExpandTextDialog.css │ │ ├── ExpandTextDialog.js │ │ ├── FormatPromptValuesDialog.js │ │ ├── LoginDialog.js │ │ ├── NodeInfoDialog.js │ │ ├── PromptLangsmithHubDialog.js │ │ ├── SaveChatflowDialog.js │ │ ├── SourceDocDialog.js │ │ ├── TagDialog.js │ │ └── ViewMessagesDialog.js │ ├── dropdown │ │ ├── AsyncDropdown.js │ │ ├── Dropdown.js │ │ └── MultiDropdown.js │ ├── editor │ │ ├── DarkCodeEditor.js │ │ ├── LightCodeEditor.js │ │ ├── prism-dark.css │ │ └── prism-light.css │ ├── extended │ │ ├── Avatar.js │ │ ├── Breadcrumbs.js │ │ ├── Logo.js │ │ └── Transitions.js │ ├── file │ │ └── File.js │ ├── grid │ │ ├── DataGrid.js │ │ └── Grid.js │ ├── input │ │ └── Input.js │ ├── json │ │ ├── JsonEditor.js │ │ └── SelectVariable.js │ ├── loading │ │ ├── BackdropLoader.js │ │ ├── Loadable.js │ │ └── Loader.js │ ├── markdown │ │ ├── CodeBlock.js │ │ └── MemoizedReactMarkdown.js │ ├── switch │ │ └── Switch.js │ └── table │ │ ├── FlowListTable.js │ │ └── Table.js └── utils │ ├── IconUtil.ts │ ├── config.js │ ├── const.ts │ ├── downloadfile.ts │ ├── genericHelper.js │ ├── index.ts │ ├── permission.ts │ ├── request.ts │ ├── toPascalCase.ts │ ├── token.ts │ ├── tools.ts │ ├── useNotifier.js │ ├── usePrompt.js │ └── utils.ts ├── temp ├── tests ├── run-tests.js └── setupTests.js ├── tsconfig.json ├── yarn ├── yarn-error.log └── yarn.lock /00-客户大模型呼叫中心测试-裁剪掉公司信息.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/00-客户大模型呼叫中心测试-裁剪掉公司信息.mp4 -------------------------------------------------------------------------------- /00-运营商电话助理测试-带字幕.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/00-运营商电话助理测试-带字幕.mp4 -------------------------------------------------------------------------------- /05-LLM Call Center.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/05-LLM Call Center.pptx -------------------------------------------------------------------------------- /05-大模型呼叫中心-自助解决问题-拓扑图.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/05-大模型呼叫中心-自助解决问题-拓扑图.pptx -------------------------------------------------------------------------------- /README_BN.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README_KL.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README_SI.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README_TR.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README_VI.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/action/Message.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.action; 2 | 3 | public class Message { 4 | private String msgType; 5 | private String msgText; 6 | public String getMsgType() { 7 | return msgType; 8 | } 9 | public void setMsgType(String msgType) { 10 | this.msgType = msgType; 11 | } 12 | public String getMsgText() { 13 | return msgText; 14 | } 15 | public void setMsgText(String msgText) { 16 | this.msgText = msgText; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/service/IBaseReportSevice.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.service; 2 | 3 | public interface IBaseReportSevice { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/service/IBaseService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.service; 2 | 3 | import java.io.Serializable; 4 | import java.util.List; 5 | 6 | public interface IBaseService { 7 | public T get(Class entityClass, Serializable id); 8 | 9 | public List getAll(Class entityClass); 10 | 11 | public void save(Object o); 12 | 13 | public void update(Object o); 14 | 15 | public Serializable add(Object o); 16 | 17 | public void delete(Object o); 18 | 19 | public void removeById(Class entityClass, Serializable id); 20 | } 21 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/BrowserClient.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils; 2 | 3 | public class BrowserClient { 4 | private String useragent ; 5 | private String os ; 6 | private String browser ; 7 | private String version ; 8 | private String osversion ; 9 | 10 | public String getUseragent() { 11 | return useragent; 12 | } 13 | public void setUseragent(String useragent) { 14 | this.useragent = useragent; 15 | } 16 | public String getOs() { 17 | return os; 18 | } 19 | public void setOs(String os) { 20 | this.os = os; 21 | } 22 | public String getBrowser() { 23 | return browser; 24 | } 25 | public void setBrowser(String browser) { 26 | this.browser = browser; 27 | } 28 | public String getVersion() { 29 | return version; 30 | } 31 | public void setVersion(String version) { 32 | this.version = version; 33 | } 34 | public String getOsversion() { 35 | return osversion; 36 | } 37 | public void setOsversion(String osversion) { 38 | this.osversion = osversion; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/disruptor/UserDataEventFactory.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils.disruptor; 2 | 3 | import com.lmax.disruptor.EventFactory; 4 | import com.sxx.jcc.common.utils.event.UserDataEvent; 5 | public class UserDataEventFactory implements EventFactory{ 6 | 7 | @Override 8 | public UserDataEvent newInstance() { 9 | return new UserDataEvent(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/disruptor/UserDataEventProducer.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils.disruptor; 2 | 3 | import com.lmax.disruptor.RingBuffer; 4 | import com.sxx.jcc.common.utils.event.UserDataEvent; 5 | import com.sxx.jcc.common.utils.event.UserEvent; 6 | 7 | public class UserDataEventProducer { 8 | private final RingBuffer ringBuffer; 9 | 10 | public UserDataEventProducer(RingBuffer ringBuffer) 11 | { 12 | this.ringBuffer = ringBuffer; 13 | } 14 | 15 | public void onData(UserEvent userEvent) 16 | { 17 | long id = ringBuffer.next(); // Grab the next sequence 18 | try{ 19 | UserDataEvent event = ringBuffer.get(id); 20 | event.setEvent(userEvent); 21 | }finally{ 22 | ringBuffer.publish(id); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/disruptor/multiupdate/MultiUpdateEventFactory.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils.disruptor.multiupdate; 2 | 3 | import com.lmax.disruptor.EventFactory; 4 | import com.sxx.jcc.common.utils.event.UserDataEvent; 5 | 6 | public class MultiUpdateEventFactory implements EventFactory{ 7 | 8 | @Override 9 | public UserDataEvent newInstance() { 10 | return new UserDataEvent(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/event/AiEvent.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils.event; 2 | 3 | public class AiEvent { 4 | private long id ; 5 | 6 | private UserEvent event ; 7 | 8 | public long getId() { 9 | return id; 10 | } 11 | 12 | public void setId(long id) { 13 | this.id = id; 14 | } 15 | 16 | public UserEvent getEvent() { 17 | return event; 18 | } 19 | 20 | public void setEvent(UserEvent event) { 21 | this.event = event; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/event/UserDataEvent.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils.event; 2 | 3 | public class UserDataEvent{ 4 | private long id ; 5 | 6 | private UserEvent event ; 7 | 8 | public long getId() { 9 | return id; 10 | } 11 | 12 | public void setId(long id) { 13 | this.id = id; 14 | } 15 | 16 | public UserEvent getEvent() { 17 | return event; 18 | } 19 | 20 | public void setEvent(UserEvent event) { 21 | this.event = event; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/common/src/com/sxx/jcc/common/utils/event/UserEvent.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.common.utils.event; 2 | 3 | public interface UserEvent extends java.io.Serializable { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/cache/CacheBean.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.cache; 2 | 3 | import java.util.Collection; 4 | import java.util.concurrent.locks.Lock; 5 | 6 | import com.hazelcast.internal.json.JsonObject; 7 | 8 | 9 | public interface CacheBean { 10 | /** 11 | * 12 | */ 13 | public void put(String key , Object value , String orgi) ; 14 | 15 | 16 | /** 17 | * 18 | * @param key 19 | * @param orgi 20 | * @return 21 | */ 22 | public Object getCacheObject(String key, String orgi) ; 23 | 24 | 25 | public CacheBean getCacheInstance(String cacheName); 26 | 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/cache/WoseqGen.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.cache; 2 | 3 | import org.apache.commons.lang3.StringUtils; 4 | 5 | public class WoseqGen { 6 | 7 | public static void main(String[] args) { 8 | String numStr= "20190821768909"; 9 | System.out.println(numStr.substring(8, numStr.length())); 10 | //System.out.println( StringUtils.leftPad(numStr+"", 6, '0')); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/chartReport/BaseChart.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.chartReport; 2 | 3 | public abstract class BaseChart { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/dao/hibernate/SimpleHibernateDao.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.dao.hibernate; 2 | 3 | import org.apache.log4j.Logger; 4 | import org.hibernate.SessionFactory; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 7 | 8 | 9 | public class SimpleHibernateDao extends HibernateDaoSupport { 10 | Logger logger = Logger.getLogger(SimpleHibernateDao.class.getName()); 11 | 12 | @Autowired 13 | public void setSuperSessionFactory(SessionFactory sessionFactory) { 14 | super.setSessionFactory(sessionFactory); 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/exception/AppBaseException.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.exception; 2 | 3 | public class AppBaseException extends BaseException { 4 | 5 | private static final long serialVersionUID = AppBaseException.class.hashCode(); 6 | 7 | public AppBaseException(){ 8 | super(); 9 | } 10 | 11 | public AppBaseException(int code, String message) { 12 | super(code, message); 13 | } 14 | 15 | public AppBaseException(String message) { 16 | super(message); 17 | } 18 | 19 | public AppBaseException(String message, Throwable cause) { 20 | super(message, cause); 21 | } 22 | 23 | public AppBaseException(Throwable cause) { 24 | super(cause); 25 | } 26 | 27 | public AppBaseException(int code, String message, Throwable cause) { 28 | super(code,message,cause); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/exception/LoginException.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.exception; 2 | 3 | public class LoginException extends AppBaseException{ 4 | 5 | private static final long serialVersionUID = LoginException.class.hashCode(); 6 | public LoginException(){ 7 | super(); 8 | } 9 | 10 | public LoginException(int code, String message) { 11 | super(code, message); 12 | } 13 | 14 | public LoginException(String message) { 15 | super(message); 16 | } 17 | 18 | public LoginException(String message, Throwable cause) { 19 | super(message, cause); 20 | } 21 | 22 | public LoginException(Throwable cause) { 23 | super(cause); 24 | } 25 | 26 | public LoginException(int code, String message, Throwable cause) { 27 | super(code,message,cause); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/exception/UnauthorizedException.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.exception; 2 | 3 | public class UnauthorizedException extends AppBaseException { 4 | private static final long serialVersionUID = UnauthorizedException.class.hashCode(); 5 | 6 | public UnauthorizedException() { 7 | super(); 8 | } 9 | 10 | public UnauthorizedException(int code, String message) { 11 | super(code, message); 12 | } 13 | 14 | public UnauthorizedException(String message) { 15 | super(message); 16 | } 17 | 18 | public UnauthorizedException(String message, Throwable cause) { 19 | super(message, cause); 20 | } 21 | 22 | public UnauthorizedException(Throwable cause) { 23 | super(cause); 24 | } 25 | 26 | public UnauthorizedException(int code, String message, Throwable cause) { 27 | super(code, message, cause); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/filter/Struts2Filter.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.filter; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.FilterChain; 5 | import javax.servlet.ServletException; 6 | import javax.servlet.ServletRequest; 7 | import javax.servlet.ServletResponse; 8 | import javax.servlet.http.HttpServletRequest; 9 | import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; 10 | 11 | 12 | public class Struts2Filter extends StrutsPrepareAndExecuteFilter { 13 | public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { 14 | HttpServletRequest request = (HttpServletRequest) req; 15 | // 不过滤的url 16 | String url = request.getRequestURI(); 17 | if (url.indexOf("imageUp.jsp") != -1 || url.indexOf("fileUp.jsp") != -1) { 18 | chain.doFilter(req, res); 19 | } else { 20 | // System.out.println("使用默认的过滤器"); 21 | super.doFilter(req, res, chain); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/intereptor/AuthorizationInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.intereptor; 2 | 3 | import com.opensymphony.xwork2.ActionInvocation; 4 | import com.opensymphony.xwork2.interceptor.Interceptor; 5 | 6 | public class AuthorizationInterceptor implements Interceptor{ 7 | private static final long serialVersionUID = AuthorizationInterceptor.class.hashCode(); 8 | 9 | public void destroy() { 10 | // TODO Auto-generated method stub 11 | 12 | } 13 | 14 | public void init() { 15 | // TODO Auto-generated method stub 16 | 17 | } 18 | 19 | public String intercept(ActionInvocation arg0) throws Exception { 20 | // TODO Auto-generated method stub 21 | return null; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/model/PageModel.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.model; 2 | 3 | 4 | import java.util.List; 5 | 6 | @SuppressWarnings("unchecked") 7 | public class PageModel { 8 | 9 | public static int pageItems = 100; 10 | 11 | private int total; 12 | 13 | private List datas; 14 | 15 | public int getTotal() { 16 | return total; 17 | } 18 | 19 | public void setTotal(int total) { 20 | this.total = total; 21 | } 22 | 23 | public List getDatas() { 24 | return datas; 25 | } 26 | 27 | public void setDatas(List datas) { 28 | this.datas = datas; 29 | } 30 | 31 | 32 | } -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/model/ReportBase.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.model; 2 | 3 | import java.io.Serializable; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.GeneratedValue; 7 | import javax.persistence.GenerationType; 8 | import javax.persistence.Id; 9 | import javax.persistence.MappedSuperclass; 10 | import javax.persistence.SequenceGenerator; 11 | 12 | @MappedSuperclass 13 | @SuppressWarnings("serial") 14 | public abstract class ReportBase implements Serializable, Cloneable{ 15 | @Id 16 | @SequenceGenerator(name = "OBJECT_ID", sequenceName = "OBJECT_ID", allocationSize = 1) 17 | @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="OBJECT_ID") 18 | @Column(name = "OBJECT_ID") 19 | private Long objectId; 20 | 21 | public Long getObjectId() { 22 | return objectId; 23 | } 24 | 25 | public void setObjectId(Long objectId) { 26 | this.objectId = objectId; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/server/message/AgentServiceMessage.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.server.message; 2 | 3 | import com.sxx.jcc.common.utils.XKTools; 4 | 5 | 6 | 7 | public class AgentServiceMessage extends Message{ 8 | /** 9 | * 10 | */ 11 | private static final long serialVersionUID = 3520656734252136303L; 12 | 13 | private String type ; 14 | private String id = XKTools.getUUID(); 15 | 16 | public String getType() { 17 | return type; 18 | } 19 | 20 | public void setType(String type) { 21 | this.type = type; 22 | } 23 | 24 | public String getId() { 25 | return id; 26 | } 27 | 28 | public void setId(String id) { 29 | this.id = id; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/server/message/AgentStatusMessage.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.server.message; 2 | 3 | import com.sxx.jcc.common.utils.XKTools; 4 | 5 | 6 | 7 | public class AgentStatusMessage extends Message{ 8 | /** 9 | * 10 | */ 11 | private static final long serialVersionUID = 3520656734252136303L; 12 | 13 | private String type ; 14 | private String id = XKTools.getUUID(); 15 | 16 | public String getType() { 17 | return type; 18 | } 19 | 20 | public void setType(String type) { 21 | this.type = type; 22 | } 23 | 24 | public String getId() { 25 | return id; 26 | } 27 | 28 | public void setId(String id) { 29 | this.id = id; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/server/message/ChatObject.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.server.message; 2 | 3 | public class ChatObject { 4 | private String userName; 5 | private String message; 6 | 7 | public ChatObject() { 8 | } 9 | 10 | public ChatObject(String userName, String message) { 11 | super(); 12 | this.userName = userName; 13 | this.message = message; 14 | } 15 | 16 | public String getUserName() { 17 | return userName; 18 | } 19 | 20 | public void setUserName(String userName) { 21 | this.userName = userName; 22 | } 23 | 24 | public String getMessage() { 25 | return message; 26 | } 27 | 28 | public void setMessage(String message) { 29 | this.message = message; 30 | } 31 | } -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/server/message/NewRequestMessage.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.server.message; 2 | 3 | import com.sxx.jcc.common.utils.XKTools; 4 | 5 | 6 | public class NewRequestMessage extends Message{ 7 | /** 8 | * 9 | */ 10 | private static final long serialVersionUID = 3520656734252136303L; 11 | private String id = XKTools.getUUID(); 12 | private String type ; 13 | private boolean noagent ; 14 | private int queueindex =0; 15 | 16 | public String getType() { 17 | return type; 18 | } 19 | 20 | public void setType(String type) { 21 | this.type = type; 22 | } 23 | 24 | public String getId() { 25 | return id; 26 | } 27 | 28 | public void setId(String id) { 29 | this.id = id; 30 | } 31 | 32 | public boolean isNoagent() { 33 | return noagent; 34 | } 35 | 36 | public void setNoagent(boolean noagent) { 37 | this.noagent = noagent; 38 | } 39 | 40 | public int getQueueindex() { 41 | return queueindex; 42 | } 43 | 44 | public void setQueueindex(int queueindex) { 45 | this.queueindex = queueindex; 46 | } 47 | 48 | 49 | } 50 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/server/message/SessionConfigItem.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.server.message; 2 | 3 | public class SessionConfigItem implements java.io.Serializable{ 4 | /** 5 | * 存放客服服务时间段 6 | */ 7 | private static final long serialVersionUID = 3520656734252136303L; 8 | 9 | private String workinghours ; 10 | private String type; 11 | private String worktype; 12 | public String getWorkinghours() { 13 | return workinghours; 14 | } 15 | public void setWorkinghours(String workinghours) { 16 | this.workinghours = workinghours; 17 | } 18 | public String getType() { 19 | return type; 20 | } 21 | public void setType(String type) { 22 | this.type = type; 23 | } 24 | public String getWorktype() { 25 | return worktype; 26 | } 27 | public void setWorktype(String worktype) { 28 | this.worktype = worktype; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/struts/ReportBaseAction.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.struts; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.opensymphony.xwork2.ModelDriven; 7 | import com.opensymphony.xwork2.Preparable; 8 | 9 | @SuppressWarnings("serial") 10 | public abstract class ReportBaseAction extends SimpleActionSupport implements 11 | ModelDriven, Preparable { 12 | private List resultList = new ArrayList(); 13 | @Override 14 | public String execute() throws Exception { 15 | into(); 16 | return SUCCESS; 17 | } 18 | 19 | public abstract String into() throws Exception; 20 | 21 | public abstract String show() throws Exception; 22 | 23 | public void prepare() throws Exception { 24 | } 25 | 26 | public void prepareShow() throws Exception { 27 | prepareModel(); 28 | } 29 | 30 | protected abstract void prepareModel() throws Exception; 31 | 32 | public List getResultList() { 33 | return resultList; 34 | } 35 | 36 | public void setResultList(List resultList) { 37 | this.resultList = resultList; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/taglib/model/HtmlColumn.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.taglib.model; 2 | 3 | public class HtmlColumn { 4 | private String column; 5 | private String title; 6 | private String width; 7 | private String link; 8 | private String dateFormate; 9 | 10 | public String getDateFormate() { 11 | return dateFormate; 12 | } 13 | 14 | public void setDateFormate(String dateFormate) { 15 | this.dateFormate = dateFormate; 16 | } 17 | 18 | public String getLink() { 19 | return link; 20 | } 21 | 22 | public void setLink(String link) { 23 | this.link = link; 24 | } 25 | 26 | public String getColumn() { 27 | return column; 28 | } 29 | 30 | public void setColumn(String column) { 31 | this.column = column; 32 | } 33 | 34 | public String getTitle() { 35 | return title; 36 | } 37 | 38 | public void setTitle(String title) { 39 | this.title = title; 40 | } 41 | 42 | public String getWidth() { 43 | return width; 44 | } 45 | 46 | public void setWidth(String width) { 47 | this.width = width; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/utils/Constant.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.utils; 2 | 3 | public class Constant { 4 | public static String PROP_MSG_KEY="propMsg"; 5 | public static String LOGIN_USER_KEY="loginUser"; 6 | public static String APP_EXCEPTION_MSG="appMsg"; 7 | public static int PAGE_SIZE_MAX=50000; 8 | public static String PRIVS_STRING = "privsString"; 9 | } 10 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/utils/tree/TreeCompare.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.utils.tree; 2 | 3 | import java.util.Comparator; 4 | 5 | public class TreeCompare implements Comparator { 6 | 7 | public int compare(Object o1, Object o2) { 8 | TreeNode node1 = (TreeNode) o1; 9 | TreeNode node2 = (TreeNode) o2; 10 | int result = node1.getId().compareTo(node2.getId()); 11 | return result; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/utils/tree/ZTreeCompare.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.utils.tree; 2 | 3 | import java.util.Comparator; 4 | 5 | public class ZTreeCompare implements Comparator { 6 | 7 | public int compare(Object o1, Object o2) { 8 | ZTreeNode node1 = (ZTreeNode) o1; 9 | ZTreeNode node2 = (ZTreeNode) o2; 10 | int result = node1.getDisporder() - node2.getDisporder(); 11 | return result; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/view/AbstractExportView.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.view; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.core.taglib.model.HtmlColumn; 6 | 7 | 8 | public abstract class AbstractExportView implements View { 9 | private String caption; 10 | private List items; 11 | private List columns; 12 | 13 | protected AbstractExportView(String caption, List items,List columns) { 14 | this.caption = caption; 15 | this.items = items; 16 | this.columns=columns; 17 | } 18 | 19 | public List getColumns() { 20 | return columns; 21 | } 22 | 23 | public void setColumns(List columns) { 24 | this.columns = columns; 25 | } 26 | 27 | public String getCaption() { 28 | return caption; 29 | } 30 | 31 | public void setCaption(String caption) { 32 | this.caption = caption; 33 | } 34 | 35 | public List getItems() { 36 | return items; 37 | } 38 | 39 | public void setItems(List items) { 40 | this.items = items; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/view/ExcelViewExporter.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.view; 2 | 3 | import javax.servlet.ServletOutputStream; 4 | import javax.servlet.http.HttpServletResponse; 5 | 6 | import org.apache.poi.hssf.usermodel.HSSFWorkbook; 7 | 8 | 9 | public class ExcelViewExporter extends AbstractViewExporter { 10 | 11 | public ExcelViewExporter(View view, HttpServletResponse response, 12 | String fileName) { 13 | super(view, response, fileName); 14 | } 15 | 16 | @Override 17 | public String getContextType() { 18 | return "application/vnd.ms-excel;charset=UTF-8"; 19 | } 20 | 21 | @Override 22 | public String getExtensionName() { 23 | return "xls"; 24 | } 25 | 26 | public void export() throws Exception { 27 | HttpServletResponse response = super.getResponse(); 28 | HSSFWorkbook workbook = (HSSFWorkbook) this.getView().render(); 29 | responseHeaders(response); 30 | ServletOutputStream out=response.getOutputStream(); 31 | workbook.write(out); 32 | out.flush(); 33 | out.close(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/view/View.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.view; 2 | 3 | public interface View { 4 | public String getCaption(); 5 | public Object render(); 6 | } 7 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/core/src/com/sxx/jcc/core/view/ViewExporter.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.core.view; 2 | 3 | 4 | public interface ViewExporter { 5 | public View getView(); 6 | 7 | public void setView(View view); 8 | 9 | public void export() throws Exception; 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/temp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/config/SessionConfigItem.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.config; 2 | 3 | public class SessionConfigItem implements java.io.Serializable{ 4 | /** 5 | * 存放客服服务时间段 6 | */ 7 | private static final long serialVersionUID = 3520656734252136303L; 8 | 9 | private String workinghours ; 10 | private String type; 11 | private String worktype; 12 | public String getWorkinghours() { 13 | return workinghours; 14 | } 15 | public void setWorkinghours(String workinghours) { 16 | this.workinghours = workinghours; 17 | } 18 | public String getType() { 19 | return type; 20 | } 21 | public void setType(String type) { 22 | this.type = type; 23 | } 24 | public String getWorktype() { 25 | return worktype; 26 | } 27 | public void setWorktype(String worktype) { 28 | this.worktype = worktype; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/pojo/MessageOutContent.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.pojo; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.core.server.message.OtherMessageItem; 6 | 7 | public class MessageOutContent extends MessageInContent{ 8 | /** 9 | * 10 | */ 11 | private static final long serialVersionUID = 1L; 12 | private List suggest = null ; 13 | 14 | public List getSuggest() { 15 | return suggest; 16 | } 17 | 18 | public void setSuggest(List suggest) { 19 | this.suggest = suggest; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/pojo/SocketIOMessage.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.pojo; 2 | 3 | public class SocketIOMessage { 4 | private String message; 5 | 6 | public String getMessage() { 7 | return message; 8 | } 9 | 10 | public void setMessage(String message) { 11 | this.message = message; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/queue/AgentStatusBusyOrgiFilterPredicate.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.queue; 2 | 3 | import java.util.Map; 4 | 5 | import org.apache.commons.lang.StringUtils; 6 | 7 | import com.hazelcast.query.Predicate; 8 | import com.sxx.jcc.webim.pojo.AgentStatus; 9 | 10 | public class AgentStatusBusyOrgiFilterPredicate implements Predicate { 11 | /** 12 | * 13 | */ 14 | private static final long serialVersionUID = 1236581634096258855L; 15 | private String orgi ; 16 | /** 17 | * 18 | */ 19 | public AgentStatusBusyOrgiFilterPredicate(String orgi){ 20 | this.orgi = orgi ; 21 | } 22 | public boolean apply(Map.Entry mapEntry) { 23 | return mapEntry.getValue()!=null && !StringUtils.isBlank(orgi) && orgi.equals(mapEntry.getValue().getOrgi()) && mapEntry.getValue().isBusy(); 24 | } 25 | } -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/queue/AgentStatusOrgiFilterPredicate.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.queue; 2 | 3 | import java.util.Map; 4 | 5 | import org.apache.commons.lang.StringUtils; 6 | 7 | import com.hazelcast.query.Predicate; 8 | import com.sxx.jcc.webim.pojo.AgentStatus; 9 | 10 | public class AgentStatusOrgiFilterPredicate implements Predicate { 11 | /** 12 | * 13 | */ 14 | private static final long serialVersionUID = 1236581634096258855L; 15 | private String orgi ; 16 | /** 17 | * 18 | */ 19 | public AgentStatusOrgiFilterPredicate(String orgi){ 20 | this.orgi = orgi ; 21 | } 22 | 23 | public boolean apply(Map.Entry mapEntry) { 24 | return mapEntry.getValue()!=null && !StringUtils.isBlank(orgi) && orgi.equals(mapEntry.getValue().getOrgi()); 25 | } 26 | } -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/queue/AgentUserOrgiFilterPredicate.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.queue; 2 | 3 | import java.util.Map; 4 | 5 | import org.apache.commons.lang.StringUtils; 6 | 7 | import com.hazelcast.query.Predicate; 8 | import com.sxx.jcc.system.pojo.AgentUser; 9 | /** 10 | * @author liuyonghong 11 | * 12 | */ 13 | public class AgentUserOrgiFilterPredicate implements Predicate { 14 | 15 | private static final long serialVersionUID = 1236581634096258855L; 16 | private String orgi; 17 | private String status; 18 | 19 | public AgentUserOrgiFilterPredicate() { 20 | } 21 | 22 | public AgentUserOrgiFilterPredicate(String orgi, String status) { 23 | this.orgi = orgi; 24 | this.status = status; 25 | } 26 | 27 | @Override 28 | public boolean apply(Map.Entry mapEntry) { 29 | return mapEntry.getValue()!=null && mapEntry.getValue().getStatus()!=null && !StringUtils.isBlank(orgi) && orgi.equals(mapEntry.getValue().getOrgi()) && mapEntry.getValue().getStatus()!=null && mapEntry.getValue().getStatus().equals(status); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/rpc/AgentTopicListener.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.rpc; 2 | 3 | import com.hazelcast.core.Message; 4 | import com.hazelcast.core.MessageListener; 5 | public class AgentTopicListener implements MessageListener{ 6 | @Override 7 | public void onMessage(Message message) { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/rpc/ClusterMember.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.rpc; 2 | 3 | import com.hazelcast.core.HazelcastInstance; 4 | import com.hazelcast.core.MemberAttributeEvent; 5 | import com.hazelcast.core.MembershipEvent; 6 | import com.hazelcast.core.MembershipListener; 7 | import com.sxx.jcc.common.utils.XKTools; 8 | 9 | public class ClusterMember implements MembershipListener{ 10 | 11 | private HazelcastInstance hazelcastInstance ; 12 | 13 | public ClusterMember(HazelcastInstance hazelcastInstance) { 14 | this.hazelcastInstance = hazelcastInstance ; 15 | } 16 | @Override 17 | public void memberAdded(MembershipEvent membershipEvent) { 18 | XKTools.voteMaster(hazelcastInstance); 19 | } 20 | 21 | @Override 22 | public void memberRemoved(MembershipEvent membershipEvent) { 23 | XKTools.voteMaster(hazelcastInstance); 24 | } 25 | 26 | @Override 27 | public void memberAttributeChanged(MemberAttributeEvent memberAttributeEvent) { 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/rpc/IMTopicListener.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.rpc; 2 | 3 | import com.hazelcast.core.Message; 4 | import com.hazelcast.core.MessageListener; 5 | 6 | public class IMTopicListener implements MessageListener{ 7 | @Override 8 | public void onMessage(Message message) { 9 | RPCDataBean rpcDataBean = (RPCDataBean) message.getMessageObject() ; 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IAgentReportService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import com.sxx.jcc.common.service.IBaseService; 4 | 5 | public interface IAgentReportService extends IBaseService{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IAgentStatusService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.webim.pojo.AgentStatus; 7 | 8 | public interface IAgentStatusService extends IBaseService{ 9 | public List findByAgentnoAndOrgi(String wcode); 10 | public int countByAgentnoAndStatusAndOrgi(Long staffId, String agentUserStatus); 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IAgentUserTaskService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.webim.pojo.AgentUserTask; 7 | 8 | public interface IAgentUserTaskService extends IBaseService{ 9 | public List findAgentUserId(String agentUserid); 10 | public AgentUserTask getAgentUserTask(String agentUserid); 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IChatMessageService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.webim.pojo.ChatMessage; 7 | 8 | public interface IChatMessageService extends IBaseService{ 9 | List findChatMessageList(String userid,String rownum); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IQuickReplyService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.webim.pojo.QuickReply; 7 | 8 | public interface IQuickReplyService extends IBaseService{ 9 | public List findByOrgiAndCreater(Long userId); 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IQuickTypeService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.webim.pojo.QuickType; 7 | 8 | public interface IQuickTypeService extends IBaseService{ 9 | public List findByOrgiAndQuicktype(String quickType); 10 | public List findByOrgiAndQuicktypeAndCreater(String quickType,Long staffId); 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/ISummaryService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import com.sxx.jcc.common.service.IBaseService; 4 | 5 | public interface ISummaryService extends IBaseService{ 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/ISysAgentUserService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.core.dao.hibernate.Page; 7 | import com.sxx.jcc.system.pojo.AgentUser; 8 | 9 | public interface ISysAgentUserService extends IBaseService{ 10 | public AgentUser findAgentUserById(String id); 11 | public AgentUser findAgentUserByuserId(String userid); 12 | public List findByAgentnoAndStatusAndOrgi(String wcode,String agentUserStatus); 13 | public Page findAgentUsersPage(String startdate,String enddate,Page page) ; 14 | } 15 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/IWorkMonitorService.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service; 2 | 3 | import java.util.List; 4 | 5 | import com.sxx.jcc.common.service.IBaseService; 6 | import com.sxx.jcc.webim.pojo.WorkMonitor; 7 | 8 | public interface IWorkMonitorService extends IBaseService{ 9 | public int countByAgentAndDatestrAndStatusAndOrgi(String wcode, String date, String agentStatusEnum, String orgi); 10 | List findByOrgiAndAgentAndDatestrAndFirsttime(String orgi , String wcode , String date); 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/impl/AgentReportServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service.impl; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | import com.sxx.jcc.common.service.BaseService; 6 | import com.sxx.jcc.webim.service.IAgentReportService; 7 | 8 | @Service 9 | public class AgentReportServiceImpl extends BaseService implements IAgentReportService{ 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/impl/AgentUserTaskServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service.impl; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import org.springframework.stereotype.Service; 7 | 8 | import com.sxx.jcc.common.service.BaseService; 9 | import com.sxx.jcc.webim.pojo.AgentUserTask; 10 | import com.sxx.jcc.webim.service.IAgentUserTaskService; 11 | 12 | @Service 13 | public class AgentUserTaskServiceImpl extends BaseService implements IAgentUserTaskService{ 14 | 15 | @Override 16 | public List findAgentUserId(String agentUserid) { 17 | // TODO Auto-generated method stub 18 | return null; 19 | } 20 | 21 | @Override 22 | public AgentUserTask getAgentUserTask(String agentUserid) { 23 | try{ 24 | String sql =" select * from xk_agentuser where id =?"; 25 | List paramList = new ArrayList(); 26 | paramList.add(agentUserid); 27 | return this.queryForObject(sql, AgentUserTask.class, paramList.toArray()); 28 | }catch(Exception e){ 29 | return null; 30 | } 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/impl/QuickReplyServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service.impl; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | import com.sxx.jcc.common.service.BaseService; 8 | import com.sxx.jcc.webim.pojo.QuickReply; 9 | import com.sxx.jcc.webim.service.IQuickReplyService; 10 | @Service 11 | public class QuickReplyServiceImpl extends BaseService implements IQuickReplyService{ 12 | 13 | @Override 14 | public List findByOrgiAndCreater(Long userId) { 15 | // TODO Auto-generated method stub 16 | return null; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/impl/QuickTypeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service.impl; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | import com.sxx.jcc.common.service.BaseService; 8 | import com.sxx.jcc.webim.pojo.QuickType; 9 | import com.sxx.jcc.webim.service.IQuickTypeService; 10 | @Service 11 | public class QuickTypeServiceImpl extends BaseService implements IQuickTypeService{ 12 | 13 | @Override 14 | public List findByOrgiAndQuicktype(String quickType) { 15 | // TODO Auto-generated method stub 16 | return null; 17 | } 18 | 19 | @Override 20 | public List findByOrgiAndQuicktypeAndCreater(String quickType, Long staffId) { 21 | // TODO Auto-generated method stub 22 | return null; 23 | } 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/impl/SummaryServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service.impl; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | import com.sxx.jcc.common.service.BaseService; 6 | import com.sxx.jcc.webim.service.ISummaryService; 7 | @Service 8 | public class SummaryServiceImpl extends BaseService implements ISummaryService{ 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/service/impl/WorkMonitorServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.service.impl; 2 | 3 | import java.util.List; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | import com.sxx.jcc.common.service.BaseService; 8 | import com.sxx.jcc.webim.pojo.WorkMonitor; 9 | import com.sxx.jcc.webim.service.IWorkMonitorService; 10 | @Service 11 | public class WorkMonitorServiceImpl extends BaseService implements IWorkMonitorService{ 12 | 13 | @Override 14 | public int countByAgentAndDatestrAndStatusAndOrgi(String wcode, String date, String agentStatusEnum, String orgi) { 15 | // TODO Auto-generated method stub 16 | return 0; 17 | } 18 | 19 | @Override 20 | public List findByOrgiAndAgentAndDatestrAndFirsttime(String orgi, String wcode, String date) { 21 | // TODO Auto-generated method stub 22 | return null; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/NettyAgentClient.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util; 2 | 3 | /** 4 | * 坐席端 5 | * @author iceworld 6 | * 7 | */ 8 | public class NettyAgentClient extends NettyClient{ 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/NettyCallCenterClient.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util; 2 | 3 | /** 4 | * 呼叫中心登录坐席 5 | * @author iceworld 6 | * 7 | */ 8 | public class NettyCallCenterClient extends NettyClient{ 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/NettyIMClient.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util; 2 | 3 | /** 4 | * 访客端 5 | * @author iceworld 6 | * 7 | */ 8 | public class NettyIMClient extends NettyClient{ 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/router/OutMessageRouter.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util.router; 2 | 3 | import com.sxx.jcc.webim.pojo.MessageOutContent; 4 | 5 | public interface OutMessageRouter { 6 | 7 | public void handler(String touser, String msgtype , String appid , MessageOutContent outMessage) ; 8 | } 9 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/router/Router.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util.router; 2 | 3 | import com.sxx.jcc.webim.pojo.MessageDataBean; 4 | 5 | 6 | public abstract class Router { 7 | 8 | public abstract MessageDataBean handler(MessageDataBean message) ; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/router/RouterHelper.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util.router; 2 | 3 | public class RouterHelper { 4 | private static Router router = new MessageRouter(); 5 | 6 | public static Router getRouteInstance(){ 7 | return router ; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Sample online customer service to manual backend code/webim/src/com/sxx/jcc/webim/util/router/WebIMOutMessageRouter.java: -------------------------------------------------------------------------------- 1 | package com.sxx.jcc.webim.util.router; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.stereotype.Component; 5 | 6 | import com.sxx.jcc.webim.pojo.MessageOutContent; 7 | import com.sxx.jcc.webim.util.NettyClients; 8 | 9 | @Component 10 | public class WebIMOutMessageRouter implements OutMessageRouter{ 11 | 12 | @Bean(name="webim") 13 | public WebIMOutMessageRouter initWebIMessageRouter(){ 14 | return new WebIMOutMessageRouter() ; 15 | } 16 | @Override 17 | public void handler(String touser, String msgtype, String appid, 18 | MessageOutContent outMessage) { 19 | NettyClients.getInstance().sendIMEventMessage(touser, msgtype, outMessage); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /ui/WorkOrder/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Alipay.inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/1576.f5026d9a.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[1576],{41576:function(o,n,t){t.r(n),t.d(n,{default:function(){return E}});var O=t(67294),u=t(9459),s=t(85893);function E(){var e=(0,u.useOutletContext)();return(0,s.jsx)(u.Outlet,{context:e})}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/CNAME: -------------------------------------------------------------------------------- 1 | preview.pro.ant.design -------------------------------------------------------------------------------- /ui/WorkOrder/console/favicon-pro.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/favicon-pro.ico -------------------------------------------------------------------------------- /ui/WorkOrder/console/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/favicon.ico -------------------------------------------------------------------------------- /ui/WorkOrder/console/gsd-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/gsd-logo.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/icons/icon-128x128.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/icons/icon-192x192.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/icons/icon-512x512.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/logo.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__404.422cb932.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2571],{47680:function(E,n,t){t.r(n);var a=t(9459),o=t(6129),_=t(71577),i=t(67294),s=t(85893),u=function(){return(0,s.jsx)(o.ZP,{status:"404",title:"404",subTitle:"Sorry, the page you visited does not exist.",extra:(0,s.jsx)(_.Z,{type:"primary",onClick:function(){return a.history.push("/")},children:"Back Home"})})};n.default=u}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__User__register-result__index.28ee0439.chunk.css: -------------------------------------------------------------------------------- 1 | .registerResult___ArCX7{width:800px;min-height:400px;margin:auto;padding:80px;background:none}.registerResult___ArCX7 .anticon{font-size:64px}.registerResult___ArCX7 .title___Rkm5b{margin-top:32px;font-size:20px;line-height:28px}.registerResult___ArCX7 .actions___fPIfc{margin-top:40px}.registerResult___ArCX7 .actions___fPIfc a+a{margin-left:8px} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__User__register__index.a1cb2cb5.chunk.css: -------------------------------------------------------------------------------- 1 | .main___t_qDh{width:368px;margin:0 auto}.main___t_qDh h3{margin-bottom:20px;font-size:16px}.main___t_qDh .password___msZpo{margin-bottom:24px}.main___t_qDh .password___msZpo .ant-form-item-explain{display:none}.main___t_qDh .getCaptcha___xo9tg{display:block;width:100%}.main___t_qDh .submit___BwUua{width:50%}.main___t_qDh .login___MAxRH{float:right;line-height:40px}.success___rk5CE,.warning___waKBN,.error___e6iWb{transition:color .3s}.success___rk5CE{color:#52c41a}.warning___waKBN{color:#faad14}.error___e6iWb{color:#ff4d4f}.progress-pass___WePal>.progress___pafrf .ant-progress-bg{background-color:#faad14} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__dashboard__monitor__index.f9338dbe.chunk.css: -------------------------------------------------------------------------------- 1 | .activeChart___tBBHH{position:relative}.activeChartGrid___g4J8b p{position:absolute;top:80px}.activeChartGrid___g4J8b p:last-child{top:115px}.activeChartLegend___nSKMh{position:relative;height:20px;margin-top:8px;font-size:0;line-height:20px}.activeChartLegend___nSKMh span{display:inline-block;width:33.33%;font-size:12px;text-align:center}.activeChartLegend___nSKMh span:first-child{text-align:left}.activeChartLegend___nSKMh span:last-child{text-align:right}.dashedLine___p9W5N{position:relative;top:-70px;left:-3px;height:1px}.dashedLine___p9W5N .line___mvdMI{position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(to right,transparent 50%,#e9e9e9 50%);background-size:6px}.dashedLine___p9W5N:last-child{top:-36px}.mapChart___WUTKK{height:452px;padding-top:24px}.mapChart___WUTKK img{display:inline-block;max-width:100%;max-height:437px}.pieCard___xv_4_ .pie-stat{font-size:24px!important}@media screen and (max-width: 992px){.mapChart___WUTKK{height:auto}} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__flow__test__index.bb6d8c38.chunk.css: -------------------------------------------------------------------------------- 1 | .canvas-toolbar-basic{position:relative;border:1px solid #d9d9d9}.canvas-toolbar-basic .__dumi-default-previewer-demo{padding:16px 12px}.canvas-toolbar-basic .xflow-workspace{min-height:290px;box-shadow:0 0 10px 1px #e9e9e9}.canvas-toolbar-basic .xflow-x6-canvas{background:#f9f9f9}.canvas-toolbar-basic .xflow-canvas-root{margin:0}.canvas-toolbar-basic .react-node{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:600;background-color:#fff;border:1px solid #873bf4;border-radius:4px}.canvas-toolbar-basic .react-node:hover{background-color:#eadbff!important}.canvas-toolbar-basic .x6-node-selected .react-node{background-color:#fefeff;border:3px solid #873bf4;box-shadow:0 0 3px 3px #873bf433}.canvas-toolbar-basic .x6-node-selected .react-node:hover{background-color:#e3f4ff73} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__monitor__cacheList__index.ea6c07b7.chunk.css: -------------------------------------------------------------------------------- 1 | .card___dbPny{margin-bottom:12px}.miniChart___trsDV{position:relative;width:100%}.miniChart___trsDV .chartContent___O3BCE{position:absolute;bottom:-28px;width:100%}.miniChart___trsDV .chartContent___O3BCE>div{margin:0 -5px;overflow:hidden}.miniChart___trsDV .chartLoading___rjuy3{position:absolute;top:16px;left:50%;margin-left:-7px} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__monitor__cache__index.2c16124e.chunk.css: -------------------------------------------------------------------------------- 1 | .card____mwqo{margin-bottom:12px}.miniChart___szc0V{position:relative;width:100%}.miniChart___szc0V .chartContent___D486p{position:absolute;bottom:-28px;width:100%}.miniChart___szc0V .chartContent___D486p>div{margin:0 -5px;overflow:hidden}.miniChart___szc0V .chartLoading___PtRUz{position:absolute;top:16px;left:50%;margin-left:-7px}.miniChart___Kkik7{position:relative;width:100%}.miniChart___Kkik7 .chartContent___BysqS{position:absolute;bottom:-28px;width:100%}.miniChart___Kkik7 .chartContent___BysqS>div{margin:0 -5px;overflow:hidden}.miniChart___Kkik7 .chartLoading___L47av{position:absolute;top:16px;left:50%;margin-left:-7px} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__monitor__druid__index.8473113e.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3130],{94912:function(a,n,e){e.r(n);var r=e(67294),d=e(85893),i=function(){return(0,r.useEffect)(function(){var t=document.getElementById("bdIframe");if(t){var u=document.documentElement.clientWidth,c=document.documentElement.clientHeight;t.style.width="".concat(Number(u)-220,"px"),t.style.height="".concat(Number(c)-120,"px")}}),(0,d.jsx)("iframe",{style:{width:"100%",border:"0px",height:"100%"},scrolling:"yes",src:"/api/druid/login.html",id:"bdIframe"})};n.default=i}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__monitor__server__index.bc132933.chunk.css: -------------------------------------------------------------------------------- 1 | .card___dIDRQ{margin-bottom:12px} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/p__tool__swagger__index.2d989e1d.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5700],{51077:function(u,n,e){e.r(n);var i=e(67294),c=e(85893),r=function(){return(0,i.useEffect)(function(){var t=document.getElementById("bdIframe");if(t){var a=document.documentElement.clientWidth,d=document.documentElement.clientHeight;t.style.width="".concat(Number(a)-220,"px"),t.style.height="".concat(Number(d)-120,"px")}}),(0,c.jsx)("div",{style:{marginTop:"38px"},children:(0,c.jsx)("iframe",{style:{width:"100%",border:"0px",height:"100%"},scrolling:"yes",src:"/api/swagger-ui/index.html",id:"bdIframe"})})};n.default=r}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/pro_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_actionscript.0c03b575.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3971],{18113:function(t){t.exports=a,a.displayName="actionscript",a.aliases=[];function a(e){e.languages.actionscript=e.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),e.languages.actionscript["class-name"].alias="function",e.languages.markup&&e.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:e.languages.markup}}})}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_ada.ca5ed12a.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6084],{28839:function(a){a.exports=e,e.displayName="ada",e.aliases=[];function e(t){t.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/i,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/i,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:true|false)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:[_a-z\d])*\b/i}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_apl.bfa048fb.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6670],{97726:function(t){t.exports=a,a.displayName="apl",a.aliases=[];function a(n){n.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:\d*\.?\d+(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_arff.bc5fc3c3.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[1438],{15472:function(n){n.exports=e,e.displayName="arff",e.aliases=[];function e(a){a.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_asm6502.2ee7f680.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5696],{81114:function(s){s.exports=a,a.displayName="asm6502",a.aliases=[];function a(e){e.languages.asm6502={comment:/;.*/,directive:{pattern:/\.\w+(?= )/,alias:"keyword"},string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,opcode:{pattern:/\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\b/,alias:"property"},hexnumber:{pattern:/#?\$[\da-f]{2,4}/i,alias:"string"},binarynumber:{pattern:/#?%[01]+/,alias:"string"},decimalnumber:{pattern:/#?\d+/,alias:"string"},register:{pattern:/\b[xya]\b/i,alias:"variable"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_autoit.e23241f9.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8333],{62567:function(t){t.exports=e,e.displayName="autoit",e.aliases=[];function e(n){n.languages.autoit={comment:[/;.*/,{pattern:/(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^\s*)#\w+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:True|False)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,punctuation:/[\[\]().,:]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_brainfuck.447e9df5.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5539],{6217:function(a){a.exports=e,e.displayName="brainfuck",e.aliases=[];function e(n){n.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_clike.7a3882b8.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[131],{99875:function(n){n.exports=e,e.displayName="clike",e.aliases=[];function e(t){t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_csp.f1ecc9e5.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5299],{69847:function(s){s.exports=e,e.displayName="csp",e.aliases=[];function e(a){a.languages.csp={directive:{pattern:/\b(?:(?:base-uri|form-action|frame-ancestors|plugin-types|referrer|reflected-xss|report-to|report-uri|require-sri-for|sandbox) |(?:block-all-mixed-content|disown-opener|upgrade-insecure-requests)(?: |;)|(?:child|connect|default|font|frame|img|manifest|media|object|script|style|worker)-src )/i,alias:"keyword"},safe:{pattern:/'(?:self|none|strict-dynamic|(?:nonce-|sha(?:256|384|512)-)[a-zA-Z\d+=/]+)'/,alias:"selector"},unsafe:{pattern:/(?:'unsafe-inline'|'unsafe-eval'|'unsafe-hashed-attributes'|\*)/,alias:"function"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_css.d07363b7.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5008],{94299:function(a){a.exports=t,t.displayName="css",t.aliases=[];function t(i){(function(s){var n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/@[\w-]+/}},url:{pattern:RegExp("url\\((?:"+n.source+`|[^ 2 | \r()]*)\\)`,"i"),inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp(`[^{}\\s](?:[^{};"']|`+n.source+")*?(?=\\s*\\{)"),string:{pattern:n,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var e=s.languages.markup;e&&(e.tag.addInlined("style","css"),s.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:e.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:s.languages.css}},alias:"language-css"}},e.tag))})(i)}}}]); 3 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_dart.96353f07.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[7769],{82860:function(a){a.exports=e,e.displayName="dart",e.aliases=[];function e(t){t.languages.dart=t.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),t.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}})}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_diff.23e79d76.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6247],{32443:function(s){s.exports=f,f.displayName="diff",f.aliases=[];function f(d){(function(i){i.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d+.*$/m]};var a={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(a).forEach(function(e){var t=a[e],n=[];/^\w+$/.test(e)||n.push(/\w+/.exec(e)[0]),e==="diff"&&n.push("bold"),i.languages.diff[e]={pattern:RegExp("^(?:["+t+`].*(?:\r 2 | ?| 3 | |(?![\\s\\S])))+`,"m"),alias:n}}),Object.defineProperty(i.languages.diff,"PREFIXES",{value:a})})(d)}}}]); 4 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_docker.f1bbe9da.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2051],{4009:function(a){a.exports=e,e.displayName="docker",e.aliases=["dockerfile"];function e(n){n.languages.docker={keyword:{pattern:/(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im,lookbehind:!0},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,comment:/#.*/,punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/},n.languages.dockerfile=n.languages.docker}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_eiffel.0ae65090.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2182],{17046:function(r){r.exports=e,e.displayName="eiffel",e.aliases=[];function e(a){a.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%\s+%|%.|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:True|False)\b/i,"class-name":{pattern:/\b[A-Z][\dA-Z_]*\b/,alias:"builtin"},number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_erlang.bb25901a.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2013],{73137:function(n){n.exports=e,e.displayName="erlang",e.aliases=[];function e(a){a.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:true|false)\b/,keyword:/\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,number:[/\$\\?./,/\d+#[a-z0-9]+/i,/(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_flow.581dfe80.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[9742],{5745:function(n){n.exports=a,a.displayName="flow",a.aliases=[];function a(t){(function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})})(t)}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_gedcom.4d605f72.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5867],{14995:function(a){a.exports=e,e.displayName="gedcom",e.aliases=[];function e(n){n.languages.gedcom={"line-value":{pattern:/(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ +).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^\s*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_git.05c12380.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2564],{85735:function(t){t.exports=e,e.displayName="git",e.aliases=[];function e(m){m.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_go.05dc14ce.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6626],{35910:function(n){n.exports=e,e.displayName="go",e.aliases=[];function e(a){a.languages.go=a.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete a.languages.go["class-name"]}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_graphql.9b123fdf.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8921],{78233:function(n){n.exports=e,e.displayName="graphql",e.aliases=[];function e(a){a.languages.graphql={comment:/#.*/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+)[a-zA-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:enum|fragment|implements|input|interface|mutation|on|query|scalar|schema|type|union)\b/,operator:/[!=|]|\.{3}/,punctuation:/[!(){}\[\]:=,]/,constant:/\b(?!ID\b)[A-Z][A-Z_\d]*\b/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_hpkp.f8ffb0f0.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6749],{23478:function(e){e.exports=a,a.displayName="hpkp",a.aliases=[];function a(s){s.languages.hpkp={directive:{pattern:/\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=/]+"|(?:max-age|report-uri)=|report-to )/,alias:"keyword"},safe:{pattern:/\d{7,}/,alias:"selector"},unsafe:{pattern:/\d{1,6}/,alias:"function"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_hsts.17da7285.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3140],{92080:function(s){s.exports=a,a.displayName="hsts",a.aliases=[];function a(e){e.languages.hsts={directive:{pattern:/\b(?:max-age=|includeSubDomains|preload)/,alias:"keyword"},safe:{pattern:/\d{8,}/,alias:"selector"},unsafe:{pattern:/\d{1,7}/,alias:"function"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_ichigojam.8f30fbb6.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5056],{75075:function(N){N.exports=E,E.displayName="ichigojam",E.aliases=[];function E(R){R.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@[^\s]+)/i,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_icon.caaadad6.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2413],{14892:function(t){t.exports=e,e.displayName="icon",e.aliases=[];function e(n){n.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_ini.ba7d28d4.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6495],{1132:function(t){t.exports=n,n.displayName="ini",n.aliases=[];function n(e){e.languages.ini={comment:/^[ \t]*[;#].*$/m,selector:/^[ \t]*\[.*?\]/m,constant:/^[ \t]*[^\s=]+?(?=[ \t]*=)/m,"attr-value":{pattern:/=.*/,inside:{punctuation:/^[=]/}}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_j.c2b14f03.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[4701],{27377:function(a){a.exports=e,e.displayName="j",e.aliases=[];function e(n){n.languages.j={comment:/\bNB\..*/,string:{pattern:/'(?:''|[^'\r\n])*'/,greedy:!0},keyword:/\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_json.ed7b0db9.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3657],{15915:function(n){n.exports=e,e.displayName="json",e.aliases=[];function e(t){t.languages.json={property:{pattern:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,number:/-?\d+\.?\d*(e[+-]?\d+)?/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_julia.9ec867b2.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5508],{30931:function(t){t.exports=e,e.displayName="julia",e.aliases=[];function e(n){n.languages.julia={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2/,keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?/i,operator:/[-+*^%÷&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/,punctuation:/[{}[\];(),.:]/,constant:/\b(?:(?:NaN|Inf)(?:16|32|64)?)\b/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_keyman.8cfa8d9c.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3819],{447:function(a){a.exports=e,e.displayName="keyman",e.aliases=[];function e(s){s.languages.keyman={comment:/\bc\s.*/i,function:/\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,string:/("|').*?\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_less.9cf7051b.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5951],{37831:function(n){n.exports=e,e.displayName="less",e.aliases=[];function e(s){s.languages.less=s.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),s.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}})}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_liquid.e4bfb384.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[1323],{38600:function(n){n.exports=e,e.displayName="liquid",e.aliases=[];function e(t){t.languages.liquid={keyword:/\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0},function:{pattern:/(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/,lookbehind:!0}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_lua.9aebec04.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8119],{90800:function(n){n.exports=e,e.displayName="lua",e.aliases=[];function e(t){t.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_makefile.062f365d.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[7576],{61863:function(i){i.exports=e,e.displayName="makefile",e.aliases=[];function e(n){n.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_matlab.f90b5e7e.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8404],{83040:function(n){n.exports=e,e.displayName="matlab",e.aliases=[];function e(t){t.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+\.?\d*|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_monkey.fc01c5c1.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8513],{41753:function(t){t.exports=e,e.displayName="monkey",e.aliases=[];function e(n){n.languages.monkey={string:/"[^"\r\n]*"/,comment:[{pattern:/^#Rem\s+[\s\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},function:/\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_n4js.8d7164b2.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5014],{23796:function(t){t.exports=n,n.displayName="n4js",n.aliases=[];function n(e){e.languages.n4js=e.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),e.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),e.languages.n4jsd=e.languages.n4js}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_nasm.7ba5c19a.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[7253],{57159:function(e){e.exports=a,a.displayName="nasm",a.aliases=[];function a(d){d.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-zA-Z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_ocaml.ce7ed371.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8992],{88315:function(t){t.exports=e,e.displayName="ocaml",e.aliases=[];function e(n){n.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`]\w*/,alias:"variable"},directive:{pattern:/\B#\w+/,alias:"function"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_oz.8e532df1.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[7658],{13645:function(a){a.exports=e,e.displayName="oz",e.aliases=[];function e(t){t.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_parigp.1409fdab.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[9979],{63226:function(n){n.exports=r,r.displayName="parigp",r.aliases=[];function r(o){o.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:function(){var e=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return e=e.map(function(t){return t.split("").join(" *")}).join("|"),RegExp("\\b(?:"+e+")\\b")}(),function:/\w[\w ]*?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *[+-]? *\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_processing.8e884432.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[9770],{72994:function(n){n.exports=a,a.displayName="processing",a.aliases=[];function a(e){e.languages.processing=e.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),e.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\w*)\b/,alias:"variable"}}),e.languages.processing.function.pattern=/\w+(?=\s*\()/,e.languages.processing["class-name"].alias="variable"}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_prolog.5003c17d.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[4045],{66471:function(e){e.exports=n,n.displayName="prolog",n.aliases=[];function n(o){o.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+\.?\d*/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_properties.5fdd890a.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[81],{99081:function(t){t.exports=e,e.displayName="properties",e.aliases=[];function e(n){n.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[=:] *| )/m,punctuation:/[=:]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_protobuf.c35c3c5f.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[979],{17269:function(n){n.exports=e,e.displayName="protobuf",e.aliases=[];function e(t){(function(a){var s=/\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\b/;a.languages.protobuf=a.languages.extend("clike",{"class-name":{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|service|syntax|to)\b/}),a.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[A-Za-z_]\w*\s*[=;])/,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:s}},builtin:s,"positional-class-name":{pattern:/(?:\b|\B\.)[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s+[A-Za-z_]\w*\s*[=;])/,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[A-Za-z_]\w*(?=\s*=)/,lookbehind:!0}})})(t)}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_r.43540998.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[7882],{95275:function(r){r.exports=e,e.displayName="r",e.aliases=[];function e(n){n.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+\.?\d*|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_reason.7951b6c5.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8811],{34230:function(a){a.exports=n,n.displayName="reason",n.aliases=[];function n(e){e.languages.reason=e.languages.extend("clike",{comment:{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),e.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete e.languages.reason.function}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_rip.fcd46bb4.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[1768],{69730:function(t){t.exports=e,e.displayName="rip",e.aliases=[];function e(r){r.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},number:/[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_roboconf.b7caee90.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3236],{24996:function(a){a.exports=t,t.displayName="roboconf",t.aliases=[];function t(e){e.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*)[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_sas.fc29ee49.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8067],{80853:function(e){e.exports=t,t.displayName="sas",t.aliases=[];function t(n){n.languages.sas={datalines:{pattern:/^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,alias:"string",inside:{keyword:{pattern:/^(\s*)(?:(?:data)?lines|cards)/i,lookbehind:!0},punctuation:/;/}},comment:[{pattern:/(^\s*|;\s*)\*.*;/m,lookbehind:!0},/\/\*[\s\S]+?\*\//],datetime:{pattern:/'[^']+'(?:dt?|t)\b/i,alias:"number"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},keyword:/\b(?:data|else|format|if|input|proc\s\w+|quit|run|then|libname|set|output|options)\b/i,number:/\b(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,punctuation:/[$%@.(){}\[\];,\\]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_scheme.3a756bf6.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[5085],{78738:function(t){t.exports=e,e.displayName="scheme",e.aliases=[];function e(a){a.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"|'[^()#'\s]+/,greedy:!0},character:{pattern:/#\\(?:[ux][a-fA-F\d]+|[a-zA-Z]+|\S)/,alias:"string"},keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)(?=[()\s])/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)(?=[()\s])/,lookbehind:!0},number:{pattern:/([\s()])[-+]?(?:\d+\/\d+|\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?)\b/,lookbehind:!0},boolean:/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)(?=\s|$)/,lookbehind:!0},function:{pattern:/(\()[^()'\s]+(?=[()\s)]|$)/,lookbehind:!0},punctuation:/[()']/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_smalltalk.7d661e28.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[2822],{186:function(e){e.exports=a,a.displayName="smalltalk",a.aliases=[];function a(t){t.languages.smalltalk={comment:/"(?:""|[^"])*"/,string:/'(?:''|[^'])*'/,symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:nil|true|false|self|super|new)\b/,character:{pattern:/\$./,alias:"string"},number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_tap.6bf245b4.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6975],{82340:function(e){e.exports=a,a.displayName="tap",a.aliases=[];function a(n){n.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[^\S\r\n]*)---(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?[^\S\r\n]*\.\.\.$/m,lookbehind:!0,inside:n.languages.yaml,alias:"language-yaml"}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_twig.7590589e.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[8827],{18307:function(e){e.exports=n,n.displayName="twig",n.aliases=[];function n(t){t.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{-?|\{%-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)-?/,keyword:/\w+/}},rd:{pattern:/-?(?:%\}|\}\})$/,inside:{punctuation:/.+/}},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:true|false|null)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_]\w*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:t.languages.markup}}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_typescript.3ad2831c.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[9461],{81663:function(n){n.exports=t,t.displayName="typescript",t.aliases=["ts"];function t(e){e.languages.typescript=e.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),e.languages.ts=e.languages.typescript}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/react-syntax-highlighter_languages_refractor_xojo.f05e8a5b.async.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3116],{57480:function(n){n.exports=e,e.displayName="xojo",e.aliases=[];function e(a){a.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,inside:{keyword:/^Rem/i}},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\b/i,keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,punctuation:/[.,;:()]/}}}}]); 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/Azure.1e55a774.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/account.bccec459.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/account.bccec459.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/agent.f478bfe2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/autogpt.25ba894a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/autogpt.25ba894a.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/banner2.5c36f1ab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/banner2.5c36f1ab.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/chain.512bd70a.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/chathistory.c04a95d8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/chathistory.c04a95d8.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/chroma.5e822937.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/faiss.d0832574.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/huggingface.81940a6f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/huggingface.81940a6f.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/langchain.03999e05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/langchain.03999e05.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/langfuse.428d797f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/langfuse.428d797f.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/localai.064d8f8a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/localai.064d8f8a.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/memory.d5658a01.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/milvus.86429b97.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/openapi.8ec8d86e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/openapi.8ec8d86e.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/product.54eb43f9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/product.54eb43f9.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/prompt.0fed2908.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/qdrant.93ff1362.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/qdrant.93ff1362.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/robot.3e38acc0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/robot.3e38acc0.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/sharing.932311c9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/sharing.932311c9.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/sqlchain.52374685.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/vectara.35f34dd0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/vectara.35f34dd0.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/static/zep.093fc1ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/console/static/zep.093fc1ca.png -------------------------------------------------------------------------------- /ui/WorkOrder/console/t__plugin-layout__Layout.afd0f6cd.chunk.css: -------------------------------------------------------------------------------- 1 | @media screen and (max-width: 480px){.umi-plugin-layout-container{width:100%!important}.umi-plugin-layout-container>*{border-radius:0!important}}.umi-plugin-layout-menu .anticon{margin-right:8px}.umi-plugin-layout-menu .ant-dropdown-menu-item{min-width:160px}.umi-plugin-layout-right{display:flex!important;float:right;height:100%;margin-left:auto;overflow:hidden}.umi-plugin-layout-right .umi-plugin-layout-action{display:flex;align-items:center;height:100%;padding:0 12px;cursor:pointer;transition:all .3s}.umi-plugin-layout-right .umi-plugin-layout-action>i{color:#000000d9;vertical-align:middle}.umi-plugin-layout-right .umi-plugin-layout-action:hover{background:rgba(0,0,0,.025)}.umi-plugin-layout-right .umi-plugin-layout-action:global(.opened){background:rgba(0,0,0,.025)}.umi-plugin-layout-right .umi-plugin-layout-search{padding:0 12px}.umi-plugin-layout-right .umi-plugin-layout-search:hover{background:transparent}.umi-plugin-layout-name{margin-left:8px} 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/console/temp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testURL: 'http://localhost:8000', 3 | verbose: false, 4 | extraSetupFiles: ['./tests/setupTests.js'], 5 | globals: { 6 | ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: false, 7 | localStorage: null, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react-jsx", 4 | "emitDecoratorMetadata": true, 5 | "experimentalDecorators": true, 6 | "baseUrl": ".", 7 | "paths": { 8 | "@/*": ["./src/*"] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ui/WorkOrder/mock/route.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | '/api/auth_routes': { 3 | '/form/advanced-form': { authority: ['admin', 'user'] }, 4 | }, 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/playwright.config.ts: -------------------------------------------------------------------------------- 1 | // playwright.config.ts 2 | import type { PlaywrightTestConfig } from '@playwright/test'; 3 | import { devices } from '@playwright/test'; 4 | 5 | const config: PlaywrightTestConfig = { 6 | forbidOnly: !!process.env.CI, 7 | retries: process.env.CI ? 2 : 0, 8 | use: { 9 | trace: 'on-first-retry', 10 | }, 11 | projects: [ 12 | { 13 | name: 'chromium', 14 | use: { ...devices['Desktop Chrome'] }, 15 | }, 16 | { 17 | name: 'firefox', 18 | use: { ...devices['Desktop Firefox'] }, 19 | }, 20 | ], 21 | }; 22 | export default config; 23 | -------------------------------------------------------------------------------- /ui/WorkOrder/public/CNAME: -------------------------------------------------------------------------------- 1 | preview.pro.ant.design -------------------------------------------------------------------------------- /ui/WorkOrder/public/favicon-pro.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/favicon-pro.ico -------------------------------------------------------------------------------- /ui/WorkOrder/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/favicon.ico -------------------------------------------------------------------------------- /ui/WorkOrder/public/gsd-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/gsd-logo.png -------------------------------------------------------------------------------- /ui/WorkOrder/public/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/icons/icon-128x128.png -------------------------------------------------------------------------------- /ui/WorkOrder/public/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/icons/icon-192x192.png -------------------------------------------------------------------------------- /ui/WorkOrder/public/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/icons/icon-512x512.png -------------------------------------------------------------------------------- /ui/WorkOrder/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/public/logo.png -------------------------------------------------------------------------------- /ui/WorkOrder/public/pro_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/apikey.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAllAPIKeys = () => client.get('/apikey') 4 | 5 | const createNewAPI = (body) => client.post(`/apikey`, body) 6 | 7 | const updateAPI = (id, body) => client.put(`/apikey/${id}`, body) 8 | 9 | const deleteAPI = (id) => client.delete(`/apikey/${id}`) 10 | 11 | export default { 12 | getAllAPIKeys, 13 | createNewAPI, 14 | updateAPI, 15 | deleteAPI 16 | } 17 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/assistants.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAllAssistants = () => client.get('/assistants') 4 | 5 | const getSpecificAssistant = (id) => client.get(`/assistants/${id}`) 6 | 7 | const getAssistantObj = (id, credential) => client.get(`/openai-assistants/${id}?credential=${credential}`) 8 | 9 | const getAllAvailableAssistants = (credential) => client.get(`/openai-assistants?credential=${credential}`) 10 | 11 | const createNewAssistant = (body) => client.post(`/assistants`, body) 12 | 13 | const updateAssistant = (id, body) => client.put(`/assistants/${id}`, body) 14 | 15 | const deleteAssistant = (id, isDeleteBoth) => 16 | isDeleteBoth ? client.delete(`/assistants/${id}?isDeleteBoth=true`) : client.delete(`/assistants/${id}`) 17 | 18 | export default { 19 | getAllAssistants, 20 | getSpecificAssistant, 21 | getAssistantObj, 22 | getAllAvailableAssistants, 23 | createNewAssistant, 24 | updateAssistant, 25 | deleteAssistant 26 | } 27 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/chatflows.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAllChatflows = () => client.get('/chatflows') 4 | 5 | const getSpecificChatflow = (id) => client.get(`/chatflows/${id}`) 6 | 7 | const getSpecificChatflowFromPublicEndpoint = (id) => client.get(`/public-chatflows/${id}`) 8 | 9 | const createNewChatflow = (body) => client.post(`/chatflows`, body) 10 | 11 | const updateChatflow = (id, body) => client.put(`/chatflows/${id}`, body) 12 | 13 | const deleteChatflow = (id) => client.delete(`/chatflows/${id}`) 14 | 15 | const getIsChatflowStreaming = (id) => client.get(`/chatflows-streaming/${id}`) 16 | 17 | export default { 18 | getAllChatflows, 19 | getSpecificChatflow, 20 | getSpecificChatflowFromPublicEndpoint, 21 | createNewChatflow, 22 | updateChatflow, 23 | deleteChatflow, 24 | getIsChatflowStreaming 25 | } 26 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/chatmessage.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getInternalChatmessageFromChatflow = (id) => client.get(`/internal-chatmessage/${id}`) 4 | const getAllChatmessageFromChatflow = (id, params = {}) => client.get(`/chatmessage/${id}`, { params: { order: 'DESC', ...params } }) 5 | const getChatmessageFromPK = (id, params = {}) => client.get(`/chatmessage/${id}`, { params: { order: 'ASC', ...params } }) 6 | const deleteChatmessage = (id, params = {}) => client.delete(`/chatmessage/${id}`, { params: { ...params } }) 7 | 8 | export default { 9 | getInternalChatmessageFromChatflow, 10 | getAllChatmessageFromChatflow, 11 | getChatmessageFromPK, 12 | deleteChatmessage 13 | } 14 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/client.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import { baseURL } from '@/store/constant' 3 | 4 | const apiClient = axios.create({ 5 | baseURL: `${baseURL}/api/v1`, 6 | headers: { 7 | 'Content-type': 'application/json' 8 | } 9 | }) 10 | 11 | apiClient.interceptors.request.use(function (config) { 12 | const username = localStorage.getItem('username') 13 | const password = localStorage.getItem('password') 14 | 15 | if (username && password) { 16 | config.auth = { 17 | username, 18 | password 19 | } 20 | } 21 | 22 | return config 23 | }) 24 | 25 | export default apiClient 26 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/config.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getConfig = (id) => client.get(`/flow-config/${id}`) 4 | const getNodeConfig = (body) => client.post(`/node-config`, body) 5 | 6 | export default { 7 | getConfig, 8 | getNodeConfig 9 | } 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/credentials.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAllCredentials = () => client.get('/credentials') 4 | 5 | const getCredentialsByName = (componentCredentialName) => client.get(`/credentials?credentialName=${componentCredentialName}`) 6 | 7 | const getAllComponentsCredentials = () => client.get('/components-credentials') 8 | 9 | const getSpecificCredential = (id) => client.get(`/credentials/${id}`) 10 | 11 | const getSpecificComponentCredential = (name) => client.get(`/components-credentials/${name}`) 12 | 13 | const createCredential = (body) => client.post(`/credentials`, body) 14 | 15 | const updateCredential = (id, body) => client.put(`/credentials/${id}`, body) 16 | 17 | const deleteCredential = (id) => client.delete(`/credentials/${id}`) 18 | 19 | export default { 20 | getAllCredentials, 21 | getCredentialsByName, 22 | getAllComponentsCredentials, 23 | getSpecificCredential, 24 | getSpecificComponentCredential, 25 | createCredential, 26 | updateCredential, 27 | deleteCredential 28 | } 29 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/nodes.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAllNodes = () => client.get('/nodes') 4 | 5 | const getSpecificNode = (name) => client.get(`/nodes/${name}`) 6 | 7 | export default { 8 | getAllNodes, 9 | getSpecificNode 10 | } 11 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/prediction.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const sendMessageAndGetPrediction = (id, input) => client.post(`/internal-prediction/${id}`, input) 4 | 5 | export default { 6 | sendMessageAndGetPrediction 7 | } 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/prompt.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAvailablePrompts = (body) => client.post(`/prompts-list`, body) 4 | const getPrompt = (body) => client.post(`/load-prompt`, body) 5 | 6 | export default { 7 | getAvailablePrompts, 8 | getPrompt 9 | } 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/tools.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const getAllTools = () => client.get('/tools') 4 | 5 | const getSpecificTool = (id) => client.get(`/tools/${id}`) 6 | 7 | const createNewTool = (body) => client.post(`/tools`, body) 8 | 9 | const updateTool = (id, body) => client.put(`/tools/${id}`, body) 10 | 11 | const deleteTool = (id) => client.delete(`/tools/${id}`) 12 | 13 | export default { 14 | getAllTools, 15 | getSpecificTool, 16 | createNewTool, 17 | updateTool, 18 | deleteTool 19 | } 20 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/api/vectorstore.js: -------------------------------------------------------------------------------- 1 | import client from './client' 2 | 3 | const upsertVectorStore = (id, input) => client.post(`/vector/internal-upsert/${id}`, input) 4 | 5 | export default { 6 | upsertVectorStore 7 | } 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/account.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/cURL.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/chathistory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/chathistory.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/flowise_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/flowise_logo.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/flowise_logo_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/flowise_logo_dark.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/google-login-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/google-login-white.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/javascript.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/langchain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/langchain.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/langfuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/langfuse.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/llmonitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/llmonitor.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/python.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/robot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/robot.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/settings.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/assets/images/sharing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/src/assets/images/sharing.png -------------------------------------------------------------------------------- /ui/WorkOrder/src/common/hooks/useObservableState.ts: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useMemo, useState } from 'react' 2 | import { BehaviorSubject, Observable } from 'rxjs' 3 | 4 | export const useObservableState = ( 5 | source$: Observable | { (): Observable }, 6 | initialState?: T, 7 | ): [T, React.Dispatch>] => { 8 | const source = useMemo>(() => { 9 | if (typeof source$ === 'function') { 10 | return source$() 11 | } 12 | return source$ 13 | }, [source$]) 14 | const [state, setState] = useState(() => { 15 | if (source instanceof BehaviorSubject) { 16 | return source.getValue() 17 | } 18 | return initialState 19 | }) 20 | useEffect(() => { 21 | const sub = source.subscribe((v) => { 22 | setState(v) 23 | }) 24 | return () => { 25 | sub.unsubscribe() 26 | } 27 | }, [source]) 28 | return [state, setState] 29 | } 30 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/AIcon/index.tsx: -------------------------------------------------------------------------------- 1 | import { createFromIconfontCN } from '@ant-design/icons'; 2 | 3 | const AIcon = createFromIconfontCN({ 4 | scriptUrl: '/icons/iconfont.js', // 在 iconfont.cn 上生成 5 | }); 6 | 7 | export default AIcon; 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/Authorized/Authorized.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Result } from 'antd'; 3 | import check, { IAuthorityType } from './CheckPermissions'; 4 | 5 | import AuthorizedRoute from './AuthorizedRoute'; 6 | import Secured from './Secured'; 7 | 8 | interface AuthorizedProps { 9 | authority: IAuthorityType; 10 | noMatch?: React.ReactNode; 11 | } 12 | 13 | type IAuthorizedType = React.FunctionComponent & { 14 | Secured: typeof Secured; 15 | check: typeof check; 16 | AuthorizedRoute: typeof AuthorizedRoute; 17 | }; 18 | 19 | const Authorized: React.FunctionComponent = ({ 20 | children, 21 | authority, 22 | noMatch = ( 23 | 28 | ), 29 | }) => { 30 | const childrenRender: React.ReactNode = typeof children === 'undefined' ? null : children; 31 | const dom = check(authority, childrenRender, noMatch); 32 | return <>{dom}; 33 | }; 34 | 35 | export default Authorized as IAuthorizedType; 36 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/Authorized/AuthorizedRoute.tsx: -------------------------------------------------------------------------------- 1 | import { Redirect, Route } from 'umi'; 2 | 3 | import React from 'react'; 4 | import Authorized from './Authorized'; 5 | import { IAuthorityType } from './CheckPermissions'; 6 | 7 | interface AuthorizedRoutePops { 8 | currentAuthority: string; 9 | component: React.ComponentClass; 10 | render: (props: any) => React.ReactNode; 11 | redirectPath: string; 12 | authority: IAuthorityType; 13 | } 14 | 15 | const AuthorizedRoute: React.SFC = ({ 16 | component: Component, 17 | render, 18 | authority, 19 | redirectPath, 20 | ...rest 21 | }) => ( 22 | } />} 25 | > 26 | (Component ? : render(props))} 29 | /> 30 | 31 | ); 32 | 33 | export default AuthorizedRoute; 34 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/Authorized/index.tsx: -------------------------------------------------------------------------------- 1 | import Authorized from './Authorized'; 2 | import Secured from './Secured'; 3 | import check from './CheckPermissions'; 4 | import renderAuthorize from './renderAuthorize'; 5 | 6 | Authorized.Secured = Secured; 7 | Authorized.check = check; 8 | 9 | const RenderAuthorize = renderAuthorize(Authorized); 10 | 11 | export default RenderAuthorize; 12 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/Authorized/renderAuthorize.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable eslint-comments/disable-enable-pair */ 2 | /* eslint-disable import/no-mutable-exports */ 3 | let CURRENT: string | string[] = 'NULL'; 4 | 5 | type CurrentAuthorityType = string | string[] | (() => typeof CURRENT); 6 | /** 7 | * use authority or getAuthority 8 | * @param {string|()=>String} currentAuthority 9 | */ 10 | const renderAuthorize = (Authorized: T): ((currentAuthority: CurrentAuthorityType) => T) => ( 11 | currentAuthority: CurrentAuthorityType, 12 | ): T => { 13 | if (currentAuthority) { 14 | if (typeof currentAuthority === 'function') { 15 | CURRENT = currentAuthority(); 16 | } 17 | if ( 18 | Object.prototype.toString.call(currentAuthority) === '[object String]' || 19 | Array.isArray(currentAuthority) 20 | ) { 21 | CURRENT = currentAuthority as string[]; 22 | } 23 | } else { 24 | CURRENT = 'NULL'; 25 | } 26 | return Authorized; 27 | }; 28 | 29 | export { CURRENT }; 30 | export default (Authorized: T) => renderAuthorize(Authorized); 31 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/HeaderDropdown/index.less: -------------------------------------------------------------------------------- 1 | @import (reference) '~antd/es/style/themes/index'; 2 | 3 | .container > * { 4 | background-color: @popover-bg; 5 | border-radius: 4px; 6 | box-shadow: @shadow-1-down; 7 | } 8 | 9 | @media screen and (max-width: @screen-xs) { 10 | .container { 11 | width: 100% !important; 12 | } 13 | .container > * { 14 | border-radius: 0 !important; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/HeaderDropdown/index.tsx: -------------------------------------------------------------------------------- 1 | import { Dropdown } from 'antd'; 2 | import type { DropDownProps } from 'antd/es/dropdown'; 3 | import classNames from 'classnames'; 4 | import React from 'react'; 5 | import styles from './index.less'; 6 | 7 | export type HeaderDropdownProps = { 8 | overlayClassName?: string; 9 | overlay: React.ReactNode | (() => React.ReactNode) | any; 10 | placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight' | 'bottomCenter'; 11 | } & Omit; 12 | 13 | const HeaderDropdown: React.FC = ({ overlayClassName: cls, ...restProps }) => ( 14 | 15 | ); 16 | 17 | export default HeaderDropdown; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/HeaderSearch/index.less: -------------------------------------------------------------------------------- 1 | @import (reference) '~antd/es/style/themes/index'; 2 | 3 | .headerSearch { 4 | display: inline-flex; 5 | align-items: center; 6 | .input { 7 | width: 0; 8 | min-width: 0; 9 | overflow: hidden; 10 | background: transparent; 11 | border-radius: 0; 12 | transition: width 0.3s, margin-left 0.3s; 13 | :global(.ant-select-selection) { 14 | background: transparent; 15 | } 16 | input { 17 | box-shadow: none !important; 18 | } 19 | 20 | &.show { 21 | width: 210px; 22 | margin-left: 8px; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/NoticeIcon/index.less: -------------------------------------------------------------------------------- 1 | @import (reference) '~antd/es/style/themes/index'; 2 | 3 | .popover { 4 | position: relative; 5 | width: 336px; 6 | } 7 | 8 | .noticeButton { 9 | display: inline-block; 10 | cursor: pointer; 11 | transition: all 0.3s; 12 | } 13 | .icon { 14 | padding: 4px; 15 | vertical-align: middle; 16 | } 17 | 18 | .badge { 19 | font-size: 16px; 20 | } 21 | 22 | .tabs { 23 | :global { 24 | .ant-tabs-nav-list { 25 | margin: auto; 26 | } 27 | 28 | .ant-tabs-nav-scroll { 29 | text-align: center; 30 | } 31 | .ant-tabs-nav { 32 | margin-bottom: 0; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/WrapContent/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | 4 | .wraper { 5 | margin: 10px 10px 10px 10px; 6 | } 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/WrapContent/index.tsx: -------------------------------------------------------------------------------- 1 | import styles from './index.less'; 2 | import { PageContainer, ProLayout } from '@ant-design/pro-components'; 3 | const WrapContent: React.FC = (props) => { 4 | return ( 5 | 6 | 7 | ) 8 | }; 9 | export default WrapContent; 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/chat/DemoIndex.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from 'react-router-dom'; 2 | import { navConfig } from '../../navConfig'; 3 | import { toPascalCase } from '../../utils'; 4 | 5 | export default function DemoIndex() { 6 | return ( 7 |
8 | {navConfig.map((t) => ( 9 |
10 |

{t.title}

11 |
    12 | {t.list.map((tt) => ( 13 |
  • 14 | 15 | {`${toPascalCase(tt.code)} ${tt.name}`} 16 | 17 |
  • 18 | ))} 19 |
20 |
21 | ))} 22 |
23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/chat/DemoPage.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Link, useLocation } from 'react-router-dom'; 3 | import { toPascalCase } from '../../utils'; 4 | 5 | interface DemoPageProps { 6 | children: React.ReactNode; 7 | } 8 | 9 | export const DemoPage = ({ children }: DemoPageProps) => { 10 | const { pathname } = useLocation(); 11 | const name = pathname.slice(1); 12 | 13 | return ( 14 |
15 |
16 | 17 | 18 |

{toPascalCase(name)}

19 |
20 | {children} 21 |
22 | ); 23 | }; 24 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/chat/DemoSection.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | interface DemoSectionProps { 4 | title: string; 5 | bg?: 'white' | 'gray'; 6 | children: React.ReactNode; 7 | } 8 | 9 | export const DemoSection = ({ title, bg = 'white', children }: DemoSectionProps) => ( 10 |
11 |

{title}

12 | {children} 13 |
14 | ); 15 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/chat/LangSwitcher.tsx: -------------------------------------------------------------------------------- 1 | import locales from '@chatui/core'; 2 | 3 | interface LangSwitcherProps { 4 | value: string; 5 | onChange: (lang: string) => void; 6 | } 7 | 8 | export const LangSwitcher = ({ value, onChange }: LangSwitcherProps) => ( 9 | 21 | ); 22 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/chat/index.ts: -------------------------------------------------------------------------------- 1 | export { DemoPage } from './DemoPage'; 2 | export { DemoSection } from './DemoSection'; 3 | export { LangSwitcher } from './LangSwitcher'; 4 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/flow/key/cut.less: -------------------------------------------------------------------------------- 1 | .no-wrap { 2 | display: inline-block; 3 | overflow: hidden; 4 | white-space: nowrap; 5 | vertical-align: middle; 6 | } 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/flow/key/cut.tsx: -------------------------------------------------------------------------------- 1 | import React, { useCallback } from 'react' 2 | import styles from './cut.less' 3 | 4 | interface Props { 5 | left: number 6 | right: number 7 | max: number 8 | children: string 9 | } 10 | 11 | export const Cut: React.FC = (props) => { 12 | const { left, right = 0, max, children } = props 13 | const getText = useCallback(() => { 14 | const len = children.length 15 | const ellipsis = '...' 16 | let leftStr = '' 17 | let rightStr = '' 18 | 19 | if (len > max) { 20 | if (left && len) { 21 | leftStr = children.substr(0, left) 22 | } else { 23 | leftStr = children.substr(0, max) 24 | } 25 | 26 | if (right) { 27 | rightStr = children.substr(-right, right) 28 | } 29 | 30 | return `${leftStr}${ellipsis}${rightStr}` 31 | } 32 | 33 | return children 34 | }, [left, right, max, children]) 35 | return {getText()} 36 | } 37 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/flow/key/item-name.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { unescape } from 'lodash-es' 3 | import { Cut } from './cut' 4 | import { Keyword } from './keyword' 5 | 6 | interface Props { 7 | data: any 8 | } 9 | 10 | export const ItemName: React.FC = (props) => { 11 | const { data } = props 12 | const { keyword, cutParas = {} } = data 13 | const name = unescape(data.name) 14 | const { max, side } = cutParas 15 | if (keyword) { 16 | return 17 | } 18 | if (max) { 19 | return ( 20 | 21 | {name} 22 | 23 | ) 24 | } 25 | return {name} 26 | } 27 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/flow/key/keyword.less: -------------------------------------------------------------------------------- 1 | .keywordWrapper { 2 | strong { 3 | color: #dd4b39; 4 | font-weight: normal; 5 | font-style: normal; 6 | } 7 | 8 | max-width: 200px; 9 | overflow: hidden; 10 | text-overflow: ellipsis; 11 | } 12 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/flow/key/keyword.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import classnames from 'classnames' 3 | import styles from './keyword.less' 4 | 5 | interface Props { 6 | raw: string 7 | keyword: string 8 | className?: string 9 | } 10 | 11 | export const Keyword: React.FC = (props) => { 12 | const { raw, keyword, className } = props 13 | if (keyword) { 14 | const regex = new RegExp(keyword, 'ig') 15 | const arr = raw.split(regex) 16 | return ( 17 | 23 | {arr.map((section, index) => 24 | index !== arr.length - 1 ? ( 25 | 26 | {section} 27 | {keyword} 28 | 29 | ) : ( 30 | section 31 | ), 32 | )} 33 | 34 | ) 35 | } 36 | return null 37 | } 38 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/flow/rx-component/rx-input.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Observable } from 'rxjs' 3 | import { Input, ConfigProvider } from 'antd' 4 | import { InputProps } from 'antd/es/input' 5 | import { useObservableState } from '@/common/hooks/useObservableState' 6 | import { ANT_PREFIX } from '@/constants/global' 7 | 8 | interface RxInputProps extends Omit { 9 | value: Observable 10 | } 11 | 12 | export const RxInput: React.FC = (props) => { 13 | const { value, ...otherProps } = props 14 | const [realValue] = useObservableState(() => value) 15 | return ( 16 | 17 | 18 | 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/components/socket/index.tsx: -------------------------------------------------------------------------------- 1 | import io from 'socket.io-client'; 2 | 3 | const socket = io('http://localhost:30916/im/user'); 4 | 5 | export default socket; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/constants/global.ts: -------------------------------------------------------------------------------- 1 | export const ANT_PREFIX = 'ant' 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/constants/graph.ts: -------------------------------------------------------------------------------- 1 | export const GROUP_HORIZONTAL__PADDING = 24 // 分组横向 padding 2 | export const GROUP_VERTICAL__PADDING = 40 // 分组纵向 padding 3 | export const NODE_WIDTH = 180 4 | export const NODE_HEIGHT = 32 5 | 6 | // 触发画布重新渲染事件 7 | export const RERENDER_EVENT = 'RERENDER_EVENT' 8 | 9 | /* 10 | * 以下是拖拽相关 11 | */ 12 | 13 | export const DRAGGABLE_ALGO_COMPONENT = 'ALGO_COMPONENT' 14 | export const DRAGGABLE_MODEL = 'MODEL' 15 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/fixMenuItemIcon.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import type {MenuDataItem} from '@ant-design/pro-layout'; 3 | import * as allIcons from '@ant-design/icons'; 4 | 5 | const fixMenuItemIcon = (menus: MenuDataItem[], iconType = 'Outlined'): MenuDataItem[] => { 6 | menus.forEach((item) => { 7 | const {icon, children} = item 8 | if (typeof icon === 'string') { 9 | const fixIconName = icon.slice(0, 1).toLocaleUpperCase() + icon.slice(1) + iconType 10 | // eslint-disable-next-line no-param-reassign 11 | item.icon = React.createElement(allIcons[fixIconName] || allIcons[icon]) 12 | } 13 | // eslint-disable-next-line no-param-reassign,@typescript-eslint/no-unused-expressions 14 | children && children.length > 0 ? item.children = fixMenuItemIcon(children) : null 15 | }); 16 | return menus 17 | }; 18 | 19 | export default fixMenuItemIcon; 20 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/global.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/variable.less'; 2 | 3 | html, 4 | body, 5 | #root { 6 | height: 100%; 7 | } 8 | 9 | .colorWeak { 10 | filter: invert(80%); 11 | } 12 | 13 | .ant-layout { 14 | min-height: 100vh; 15 | } 16 | .ant-pro-sider.ant-layout-sider.ant-pro-sider-fixed { 17 | left: unset; 18 | } 19 | 20 | canvas { 21 | display: block; 22 | } 23 | 24 | body { 25 | text-rendering: optimizeLegibility; 26 | -webkit-font-smoothing: antialiased; 27 | -moz-osx-font-smoothing: grayscale; 28 | } 29 | 30 | ul, 31 | ol { 32 | list-style: none; 33 | } 34 | 35 | @media (max-width: @screen-xs) { 36 | .ant-table { 37 | width: 100%; 38 | overflow-x: auto; 39 | &-thead > tr, 40 | &-tbody > tr { 41 | > th, 42 | > td { 43 | white-space: pre; 44 | > span { 45 | display: block; 46 | } 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/hooks/useApi.js: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | 3 | export default (apiFunc) => { 4 | const [data, setData] = useState(null) 5 | const [error, setError] = useState(null) 6 | const [loading, setLoading] = useState(false) 7 | 8 | const request = async (...args) => { 9 | setLoading(true) 10 | try { 11 | const result = await apiFunc(...args) 12 | console.log('result='+result) 13 | setData(result.data) 14 | } catch (err) { 15 | setError(err || 'Unexpected Error!') 16 | } finally { 17 | setLoading(false) 18 | } 19 | } 20 | 21 | return { 22 | data, 23 | error, 24 | loading, 25 | request 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/hooks/useConfirm.js: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react' 2 | import ConfirmContext from '@/store/context/ConfirmContext' 3 | import { HIDE_CONFIRM, SHOW_CONFIRM } from '@/store/actions' 4 | 5 | let resolveCallback 6 | const useConfirm = () => { 7 | 8 | const [confirmState, dispatch] = useContext(ConfirmContext) 9 | 10 | const closeConfirm = () => { 11 | dispatch({ 12 | type: HIDE_CONFIRM 13 | }) 14 | } 15 | 16 | const onConfirm = () => { 17 | closeConfirm() 18 | resolveCallback(true) 19 | } 20 | 21 | const onCancel = () => { 22 | closeConfirm() 23 | resolveCallback(false) 24 | } 25 | const confirm = (confirmPayload) => { 26 | dispatch({ 27 | type: SHOW_CONFIRM, 28 | payload: confirmPayload 29 | }) 30 | return new Promise((res) => { 31 | resolveCallback = res 32 | }) 33 | } 34 | 35 | return { confirm, onConfirm, onCancel, confirmState } 36 | } 37 | 38 | export default useConfirm 39 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/hooks/useScriptRef.js: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef } from 'react' 2 | 3 | // ==============================|| ELEMENT REFERENCE HOOKS ||============================== // 4 | 5 | const useScriptRef = () => { 6 | const scripted = useRef(true) 7 | 8 | useEffect( 9 | () => () => { 10 | scripted.current = false 11 | }, 12 | [] 13 | ) 14 | 15 | return scripted 16 | } 17 | 18 | export default useScriptRef 19 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/layout/MainLayout/Header/ProfileSection/index.css: -------------------------------------------------------------------------------- 1 | .ps__rail-x { 2 | display: none !important; 3 | } 4 | .ps__thumb-x { 5 | display: none !important; 6 | } 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/layout/MainLayout/LogoSection/index.js: -------------------------------------------------------------------------------- 1 | import { Link } from 'react-router-dom' 2 | 3 | // material-ui 4 | import { ButtonBase } from '@mui/material' 5 | 6 | // project imports 7 | import config from '@/utils/config' 8 | import Logo from '@/ui-component/extended/Logo' 9 | 10 | // ==============================|| MAIN LOGO ||============================== // 11 | 12 | const LogoSection = () => ( 13 | 14 | 15 | 16 | ) 17 | 18 | export default LogoSection 19 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/layout/MainLayout/Sidebar/MenuList/index.js: -------------------------------------------------------------------------------- 1 | // material-ui 2 | import { Typography } from '@mui/material' 3 | 4 | // project imports 5 | import NavGroup from './NavGroup' 6 | import menuItem from 'menu-items' 7 | 8 | // ==============================|| SIDEBAR MENU LIST ||============================== // 9 | 10 | const MenuList = () => { 11 | const navItems = menuItem.items.map((item) => { 12 | switch (item.type) { 13 | case 'group': 14 | return 15 | default: 16 | return ( 17 | 18 | Menu Items Error 19 | 20 | ) 21 | } 22 | }) 23 | 24 | return <>{navItems} 25 | } 26 | 27 | export default MenuList 28 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/layout/MinimalLayout/index.js: -------------------------------------------------------------------------------- 1 | import { Outlet } from 'react-router-dom' 2 | 3 | // ==============================|| MINIMAL LAYOUT ||============================== // 4 | 5 | const MinimalLayout = () => ( 6 | <> 7 | 8 | 9 | ) 10 | 11 | export default MinimalLayout 12 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/layout/NavMotion.js: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types' 2 | import { motion } from 'framer-motion' 3 | 4 | // ==============================|| ANIMATION FOR CONTENT ||============================== // 5 | 6 | const NavMotion = ({ children }) => { 7 | const motionVariants = { 8 | initial: { 9 | opacity: 0, 10 | scale: 0.99 11 | }, 12 | in: { 13 | opacity: 1, 14 | scale: 1 15 | }, 16 | out: { 17 | opacity: 0, 18 | scale: 1.01 19 | } 20 | } 21 | 22 | const motionTransition = { 23 | type: 'tween', 24 | ease: 'anticipate', 25 | duration: 0.4 26 | } 27 | 28 | return ( 29 | 30 | {children} 31 | 32 | ) 33 | } 34 | 35 | NavMotion.propTypes = { 36 | children: PropTypes.node 37 | } 38 | 39 | export default NavMotion 40 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/layout/NavigationScroll.js: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types' 2 | import { useEffect } from 'react' 3 | import { useLocation } from 'react-router-dom' 4 | 5 | // ==============================|| NAVIGATION SCROLL TO TOP ||============================== // 6 | 7 | const NavigationScroll = ({ children }) => { 8 | const location = useLocation() 9 | const { pathname } = location 10 | 11 | useEffect(() => { 12 | window.scrollTo({ 13 | top: 0, 14 | left: 0, 15 | behavior: 'smooth' 16 | }) 17 | }, [pathname]) 18 | 19 | return children || null 20 | } 21 | 22 | NavigationScroll.propTypes = { 23 | children: PropTypes.node 24 | } 25 | 26 | export default NavigationScroll 27 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/bn-BD.ts: -------------------------------------------------------------------------------- 1 | import component from './bn-BD/component'; 2 | import globalHeader from './bn-BD/globalHeader'; 3 | import menu from './bn-BD/menu'; 4 | import pages from './bn-BD/pages'; 5 | import pwa from './bn-BD/pwa'; 6 | import settingDrawer from './bn-BD/settingDrawer'; 7 | import settings from './bn-BD/settings'; 8 | 9 | export default { 10 | 'navBar.lang': 'ভাষা', 11 | 'layout.user.link.help': 'সহায়তা', 12 | 'layout.user.link.privacy': 'গোপনীয়তা', 13 | 'layout.user.link.terms': 'শর্তাদি', 14 | 'app.copyright.produced': 'প্রযোজনা করেছেন অ্যান্ট ফিনান্সিয়াল এক্সপেরিয়েন্স ডিপার্টমেন্ট', 15 | 'app.preview.down.block': 'আপনার স্থানীয় প্রকল্পে এই পৃষ্ঠাটি ডাউনলোড করুন', 16 | 'app.welcome.link.fetch-blocks': 'সমস্ত ব্লক পান', 17 | 'app.welcome.link.block-list': 18 | '`block` ডেভেলপমেন্ট এর উপর ভিত্তি করে দ্রুত স্ট্যান্ডার্ড, পৃষ্ঠাসমূহ তৈরি করুন।', 19 | ...globalHeader, 20 | ...menu, 21 | ...settingDrawer, 22 | ...settings, 23 | ...pwa, 24 | ...component, 25 | ...pages, 26 | }; 27 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/bn-BD/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': 'বিস্তৃত', 3 | 'component.tagSelect.collapse': 'সঙ্কুচিত', 4 | 'component.tagSelect.all': 'সব', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/bn-BD/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': 'অনুসন্ধান করুন', 3 | 'component.globalHeader.search.example1': 'অনুসন্ধান উদাহরণ ১', 4 | 'component.globalHeader.search.example2': 'অনুসন্ধান উদাহরণ ২', 5 | 'component.globalHeader.search.example3': 'অনুসন্ধান উদাহরণ ৩', 6 | 'component.globalHeader.help': 'সহায়তা', 7 | 'component.globalHeader.notification': 'বিজ্ঞপ্তি', 8 | 'component.globalHeader.notification.empty': 'আপনি সমস্ত বিজ্ঞপ্তি দেখেছেন।', 9 | 'component.globalHeader.message': 'বার্তা', 10 | 'component.globalHeader.message.empty': 'আপনি সমস্ত বার্তা দেখেছেন।', 11 | 'component.globalHeader.event': 'ঘটনা', 12 | 'component.globalHeader.event.empty': 'আপনি সমস্ত ইভেন্ট দেখেছেন।', 13 | 'component.noticeIcon.clear': 'সাফ', 14 | 'component.noticeIcon.cleared': 'সাফ করা হয়েছে', 15 | 'component.noticeIcon.empty': 'বিজ্ঞপ্তি নেই', 16 | 'component.noticeIcon.view-more': 'আরো দেখুন', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/bn-BD/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': 'আপনি এখন অফলাইন', 3 | 'app.pwa.serviceworker.updated': 'নতুন সামগ্রী উপলব্ধ', 4 | 'app.pwa.serviceworker.updated.hint': 5 | 'বর্তমান পৃষ্ঠাটি পুনরায় লোড করতে দয়া করে "রিফ্রেশ" বোতাম টিপুন', 6 | 'app.pwa.serviceworker.updated.ok': 'রিফ্রেশ', 7 | }; 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/en-US.ts: -------------------------------------------------------------------------------- 1 | import component from './en-US/component'; 2 | import globalHeader from './en-US/globalHeader'; 3 | import menu from './en-US/menu'; 4 | import pages from './en-US/pages'; 5 | import pwa from './en-US/pwa'; 6 | import settingDrawer from './en-US/settingDrawer'; 7 | import settings from './en-US/settings'; 8 | 9 | export default { 10 | 'navBar.lang': 'Languages', 11 | 'layout.user.link.help': 'Help', 12 | 'layout.user.link.privacy': 'Privacy', 13 | 'layout.user.link.terms': 'Terms', 14 | 'app.copyright.produced': 'Produced by Ant Financial Experience Department', 15 | 'app.preview.down.block': 'Download this page to your local project', 16 | 'app.welcome.link.fetch-blocks': 'Get all block', 17 | 'app.welcome.link.block-list': 'Quickly build standard, pages based on `block` development', 18 | ...globalHeader, 19 | ...menu, 20 | ...settingDrawer, 21 | ...settings, 22 | ...pwa, 23 | ...component, 24 | ...pages, 25 | }; 26 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/en-US/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': 'Expand', 3 | 'component.tagSelect.collapse': 'Collapse', 4 | 'component.tagSelect.all': 'All', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/en-US/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': 'Search', 3 | 'component.globalHeader.search.example1': 'Search example 1', 4 | 'component.globalHeader.search.example2': 'Search example 2', 5 | 'component.globalHeader.search.example3': 'Search example 3', 6 | 'component.globalHeader.help': 'Help', 7 | 'component.globalHeader.notification': 'Notification', 8 | 'component.globalHeader.notification.empty': 'You have viewed all notifications.', 9 | 'component.globalHeader.message': 'Message', 10 | 'component.globalHeader.message.empty': 'You have viewed all messsages.', 11 | 'component.globalHeader.event': 'Event', 12 | 'component.globalHeader.event.empty': 'You have viewed all events.', 13 | 'component.noticeIcon.clear': 'Clear', 14 | 'component.noticeIcon.cleared': 'Cleared', 15 | 'component.noticeIcon.empty': 'No notifications', 16 | 'component.noticeIcon.view-more': 'View more', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/en-US/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': 'You are offline now', 3 | 'app.pwa.serviceworker.updated': 'New content is available', 4 | 'app.pwa.serviceworker.updated.hint': 'Please press the "Refresh" button to reload current page', 5 | 'app.pwa.serviceworker.updated.ok': 'Refresh', 6 | }; 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/fa-IR.ts: -------------------------------------------------------------------------------- 1 | import component from './fa-IR/component'; 2 | import globalHeader from './fa-IR/globalHeader'; 3 | import menu from './fa-IR/menu'; 4 | import pages from './fa-IR/pages'; 5 | import pwa from './fa-IR/pwa'; 6 | import settingDrawer from './fa-IR/settingDrawer'; 7 | import settings from './fa-IR/settings'; 8 | 9 | export default { 10 | 'navBar.lang': 'زبان ها ', 11 | 'layout.user.link.help': 'کمک', 12 | 'layout.user.link.privacy': 'حریم خصوصی', 13 | 'layout.user.link.terms': 'مقررات', 14 | 'app.preview.down.block': 'این صفحه را در پروژه محلی خود بارگیری کنید', 15 | 'app.welcome.link.fetch-blocks': 'دریافت تمام بلوک', 16 | 'app.welcome.link.block-list': 'به سرعت صفحات استاندارد مبتنی بر توسعه "بلوک" را بسازید', 17 | ...globalHeader, 18 | ...menu, 19 | ...settingDrawer, 20 | ...settings, 21 | ...pwa, 22 | ...component, 23 | ...pages, 24 | }; 25 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/fa-IR/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': 'باز', 3 | 'component.tagSelect.collapse': 'بسته ', 4 | 'component.tagSelect.all': 'همه', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/fa-IR/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': 'جستجو ', 3 | 'component.globalHeader.search.example1': 'مثال 1 را جستجو کنید', 4 | 'component.globalHeader.search.example2': 'مثال 2 را جستجو کنید', 5 | 'component.globalHeader.search.example3': 'مثال 3 را جستجو کنید', 6 | 'component.globalHeader.help': 'کمک', 7 | 'component.globalHeader.notification': 'اعلان', 8 | 'component.globalHeader.notification.empty': 'شما همه اعلان ها را مشاهده کرده اید.', 9 | 'component.globalHeader.message': 'پیام', 10 | 'component.globalHeader.message.empty': 'شما همه پیام ها را مشاهده کرده اید.', 11 | 'component.globalHeader.event': 'رویداد', 12 | 'component.globalHeader.event.empty': 'شما همه رویدادها را مشاهده کرده اید.', 13 | 'component.noticeIcon.clear': 'پاک کردن', 14 | 'component.noticeIcon.cleared': 'پاک شد', 15 | 'component.noticeIcon.empty': 'بدون اعلان', 16 | 'component.noticeIcon.view-more': 'نمایش بیشتر', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/fa-IR/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': 'شما اکنون آفلاین هستید', 3 | 'app.pwa.serviceworker.updated': 'مطالب جدید در دسترس است', 4 | 'app.pwa.serviceworker.updated.hint': 5 | 'لطفاً برای بارگیری مجدد صفحه فعلی ، دکمه "تازه سازی" را فشار دهید', 6 | 'app.pwa.serviceworker.updated.ok': 'تازه سازی', 7 | }; 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/id-ID.ts: -------------------------------------------------------------------------------- 1 | import component from './id-ID/component'; 2 | import globalHeader from './id-ID/globalHeader'; 3 | import menu from './id-ID/menu'; 4 | import pages from './id-ID/pages'; 5 | import pwa from './id-ID/pwa'; 6 | import settingDrawer from './id-ID/settingDrawer'; 7 | import settings from './id-ID/settings'; 8 | 9 | export default { 10 | 'navbar.lang': 'Bahasa', 11 | 'layout.user.link.help': 'Bantuan', 12 | 'layout.user.link.privacy': 'Privasi', 13 | 'layout.user.link.terms': 'Ketentuan', 14 | 'app.preview.down.block': 'Unduh halaman ini dalam projek lokal anda', 15 | 'app.welcome.link.fetch-blocks': 'Dapatkan semua blok', 16 | 'app.welcome.link.block-list': 17 | 'Buat standar dengan cepat, halaman-halaman berdasarkan pengembangan `block`', 18 | ...globalHeader, 19 | ...menu, 20 | ...settingDrawer, 21 | ...settings, 22 | ...pwa, 23 | ...component, 24 | ...pages, 25 | }; 26 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/id-ID/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': 'Perluas', 3 | 'component.tagSelect.collapse': 'Lipat', 4 | 'component.tagSelect.all': 'Semua', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/id-ID/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': 'Pencarian', 3 | 'component.globalHeader.search.example1': 'Contoh 1 Pencarian', 4 | 'component.globalHeader.search.example2': 'Contoh 2 Pencarian', 5 | 'component.globalHeader.search.example3': 'Contoh 3 Pencarian', 6 | 'component.globalHeader.help': 'Bantuan', 7 | 'component.globalHeader.notification': 'Notifikasi', 8 | 'component.globalHeader.notification.empty': 'Anda telah membaca semua notifikasi', 9 | 'component.globalHeader.message': 'Pesan', 10 | 'component.globalHeader.message.empty': 'Anda telah membaca semua pesan.', 11 | 'component.globalHeader.event': 'Acara', 12 | 'component.globalHeader.event.empty': 'Anda telah melihat semua acara.', 13 | 'component.noticeIcon.clear': 'Kosongkan', 14 | 'component.noticeIcon.cleared': 'Berhasil dikosongkan', 15 | 'component.noticeIcon.empty': 'Tidak ada pemberitahuan', 16 | 'component.noticeIcon.view-more': 'Melihat lebih', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/id-ID/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': 'Koneksi anda terputus', 3 | 'app.pwa.serviceworker.updated': 'Konten baru sudah tersedia', 4 | 'app.pwa.serviceworker.updated.hint': 5 | 'Silahkan klik tombol "Refresh" untuk memuat ulang halaman ini', 6 | 'app.pwa.serviceworker.updated.ok': 'Memuat ulang', 7 | }; 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/ja-JP.ts: -------------------------------------------------------------------------------- 1 | import component from './ja-JP/component'; 2 | import globalHeader from './ja-JP/globalHeader'; 3 | import menu from './ja-JP/menu'; 4 | import pages from './ja-JP/pages'; 5 | import pwa from './ja-JP/pwa'; 6 | import settingDrawer from './ja-JP/settingDrawer'; 7 | import settings from './ja-JP/settings'; 8 | 9 | export default { 10 | 'navBar.lang': '言語', 11 | 'layout.user.link.help': 'ヘルプ', 12 | 'layout.user.link.privacy': 'プライバシー', 13 | 'layout.user.link.terms': '利用規約', 14 | 'app.preview.down.block': 'このページをローカルプロジェクトにダウンロードしてください', 15 | 'app.welcome.link.fetch-blocks': '', 16 | 'app.welcome.link.block-list': '', 17 | ...globalHeader, 18 | ...menu, 19 | ...settingDrawer, 20 | ...settings, 21 | ...pwa, 22 | ...component, 23 | ...pages, 24 | }; 25 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/ja-JP/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': '展開', 3 | 'component.tagSelect.collapse': '折りたたむ', 4 | 'component.tagSelect.all': 'すべて', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/ja-JP/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': '検索', 3 | 'component.globalHeader.search.example1': '検索例1', 4 | 'component.globalHeader.search.example2': '検索例2', 5 | 'component.globalHeader.search.example3': '検索例3', 6 | 'component.globalHeader.help': 'ヘルプ', 7 | 'component.globalHeader.notification': '通知', 8 | 'component.globalHeader.notification.empty': 'すべての通知を表示しました。', 9 | 'component.globalHeader.message': 'メッセージ', 10 | 'component.globalHeader.message.empty': 'すべてのメッセージを表示しました。', 11 | 'component.globalHeader.event': 'イベント', 12 | 'component.globalHeader.event.empty': 'すべてのイベントを表示しました。', 13 | 'component.noticeIcon.clear': 'クリア', 14 | 'component.noticeIcon.cleared': 'クリア済み', 15 | 'component.noticeIcon.empty': '通知なし', 16 | 'component.noticeIcon.view-more': 'もっと見る', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/ja-JP/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': 'あなたは今オフラインです', 3 | 'app.pwa.serviceworker.updated': '新しいコンテンツが利用可能です', 4 | 'app.pwa.serviceworker.updated.hint': 5 | '現在のページをリロードするには、「更新」ボタンを押してください', 6 | 'app.pwa.serviceworker.updated.ok': 'リフレッシュ', 7 | }; 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/pt-BR.ts: -------------------------------------------------------------------------------- 1 | import component from './pt-BR/component'; 2 | import globalHeader from './pt-BR/globalHeader'; 3 | import menu from './pt-BR/menu'; 4 | import pages from './pt-BR/pages'; 5 | import pwa from './pt-BR/pwa'; 6 | import settingDrawer from './pt-BR/settingDrawer'; 7 | import settings from './pt-BR/settings'; 8 | 9 | export default { 10 | 'navBar.lang': 'Idiomas', 11 | 'layout.user.link.help': 'ajuda', 12 | 'layout.user.link.privacy': 'política de privacidade', 13 | 'layout.user.link.terms': 'termos de serviços', 14 | 'app.preview.down.block': 'Download this page to your local project', 15 | ...globalHeader, 16 | ...menu, 17 | ...settingDrawer, 18 | ...settings, 19 | ...pwa, 20 | ...component, 21 | ...pages, 22 | }; 23 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/pt-BR/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': 'Expandir', 3 | 'component.tagSelect.collapse': 'Diminuir', 4 | 'component.tagSelect.all': 'Todas', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/pt-BR/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': 'Busca', 3 | 'component.globalHeader.search.example1': 'Exemplo de busca 1', 4 | 'component.globalHeader.search.example2': 'Exemplo de busca 2', 5 | 'component.globalHeader.search.example3': 'Exemplo de busca 3', 6 | 'component.globalHeader.help': 'Ajuda', 7 | 'component.globalHeader.notification': 'Notificação', 8 | 'component.globalHeader.notification.empty': 'Você visualizou todas as notificações.', 9 | 'component.globalHeader.message': 'Mensagem', 10 | 'component.globalHeader.message.empty': 'Você visualizou todas as mensagens.', 11 | 'component.globalHeader.event': 'Evento', 12 | 'component.globalHeader.event.empty': 'Você visualizou todos os eventos.', 13 | 'component.noticeIcon.clear': 'Limpar', 14 | 'component.noticeIcon.cleared': 'Limpo', 15 | 'component.noticeIcon.empty': 'Sem notificações', 16 | 'component.noticeIcon.view-more': 'Veja mais', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/pt-BR/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': 'Você está offline agora', 3 | 'app.pwa.serviceworker.updated': 'Novo conteúdo está disponível', 4 | 'app.pwa.serviceworker.updated.hint': 5 | 'Por favor, pressione o botão "Atualizar" para recarregar a página atual', 6 | 'app.pwa.serviceworker.updated.ok': 'Atualizar', 7 | }; 8 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-CN.ts: -------------------------------------------------------------------------------- 1 | import component from './zh-CN/component'; 2 | import globalHeader from './zh-CN/globalHeader'; 3 | import menu from './zh-CN/menu'; 4 | import pages from './zh-CN/pages'; 5 | import pwa from './zh-CN/pwa'; 6 | import settingDrawer from './zh-CN/settingDrawer'; 7 | import settings from './zh-CN/settings'; 8 | 9 | export default { 10 | 'navBar.lang': '语言', 11 | 'layout.user.link.help': '帮助', 12 | 'layout.user.link.privacy': '隐私', 13 | 'layout.user.link.terms': '条款', 14 | 'app.copyright.produced': '钩三点(杭州)出品', 15 | 'app.preview.down.block': '下载此页面到本地项目', 16 | 'app.welcome.link.fetch-blocks': '获取全部区块', 17 | 'app.welcome.link.block-list': '基于 block 开发,快速构建标准页面', 18 | ...pages, 19 | ...globalHeader, 20 | ...menu, 21 | ...settingDrawer, 22 | ...settings, 23 | ...pwa, 24 | ...component, 25 | }; 26 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-CN/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': '展开', 3 | 'component.tagSelect.collapse': '收起', 4 | 'component.tagSelect.all': '全部', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-CN/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': '站内搜索', 3 | 'component.globalHeader.search.example1': '搜索提示一', 4 | 'component.globalHeader.search.example2': '搜索提示二', 5 | 'component.globalHeader.search.example3': '搜索提示三', 6 | 'component.globalHeader.help': '使用文档', 7 | 'component.globalHeader.notification': '通知', 8 | 'component.globalHeader.notification.empty': '你已查看所有通知', 9 | 'component.globalHeader.message': '消息', 10 | 'component.globalHeader.message.empty': '您已读完所有消息', 11 | 'component.globalHeader.event': '待办', 12 | 'component.globalHeader.event.empty': '你已完成所有待办', 13 | 'component.noticeIcon.clear': '清空', 14 | 'component.noticeIcon.cleared': '清空了', 15 | 'component.noticeIcon.empty': '暂无数据', 16 | 'component.noticeIcon.view-more': '查看更多', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-CN/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': '当前处于离线状态', 3 | 'app.pwa.serviceworker.updated': '有新内容', 4 | 'app.pwa.serviceworker.updated.hint': '请点击“刷新”按钮或者手动刷新页面', 5 | 'app.pwa.serviceworker.updated.ok': '刷新', 6 | }; 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-TW.ts: -------------------------------------------------------------------------------- 1 | import component from './zh-TW/component'; 2 | import globalHeader from './zh-TW/globalHeader'; 3 | import menu from './zh-TW/menu'; 4 | import pwa from './zh-TW/pwa'; 5 | import settingDrawer from './zh-TW/settingDrawer'; 6 | import settings from './zh-TW/settings'; 7 | 8 | export default { 9 | 'navBar.lang': '語言', 10 | 'layout.user.link.help': '幫助', 11 | 'layout.user.link.privacy': '隱私', 12 | 'layout.user.link.terms': '條款', 13 | 'app.preview.down.block': '下載此頁面到本地項目', 14 | ...globalHeader, 15 | ...menu, 16 | ...settingDrawer, 17 | ...settings, 18 | ...pwa, 19 | ...component, 20 | }; 21 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-TW/component.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.tagSelect.expand': '展開', 3 | 'component.tagSelect.collapse': '收起', 4 | 'component.tagSelect.all': '全部', 5 | }; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-TW/globalHeader.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'component.globalHeader.search': '站內搜索', 3 | 'component.globalHeader.search.example1': '搜索提示壹', 4 | 'component.globalHeader.search.example2': '搜索提示二', 5 | 'component.globalHeader.search.example3': '搜索提示三', 6 | 'component.globalHeader.help': '使用手冊', 7 | 'component.globalHeader.notification': '通知', 8 | 'component.globalHeader.notification.empty': '妳已查看所有通知', 9 | 'component.globalHeader.message': '消息', 10 | 'component.globalHeader.message.empty': '您已讀完所有消息', 11 | 'component.globalHeader.event': '待辦', 12 | 'component.globalHeader.event.empty': '妳已完成所有待辦', 13 | 'component.noticeIcon.clear': '清空', 14 | 'component.noticeIcon.cleared': '清空了', 15 | 'component.noticeIcon.empty': '暫無資料', 16 | 'component.noticeIcon.view-more': '查看更多', 17 | }; 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/locales/zh-TW/pwa.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | 'app.pwa.offline': '當前處於離線狀態', 3 | 'app.pwa.serviceworker.updated': '有新內容', 4 | 'app.pwa.serviceworker.updated.hint': '請點擊“刷新”按鈕或者手動刷新頁面', 5 | 'app.pwa.serviceworker.updated.ok': '刷新', 6 | }; 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Ant Design Pro", 3 | "short_name": "Ant Design Pro", 4 | "display": "standalone", 5 | "start_url": "./?utm_source=homescreen", 6 | "theme_color": "#002140", 7 | "background_color": "#001529", 8 | "icons": [ 9 | { 10 | "src": "icons/icon-192x192.png", 11 | "sizes": "192x192" 12 | }, 13 | { 14 | "src": "icons/icon-128x128.png", 15 | "sizes": "128x128" 16 | }, 17 | { 18 | "src": "icons/icon-512x512.png", 19 | "sizes": "512x512" 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/menu-items/index.js: -------------------------------------------------------------------------------- 1 | import dashboard from './dashboard' 2 | 3 | // ==============================|| MENU ITEMS ||============================== // 4 | 5 | const menuItems = { 6 | items: [dashboard] 7 | } 8 | 9 | export default menuItems 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/services/ant-design-pro/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | /* eslint-disable */ 3 | // API 更新时间: 4 | // API 唯一标识: 5 | import * as api from './api'; 6 | import * as login from './login'; 7 | export default { 8 | api, 9 | login, 10 | }; 11 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/services/ant-design-pro/login.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | /* eslint-disable */ 3 | import { request } from '@umijs/max'; 4 | 5 | /** 发送验证码 POST /api/login/captcha */ 6 | export async function getFakeCaptcha( 7 | params: { 8 | // query 9 | /** 手机号 */ 10 | phone?: string; 11 | }, 12 | options?: { [key: string]: any }, 13 | ) { 14 | return request('/api/login/captcha', { 15 | method: 'GET', 16 | params: { 17 | ...params, 18 | }, 19 | ...(options || {}), 20 | }); 21 | } 22 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/services/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | /* eslint-disable */ 3 | // API 更新时间: 4 | // API 唯一标识: 5 | import * as api from './api'; 6 | import * as login from './session'; 7 | export default { 8 | api, 9 | login, 10 | }; 11 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/services/login.ts: -------------------------------------------------------------------------------- 1 | import request from 'umi-request'; 2 | /** 发送验证码 POST /api/login/captcha */ 3 | 4 | 5 | export async function getFakeCaptcha ( 6 | params: { 7 | // query 8 | /** 手机号 */ 9 | phone?: string; 10 | }, 11 | options?: Record, 12 | ) { 13 | return request('/api/login/captcha', { 14 | method: 'GET', 15 | params: { 16 | ...params, 17 | }, 18 | ...(options || {}), 19 | }); 20 | } 21 | // 获取验证码 22 | export async function getCaptchaImage () { 23 | return request('/api/captchaImage', { 24 | headers: { 25 | }, 26 | }) 27 | } 28 | 29 | // 获取手机验证码 30 | export async function getMobileCaptcha (mobile: string) { 31 | return request(`/api/login/captcha?mobile=${mobile}`); 32 | } 33 | 34 | 35 | /** 登录接口 POST /api/login/account */ 36 | export async function login (body: API.LoginParams, options?: Record) { 37 | return request('/api/login', { 38 | method: 'POST', 39 | headers: { 40 | 'Content-Type': 'application/json', 41 | }, 42 | data: body, 43 | ...(options || {}), 44 | }); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/services/swagger/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | /* eslint-disable */ 3 | // API 更新时间: 4 | // API 唯一标识: 5 | import * as pet from './pet'; 6 | import * as store from './store'; 7 | import * as user from './user'; 8 | export default { 9 | pet, 10 | store, 11 | user, 12 | }; 13 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/services/user.ts: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request'; 2 | 3 | export async function query(): Promise { 4 | return request('/api/users'); 5 | } 6 | 7 | export async function queryCurrent(): Promise { 8 | return request('/jetlinks/authorize/me', { 9 | method: 'GET', 10 | }); 11 | } 12 | 13 | export async function systemVersion(): Promise { 14 | return request(`/jetlinks/system/version`); 15 | } 16 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/store/constant.js: -------------------------------------------------------------------------------- 1 | // constant 2 | export const gridSpacing = 3 3 | export const drawerWidth = 260 4 | export const appDrawerWidth = 320 5 | export const maxScroll = 100000 6 | export const baseURL = process.env.NODE_ENV === 'production' ? window.location.origin : window.location.origin.replace(':8080', ':3000') 7 | export const uiBaseURL = window.location.origin 8 | export const FLOWISE_CREDENTIAL_ID = 'FLOWISE_CREDENTIAL_ID' 9 | export const REDACTED_CREDENTIAL_VALUE = '_FLOWISE_BLANK_07167752-1a71-43b1-bf8f-4f32252165db' 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/store/context/ConfirmContext.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const ConfirmContext = React.createContext() 4 | 5 | export default ConfirmContext 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/store/context/ConfirmContextProvider.js: -------------------------------------------------------------------------------- 1 | import { useReducer } from 'react' 2 | import PropTypes from 'prop-types' 3 | import alertReducer, { initialState } from '../reducers/dialogReducer' 4 | import ConfirmContext from './ConfirmContext' 5 | 6 | const ConfirmContextProvider = ({ children }) => { 7 | const [state, dispatch] = useReducer(alertReducer, initialState) 8 | 9 | return {children} 10 | } 11 | 12 | ConfirmContextProvider.propTypes = { 13 | children: PropTypes.any 14 | } 15 | 16 | export default ConfirmContextProvider 17 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore } from 'redux' 2 | import reducer from './reducer' 3 | 4 | // ==============================|| REDUX - MAIN STORE ||============================== // 5 | 6 | const store = createStore(reducer) 7 | const persister = 'Free' 8 | 9 | export { store, persister } 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/store/reducer.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux' 2 | 3 | // reducer import 4 | import customizationReducer from './reducers/customizationReducer' 5 | import canvasReducer from './reducers/canvasReducer' 6 | import notifierReducer from './reducers/notifierReducer' 7 | import dialogReducer from './reducers/dialogReducer' 8 | 9 | // ==============================|| COMBINE REDUCER ||============================== // 10 | 11 | const reducer = combineReducers({ 12 | customization: customizationReducer, 13 | canvas: canvasReducer, 14 | notifier: notifierReducer, 15 | dialog: dialogReducer 16 | }) 17 | 18 | export default reducer 19 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/store/reducers/dialogReducer.js: -------------------------------------------------------------------------------- 1 | import { SHOW_CONFIRM, HIDE_CONFIRM } from '../actions' 2 | 3 | export const initialState = { 4 | show: false, 5 | title: '', 6 | description: '', 7 | confirmButtonName: 'OK', 8 | cancelButtonName: 'Cancel' 9 | } 10 | 11 | const alertReducer = (state = initialState, action) => { 12 | switch (action.type) { 13 | case SHOW_CONFIRM: 14 | return { 15 | show: true, 16 | title: action.payload.title, 17 | description: action.payload.description, 18 | confirmButtonName: action.payload.confirmButtonName, 19 | cancelButtonName: action.payload.cancelButtonName 20 | } 21 | case HIDE_CONFIRM: 22 | return initialState 23 | default: 24 | return state 25 | } 26 | } 27 | 28 | export default alertReducer 29 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/temp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/typings.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'slash2'; 2 | declare module '*.css'; 3 | declare module '*.less'; 4 | declare module '*.scss'; 5 | declare module '*.sass'; 6 | declare module '*.svg'; 7 | declare module '*.png'; 8 | declare module '*.jpg'; 9 | declare module '*.jpeg'; 10 | declare module '*.gif'; 11 | declare module '*.bmp'; 12 | declare module '*.tiff'; 13 | declare module 'omit.js'; 14 | declare module 'numeral'; 15 | declare module '@antv/data-set'; 16 | declare module 'mockjs'; 17 | declare module 'react-fittext'; 18 | declare module 'bizcharts-plugin-slider'; 19 | 20 | // preview.pro.ant.design only do not use in your production ; 21 | // preview.pro.ant.design Dedicated environment variable, please do not use it in your project. 22 | declare let ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: 'site' | undefined; 23 | 24 | declare const REACT_APP_ENV: 'test' | 'dev' | 'pre' | false; 25 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/button/StyledButton.js: -------------------------------------------------------------------------------- 1 | import { styled } from '@mui/material/styles' 2 | import { Button } from '@mui/material' 3 | import MuiToggleButton from '@mui/material/ToggleButton' 4 | 5 | export const StyledButton = styled(Button)(({ theme, color = 'primary' }) => ({ 6 | color: 'white', 7 | backgroundColor: theme.palette[color].main, 8 | '&:hover': { 9 | backgroundColor: theme.palette[color].main, 10 | backgroundImage: `linear-gradient(rgb(0 0 0/10%) 0 0)` 11 | } 12 | })) 13 | 14 | export const StyledToggleButton = styled(MuiToggleButton)(({ theme, color = 'primary' }) => ({ 15 | '&.Mui-selected, &.Mui-selected:hover': { 16 | color: 'white', 17 | backgroundColor: theme.palette[color].main 18 | } 19 | })) 20 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/button/StyledFab.js: -------------------------------------------------------------------------------- 1 | import { styled } from '@mui/material/styles' 2 | import { Fab } from '@mui/material' 3 | 4 | export const StyledFab = styled(Fab)(({ theme, color = 'primary' }) => ({ 5 | color: 'white', 6 | backgroundColor: theme.palette[color].main, 7 | '&:hover': { 8 | backgroundColor: theme.palette[color].main, 9 | backgroundImage: `linear-gradient(rgb(0 0 0/10%) 0 0)` 10 | } 11 | })) 12 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/checkbox/Checkbox.js: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import PropTypes from 'prop-types' 3 | import { FormControlLabel, Checkbox } from '@mui/material' 4 | 5 | export const CheckboxInput = ({ value, label, onChange, disabled = false }) => { 6 | const [myValue, setMyValue] = useState(value) 7 | 8 | return ( 9 | <> 10 | { 18 | setMyValue(event.target.checked) 19 | onChange(event.target.checked) 20 | }} 21 | /> 22 | } 23 | label={label} 24 | /> 25 | 26 | ) 27 | } 28 | 29 | CheckboxInput.propTypes = { 30 | value: PropTypes.bool, 31 | label: PropTypes.string, 32 | onChange: PropTypes.func, 33 | disabled: PropTypes.bool 34 | } 35 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/dialog/ExpandTextDialog.css: -------------------------------------------------------------------------------- 1 | .editor__textarea { 2 | outline: 0; 3 | } 4 | .editor__textarea::placeholder { 5 | color: rgba(120, 120, 120, 0.5); 6 | } 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/extended/Logo.js: -------------------------------------------------------------------------------- 1 | import logo from 'assets/images/flowise_logo.png' 2 | import logoDark from 'assets/images/flowise_logo_dark.png' 3 | 4 | import { useSelector } from 'react-redux' 5 | 6 | // ==============================|| LOGO ||============================== // 7 | 8 | const Logo = () => { 9 | const customization = useSelector((state) => state.customization) 10 | 11 | return ( 12 |
13 | Flowise 18 |
19 | ) 20 | } 21 | 22 | export default Logo 23 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/loading/BackdropLoader.js: -------------------------------------------------------------------------------- 1 | import PropTypes from 'prop-types' 2 | import { Backdrop, CircularProgress } from '@mui/material' 3 | 4 | export const BackdropLoader = ({ open }) => { 5 | return ( 6 |
7 | theme.zIndex.drawer + 1 }} open={open}> 8 | 9 | 10 |
11 | ) 12 | } 13 | 14 | BackdropLoader.propTypes = { 15 | open: PropTypes.bool 16 | } 17 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/loading/Loadable.js: -------------------------------------------------------------------------------- 1 | import { Suspense } from 'react' 2 | 3 | // project imports 4 | import Loader from './Loader' 5 | 6 | // ==============================|| LOADABLE - LAZY LOADING ||============================== // 7 | 8 | const Loadable = (Component) => 9 | function WithLoader(props) { 10 | return ( 11 | }> 12 | 13 | 14 | ) 15 | } 16 | 17 | export default Loadable 18 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/loading/Loader.js: -------------------------------------------------------------------------------- 1 | // material-ui 2 | import LinearProgress from '@mui/material/LinearProgress' 3 | import { styled } from '@mui/material/styles' 4 | 5 | // styles 6 | const LoaderWrapper = styled('div')({ 7 | position: 'fixed', 8 | top: 0, 9 | left: 0, 10 | zIndex: 1301, 11 | width: '100%' 12 | }) 13 | 14 | // ==============================|| LOADER ||============================== // 15 | const Loader = () => ( 16 | 17 | 18 | 19 | ) 20 | 21 | export default Loader 22 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/markdown/MemoizedReactMarkdown.js: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import ReactMarkdown from 'react-markdown' 3 | 4 | export const MemoizedReactMarkdown = memo(ReactMarkdown, (prevProps, nextProps) => prevProps.children === nextProps.children) 5 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/ui-component/switch/Switch.js: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import PropTypes from 'prop-types' 3 | import { FormControl, Switch } from '@mui/material' 4 | 5 | export const SwitchInput = ({ value, onChange, disabled = false }) => { 6 | const [myValue, setMyValue] = useState(!!value ?? false) 7 | 8 | return ( 9 | <> 10 | 11 | { 15 | setMyValue(event.target.checked) 16 | onChange(event.target.checked) 17 | }} 18 | /> 19 | 20 | 21 | ) 22 | } 23 | 24 | SwitchInput.propTypes = { 25 | value: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), 26 | onChange: PropTypes.func, 27 | disabled: PropTypes.bool 28 | } 29 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/IconUtil.ts: -------------------------------------------------------------------------------- 1 | import * as AntdIcons from '@ant-design/icons'; 2 | import React from 'react'; 3 | 4 | const allIcons: Record = AntdIcons; 5 | 6 | export function getIcon(name: string): React.ReactNode | string { 7 | const icon = allIcons[name]; 8 | return icon || ''; 9 | } 10 | 11 | export function createIcon(icon: string | any): React.ReactNode | string { 12 | if (typeof icon === 'object') { 13 | return icon; 14 | } 15 | const ele = allIcons[icon]; 16 | if (ele) { 17 | return React.createElement(allIcons[icon]); 18 | } 19 | return ''; 20 | } 21 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/config.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | // basename: only at build time to set, and Don't add '/' at end off BASENAME for breadcrumbs, also Don't put only '/' use blank('') instead, 3 | basename: '', 4 | defaultPath: '/chatflows', 5 | fontFamily: `'Roboto', sans-serif`, 6 | borderRadius: 12 7 | } 8 | 9 | export default config 10 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/const.ts: -------------------------------------------------------------------------------- 1 | class SystemConst { 2 | static API_BASE = 'api'; 3 | 4 | static SYSTEM_NAME = 'GSD'; 5 | 6 | static LOGIN = 'LOGIN-STATUS'; 7 | 8 | static DOC_URL = 'http://doc.jetlinks.cn'; 9 | 10 | static BASE_CURD_MODAL_VISIBLE = 'BASE_CURD_MODAL_VISIBLE'; 11 | 12 | static BASE_CURD_CURRENT = 'BASE_CURD_CURRENT'; 13 | 14 | static BASE_CURD_MODEL = 'BASE_CURD_MODEL'; 15 | 16 | static BASE_UPDATE_DATA = 'BASE_UPDATE_DATA'; 17 | 18 | static GLOBAL_WEBSOCKET = 'GLOBAL-WEBSOCKET'; 19 | 20 | static BIND_USER_STATE = 'false'; 21 | 22 | static REFRESH_METADATA = 'refresh_metadata'; 23 | 24 | static REFRESH_METADATA_TABLE = 'refresh_metadata_table'; 25 | 26 | static GET_METADATA = 'get_metadata'; 27 | 28 | static REFRESH_DEVICE = 'refresh_device'; 29 | 30 | static AMAP_KEY = 'amap_key'; 31 | 32 | static Version_Code = 'version_code'; 33 | } 34 | 35 | export default SystemConst; 36 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as toPascalCase } from './toPascalCase'; 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/toPascalCase.ts: -------------------------------------------------------------------------------- 1 | export default function toPascalCase(str: string) { 2 | return str 3 | .split('-') 4 | .map((w) => w[0].toUpperCase() + w.slice(1).toLowerCase()) 5 | .join(''); 6 | } 7 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/token.ts: -------------------------------------------------------------------------------- 1 | const Token = { 2 | set: (token: string) => localStorage.setItem('X-Access-Token', token), 3 | get: () => localStorage.getItem('X-Access-Token') || Date.now().toString(), 4 | }; 5 | export default Token; 6 | -------------------------------------------------------------------------------- /ui/WorkOrder/src/utils/usePrompt.js: -------------------------------------------------------------------------------- 1 | import { useCallback, useContext, useEffect } from 'react' 2 | import { UNSAFE_NavigationContext as NavigationContext } from 'react-router-dom' 3 | 4 | // https://stackoverflow.com/questions/71572678/react-router-v-6-useprompt-typescript 5 | 6 | export function useBlocker(blocker, when = true) { 7 | const { navigator } = useContext(NavigationContext) 8 | 9 | useEffect(() => { 10 | if (!when) return 11 | 12 | const unblock = navigator.block((tx) => { 13 | const autoUnblockingTx = { 14 | ...tx, 15 | retry() { 16 | unblock() 17 | tx.retry() 18 | } 19 | } 20 | 21 | blocker(autoUnblockingTx) 22 | }) 23 | 24 | return unblock 25 | }, [navigator, blocker, when]) 26 | } 27 | 28 | export function usePrompt(message, when = true) { 29 | const blocker = useCallback( 30 | (tx) => { 31 | if (window.confirm(message)) tx.retry() 32 | }, 33 | [message] 34 | ) 35 | 36 | useBlocker(blocker, when) 37 | } 38 | -------------------------------------------------------------------------------- /ui/WorkOrder/temp: -------------------------------------------------------------------------------- 1 | UI 2 | -------------------------------------------------------------------------------- /ui/WorkOrder/tests/setupTests.js: -------------------------------------------------------------------------------- 1 | // do some test init 2 | 3 | const localStorageMock = { 4 | getItem: jest.fn(), 5 | setItem: jest.fn(), 6 | removeItem: jest.fn(), 7 | clear: jest.fn(), 8 | }; 9 | 10 | global.localStorage = localStorageMock; 11 | -------------------------------------------------------------------------------- /ui/WorkOrder/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "build/dist", 4 | "module": "esnext", 5 | "target": "esnext", 6 | "lib": ["esnext", "dom"], 7 | "sourceMap": true, 8 | "baseUrl": ".", 9 | "jsx": "react-jsx", 10 | "resolveJsonModule": true, 11 | "allowSyntheticDefaultImports": true, 12 | "moduleResolution": "node", 13 | "forceConsistentCasingInFileNames": true, 14 | "noImplicitReturns": true, 15 | "suppressImplicitAnyIndexErrors": true, 16 | "noUnusedLocals": true, 17 | "allowJs": true, 18 | "skipLibCheck": true, 19 | "experimentalDecorators": true, 20 | "strict": true, 21 | "paths": { 22 | "@/*": ["./src/*"], 23 | "@@/*": ["./src/.umi/*"] 24 | } 25 | }, 26 | "include": [ 27 | "mock/**/*", 28 | "src/**/*", 29 | "playwright.config.ts", 30 | "tests/**/*", 31 | "test/**/*", 32 | "__test__/**/*", 33 | "typings/**/*", 34 | "config/**/*", 35 | ".eslintrc.js", 36 | ".prettierrc.js", 37 | "jest.config.js", 38 | "mock/*" 39 | ], 40 | "exclude": ["node_modules", "build", "dist", "scripts", "src/.umi/*", "webpack", "jest"] 41 | } 42 | -------------------------------------------------------------------------------- /ui/WorkOrder/yarn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreeIPCC/FreeAICC/fbddf86175937aded2c0d61af84f8d620ab29856/ui/WorkOrder/yarn --------------------------------------------------------------------------------