UNPKG

@appscode/ui-builder

Version:
1 lines 9.15 kB
import{S as e,a4 as t,a1 as i,a9 as n,_ as r,ac as a,e as o,m as l,g as s,ad as u,h as c,ae as d,af as m,n as f}from"./wrapper-5d451278.js";import{c as h}from"./index-ba66ec6f.js";var p=n.f,v=function(n){return function(r){for(var a,o=e(r),l=t(o),s=l.length,u=0,c=[];s>u;)a=l[u++],i&&!p.call(o,a)||c.push(n?[a,o[a]]:o[a]);return c}},b={entries:v(!0),values:v(!1)}.values;function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var i=[],n=!0,r=!1,a=void 0;try{for(var o,l=e[Symbol.iterator]();!(n=(o=l.next()).done)&&(i.push(o.value),!t||i.length!==t);n=!0);}catch(e){r=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw a}}return i}}(e,t)||a(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}r({target:"Object",stat:!0},{values:function(e){return b(e)}});var g={components:{UbFormElement:function(){return import("./FormElement-3679b8af.js").then((function(e){return e.F})).then((function(e){return e.default}))},UbLabelElement:function(){return import("./LabelElement-d1b528f2.js").then((function(e){return e.default}))},UbToggleElement:function(){return import("./ToggleElement-8ae5ebec.js").then((function(e){return e.default}))}},props:{contextObject:{type:Object,default:function(){return{}}},parentDiscriminator:{type:Object,default:function(){return{}}},label:{type:Object,default:function(){return{}}},showLabel:{type:Boolean,default:!1},ui:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},wholeSchema:{type:Object,default:function(){return{}}},wholeModel:{type:null,default:""},value:{type:null,default:""},disabled:{type:Boolean,default:!1},reusableElementCtx:{type:Object,default:function(){return{}}},chartUrl:{type:String,default:""},hideForm:{type:Boolean,default:!1},toggleOption:{type:Object,default:function(){return{}}}},data:function(){return{discriminator:{},modelValue:{},emitValue:{},storedValue:{},isFormHidden:!1,unWatchers:{}}},mounted:function(){this.isFormHidden=this.hideForm,this.showToggleOption&&this.toggleOption.setInitialStatusFalse&&(this.isFormHidden=this.toggleOption.setInitialStatusFalse)},destroyed:function(){Object.values(this.unWatchers).forEach((function(e){e()}))},computed:o(o({},l({initialModel:"wizard/initialModel",modelJson:"wizard/model",keepEmptyModel:"wizard/keepEmptyModel"})),{},{elements:function(){return this.ui.elements||[]},labelText:function(){return this.$ubt(this.label.text||"")},showToggleOption:function(){return!!this.toggleOption.show}}),watch:{"ui.discriminator":{immediate:!0,deep:!0,handler:function(e,t){h(s(e||{}),s(t||{})).length>0&&this.initializeDiscriminators(e||{})}},parentDiscriminator:{immediate:!0,deep:!0,handler:function(e){var t=this;Object.keys(e).forEach((function(i){t.$set(t.discriminator,i,e[i])}))}},initialModel:{immediate:!0,deep:!0,handler:function(){this.initializeModelValueProperties()}},emitValue:{deep:!0,handler:function(e){JSON.stringify(this.storedValue)!==JSON.stringify(e)&&(this.storedValue=s(e),this.$emit("input",s(e)))}},elements:{deep:!0,handler:function(){this.initializeModelValueProperties()}}},methods:{isEmptyValue:function(e){var t=this;if(e&&"object"===u(e)){if(Array.isArray(e))return!e.length||e.reduce((function(e,i){return e&&t.isEmptyValue(i)}),!0);var i=Object.keys(e);return!i.length||i.reduce((function(i,n){return i&&t.isEmptyValue(e[n])}),!0)}return null==e||""===e},trimValue:function(e){var t=this;if(!e||"object"!==u(e))return null!=e&&""!==e?e:void 0;if(Array.isArray(e)){if(e.length){var i=e.map((function(e){return t.trimValue(e)})).filter((function(e){return e}));return i.length?i:void 0}}else{var n=Object.keys(e);if(n.length){var r={};n.forEach((function(i){r[i]=t.trimValue(e[i])}));var a={};return n.forEach((function(e){r[e]&&(a[e]=r[e])})),Object.keys(a).length?a:void 0}}},updateModelValueEvent:function(e){this.$emit("update-model-value",e)},initializeDiscriminators:function(e){var t=this;e&&Object.keys(e).forEach((function(i){t.$set(t.discriminator,i,e[i].default)}))},initializeModelValueProperties:function(){var e=this,t=this.elements,i=function(t){Object.keys(e.modelValue).forEach((function(i){if(i.startsWith("model#".concat(t))){var n=c(s(e.modelJson),i.replace("model#","")),r=s(e.modelValue)[i],a=e.trimValue(s(n)),o=e.trimValue(s(r));JSON.stringify(a)!==JSON.stringify(o)&&e.$set(e.modelValue,i,s(a))}}))};t&&t.forEach((function(t){var n=t.schema;if(n){var r=e.getModelPath(n),a=y(r.split("#"),2),o=a[0],l=a[1];e.$set(e.modelValue,r,e.getValue(r,s(e.modelJson))),e.attatchWatcherToModelValueKey(r,t.type||"single-step-form"),"model"===o&&e.$store.commit("wizard/modelPathWatchers$add",{path:l,func:i}),e.attatchWatcherToPath(r)}else"single-step-form"===t.type&&e.$set(e.modelValue,JSON.stringify(t.elements),null)}))},attatchWatcherToPath:function(e){var t=this,i=y(e.split("#"),2),n=i[0],r="";"model"===n?r+="modelJson":"discriminator"===n&&(r+="discriminator");var a=r+i[1].replace(/\//g,"."),o=this.$watch(a,(function(i){var n=t.modelValue[e];JSON.stringify(n)!==JSON.stringify(i)&&t.$set(t.modelValue,e,i)}),{deep:!0});this.$set(this.unWatchers,e,o)},attatchWatcherToModelValueKey:function(e,t){var i=this,n=this.$watch((function(){return i.modelValue[e]}),(function(n){var r=e,a=y(r.split("#"),2),o=a[0],l=a[1],u=c(i.keepEmptyModel,l),m=u?n:i.trimValue(n);if("model"===o){if(!i.discriminator.$isParentSingleStepFormArray&&"single-step-form"!==t)if(u){var f=i.getValue(r,s(i.modelJson));JSON.stringify(f)!==JSON.stringify(m)&&i.$store.commit("wizard/model$update",{path:l,value:m,force:!0})}else if(i.isEmptyValue(m))i.$store.commit("wizard/model$delete",l);else{var h=i.getValue(r,s(i.modelJson)),p=i.trimValue(h),v=i.trimValue(m);JSON.stringify(p)!==JSON.stringify(v)&&i.$store.commit("wizard/model$update",{path:l,value:v,force:!0})}}else if("discriminator"===o){var b=l&&l.split("/")[1],g=i.ui.discriminator&&i.ui.discriminator[b]&&i.ui.discriminator[b].emitAs;if(g){var V=l&&l.split("/").pop(),O=l.replace("/".concat(b,"/"),"/".concat(g,"/"));d(i.discriminator,O,m,!0),i.$set(i.emitValue,V,m)}else d(i.discriminator,l,m,!0)}var S=l&&l.split("/").pop();"model"===o&&i.$set(i.emitValue,S,m)}),{deep:!0,immediate:!0});this.$set(this.unWatchers,"modelValue.".concat(e),n)},resolveSchema:function(e){if(e){var t=e.$ref;if(t){var i=y(t.split("#"),2),n=i[0],r=i[1];if(n){if("schema"===n)return m(this.wholeSchema,"#".concat(r));if("discriminator"===n)return m(this.ui.discriminator,"#".concat(r))}return m(this.wholeSchema,"#".concat(r))}return e}},resolveSchemaToVmodel:function(e){var t=e.schema,i=e.elements;return t?this.getModelPath(t):JSON.stringify(i)},getModelPath:function(e){if(e){var t="",i=e.$ref,n=e.$model;if(n?t=n:i&&(t=i),t){var r=y(t.split("#"),2),a=r[0],o=r[1].replace(/\/properties/g,"");return"schema"===a?"model#".concat(o):"discriminator"===a?"discriminator#".concat(o):"data"===a?"data#".concat(o):o}}},getValue:function(e,t){if(e){var i=y(e.split("#"),2),n=i[0],r=i[1],a=e.split("/").pop();if(void 0!==this.value[a]&&null!==this.value[a])return this.value[a];if("model"===n)return c(s(t),r);if("discriminator"===n)return c(this.discriminator,r)}return this.value},isRequired:function(e){if(e){var t=e.$ref;if(t){var i=t.split("/"),n=i.pop();i.pop();var r=y("".concat(i.join("/"),"/required").split("#"),2),a=r[0],o=r[1],l=[];return a?"schema"===a?l=m(this.wholeSchema,"#".concat(o))||[]:"discriminator"===a&&(l=m(this.ui.discriminator,"#".concat(o))||[]):l=m(this.wholeSchema,"#".concat(o))||[],l.includes(n)}return!1}return!1}}},V=f({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("form",{class:{"ac-nested-elements":e.labelText&&e.showLabel},style:e.ui.style,attrs:{action:""}},[e.labelText&&e.showLabel?[e.showToggleOption?i("ub-toggle-element",{attrs:{label:e.label,"is-collapsible":!0,"is-form-hidden":e.isFormHidden,"toggle-option":e.ui.toggleOption,"context-object":e.contextObject},on:{click:function(t){e.isFormHidden=!e.isFormHidden}}}):i("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(" "),i("div",{class:{"nested-body":e.labelText&&e.showLabel,"is-hidden":e.isFormHidden}},e._l(e.elements,(function(t,n){return i("ub-form-element",{key:e.ui.identifier+"-"+n+"-"+(t.label&&t.label.text||t.title),attrs:{element:t,"reusable-element-ctx":e.reusableElementCtx,schema:e.resolveSchema(t.schema),"disabled-prop":e.disabled,"whole-schema":e.wholeSchema,"whole-model":e.wholeModel||e.value,discriminator:e.discriminator,"chart-url":e.chartUrl},on:{"update-model-value":e.updateModelValueEvent},model:{value:e.modelValue[e.resolveSchemaToVmodel(t)],callback:function(i){e.$set(e.modelValue,e.resolveSchemaToVmodel(t),i)},expression:"modelValue[resolveSchemaToVmodel(element)]"}})})),1)],2)},staticRenderFns:[]},void 0,{mixins:[g]},void 0,!1,void 0,!1,void 0,void 0,void 0),O=Object.freeze({__proto__:null,default:V});export{O as S,y as _,g as s};