PageSourceSearch

https://www.robotmesh.com/studio/content/jsx/robotmesh/tsjs/common.js

js robotmesh.com collected 2026-09-24 12:51:36 UTC 7,908 bytes, 1 lines download raw bytes

1import{ProgLanguage,HwInterfaceId,ProjectTypeId}from"./db_enum.js";import{db}from"./db.js";import{msg}from"./msg/messages.js";import{util as utilweb}from"./util.js";import{util}from"./util_general.js";import{datamanager,CurrentUser}from"./datamanager.js";import{ide}from"./ide.js";export var core_cmn;!function(e){function t(e){if(!utilweb.isStandaloneMode())throw new Error("Only supported in standalone mode.");var t=window.module_db_local.getProject(e),o=db.getProjectType(t.projectTypeId);return{project_id:t.id,project_name:t.name,description:t.description,privacy:0,model:"",model_id:0,codefile_id:0,codefile_name:t.codeFile,code:window.cefReadFile(t.codeFile),projecttype_id:o.id,can_show_code:!0,can_save:!t.featured,can_download:!0,can_change_featured:!1,restrictions:{can_change_description:!0,can_change_mimic:!0,can_use_debugger:!0,can_copy:!0,can_change_privacy:!1,can_show_east_pane:!0,can_show_project_options:!0,can_show_editor_toolbar:!0},ipad:!1}}let o;e.getUiProjectName=function(e,t){return null==e?"":0===e.indexOf(msg.TEMPLATE_PFX)?e:(t?msg.TEMPLATE_PFX:"")+e},e.getProjectContent=function(e,o=!1,r){const i=new util.Deferred;if(o){var c=t(e);i.resolve(c)}else datamanager.fetchProjectContent(e,r).done(e=>{if(e){var t=JSON.parse(e);i.resolve(t)}else i.resolve(null)}).fail(e=>{i.reject(e)});return i.promise()},e.getLocalProjectContent=t,function(e){e[e.None=0]="None",e[e.MimicTemplate=1]="MimicTemplate",e[e.CanSubmitMimicRecording=2]="CanSubmitMimicRecording"}(o=e.TemplateFlags||(e.TemplateFlags={})),e.createRemoteProject=function(e){var t=jQuery.Deferred();return datamanager.createProject(e).done(e=>{var o=JSON.parse(e);o.error?t.reject(o.error):t.resolve(o)}).fail(e=>{t.reject(e)}),t.promise()}}(core_cmn||(core_cmn={}));export var start_cmn;!function(e){let t,o;function r(e){jQuery("#"+e+"-output").find("li:visible").each((e,t)=>{var o=e%2==0?"#fff":"#f5f5f5";jQuery(t).css("background-color",o)})}!function(e){function t(e,t){return"/studio/static/skin/frontend/base/default/images/RobotMesh/project-types/"+t}e.alertUrlOnFutureProjects=function(e){if(e)for(const t of e){null===db.getProjectType(t.projectTypeId,!0)&&(t.url="javascript:alert('Unknown project type. Try ?future option to open.')")}},e.addNamePrefix=function(e){if(e)for(const t of e)t.uiName=core_cmn.getUiProjectName(t.name,t.template)},e.addProjectIcons=function(e,o){if(o)for(const r of o){const o=db.getProjectType(r.projectTypeId);try{if(o.customIcon)r.typeIconUrl=t(e,o.customIcon),r.overlayIconUrl=null;else{const i=ProgLanguage[o.progLanguage];if(r.overlayIconUrl=t(e,"overlay_lang_"+i+".png"),r.customIconAbsUrl)r.typeIconUrl=utilweb.getAbsUrl(r.customIconAbsUrl);else{let i=HwInterfaceId[o.interface_id];if(!i||o.future&&!utilweb.isFuture())r.typeIconUrl=t(e,"icontype_unknown.png");else{i=i.toLowerCase();const c=ProjectTypeId[o.id];c&&-1!==c.toLowerCase().indexOf("competition")&&(i+="_vrc");const n=`type_${i}${o.mimic_module?"_mimic":""}.png`;r.typeIconUrl=t(e,n)}}}}catch(e){r.typeIconUrl="unknown"}}},e.getIconUrl=t}(t=e.adapt_content||(e.adapt_content={})),e.paintSecondProjectItem=r,e.deleteProject=function(t,o,r=!1){const i=jQuery(o).text();if(confirm("Are you sure you want to delete '"+i+"'?"))if(r)window.module_db_local.deleteProject(t),jQuery("#local_project_"+t).remove();else{function c(){datamanager.deleteProject(t),jQuery("#project_"+t).remove(),e.paintSecondProjectItem("myProjects")}ide.project&&ide.project.content&&t==ide.project.content.project_id?ide.closeWithoutLoading(!0).then(c):c()}},function(e){let t=null;e.copyProjectFn=(e,t,o)=>{},e.openEditProjectDialog=function(e,r,i=!1){t||(t=new o),t.open(e,r,i)};class o{constructor(){utilweb.$("body").append('<div id="editProjectDialog-output"></div>'),utilweb.fillTemplate("editProjectDialog",{}),this._form=utilweb.$("#editProjectDialogForm"),utilweb.$("#bRenameProjectSubmit").click(()=>{this.submit()})}open(t,o,r=!1){this.project_id=t,this.project_element=o,this.isLocalProject=r;let i=utilweb.$(o).text();if(this.isTemplate=util.startsWith(i,msg.TEMPLATE_PFX),this.isTemplate&&(i=i.substr(msg.TEMPLATE_PFX.length)),utilweb.$("#editProjectDialogForm input[name='name']").val(i),r)jQuery("#editProjectFolder").hide();else if(jQuery("#selectProjectFolder").children().length<=1)jQuery("#editProjectFolder").hide();else{var c=jQuery("#project_"+t).attr("data-folderid");jQuery("#editProjectSelectFolder").empty(),jQuery("#editProjectSelectFolder").append(jQuery("#selectProjectFolder > option").clone()),c&&jQuery("#editProjectSelectFolder").val(c),jQuery("#editProjectFolder").show()}var n=utilweb.$("#bCopyToLocal").hide(),a=utilweb.$("#bCopyToRemote").hide();utilweb.isStandaloneMode()&&!utilweb.isLocalPage()&&(r?(a.off("click"),a.click(()=>{e.copyProjectFn(t,!0,!1),this.submit()}),a.show()):(n.off("click"),n.click(()=>{e.copyProjectFn(t,!1,!0),this.submit()}),n.show())),utilweb.showLightbox("#editProjectDialogForm")}submit(){this._form.find("#edit-name-error").hide();const e=this._form.find("input[name='name']").val();if(!e)return this._form.find("#edit-name-error").text(msg.PROJECT_NAME_REQUIRED).show(),!1;var t=jQuery("#editProjectSelectFolder").val();if(t||(t=""),this.isLocalProject){window.module_db_local.renameProject(this.project_id,e);const t=core_cmn.getUiProjectName(e,this.isTemplate);jQuery(this.project_element).text(t),utilweb.hideLightbox("#editProjectDialogForm")}else datamanager.renameProject({project_id:this.project_id,name:e,projectfolder_id:t}).then(o=>{o=JSON.parse(o);const i=jQuery("#project_"+this.project_id);i.attr("data-folderid",t);var c=jQuery("#selectProjectFolder").val();c||(c=""),t==c?i.show():i.hide(),r("myProjects"),ide.project&&this.project_id==ide.project.content.project_id&&(ide.project.content.project_name=e,ide.project.content.projectfolder_id=t,ide.project.content.ui_project_name=core_cmn.getUiProjectName(ide.project.content.project_name,ide.project.content.template>0),utilweb.fillTemplate("title",ide.project.content),utilweb.$("#title-output a").off("
1click").click(()=>ide.stopAndOpenNavigator()));const n=CurrentUser.myprojects.find(e=>e.id==this.project_id,this);n&&(n.name=e,n.projectfolderId=t||null);const a=core_cmn.getUiProjectName(e,this.isTemplate);jQuery(this.project_element).text(a),utilweb.hideLightbox("#editProjectDialogForm")}).fail(e=>{-1!==e.indexOf("Invalid characters")?utilweb.$("#edit-name-error").text(msg.INVALID_CHARACTERS_IN_NAME).show():alert(msg.ERROR_C+e)});return!1}}}(o=e.dialog||(e.dialog={}))}(start_cmn||(start_cmn={}));export var classroom_cmn;!function(e){const t=["apple","cherry","orange","grape","sun","moon","rain","clouds","elephant","fox","cat","tiger","snail","fish","boy","girl"];e.MIN_PICTURE_PASSWORD_LENGTH=4,e.validatePicturePasswordLength=function(o,r,i){const c=function(e){if(!e)return 0;const o=e.split(" ");for(const e of o)if(!util.contains(t,e))return 0;return o.length}(o);if(0!=c&&c<e.MIN_PICTURE_PASSWORD_LENGTH){const t=util.format(msg.PICTURE_PASSWORD_TOO_SHORT_0,[e.MIN_PICTURE_PASSWORD_LENGTH]);r.text(t).show(),i.isValid=!1}};let o={};e.showPicturePasswordForm=function(e,t,i,c){o[e]||(o[e]=new r(e,t,i,c)),o[e].show()},e.setPicturePasswordTextbox=function(e,t){o[e]._uiTextbox=t};class r{constructor(e,o,r,i){utilweb.$(e).append('<div class="bigIconDialog"><div id="pictures" class="iconList iconListFourWide"><div class="itemTemplate iconListItem"><span class="title"></span></div></div></div>'),this._uiTextbox=utilweb.$(o),void 0===i&&(i=r),utilweb.$(e+" .iconList").css({height:"auto"}),utilweb.updateUiList(e+" #pictures",t,(e,t)=>{t.find(".title").text(e);const o=Math.min(i,r);t.css({"background-image":"url("+utilweb.getResourceUrl("picture_password/"+e+".png")+")",width:r+"px",height:i+"px","background-size":o+"px "+o+"px"}),t.click(()=>{let t=this._uiTextbox.val();t.length>0&&(t+=" "),this._uiTextbox.val(t+e)})},null,"","div")}show(){}}}(classroom_cmn||(classroom_cmn={}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.