From 84419ef80d82fd7d9ac376c2d3ceaf8f1940390b Mon Sep 17 00:00:00 2001 From: null Date: Wed, 16 Jul 2025 20:30:44 +0800 Subject: [PATCH 1/4] update FileWatcher --- lib/node-utility | 2 +- src/EIDEProject.ts | 2 +- src/EIDETypeDefine.ts | 2 +- src/GlobalEvents.ts | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/node-utility b/lib/node-utility index 1ee2e8e9..9cc515d4 160000 --- a/lib/node-utility +++ b/lib/node-utility @@ -1 +1 @@ -Subproject commit 1ee2e8e9dbe1eaf2fd46198f7da86e9f48a8a3f1 +Subproject commit 9cc515d4bc8fb6d05af926272fb4bac71cab76c5 diff --git a/src/EIDEProject.ts b/src/EIDEProject.ts index f77b1a3b..1f5eab84 100644 --- a/src/EIDEProject.ts +++ b/src/EIDEProject.ts @@ -1109,7 +1109,7 @@ export abstract class AbstractProject implements CustomConfigurationProvider, Pr // init watcher for '.eide' folder this.eideDirWatcher = new FileWatcher(this.getEideDir(), false, false); - this.eideDirWatcher.on('error', err => GlobalEvent.emit('error', err)); + this.eideDirWatcher.on('error', err => GlobalEvent.log_error(err)); this.eideDirWatcher.OnChanged = f => this.onEideDirChanged('changed', f); this.eideDirWatcher.OnRename = f => this.onEideDirChanged('renamed', f); diff --git a/src/EIDETypeDefine.ts b/src/EIDETypeDefine.ts index a5b061f8..b1da791a 100644 --- a/src/EIDETypeDefine.ts +++ b/src/EIDETypeDefine.ts @@ -280,7 +280,7 @@ export abstract class Configuration { this.cfgFile = configFile; this.FILE_NAME = configFile.name; this.watcher = new FileWatcher(configFile, false); - this.watcher.on('error', (err) => GlobalEvent.emit('error', err)); + this.watcher.on('error', (err) => GlobalEvent.log_error(err)); this.watcher.OnChanged = () => this.InitConfig(this.watcher.file.Read()); this.config = this.GetDefault(this.readTypeFromFile(configFile) || type); } diff --git a/src/GlobalEvents.ts b/src/GlobalEvents.ts index cb52a17a..6140146b 100644 --- a/src/GlobalEvents.ts +++ b/src/GlobalEvents.ts @@ -93,6 +93,7 @@ export class GlobalEvent { } else { GlobalEvent.GetInstance()._emitter.emit('globalLog', ExceptionToMessage(msg, 'Warning')); } + console.warn(msg); } static log_error(msg: string | Error) { if (typeof msg == 'string') { @@ -100,8 +101,8 @@ export class GlobalEvent { } else { GlobalEvent.GetInstance()._emitter.emit('globalLog', ExceptionToMessage(msg, 'Error')); } + console.error(msg); } - // 向用户显示eide输出面板日志 static log_show() { GlobalEvent.GetInstance()._emitter.emit('globalLog.show'); } From e020aa20845b59025272a3f90f5fea7ef56ae1cb Mon Sep 17 00:00:00 2001 From: null Date: Wed, 16 Jul 2025 22:35:40 +0800 Subject: [PATCH 2/4] update remote gcc_arm pkg to v14 --- src/ResInstaller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResInstaller.ts b/src/ResInstaller.ts index 71ae09e6..6d0d0370 100644 --- a/src/ResInstaller.ts +++ b/src/ResInstaller.ts @@ -93,7 +93,7 @@ export class ResInstaller { this.registerTool('GCC', { resource_name: 'gcc_arm', - readable_name: 'GNU Arm Embedded Toolchain (10.2.1)', + readable_name: 'GNU Arm Embedded Toolchain (14.x)', setting_name: 'ARM.GCC.InstallDirectory', no_binaries: no_binaries }); From cdc862e8457e5c753f4e68d09027ed38c1c305b5 Mon Sep 17 00:00:00 2001 From: null Date: Wed, 16 Jul 2025 23:15:45 +0800 Subject: [PATCH 3/4] update builder options view --- lang/8051.keil.verify.json | 8 +----- lang/any.gcc.verify.json | 32 ++++++++++-------------- lang/arm.gcc.verify.json | 32 ++++++++++-------------- lang/arm.iar.verify.json | 8 +----- lang/arm.llvm.verify.json | 32 ++++++++++-------------- lang/arm.v5.verify.json | 32 +++--------------------- lang/arm.v6.verify.json | 40 ++++-------------------------- lang/mips.mti.gcc.verify.json | 28 ++++++++------------- lang/riscv.gcc.verify.json | 32 ++++++++++-------------- lang/sdcc.verify.json | 18 +++----------- lang/stm8.cosmic.verify.json | 8 +----- lang/stm8.iar.verify.json | 8 +----- res/html/builder_options/js/app.js | 2 +- 13 files changed, 80 insertions(+), 200 deletions(-) diff --git a/lang/8051.keil.verify.json b/lang/8051.keil.verify.json index 1e62f305..5437c039 100644 --- a/lang/8051.keil.verify.json +++ b/lang/8051.keil.verify.json @@ -7,13 +7,7 @@ "markdownDescription": "Custom Options", "description.zh-cn": "自定义选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } }, diff --git a/lang/any.gcc.verify.json b/lang/any.gcc.verify.json index 4691320a..e436e935 100644 --- a/lang/any.gcc.verify.json +++ b/lang/any.gcc.verify.json @@ -7,14 +7,8 @@ "markdownDescription": "Options", "description.zh-cn": "选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "default": "" } }, "properties": { @@ -162,9 +156,9 @@ "-O2(Faster)", "-O3(Fastest)", "-Os(Fastest, Smallest)", - "-Oz(Smallest, More Size Optimize)", - "-Ofast(Fastest, More Speed Optimize)", - "-Og(Better For Debug)" + "-Oz(Aggressive Size Optimize)", + "-Ofast(Aggressive Speed Optimize)", + "-Og(Keep Debug Info)" ] }, "optimization-lto": { @@ -172,6 +166,14 @@ "description.zh-cn": "链接时优化 (-flto)", "type": "boolean" }, + "one-elf-section-per-function": { + "markdownDescription": "Function Sections (-ffunction-sections)", + "type": "boolean" + }, + "one-elf-section-per-data": { + "markdownDescription": "Data Sections (-fdata-sections)", + "type": "boolean" + }, "no-rtti": { "markdownDescription": "Not use RTTI (-fno-rtti)", "description.zh-cn": "禁用运行时类型信息 (-fno-rtti)", @@ -182,14 +184,6 @@ "description.zh-cn": "禁用异常处理 (-fno-exceptions)", "type": "boolean" }, - "one-elf-section-per-function": { - "markdownDescription": "Function Sections (-ffunction-sections)", - "type": "boolean" - }, - "one-elf-section-per-data": { - "markdownDescription": "Data Sections (-fdata-sections)", - "type": "boolean" - }, "C_FLAGS": { "markdownDescription": "C Compiler Params", "description.zh-cn": "C 编译器参数", diff --git a/lang/arm.gcc.verify.json b/lang/arm.gcc.verify.json index efe94c60..c3415101 100644 --- a/lang/arm.gcc.verify.json +++ b/lang/arm.gcc.verify.json @@ -7,14 +7,8 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "default": "" } }, "properties": { @@ -224,9 +218,9 @@ "-O2(Faster)", "-O3(Fastest)", "-Os(Fastest, Smallest)", - "-Oz(Smallest, More Size Optimize)", - "-Ofast(Fastest, More Speed Optimize)", - "-Og(Better For Debug)" + "-Oz(Aggressive Size Optimize)", + "-Ofast(Aggressive Speed Optimize)", + "-Og(Keep Debug Info)" ] }, "optimization-lto": { @@ -234,6 +228,14 @@ "description.zh-cn": "链接时优化 (-flto)", "type": "boolean" }, + "one-elf-section-per-function": { + "markdownDescription": "Function Sections (-ffunction-sections)", + "type": "boolean" + }, + "one-elf-section-per-data": { + "markdownDescription": "Data Sections (-fdata-sections)", + "type": "boolean" + }, "signed-char": { "markdownDescription": "Signed Char (-fsigned-char)", "description.zh-cn": "Signed Char (-fsigned-char)", @@ -274,14 +276,6 @@ "description.zh-cn": "将警告转化为错误", "type": "boolean" }, - "one-elf-section-per-function": { - "markdownDescription": "Function Sections (-ffunction-sections)", - "type": "boolean" - }, - "one-elf-section-per-data": { - "markdownDescription": "Data Sections (-fdata-sections)", - "type": "boolean" - }, "C_FLAGS": { "markdownDescription": "Other C Compiler Options", "description.zh-cn": "C 编译器附加选项", diff --git a/lang/arm.iar.verify.json b/lang/arm.iar.verify.json index 9aaf4fd8..6e53f0a6 100644 --- a/lang/arm.iar.verify.json +++ b/lang/arm.iar.verify.json @@ -7,13 +7,7 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } }, diff --git a/lang/arm.llvm.verify.json b/lang/arm.llvm.verify.json index 39307799..cfbff4d6 100644 --- a/lang/arm.llvm.verify.json +++ b/lang/arm.llvm.verify.json @@ -7,14 +7,8 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "default": "" } }, "properties": { @@ -224,9 +218,9 @@ "-O2(Faster)", "-O3(Fastest)", "-Os(Fastest, Smallest)", - "-Oz(Smallest, More Size Optimize)", - "-Ofast(Fastest, More Speed Optimize)", - "-Og(Better For Debug)" + "-Oz(Aggressive Size Optimize)", + "-Ofast(Aggressive Speed Optimize)", + "-Og(Keep Debug Info)" ] }, "optimization-lto": { @@ -234,6 +228,14 @@ "description.zh-cn": "链接时优化 (-flto)", "type": "boolean" }, + "one-elf-section-per-function": { + "markdownDescription": "Function Sections (-ffunction-sections)", + "type": "boolean" + }, + "one-elf-section-per-data": { + "markdownDescription": "Data Sections (-fdata-sections)", + "type": "boolean" + }, "signed-char": { "markdownDescription": "Signed Char (-fsigned-char)", "description.zh-cn": "Signed Char (-fsigned-char)", @@ -274,14 +276,6 @@ "description.zh-cn": "将警告转化为错误", "type": "boolean" }, - "one-elf-section-per-function": { - "markdownDescription": "Function Sections (-ffunction-sections)", - "type": "boolean" - }, - "one-elf-section-per-data": { - "markdownDescription": "Data Sections (-fdata-sections)", - "type": "boolean" - }, "C_FLAGS": { "markdownDescription": "Other C Compiler Options", "description.zh-cn": "C 编译器附加选项", diff --git a/lang/arm.v5.verify.json b/lang/arm.v5.verify.json index 8f1dcff3..b5781291 100644 --- a/lang/arm.v5.verify.json +++ b/lang/arm.v5.verify.json @@ -272,26 +272,14 @@ "markdownDescription": "Other C Compiler Options", "description.zh-cn": "C 编译器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" }, "CXX_FLAGS": { "markdownDescription": "Other C++ Compiler Options", "description.zh-cn": "C++ 编译器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } } @@ -364,13 +352,7 @@ "markdownDescription": "Other Assembler Options", "description.zh-cn": "汇编器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } } @@ -469,13 +451,7 @@ "markdownDescription": "Other Linker Options", "description.zh-cn": "链接器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" }, "object-order": { diff --git a/lang/arm.v6.verify.json b/lang/arm.v6.verify.json index d7648daa..e761bfeb 100644 --- a/lang/arm.v6.verify.json +++ b/lang/arm.v6.verify.json @@ -263,39 +263,21 @@ "markdownDescription": "Other Global Compiler Options", "description.zh-cn": "编译器附加选项(全局)", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" }, "C_FLAGS": { "markdownDescription": "Other C Compiler Options", "description.zh-cn": "C 编译器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" }, "CXX_FLAGS": { "markdownDescription": "Other C++ Compiler Options", "description.zh-cn": "C++ 编译器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } } @@ -335,13 +317,7 @@ "markdownDescription": "Other Assembler Options", "description.zh-cn": "汇编器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } } @@ -416,13 +392,7 @@ "markdownDescription": "Other Linker Options", "description.zh-cn": "链接器附加选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" }, "object-order": { diff --git a/lang/mips.mti.gcc.verify.json b/lang/mips.mti.gcc.verify.json index e2c2ad6c..ed3a88b4 100644 --- a/lang/mips.mti.gcc.verify.json +++ b/lang/mips.mti.gcc.verify.json @@ -7,14 +7,8 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "default": "" } }, "properties": { @@ -233,7 +227,7 @@ "level-debug" ], "enumDescriptions": [ - "-O0 (default)", + "-O0", "-O1", "-O2", "-O3", @@ -242,6 +236,14 @@ "-Og" ] }, + "one-elf-section-per-function": { + "markdownDescription": "Function Sections (-ffunction-sections)", + "type": "boolean" + }, + "one-elf-section-per-data": { + "markdownDescription": "Data Sections (-fdata-sections)", + "type": "boolean" + }, "warnings": { "markdownDescription": "Warning Level", "description.zh-cn": "警告等级", @@ -257,14 +259,6 @@ "description.zh-cn": "将警告转化为错误", "type": "boolean" }, - "one-elf-section-per-function": { - "markdownDescription": "Function Sections (-ffunction-sections)", - "type": "boolean" - }, - "one-elf-section-per-data": { - "markdownDescription": "Data Sections (-fdata-sections)", - "type": "boolean" - }, "C_FLAGS": { "markdownDescription": "Other C Compiler Options", "description.zh-cn": "C 编译器附加选项", diff --git a/lang/riscv.gcc.verify.json b/lang/riscv.gcc.verify.json index 1e67a23d..3e2b0073 100644 --- a/lang/riscv.gcc.verify.json +++ b/lang/riscv.gcc.verify.json @@ -7,14 +7,8 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "default": "" } }, "properties": { @@ -236,9 +230,9 @@ "-O2(Faster)", "-O3(Fastest)", "-Os(Fastest, Smallest)", - "-Oz(Smallest, More Size Optimize)", - "-Ofast(Fastest, More Speed Optimize)", - "-Og(Better For Debug)" + "-Oz(Aggressive Size Optimize)", + "-Ofast(Aggressive Speed Optimize)", + "-Og(Keep Debug Info)" ] }, "optimization-lto": { @@ -246,6 +240,14 @@ "description.zh-cn": "链接时优化 (-flto)", "type": "boolean" }, + "one-elf-section-per-function": { + "markdownDescription": "Function Sections (-ffunction-sections)", + "type": "boolean" + }, + "one-elf-section-per-data": { + "markdownDescription": "Data Sections (-fdata-sections)", + "type": "boolean" + }, "signed-char": { "markdownDescription": "Signed Char (-fsigned-char)", "description.zh-cn": "Signed Char (-fsigned-char)", @@ -286,14 +288,6 @@ "description.zh-cn": "将警告转化为错误", "type": "boolean" }, - "one-elf-section-per-function": { - "markdownDescription": "Function Sections (-ffunction-sections)", - "type": "boolean" - }, - "one-elf-section-per-data": { - "markdownDescription": "Data Sections (-fdata-sections)", - "type": "boolean" - }, "C_FLAGS": { "markdownDescription": "Other C Compiler Options", "description.zh-cn": "C 编译器附加选项", diff --git a/lang/sdcc.verify.json b/lang/sdcc.verify.json index 965a34d8..5a3647dc 100644 --- a/lang/sdcc.verify.json +++ b/lang/sdcc.verify.json @@ -7,27 +7,15 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" }, "FLAGS": { "markdownDescription": "Options", "description.zh-cn": "选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "default": "" } }, "properties": { diff --git a/lang/stm8.cosmic.verify.json b/lang/stm8.cosmic.verify.json index bd69becc..32eb1526 100644 --- a/lang/stm8.cosmic.verify.json +++ b/lang/stm8.cosmic.verify.json @@ -6,13 +6,7 @@ "misc-controls": { "markdownDescription": "Other Options", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } }, diff --git a/lang/stm8.iar.verify.json b/lang/stm8.iar.verify.json index 065f129c..67302ac3 100644 --- a/lang/stm8.iar.verify.json +++ b/lang/stm8.iar.verify.json @@ -7,13 +7,7 @@ "markdownDescription": "Other Options", "description.zh-cn": "其他选项", "size": "huge", - "type": [ - "string", - "array" - ], - "items": { - "type": "string" - }, + "type": "string", "default": "" } }, diff --git a/res/html/builder_options/js/app.js b/res/html/builder_options/js/app.js index b2788722..e22138e0 100644 --- a/res/html/builder_options/js/app.js +++ b/res/html/builder_options/js/app.js @@ -1,2 +1,2 @@ -(function(t){function e(e){for(var s,o,n=e[0],r=e[1],c=e[2],u=0,p=[];u-1&&e.splice(a,1)}},mounted:function(){var t=this;this.$nextTick((function(){t.value?t.findAndActivateTab(t.value):t.tabs.length>0&&t.activateTab(t.tabs[0])}))},watch:{value:function(t){this.findAndActivateTab(t)}}},w=x,S=Object(m["a"])(w,c,d,!1,null,null,null),O=S.exports,j=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"tab-pane fade",class:{"active show":t.active},attrs:{id:t.id||t.label,"aria-expanded":t.active}},[t._t("default")],2)},A=[],T={name:"tab-pane",props:["label","id","title"],inject:["addTab","removeTab"],data:function(){return{active:!1}},mounted:function(){this.addTab(this)},destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el),this.removeTab(this)}},P=T,B=Object(m["a"])(P,j,A,!1,null,null,null),z=B.exports,I=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"btn",class:t.classes,attrs:{type:"button"===t.tag?t.nativeType:""},on:{click:t.handleClick}},[t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--icon"},[t._t("icon",[a("i",{class:t.icon})])],2):t._e(),t.$slots.default?t._e():a("i",{class:t.icon}),t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--text"},[t._t("default",[t._v(" "+t._s(t.text)+" ")])],2):t._e(),t.$slots.icon||t.icon?t._e():t._t("default")],2)},D=[],N=a("ade3"),W={name:"base-button",props:{tag:{type:String,default:"button",description:"Button tag (default -> button)"},type:{type:String,default:"default",description:"Button type (e,g primary, danger etc)"},size:{type:String,default:"",description:"Button size lg|sm"},textColor:{type:String,default:"",description:"Button text color (e.g primary, danger etc)"},nativeType:{type:String,default:"button",description:"Button native type (e.g submit,button etc)"},icon:{type:String,default:"",description:"Button icon"},text:{type:String,default:"",description:"Button text in case not provided via default slot"},outline:{type:Boolean,default:!1,description:"Whether button style is outline"},rounded:{type:Boolean,default:!1,description:"Whether button style is rounded"},iconOnly:{type:Boolean,default:!1,description:"Whether button contains only an icon"},block:{type:Boolean,default:!1,description:"Whether button is of block type"}},computed:{classes:function(){var t=[{"btn-block":this.block},{"rounded-circle":this.rounded},{"btn-icon-only":this.iconOnly},Object(N["a"])({},"text-".concat(this.textColor),this.textColor),{"btn-icon":this.icon||this.$slots.icon},this.type&&!this.outline?"btn-".concat(this.type):"",this.outline?"btn-outline-".concat(this.type):""];return this.size&&t.push("btn-".concat(this.size)),t}},methods:{handleClick:function(t){this.$emit("click",t)}}},E=W,F=Object(m["a"])(E,I,D,!1,null,null,null),M=F.exports,H=function(){var t,e,a,s=this,i=s.$createElement,l=s._self._c||i;return l("div",{staticClass:"card",class:[{"card-lift--hover":s.hover},{shadow:s.shadow},(t={},t["shadow-"+s.shadowSize]=s.shadowSize,t),(e={},e["bg-gradient-"+s.gradient]=s.gradient,e),(a={},a["bg-"+s.type]=s.type,a)]},[s.$slots.header?l("div",{staticClass:"card-header",class:s.headerClasses},[s._t("header")],2):s._e(),s.noBody?s._e():l("div",{staticClass:"card-body",class:s.bodyClasses},[s._t("default")],2),s.noBody?s._t("default"):s._e(),s.$slots.footer?l("div",{staticClass:"card-footer",class:s.footerClasses},[s._t("footer")],2):s._e()],2)},L=[],R={name:"card",props:{type:{type:String,description:"Card type"},gradient:{type:String,description:"Card background gradient type (warning,danger etc)"},hover:{type:Boolean,description:"Whether card should move on hover"},shadow:{type:Boolean,description:"Whether card has shadow"},shadowSize:{type:String,description:"Card shadow size"},noBody:{type:Boolean,default:!1,description:"Whether card should have wrapper body class"},bodyClasses:{type:[String,Object,Array],description:"Card body css classes"},headerClasses:{type:[String,Object,Array],description:"Card header css classes"},footerClasses:{type:[String,Object,Array],description:"Card footer css classes"}}},q=R,U=Object(m["a"])(q,H,L,!1,null,null,null),V=U.exports,J=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("SlideYUpTransition",{attrs:{duration:t.animationDuration}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.show,expression:"show"}],staticClass:"modal fade",class:[{"show d-block":t.show},{"d-none":!t.show},{"modal-mini":"mini"===t.type}],attrs:{tabindex:"-1",role:"dialog","aria-hidden":!t.show},on:{click:function(e){return e.target!==e.currentTarget?null:t.closeModal(e)}}},[a("div",{staticClass:"modal-dialog modal-dialog-centered",class:[{"modal-notice":"notice"===t.type},t.modalClasses]},[a("div",{staticClass:"modal-content",class:[t.gradient?"bg-gradient-"+t.gradient:"",t.modalContentClasses]},[t.$slots.header?a("div",{staticClass:"modal-header",class:[t.headerClasses]},[t._t("header"),t._t("close-button",[t.showClose?a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-label":"Close"},on:{click:t.closeModal}},[a("span",{attrs:{"aria-hidden":!t.show}},[t._v("×")])]):t._e()])],2):t._e(),a("div",{staticClass:"modal-body",class:t.bodyClasses},[t._t("default")],2),t.$slots.footer?a("div",{staticClass:"modal-footer",class:t.footerClasses},[t._t("footer")],2):t._e()])])])])},Y=[],G=(a("a9e3"),a("7c76")),K={name:"modal",components:{SlideYUpTransition:G["b"]},props:{show:Boolean,showClose:{type:Boolean,default:!0},type:{type:String,default:"",validator:function(t){var e=["","notice","mini"];return-1!==e.indexOf(t)},description:'Modal type (notice|mini|"") '},modalClasses:{type:[Object,String],description:"Modal dialog css classes"},modalContentClasses:{type:[Object,String],description:"Modal dialog content css classes"},gradient:{type:String,description:"Modal gradient type (danger, primary etc)"},headerClasses:{type:[Object,String],description:"Modal Header css classes"},bodyClasses:{type:[Object,String],description:"Modal Body css classes"},footerClasses:{type:[Object,String],description:"Modal Footer css classes"},animationDuration:{type:Number,default:500,description:"Modal transition duration"}},methods:{closeModal:function(){this.$emit("update:show",!1),this.$emit("close")}},watch:{show:function(t){var e=document.body.classList;t?e.add("modal-open"):e.remove("modal-open")}}},Z=K,Q=(a("22d7"),Object(m["a"])(Z,J,Y,!1,null,null,null)),X=Q.exports,tt=(a("cd74"),{lang:"default",strs:{default:{title:"Builder Options","title.task":"User Task","title.global":"Global Options","title.c/c++":"C/C++ Compiler","title.asmber":"Assembler","title.linker":"Linker","title.task.prebuild":"Prebuild Task","title.task.posbuild":"PostBuild Task","title.task.name":"Task-{0} Name","title.task.command":"Command","title.task.options":"Options","title.task.env.name":"Variable Name","title.task.env.desc":"Description/Value","prompt.task.prebuild":"Run some shell task before build","prompt.task.posbuild":"Run some shell task after build done","prompt.task.name":"A Human-Readable Name","prompt.task.command":"Shell Command","prompt.task.disable":"Disable this command","prompt.task.aif":"Whether to skip subsequent commands if this command is failed","prompt.task.sbif":"Whether to stop building directly when this command is failed","placeholder.task.command":"Input shell commands","title.btn.add":"Add","title.btn.del":"Delete","title.btn.save":"Save All","title.btn.open.config":"Open Config","title.btn.variables":"Variables"},"zh-cn":{title:"构建器选项","title.task":"用户任务","title.global":"全局选项","title.c/c++":"C/C++ 编译器","title.asmber":"汇编器","title.linker":"链接器","title.task.prebuild":"构建前任务","title.task.posbuild":"构建后任务","title.task.name":"任务-{0} 名称","title.task.command":"命令","title.task.options":"选项","title.task.env.name":"变量名","title.task.env.desc":"描述/值","prompt.task.prebuild":"指定一些任务,将在构建开始前运行","prompt.task.posbuild":"指定一些任务,将在构建完成后运行","prompt.task.name":"用于显示的只读名称","prompt.task.command":"Shell 命令行","prompt.task.disable":"禁用该任务","prompt.task.aif":"如果失败,则跳过后续命令","prompt.task.sbif":"如果失败,则停止构建","placeholder.task.command":"输入 Shell 命令行","title.btn.add":"添加","title.btn.del":"删除","title.btn.save":"全部保存","title.btn.open.config":"打开配置","title.btn.variables":"变量"}},style:{textarea:"font-family: Consolas",input:"min-height: 43px; height: 43px;"},textarea:{autosize:{minRows:2}},dialog:{title:"",msg:"",visible:!1,theme:"success"},location:{tooltip:{title:"top",options:"right"}},prjEnvList:[],contextData:{},task:{before:[],after:[]},global:[],cpp:[],asm:[],linker:[]}),et={name:"App",components:{Tabs:O,TabPane:z,BaseButton:M,Card:V,Modal:X},data:function(){return tt},mounted:function(){var t=this;s=this,this.$on("save-status",(function(e){t.dialog.title=e.title||t.title,t.dialog.msg=e.msg,t.dialog.theme=e.success?"success":"danger",t.dialog.visible=!0}))},methods:{getInstance:function(){return s},forceUpdate:function(){this.$forceUpdate()},onSave:function(){s.$emit("save-all")},onOpenConfig:function(){s.$emit("open-config")},notify:function(t){s.$notify(t)},message:function(t){s.$message(t)},get_str:function(t){return this.strs[this.lang]&&void 0!==this.strs[this.lang][t]?this.strs[this.lang][t]:this.strs["default"][t]||t},query_input_auto_complete_list:function(t,e,a){if(this.contextData[a]){var s=this.contextData[a].filter((function(e){return e.includes(t)})).map((function(t){return{value:t}}));e(s)}},add_prebuild_task:function(){this.task.before.push({name:"new prebuild task",disable:!1,abortAfterFailed:!1,stopBuildAfterFailed:!0,command:'echo "project name: ${ProjectName}"'})},delete_prebuild_task:function(t){var e=this.task.before.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.before.splice(e,1)},add_postbuild_task:function(){this.task.after.push({name:"new postbuild task",disable:!1,abortAfterFailed:!1,command:'echo "firmware: ${OutDir}/${ProjectName}.hex"'})},delete_postbuild_task:function(t){var e=this.task.after.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.after.splice(e,1)},add_to_list:function(t,e){void 0!=e&&null!=e&&("object"==Object(r["a"])(e)?t.push({value:JSON.parse(JSON.stringify(e))}):t.push({value:e}))},delete_from_list:function(t,e){var a=t.findIndex((function(t){return t.value==e}));-1!=a&&t.splice(a,1)},get_readable_name:function(t){return t.disable_readable_name?this.to_readable_name(t.name):t.readable_name||t.description||this.to_readable_name(t.name)},to_readable_name:function(t){var e,a=t.replace(/-/g," ").replace(/#/g,"/").replace(/\$/g,""),s="",l="",o=function(t){return t>="a"&&t<="z"},n=function(t){return t>="A"&&t<="Z"},r=Object(i["a"])(a);try{for(r.s();!(e=r.n()).done;){var c=e.value;n(c)&&o(l)&&(s+=" "),s+=c,l=c}}catch(d){r.e(d)}finally{r.f()}return s},get_rows_by_value:function(t){var e=t.length/60+(t.length%60>0);return e||1}}};$((function(){$('[data-toggle="popover"]').popover()})),$((function(){$('[data-toggle="tooltip"]').tooltip()}));var at=et,st=(a("034f"),Object(m["a"])(at,o,n,!1,null,null,null)),it=st.exports,lt=(a("4d1c"),a("d5a0"),a("a4d4"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"badge",class:["badge-"+t.type,t.rounded?"badge-pill":"",t.circle&&"badge-circle"]},[t._t("default",[t.icon?a("i",{class:t.icon}):t._e()])],2)}),ot=[],nt={name:"badge",props:{tag:{type:String,default:"span",description:"Html tag to use for the badge."},rounded:{type:Boolean,default:!1,description:"Whether badge is of pill type"},circle:{type:Boolean,default:!1,description:"Whether badge is circle"},icon:{type:String,default:"",description:"Icon name. Will be overwritten by slot if slot is used"},type:{type:String,default:"default",description:"Badge type (primary|info|danger|default|warning|success)"}}},rt=nt,ct=Object(m["a"])(rt,lt,ot,!1,null,null,null),dt=ct.exports,ut=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("fade-transition",[t.visible?a("div",{staticClass:"alert",class:["alert-"+t.type,{"alert-dismissible":t.dismissible}],attrs:{role:"alert"}},[t.dismissible?[t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()]),t._t("dismiss-icon",[a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"alert","aria-label":"Close"},on:{click:t.dismissAlert}},[a("span",{attrs:{"aria-hidden":"true"}},[t._v("×")])])])]:t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()])],2):t._e()])},pt=[],mt={name:"base-alert",components:{FadeTransition:G["a"]},props:{type:{type:String,default:"default",description:"Alert type"},icon:{type:String,default:"",description:"Alert icon. Will be overwritten by default slot"},dismissible:{type:Boolean,default:!1,description:"Whether alert is closes when clicking"}},data:function(){return{visible:!0}},methods:{dismissAlert:function(){this.visible=!1}}},vt=mt,ft=Object(m["a"])(vt,ut,pt,!1,null,null,null),bt=ft.exports,gt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-checkbox",class:[{disabled:t.disabled},t.inlineClass]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"checkbox",disabled:t.disabled},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default",[t.inline?a("span"):t._e()])],2)])},ht=[];function _t(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:7,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",a="",s=0;s0?this.pageCount:this.total>0?Math.ceil(this.total/this.perPage):1},pagesToDisplay:function(){return this.totalPages>0&&this.totalPages=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e>this.totalPages?this.totalPages-this.pagesToDisplay+1:this.value-t}return 1},maxPage:function(){if(this.value>=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e1&&this.$emit("input",this.value-1)}},watch:{perPage:function(){this.$emit("input",1)},total:function(){this.$emit("input",1)}}},It=zt,Dt=Object(m["a"])(It,Pt,Bt,!1,null,null,null),Nt=Dt.exports,Wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"progress-wrapper"},[a("div",{class:"progress-"+t.type},[a("div",{staticClass:"progress-label"},[t._t("label",[a("span",[t._v(t._s(t.label))])])],2),a("div",{staticClass:"progress-percentage"},[t._t("default",[a("span",[t._v(t._s(t.value)+"%")])])],2)]),a("div",{staticClass:"progress",style:"height: "+t.height+"px"},[a("div",{staticClass:"progress-bar",class:t.computedClasses,style:"width: "+t.value+"%;",attrs:{role:"progressbar","aria-valuenow":t.value,"aria-valuemin":"0","aria-valuemax":"100"}})])])},Et=[],Ft={name:"base-progress",props:{striped:{type:Boolean,description:"Whether progress is striped"},animated:{type:Boolean,description:"Whether progress is animated (works only with `striped` prop together)"},label:{type:String,description:"Progress label (shown on the left above progress)"},height:{type:Number,default:8,description:"Progress line height"},type:{type:String,default:"default",description:"Progress type (e.g danger, primary etc)"},value:{type:Number,default:0,validator:function(t){return t>=0&&t<=100},description:"Progress value"}},computed:{computedClasses:function(){return[{"progress-bar-striped":this.striped},{"progress-bar-animated":this.animated},Object(N["a"])({},"bg-".concat(this.type),this.type)]}}},Mt=Ft,Ht=Object(m["a"])(Mt,Wt,Et,!1,null,null,null),Lt=Ht.exports,Rt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-radio",class:[t.inlineClass,{disabled:t.disabled}]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"radio",disabled:t.disabled},domProps:{value:t.name,checked:t._q(t.model,t.name)},on:{change:function(e){t.model=t.name}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default")],2)])},qt=[],Ut={name:"base-radio",props:{name:{type:[String,Number],description:"Radio label"},disabled:{type:Boolean,description:"Whether radio is disabled"},value:{type:[String,Boolean],description:"Radio value"},inline:{type:Boolean,description:"Whether radio is inline"}},data:function(){return{cbId:""}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}},inlineClass:function(){return this.inline?"form-check-inline":""}},mounted:function(){this.cbId=_t()}},Vt=Ut,Jt=Object(m["a"])(Vt,Rt,qt,!1,null,null,null),Yt=Jt.exports,Gt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"input-slider-container"},[a("div",{ref:"slider",staticClass:"input-slider",class:["slider-"+t.type],attrs:{disabled:t.disabled}})])},Kt=[],Zt=a("e9fa"),Qt=a.n(Zt),Xt={name:"base-slider",props:{value:{type:[String,Array,Number],description:"Slider value"},disabled:{type:Boolean,description:"Whether slider is disabled"},range:{type:Object,default:function(){return{min:0,max:100}},description:"Slider range (defaults to 0-100)"},type:{type:String,default:"",description:"Slider type (e.g primary, danger etc)"},options:{type:Object,default:function(){return{}},description:"noUiSlider options"}},computed:{connect:function(){return Array.isArray(this.value)||[!0,!1]}},data:function(){return{slider:null}},methods:{createSlider:function(){var t=this;Qt.a.create(this.$refs.slider,Object(St["a"])({start:this.value,connect:this.connect,range:this.range},this.options));var e=this.$refs.slider.noUiSlider;e.on("slide",(function(){var a=e.get();a!==t.value&&t.$emit("input",a)}))}},mounted:function(){this.createSlider()},watch:{value:function(t,e){var a=this.$refs.slider.noUiSlider,s=a.get();t!==e&&s!==t&&(Array.isArray(s)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,a){return e===t[a]}))&&a.set(t):a.set(t))}}},te=Xt,ee=Object(m["a"])(te,Gt,Kt,!1,null,null,null),ae=ee.exports,se=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("label",{staticClass:"custom-toggle"},[a("input",t._g(t._b({directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}},"input",t.$attrs,!1),t.$listeners)),a("span",{staticClass:"custom-toggle-slider rounded-circle"})])},ie=[],le={name:"base-switch",inheritAttrs:!1,props:{value:{type:Boolean,default:!1,description:"Switch value"}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}}}},oe=le,ne=Object(m["a"])(oe,se,ie,!1,null,null,null),re=ne.exports,ce=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"icon icon-shape",class:[t.size&&"icon-"+t.size,t.type&&"icon-shape-"+t.type,t.gradient&&"bg-gradient-"+t.gradient,t.shadow&&"shadow",t.rounded&&"rounded-circle",t.color&&"text-"+t.color]},[t._t("default",[a("i",{class:t.name})])],2)},de=[],ue={name:"icon",props:{name:{type:String,default:"",description:"Icon name"},size:{type:String,default:"",description:"Icon size"},type:{type:String,default:"",description:"Icon type (primary, warning etc)"},gradient:{type:String,default:"",description:"Icon gradient type (primary, warning etc)"},color:{type:String,default:"",description:"Icon color (primary, warning etc)"},shadow:{type:Boolean,default:!1,description:"Whether icon has shadow"},rounded:{type:Boolean,default:!1,description:"Whether icon is rounded"}}},pe=ue,me=Object(m["a"])(pe,ce,de,!1,null,null,null),ve=me.exports,fe={install:function(t){t.component(dt.name,dt),t.component(bt.name,bt),t.component(M.name,M),t.component(Tt.name,Tt),t.component(xt.name,xt),t.component(Nt.name,Nt),t.component(Lt.name,Lt),t.component(Yt.name,Yt),t.component(ae.name,ae),t.component(re.name,re),t.component(V.name,V),t.component(ve.name,ve)}},be={bind:function(t,e,a){t.clickOutsideEvent=function(s){t==s.target||t.contains(s.target)||a.context[e.expression](s)},document.body.addEventListener("click",t.clickOutsideEvent)},unbind:function(t){document.body.removeEventListener("click",t.clickOutsideEvent)}},ge={install:function(t){t.directive("click-outside",be)}},he=ge,_e=a("caf9"),ye={install:function(t){t.use(fe),t.use(he),t.use(_e["a"])}},Ce=a("5c96"),ke=a.n(Ce);a("0fae");l["default"].config.productionTip=!1,l["default"].use(ye),l["default"].use(ke.a);var xe=void 0,we=void 0,$e=!1,Se=it.data(),Oe=acquireVsCodeApi();function je(){$e||($e=!0,console.log("[builder options view] start init and create page ..."),new l["default"]({render:function(t){return t(it)}}).$mount("#app"),xe=it.methods.getInstance(),xe.$on("save-all",(function(){return Te()})),xe.$on("open-config",(function(){return Oe.postMessage("open-config")})),console.log("[builder options view] app inited done !"))}function Ae(t){it.methods.notify({type:t.success?"success":"error",title:t.success?"Success":"Failed",message:t.msg,position:"bottom-right"})}function Te(){if(xe){console.log("[builder options view] start post data ...");var t={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var e in t){var a=xe.task[e];we[t[e]]=a}var s={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var l in s){var o,n=xe[l],r=we[s[l]],c=Object(i["a"])(n);try{for(c.s();!(o=c.n()).done;){var d=o.value;switch(d.type){case"array":d.value.length>0?r[d.name]=d.value.map((function(t){return t.value})):delete r[d.name];break;case"bool":d.value?r[d.name]=d.value:delete r[d.name];break;default:"string"==typeof d.value&&""==d.value.trim()?delete r[d.name]:r[d.name]=d.value;break}"string"==typeof r[d.name]&&(r[d.name]=r[d.name].replace(/\r\n|\n/g," ").replace(/\s{2,}/g," ").trim())}}catch(u){c.e(u)}finally{c.f()}}Oe.postMessage(we),console.log("[builder options view] post data done !")}else Ae({success:!1,msg:"App have not inited !"})}function Pe(t,e){var a,s=e.split("/"),l=t,o=Object(i["a"])(s);try{for(o.s();!(a=o.n()).done;){var n=a.value;if(""!=n){if(void 0==l)break;l=l[n]}}}catch(r){o.e(r)}finally{o.f()}return l}function Be(t,e){if(e["$ref"]){var a=Pe(t,e["$ref"].replace("#/",""));for(var s in a)void 0===e[s]&&(e[s]=a[s])}return e}function ze(t){return"huge"==t["size"]?"textarea":"small"==t["size"]?"short_input":Array.isArray(t.type)?"string":t.type}function Ie(t,e,a){var s=ze(t);switch(e.description=t.markdownDescription||t.description,De&&t["description.".concat(De)]&&(e.description=t["description.".concat(De)]),e.disable_readable_name=t.disable_readable_name,e.readable_name=t.readable_name,De&&t["readable_name.".concat(De)]&&(e.readable_name=t["readable_name.".concat(De)]),e.auto_complete_ctx=t["auto_complete_ctx"],s){case"array":e.type=s;break;case"boolean":e.type="bool";break;case"string":t["enum"]?(e.type="enum",e.enums=t["enum"],e.enumDesc=t["enumDescriptions"]||[]):(e.type="input",e.placeHolder=e.description);break;case"short_input":case"textarea":e.type=s,e.placeHolder=e.description;break;default:return console.warn("[builder options view] [warn] not support this type: '".concat(s,"' for field !")),!1}if("array"==s&&t.items)if(e.child_type=t.items.type,"string"==e.child_type)e.child_def_val=t.items.default||"",t.items["enum"]&&(e.enums=t.items["enum"],e.enumDesc=t.items["enumDescriptions"]||[]);else if("object"==e.child_type)for(var i in e.child_def_val={},e.child_key_meta={},t.items.properties)e.child_def_val[i]=t.items.properties[i].default,e.child_key_meta[i]=t.items.properties[i];if(a)switch(s){case"array":e.value=(Array.isArray(a)?a:[a]).map((function(t){return{value:t}}));break;case"boolean":e.value=a;break;default:e.value=Array.isArray(a)?a.join(" "):a;break}else"bool"==e.type?e.value=!1:"enum"==e.type?e.value=t.default||"":"array"==e.type?e.value=[]:e.value="";return!0}window.addEventListener("message",(function(t){if(t.data.status){var e={success:t.data.status.success,msg:t.data.status.msg};Ae(e)}else we=t.data.data,Ne(t.data.model,we,t.data.info),je()})),document.addEventListener("keydown",(function(t){"s"==t.key.toLowerCase()&&t.ctrlKey&&(t.preventDefault(),Te())})),Oe.postMessage("eide.options_view.launched");var De=void 0;function Ne(t,e,a){console.log("[builder options view] start init data ...");var s=t.properties,l={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var o in a&&(De=a.lang,Se.lang=De,Se.prjEnvList=a.envList,Se.contextData=a.contextData||{}),l){var n=s[l[o]].properties,r=e[l[o]],c=Se[o];for(var d in n){var u=Be(t,n[d]),p={name:d};Ie(u,p,r[d])&&c.push(p)}}var m={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var v in m){var f=Se.task[v],b=e[m[v]];if(b&&Array.isArray(b)){var g,h=Object(i["a"])(b);try{for(h.s();!(g=h.n()).done;){var _=g.value;f.push(_)}}catch(y){h.e(y)}finally{h.f()}}}console.log("[builder options view] Init data done !")}},"85ec":function(t,e,a){},a4d4:function(t,e,a){},be87:function(t,e,a){},d5a0:function(t,e,a){}}); +(function(t){function e(e){for(var s,o,n=e[0],r=e[1],c=e[2],u=0,p=[];u-1&&e.splice(a,1)}},mounted:function(){var t=this;this.$nextTick((function(){t.value?t.findAndActivateTab(t.value):t.tabs.length>0&&t.activateTab(t.tabs[0])}))},watch:{value:function(t){this.findAndActivateTab(t)}}},w=x,S=Object(m["a"])(w,c,d,!1,null,null,null),O=S.exports,j=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"show",rawName:"v-show",value:t.active,expression:"active"}],staticClass:"tab-pane fade",class:{"active show":t.active},attrs:{id:t.id||t.label,"aria-expanded":t.active}},[t._t("default")],2)},A=[],T={name:"tab-pane",props:["label","id","title"],inject:["addTab","removeTab"],data:function(){return{active:!1}},mounted:function(){this.addTab(this)},destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el),this.removeTab(this)}},P=T,B=Object(m["a"])(P,j,A,!1,null,null,null),z=B.exports,I=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"btn",class:t.classes,attrs:{type:"button"===t.tag?t.nativeType:""},on:{click:t.handleClick}},[t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--icon"},[t._t("icon",[a("i",{class:t.icon})])],2):t._e(),t.$slots.default?t._e():a("i",{class:t.icon}),t.$slots.icon||t.icon&&t.$slots.default?a("span",{staticClass:"btn-inner--text"},[t._t("default",[t._v(" "+t._s(t.text)+" ")])],2):t._e(),t.$slots.icon||t.icon?t._e():t._t("default")],2)},D=[],N=a("ade3"),W={name:"base-button",props:{tag:{type:String,default:"button",description:"Button tag (default -> button)"},type:{type:String,default:"default",description:"Button type (e,g primary, danger etc)"},size:{type:String,default:"",description:"Button size lg|sm"},textColor:{type:String,default:"",description:"Button text color (e.g primary, danger etc)"},nativeType:{type:String,default:"button",description:"Button native type (e.g submit,button etc)"},icon:{type:String,default:"",description:"Button icon"},text:{type:String,default:"",description:"Button text in case not provided via default slot"},outline:{type:Boolean,default:!1,description:"Whether button style is outline"},rounded:{type:Boolean,default:!1,description:"Whether button style is rounded"},iconOnly:{type:Boolean,default:!1,description:"Whether button contains only an icon"},block:{type:Boolean,default:!1,description:"Whether button is of block type"}},computed:{classes:function(){var t=[{"btn-block":this.block},{"rounded-circle":this.rounded},{"btn-icon-only":this.iconOnly},Object(N["a"])({},"text-".concat(this.textColor),this.textColor),{"btn-icon":this.icon||this.$slots.icon},this.type&&!this.outline?"btn-".concat(this.type):"",this.outline?"btn-outline-".concat(this.type):""];return this.size&&t.push("btn-".concat(this.size)),t}},methods:{handleClick:function(t){this.$emit("click",t)}}},E=W,F=Object(m["a"])(E,I,D,!1,null,null,null),M=F.exports,H=function(){var t,e,a,s=this,i=s.$createElement,l=s._self._c||i;return l("div",{staticClass:"card",class:[{"card-lift--hover":s.hover},{shadow:s.shadow},(t={},t["shadow-"+s.shadowSize]=s.shadowSize,t),(e={},e["bg-gradient-"+s.gradient]=s.gradient,e),(a={},a["bg-"+s.type]=s.type,a)]},[s.$slots.header?l("div",{staticClass:"card-header",class:s.headerClasses},[s._t("header")],2):s._e(),s.noBody?s._e():l("div",{staticClass:"card-body",class:s.bodyClasses},[s._t("default")],2),s.noBody?s._t("default"):s._e(),s.$slots.footer?l("div",{staticClass:"card-footer",class:s.footerClasses},[s._t("footer")],2):s._e()],2)},L=[],R={name:"card",props:{type:{type:String,description:"Card type"},gradient:{type:String,description:"Card background gradient type (warning,danger etc)"},hover:{type:Boolean,description:"Whether card should move on hover"},shadow:{type:Boolean,description:"Whether card has shadow"},shadowSize:{type:String,description:"Card shadow size"},noBody:{type:Boolean,default:!1,description:"Whether card should have wrapper body class"},bodyClasses:{type:[String,Object,Array],description:"Card body css classes"},headerClasses:{type:[String,Object,Array],description:"Card header css classes"},footerClasses:{type:[String,Object,Array],description:"Card footer css classes"}}},q=R,U=Object(m["a"])(q,H,L,!1,null,null,null),V=U.exports,J=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("SlideYUpTransition",{attrs:{duration:t.animationDuration}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.show,expression:"show"}],staticClass:"modal fade",class:[{"show d-block":t.show},{"d-none":!t.show},{"modal-mini":"mini"===t.type}],attrs:{tabindex:"-1",role:"dialog","aria-hidden":!t.show},on:{click:function(e){return e.target!==e.currentTarget?null:t.closeModal(e)}}},[a("div",{staticClass:"modal-dialog modal-dialog-centered",class:[{"modal-notice":"notice"===t.type},t.modalClasses]},[a("div",{staticClass:"modal-content",class:[t.gradient?"bg-gradient-"+t.gradient:"",t.modalContentClasses]},[t.$slots.header?a("div",{staticClass:"modal-header",class:[t.headerClasses]},[t._t("header"),t._t("close-button",[t.showClose?a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-label":"Close"},on:{click:t.closeModal}},[a("span",{attrs:{"aria-hidden":!t.show}},[t._v("×")])]):t._e()])],2):t._e(),a("div",{staticClass:"modal-body",class:t.bodyClasses},[t._t("default")],2),t.$slots.footer?a("div",{staticClass:"modal-footer",class:t.footerClasses},[t._t("footer")],2):t._e()])])])])},Y=[],G=(a("a9e3"),a("7c76")),K={name:"modal",components:{SlideYUpTransition:G["b"]},props:{show:Boolean,showClose:{type:Boolean,default:!0},type:{type:String,default:"",validator:function(t){var e=["","notice","mini"];return-1!==e.indexOf(t)},description:'Modal type (notice|mini|"") '},modalClasses:{type:[Object,String],description:"Modal dialog css classes"},modalContentClasses:{type:[Object,String],description:"Modal dialog content css classes"},gradient:{type:String,description:"Modal gradient type (danger, primary etc)"},headerClasses:{type:[Object,String],description:"Modal Header css classes"},bodyClasses:{type:[Object,String],description:"Modal Body css classes"},footerClasses:{type:[Object,String],description:"Modal Footer css classes"},animationDuration:{type:Number,default:500,description:"Modal transition duration"}},methods:{closeModal:function(){this.$emit("update:show",!1),this.$emit("close")}},watch:{show:function(t){var e=document.body.classList;t?e.add("modal-open"):e.remove("modal-open")}}},Z=K,Q=(a("22d7"),Object(m["a"])(Z,J,Y,!1,null,null,null)),X=Q.exports,tt=(a("cd74"),{lang:"default",strs:{default:{title:"Builder Options","title.task":"User Task","title.global":"Global Options","title.c/c++":"C/C++ Compiler","title.asmber":"Assembler","title.linker":"Linker","title.task.prebuild":"Prebuild Task","title.task.posbuild":"PostBuild Task","title.task.name":"Task-{0} Name","title.task.command":"Command","title.task.options":"Options","title.task.env.name":"Variable Name","title.task.env.desc":"Description/Value","prompt.task.prebuild":"Run some shell task before build","prompt.task.posbuild":"Run some shell task after build done","prompt.task.name":"A Human-Readable Name","prompt.task.command":"Shell Command","prompt.task.disable":"Disable this command","prompt.task.aif":"Whether to skip subsequent commands if this command is failed","prompt.task.sbif":"Whether to stop building directly when this command is failed","placeholder.task.command":"Input shell commands","title.btn.add":"Add","title.btn.del":"Delete","title.btn.save":"Save All","title.btn.open.config":"Open Config","title.btn.variables":"Variables"},"zh-cn":{title:"构建器选项","title.task":"用户任务","title.global":"全局选项","title.c/c++":"C/C++ 编译器","title.asmber":"汇编器","title.linker":"链接器","title.task.prebuild":"构建前任务","title.task.posbuild":"构建后任务","title.task.name":"任务-{0} 名称","title.task.command":"命令","title.task.options":"选项","title.task.env.name":"变量名","title.task.env.desc":"描述/值","prompt.task.prebuild":"指定一些任务,将在构建开始前运行","prompt.task.posbuild":"指定一些任务,将在构建完成后运行","prompt.task.name":"用于显示的只读名称","prompt.task.command":"Shell 命令行","prompt.task.disable":"禁用该任务","prompt.task.aif":"如果失败,则跳过后续命令","prompt.task.sbif":"如果失败,则停止构建","placeholder.task.command":"输入 Shell 命令行","title.btn.add":"添加","title.btn.del":"删除","title.btn.save":"全部保存","title.btn.open.config":"打开配置","title.btn.variables":"变量"}},style:{textarea:"font-family: Consolas",input:"min-height: 43px; height: 43px;"},textarea:{autosize:{minRows:2}},dialog:{title:"",msg:"",visible:!1,theme:"success"},location:{tooltip:{title:"top",options:"right"}},prjEnvList:[],contextData:{},task:{before:[],after:[]},global:[],cpp:[],asm:[],linker:[]}),et={name:"App",components:{Tabs:O,TabPane:z,BaseButton:M,Card:V,Modal:X},data:function(){return tt},mounted:function(){var t=this;s=this,this.$on("save-status",(function(e){t.dialog.title=e.title||t.title,t.dialog.msg=e.msg,t.dialog.theme=e.success?"success":"danger",t.dialog.visible=!0}))},methods:{getInstance:function(){return s},forceUpdate:function(){this.$forceUpdate()},onSave:function(){s.$emit("save-all")},onOpenConfig:function(){s.$emit("open-config")},notify:function(t){s.$notify(t)},message:function(t){s.$message(t)},get_str:function(t){return this.strs[this.lang]&&void 0!==this.strs[this.lang][t]?this.strs[this.lang][t]:this.strs["default"][t]||t},query_input_auto_complete_list:function(t,e,a){if(this.contextData[a]){var s=this.contextData[a].filter((function(e){return e.includes(t)})).map((function(t){return{value:t}}));e(s)}},add_prebuild_task:function(){this.task.before.push({name:"new prebuild task",disable:!1,abortAfterFailed:!1,stopBuildAfterFailed:!0,command:'echo "project name: ${ProjectName}"'})},delete_prebuild_task:function(t){var e=this.task.before.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.before.splice(e,1)},add_postbuild_task:function(){this.task.after.push({name:"new postbuild task",disable:!1,abortAfterFailed:!1,command:'echo "firmware: ${OutDir}/${ProjectName}.hex"'})},delete_postbuild_task:function(t){var e=this.task.after.findIndex((function(e){return e.name==t.name&&e.command==t.command}));-1!=e&&this.task.after.splice(e,1)},add_to_list:function(t,e){void 0!=e&&null!=e&&("object"==Object(r["a"])(e)?t.push({value:JSON.parse(JSON.stringify(e))}):t.push({value:e}))},delete_from_list:function(t,e){var a=t.findIndex((function(t){return t.value==e}));-1!=a&&t.splice(a,1)},get_readable_name:function(t){return t.disable_readable_name?this.to_readable_name(t.name):t.readable_name||t.description||this.to_readable_name(t.name)},to_readable_name:function(t){var e,a=t.replace(/-/g," ").replace(/#/g,"/").replace(/\$/g,""),s="",l="",o=function(t){return t>="a"&&t<="z"},n=function(t){return t>="A"&&t<="Z"},r=Object(i["a"])(a);try{for(r.s();!(e=r.n()).done;){var c=e.value;n(c)&&o(l)&&(s+=" "),s+=c,l=c}}catch(d){r.e(d)}finally{r.f()}return s},get_rows_by_value:function(t){var e=t.length/60+(t.length%60>0);return e||1}}};$((function(){$('[data-toggle="popover"]').popover()})),$((function(){$('[data-toggle="tooltip"]').tooltip()}));var at=et,st=(a("034f"),Object(m["a"])(at,o,n,!1,null,null,null)),it=st.exports,lt=(a("4d1c"),a("d5a0"),a("a4d4"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(t.tag,{tag:"component",staticClass:"badge",class:["badge-"+t.type,t.rounded?"badge-pill":"",t.circle&&"badge-circle"]},[t._t("default",[t.icon?a("i",{class:t.icon}):t._e()])],2)}),ot=[],nt={name:"badge",props:{tag:{type:String,default:"span",description:"Html tag to use for the badge."},rounded:{type:Boolean,default:!1,description:"Whether badge is of pill type"},circle:{type:Boolean,default:!1,description:"Whether badge is circle"},icon:{type:String,default:"",description:"Icon name. Will be overwritten by slot if slot is used"},type:{type:String,default:"default",description:"Badge type (primary|info|danger|default|warning|success)"}}},rt=nt,ct=Object(m["a"])(rt,lt,ot,!1,null,null,null),dt=ct.exports,ut=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("fade-transition",[t.visible?a("div",{staticClass:"alert",class:["alert-"+t.type,{"alert-dismissible":t.dismissible}],attrs:{role:"alert"}},[t.dismissible?[t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()]),t._t("dismiss-icon",[a("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"alert","aria-label":"Close"},on:{click:t.dismissAlert}},[a("span",{attrs:{"aria-hidden":"true"}},[t._v("×")])])])]:t._t("default",[t.icon?a("span",{staticClass:"alert-inner--icon"},[a("i",{class:t.icon})]):t._e(),t.$slots.text?a("span",{staticClass:"alert-inner--text"},[t._t("text")],2):t._e()])],2):t._e()])},pt=[],mt={name:"base-alert",components:{FadeTransition:G["a"]},props:{type:{type:String,default:"default",description:"Alert type"},icon:{type:String,default:"",description:"Alert icon. Will be overwritten by default slot"},dismissible:{type:Boolean,default:!1,description:"Whether alert is closes when clicking"}},data:function(){return{visible:!0}},methods:{dismissAlert:function(){this.visible=!1}}},vt=mt,ft=Object(m["a"])(vt,ut,pt,!1,null,null,null),bt=ft.exports,gt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-checkbox",class:[{disabled:t.disabled},t.inlineClass]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"checkbox",disabled:t.disabled},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default",[t.inline?a("span"):t._e()])],2)])},ht=[];function _t(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:7,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",a="",s=0;s0?this.pageCount:this.total>0?Math.ceil(this.total/this.perPage):1},pagesToDisplay:function(){return this.totalPages>0&&this.totalPages=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e>this.totalPages?this.totalPages-this.pagesToDisplay+1:this.value-t}return 1},maxPage:function(){if(this.value>=this.pagesToDisplay){var t=Math.floor(this.pagesToDisplay/2),e=t+this.value;return e1&&this.$emit("input",this.value-1)}},watch:{perPage:function(){this.$emit("input",1)},total:function(){this.$emit("input",1)}}},It=zt,Dt=Object(m["a"])(It,Pt,Bt,!1,null,null,null),Nt=Dt.exports,Wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"progress-wrapper"},[a("div",{class:"progress-"+t.type},[a("div",{staticClass:"progress-label"},[t._t("label",[a("span",[t._v(t._s(t.label))])])],2),a("div",{staticClass:"progress-percentage"},[t._t("default",[a("span",[t._v(t._s(t.value)+"%")])])],2)]),a("div",{staticClass:"progress",style:"height: "+t.height+"px"},[a("div",{staticClass:"progress-bar",class:t.computedClasses,style:"width: "+t.value+"%;",attrs:{role:"progressbar","aria-valuenow":t.value,"aria-valuemin":"0","aria-valuemax":"100"}})])])},Et=[],Ft={name:"base-progress",props:{striped:{type:Boolean,description:"Whether progress is striped"},animated:{type:Boolean,description:"Whether progress is animated (works only with `striped` prop together)"},label:{type:String,description:"Progress label (shown on the left above progress)"},height:{type:Number,default:8,description:"Progress line height"},type:{type:String,default:"default",description:"Progress type (e.g danger, primary etc)"},value:{type:Number,default:0,validator:function(t){return t>=0&&t<=100},description:"Progress value"}},computed:{computedClasses:function(){return[{"progress-bar-striped":this.striped},{"progress-bar-animated":this.animated},Object(N["a"])({},"bg-".concat(this.type),this.type)]}}},Mt=Ft,Ht=Object(m["a"])(Mt,Wt,Et,!1,null,null,null),Lt=Ht.exports,Rt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"custom-control custom-radio",class:[t.inlineClass,{disabled:t.disabled}]},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],staticClass:"custom-control-input",attrs:{id:t.cbId,type:"radio",disabled:t.disabled},domProps:{value:t.name,checked:t._q(t.model,t.name)},on:{change:function(e){t.model=t.name}}}),a("label",{staticClass:"custom-control-label",attrs:{for:t.cbId}},[t._t("default")],2)])},qt=[],Ut={name:"base-radio",props:{name:{type:[String,Number],description:"Radio label"},disabled:{type:Boolean,description:"Whether radio is disabled"},value:{type:[String,Boolean],description:"Radio value"},inline:{type:Boolean,description:"Whether radio is inline"}},data:function(){return{cbId:""}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}},inlineClass:function(){return this.inline?"form-check-inline":""}},mounted:function(){this.cbId=_t()}},Vt=Ut,Jt=Object(m["a"])(Vt,Rt,qt,!1,null,null,null),Yt=Jt.exports,Gt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"input-slider-container"},[a("div",{ref:"slider",staticClass:"input-slider",class:["slider-"+t.type],attrs:{disabled:t.disabled}})])},Kt=[],Zt=a("e9fa"),Qt=a.n(Zt),Xt={name:"base-slider",props:{value:{type:[String,Array,Number],description:"Slider value"},disabled:{type:Boolean,description:"Whether slider is disabled"},range:{type:Object,default:function(){return{min:0,max:100}},description:"Slider range (defaults to 0-100)"},type:{type:String,default:"",description:"Slider type (e.g primary, danger etc)"},options:{type:Object,default:function(){return{}},description:"noUiSlider options"}},computed:{connect:function(){return Array.isArray(this.value)||[!0,!1]}},data:function(){return{slider:null}},methods:{createSlider:function(){var t=this;Qt.a.create(this.$refs.slider,Object(St["a"])({start:this.value,connect:this.connect,range:this.range},this.options));var e=this.$refs.slider.noUiSlider;e.on("slide",(function(){var a=e.get();a!==t.value&&t.$emit("input",a)}))}},mounted:function(){this.createSlider()},watch:{value:function(t,e){var a=this.$refs.slider.noUiSlider,s=a.get();t!==e&&s!==t&&(Array.isArray(s)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,a){return e===t[a]}))&&a.set(t):a.set(t))}}},te=Xt,ee=Object(m["a"])(te,Gt,Kt,!1,null,null,null),ae=ee.exports,se=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("label",{staticClass:"custom-toggle"},[a("input",t._g(t._b({directives:[{name:"model",rawName:"v-model",value:t.model,expression:"model"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(t.model)?t._i(t.model,null)>-1:t.model},on:{change:function(e){var a=t.model,s=e.target,i=!!s.checked;if(Array.isArray(a)){var l=null,o=t._i(a,l);s.checked?o<0&&(t.model=a.concat([l])):o>-1&&(t.model=a.slice(0,o).concat(a.slice(o+1)))}else t.model=i}}},"input",t.$attrs,!1),t.$listeners)),a("span",{staticClass:"custom-toggle-slider rounded-circle"})])},ie=[],le={name:"base-switch",inheritAttrs:!1,props:{value:{type:Boolean,default:!1,description:"Switch value"}},computed:{model:{get:function(){return this.value},set:function(t){this.$emit("input",t)}}}},oe=le,ne=Object(m["a"])(oe,se,ie,!1,null,null,null),re=ne.exports,ce=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"icon icon-shape",class:[t.size&&"icon-"+t.size,t.type&&"icon-shape-"+t.type,t.gradient&&"bg-gradient-"+t.gradient,t.shadow&&"shadow",t.rounded&&"rounded-circle",t.color&&"text-"+t.color]},[t._t("default",[a("i",{class:t.name})])],2)},de=[],ue={name:"icon",props:{name:{type:String,default:"",description:"Icon name"},size:{type:String,default:"",description:"Icon size"},type:{type:String,default:"",description:"Icon type (primary, warning etc)"},gradient:{type:String,default:"",description:"Icon gradient type (primary, warning etc)"},color:{type:String,default:"",description:"Icon color (primary, warning etc)"},shadow:{type:Boolean,default:!1,description:"Whether icon has shadow"},rounded:{type:Boolean,default:!1,description:"Whether icon is rounded"}}},pe=ue,me=Object(m["a"])(pe,ce,de,!1,null,null,null),ve=me.exports,fe={install:function(t){t.component(dt.name,dt),t.component(bt.name,bt),t.component(M.name,M),t.component(Tt.name,Tt),t.component(xt.name,xt),t.component(Nt.name,Nt),t.component(Lt.name,Lt),t.component(Yt.name,Yt),t.component(ae.name,ae),t.component(re.name,re),t.component(V.name,V),t.component(ve.name,ve)}},be={bind:function(t,e,a){t.clickOutsideEvent=function(s){t==s.target||t.contains(s.target)||a.context[e.expression](s)},document.body.addEventListener("click",t.clickOutsideEvent)},unbind:function(t){document.body.removeEventListener("click",t.clickOutsideEvent)}},ge={install:function(t){t.directive("click-outside",be)}},he=ge,_e=a("caf9"),ye={install:function(t){t.use(fe),t.use(he),t.use(_e["a"])}},Ce=a("5c96"),ke=a.n(Ce);a("0fae");l["default"].config.productionTip=!1,l["default"].use(ye),l["default"].use(ke.a);var xe=void 0,we=void 0,$e=!1,Se=it.data(),Oe=acquireVsCodeApi();function je(){$e||($e=!0,console.log("[builder options view] start init and create page ..."),new l["default"]({render:function(t){return t(it)}}).$mount("#app"),xe=it.methods.getInstance(),xe.$on("save-all",(function(){return Te()})),xe.$on("open-config",(function(){return Oe.postMessage("open-config")})),console.log("[builder options view] app inited done !"))}function Ae(t){it.methods.notify({type:t.success?"success":"error",title:t.success?"Success":"Failed",message:t.msg,position:"bottom-right"})}function Te(){if(xe){console.log("[builder options view] start post data ...");var t={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var e in t){var a=xe.task[e];we[t[e]]=a}var s={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var l in s){var o,n=xe[l],r=we[s[l]],c=Object(i["a"])(n);try{for(c.s();!(o=c.n()).done;){var d=o.value;switch(d.type){case"array":d.value.length>0?r[d.name]=d.value.map((function(t){return t.value})):delete r[d.name];break;case"bool":d.value?r[d.name]=d.value:delete r[d.name];break;default:"string"==typeof d.value&&""==d.value.trim()?delete r[d.name]:r[d.name]=d.value;break}"string"==typeof r[d.name]&&(r[d.name]=r[d.name].replace(/\r\n|\n/g," ").replace(/\s{2,}/g," ").trim())}}catch(u){c.e(u)}finally{c.f()}}Oe.postMessage(we),console.log("[builder options view] post data done !")}else Ae({success:!1,msg:"App have not inited !"})}function Pe(t,e){var a,s=e.split("/"),l=t,o=Object(i["a"])(s);try{for(o.s();!(a=o.n()).done;){var n=a.value;if(""!=n){if(void 0==l)break;l=l[n]}}}catch(r){o.e(r)}finally{o.f()}return l}function Be(t,e){if(e["$ref"]){var a=Pe(t,e["$ref"].replace("#/",""));for(var s in a)void 0===e[s]&&(e[s]=a[s])}return e}function ze(t){return"huge"==t["size"]?"textarea":"small"==t["size"]?"short_input":Array.isArray(t.type)?"string":t.type}function Ie(t,e,a){var s=ze(t);switch(e.description=t.markdownDescription||t.description,De&&t["description.".concat(De)]&&(e.description=t["description.".concat(De)]),e.disable_readable_name=t.disable_readable_name,e.readable_name=t.readable_name,De&&t["readable_name.".concat(De)]&&(e.readable_name=t["readable_name.".concat(De)]),e.auto_complete_ctx=t["auto_complete_ctx"],s){case"array":e.type=s;break;case"boolean":e.type="bool";break;case"string":t["enum"]?(e.type="enum",e.enums=t["enum"],e.enumDesc=t["enumDescriptions"]||[]):(e.type="input",e.placeHolder=e.description);break;case"short_input":case"textarea":e.type=s,e.placeHolder=e.description;break;default:return console.warn("[builder options view] [warn] not support this type: '".concat(s,"' for field !")),!1}if("array"==s&&t.items)if(e.child_type=t.items.type,"string"==e.child_type)e.child_def_val=t.items.default||"",t.items["enum"]&&(e.enums=t.items["enum"],e.enumDesc=t.items["enumDescriptions"]||[]);else if("object"==e.child_type)for(var i in e.child_def_val={},e.child_key_meta={},t.items.properties)e.child_def_val[i]=t.items.properties[i].default,e.child_key_meta[i]=t.items.properties[i];if(a)switch(s){case"array":e.value=(Array.isArray(a)?a:[a]).map((function(t){return{value:t}}));break;case"boolean":e.value=a;break;default:e.value=Array.isArray(a)?a.join(" "):a;break}else"bool"==e.type?e.value=!1:"enum"==e.type?e.value=t.default||"":"array"==e.type?e.value=[]:e.value="";return!0}window.addEventListener("message",(function(t){if(t.data.status){var e={success:t.data.status.success,msg:t.data.status.msg};Ae(e)}else we=t.data.data,Ne(t.data.model,we,t.data.info),je()})),document.addEventListener("keydown",(function(t){"s"==t.key.toLowerCase()&&t.ctrlKey&&(t.preventDefault(),Te())})),Oe.postMessage("eide.options_view.launched");var De=void 0;function Ne(t,e,a){console.log("[builder options view] start init data ...");var s=t.properties,l={global:"global",cpp:"c/cpp-compiler",asm:"asm-compiler",linker:"linker"};for(var o in a&&(De=a.lang,Se.lang=De,Se.prjEnvList=a.envList,Se.contextData=a.contextData||{}),l){var n=s[l[o]].properties,r=e[l[o]],c=Se[o];for(var d in n){var u=Be(t,n[d]),p={name:d};Ie(u,p,r[d])&&c.push(p)}}var m={before:"beforeBuildTasks",after:"afterBuildTasks"};for(var v in m){var f=Se.task[v],b=e[m[v]];if(b&&Array.isArray(b)){var g,h=Object(i["a"])(b);try{for(h.s();!(g=h.n()).done;){var _=g.value;f.push(_)}}catch(y){h.e(y)}finally{h.f()}}}console.log("[builder options view] Init data done !")}},"85ec":function(t,e,a){},a4d4:function(t,e,a){},be87:function(t,e,a){},d5a0:function(t,e,a){}}); //# sourceMappingURL=app.js.map \ No newline at end of file From 3036a098f4a6e4383c311c4f2049d1f82df4d155 Mon Sep 17 00:00:00 2001 From: null Date: Wed, 16 Jul 2025 23:57:40 +0800 Subject: [PATCH 4/4] v3.23.5 revision --- CHANGELOG.md | 5 +++-- package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f8a4526..590e7f1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ All notable version changes will be recorded in this file. *** -### [v3.23.4] revision +### [v3.23.5] revision **Fix**: - `Map View`: Fix in some cases, 'map.view' item's diff size is incorrect (LLVM_ARM Toolchain). @@ -14,7 +14,8 @@ All notable version changes will be recorded in this file. **Improve**: - `Map View`: Improve COSMIC_STM8 'map.view' feature. - `LLVM Arm Toolchain`: Add '-Oz' option. - - `Builder Options`: Better option description text. + - `Builder Options`: Better option description text. Change web view elements layout. + - `Toolchain Download`: Update remote package `arm-none-eabi-gcc` to v14.3. *** diff --git a/package.json b/package.json index 426de6fb..cd1009ff 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "homepage": "https://em-ide.com", "license": "MIT", "description": "A mcu development environment for 8051/AVR/STM8/Cortex-M/MIPS/RISC-V", - "version": "3.23.4", + "version": "3.23.5", "preview": false, "engines": { "vscode": "^1.67.0"