UNPKG

@appscode/ui-builder

Version:
1 lines 7.75 kB
import{z as e,s as t,_ as a,u as n,ad as i,e as l,g as r,h as s,n as o}from"./wrapper-5d451278.js";import"vue";import"./es.array.concat-bc6da240.js";import{c}from"./index-ba66ec6f.js";import{_ as u,r as d}from"./stickyContent-c27d9838.js";import{s as m,_ as h}from"./SingleStepForm-e4a2064c.js";import"./web.immediate-b3534d9e.js";import{f}from"./function-call-mixins-9e1aa828.js";var b=n.some,p=e("some"),v=t("some");a({target:"Array",proto:!0,forced:!p||!v},{some:function(e){return b(this,e,arguments.length>1?arguments[1]:void 0)}});var x=["if","fetch","computed","onChange","disabled","individualItemDisabilityCheck","encoder","decoder","moduleResolver","required","newItemValidator"],C=o({render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.isModuleFetching?[a("ub-resource-loader")]:["form"===e.elementType?a("form",{class:{"ac-nested-elements":e.labelText&&e.showLabel},style:e.ui.style,attrs:{action:""}},[e.labelText&&e.showLabel?a("ub-label-element",{attrs:{label:e.label,"is-collapsible":!0,"is-form-hidden":e.isFormHidden},on:{click:function(t){e.isFormHidden=!e.isFormHidden}}}):e._e(),e._v(" "),a("div",{class:{"nested-body":e.labelText&&e.showLabel,"is-hidden":e.isFormHidden}},e._l(e.elements,(function(t,n){return a("ub-form-element",{key:e.ui.identifier+"-"+n+"-"+(t.label&&t.label.text||t.title),attrs:{element:t,"reusable-element-ctx":e.calcReusableElementCtx(),schema:e.resolveSchema(t.schema),"disabled-prop":e.disabled,"whole-schema":e.wholeSchema,"whole-model":e.wholeModel||e.value,discriminator:e.discriminator,required:e.isRequired(t.schema),chartUrl:e.chartUrl},on:{"update-model-value":e.updateModelValueEvent},model:{value:e.modelValue[e.resolveSchemaToVmodel(t)],callback:function(a){e.$set(e.modelValue,e.resolveSchemaToVmodel(t),a)},expression:"modelValue[resolveSchemaToVmodel(element)]"}})})),1)],1):a("div",{class:{"ac-nested-elements":e.labelText&&e.showLabel},style:e.ui.style},[e.labelText&&e.showLabel?a("ub-label-element",{attrs:{label:e.label,"is-collapsible":!0,"is-form-hidden":e.isFormHidden},on:{click:function(t){e.isFormHidden=!e.isFormHidden}}}):e._e(),e._v(" "),a("div",{class:{"nested-body":e.labelText&&e.showLabel,"is-hidden":e.isFormHidden}},[a("ub-form-element",{key:e.ui.identifier+"-"+(e.element.label&&e.element.label.text||e.element.title),attrs:{element:e.element,"reusable-element-ctx":e.calcReusableElementCtx(),schema:e.resolveSchema(e.element.schema),"disabled-prop":e.disabled,"whole-schema":e.wholeSchema,"whole-model":e.wholeModel||e.value,discriminator:e.discriminator,required:e.isRequired(e.element.schema),chartUrl:e.chartUrl},on:{"update-model-value":e.updateModelValueEvent},model:{value:e.singleModelValue,callback:function(t){e.singleModelValue=t},expression:"singleModelValue"}})],1)],1)]],2)},staticRenderFns:[]},void 0,{name:"ub-reusable-element",mixins:[f,m],components:{UbResourceLoader:function(){return import("./ResourceLoader-0f895f18.js").then((function(e){return e.default}))}},props:{chartUrl:{type:String,default:""}},data:function(){return{jsons:{},singleModelValue:null,alias:"",dataContext:{},functionCallbacks:{},isModuleFetching:!1}},computed:{elementType:function(){return"object"===i(this.jsons.ui)?Array.isArray(this.jsons.ui)?"form":"single-element":void 0},elements:function(){var e=this,t=[];return"form"===this.elementType&&(t=this.jsons.ui.map((function(t){return e.updateUiWithAlias(t)}))||[]),t},element:function(){return"single-element"===this.elementType?this.updateUiWithAlias(this.jsons.ui):{}},reusableLanguage:function(){return this.jsons.language||{}},reusableFunctions:function(){return this.jsons.functions||{}},reusableElementAlias:function(){return this.reusableElementCtx.alias||""},parentDataContext:function(){return this.reusableElementCtx.dataContext||{}},parentfunctionCallbacks:function(){return this.reusableElementCtx.functionCallbacks||{}},reusableElementChart:function(){return this.reusableElementCtx.chart||{}},labelText:function(){return this.$ubt(this.label.text||"")}},watch:{reusableElementAlias:{immediate:!0,handler:function(e){this.alias=e}},"ui.moduleResolver":{immediate:!0,handler:function(e){var t=this;e&&(this.isModuleFetching=!0,setImmediate(u(d.mark((function a(){return d.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,t.performFuncCall(e,{chart:l(l({},t.reusableElementChart),{},{url:t.chartUrl})});case 2:t.jsons=a.sent,t.isModuleFetching=!1;case 4:case"end":return a.stop()}}),a)})))))}},"ui.dataContext":{immediate:!0,deep:!0,handler:function(e,t){c(r(e||{}),r(t||{})).length>0&&this.initializeDataContext(e||{})}},"ui.functionCallbacks":{immediate:!0,deep:!0,handler:function(e,t){c(r(e||{}),r(t||{})).length>0&&this.initializefunctionCallbacks(e||{})}},reusableLanguage:{deep:!0,handler:function(e){this.$store.commit("wizard/language$update",{path:this.reusableElementAlias,value:e})}},reusableFunctions:{deep:!0,handler:function(e){this.$store.commit("wizard/functions$update",{path:this.reusableElementAlias,value:e})}},value:{deep:!0,immediate:!0,handler:function(e){JSON.stringify(e)!==JSON.stringify(this.singleModelValue)&&(this.singleModelValue=e)}},singleModelValue:{deep:!0,handler:function(e){this.$emit("input",e)}}},methods:{updateUiWithAlias:function(e){var t=this,a=r(e);return Object.keys(a).forEach((function(e){var n=a[e];if("object"===i(n))Array.isArray(n)?a[e]=n.map((function(e){return t.updateUiWithAlias(e)})):a[e]=t.updateUiWithAlias(n);else if("text"===e||"addFormLabel"===e){var l=t.alias.replaceAll("/",".")+"."+n;t.$i18n.te("$wizard.".concat(l))?a[e]=l:a[e]=n}else if("string"==typeof n&&x.some((function(t){return t===e})))a[e]=t.alias+"/"+n;else if("$ref"===e){var r=n.split("#"),s=h(r,2),o=s[0],c=s[1];if("schema"===o){var u=((t.ui.schema.$ref||"").split("#")[1]||"").trim().replace(/^#?\/|\/$/g,""),d=c.trim().replace(/^#?\/|\/$/g,"");a[e]="schema#/".concat(u,"/").concat(d)}}})),a},initializeDataContext:function(e){var t=this;Object.keys(e).forEach((function(a){try{var n=t.getModelPath(e[a])||"",i=t.readValue(n,"dataContext")||"";t.$set(t.dataContext,a,i),t.attachWatcherToDataContext(n,a)}catch(e){console.log(e)}}))},initializefunctionCallbacks:function(e){var t=this;Object.keys(e).forEach((function(a){try{var n=e[a].$ref,i=t.readValue(n,"functionCallbacks")||"";"functions"===n.split("#").shift()?t.$set(t.functionCallbacks,a,(function(e){return i(t.contextObject,e)})):t.$set(t.functionCallbacks,a,i)}catch(e){console.log(e)}}))},readValue:function(e,t){if(e){var a=e.split("#"),n=h(a,2),i=n[0],l=n[1];if("dataContext"===t){if("model"===i)return s(r(this.modelJson),l);if("discriminator"===i)return s(r(this.parentDiscriminator),l);if("data"===i)return s(r(this.parentDataContext),l);throw Error("dataContext property $ref can only be from either 'model' or 'discriminator' or 'data'")}if("functions"===i)return s(this.functions,l);if("parentFunctions"===i)return s(this.parentfunctionCallbacks,l);throw Error("functionCallbacks property $ref can only be from either 'functions' or 'parentFunctions'")}throw Error("$ref cannot be empty for ".concat(t," properties"))},attachWatcherToDataContext:function(e,t){var a=this,n=e.split("#"),i=h(n,2),l=i[0],r="";"model"===l?r+="modelJson":"discriminator"===l?r+="parentDiscriminator":"data"===l&&(r+="parentDataContext");var s=r+i[1].replace(/\//g,"."),o=this.$watch(s,(function(e){var n=a.dataContext[t];JSON.stringify(n)!==JSON.stringify(e)&&a.$set(a.dataContext,t,e)}),{deep:!0});this.$set(this.unWatchers,"dataContext/".concat(t),o)},calcReusableElementCtx:function(){var e=r(this.reusableElementCtx);return e.dataContext=r(this.dataContext)||{},e.functionCallbacks=this.functionCallbacks||{},e}}},void 0,!1,void 0,!1,void 0,void 0,void 0);export default C;