├── .browserslistrc
├── .prettierrc
├── public
└── favicon.ico
├── dist
├── vue-openapi-form.esm.js
├── vue-openapi-form.cjs.js
├── size-d02f66d9.js
├── FormFooterControl-9c8c3f48.js
├── FormFooterControl-eec1f0a9.js
├── size-27a9a503.js
├── TabsBody-09c099c1.js
├── TabsBody-415c3b23.js
├── Tabs-71c515fc.js
├── Tabs-f456f148.js
├── TabItem-05b72b6f.js
├── TabItem-9e42838b.js
├── fold-ab363a66.js
├── fold-e405c002.js
├── tabs-1a22f292.js
├── tabs-693e2862.js
├── tabs-ae6e6a83.js
├── Banner-3286242e.js
├── Banner-bfcd6aac.js
├── Banner-7a2df04c.js
├── Banner-a2991050.js
├── Preloader-e17b7349.js
├── Preloader-46710ac3.js
├── tabs-714485d5.js
├── tabs-e549bda7.js
├── tabs-f0820640.js
├── EditorTabs-ec1fa66a.js
├── ComponentErrors-1d936ce4.js
├── ComponentErrors-cbe1f015.js
├── Form-75fe67e1.js
├── RightWrongSigns-e0964dee.js
├── Form-0dec9ace.js
├── JsonForm-9e1eac41.js
├── JsonForm-bfde48ef.js
├── JsonForm-cff18cd0.js
├── EditorTabs-d3112cc4.js
├── JsonForm-802cdc31.js
├── JsonForm-c1cf3ad9.js
├── JsonForm-e91fe6e6.js
├── RightWrongSigns-75d38a15.js
├── Tabs-877aa47f.js
├── Tabs-8b79b1b8.js
├── Tabs-99642040.js
├── Tabs-724892f9.js
├── Editor-696573e5.js
├── Editor-9fead870.js
├── ObjectFormWrapper-d4223e01.js
├── ObjectFormWrapper-80f4c733.js
├── ObjectFormWrapper-ce7a5cf0.js
├── Editor-04edac3c.js
├── Editor-2cb2cacf.js
├── ObjectFormWrapper-d8b53092.js
├── ObjectFormWrapper-66e8b9cd.js
├── ObjectFormWrapper-cea98462.js
├── MonacoEditor-f41826a2.js
├── MonacoEditor-16bf802f.js
├── ArrayInputItems-592f292e.js
├── ArrayInputItems-af73e993.js
├── ArrayInputItems-ee63c6cb.js
├── ArrayInputItems-81e58d12.js
├── ArrayInputItems-a24635a8.js
├── ArrayInputItems-b40b2d6a.js
├── MonacoEditor-d6e4df49.js
├── MonacoEditor-50a0f8ab.js
├── ObjectForm-c6b72f9a.js
├── ObjectForm-910ddc19.js
├── ObjectForm-e6fabd17.js
├── ObjectForm-6c630204.js
├── ObjectForm-757bb3e3.js
├── ObjectForm-a92a1e1d.js
├── KeyValuePairItems-20e93397.js
├── KeyValuePairItems-4652bb38.js
├── KeyValuePairItems-93f507c4.js
├── KeyValuePairItems-43c36157.js
├── KeyValuePairItems-55bcab7e.js
└── KeyValuePairItems-c5d5aad6.js
├── src
├── store
│ └── index.js
├── mixins
│ ├── size.js
│ ├── tabs.js
│ ├── fold.js
│ ├── validation.js
│ └── model.js
├── main.js
├── plugins
│ ├── monaco.js
│ └── vee-validate.js
├── components
│ ├── ComponentErrors.vue
│ ├── RightWrongSigns.vue
│ ├── JsonForm.vue
│ ├── YamlForm.vue
│ ├── Tabs.vue
│ ├── ObjectFormWrapper.vue
│ ├── VueOpenapiForm.vue
│ ├── SchemaModel.vue
│ ├── sub-components
│ │ └── ArrayInputItems.vue
│ └── ObjectForm.vue
├── entry.js
├── assets
│ └── scss
│ │ └── main.scss
└── functional-components
│ └── extend-schema.js
├── .firebaserc
├── firebase.json
├── .gitignore
├── .eslintrc
├── babel.config.js
├── .github
├── .kodiak.toml
└── workflows
│ ├── ci.yml
│ └── release.yml
├── vite.config.js
├── tsconfig.json
├── index.html
├── README.md
├── package.json
└── rollup.config.js
/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true
3 | }
4 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/appscode-cloud/vue-openapi-form/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/dist/vue-openapi-form.esm.js:
--------------------------------------------------------------------------------
1 | export{s as VueOpenapiForm,p as default}from"./entry-f11f5a48.js";import"vue";
--------------------------------------------------------------------------------
/dist/vue-openapi-form.cjs.js:
--------------------------------------------------------------------------------
1 | "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./entry-5480607d.js");require("vue"),exports.VueOpenapiForm=e.s,exports.default=e.p;
--------------------------------------------------------------------------------
/dist/size-d02f66d9.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as e}from"vue";var i=e({data:function(){return{isMedium:!1}},mounted:function(){document.querySelector(".vue-openapi-form").classList.contains("is-medium")&&(this.isMedium=!0)}});export{i as s};
--------------------------------------------------------------------------------
/dist/FormFooterControl-9c8c3f48.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const r={class:"form-footer-control"};const t={render:function(t,o){return e.openBlock(),e.createElementBlock("div",r,[e.renderSlot(t.$slots,"default")])}};exports.default=t;
--------------------------------------------------------------------------------
/dist/FormFooterControl-eec1f0a9.js:
--------------------------------------------------------------------------------
1 | import{openBlock as o,createElementBlock as t,renderSlot as r}from"vue";const e={class:"form-footer-control"};const n={render:function(n,s){return o(),t("div",e,[r(n.$slots,"default")])}};export{n as default};
--------------------------------------------------------------------------------
/dist/size-27a9a503.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue").defineComponent({data:function(){return{isMedium:!1}},mounted:function(){document.querySelector(".vue-openapi-form").classList.contains("is-medium")&&(this.isMedium=!0)}});exports.s=e;
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import { createStore } from 'vuex';
2 |
3 | const store = createStore({
4 | state: {},
5 | getters: {},
6 | mutations: {},
7 | actions: {},
8 | modules: {},
9 | });
10 |
11 | export default store;
12 |
--------------------------------------------------------------------------------
/dist/TabsBody-09c099c1.js:
--------------------------------------------------------------------------------
1 | import{openBlock as t,createElementBlock as a,renderSlot as e}from"vue";const o={class:"ac-tabs-body is-content-available"};const s={render:function(s,n){return t(),a("div",o,[e(s.$slots,"default")])}};export{s as default};
--------------------------------------------------------------------------------
/dist/TabsBody-415c3b23.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const t={class:"ac-tabs-body is-content-available"};const r={render:function(r,n){return e.openBlock(),e.createElementBlock("div",t,[e.renderSlot(r.$slots,"default")])}};exports.default=r;
--------------------------------------------------------------------------------
/dist/Tabs-71c515fc.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const t={class:"tabs ac-tabs"};const r={render:function(r,l){return e.openBlock(),e.createElementBlock("div",t,[e.createElementVNode("ul",null,[e.renderSlot(r.$slots,"default")])])}};exports.default=r;
--------------------------------------------------------------------------------
/dist/Tabs-f456f148.js:
--------------------------------------------------------------------------------
1 | import{openBlock as t,createElementBlock as s,createElementVNode as a,renderSlot as e}from"vue";const l={class:"tabs ac-tabs"};const n={render:function(n,o){return t(),s("div",l,[a("ul",null,[e(n.$slots,"default")])])}};export{n as default};
--------------------------------------------------------------------------------
/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "kubedb-new-e7965"
4 | },
5 | "targets": {
6 | "kubedb-new-e7965": {
7 | "hosting": {
8 | "form": [
9 | "vue-openapi-form"
10 | ]
11 | }
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/dist/TabItem-05b72b6f.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),t=e.defineComponent({__name:"TabItem",props:{isActive:{type:Boolean,default:!1}},setup:t=>(t,a)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass({"is-active":t.isActive}),"data-testid":"tab-item"},[e.renderSlot(t.$slots,"default")],2))});exports.default=t;
--------------------------------------------------------------------------------
/dist/TabItem-9e42838b.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as t,openBlock as e,createElementBlock as a,normalizeClass as s,renderSlot as i}from"vue";var l=t({__name:"TabItem",props:{isActive:{type:Boolean,default:!1}},setup:t=>(t,l)=>(e(),a("li",{class:s({"is-active":t.isActive}),"data-testid":"tab-item"},[i(t.$slots,"default")],2))});export{l as default};
--------------------------------------------------------------------------------
/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "target": "form",
4 | "public": "dist",
5 | "ignore": [
6 | "firebase.json",
7 | "**/.*",
8 | "**/node_modules/**"
9 | ],
10 | "rewrites": [
11 | {
12 | "source": "**",
13 | "destination": "/index.html"
14 | }
15 | ]
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 |
4 | # local env files
5 | .env.local
6 | .env.*.local
7 |
8 | # Log files
9 | npm-debug.log*
10 | yarn-debug.log*
11 | yarn-error.log*
12 |
13 | # Editor directories and files
14 | .idea
15 | .vscode
16 | *.suo
17 | *.ntvs*
18 | *.njsproj
19 | *.sln
20 | *.sw?
21 | firebase-debug.log
22 | .firebase/
23 |
--------------------------------------------------------------------------------
/dist/fold-ab363a66.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as e}from"vue";var o=e({props:{isSelfFolded:{type:Boolean,default:function(){return!1}},expandForm:{type:Boolean,default:function(){return!1}}},data:function(){return{isFolded:!0}},watch:{expandForm:{immediate:!0,handler:function(e){this.isFolded=!e}}},methods:{toggleFold:function(){this.isFolded=!this.isFolded}}});export{o as f};
--------------------------------------------------------------------------------
/dist/fold-e405c002.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue").defineComponent({props:{isSelfFolded:{type:Boolean,default:function(){return!1}},expandForm:{type:Boolean,default:function(){return!1}}},data:function(){return{isFolded:!0}},watch:{expandForm:{immediate:!0,handler:function(e){this.isFolded=!e}}},methods:{toggleFold:function(){this.isFolded=!this.isFolded}}});exports.f=e;
--------------------------------------------------------------------------------
/src/mixins/size.js:
--------------------------------------------------------------------------------
1 | import { defineComponent } from 'vue';
2 |
3 | export default defineComponent({
4 | data() {
5 | return {
6 | isMedium: false,
7 | };
8 | },
9 | mounted() {
10 | const form = document.querySelector('.vue-openapi-form');
11 | if (form.classList.contains('is-medium')) {
12 | this.isMedium = true;
13 | }
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import App from './App.vue';
3 | import store from './store';
4 | import { registerValidationRules } from '@/plugins/vee-validate';
5 | import FloatingVue from 'floating-vue';
6 |
7 | import { useMonaco } from './plugins/monaco';
8 | useMonaco();
9 |
10 | registerValidationRules();
11 |
12 | createApp(App).use(store).use(FloatingVue).mount('#app');
13 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true
4 | },
5 | "extends": [
6 | "plugin:vue/essential",
7 | "plugin:vue/recommended",
8 | "prettier"
9 | ],
10 | "parserOptions": {
11 | "ecmaVersion": "latest",
12 | "sourceType": "module"
13 | },
14 | "plugins": [
15 | "vue",
16 | "html"
17 | ],
18 | "rules": {
19 | "vue/multi-word-component-names": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | const devPresets = ["@vue/babel-preset-app"];
2 | const buildPresets = [
3 | [
4 | "@babel/preset-env",
5 | // Config for @babel/preset-env
6 | {
7 | // Example: Always transpile optional chaining/nullish coalescing
8 | include: [/(optional-chaining|nullish-coalescing)/],
9 | },
10 | ],
11 | ];
12 | module.exports = {
13 | presets: process.env.NODE_ENV === "development" ? devPresets : buildPresets,
14 | };
15 |
--------------------------------------------------------------------------------
/dist/tabs-1a22f292.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as t,defineAsyncComponent as n}from"vue";var r=t({components:{Tabs:n((function(){return import("./Tabs-8b79b1b8.js").then((function(t){return t.default}))})),JsonForm:n((function(){return import("./JsonForm-bfde48ef.js").then((function(t){return t.default}))})),YamlForm:n((function(){return import("./YamlForm-20ecc51a.js").then((function(t){return t.default}))}))},data:function(){return{activeTab:"form"}}});export{r as t};
--------------------------------------------------------------------------------
/dist/tabs-693e2862.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as t,defineAsyncComponent as n}from"vue";var r=t({components:{Tabs:n((function(){return import("./Tabs-8b79b1b8.js").then((function(t){return t.default}))})),JsonForm:n((function(){return import("./JsonForm-cff18cd0.js").then((function(t){return t.default}))})),YamlForm:n((function(){return import("./YamlForm-c590504a.js").then((function(t){return t.default}))}))},data:function(){return{activeTab:"form"}}});export{r as t};
--------------------------------------------------------------------------------
/dist/tabs-ae6e6a83.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as t,defineAsyncComponent as n}from"vue";var r=t({components:{Tabs:n((function(){return import("./Tabs-877aa47f.js").then((function(t){return t.default}))})),JsonForm:n((function(){return import("./JsonForm-9e1eac41.js").then((function(t){return t.default}))})),YamlForm:n((function(){return import("./YamlForm-0ab70977.js").then((function(t){return t.default}))}))},data:function(){return{activeTab:"form"}}});export{r as t};
--------------------------------------------------------------------------------
/dist/Banner-3286242e.js:
--------------------------------------------------------------------------------
1 | import{openBlock as e,createElementBlock as t,createElementVNode as s,renderSlot as r,createTextVNode as n}from"vue";const a={class:"sign-up-notification mb-20"},o={class:"has-text-centered"},l={class:"has-text-danger"},i=s("p",null,"Oops!! There was an error while loading!",-1);const c={render:function(c,d){return e(),t("div",a,[s("div",o,[s("h3",l,[r(c.$slots,"banner-title",{},(()=>[n("Error!")]))]),r(c.$slots,"default",{},(()=>[i]))])])}};export{c as default};
--------------------------------------------------------------------------------
/dist/Banner-bfcd6aac.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const t={class:"sign-up-notification mb-20"},r={class:"has-text-centered"},n={class:"has-text-danger"},o=e.createElementVNode("p",null,"Oops!! There was an error while loading!",-1);const l={render:function(l,s){return e.openBlock(),e.createElementBlock("div",t,[e.createElementVNode("div",r,[e.createElementVNode("h3",n,[e.renderSlot(l.$slots,"banner-title",{},(()=>[e.createTextVNode("Error!")]))]),e.renderSlot(l.$slots,"default",{},(()=>[o]))])])}};exports.default=l;
--------------------------------------------------------------------------------
/.github/.kodiak.toml:
--------------------------------------------------------------------------------
1 | version = 1
2 |
3 | [merge]
4 | method = "squash" # default: "merge"
5 | delete_branch_on_merge = true # default: false
6 | optimistic_updates = true # default: true
7 | prioritize_ready_to_merge = true # default: false
8 |
9 | [merge.message]
10 | title = "pull_request_title" # default: "github_default"
11 | body = "github_default" # default: "github_default"
12 | strip_html_comments = true # default: false
13 |
14 | [update]
15 | always = true # default: false
16 |
17 | [approve]
18 | auto_approve_usernames = ["1gtm", "tamalsaha"]
19 |
--------------------------------------------------------------------------------
/dist/Banner-7a2df04c.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as s,openBlock as a,createElementBlock as e,createElementVNode as n,normalizeClass as r,renderSlot as t,createTextVNode as l}from"vue";const o={class:"sign-up-notification mb-20"},i={class:"has-text-centered"},d=n("p",null,"Oops!! There was an error while loading!",-1);var p=s({__name:"Banner",props:{bannerClass:{default:"has-text-danger"}},setup:s=>(s,p)=>(a(),e("div",o,[n("div",i,[n("h3",{class:r(s.bannerClass)},[t(s.$slots,"banner-title",{},(()=>[l("Error!")]))],2),t(s.$slots,"default",{},(()=>[d]))])]))});export{p as default};
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite';
2 | import vue from '@vitejs/plugin-vue';
3 | import { fileURLToPath, URL } from 'url';
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | plugins: [vue()],
8 | resolve: {
9 | alias: {
10 | '@': fileURLToPath(new URL('./src', import.meta.url)),
11 | },
12 | },
13 | css: {
14 | preprocessorOptions: {
15 | scss: {
16 | additionalData: '@import "@appscode/design-system/vue-components/styles/base/utilities/colors";',
17 | },
18 | },
19 | },
20 | });
21 |
--------------------------------------------------------------------------------
/dist/Banner-a2991050.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const t={class:"sign-up-notification mb-20"},r={class:"has-text-centered"},a=e.createElementVNode("p",null,"Oops!! There was an error while loading!",-1);var n=e.defineComponent({__name:"Banner",props:{bannerClass:{default:"has-text-danger"}},setup:n=>(n,s)=>(e.openBlock(),e.createElementBlock("div",t,[e.createElementVNode("div",r,[e.createElementVNode("h3",{class:e.normalizeClass(n.bannerClass)},[e.renderSlot(n.$slots,"banner-title",{},(()=>[e.createTextVNode("Error!")]))],2),e.renderSlot(n.$slots,"default",{},(()=>[a]))])]))});exports.default=n;
--------------------------------------------------------------------------------
/src/plugins/monaco.js:
--------------------------------------------------------------------------------
1 | // monaco editor
2 | import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
3 | import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
4 | import yamlWorker from 'monaco-yaml/yaml.worker.js?worker';
5 |
6 | export function useMonaco() {
7 | self.MonacoEnvironment = {
8 | getWorker(_, label) {
9 | if (label === 'json') {
10 | return new jsonWorker();
11 | }
12 | if (label === 'yaml') {
13 | return new yamlWorker();
14 | }
15 | return new editorWorker();
16 | },
17 | };
18 | }
19 |
--------------------------------------------------------------------------------
/dist/Preloader-e17b7349.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as e,openBlock as s,createElementBlock as a,createCommentVNode as n,createElementVNode as t,toDisplayString as i}from"vue";const l={class:"is-flex is-justify-content-center is-align-items-center is-flex-direction-column ac-preloader page-loader",style:{height:"calc(100vh - 200px)"}},o={key:0,class:"spinner"},r={class:"font-size-12 mt-10 pl-5"};var p=e({__name:"Preloader",props:{showSpinner:{type:Boolean,default:!0},message:{default:"Loading ... "}},setup:e=>(e,p)=>(s(),a("div",l,[e.showSpinner?(s(),a("span",o)):n("",!0),t("p",r,i(e.message),1)]))});export{p as default};
--------------------------------------------------------------------------------
/dist/Preloader-46710ac3.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const t={class:"is-flex is-justify-content-center is-align-items-center is-flex-direction-column ac-preloader page-loader",style:{height:"calc(100vh - 200px)"}},n={key:0,class:"spinner"},s={class:"font-size-12 mt-10 pl-5"};var o=e.defineComponent({__name:"Preloader",props:{showSpinner:{type:Boolean,default:!0},message:{default:"Loading ... "}},setup:o=>(o,a)=>(e.openBlock(),e.createElementBlock("div",t,[o.showSpinner?(e.openBlock(),e.createElementBlock("span",n)):e.createCommentVNode("",!0),e.createElementVNode("p",s,e.toDisplayString(o.message),1)]))});exports.default=o;
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowJs": true,
4 | "target": "esnext",
5 | "module": "esnext",
6 | "moduleResolution": "node",
7 | "strict": true,
8 | "jsx": "preserve",
9 | "sourceMap": true,
10 | "resolveJsonModule": true,
11 | "esModuleInterop": true,
12 | "lib": [
13 | "esnext",
14 | "dom"
15 | ],
16 | "declaration": true,
17 | "outDir": "dist/types",
18 | "types": [
19 | "vite/client"
20 | ]
21 | },
22 | "include": [
23 | "src/**/*.ts",
24 | "src/**/*.d.ts",
25 | "src/**/*.tsx",
26 | "src/**/*.vue"
27 | ]
28 | }
--------------------------------------------------------------------------------
/dist/tabs-714485d5.js:
--------------------------------------------------------------------------------
1 | "use strict";var n=require("vue"),e=n.defineComponent({components:{Tabs:n.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./Tabs-99642040.js")})).then((function(n){return n.default}))})),JsonForm:n.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./JsonForm-c1cf3ad9.js")})).then((function(n){return n.default}))})),YamlForm:n.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./YamlForm-7007fb43.js")})).then((function(n){return n.default}))}))},data:function(){return{activeTab:"form"}}});exports.t=e;
--------------------------------------------------------------------------------
/dist/tabs-e549bda7.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),n=e.defineComponent({components:{Tabs:e.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./Tabs-724892f9.js")})).then((function(e){return e.default}))})),JsonForm:e.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./JsonForm-e91fe6e6.js")})).then((function(e){return e.default}))})),YamlForm:e.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./YamlForm-35516ac8.js")})).then((function(e){return e.default}))}))},data:function(){return{activeTab:"form"}}});exports.t=n;
--------------------------------------------------------------------------------
/dist/tabs-f0820640.js:
--------------------------------------------------------------------------------
1 | "use strict";var n=require("vue"),e=n.defineComponent({components:{Tabs:n.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./Tabs-724892f9.js")})).then((function(n){return n.default}))})),JsonForm:n.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./JsonForm-802cdc31.js")})).then((function(n){return n.default}))})),YamlForm:n.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./YamlForm-44242511.js")})).then((function(n){return n.default}))}))},data:function(){return{activeTab:"form"}}});exports.t=e;
--------------------------------------------------------------------------------
/src/mixins/tabs.js:
--------------------------------------------------------------------------------
1 | import { defineAsyncComponent, defineComponent } from 'vue';
2 |
3 | export default defineComponent({
4 | components: {
5 | Tabs: defineAsyncComponent(() =>
6 | import('../components/Tabs.vue').then((module) => module.default)
7 | ),
8 | JsonForm: defineAsyncComponent(() =>
9 | import('../components/JsonForm.vue').then((module) => module.default)
10 | ),
11 | YamlForm: defineAsyncComponent(() =>
12 | import('../components/YamlForm.vue').then((module) => module.default)
13 | ),
14 | },
15 | data() {
16 | return {
17 | activeTab: 'form',
18 | };
19 | },
20 | });
21 |
--------------------------------------------------------------------------------
/src/mixins/fold.js:
--------------------------------------------------------------------------------
1 | import { defineComponent } from 'vue';
2 |
3 | export default defineComponent({
4 | props: {
5 | isSelfFolded: {
6 | type: Boolean,
7 | default: () => false,
8 | },
9 | expandForm: {
10 | type: Boolean,
11 | default: () => false,
12 | },
13 | },
14 |
15 | data() {
16 | return {
17 | isFolded: true,
18 | };
19 | },
20 |
21 | watch: {
22 | expandForm: {
23 | immediate: true,
24 | handler(n) {
25 | this.isFolded = !n;
26 | },
27 | },
28 | },
29 |
30 | methods: {
31 | toggleFold() {
32 | this.isFolded = !this.isFolded;
33 | },
34 | },
35 | });
36 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | pull_request:
5 | branches:
6 | - "*"
7 | push:
8 | branches:
9 | - master
10 |
11 | workflow_dispatch:
12 | concurrency:
13 | group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
14 | cancel-in-progress: true
15 | jobs:
16 | build:
17 | name: Build
18 | runs-on: ubuntu-24.04
19 |
20 | steps:
21 | - uses: actions/checkout@v4
22 |
23 | - name: Use Node.js 22.x
24 | uses: actions/setup-node@v4
25 | with:
26 | node-version: 22.x
27 |
28 | - name: Build
29 | env:
30 | CI: true
31 | run: |
32 | npm ci
33 | npm run build
34 | npm run pkg
35 |
--------------------------------------------------------------------------------
/dist/EditorTabs-ec1fa66a.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as e,defineAsyncComponent as t,openBlock as a,createBlock as i,unref as s,withCtx as c,createVNode as r,createElementVNode as v,withModifiers as n}from"vue";var l=e({__name:"EditorTabs",props:{activeTab:{default:""}},emits:["tabchange"],setup(e){const l=t((()=>import("./TabsBody-09c099c1.js"))),o=t((()=>import("./Tabs-f456f148.js"))),p=t((()=>import("./TabItem-9e42838b.js")));return(e,t)=>(a(),i(s(l),null,{default:c((()=>[r(s(o),{class:"is-line"},{default:c((()=>[r(s(p),{"is-active":"edit"===e.activeTab},{default:c((()=>[v("a",{onClick:t[0]||(t[0]=n((t=>e.$emit("tabchange","edit")),["prevent"]))},"Edit")])),_:1},8,["is-active"]),r(s(p),{"is-active":"preview"===e.activeTab},{default:c((()=>[v("a",{onClick:t[1]||(t[1]=n((t=>e.$emit("tabchange","preview")),["prevent"]))},"Preview Changes")])),_:1},8,["is-active"])])),_:1})])),_:1}))}});export{l as default};
--------------------------------------------------------------------------------
/dist/ComponentErrors-1d936ce4.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),r=e.defineComponent({name:"ComponentErrors",props:{errors:{type:Array,default:function(){return[]}}},computed:{tooltipObj:function(){return{content:this.htmlContent,html:!0}},htmlContent:function(){var e="
";return this.errors.forEach((function(r){e+=' '.concat(r," ")})),e+=" "}}}),t={class:"has-text-danger has-text-weight-normal is-italic is-size-6 pl-8"},n=e.createElementVNode("i",{class:"fa fa-warning"},null,-1);r.render=function(r,o,s,i,a,l){var c=e.resolveDirective("tooltip");return e.withDirectives((e.openBlock(),e.createElementBlock("span",t,[n,e.createTextVNode(" Error in "+e.toDisplayString(r.errors.length)+" field"+e.toDisplayString(r.errors.length>1?"s":""),1)])),[[e.vShow,r.errors.length>0],[c,r.tooltipObj]])},exports.default=r;
--------------------------------------------------------------------------------
/dist/ComponentErrors-cbe1f015.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as r,resolveDirective as t,withDirectives as n,openBlock as e,createElementBlock as o,createTextVNode as s,toDisplayString as a,vShow as l,createElementVNode as i}from"vue";var c=r({name:"ComponentErrors",props:{errors:{type:Array,default:function(){return[]}}},computed:{tooltipObj:function(){return{content:this.htmlContent,html:!0}},htmlContent:function(){var r="";return this.errors.forEach((function(t){r+=' '.concat(t," ")})),r+=" "}}}),p={class:"has-text-danger has-text-weight-normal is-italic is-size-6 pl-8"},u=i("i",{class:"fa fa-warning"},null,-1);c.render=function(r,i,c,f,h,m){var g=t("tooltip");return n((e(),o("span",p,[u,s(" Error in "+a(r.errors.length)+" field"+a(r.errors.length>1?"s":""),1)])),[[l,r.errors.length>0],[g,r.tooltipObj]])};export{c as default};
--------------------------------------------------------------------------------
/dist/Form-75fe67e1.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as o,defineAsyncComponent as t,openBlock as e,createElementBlock as r,createElementVNode as n,normalizeClass as a,renderSlot as s,createVNode as l,unref as i,withCtx as f,createCommentVNode as c}from"vue";const d={class:"form-wrapper"},p={key:0,class:"form-footer pt-8 pb-8 pl-20 mt-16 b-t-1"};var m=o({__name:"Form",props:{isContainer:{type:Boolean,default:!1},hasFooter:{type:Boolean,default:!0},reducePaddingTop:{type:Boolean,default:!1}},setup(o){const m=t((()=>import("./FormFooterControl-eec1f0a9.js")));return(o,t)=>(e(),r("div",d,[n("div",{class:a({"form-content":!o.isContainer,container:o.isContainer})},[s(o.$slots,"default")],2),o.hasFooter?(e(),r("div",p,[n("div",{class:a(["ac-vcentered",{"form-content":!o.isContainer,container:o.isContainer}])},[l(i(m),null,{default:f((()=>[s(o.$slots,"form-left-controls")])),_:3}),l(i(m),null,{default:f((()=>[s(o.$slots,"form-right-controls")])),_:3})],2)])):c("",!0)]))}});export{m as default};
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Vue OpenAPI Form
12 |
13 |
14 |
15 | We're sorry but vue-openapi-form doesn't work properly without
17 | JavaScript enabled. Please enable it to continue.
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/dist/RightWrongSigns-e0964dee.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as n,openBlock as o,createElementBlock as s,createCommentVNode as t,createElementVNode as e}from"vue";var i=n({name:"RightWrongSigns",props:{valid:{type:Boolean,default:!0},invalid:{type:Boolean,default:!0}}}),r={key:0,class:"button is-information is-success"},l=[e("span",{class:"icon"},[e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.5 12.75l6 6 9-13.5"})])],-1)],a={key:1,class:"button is-information is-warning"},u=[e("span",{class:"icon"},[e("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})])],-1)];i.render=function(n,e,i,d,c,w){return o(),s("div",null,[n.valid?(o(),s("button",r,l)):t("",!0),n.invalid?(o(),s("button",a,u)):t("",!0)])};export{i as default};
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-openapi-form
2 |
3 | ## Validation structure
4 |
5 | The Object and Array type components are wrapped inside `ValidationProvider` and a `ValidationObserver`. The
6 |
7 | - `ValidationProvider` ensures that the Object/Array itself is not empty if required. And also other validations if necessary.
8 | - `ValidationObserver` ensures to report all the errors occuring in it's nested child components.
9 |
10 | ## Props
11 |
12 | - `reference-model` - A deep copy of the model object that we are modifying using vue-openapi-form component
13 |
14 | ## Project setup
15 |
16 | ```
17 | npm install
18 | ```
19 |
20 | ### Compiles and hot-reloads for development
21 |
22 | ```
23 | npm run serve
24 | ```
25 |
26 | ### Compiles and minifies for production
27 |
28 | ```
29 | npm run build
30 | ```
31 |
32 | ### Run your tests
33 |
34 | ```
35 | npm run test
36 | ```
37 |
38 | ### Lints and fixes files
39 |
40 | ```
41 | npm run lint
42 | ```
43 |
44 | ### Customize configuration
45 |
46 | See [Configuration Reference](https://cli.vuejs.org/config/).
47 |
--------------------------------------------------------------------------------
/src/components/ComponentErrors.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Error in {{ errors.length }} field{{ errors.length > 1 ? 's' : '' }}
5 |
6 |
7 |
8 |
38 |
--------------------------------------------------------------------------------
/dist/Form-0dec9ace.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");const o={class:"form-wrapper"},t={key:0,class:"form-footer pt-8 pb-8 pl-20 mt-16 b-t-1"};var r=e.defineComponent({__name:"Form",props:{isContainer:{type:Boolean,default:!1},hasFooter:{type:Boolean,default:!0},reducePaddingTop:{type:Boolean,default:!1}},setup(r){const n=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./FormFooterControl-9c8c3f48.js")}))));return(r,l)=>(e.openBlock(),e.createElementBlock("div",o,[e.createElementVNode("div",{class:e.normalizeClass({"form-content":!r.isContainer,container:r.isContainer})},[e.renderSlot(r.$slots,"default")],2),r.hasFooter?(e.openBlock(),e.createElementBlock("div",t,[e.createElementVNode("div",{class:e.normalizeClass(["ac-vcentered",{"form-content":!r.isContainer,container:r.isContainer}])},[e.createVNode(e.unref(n),null,{default:e.withCtx((()=>[e.renderSlot(r.$slots,"form-left-controls")])),_:3}),e.createVNode(e.unref(n),null,{default:e.withCtx((()=>[e.renderSlot(r.$slots,"form-right-controls")])),_:3})],2)])):e.createCommentVNode("",!0)]))}});exports.default=r;
--------------------------------------------------------------------------------
/src/entry.js:
--------------------------------------------------------------------------------
1 | // Import vue components
2 | export { default as VueOpenapiForm } from '@/components/VueOpenapiForm.vue';
3 | // Import custom js that are required
4 | import { registerValidationRules } from '@/plugins/vee-validate';
5 |
6 | const install = (app, options) => {
7 | registerValidationRules();
8 | app.mixin({
9 | data: function () {
10 | return {
11 | get cleanObject() {
12 | return options.cleanObject || false;
13 | },
14 | };
15 | },
16 | });
17 | };
18 |
19 | // Create module definition for Vue.use()
20 | const plugin = {
21 | install,
22 | };
23 |
24 | // To auto-install when vue is found
25 | // eslint-disable-next-line no-redeclare
26 | /* global window, global */
27 | let GlobalVue = null;
28 | if (typeof window !== 'undefined') {
29 | GlobalVue = window.Vue;
30 | } else if (typeof global !== 'undefined') {
31 | GlobalVue = global.Vue;
32 | }
33 | if (GlobalVue) {
34 | GlobalVue.use(plugin);
35 | }
36 |
37 | // Default export is library as a whole, registered via Vue.use()
38 | export default plugin;
39 |
--------------------------------------------------------------------------------
/dist/JsonForm-9e1eac41.js:
--------------------------------------------------------------------------------
1 | import{m as e}from"./entry-2ace4904.js";import{defineComponent as t,defineAsyncComponent as o,resolveComponent as r,openBlock as i,createElementBlock as n,createBlock as a}from"vue";var l=t({name:"YamlForm",components:{Editor:o((function(){return import("./Editor-9fead870.js")}))},mixins:[e],inject:["providedData"],props:{modelValue:{type:null,default:function(){return{}}}},emits:["code::model-data-updated"],computed:{originalValueString:function(){return JSON.stringify(this.referenceModel,null,2)},theme:function(){return this.providedData.theme||"light"},editorModel:{get:function(){return JSON.stringify(this.modelValue,null,2)},set:function(e){var t=null;try{t=JSON.parse(e)}catch(e){t=this.modelData}this.modelData=t,this.$emit("code::model-data-updated",t)}}}}),d={class:"ml-30"};l.render=function(e,t,o,l,u,m){var s=r("editor");return i(),n("div",d,[(i(),a(s,{key:e.theme,modelValue:e.editorModel,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.editorModel=t}),"original-value":e.originalValueString,language:"json","editor-height":70},null,8,["modelValue","original-value"]))])};export{l as default};
--------------------------------------------------------------------------------
/dist/JsonForm-bfde48ef.js:
--------------------------------------------------------------------------------
1 | import{m as e}from"./entry-a6929ab2.js";import{defineComponent as t,defineAsyncComponent as o,resolveComponent as r,openBlock as i,createElementBlock as n,createBlock as a}from"vue";var l=t({name:"YamlForm",components:{Editor:o((function(){return import("./Editor-9fead870.js")}))},mixins:[e],inject:["providedData"],props:{modelValue:{type:null,default:function(){return{}}}},emits:["code::model-data-updated"],computed:{originalValueString:function(){return JSON.stringify(this.referenceModel,null,2)},theme:function(){return this.providedData.theme||"light"},editorModel:{get:function(){return JSON.stringify(this.modelValue,null,2)},set:function(e){var t=null;try{t=JSON.parse(e)}catch(e){t=this.modelData}this.modelData=t,this.$emit("code::model-data-updated",t)}}}}),d={class:"ml-30"};l.render=function(e,t,o,l,u,m){var s=r("editor");return i(),n("div",d,[(i(),a(s,{key:e.theme,modelValue:e.editorModel,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.editorModel=t}),"original-value":e.originalValueString,language:"json","editor-height":70},null,8,["modelValue","original-value"]))])};export{l as default};
--------------------------------------------------------------------------------
/dist/JsonForm-cff18cd0.js:
--------------------------------------------------------------------------------
1 | import{m as e}from"./entry-f11f5a48.js";import{defineComponent as t,defineAsyncComponent as o,resolveComponent as r,openBlock as i,createElementBlock as n,createBlock as a}from"vue";var l=t({name:"YamlForm",components:{Editor:o((function(){return import("./Editor-696573e5.js")}))},mixins:[e],inject:["providedData"],props:{modelValue:{type:null,default:function(){return{}}}},emits:["code::model-data-updated"],computed:{originalValueString:function(){return JSON.stringify(this.referenceModel,null,2)},theme:function(){return this.providedData.theme||"light"},editorModel:{get:function(){return JSON.stringify(this.modelValue,null,2)},set:function(e){var t=null;try{t=JSON.parse(e)}catch(e){t=this.modelData}this.modelData=t,this.$emit("code::model-data-updated",t)}}}}),d={class:"ml-30"};l.render=function(e,t,o,l,u,m){var s=r("editor");return i(),n("div",d,[(i(),a(s,{key:e.theme,modelValue:e.editorModel,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.editorModel=t}),"original-value":e.originalValueString,language:"json","editor-height":70},null,8,["modelValue","original-value"]))])};export{l as default};
--------------------------------------------------------------------------------
/src/assets/scss/main.scss:
--------------------------------------------------------------------------------
1 | @import '@appscode/design-system/vue-components/styles/base/utilities/customize-bulma';
2 |
3 | @import 'bulma/bulma.sass';
4 | @import 'bulma-checkradio/dist/css/bulma-checkradio.sass';
5 | @import 'bulma-switch/src/sass/index.sass';
6 | @import 'bulma-tooltip/src/sass/index.sass';
7 | @import 'floating-vue/dist/style.css';
8 | // BASE
9 | @import '@appscode/design-system/vue-components/styles/base/utilities/all';
10 |
11 | // COMPONENTS
12 | @import '@appscode/design-system/vue-components/styles/components/navbar/all';
13 | @import '@appscode/design-system/vue-components/styles/components/form-fields/input';
14 | @import '@appscode/design-system/vue-components/styles/components/button';
15 | @import '@appscode/design-system/vue-components/styles/components/modal';
16 | @import '@appscode/design-system/vue-components/styles/components/table';
17 | @import '@appscode/design-system/vue-components/styles/components/select-box/multi-select';
18 | @import '@appscode/design-system/vue-components/styles/components/ac-toaster/ac-toasted';
19 |
20 | // Local SCSS
21 | @import './vue-open-api';
22 |
--------------------------------------------------------------------------------
/dist/EditorTabs-d3112cc4.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),t=e.defineComponent({__name:"EditorTabs",props:{activeTab:{default:""}},emits:["tabchange"],setup(t){const i=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./TabsBody-415c3b23.js")})))),n=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./Tabs-71c515fc.js")})))),r=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./TabItem-05b72b6f.js")}))));return(t,a)=>(e.openBlock(),e.createBlock(e.unref(i),null,{default:e.withCtx((()=>[e.createVNode(e.unref(n),{class:"is-line"},{default:e.withCtx((()=>[e.createVNode(e.unref(r),{"is-active":"edit"===t.activeTab},{default:e.withCtx((()=>[e.createElementVNode("a",{onClick:a[0]||(a[0]=e.withModifiers((e=>t.$emit("tabchange","edit")),["prevent"]))},"Edit")])),_:1},8,["is-active"]),e.createVNode(e.unref(r),{"is-active":"preview"===t.activeTab},{default:e.withCtx((()=>[e.createElementVNode("a",{onClick:a[1]||(a[1]=e.withModifiers((e=>t.$emit("tabchange","preview")),["prevent"]))},"Preview Changes")])),_:1},8,["is-active"])])),_:1})])),_:1}))}});exports.default=t;
--------------------------------------------------------------------------------
/dist/JsonForm-802cdc31.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-c1fde67d.js"),t=require("vue"),n=t.defineComponent({name:"YamlForm",components:{Editor:t.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./Editor-2cb2cacf.js")}))}))},mixins:[e.m],inject:["providedData"],props:{modelValue:{type:null,default:function(){return{}}}},emits:["code::model-data-updated"],computed:{originalValueString:function(){return JSON.stringify(this.referenceModel,null,2)},theme:function(){return this.providedData.theme||"light"},editorModel:{get:function(){return JSON.stringify(this.modelValue,null,2)},set:function(e){var t=null;try{t=JSON.parse(e)}catch(e){t=this.modelData}this.modelData=t,this.$emit("code::model-data-updated",t)}}}}),o={class:"ml-30"};n.render=function(e,n,r,i,l,a){var d=t.resolveComponent("editor");return t.openBlock(),t.createElementBlock("div",o,[(t.openBlock(),t.createBlock(d,{key:e.theme,modelValue:e.editorModel,"onUpdate:modelValue":n[0]||(n[0]=function(t){return e.editorModel=t}),"original-value":e.originalValueString,language:"json","editor-height":70},null,8,["modelValue","original-value"]))])},exports.default=n;
--------------------------------------------------------------------------------
/dist/JsonForm-c1cf3ad9.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-46a6dd07.js"),t=require("vue"),n=t.defineComponent({name:"YamlForm",components:{Editor:t.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./Editor-2cb2cacf.js")}))}))},mixins:[e.m],inject:["providedData"],props:{modelValue:{type:null,default:function(){return{}}}},emits:["code::model-data-updated"],computed:{originalValueString:function(){return JSON.stringify(this.referenceModel,null,2)},theme:function(){return this.providedData.theme||"light"},editorModel:{get:function(){return JSON.stringify(this.modelValue,null,2)},set:function(e){var t=null;try{t=JSON.parse(e)}catch(e){t=this.modelData}this.modelData=t,this.$emit("code::model-data-updated",t)}}}}),o={class:"ml-30"};n.render=function(e,n,r,i,l,a){var d=t.resolveComponent("editor");return t.openBlock(),t.createElementBlock("div",o,[(t.openBlock(),t.createBlock(d,{key:e.theme,modelValue:e.editorModel,"onUpdate:modelValue":n[0]||(n[0]=function(t){return e.editorModel=t}),"original-value":e.originalValueString,language:"json","editor-height":70},null,8,["modelValue","original-value"]))])},exports.default=n;
--------------------------------------------------------------------------------
/dist/JsonForm-e91fe6e6.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-5480607d.js"),t=require("vue"),n=t.defineComponent({name:"YamlForm",components:{Editor:t.defineAsyncComponent((function(){return Promise.resolve().then((function(){return require("./Editor-04edac3c.js")}))}))},mixins:[e.m],inject:["providedData"],props:{modelValue:{type:null,default:function(){return{}}}},emits:["code::model-data-updated"],computed:{originalValueString:function(){return JSON.stringify(this.referenceModel,null,2)},theme:function(){return this.providedData.theme||"light"},editorModel:{get:function(){return JSON.stringify(this.modelValue,null,2)},set:function(e){var t=null;try{t=JSON.parse(e)}catch(e){t=this.modelData}this.modelData=t,this.$emit("code::model-data-updated",t)}}}}),o={class:"ml-30"};n.render=function(e,n,r,i,l,a){var d=t.resolveComponent("editor");return t.openBlock(),t.createElementBlock("div",o,[(t.openBlock(),t.createBlock(d,{key:e.theme,modelValue:e.editorModel,"onUpdate:modelValue":n[0]||(n[0]=function(t){return e.editorModel=t}),"original-value":e.originalValueString,language:"json","editor-height":70},null,8,["modelValue","original-value"]))])},exports.default=n;
--------------------------------------------------------------------------------
/dist/RightWrongSigns-75d38a15.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),o=e.defineComponent({name:"RightWrongSigns",props:{valid:{type:Boolean,default:!0},invalid:{type:Boolean,default:!0}}}),t={key:0,class:"button is-information is-success"},n=[e.createElementVNode("span",{class:"icon"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.5 12.75l6 6 9-13.5"})])],-1)],l={key:1,class:"button is-information is-warning"},r=[e.createElementVNode("span",{class:"icon"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})])],-1)];o.render=function(o,s,a,i,c,d){return e.openBlock(),e.createElementBlock("div",null,[o.valid?(e.openBlock(),e.createElementBlock("button",t,n)):e.createCommentVNode("",!0),o.invalid?(e.openBlock(),e.createElementBlock("button",l,r)):e.createCommentVNode("",!0)])},exports.default=o;
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 |
3 | on:
4 | push:
5 | tags:
6 | - "*.*"
7 |
8 | workflow_dispatch:
9 | concurrency:
10 | group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
11 | cancel-in-progress: true
12 | jobs:
13 | build:
14 | name: Build
15 | runs-on: ubuntu-24.04
16 | steps:
17 | - uses: actions/checkout@v1
18 |
19 | - name: Use Node.js
20 | uses: actions/setup-node@v4
21 | with:
22 | node-version: 22.x
23 |
24 | - name: Install Firebase CLI
25 | run: |
26 | npm i -g firebase-tools
27 |
28 | - name: Install node modeules
29 | run: |
30 | npm ci
31 |
32 | - name: Deploy
33 | env:
34 | FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
35 | run: |
36 | npm run build
37 | npm run deploy
38 |
39 | - name: Publish
40 | env:
41 | NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
42 | run: |
43 | echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" >> ~/.npmrc
44 | npm --no-git-tag-version --allow-same-version version ${GITHUB_REF#"refs/tags/"}
45 | npm run pkg
46 | npm publish --access public
47 |
--------------------------------------------------------------------------------
/dist/Tabs-877aa47f.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as a,openBlock as i,createElementBlock as s,createElementVNode as e,normalizeClass as t,withModifiers as n}from"vue";var l=a({name:"Tabs",props:{modelValue:{type:String,default:"form"}},emits:["update:modelValue"],data:function(){return{activeTab:"form"}},methods:{showForm:function(){this.activeTab="form",this.$emit("update:modelValue","form")},showJson:function(){this.activeTab="json",this.$emit("update:modelValue","json")},showYaml:function(){this.activeTab="yaml",this.$emit("update:modelValue","yaml")}}}),o={class:"tabs ac-tabs is-line"},c=[e("span",{class:"icon is-small"},[e("i",{class:"fa fa-file-text fa-flip-horizontal","aria-hidden":"true"})],-1),e("span",null,"Form",-1)],r=[e("span",{class:"icon is-small"},[e("i",{class:"fa fa-code","aria-hidden":"true"})],-1),e("span",null,"YAML",-1)],u=[e("span",{class:"icon is-small"},[e("i",{class:"fa fa-code","aria-hidden":"true"})],-1),e("span",null,"JSON",-1)];l.render=function(a,l,m,f,d,p){return i(),s("div",o,[e("ul",null,[e("li",{class:t({"is-active":"form"===a.activeTab})},[e("a",{onClick:l[0]||(l[0]=n((function(i){return a.showForm()}),["prevent"]))},c)],2),e("li",{class:t({"is-active":"yaml"===a.activeTab})},[e("a",{onClick:l[1]||(l[1]=n((function(i){return a.showYaml()}),["prevent"]))},r)],2),e("li",{class:t({"is-active":"json"===a.activeTab})},[e("a",{onClick:l[2]||(l[2]=n((function(i){return a.showJson()}),["prevent"]))},u)],2)])])};export{l as default};
--------------------------------------------------------------------------------
/dist/Tabs-8b79b1b8.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as a,openBlock as i,createElementBlock as s,normalizeStyle as e,createElementVNode as t,normalizeClass as l,withModifiers as n}from"vue";var o=a({name:"Tabs",props:{modelValue:{type:String,default:"form"},showTab:{type:Boolean,default:!1}},emits:["update:modelValue"],data:function(){return{activeTab:"form"}},methods:{showForm:function(){this.activeTab="form",this.$emit("update:modelValue","form")},showJson:function(){this.activeTab="json",this.$emit("update:modelValue","json")},showYaml:function(){this.activeTab="yaml",this.$emit("update:modelValue","yaml")}}}),c=[t("span",{class:"icon is-small"},[t("i",{class:"fa fa-file-text fa-flip-horizontal","aria-hidden":"true"})],-1),t("span",null,"Form",-1)],r=[t("span",{class:"icon is-small"},[t("i",{class:"fa fa-code","aria-hidden":"true"})],-1),t("span",null,"YAML",-1)],u=[t("span",{class:"icon is-small"},[t("i",{class:"fa fa-code","aria-hidden":"true"})],-1),t("span",null,"JSON",-1)];o.render=function(a,o,m,f,d,p){return i(),s("div",{class:"tabs ac-tabs is-line",style:e(a.showTab?"opacity: 1; visibility: visible;":"")},[t("ul",null,[t("li",{class:l({"is-active":"form"===a.activeTab})},[t("a",{onClick:o[0]||(o[0]=n((function(i){return a.showForm()}),["prevent"]))},c)],2),t("li",{class:l({"is-active":"yaml"===a.activeTab})},[t("a",{onClick:o[1]||(o[1]=n((function(i){return a.showYaml()}),["prevent"]))},r)],2),t("li",{class:l({"is-active":"json"===a.activeTab})},[t("a",{onClick:o[2]||(o[2]=n((function(i){return a.showJson()}),["prevent"]))},u)],2)])],4)};export{o as default};
--------------------------------------------------------------------------------
/src/components/RightWrongSigns.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
31 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
59 |
--------------------------------------------------------------------------------
/src/components/JsonForm.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
13 |
63 |
--------------------------------------------------------------------------------
/src/components/YamlForm.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
13 |
66 |
--------------------------------------------------------------------------------
/dist/Tabs-99642040.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),a=e.defineComponent({name:"Tabs",props:{modelValue:{type:String,default:"form"}},emits:["update:modelValue"],data:function(){return{activeTab:"form"}},methods:{showForm:function(){this.activeTab="form",this.$emit("update:modelValue","form")},showJson:function(){this.activeTab="json",this.$emit("update:modelValue","json")},showYaml:function(){this.activeTab="yaml",this.$emit("update:modelValue","yaml")}}}),t={class:"tabs ac-tabs is-line"},l=[e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fa fa-file-text fa-flip-horizontal","aria-hidden":"true"})],-1),e.createElementVNode("span",null,"Form",-1)],n=[e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fa fa-code","aria-hidden":"true"})],-1),e.createElementVNode("span",null,"YAML",-1)],i=[e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fa fa-code","aria-hidden":"true"})],-1),e.createElementVNode("span",null,"JSON",-1)];a.render=function(a,o,s,r,c,m){return e.openBlock(),e.createElementBlock("div",t,[e.createElementVNode("ul",null,[e.createElementVNode("li",{class:e.normalizeClass({"is-active":"form"===a.activeTab})},[e.createElementVNode("a",{onClick:o[0]||(o[0]=e.withModifiers((function(e){return a.showForm()}),["prevent"]))},l)],2),e.createElementVNode("li",{class:e.normalizeClass({"is-active":"yaml"===a.activeTab})},[e.createElementVNode("a",{onClick:o[1]||(o[1]=e.withModifiers((function(e){return a.showYaml()}),["prevent"]))},n)],2),e.createElementVNode("li",{class:e.normalizeClass({"is-active":"json"===a.activeTab})},[e.createElementVNode("a",{onClick:o[2]||(o[2]=e.withModifiers((function(e){return a.showJson()}),["prevent"]))},i)],2)])])},exports.default=a;
--------------------------------------------------------------------------------
/src/plugins/vee-validate.js:
--------------------------------------------------------------------------------
1 | import { defineRule } from 'vee-validate';
2 | import { required, email, image } from '@vee-validate/rules';
3 | import { getCurrentInstance } from 'vue';
4 | export const registerValidationRules = function () {
5 | defineRule('required', required);
6 | defineRule('requiredArray', (value) => {
7 | if (
8 | value !== null &&
9 | typeof value === 'object' &&
10 | Array.isArray(value) &&
11 | value.length < 2
12 | )
13 | return '{_field_} array must contain more than one element';
14 | else return true;
15 | });
16 | defineRule('requiredOb', (value) => {
17 | if (
18 | value !== null &&
19 | typeof value === 'object' &&
20 | Object.keys(value).length === 0
21 | )
22 | return '{_field_} object must not be empty';
23 | else return true;
24 | });
25 | defineRule('email', email);
26 | defineRule('image', image);
27 | defineRule('private_username', async (value) => {
28 | const { app } = getCurrentInstance();
29 | const axios = app?.appContext.config.globalProperties.$axios;
30 |
31 | const len = value.length;
32 | if (len < 5 || len > 40)
33 | return '{_field_} length must be between 5 and 40 characters';
34 | else {
35 | // make form data for backend
36 | const formData = new FormData();
37 | formData.set('user_name', value);
38 | // fetch the response
39 | const { data } = await axios.post('/user/validate/username', formData);
40 | if (!data.valid) return data.message;
41 | else return true;
42 | }
43 | });
44 | defineRule('password', (value, [other]) => {
45 | if (value !== other) {
46 | return 'The passwords do not match.';
47 | }
48 | });
49 | };
50 |
--------------------------------------------------------------------------------
/src/mixins/validation.js:
--------------------------------------------------------------------------------
1 | import { defineAsyncComponent, defineComponent } from 'vue';
2 |
3 | export default defineComponent({
4 | components: {
5 | VForm: defineAsyncComponent(() =>
6 | import('vee-validate').then(({ Form }) => Form)
7 | ),
8 | VField: defineAsyncComponent(() =>
9 | import('vee-validate').then(({ Field }) => Field)
10 | ),
11 | ComponentErrors: defineAsyncComponent(() =>
12 | import('../components/ComponentErrors.vue').then(
13 | (module) => module.default
14 | )
15 | ),
16 | RightWrongSigns: defineAsyncComponent(() =>
17 | import('../components/RightWrongSigns.vue').then(
18 | (module) => module.default
19 | )
20 | ),
21 | },
22 |
23 | props: {
24 | isSelfRequired: {
25 | type: Boolean,
26 | default: false,
27 | },
28 | },
29 |
30 | methods: {
31 | ruleString(required) {
32 | let ans = '';
33 | if (required) ans += 'required';
34 | return ans;
35 | },
36 |
37 | ruleArray(required) {
38 | let ans = {};
39 | if (required) ans.required = true;
40 | return ans;
41 | },
42 |
43 | ruleObject(required) {
44 | let ans = {};
45 | if (required) ans.requiredOb = true;
46 | return ans;
47 | },
48 |
49 | calcFormErrors(errors, prefix) {
50 | return Object.keys(errors)
51 | .filter((key) => key.startsWith(prefix))
52 | .map((key) => {
53 | const path = key.replace(/^(\$\/)/, '');
54 | const prefixedPath = prefix.replace(/^(\$\/)/, '');
55 |
56 | const relativePath = path.replace(prefixedPath + '/', '');
57 |
58 | const pfx = relativePath.includes('/') ? `${relativePath}: ` : '';
59 | return `${pfx}${errors[key]}`;
60 | });
61 | },
62 | },
63 | });
64 |
--------------------------------------------------------------------------------
/dist/Tabs-724892f9.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),a=e.defineComponent({name:"Tabs",props:{modelValue:{type:String,default:"form"},showTab:{type:Boolean,default:!1}},emits:["update:modelValue"],data:function(){return{activeTab:"form"}},methods:{showForm:function(){this.activeTab="form",this.$emit("update:modelValue","form")},showJson:function(){this.activeTab="json",this.$emit("update:modelValue","json")},showYaml:function(){this.activeTab="yaml",this.$emit("update:modelValue","yaml")}}}),t=[e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fa fa-file-text fa-flip-horizontal","aria-hidden":"true"})],-1),e.createElementVNode("span",null,"Form",-1)],l=[e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fa fa-code","aria-hidden":"true"})],-1),e.createElementVNode("span",null,"YAML",-1)],i=[e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fa fa-code","aria-hidden":"true"})],-1),e.createElementVNode("span",null,"JSON",-1)];a.render=function(a,n,o,s,r,c){return e.openBlock(),e.createElementBlock("div",{class:"tabs ac-tabs is-line",style:e.normalizeStyle(a.showTab?"opacity: 1; visibility: visible;":"")},[e.createElementVNode("ul",null,[e.createElementVNode("li",{class:e.normalizeClass({"is-active":"form"===a.activeTab})},[e.createElementVNode("a",{onClick:n[0]||(n[0]=e.withModifiers((function(e){return a.showForm()}),["prevent"]))},t)],2),e.createElementVNode("li",{class:e.normalizeClass({"is-active":"yaml"===a.activeTab})},[e.createElementVNode("a",{onClick:n[1]||(n[1]=e.withModifiers((function(e){return a.showYaml()}),["prevent"]))},l)],2),e.createElementVNode("li",{class:e.normalizeClass({"is-active":"json"===a.activeTab})},[e.createElementVNode("a",{onClick:n[2]||(n[2]=e.withModifiers((function(e){return a.showJson()}),["prevent"]))},i)],2)])],4)},exports.default=a;
--------------------------------------------------------------------------------
/src/components/Tabs.vue:
--------------------------------------------------------------------------------
1 |
2 |
33 |
34 |
35 |
74 |
--------------------------------------------------------------------------------
/dist/Editor-696573e5.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as e,defineAsyncComponent as a,ref as t,computed as l,watch as i,openBlock as o,createElementBlock as n,createBlock as d,unref as r,createCommentVNode as u,normalizeClass as s,normalizeStyle as v}from"vue";var p=e({__name:"Editor",props:{modelValue:{default:""},originalValue:{default:""},readOnly:{type:Boolean,default:!1},language:{default:""},showMinimap:{type:Boolean,default:!1},editorHeight:{default:40},editorTheme:{default:""},wordWrap:{default:"on"},validation:{default:()=>({uri:""})}},emits:["update:modelValue"],setup(e,{emit:p}){const m=e,g=p,c=a((()=>import("./EditorTabs-ec1fa66a.js"))),f=a((()=>import("./Preloader-e17b7349.js"))),y=a((()=>import("./Banner-7a2df04c.js"))),h=a({loader:()=>import("./MonacoEditor-16bf802f.js"),loadingComponent:f,delay:200,errorComponent:y,timeout:1e5}),w=t("edit"),b=t(""),B=t(""),E=l((()=>{const e=b.value.split("\n").length;return m.showMinimap&&e>25})),T=l((()=>m.editorTheme||(document.documentElement.classList.contains("is-dark-theme")?"vs-dark":"vs"))),V=e=>{"string"==typeof e&&(b.value=e)},k=e=>{e.onDidBlurEditorText instanceof Function&&e.onDidBlurEditorText((()=>{g("update:modelValue",b.value)}))},H=l((()=>"number"==typeof m.editorHeight?`vh-${m.editorHeight}`:"")),L=l((()=>"string"==typeof m.editorHeight?{height:m.editorHeight}:{}));return i((()=>m.modelValue),(e=>{b.value!==e&&(b.value=e)}),{immediate:!0}),i((()=>m.originalValue),(e=>{B.value!==e&&(B.value=e)}),{immediate:!0}),(e,a)=>(o(),n("div",null,[e.readOnly?u("",!0):(o(),d(r(c),{key:0,onTabchange:a[0]||(a[0]=e=>w.value=e),"active-tab":w.value},null,8,["active-tab"])),"edit"===w.value?(o(),d(r(h),{onEditorDidMount:k,key:"edit",class:s(["is-clipped",H.value]),style:v(L.value),value:b.value,onChange:V,language:e.language,options:{minimap:{enabled:E.value},theme:T.value,readOnly:e.readOnly,wordWrap:e.wordWrap,scrollBeyondLastLine:!1},validation:e.validation,"data-testid":"monaco-editor-edit-section"},null,8,["class","style","value","language","options","validation"])):u("",!0),"preview"===w.value?(o(),d(r(h),{key:"preview",class:s(["is-clipped",H.value]),style:v(L.value),value:b.value,language:e.language,options:{minimap:{enabled:E.value},theme:T.value,readOnly:!0,wordWrap:e.wordWrap,scrollBeyondLastLine:!1},original:B.value,"diff-editor":!0,validation:e.validation,"data-testid":"monaco-editor-preview-section"},null,8,["class","style","value","language","options","original","validation"])):u("",!0)]))}});export{p as default};
--------------------------------------------------------------------------------
/dist/Editor-9fead870.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as e,defineAsyncComponent as a,ref as t,computed as l,watch as i,openBlock as o,createElementBlock as n,createBlock as d,unref as r,createCommentVNode as u,normalizeClass as s,normalizeStyle as v}from"vue";var p=e({__name:"Editor",props:{modelValue:{default:""},originalValue:{default:""},readOnly:{type:Boolean,default:!1},language:{default:""},showMinimap:{type:Boolean,default:!1},editorHeight:{default:40},editorTheme:{default:""},wordWrap:{default:"on"},validation:{default:()=>({uri:""})}},emits:["update:modelValue"],setup(e,{emit:p}){const m=e,g=p,c=a((()=>import("./EditorTabs-ec1fa66a.js"))),y=a((()=>import("./Preloader-e17b7349.js"))),f=a((()=>import("./Banner-3286242e.js"))),h=a({loader:()=>import("./MonacoEditor-f41826a2.js"),loadingComponent:y,delay:200,errorComponent:f,timeout:1e5}),w=t("edit"),b=t(""),B=t(""),E=l((()=>{const e=b.value.split("\n").length;return m.showMinimap&&e>25})),T=l((()=>m.editorTheme||(document.documentElement.classList.contains("is-dark-theme")?"vs-dark":"vs"))),V=e=>{"string"==typeof e&&(b.value=e)},k=e=>{e.onDidBlurEditorText instanceof Function&&e.onDidBlurEditorText((()=>{g("update:modelValue",b.value)}))},H=l((()=>"number"==typeof m.editorHeight?`vh-${m.editorHeight}`:"")),L=l((()=>"string"==typeof m.editorHeight?{height:m.editorHeight}:{}));return i((()=>m.modelValue),(e=>{b.value!==e&&(b.value=e)}),{immediate:!0}),i((()=>m.originalValue),(e=>{B.value!==e&&(B.value=e)}),{immediate:!0}),(e,a)=>(o(),n("div",null,[e.readOnly?u("",!0):(o(),d(r(c),{key:0,onTabchange:a[0]||(a[0]=e=>w.value=e),"active-tab":w.value},null,8,["active-tab"])),"edit"===w.value?(o(),d(r(h),{onEditorDidMount:k,key:"edit",class:s(["is-clipped",H.value]),style:v(L.value),value:b.value,onChange:V,language:e.language,options:{minimap:{enabled:E.value},theme:T.value,readOnly:e.readOnly,wordWrap:e.wordWrap,scrollBeyondLastLine:!1},validation:e.validation,"data-testid":"monaco-editor-edit-section"},null,8,["class","style","value","language","options","validation"])):u("",!0),"preview"===w.value?(o(),d(r(h),{key:"preview",class:s(["is-clipped",H.value]),style:v(L.value),value:b.value,language:e.language,options:{minimap:{enabled:E.value},theme:T.value,readOnly:!0,wordWrap:e.wordWrap,scrollBeyondLastLine:!1},original:B.value,"diff-editor":!0,validation:e.validation,"data-testid":"monaco-editor-preview-section"},null,8,["class","style","value","language","options","original","validation"])):u("",!0)]))}});export{p as default};
--------------------------------------------------------------------------------
/dist/ObjectFormWrapper-d4223e01.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as l}from"./entry-2ace4904.js";import{f as r}from"./fold-ab363a66.js";import{t as o}from"./tabs-ae6e6a83.js";import{defineComponent as a,resolveComponent as t,openBlock as d,createElementBlock as s,normalizeClass as n,createElementVNode as i,withModifiers as m,createCommentVNode as f,createTextVNode as u,toDisplayString as c,createVNode as p,createBlock as y,withDirectives as b,vShow as v}from"vue";var V=a({name:"ObjectFormWrapper",mixins:[e,r,o,l],props:{schema:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},isRoot:{type:Boolean,default:!1},errors:{type:Object,default:function(){return{}}},isLastChild:{type:Boolean,default:!1},onlyJson:{type:Boolean,default:!1},level:{type:Number,default:1}}}),h={class:"nested-header mb-5"},j=["disabled"];V.render=function(e,l,r,o,a,V){var D=t("component-errors"),k=t("tabs"),q=t("object-form"),F=t("yaml-form"),T=t("json-form");return d(),s("form",{class:n(["ac-nested-elements object-form-wrapper",{"stop-line":e.isLastChild,"is-collapsed":e.isFolded}])},[i("div",h,[i("h6",{class:"is-flex is-semi-normal",onClick:l[0]||(l[0]=m((function(l){return e.toggleFold()}),["prevent"]))},[e.isRoot?f("",!0):(d(),s("div",{key:0,class:"collaps-icon",disabled:"form"!==e.activeTab},[i("i",{class:n(["fa",e.isFolded?"fa-plus":"fa-minus"]),"aria-hidden":"true"},null,2)],8,j)),u(" "+c(e.schema.title||"Array Item Description")+" ",1),p(D,{errors:e.calcFormErrors(e.errors,e.fieldName)},null,8,["errors"])]),e.onlyJson?f("",!0):(d(),y(k,{key:0,modelValue:e.activeTab,"onUpdate:modelValue":l[1]||(l[1]=function(l){return e.activeTab=l})},null,8,["modelValue"]))]),b((d(),y(q,{key:"".concat(e.schema.title,"-form"),modelValue:e.modelData,"onUpdate:modelValue":l[2]||(l[2]=function(l){return e.modelData=l}),"field-name":e.fieldName,properties:e.schema.properties,title:e.schema.title,required:e.schema.required,"is-self-required":e.isSelfRequired,type:e.schema.type,level:e.level,"is-self-folded":e.isFolded,"reference-model":e.referenceModel||{},errors:e.errors},null,8,["modelValue","field-name","properties","title","required","is-self-required","type","level","is-self-folded","reference-model","errors"])),[[v,!e.onlyJson&&"form"===e.activeTab]]),"yaml"===e.activeTab?(d(),y(F,{key:0,modelValue:e.modelData,"onUpdate:modelValue":l[3]||(l[3]=function(l){return e.modelData=l}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):"json"===e.activeTab?(d(),y(T,{key:1,modelValue:e.modelData,"onUpdate:modelValue":l[4]||(l[4]=function(l){return e.modelData=l}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):f("",!0)],2)};export{V as default};
--------------------------------------------------------------------------------
/src/functional-components/extend-schema.js:
--------------------------------------------------------------------------------
1 | const getTitleFromProp = function (prop) {
2 | prop = prop.charAt(0).toUpperCase() + prop.slice(1);
3 | return prop.replace(/([a-z0-9])([A-Z])/g, "$1 $2");
4 | };
5 |
6 | const recurse = function (schema, title) {
7 | let newSchema = Object.assign({}, { title }, { ...schema });
8 | if (schema.type === "object") {
9 | let newProperties = {};
10 |
11 | // extend schema of old properties
12 | try {
13 | if (schema.properties) {
14 | Object.keys(schema.properties).forEach((prop) => {
15 | const title = getTitleFromProp(prop);
16 | newProperties = Object.assign(
17 | {},
18 | { ...newProperties },
19 | { [`${prop}`]: { ...recurse(schema.properties[prop], title) } }
20 | );
21 | });
22 |
23 | // assign new properties to newSchema
24 | newSchema = Object.assign(
25 | {},
26 | { ...newSchema },
27 | { properties: { ...newProperties } }
28 | );
29 | }
30 | // for additional properties
31 | else if (schema.additionalProperties) {
32 | newSchema = Object.assign(
33 | {},
34 | { ...newSchema },
35 | { type: "key-value-pairs" }
36 | );
37 |
38 | // console.log({ newSchema });
39 |
40 | newSchema.additionalProperties = Object.assign(
41 | {},
42 | { ...schema.additionalProperties },
43 | {
44 | ...recurse(schema.additionalProperties, "Value"),
45 | }
46 | );
47 | }
48 | } catch (e) {
49 | // console.log(schema);
50 | // console.log(e);
51 | }
52 | } else if (schema.type === "array") {
53 | let newItems = {};
54 |
55 | // extend old items
56 | const title = "";
57 | newItems = Object.assign(
58 | {},
59 | { ...newItems },
60 | { ...recurse(schema.items, title) }
61 | );
62 |
63 | // assign new items to newSchema
64 | newSchema = Object.assign({}, { ...newSchema }, { items: { ...newItems } });
65 | } else {
66 | let type = "";
67 | if (schema.type === "number" || schema.type === "integer") type = "number";
68 | else if (schema.type === "boolean") type = "checkbox";
69 | else type = "text";
70 |
71 | newSchema = Object.assign(
72 | {},
73 | { ...newSchema },
74 | {
75 | ui: {
76 | tag: "input",
77 | type,
78 | },
79 | }
80 | );
81 |
82 | // if (schema.type === "boolean") // console.log(newSchema);
83 | }
84 |
85 | return newSchema;
86 | };
87 |
88 | export default function (schema, title) {
89 | return recurse(schema, title);
90 | }
91 |
--------------------------------------------------------------------------------
/dist/ObjectFormWrapper-80f4c733.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as l}from"./entry-f11f5a48.js";import{f as o}from"./fold-ab363a66.js";import{t as r}from"./tabs-693e2862.js";import{defineComponent as a,resolveComponent as t,openBlock as s,createElementBlock as d,normalizeClass as n,createElementVNode as i,withModifiers as m,createCommentVNode as f,createTextVNode as u,toDisplayString as c,createVNode as p,createBlock as y,withDirectives as b,vShow as v}from"vue";var h=a({name:"ObjectFormWrapper",mixins:[e,o,r,l],props:{schema:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},isRoot:{type:Boolean,default:!1},errors:{type:Object,default:function(){return{}}},isLastChild:{type:Boolean,default:!1},onlyJson:{type:Boolean,default:!1},level:{type:Number,default:1},showRootTab:{type:Boolean,default:!1}}}),V={class:"nested-header mb-5"},j=["disabled"];h.render=function(e,l,o,r,a,h){var T=t("component-errors"),D=t("tabs"),k=t("object-form"),q=t("yaml-form"),F=t("json-form");return s(),d("form",{class:n(["ac-nested-elements object-form-wrapper",{"stop-line":e.isLastChild,"is-collapsed":e.isFolded}])},[i("div",V,[i("h6",{class:"is-flex is-semi-normal",onClick:l[0]||(l[0]=m((function(l){return e.toggleFold()}),["prevent"]))},[e.isRoot?f("",!0):(s(),d("div",{key:0,class:"collaps-icon",disabled:"form"!==e.activeTab},[i("i",{class:n(["fa",e.isFolded?"fa-plus":"fa-minus"]),"aria-hidden":"true"},null,2)],8,j)),u(" "+c(e.schema.title||"Array Item Description")+" ",1),p(T,{errors:e.calcFormErrors(e.errors,e.fieldName)},null,8,["errors"])]),e.onlyJson?f("",!0):(s(),y(D,{key:0,modelValue:e.activeTab,"onUpdate:modelValue":l[1]||(l[1]=function(l){return e.activeTab=l}),showTab:e.showRootTab},null,8,["modelValue","showTab"]))]),b((s(),y(k,{key:"".concat(e.schema.title,"-form"),modelValue:e.modelData,"onUpdate:modelValue":l[2]||(l[2]=function(l){return e.modelData=l}),"field-name":e.fieldName,properties:e.schema.properties,title:e.schema.title,required:e.schema.required,"is-self-required":e.isSelfRequired,type:e.schema.type,level:e.level,"is-self-folded":e.isFolded,"reference-model":e.referenceModel||{},errors:e.errors},null,8,["modelValue","field-name","properties","title","required","is-self-required","type","level","is-self-folded","reference-model","errors"])),[[v,!e.onlyJson&&"form"===e.activeTab]]),"yaml"===e.activeTab?(s(),y(q,{key:0,modelValue:e.modelData,"onUpdate:modelValue":l[3]||(l[3]=function(l){return e.modelData=l}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):"json"===e.activeTab?(s(),y(F,{key:1,modelValue:e.modelData,"onUpdate:modelValue":l[4]||(l[4]=function(l){return e.modelData=l}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):f("",!0)],2)};export{h as default};
--------------------------------------------------------------------------------
/dist/ObjectFormWrapper-ce7a5cf0.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as l}from"./entry-a6929ab2.js";import{f as o}from"./fold-ab363a66.js";import{t as r}from"./tabs-1a22f292.js";import{defineComponent as a,resolveComponent as t,openBlock as s,createElementBlock as d,normalizeClass as n,createElementVNode as i,withModifiers as m,createCommentVNode as f,createTextVNode as u,toDisplayString as c,createVNode as p,createBlock as b,withDirectives as y,vShow as v}from"vue";var h=a({name:"ObjectFormWrapper",mixins:[e,o,r,l],props:{schema:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},isRoot:{type:Boolean,default:!1},errors:{type:Object,default:function(){return{}}},isLastChild:{type:Boolean,default:!1},onlyJson:{type:Boolean,default:!1},level:{type:Number,default:1},showRootTab:{type:Boolean,default:!1}}}),V={class:"nested-header mb-5"},j=["disabled"];h.render=function(e,l,o,r,a,h){var T=t("component-errors"),D=t("tabs"),k=t("object-form"),q=t("yaml-form"),F=t("json-form");return s(),d("form",{class:n(["ac-nested-elements object-form-wrapper",{"stop-line":e.isLastChild,"is-collapsed":e.isFolded}])},[i("div",V,[i("h6",{class:"is-flex is-semi-normal",onClick:l[0]||(l[0]=m((function(l){return e.toggleFold()}),["prevent"]))},[e.isRoot?f("",!0):(s(),d("div",{key:0,class:"collaps-icon",disabled:"form"!==e.activeTab},[i("i",{class:n(["fa",e.isFolded?"fa-plus":"fa-minus"]),"aria-hidden":"true"},null,2)],8,j)),u(" "+c(e.schema.title||"Array Item Description")+" ",1),p(T,{errors:e.calcFormErrors(e.errors,e.fieldName)},null,8,["errors"])]),e.onlyJson?f("",!0):(s(),b(D,{key:0,modelValue:e.activeTab,"onUpdate:modelValue":l[1]||(l[1]=function(l){return e.activeTab=l}),showTab:e.showRootTab},null,8,["modelValue","showTab"]))]),y((s(),b(k,{key:"".concat(e.schema.title,"-form"),modelValue:e.modelData,"onUpdate:modelValue":l[2]||(l[2]=function(l){return e.modelData=l}),"field-name":e.fieldName,properties:e.schema.properties,title:e.schema.title,required:e.schema.required,"is-self-required":e.isSelfRequired,type:e.schema.type,level:e.level,"is-self-folded":e.isFolded,"reference-model":e.referenceModel||{},errors:e.errors},null,8,["modelValue","field-name","properties","title","required","is-self-required","type","level","is-self-folded","reference-model","errors"])),[[v,!e.onlyJson&&"form"===e.activeTab]]),"yaml"===e.activeTab?(s(),b(q,{key:0,modelValue:e.modelData,"onUpdate:modelValue":l[3]||(l[3]=function(l){return e.modelData=l}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):"json"===e.activeTab?(s(),b(F,{key:1,modelValue:e.modelData,"onUpdate:modelValue":l[4]||(l[4]=function(l){return e.modelData=l}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):f("",!0)],2)};export{h as default};
--------------------------------------------------------------------------------
/dist/Editor-04edac3c.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),a=e.defineComponent({__name:"Editor",props:{modelValue:{default:""},originalValue:{default:""},readOnly:{type:Boolean,default:!1},language:{default:""},showMinimap:{type:Boolean,default:!1},editorHeight:{default:40},editorTheme:{default:""},wordWrap:{default:"on"},validation:{default:()=>({uri:""})}},emits:["update:modelValue"],setup(a,{emit:t}){const o=a,n=t,l=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./EditorTabs-d3112cc4.js")})))),i=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./Preloader-46710ac3.js")})))),r=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./Banner-a2991050.js")})))),d=e.defineAsyncComponent({loader:()=>Promise.resolve().then((function(){return require("./MonacoEditor-50a0f8ab.js")})),loadingComponent:i,delay:200,errorComponent:r,timeout:1e5}),u=e.ref("edit"),s=e.ref(""),c=e.ref(""),m=e.computed((()=>{const e=s.value.split("\n").length;return o.showMinimap&&e>25})),v=e.computed((()=>o.editorTheme||(document.documentElement.classList.contains("is-dark-theme")?"vs-dark":"vs"))),p=e=>{"string"==typeof e&&(s.value=e)},f=e=>{e.onDidBlurEditorText instanceof Function&&e.onDidBlurEditorText((()=>{n("update:modelValue",s.value)}))},g=e.computed((()=>"number"==typeof o.editorHeight?`vh-${o.editorHeight}`:"")),y=e.computed((()=>"string"==typeof o.editorHeight?{height:o.editorHeight}:{}));return e.watch((()=>o.modelValue),(e=>{s.value!==e&&(s.value=e)}),{immediate:!0}),e.watch((()=>o.originalValue),(e=>{c.value!==e&&(c.value=e)}),{immediate:!0}),(a,t)=>(e.openBlock(),e.createElementBlock("div",null,[a.readOnly?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(l),{key:0,onTabchange:t[0]||(t[0]=e=>u.value=e),"active-tab":u.value},null,8,["active-tab"])),"edit"===u.value?(e.openBlock(),e.createBlock(e.unref(d),{onEditorDidMount:f,key:"edit",class:e.normalizeClass(["is-clipped",g.value]),style:e.normalizeStyle(y.value),value:s.value,onChange:p,language:a.language,options:{minimap:{enabled:m.value},theme:v.value,readOnly:a.readOnly,wordWrap:a.wordWrap,scrollBeyondLastLine:!1},validation:a.validation,"data-testid":"monaco-editor-edit-section"},null,8,["class","style","value","language","options","validation"])):e.createCommentVNode("",!0),"preview"===u.value?(e.openBlock(),e.createBlock(e.unref(d),{key:"preview",class:e.normalizeClass(["is-clipped",g.value]),style:e.normalizeStyle(y.value),value:s.value,language:a.language,options:{minimap:{enabled:m.value},theme:v.value,readOnly:!0,wordWrap:a.wordWrap,scrollBeyondLastLine:!1},original:c.value,"diff-editor":!0,validation:a.validation,"data-testid":"monaco-editor-preview-section"},null,8,["class","style","value","language","options","original","validation"])):e.createCommentVNode("",!0)]))}});exports.default=a;
--------------------------------------------------------------------------------
/dist/Editor-2cb2cacf.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue"),a=e.defineComponent({__name:"Editor",props:{modelValue:{default:""},originalValue:{default:""},readOnly:{type:Boolean,default:!1},language:{default:""},showMinimap:{type:Boolean,default:!1},editorHeight:{default:40},editorTheme:{default:""},wordWrap:{default:"on"},validation:{default:()=>({uri:""})}},emits:["update:modelValue"],setup(a,{emit:t}){const o=a,n=t,l=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./EditorTabs-d3112cc4.js")})))),i=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./Preloader-46710ac3.js")})))),r=e.defineAsyncComponent((()=>Promise.resolve().then((function(){return require("./Banner-bfcd6aac.js")})))),d=e.defineAsyncComponent({loader:()=>Promise.resolve().then((function(){return require("./MonacoEditor-d6e4df49.js")})),loadingComponent:i,delay:200,errorComponent:r,timeout:1e5}),u=e.ref("edit"),s=e.ref(""),c=e.ref(""),m=e.computed((()=>{const e=s.value.split("\n").length;return o.showMinimap&&e>25})),v=e.computed((()=>o.editorTheme||(document.documentElement.classList.contains("is-dark-theme")?"vs-dark":"vs"))),p=e=>{"string"==typeof e&&(s.value=e)},f=e=>{e.onDidBlurEditorText instanceof Function&&e.onDidBlurEditorText((()=>{n("update:modelValue",s.value)}))},g=e.computed((()=>"number"==typeof o.editorHeight?`vh-${o.editorHeight}`:"")),y=e.computed((()=>"string"==typeof o.editorHeight?{height:o.editorHeight}:{}));return e.watch((()=>o.modelValue),(e=>{s.value!==e&&(s.value=e)}),{immediate:!0}),e.watch((()=>o.originalValue),(e=>{c.value!==e&&(c.value=e)}),{immediate:!0}),(a,t)=>(e.openBlock(),e.createElementBlock("div",null,[a.readOnly?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(l),{key:0,onTabchange:t[0]||(t[0]=e=>u.value=e),"active-tab":u.value},null,8,["active-tab"])),"edit"===u.value?(e.openBlock(),e.createBlock(e.unref(d),{onEditorDidMount:f,key:"edit",class:e.normalizeClass(["is-clipped",g.value]),style:e.normalizeStyle(y.value),value:s.value,onChange:p,language:a.language,options:{minimap:{enabled:m.value},theme:v.value,readOnly:a.readOnly,wordWrap:a.wordWrap,scrollBeyondLastLine:!1},validation:a.validation,"data-testid":"monaco-editor-edit-section"},null,8,["class","style","value","language","options","validation"])):e.createCommentVNode("",!0),"preview"===u.value?(e.openBlock(),e.createBlock(e.unref(d),{key:"preview",class:e.normalizeClass(["is-clipped",g.value]),style:e.normalizeStyle(y.value),value:s.value,language:a.language,options:{minimap:{enabled:m.value},theme:v.value,readOnly:!0,wordWrap:a.wordWrap,scrollBeyondLastLine:!1},original:c.value,"diff-editor":!0,validation:a.validation,"data-testid":"monaco-editor-preview-section"},null,8,["class","style","value","language","options","original","validation"])):e.createCommentVNode("",!0)]))}});exports.default=a;
--------------------------------------------------------------------------------
/dist/ObjectFormWrapper-d8b53092.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-46a6dd07.js"),o=require("./fold-e405c002.js"),l=require("./tabs-714485d5.js"),r=require("vue"),t=r.defineComponent({name:"ObjectFormWrapper",mixins:[e.m,o.f,l.t,e.v],props:{schema:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},isRoot:{type:Boolean,default:!1},errors:{type:Object,default:function(){return{}}},isLastChild:{type:Boolean,default:!1},onlyJson:{type:Boolean,default:!1},level:{type:Number,default:1}}}),a={class:"nested-header mb-5"},n=["disabled"];t.render=function(e,o,l,t,d,s){var i=r.resolveComponent("component-errors"),c=r.resolveComponent("tabs"),m=r.resolveComponent("object-form"),u=r.resolveComponent("yaml-form"),f=r.resolveComponent("json-form");return r.openBlock(),r.createElementBlock("form",{class:r.normalizeClass(["ac-nested-elements object-form-wrapper",{"stop-line":e.isLastChild,"is-collapsed":e.isFolded}])},[r.createElementVNode("div",a,[r.createElementVNode("h6",{class:"is-flex is-semi-normal",onClick:o[0]||(o[0]=r.withModifiers((function(o){return e.toggleFold()}),["prevent"]))},[e.isRoot?r.createCommentVNode("",!0):(r.openBlock(),r.createElementBlock("div",{key:0,class:"collaps-icon",disabled:"form"!==e.activeTab},[r.createElementVNode("i",{class:r.normalizeClass(["fa",e.isFolded?"fa-plus":"fa-minus"]),"aria-hidden":"true"},null,2)],8,n)),r.createTextVNode(" "+r.toDisplayString(e.schema.title||"Array Item Description")+" ",1),r.createVNode(i,{errors:e.calcFormErrors(e.errors,e.fieldName)},null,8,["errors"])]),e.onlyJson?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(c,{key:0,modelValue:e.activeTab,"onUpdate:modelValue":o[1]||(o[1]=function(o){return e.activeTab=o})},null,8,["modelValue"]))]),r.withDirectives((r.openBlock(),r.createBlock(m,{key:"".concat(e.schema.title,"-form"),modelValue:e.modelData,"onUpdate:modelValue":o[2]||(o[2]=function(o){return e.modelData=o}),"field-name":e.fieldName,properties:e.schema.properties,title:e.schema.title,required:e.schema.required,"is-self-required":e.isSelfRequired,type:e.schema.type,level:e.level,"is-self-folded":e.isFolded,"reference-model":e.referenceModel||{},errors:e.errors},null,8,["modelValue","field-name","properties","title","required","is-self-required","type","level","is-self-folded","reference-model","errors"])),[[r.vShow,!e.onlyJson&&"form"===e.activeTab]]),"yaml"===e.activeTab?(r.openBlock(),r.createBlock(u,{key:0,modelValue:e.modelData,"onUpdate:modelValue":o[3]||(o[3]=function(o){return e.modelData=o}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):"json"===e.activeTab?(r.openBlock(),r.createBlock(f,{key:1,modelValue:e.modelData,"onUpdate:modelValue":o[4]||(o[4]=function(o){return e.modelData=o}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):r.createCommentVNode("",!0)],2)},exports.default=t;
--------------------------------------------------------------------------------
/dist/ObjectFormWrapper-66e8b9cd.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-5480607d.js"),o=require("./fold-e405c002.js"),l=require("./tabs-e549bda7.js"),r=require("vue"),t=r.defineComponent({name:"ObjectFormWrapper",mixins:[e.m,o.f,l.t,e.v],props:{schema:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},isRoot:{type:Boolean,default:!1},errors:{type:Object,default:function(){return{}}},isLastChild:{type:Boolean,default:!1},onlyJson:{type:Boolean,default:!1},level:{type:Number,default:1},showRootTab:{type:Boolean,default:!1}}}),a={class:"nested-header mb-5"},n=["disabled"];t.render=function(e,o,l,t,s,d){var i=r.resolveComponent("component-errors"),c=r.resolveComponent("tabs"),m=r.resolveComponent("object-form"),u=r.resolveComponent("yaml-form"),f=r.resolveComponent("json-form");return r.openBlock(),r.createElementBlock("form",{class:r.normalizeClass(["ac-nested-elements object-form-wrapper",{"stop-line":e.isLastChild,"is-collapsed":e.isFolded}])},[r.createElementVNode("div",a,[r.createElementVNode("h6",{class:"is-flex is-semi-normal",onClick:o[0]||(o[0]=r.withModifiers((function(o){return e.toggleFold()}),["prevent"]))},[e.isRoot?r.createCommentVNode("",!0):(r.openBlock(),r.createElementBlock("div",{key:0,class:"collaps-icon",disabled:"form"!==e.activeTab},[r.createElementVNode("i",{class:r.normalizeClass(["fa",e.isFolded?"fa-plus":"fa-minus"]),"aria-hidden":"true"},null,2)],8,n)),r.createTextVNode(" "+r.toDisplayString(e.schema.title||"Array Item Description")+" ",1),r.createVNode(i,{errors:e.calcFormErrors(e.errors,e.fieldName)},null,8,["errors"])]),e.onlyJson?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(c,{key:0,modelValue:e.activeTab,"onUpdate:modelValue":o[1]||(o[1]=function(o){return e.activeTab=o}),showTab:e.showRootTab},null,8,["modelValue","showTab"]))]),r.withDirectives((r.openBlock(),r.createBlock(m,{key:"".concat(e.schema.title,"-form"),modelValue:e.modelData,"onUpdate:modelValue":o[2]||(o[2]=function(o){return e.modelData=o}),"field-name":e.fieldName,properties:e.schema.properties,title:e.schema.title,required:e.schema.required,"is-self-required":e.isSelfRequired,type:e.schema.type,level:e.level,"is-self-folded":e.isFolded,"reference-model":e.referenceModel||{},errors:e.errors},null,8,["modelValue","field-name","properties","title","required","is-self-required","type","level","is-self-folded","reference-model","errors"])),[[r.vShow,!e.onlyJson&&"form"===e.activeTab]]),"yaml"===e.activeTab?(r.openBlock(),r.createBlock(u,{key:0,modelValue:e.modelData,"onUpdate:modelValue":o[3]||(o[3]=function(o){return e.modelData=o}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):"json"===e.activeTab?(r.openBlock(),r.createBlock(f,{key:1,modelValue:e.modelData,"onUpdate:modelValue":o[4]||(o[4]=function(o){return e.modelData=o}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):r.createCommentVNode("",!0)],2)},exports.default=t;
--------------------------------------------------------------------------------
/dist/ObjectFormWrapper-cea98462.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-c1fde67d.js"),o=require("./fold-e405c002.js"),l=require("./tabs-f0820640.js"),r=require("vue"),t=r.defineComponent({name:"ObjectFormWrapper",mixins:[e.m,o.f,l.t,e.v],props:{schema:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},isRoot:{type:Boolean,default:!1},errors:{type:Object,default:function(){return{}}},isLastChild:{type:Boolean,default:!1},onlyJson:{type:Boolean,default:!1},level:{type:Number,default:1},showRootTab:{type:Boolean,default:!1}}}),a={class:"nested-header mb-5"},n=["disabled"];t.render=function(e,o,l,t,s,d){var i=r.resolveComponent("component-errors"),c=r.resolveComponent("tabs"),m=r.resolveComponent("object-form"),u=r.resolveComponent("yaml-form"),f=r.resolveComponent("json-form");return r.openBlock(),r.createElementBlock("form",{class:r.normalizeClass(["ac-nested-elements object-form-wrapper",{"stop-line":e.isLastChild,"is-collapsed":e.isFolded}])},[r.createElementVNode("div",a,[r.createElementVNode("h6",{class:"is-flex is-semi-normal",onClick:o[0]||(o[0]=r.withModifiers((function(o){return e.toggleFold()}),["prevent"]))},[e.isRoot?r.createCommentVNode("",!0):(r.openBlock(),r.createElementBlock("div",{key:0,class:"collaps-icon",disabled:"form"!==e.activeTab},[r.createElementVNode("i",{class:r.normalizeClass(["fa",e.isFolded?"fa-plus":"fa-minus"]),"aria-hidden":"true"},null,2)],8,n)),r.createTextVNode(" "+r.toDisplayString(e.schema.title||"Array Item Description")+" ",1),r.createVNode(i,{errors:e.calcFormErrors(e.errors,e.fieldName)},null,8,["errors"])]),e.onlyJson?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(c,{key:0,modelValue:e.activeTab,"onUpdate:modelValue":o[1]||(o[1]=function(o){return e.activeTab=o}),showTab:e.showRootTab},null,8,["modelValue","showTab"]))]),r.withDirectives((r.openBlock(),r.createBlock(m,{key:"".concat(e.schema.title,"-form"),modelValue:e.modelData,"onUpdate:modelValue":o[2]||(o[2]=function(o){return e.modelData=o}),"field-name":e.fieldName,properties:e.schema.properties,title:e.schema.title,required:e.schema.required,"is-self-required":e.isSelfRequired,type:e.schema.type,level:e.level,"is-self-folded":e.isFolded,"reference-model":e.referenceModel||{},errors:e.errors},null,8,["modelValue","field-name","properties","title","required","is-self-required","type","level","is-self-folded","reference-model","errors"])),[[r.vShow,!e.onlyJson&&"form"===e.activeTab]]),"yaml"===e.activeTab?(r.openBlock(),r.createBlock(u,{key:0,modelValue:e.modelData,"onUpdate:modelValue":o[3]||(o[3]=function(o){return e.modelData=o}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):"json"===e.activeTab?(r.openBlock(),r.createBlock(f,{key:1,modelValue:e.modelData,"onUpdate:modelValue":o[4]||(o[4]=function(o){return e.modelData=o}),"reference-model":e.referenceModel||{}},null,8,["modelValue","reference-model"])):r.createCommentVNode("",!0)],2)},exports.default=t;
--------------------------------------------------------------------------------
/src/components/ObjectFormWrapper.vue:
--------------------------------------------------------------------------------
1 |
2 |
55 |
56 |
57 |
108 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@appscode/vue-openapi-form",
3 | "version": "1.2.0",
4 | "main": "dist/vue-openapi-form.ssr.js",
5 | "browser": "dist/vue-openapi-form.esm.js",
6 | "module": "dist/vue-openapi-form.esm.js",
7 | "unpkg": "dist/vue-openapi-form.min.js",
8 | "scripts": {
9 | "dev": "vite",
10 | "build": "vite build",
11 | "serve": "vite preview",
12 | "lint": "eslint --fix --ext .ts,vue --ignore-path .gitignore .",
13 | "pkg": "cross-env NODE_ENV=production rollup --config rollup.config.js",
14 | "pkg:ssr": "cross-env NODE_ENV=production rollup --config rollup.config.js --format cjs",
15 | "pkg:es": "cross-env NODE_ENV=production rollup --config rollup.config.js --format es",
16 | "pkg:unpkg": "cross-env NODE_ENV=production rollup --config rollup.config.js --format iife",
17 | "deploy": "firebase use default && firebase deploy"
18 | },
19 | "dependencies": {
20 | "@appscode/design-system": "^2.6.0",
21 | "@appscode/design-system-images": "0.0.13",
22 | "@vee-validate/rules": "^4.5.11",
23 | "bulma": "^0.9.4",
24 | "bulma-checkradio": "^2.1.3",
25 | "bulma-switch": "^2.0.4",
26 | "bulma-tooltip": "^3.0.2",
27 | "floating-vue": "^2.0.0-beta.15",
28 | "font-awesome": "^4.7.0",
29 | "js-yaml": "^3.14.1",
30 | "monaco-editor": "^0.41.0",
31 | "monaco-yaml": "^5.0.0",
32 | "vee-validate": "^4.4.7",
33 | "vue": "^3.0.5"
34 | },
35 | "devDependencies": {
36 | "@babel/core": "^7.12.10",
37 | "@babel/preset-env": "^7.13.5",
38 | "@rollup/plugin-alias": "^3.1.1",
39 | "@rollup/plugin-babel": "^5.2.2",
40 | "@rollup/plugin-commonjs": "^17.0.0",
41 | "@rollup/plugin-json": "^4.1.0",
42 | "@rollup/plugin-node-resolve": "^11.0.1",
43 | "@rollup/plugin-replace": "^2.3.4",
44 | "@vitejs/plugin-vue": "^1.2.3",
45 | "@vue/compiler-sfc": "^3.0.5",
46 | "cross-env": "^7.0.3",
47 | "eslint": "^8.13.0",
48 | "eslint-config-prettier": "^8.5.0",
49 | "eslint-plugin-html": "^6.2.0",
50 | "eslint-plugin-vue": "^8.6.0",
51 | "minimist": "^1.2.5",
52 | "prettier": "2.6.2",
53 | "rollup": "^2.23.0",
54 | "rollup-plugin-scss": "^3.0.0",
55 | "rollup-plugin-terser": "^7.0.2",
56 | "rollup-plugin-typescript": "^1.0.1",
57 | "rollup-plugin-vue": "^6.0.0",
58 | "sass": "^1.50.0",
59 | "tslib": "^2.5.3",
60 | "typescript": "~4.7.0",
61 | "vite": "^2.3.8",
62 | "vue-tsc": "^1.0.9",
63 | "vuex": "^4.0.2"
64 | },
65 | "peerDependencies": {
66 | "vue": "^3.0.5"
67 | },
68 | "engines": {
69 | "node": ">=22"
70 | },
71 | "description": "A Vue component to generate html form using OpenAPI v3 schema",
72 | "repository": {
73 | "type": "git",
74 | "url": "git+https://github.com/appscode/vue-openapi-form.git"
75 | },
76 | "keywords": [
77 | "json-schema",
78 | "vue",
79 | "openapi",
80 | "kubernetes"
81 | ],
82 | "author": "support@appscode.com",
83 | "license": "Apache-2.0",
84 | "bugs": {
85 | "url": "https://github.com/appscode/vue-openapi-form/issues"
86 | },
87 | "homepage": "https://github.com/appscode/vue-openapi-form#readme"
88 | }
89 |
--------------------------------------------------------------------------------
/dist/MonacoEditor-f41826a2.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as t,toRefs as e,computed as i,ref as o,openBlock as a,createElementBlock as s,normalizeStyle as n}from"vue";import*as l from"monaco-editor";var d=t({name:"MonacoEditor",props:{diffEditor:{type:Boolean,default:!1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"100%"},original:String,value:String,language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},options:{type:Object,default:()=>({})},validation:{type:Object,default:()=>({})}},emits:["editorWillMount","editorDidMount","change"],setup(t){const{width:a,height:s}=e(t),n=i((()=>({width:a.value.toString().includes("%")?a.value:`${a.value}px`,height:s.value.toString().includes("%")?s.value:`${s.value}px`,"text-align":"left"}))),l=o("");return{style:n,modelId:l,updateModelId:function(){l.value=`file:///file-${(new Date).getTime()}.yaml`}}},mounted(){this.initMonaco()},beforeUnmount(){l.editor.getModel(this.modelId)?.dispose(),this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=this.$monacoValidationOptions.schemas.filter((t=>!t.fileMatch.includes(this.modelId)))),this.editor&&this.editor.dispose()},methods:{async initMonaco(){this.updateModelId(),this.$emit("editorWillMount",this.monaco);const{value:t,language:e,theme:i,options:o,original:a,validation:s}=this;if(this.diffEditor){const s=l.editor.createModel(a,e),n=l.editor.createModel(t,e);this.editor=l.editor.createDiffEditor(this.$el,{automaticLayout:!0,theme:i,fixedOverflowWidgets:!0,...o}),this.editor.setModel({original:s,modified:n})}else{const a=l.editor.createModel(t,e,l.Uri.parse(this.modelId));if(s.uri)if(s.schema?.type){const t=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:s.schema,uri:s.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=t),this.$monacoYaml&&this.$monacoYaml.update({schemas:t}),l.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!1,schemas:t,allowComments:!0})}else{const t=await fetch(s.uri);if(t.ok){const e=await t.json(),i=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:e,uri:s.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=i),this.$monacoYaml&&this.$monacoYaml.update({schemas:i,enableSchemaRequest:!0}),l.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!0,schemas:i,allowComments:!0})}else this.$monacoYaml&&this.$monacoYaml.update({validate:!1}),l.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!1})}this.editor=l.editor.create(this.$el,{automaticLayout:!0,model:a,theme:i,fixedOverflowWidgets:!0,...o})}const n=this._getEditor();n.onDidChangeModelContent((t=>{const e=n.getValue();this.value!==e&&this.$emit("change",e,t)})),this.$emit("editorDidMount",this.editor)},_setValue(t){let e=this._getEditor();if(e)return e.setValue(t)},_getValue(){let t=this._getEditor();return t?t.getValue():""},_getEditor(){return this.editor?this.diffEditor?this.editor.getModifiedEditor():this.editor:null},_setOriginal(){const{original:t}=this.editor.getModel();t.setValue(this.original)}},watch:{options:{deep:!0,handler(t){this.editor.updateOptions(t)}},value(){this.value!==this._getValue()&&this._setValue(this.value)},original(){this._setOriginal()},language(){if(this.editor)if(this.diffEditor){const{original:t,modified:e}=this.editor.getModel();l.editor.setModelLanguage(t,this.language),l.editor.setModelLanguage(e,this.language)}else l.editor.setModelLanguage(this.editor.getModel(),this.language)},theme(){l.editor.setTheme(this.theme)}}});d.render=function(t,e,i,o,l,d){return a(),s("div",{class:"monaco-editor-vue3",style:n(t.style)},null,4)};export{d as default};
--------------------------------------------------------------------------------
/dist/MonacoEditor-16bf802f.js:
--------------------------------------------------------------------------------
1 | import{defineComponent as t,toRefs as e,computed as i,ref as o,openBlock as a,createElementBlock as s,normalizeStyle as n}from"vue";import*as l from"monaco-editor";var d=t({name:"MonacoEditor",props:{diffEditor:{type:Boolean,default:!1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"100%"},original:String,value:String,language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},options:{type:Object,default:()=>({})},validation:{type:Object,default:()=>({})}},emits:["editorWillMount","editorDidMount","change"],setup(t){const{width:a,height:s}=e(t),n=i((()=>({width:a.value.toString().includes("%")?a.value:`${a.value}px`,height:s.value.toString().includes("%")?s.value:`${s.value}px`,"text-align":"left"}))),l=o("");return{style:n,modelId:l,updateModelId:function(){l.value=`file:///file-${(new Date).getTime()}.yaml`}}},mounted(){this.initMonaco()},beforeUnmount(){l.editor.getModel(this.modelId)?.dispose(),this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=this.$monacoValidationOptions.schemas.filter((t=>!t.fileMatch.includes(this.modelId)))),this.editor&&this.editor.dispose()},methods:{async initMonaco(){this.updateModelId(),this.$emit("editorWillMount",this.monaco);const{value:t,language:e,theme:i,options:o,original:a,validation:s}=this;if(this.diffEditor){const s=l.editor.createModel(a,e),n=l.editor.createModel(t,e);this.editor=l.editor.createDiffEditor(this.$el,{automaticLayout:!0,theme:i,fixedOverflowWidgets:!0,...o}),this.editor.setModel({original:s,modified:n})}else{const a=l.editor.createModel(t,e,l.Uri.parse(this.modelId));if(s.uri)if(s.schema?.type){const t=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:s.schema,uri:s.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=t),this.$monacoYaml&&this.$monacoYaml.update({schemas:t}),l.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!1,schemas:t,allowComments:!0})}else{const t=await fetch(s.uri);if(t.ok){const e=await t.json(),i=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:e,uri:s.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=i),this.$monacoYaml&&this.$monacoYaml.update({schemas:i,enableSchemaRequest:!0}),l.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!0,schemas:i,allowComments:!0})}else this.$monacoYaml&&this.$monacoYaml.update({validate:!1}),l.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!1})}this.editor=l.editor.create(this.$el,{automaticLayout:!0,model:a,theme:i,fixedOverflowWidgets:!0,...o})}const n=this._getEditor();n.onDidChangeModelContent((t=>{const e=n.getValue();this.value!==e&&this.$emit("change",e,t)})),this.$emit("editorDidMount",this.editor)},_setValue(t){const e=this._getEditor();if(e)return e.setValue(t)},_getValue(){const t=this._getEditor();return t?t.getValue():""},_getEditor(){return this.editor?this.diffEditor?this.editor.getModifiedEditor():this.editor:null},_setOriginal(){const{original:t}=this.editor.getModel();t.setValue(this.original)}},watch:{options:{deep:!0,handler(t){this.editor.updateOptions(t)}},value(){this.value!==this._getValue()&&this._setValue(this.value)},original(){this._setOriginal()},language(){if(this.editor)if(this.diffEditor){const{original:t,modified:e}=this.editor.getModel();l.editor.setModelLanguage(t,this.language),l.editor.setModelLanguage(e,this.language)}else l.editor.setModelLanguage(this.editor.getModel(),this.language)},theme(){l.editor.setTheme(this.theme)}}});d.render=function(t,e,i,o,l,d){return a(),s("div",{class:"monaco-editor-vue3",style:n(t.style)},null,4)};export{d as default};
--------------------------------------------------------------------------------
/dist/ArrayInputItems-592f292e.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as a,_ as l}from"./entry-a6929ab2.js";import{defineComponent as t,resolveComponent as n,openBlock as r,createElementBlock as o,createBlock as d,withCtx as c,createVNode as m}from"vue";var i=t({name:"ArrayInputItems",mixins:[e,a],props:{items:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},index:{type:Number,default:0},modelValue:{type:null,default:function(){return[]}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}}}}),u={class:"form-left-item"};i.render=function(e,a,t,i,s,f){var p=n("object-form-wrapper"),y=n("v-field"),x=n("key-value-pairs"),v=n("array-input"),h=n("simple-input");return r(),o("div",u,["object"===e.items.type?(r(),d(y,{key:0,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[0]||(a[0]=function(a){return e.modelData[e.index]=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(p,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),"is-self-required":!0,type:e.items.type,errors:e.errors,"reference-model":e.referenceModel[e.index]||{},"onUpdate:modelValue":n},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"key-value-pairs"===e.items.type?(r(),d(y,{key:1,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[1]||(a[1]=function(a){return e.modelData[e.index]=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(x,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,errors:e.errors,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,"reference-model":e.referenceModel[e.index]||{},"onUpdate:modelValue":n},null,8,["field-name","model-value","errors","schema","type","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"array"===e.items.type?(r(),d(y,{key:2,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[2]||(a[2]=function(a){return e.modelData[e.index]=a}),rules:e.ruleArray(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(v,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,errors:e.errors,"reference-model":e.referenceModel[e.index]||[],"onUpdate:modelValue":n},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):(r(),d(y,{key:3,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[3]||(a[3]=function(a){return e.modelData[e.index]=a}),rules:e.ruleString(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange,r=a.errors,o=a.meta;return[m(h,{"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,required:!0,"validation-ob":l({errors:r},o),"reference-model":e.referenceModel[e.index]||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"]))])};export{i as default};
--------------------------------------------------------------------------------
/dist/ArrayInputItems-af73e993.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as a,_ as l}from"./entry-f11f5a48.js";import{defineComponent as t,resolveComponent as n,openBlock as r,createElementBlock as o,createBlock as d,withCtx as c,createVNode as m}from"vue";var i=t({name:"ArrayInputItems",mixins:[e,a],props:{items:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},index:{type:Number,default:0},modelValue:{type:null,default:function(){return[]}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}}}}),u={class:"form-left-item"};i.render=function(e,a,t,i,s,f){var p=n("object-form-wrapper"),y=n("v-field"),x=n("key-value-pairs"),v=n("array-input"),h=n("simple-input");return r(),o("div",u,["object"===e.items.type?(r(),d(y,{key:0,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[0]||(a[0]=function(a){return e.modelData[e.index]=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(p,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),"is-self-required":!0,type:e.items.type,errors:e.errors,"reference-model":e.referenceModel[e.index]||{},"onUpdate:modelValue":n},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"key-value-pairs"===e.items.type?(r(),d(y,{key:1,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[1]||(a[1]=function(a){return e.modelData[e.index]=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(x,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,errors:e.errors,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,"reference-model":e.referenceModel[e.index]||{},"onUpdate:modelValue":n},null,8,["field-name","model-value","errors","schema","type","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"array"===e.items.type?(r(),d(y,{key:2,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[2]||(a[2]=function(a){return e.modelData[e.index]=a}),rules:e.ruleArray(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(v,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,errors:e.errors,"reference-model":e.referenceModel[e.index]||[],"onUpdate:modelValue":n},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):(r(),d(y,{key:3,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[3]||(a[3]=function(a){return e.modelData[e.index]=a}),rules:e.ruleString(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange,r=a.errors,o=a.meta;return[m(h,{"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,required:!0,"validation-ob":l({errors:r},o),"reference-model":e.referenceModel[e.index]||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"]))])};export{i as default};
--------------------------------------------------------------------------------
/dist/ArrayInputItems-ee63c6cb.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as a,_ as l}from"./entry-2ace4904.js";import{defineComponent as t,resolveComponent as n,openBlock as r,createElementBlock as o,createBlock as d,withCtx as c,createVNode as m}from"vue";var i=t({name:"ArrayInputItems",mixins:[e,a],props:{items:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},index:{type:Number,default:0},modelValue:{type:null,default:function(){return[]}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}}}}),u={class:"form-left-item"};i.render=function(e,a,t,i,s,f){var p=n("object-form-wrapper"),y=n("v-field"),x=n("key-value-pairs"),v=n("array-input"),h=n("simple-input");return r(),o("div",u,["object"===e.items.type?(r(),d(y,{key:0,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[0]||(a[0]=function(a){return e.modelData[e.index]=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(p,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),"is-self-required":!0,type:e.items.type,errors:e.errors,"reference-model":e.referenceModel[e.index]||{},"onUpdate:modelValue":n},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"key-value-pairs"===e.items.type?(r(),d(y,{key:1,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[1]||(a[1]=function(a){return e.modelData[e.index]=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(x,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,errors:e.errors,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,"reference-model":e.referenceModel[e.index]||{},"onUpdate:modelValue":n},null,8,["field-name","model-value","errors","schema","type","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"array"===e.items.type?(r(),d(y,{key:2,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[2]||(a[2]=function(a){return e.modelData[e.index]=a}),rules:e.ruleArray(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange;return[m(v,{"field-name":"".concat(e.fieldName,"/").concat(e.index+1),"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,errors:e.errors,"reference-model":e.referenceModel[e.index]||[],"onUpdate:modelValue":n},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):(r(),d(y,{key:3,modelValue:e.modelData[e.index],"onUpdate:modelValue":a[3]||(a[3]=function(a){return e.modelData[e.index]=a}),rules:e.ruleString(!0),name:"".concat(e.fieldName,"/").concat(e.index+1),label:"".concat(e.schema.title," ").concat(e.index+1),as:""},{default:c((function(a){var t=a.field,n=a.handleChange,r=a.errors,o=a.meta;return[m(h,{"model-value":t.value,schema:l(l({},e.items),{title:"".concat(e.schema.title," ").concat(e.index+1)}),type:e.items.type,required:!0,"validation-ob":l({errors:r},o),"reference-model":e.referenceModel[e.index]||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"]))])};export{i as default};
--------------------------------------------------------------------------------
/src/components/VueOpenapiForm.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
27 |
28 |
29 |
30 |
31 |
37 |
38 |
39 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
118 |
119 |
123 |
--------------------------------------------------------------------------------
/dist/ArrayInputItems-81e58d12.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-c1fde67d.js"),a=require("vue"),l=a.defineComponent({name:"ArrayInputItems",mixins:[e.m,e.v],props:{items:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},index:{type:Number,default:0},modelValue:{type:null,default:function(){return[]}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}}}}),t={class:"form-left-item"};l.render=function(l,n,o,r,d,c){var m=a.resolveComponent("object-form-wrapper"),i=a.resolveComponent("v-field"),u=a.resolveComponent("key-value-pairs"),s=a.resolveComponent("array-input"),f=a.resolveComponent("simple-input");return a.openBlock(),a.createElementBlock("div",t,["object"===l.items.type?(a.openBlock(),a.createBlock(i,{key:0,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[0]||(n[0]=function(e){return l.modelData[l.index]=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(m,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),"is-self-required":!0,type:l.items.type,errors:l.errors,"reference-model":l.referenceModel[l.index]||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"key-value-pairs"===l.items.type?(a.openBlock(),a.createBlock(i,{key:1,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[1]||(n[1]=function(e){return l.modelData[l.index]=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(u,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,errors:l.errors,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,"reference-model":l.referenceModel[l.index]||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","errors","schema","type","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"array"===l.items.type?(a.openBlock(),a.createBlock(i,{key:2,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[2]||(n[2]=function(e){return l.modelData[l.index]=e}),rules:l.ruleArray(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(s,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,errors:l.errors,"reference-model":l.referenceModel[l.index]||[],"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):(a.openBlock(),a.createBlock(i,{key:3,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[3]||(n[3]=function(e){return l.modelData[l.index]=e}),rules:l.ruleString(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange,r=t.errors,d=t.meta;return[a.createVNode(f,{"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,required:!0,"validation-ob":e._({errors:r},d),"reference-model":l.referenceModel[l.index]||"","onUpdate:modelValue":o},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"]))])},exports.default=l;
--------------------------------------------------------------------------------
/dist/ArrayInputItems-a24635a8.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-46a6dd07.js"),a=require("vue"),l=a.defineComponent({name:"ArrayInputItems",mixins:[e.m,e.v],props:{items:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},index:{type:Number,default:0},modelValue:{type:null,default:function(){return[]}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}}}}),t={class:"form-left-item"};l.render=function(l,n,o,r,d,c){var m=a.resolveComponent("object-form-wrapper"),i=a.resolveComponent("v-field"),u=a.resolveComponent("key-value-pairs"),s=a.resolveComponent("array-input"),f=a.resolveComponent("simple-input");return a.openBlock(),a.createElementBlock("div",t,["object"===l.items.type?(a.openBlock(),a.createBlock(i,{key:0,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[0]||(n[0]=function(e){return l.modelData[l.index]=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(m,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),"is-self-required":!0,type:l.items.type,errors:l.errors,"reference-model":l.referenceModel[l.index]||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"key-value-pairs"===l.items.type?(a.openBlock(),a.createBlock(i,{key:1,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[1]||(n[1]=function(e){return l.modelData[l.index]=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(u,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,errors:l.errors,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,"reference-model":l.referenceModel[l.index]||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","errors","schema","type","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"array"===l.items.type?(a.openBlock(),a.createBlock(i,{key:2,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[2]||(n[2]=function(e){return l.modelData[l.index]=e}),rules:l.ruleArray(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(s,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,errors:l.errors,"reference-model":l.referenceModel[l.index]||[],"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):(a.openBlock(),a.createBlock(i,{key:3,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[3]||(n[3]=function(e){return l.modelData[l.index]=e}),rules:l.ruleString(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange,r=t.errors,d=t.meta;return[a.createVNode(f,{"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,required:!0,"validation-ob":e._({errors:r},d),"reference-model":l.referenceModel[l.index]||"","onUpdate:modelValue":o},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"]))])},exports.default=l;
--------------------------------------------------------------------------------
/dist/ArrayInputItems-b40b2d6a.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-5480607d.js"),a=require("vue"),l=a.defineComponent({name:"ArrayInputItems",mixins:[e.m,e.v],props:{items:{type:Object,default:function(){return{}}},schema:{type:Object,default:function(){return{}}},index:{type:Number,default:0},modelValue:{type:null,default:function(){return[]}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}}}}),t={class:"form-left-item"};l.render=function(l,n,o,r,d,c){var m=a.resolveComponent("object-form-wrapper"),i=a.resolveComponent("v-field"),u=a.resolveComponent("key-value-pairs"),s=a.resolveComponent("array-input"),f=a.resolveComponent("simple-input");return a.openBlock(),a.createElementBlock("div",t,["object"===l.items.type?(a.openBlock(),a.createBlock(i,{key:0,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[0]||(n[0]=function(e){return l.modelData[l.index]=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(m,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),"is-self-required":!0,type:l.items.type,errors:l.errors,"reference-model":l.referenceModel[l.index]||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"key-value-pairs"===l.items.type?(a.openBlock(),a.createBlock(i,{key:1,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[1]||(n[1]=function(e){return l.modelData[l.index]=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(u,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,errors:l.errors,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,"reference-model":l.referenceModel[l.index]||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","errors","schema","type","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):"array"===l.items.type?(a.openBlock(),a.createBlock(i,{key:2,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[2]||(n[2]=function(e){return l.modelData[l.index]=e}),rules:l.ruleArray(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange;return[a.createVNode(s,{"field-name":"".concat(l.fieldName,"/").concat(l.index+1),"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,errors:l.errors,"reference-model":l.referenceModel[l.index]||[],"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"])):(a.openBlock(),a.createBlock(i,{key:3,modelValue:l.modelData[l.index],"onUpdate:modelValue":n[3]||(n[3]=function(e){return l.modelData[l.index]=e}),rules:l.ruleString(!0),name:"".concat(l.fieldName,"/").concat(l.index+1),label:"".concat(l.schema.title," ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var n=t.field,o=t.handleChange,r=t.errors,d=t.meta;return[a.createVNode(f,{"model-value":n.value,schema:e._(e._({},l.items),{title:"".concat(l.schema.title," ").concat(l.index+1)}),type:l.items.type,required:!0,"validation-ob":e._({errors:r},d),"reference-model":l.referenceModel[l.index]||"","onUpdate:modelValue":o},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["modelValue","rules","name","label"]))])},exports.default=l;
--------------------------------------------------------------------------------
/dist/MonacoEditor-d6e4df49.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");function t(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var i=t(require("monaco-editor")),o=e.defineComponent({name:"MonacoEditor",props:{diffEditor:{type:Boolean,default:!1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"100%"},original:String,value:String,language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},options:{type:Object,default:()=>({})},validation:{type:Object,default:()=>({})}},emits:["editorWillMount","editorDidMount","change"],setup(t){const{width:i,height:o}=e.toRefs(t),a=e.computed((()=>({width:i.value.toString().includes("%")?i.value:`${i.value}px`,height:o.value.toString().includes("%")?o.value:`${o.value}px`,"text-align":"left"}))),s=e.ref("");return{style:a,modelId:s,updateModelId:function(){s.value=`file:///file-${(new Date).getTime()}.yaml`}}},mounted(){this.initMonaco()},beforeUnmount(){i.editor.getModel(this.modelId)?.dispose(),this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=this.$monacoValidationOptions.schemas.filter((e=>!e.fileMatch.includes(this.modelId)))),this.editor&&this.editor.dispose()},methods:{async initMonaco(){this.updateModelId(),this.$emit("editorWillMount",this.monaco);const{value:e,language:t,theme:o,options:a,original:s,validation:n}=this;if(this.diffEditor){const n=i.editor.createModel(s,t),l=i.editor.createModel(e,t);this.editor=i.editor.createDiffEditor(this.$el,{automaticLayout:!0,theme:o,fixedOverflowWidgets:!0,...a}),this.editor.setModel({original:n,modified:l})}else{const s=i.editor.createModel(e,t,i.Uri.parse(this.modelId));if(n.uri)if(n.schema?.type){const e=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:n.schema,uri:n.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=e),this.$monacoYaml&&this.$monacoYaml.update({schemas:e}),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!1,schemas:e,allowComments:!0})}else{const e=await fetch(n.uri);if(e.ok){const t=await e.json(),o=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:t,uri:n.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=o),this.$monacoYaml&&this.$monacoYaml.update({schemas:o,enableSchemaRequest:!0}),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!0,schemas:o,allowComments:!0})}else this.$monacoYaml&&this.$monacoYaml.update({validate:!1}),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!1})}this.editor=i.editor.create(this.$el,{automaticLayout:!0,model:s,theme:o,fixedOverflowWidgets:!0,...a})}const l=this._getEditor();l.onDidChangeModelContent((e=>{const t=l.getValue();this.value!==t&&this.$emit("change",t,e)})),this.$emit("editorDidMount",this.editor)},_setValue(e){let t=this._getEditor();if(t)return t.setValue(e)},_getValue(){let e=this._getEditor();return e?e.getValue():""},_getEditor(){return this.editor?this.diffEditor?this.editor.getModifiedEditor():this.editor:null},_setOriginal(){const{original:e}=this.editor.getModel();e.setValue(this.original)}},watch:{options:{deep:!0,handler(e){this.editor.updateOptions(e)}},value(){this.value!==this._getValue()&&this._setValue(this.value)},original(){this._setOriginal()},language(){if(this.editor)if(this.diffEditor){const{original:e,modified:t}=this.editor.getModel();i.editor.setModelLanguage(e,this.language),i.editor.setModelLanguage(t,this.language)}else i.editor.setModelLanguage(this.editor.getModel(),this.language)},theme(){i.editor.setTheme(this.theme)}}});o.render=function(t,i,o,a,s,n){return e.openBlock(),e.createElementBlock("div",{class:"monaco-editor-vue3",style:e.normalizeStyle(t.style)},null,4)},exports.default=o;
--------------------------------------------------------------------------------
/dist/MonacoEditor-50a0f8ab.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("vue");function t(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var i=t(require("monaco-editor")),o=e.defineComponent({name:"MonacoEditor",props:{diffEditor:{type:Boolean,default:!1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"100%"},original:String,value:String,language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},options:{type:Object,default:()=>({})},validation:{type:Object,default:()=>({})}},emits:["editorWillMount","editorDidMount","change"],setup(t){const{width:i,height:o}=e.toRefs(t),a=e.computed((()=>({width:i.value.toString().includes("%")?i.value:`${i.value}px`,height:o.value.toString().includes("%")?o.value:`${o.value}px`,"text-align":"left"}))),s=e.ref("");return{style:a,modelId:s,updateModelId:function(){s.value=`file:///file-${(new Date).getTime()}.yaml`}}},mounted(){this.initMonaco()},beforeUnmount(){i.editor.getModel(this.modelId)?.dispose(),this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=this.$monacoValidationOptions.schemas.filter((e=>!e.fileMatch.includes(this.modelId)))),this.editor&&this.editor.dispose()},methods:{async initMonaco(){this.updateModelId(),this.$emit("editorWillMount",this.monaco);const{value:e,language:t,theme:o,options:a,original:s,validation:n}=this;if(this.diffEditor){const n=i.editor.createModel(s,t),l=i.editor.createModel(e,t);this.editor=i.editor.createDiffEditor(this.$el,{automaticLayout:!0,theme:o,fixedOverflowWidgets:!0,...a}),this.editor.setModel({original:n,modified:l})}else{const s=i.editor.createModel(e,t,i.Uri.parse(this.modelId));if(n.uri)if(n.schema?.type){const e=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:n.schema,uri:n.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=e),this.$monacoYaml&&this.$monacoYaml.update({schemas:e}),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!1,schemas:e,allowComments:!0})}else{const e=await fetch(n.uri);if(e.ok){const t=await e.json(),o=[...this.$monacoValidationOptions?.schemas||[],{fileMatch:[this.modelId],schema:t,uri:n.uri}];this.$monacoValidationOptions&&(this.$monacoValidationOptions.schemas=o),this.$monacoYaml&&this.$monacoYaml.update({schemas:o,enableSchemaRequest:!0}),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!0,schemas:o,allowComments:!0})}else this.$monacoYaml&&this.$monacoYaml.update({validate:!1}),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!1})}this.editor=i.editor.create(this.$el,{automaticLayout:!0,model:s,theme:o,fixedOverflowWidgets:!0,...a})}const l=this._getEditor();l.onDidChangeModelContent((e=>{const t=l.getValue();this.value!==t&&this.$emit("change",t,e)})),this.$emit("editorDidMount",this.editor)},_setValue(e){const t=this._getEditor();if(t)return t.setValue(e)},_getValue(){const e=this._getEditor();return e?e.getValue():""},_getEditor(){return this.editor?this.diffEditor?this.editor.getModifiedEditor():this.editor:null},_setOriginal(){const{original:e}=this.editor.getModel();e.setValue(this.original)}},watch:{options:{deep:!0,handler(e){this.editor.updateOptions(e)}},value(){this.value!==this._getValue()&&this._setValue(this.value)},original(){this._setOriginal()},language(){if(this.editor)if(this.diffEditor){const{original:e,modified:t}=this.editor.getModel();i.editor.setModelLanguage(e,this.language),i.editor.setModelLanguage(t,this.language)}else i.editor.setModelLanguage(this.editor.getModel(),this.language)},theme(){i.editor.setTheme(this.theme)}}});o.render=function(t,i,o,a,s,n){return e.openBlock(),e.createElementBlock("div",{class:"monaco-editor-vue3",style:e.normalizeStyle(t.style)},null,4)},exports.default=o;
--------------------------------------------------------------------------------
/src/components/SchemaModel.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
24 |
45 |
46 |
47 |
48 | Update
49 |
50 |
51 |
52 |
53 |
54 |
151 |
--------------------------------------------------------------------------------
/dist/ObjectForm-c6b72f9a.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as r,_ as l}from"./entry-2ace4904.js";import{f as a}from"./fold-ab363a66.js";import{defineComponent as t,resolveComponent as o,openBlock as n,createElementBlock as d,normalizeClass as i,Fragment as u,renderList as p,createBlock as s,withCtx as m,createVNode as c}from"vue";var f=t({name:"ObjectForm",mixins:[e,a,r],props:{properties:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},title:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},required:{type:Array,default:function(){return[]}},level:{type:Number,default:1}},computed:{propertiesRequired:function(){return this.isSelfRequired||Object.keys(this.modelData).length>0}},methods:{isRequired:function(e){return!!this.required.find((function(r){return r===e}))}}});f.render=function(e,r,a,t,f,y){var v=o("object-form-wrapper"),h=o("v-field"),b=o("key-value-pairs"),V=o("array-input"),q=o("simple-input");return n(),d("div",{class:i(["mb-15",{"is-hidden":e.isSelfFolded}])},[(n(!0),d(u,null,p(Object.keys(e.properties),(function(r,a){return n(),d(u,null,["object"===e.properties[r].type?(n(),s(h,{key:r+"-object",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleObject(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(v,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"expand-form":e.level<2,"is-last-child":a===Object.keys(e.properties).length-1,level:e.level+1,type:e.properties[r].type,"is-self-required":e.propertiesRequired&&e.isRequired(r),schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||{},"onUpdate:modelValue":o},null,8,["model-value","field-name","expand-form","is-last-child","level","type","is-self-required","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"key-value-pairs"===e.properties[r].type?(n(),s(h,{key:r+"-key-value-pairs",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleObject(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(b,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"is-last-child":a===Object.keys(e.properties).length-1,type:e.properties[r].type,schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||{},"onUpdate:modelValue":o},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"array"===e.properties[r].type?(n(),s(h,{key:r+"-array",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleArray(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(V,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"is-last-child":a===Object.keys(e.properties).length-1,type:e.properties[r].type,schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||[],"onUpdate:modelValue":o},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):(n(),s(h,{key:r,modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},rules:e.ruleString(e.propertiesRequired&&e.isRequired(r)),name:"".concat(e.fieldName,"/").concat(r),label:"".concat(e.properties[r].title),as:""},{default:m((function(a){var t=a.field,o=a.handleChange,d=a.errors,i=a.meta;return[(n(),s(q,{key:r,"model-value":t.value,type:e.properties[r].type,schema:e.properties[r],"validation-ob":l({errors:d},i),"reference-model":e.referenceModel[r]||"","onUpdate:modelValue":o},null,8,["model-value","type","schema","validation-ob","reference-model","onUpdate:modelValue"]))]})),_:2},1032,["modelValue","onUpdate:modelValue","rules","name","label"]))],64)})),256))],2)};export{f as default};
--------------------------------------------------------------------------------
/dist/ObjectForm-910ddc19.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as r,_ as l}from"./entry-a6929ab2.js";import{f as a}from"./fold-ab363a66.js";import{defineComponent as t,resolveComponent as o,openBlock as n,createElementBlock as d,normalizeClass as i,Fragment as u,renderList as s,createBlock as p,withCtx as m,createVNode as c}from"vue";var f=t({name:"ObjectForm",mixins:[e,a,r],props:{properties:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},title:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},required:{type:Array,default:function(){return[]}},level:{type:Number,default:1}},computed:{propertiesRequired:function(){return this.isSelfRequired||Object.keys(this.modelData).length>0}},methods:{isRequired:function(e){return!!this.required.find((function(r){return r===e}))}}});f.render=function(e,r,a,t,f,y){var h=o("object-form-wrapper"),v=o("v-field"),b=o("key-value-pairs"),V=o("array-input"),q=o("simple-input");return n(),d("div",{class:i(["mb-15",{"is-hidden":e.isSelfFolded}])},[(n(!0),d(u,null,s(Object.keys(e.properties),(function(r,a){return n(),d(u,null,["object"===e.properties[r].type?(n(),p(v,{key:r+"-object",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleObject(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(h,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"expand-form":e.level<2,"is-last-child":a===Object.keys(e.properties).length-1,level:e.level+1,type:e.properties[r].type,"is-self-required":e.propertiesRequired&&e.isRequired(r),schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||{},showRootTab:!1,"onUpdate:modelValue":o},null,8,["model-value","field-name","expand-form","is-last-child","level","type","is-self-required","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"key-value-pairs"===e.properties[r].type?(n(),p(v,{key:r+"-key-value-pairs",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleObject(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(b,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"is-last-child":a===Object.keys(e.properties).length-1,type:e.properties[r].type,schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||{},"onUpdate:modelValue":o},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"array"===e.properties[r].type?(n(),p(v,{key:r+"-array",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleArray(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(V,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"is-last-child":a===Object.keys(e.properties).length-1,type:e.properties[r].type,schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||[],"onUpdate:modelValue":o},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):(n(),p(v,{key:r,modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},rules:e.ruleString(e.propertiesRequired&&e.isRequired(r)),name:"".concat(e.fieldName,"/").concat(r),label:"".concat(e.properties[r].title),as:""},{default:m((function(a){var t=a.field,o=a.handleChange,d=a.errors,i=a.meta;return[(n(),p(q,{key:r,"model-value":t.value,type:e.properties[r].type,schema:e.properties[r],"validation-ob":l({errors:d},i),"reference-model":e.referenceModel[r]||"","onUpdate:modelValue":o},null,8,["model-value","type","schema","validation-ob","reference-model","onUpdate:modelValue"]))]})),_:2},1032,["modelValue","onUpdate:modelValue","rules","name","label"]))],64)})),256))],2)};export{f as default};
--------------------------------------------------------------------------------
/dist/ObjectForm-e6fabd17.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as r,_ as l}from"./entry-f11f5a48.js";import{f as a}from"./fold-ab363a66.js";import{defineComponent as t,resolveComponent as o,openBlock as n,createElementBlock as d,normalizeClass as i,Fragment as u,renderList as s,createBlock as p,withCtx as m,createVNode as c}from"vue";var f=t({name:"ObjectForm",mixins:[e,a,r],props:{properties:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},title:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},required:{type:Array,default:function(){return[]}},level:{type:Number,default:1}},computed:{propertiesRequired:function(){return this.isSelfRequired||Object.keys(this.modelData).length>0}},methods:{isRequired:function(e){return!!this.required.find((function(r){return r===e}))}}});f.render=function(e,r,a,t,f,y){var h=o("object-form-wrapper"),v=o("v-field"),b=o("key-value-pairs"),V=o("array-input"),q=o("simple-input");return n(),d("div",{class:i(["mb-15",{"is-hidden":e.isSelfFolded}])},[(n(!0),d(u,null,s(Object.keys(e.properties),(function(r,a){return n(),d(u,null,["object"===e.properties[r].type?(n(),p(v,{key:r+"-object",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleObject(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(h,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"expand-form":e.level<2,"is-last-child":a===Object.keys(e.properties).length-1,level:e.level+1,type:e.properties[r].type,"is-self-required":e.propertiesRequired&&e.isRequired(r),schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||{},showRootTab:!1,"onUpdate:modelValue":o},null,8,["model-value","field-name","expand-form","is-last-child","level","type","is-self-required","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"key-value-pairs"===e.properties[r].type?(n(),p(v,{key:r+"-key-value-pairs",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleObject(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(b,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"is-last-child":a===Object.keys(e.properties).length-1,type:e.properties[r].type,schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||{},"onUpdate:modelValue":o},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"array"===e.properties[r].type?(n(),p(v,{key:r+"-array",modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},name:"".concat(e.fieldName,"/").concat(r),rules:e.ruleArray(e.propertiesRequired&&e.isRequired(r)),label:"".concat(e.properties[r].title),as:""},{default:m((function(l){var t=l.field,o=l.handleChange;return[c(V,{"model-value":t.value,"field-name":"".concat(e.fieldName,"/").concat(r),"is-last-child":a===Object.keys(e.properties).length-1,type:e.properties[r].type,schema:e.properties[r],errors:e.errors,"reference-model":e.referenceModel[r]||[],"onUpdate:modelValue":o},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):(n(),p(v,{key:r,modelValue:e.modelData[r],"onUpdate:modelValue":function(l){return e.modelData[r]=l},rules:e.ruleString(e.propertiesRequired&&e.isRequired(r)),name:"".concat(e.fieldName,"/").concat(r),label:"".concat(e.properties[r].title),as:""},{default:m((function(a){var t=a.field,o=a.handleChange,d=a.errors,i=a.meta;return[(n(),p(q,{key:r,"model-value":t.value,type:e.properties[r].type,schema:e.properties[r],"validation-ob":l({errors:d},i),"reference-model":e.referenceModel[r]||"","onUpdate:modelValue":o},null,8,["model-value","type","schema","validation-ob","reference-model","onUpdate:modelValue"]))]})),_:2},1032,["modelValue","onUpdate:modelValue","rules","name","label"]))],64)})),256))],2)};export{f as default};
--------------------------------------------------------------------------------
/src/components/sub-components/ArrayInputItems.vue:
--------------------------------------------------------------------------------
1 |
2 |
97 |
98 |
99 |
135 |
--------------------------------------------------------------------------------
/dist/ObjectForm-6c630204.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-46a6dd07.js"),r=require("./fold-e405c002.js"),l=require("vue"),t=l.defineComponent({name:"ObjectForm",mixins:[e.m,r.f,e.v],props:{properties:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},title:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},required:{type:Array,default:function(){return[]}},level:{type:Number,default:1}},computed:{propertiesRequired:function(){return this.isSelfRequired||Object.keys(this.modelData).length>0}},methods:{isRequired:function(e){return!!this.required.find((function(r){return r===e}))}}});t.render=function(r,t,o,a,n,d){var i=l.resolveComponent("object-form-wrapper"),u=l.resolveComponent("v-field"),c=l.resolveComponent("key-value-pairs"),p=l.resolveComponent("array-input"),s=l.resolveComponent("simple-input");return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["mb-15",{"is-hidden":r.isSelfFolded}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(Object.keys(r.properties),(function(t,o){return l.openBlock(),l.createElementBlock(l.Fragment,null,["object"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-object",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleObject(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(i,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"expand-form":r.level<2,"is-last-child":o===Object.keys(r.properties).length-1,level:r.level+1,type:r.properties[t].type,"is-self-required":r.propertiesRequired&&r.isRequired(t),schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||{},"onUpdate:modelValue":n},null,8,["model-value","field-name","expand-form","is-last-child","level","type","is-self-required","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"key-value-pairs"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-key-value-pairs",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleObject(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(c,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"is-last-child":o===Object.keys(r.properties).length-1,type:r.properties[t].type,schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||{},"onUpdate:modelValue":n},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"array"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-array",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleArray(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(p,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"is-last-child":o===Object.keys(r.properties).length-1,type:r.properties[t].type,schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||[],"onUpdate:modelValue":n},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):(l.openBlock(),l.createBlock(u,{key:t,modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},rules:r.ruleString(r.propertiesRequired&&r.isRequired(t)),name:"".concat(r.fieldName,"/").concat(t),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(o){var a=o.field,n=o.handleChange,d=o.errors,i=o.meta;return[(l.openBlock(),l.createBlock(s,{key:t,"model-value":a.value,type:r.properties[t].type,schema:r.properties[t],"validation-ob":e._({errors:d},i),"reference-model":r.referenceModel[t]||"","onUpdate:modelValue":n},null,8,["model-value","type","schema","validation-ob","reference-model","onUpdate:modelValue"]))]})),_:2},1032,["modelValue","onUpdate:modelValue","rules","name","label"]))],64)})),256))],2)},exports.default=t;
--------------------------------------------------------------------------------
/dist/ObjectForm-757bb3e3.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-5480607d.js"),r=require("./fold-e405c002.js"),l=require("vue"),t=l.defineComponent({name:"ObjectForm",mixins:[e.m,r.f,e.v],props:{properties:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},title:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},required:{type:Array,default:function(){return[]}},level:{type:Number,default:1}},computed:{propertiesRequired:function(){return this.isSelfRequired||Object.keys(this.modelData).length>0}},methods:{isRequired:function(e){return!!this.required.find((function(r){return r===e}))}}});t.render=function(r,t,o,a,n,d){var i=l.resolveComponent("object-form-wrapper"),u=l.resolveComponent("v-field"),c=l.resolveComponent("key-value-pairs"),p=l.resolveComponent("array-input"),s=l.resolveComponent("simple-input");return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["mb-15",{"is-hidden":r.isSelfFolded}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(Object.keys(r.properties),(function(t,o){return l.openBlock(),l.createElementBlock(l.Fragment,null,["object"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-object",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleObject(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(i,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"expand-form":r.level<2,"is-last-child":o===Object.keys(r.properties).length-1,level:r.level+1,type:r.properties[t].type,"is-self-required":r.propertiesRequired&&r.isRequired(t),schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||{},showRootTab:!1,"onUpdate:modelValue":n},null,8,["model-value","field-name","expand-form","is-last-child","level","type","is-self-required","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"key-value-pairs"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-key-value-pairs",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleObject(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(c,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"is-last-child":o===Object.keys(r.properties).length-1,type:r.properties[t].type,schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||{},"onUpdate:modelValue":n},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"array"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-array",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleArray(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(p,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"is-last-child":o===Object.keys(r.properties).length-1,type:r.properties[t].type,schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||[],"onUpdate:modelValue":n},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):(l.openBlock(),l.createBlock(u,{key:t,modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},rules:r.ruleString(r.propertiesRequired&&r.isRequired(t)),name:"".concat(r.fieldName,"/").concat(t),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(o){var a=o.field,n=o.handleChange,d=o.errors,i=o.meta;return[(l.openBlock(),l.createBlock(s,{key:t,"model-value":a.value,type:r.properties[t].type,schema:r.properties[t],"validation-ob":e._({errors:d},i),"reference-model":r.referenceModel[t]||"","onUpdate:modelValue":n},null,8,["model-value","type","schema","validation-ob","reference-model","onUpdate:modelValue"]))]})),_:2},1032,["modelValue","onUpdate:modelValue","rules","name","label"]))],64)})),256))],2)},exports.default=t;
--------------------------------------------------------------------------------
/dist/ObjectForm-a92a1e1d.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-c1fde67d.js"),r=require("./fold-e405c002.js"),l=require("vue"),t=l.defineComponent({name:"ObjectForm",mixins:[e.m,r.f,e.v],props:{properties:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},title:{type:String,default:""},modelValue:{type:Object,default:function(){return{}}},required:{type:Array,default:function(){return[]}},level:{type:Number,default:1}},computed:{propertiesRequired:function(){return this.isSelfRequired||Object.keys(this.modelData).length>0}},methods:{isRequired:function(e){return!!this.required.find((function(r){return r===e}))}}});t.render=function(r,t,o,a,n,d){var i=l.resolveComponent("object-form-wrapper"),u=l.resolveComponent("v-field"),c=l.resolveComponent("key-value-pairs"),p=l.resolveComponent("array-input"),s=l.resolveComponent("simple-input");return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["mb-15",{"is-hidden":r.isSelfFolded}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(Object.keys(r.properties),(function(t,o){return l.openBlock(),l.createElementBlock(l.Fragment,null,["object"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-object",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleObject(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(i,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"expand-form":r.level<2,"is-last-child":o===Object.keys(r.properties).length-1,level:r.level+1,type:r.properties[t].type,"is-self-required":r.propertiesRequired&&r.isRequired(t),schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||{},showRootTab:!1,"onUpdate:modelValue":n},null,8,["model-value","field-name","expand-form","is-last-child","level","type","is-self-required","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"key-value-pairs"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-key-value-pairs",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleObject(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(c,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"is-last-child":o===Object.keys(r.properties).length-1,type:r.properties[t].type,schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||{},"onUpdate:modelValue":n},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):"array"===r.properties[t].type?(l.openBlock(),l.createBlock(u,{key:t+"-array",modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},name:"".concat(r.fieldName,"/").concat(t),rules:r.ruleArray(r.propertiesRequired&&r.isRequired(t)),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(e){var a=e.field,n=e.handleChange;return[l.createVNode(p,{"model-value":a.value,"field-name":"".concat(r.fieldName,"/").concat(t),"is-last-child":o===Object.keys(r.properties).length-1,type:r.properties[t].type,schema:r.properties[t],errors:r.errors,"reference-model":r.referenceModel[t]||[],"onUpdate:modelValue":n},null,8,["model-value","field-name","is-last-child","type","schema","errors","reference-model","onUpdate:modelValue"])]})),_:2},1032,["modelValue","onUpdate:modelValue","name","rules","label"])):(l.openBlock(),l.createBlock(u,{key:t,modelValue:r.modelData[t],"onUpdate:modelValue":function(e){return r.modelData[t]=e},rules:r.ruleString(r.propertiesRequired&&r.isRequired(t)),name:"".concat(r.fieldName,"/").concat(t),label:"".concat(r.properties[t].title),as:""},{default:l.withCtx((function(o){var a=o.field,n=o.handleChange,d=o.errors,i=o.meta;return[(l.openBlock(),l.createBlock(s,{key:t,"model-value":a.value,type:r.properties[t].type,schema:r.properties[t],"validation-ob":e._({errors:d},i),"reference-model":r.referenceModel[t]||"","onUpdate:modelValue":n},null,8,["model-value","type","schema","validation-ob","reference-model","onUpdate:modelValue"]))]})),_:2},1032,["modelValue","onUpdate:modelValue","rules","name","label"]))],64)})),256))],2)},exports.default=t;
--------------------------------------------------------------------------------
/src/mixins/model.js:
--------------------------------------------------------------------------------
1 | import { defineAsyncComponent, defineComponent } from 'vue';
2 |
3 | export const model = defineComponent({
4 | components: {
5 | ObjectFormWrapper: defineAsyncComponent(() =>
6 | import('@/components/ObjectFormWrapper.vue').then(
7 | (module) => module.default
8 | )
9 | ),
10 | ObjectForm: defineAsyncComponent(() =>
11 | import('@/components/ObjectForm.vue').then((module) => module.default)
12 | ),
13 | ArrayInput: defineAsyncComponent(() =>
14 | import('@/components/ArrayInput.vue').then((module) => module.default)
15 | ),
16 | KeyValuePairs: defineAsyncComponent(() =>
17 | import('@/components/KeyValuePairs.vue').then((module) => module.default)
18 | ),
19 | SimpleInput: defineAsyncComponent(() =>
20 | import('@/components/SimpleInput.vue').then((module) => module.default)
21 | ),
22 | },
23 |
24 | props: {
25 | type: {
26 | type: String,
27 | default: 'string',
28 | },
29 | referenceModel: {
30 | type: null,
31 | default: () => ({}),
32 | },
33 | },
34 |
35 | emits: ['update:modelValue'],
36 |
37 | data() {
38 | return {
39 | modelData: null,
40 | };
41 | },
42 |
43 | watch: {
44 | modelData: {
45 | immediate: true,
46 | deep: true,
47 | handler(newVal, oldVal) {
48 | if (oldVal !== null && oldVal !== undefined) {
49 | // clean the newVal if it's array or object if the cleanObject global data is true
50 | if (this.cleanObject) this.clean(newVal);
51 |
52 | // prevent number from converting to string
53 | if (this.type === 'number' || this.type === 'integer') {
54 | // if the newVal string is empty, emit null
55 | if (newVal === '') this.$emit('update:modelValue', null);
56 | else this.$emit('update:modelValue', +newVal);
57 | } else this.$emit('update:modelValue', newVal);
58 | }
59 | },
60 | },
61 | modelValue: {
62 | deep: true,
63 | handler(newVal, oldVal) {
64 | // do this only once, when the value object is initialized after api call or some delay
65 | if (JSON.stringify(oldVal) !== JSON.stringify(newVal))
66 | this.initModelData();
67 | },
68 | },
69 | },
70 |
71 | created() {
72 | this.initModelData();
73 | },
74 |
75 | methods: {
76 | initModelData() {
77 | if (this.modelValue) {
78 | if (
79 | (this.type === 'object' || this.type === 'key-value-pairs') &&
80 | Object.keys(this.modelValue).length > 0
81 | )
82 | this.modelData = JSON.parse(JSON.stringify(this.modelValue));
83 | else if (this.type === 'array' && this.modelValue.length > 0)
84 | this.modelData = JSON.parse(JSON.stringify(this.modelValue));
85 | else if (this.type === 'boolean' && this.modelValue !== null)
86 | this.modelData = this.modelValue;
87 | else if (
88 | this.type === 'string' ||
89 | this.type === 'number' ||
90 | this.type === 'integer'
91 | )
92 | this.modelData = this.modelValue;
93 | else this.modelData = this.initWithBlank();
94 | } else this.modelData = this.initWithBlank();
95 | },
96 | initWithBlank() {
97 | if (this.type === 'object' || this.type === 'key-value-pairs') return {};
98 | else if (this.type === 'array') return [];
99 | else if (this.type === 'boolean') return false;
100 | else if (this.type === 'number' || this.type === 'integer') return null;
101 | else return '';
102 | },
103 | clean(ob) {
104 | if (this.type === 'object' || this.type === 'key-value-pairs') {
105 | Object.keys(ob).forEach((key) => {
106 | let stringify = '';
107 | if (typeof ob[key] !== 'string') stringify = JSON.stringify(ob[key]);
108 | else stringify = ob[key];
109 | if (
110 | stringify === undefined ||
111 | stringify === 'null' ||
112 | stringify === '' ||
113 | stringify === '{}' ||
114 | stringify === '[]'
115 | ) {
116 | delete ob[key];
117 | }
118 | });
119 | } else if (this.type === 'array') {
120 | let arrayOfDeleteIndexes = ob
121 | .map((item, idx) => ({ item, idx }))
122 | .filter((el) => {
123 | const item = el.item;
124 | let stringify = '';
125 | if (typeof item !== 'string') stringify = JSON.stringify(item);
126 | else stringify = item;
127 |
128 | if (
129 | stringify === undefined ||
130 | stringify === 'null' ||
131 | stringify === '' ||
132 | stringify === '{}' ||
133 | stringify === '[]'
134 | ) {
135 | return true;
136 | } else return false;
137 | })
138 | .map((item) => item.idx);
139 | arrayOfDeleteIndexes.forEach((idx) => ob.splice(idx, 1));
140 | }
141 | },
142 | },
143 | });
144 |
--------------------------------------------------------------------------------
/src/components/ObjectForm.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
15 |
29 |
30 |
31 |
41 |
51 |
52 |
53 |
63 |
73 |
74 |
75 |
85 |
94 |
95 |
96 |
97 |
98 |
99 |
155 |
--------------------------------------------------------------------------------
/dist/KeyValuePairItems-20e93397.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as a,_ as l}from"./entry-2ace4904.js";import{defineComponent as t,resolveComponent as n,openBlock as r,createElementBlock as o,createVNode as d,withCtx as i,mergeProps as c,createBlock as u,createElementVNode as m,withModifiers as s}from"vue";var p=t({name:"KeyValuePairItems",mixins:[e,a],props:{modelValue:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},index:{type:Number,default:0},schema:{type:Object,default:function(){return{}}},additionalProperties:{type:Object,default:function(){return{}}}},emits:["delete-key-value"],methods:{deleteProp:function(e){this.$emit("delete-key-value",e)}}}),v={class:"key-value-save"},f=[m("span",{class:"icon is-small"},[m("span",{class:"icon"},[m("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[m("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})])])],-1)];p.render=function(e,a,t,p,y,h){var b=n("simple-input"),x=n("v-field"),V=n("object-form-wrapper"),k=n("key-value-pairs"),g=n("array-input");return r(),o("div",v,[d(x,{id:"".concat(e.schema.title.replace(/ /g,"-"),"-key-").concat(e.index+1,"-provider"),modelValue:e.modelData.key,"onUpdate:modelValue":a[0]||(a[0]=function(a){return e.modelData.key=a}),rules:"required",name:"".concat(e.fieldName,"/key/").concat(e.index+1),label:"".concat(e.schema.title," key ").concat(e.index+1),as:"div"},{default:i((function(a){var t=a.componentField,n=a.errors,r=a.meta;return[d(b,c(t,{schema:{title:"Key",type:"string",ui:{tag:"input",type:"text"}},type:"string","validation-ob":l({errors:n},r),"reference-model":e.referenceModel.key||""}),null,16,["validation-ob","reference-model"])]})),_:1},8,["id","modelValue","name","label"]),"object"===e.additionalProperties.type?(r(),u(x,{key:0,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[1]||(a[1]=function(a){return e.modelData.value=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(V,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,"is-self-required":!0,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||{},"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"key-value-pairs"===e.additionalProperties.type?(r(),u(x,{key:1,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[2]||(a[2]=function(a){return e.modelData.value=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(k,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||{},"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"array"===e.additionalProperties.type?(r(),u(x,{key:2,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[3]||(a[3]=function(a){return e.modelData.value=a}),rules:e.ruleArray(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(g,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||[],"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):(r(),u(x,{key:3,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[4]||(a[4]=function(a){return e.modelData.value=a}),rules:e.ruleString(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var t=a.field,n=a.handleChange,r=a.errors,o=a.meta;return[d(b,{"model-value":t.value,schema:e.additionalProperties,type:e.additionalProperties.type,"validation-ob":l({errors:r},o),"reference-model":e.referenceModel.value||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])),m("button",{class:"button ac-button is-medium is-square is-danger is-outlined",onClick:a[5]||(a[5]=s((function(a){return e.deleteProp(e.index)}),["prevent"]))},f)])};export{p as default};
--------------------------------------------------------------------------------
/dist/KeyValuePairItems-4652bb38.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as a,_ as l}from"./entry-f11f5a48.js";import{defineComponent as t,resolveComponent as n,openBlock as r,createElementBlock as o,createVNode as d,withCtx as i,mergeProps as c,createBlock as u,createElementVNode as m,withModifiers as s}from"vue";var p=t({name:"KeyValuePairItems",mixins:[e,a],props:{modelValue:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},index:{type:Number,default:0},schema:{type:Object,default:function(){return{}}},additionalProperties:{type:Object,default:function(){return{}}}},emits:["delete-key-value"],methods:{deleteProp:function(e){this.$emit("delete-key-value",e)}}}),v={class:"key-value-save"},f=[m("span",{class:"icon is-small"},[m("span",{class:"icon"},[m("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[m("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})])])],-1)];p.render=function(e,a,t,p,y,h){var b=n("simple-input"),x=n("v-field"),V=n("object-form-wrapper"),k=n("key-value-pairs"),g=n("array-input");return r(),o("div",v,[d(x,{id:"".concat(e.schema.title.replace(/ /g,"-"),"-key-").concat(e.index+1,"-provider"),modelValue:e.modelData.key,"onUpdate:modelValue":a[0]||(a[0]=function(a){return e.modelData.key=a}),rules:"required",name:"".concat(e.fieldName,"/key/").concat(e.index+1),label:"".concat(e.schema.title," key ").concat(e.index+1),as:"div"},{default:i((function(a){var t=a.componentField,n=a.errors,r=a.meta;return[d(b,c(t,{schema:{title:"Key",type:"string",ui:{tag:"input",type:"text"}},type:"string","validation-ob":l({errors:n},r),"reference-model":e.referenceModel.key||""}),null,16,["validation-ob","reference-model"])]})),_:1},8,["id","modelValue","name","label"]),"object"===e.additionalProperties.type?(r(),u(x,{key:0,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[1]||(a[1]=function(a){return e.modelData.value=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(V,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,"is-self-required":!0,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||{},"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"key-value-pairs"===e.additionalProperties.type?(r(),u(x,{key:1,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[2]||(a[2]=function(a){return e.modelData.value=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(k,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||{},"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"array"===e.additionalProperties.type?(r(),u(x,{key:2,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[3]||(a[3]=function(a){return e.modelData.value=a}),rules:e.ruleArray(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(g,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||[],"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):(r(),u(x,{key:3,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[4]||(a[4]=function(a){return e.modelData.value=a}),rules:e.ruleString(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var t=a.field,n=a.handleChange,r=a.errors,o=a.meta;return[d(b,{"model-value":t.value,schema:e.additionalProperties,type:e.additionalProperties.type,"validation-ob":l({errors:r},o),"reference-model":e.referenceModel.value||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])),m("button",{class:"button ac-button is-medium is-square is-danger is-outlined",onClick:a[5]||(a[5]=s((function(a){return e.deleteProp(e.index)}),["prevent"]))},f)])};export{p as default};
--------------------------------------------------------------------------------
/dist/KeyValuePairItems-93f507c4.js:
--------------------------------------------------------------------------------
1 | import{m as e,v as a,_ as l}from"./entry-a6929ab2.js";import{defineComponent as t,resolveComponent as n,openBlock as r,createElementBlock as o,createVNode as d,withCtx as i,mergeProps as c,createBlock as u,createElementVNode as m,withModifiers as s}from"vue";var p=t({name:"KeyValuePairItems",mixins:[e,a],props:{modelValue:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},index:{type:Number,default:0},schema:{type:Object,default:function(){return{}}},additionalProperties:{type:Object,default:function(){return{}}}},emits:["delete-key-value"],methods:{deleteProp:function(e){this.$emit("delete-key-value",e)}}}),v={class:"key-value-save"},f=[m("span",{class:"icon is-small"},[m("span",{class:"icon"},[m("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[m("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})])])],-1)];p.render=function(e,a,t,p,y,h){var b=n("simple-input"),x=n("v-field"),V=n("object-form-wrapper"),k=n("key-value-pairs"),g=n("array-input");return r(),o("div",v,[d(x,{id:"".concat(e.schema.title.replace(/ /g,"-"),"-key-").concat(e.index+1,"-provider"),modelValue:e.modelData.key,"onUpdate:modelValue":a[0]||(a[0]=function(a){return e.modelData.key=a}),rules:"required",name:"".concat(e.fieldName,"/key/").concat(e.index+1),label:"".concat(e.schema.title," key ").concat(e.index+1),as:"div"},{default:i((function(a){var t=a.componentField,n=a.errors,r=a.meta;return[d(b,c(t,{schema:{title:"Key",type:"string",ui:{tag:"input",type:"text"}},type:"string","validation-ob":l({errors:n},r),"reference-model":e.referenceModel.key||""}),null,16,["validation-ob","reference-model"])]})),_:1},8,["id","modelValue","name","label"]),"object"===e.additionalProperties.type?(r(),u(x,{key:0,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[1]||(a[1]=function(a){return e.modelData.value=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(V,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,"is-self-required":!0,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||{},"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"key-value-pairs"===e.additionalProperties.type?(r(),u(x,{key:1,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[2]||(a[2]=function(a){return e.modelData.value=a}),rules:e.ruleObject(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(k,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||{},"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"array"===e.additionalProperties.type?(r(),u(x,{key:2,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[3]||(a[3]=function(a){return e.modelData.value=a}),rules:e.ruleArray(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var l=a.field,t=a.handleChange;return[d(g,{"field-name":"".concat(e.fieldName,"/value/").concat(e.index+1),"model-value":l.value,schema:e.additionalProperties,type:e.additionalProperties.type,errors:e.errors,"reference-model":e.referenceModel.value||[],"onUpdate:modelValue":t},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):(r(),u(x,{key:3,id:"".concat(e.schema.title.replace(/ /g,"-"),"-value-").concat(e.index+1,"-provider"),modelValue:e.modelData.value,"onUpdate:modelValue":a[4]||(a[4]=function(a){return e.modelData.value=a}),rules:e.ruleString(!0),name:"".concat(e.fieldName,"/value/").concat(e.index+1),label:"".concat(e.schema.title," value ").concat(e.index+1),as:""},{default:i((function(a){var t=a.field,n=a.handleChange,r=a.errors,o=a.meta;return[d(b,{"model-value":t.value,schema:e.additionalProperties,type:e.additionalProperties.type,"validation-ob":l({errors:r},o),"reference-model":e.referenceModel.value||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])),m("button",{class:"button ac-button is-medium is-square is-danger is-outlined",onClick:a[5]||(a[5]=s((function(a){return e.deleteProp(e.index)}),["prevent"]))},f)])};export{p as default};
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | // rollup.config.js
2 | import fs from 'fs';
3 | import path from 'path';
4 | import vue from 'rollup-plugin-vue';
5 | import alias from '@rollup/plugin-alias';
6 | import commonjs from '@rollup/plugin-commonjs';
7 | import replace from '@rollup/plugin-replace';
8 | import resolve from '@rollup/plugin-node-resolve';
9 | import json from '@rollup/plugin-json';
10 | import babel from '@rollup/plugin-babel';
11 | import scss from 'rollup-plugin-scss';
12 | import { terser } from 'rollup-plugin-terser';
13 | import minimist from 'minimist';
14 | import typescript from 'rollup-plugin-typescript'
15 |
16 | // Get browserslist config and remove ie from es build targets
17 | const esbrowserslist = fs
18 | .readFileSync('./.browserslistrc')
19 | .toString()
20 | .split('\n')
21 | .filter((entry) => entry && entry.substring(0, 2) !== 'ie');
22 |
23 | const babelPresetEnvConfig = require('./babel.config').presets.filter(
24 | (entry) => entry[0] === '@babel/preset-env'
25 | )[0][1];
26 |
27 | const argv = minimist(process.argv.slice(2));
28 |
29 | const projectRoot = path.resolve(__dirname, '');
30 |
31 | const baseConfig = {
32 | input: 'src/entry.js',
33 | plugins: {
34 | preVue: [
35 | json(),
36 | alias({
37 | entries: [
38 | {
39 | find: '@',
40 | replacement: `${path.resolve(projectRoot, 'src')}`,
41 | },
42 | ],
43 | }),
44 | ],
45 | replace: {
46 | preventAssignment: true,
47 | 'process.env.NODE_ENV': JSON.stringify('production'),
48 | },
49 | vue: {
50 | css: false,
51 | template: {
52 | isProduction: true,
53 | },
54 | preprocessStyles: true,
55 | preprocessOptions: {
56 | scss: {
57 | additionalData: `@import "@appscode/design-system/vue-components/styles/base/utilities/colors";`,
58 | },
59 | },
60 | },
61 | postVue: [
62 | resolve({
63 | preferBuiltins: false,
64 | extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue'],
65 | }),
66 | commonjs(),
67 | typescript(),
68 | scss(),
69 | ],
70 | babel: {
71 | exclude: 'node_modules/**',
72 | extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue'],
73 | babelHelpers: 'bundled',
74 | },
75 | },
76 | };
77 |
78 | // ESM/UMD/IIFE shared settings: externals
79 | // Refer to https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
80 | const external = [
81 | // list external dependencies, exactly the way it is written in the import statement.
82 | // eg. 'jquery'
83 | 'vue',
84 | "qs",
85 | "monaco-editor",
86 | ];
87 |
88 | // UMD/IIFE shared settings: output.globals
89 | // Refer to https://rollupjs.org/guide/en#output-globals for details
90 | const globals = {
91 | // Provide global variable names to replace your external imports
92 | // eg. jquery: '$'
93 | vue: 'Vue',
94 | qs: 'qs',
95 | 'monaco-editor': 'monaco',
96 | };
97 |
98 | // Customize configs for individual targets
99 | const buildFormats = [];
100 | if (!argv.format || argv.format === 'es') {
101 | const esConfig = {
102 | ...baseConfig,
103 | external,
104 | output: {
105 | compact: true,
106 | dir: 'dist',
107 | format: 'esm',
108 | name: 'VueOpenapiForm',
109 | entryFileNames: 'vue-openapi-form.esm.js',
110 | exports: 'named',
111 | globals,
112 | },
113 | plugins: [
114 | replace(baseConfig.plugins.replace),
115 | ...baseConfig.plugins.preVue,
116 | vue(baseConfig.plugins.vue),
117 | ...baseConfig.plugins.postVue,
118 | babel({
119 | ...baseConfig.plugins.babel,
120 | presets: [
121 | [
122 | '@babel/preset-env',
123 | {
124 | ...babelPresetEnvConfig,
125 | targets: esbrowserslist,
126 | },
127 | ],
128 | ],
129 | }),
130 | terser(),
131 | ],
132 | };
133 | buildFormats.push(esConfig);
134 | }
135 |
136 | if (!argv.format || argv.format === 'cjs') {
137 | const umdConfig = {
138 | ...baseConfig,
139 | external,
140 | output: {
141 | compact: true,
142 | dir: 'dist',
143 | format: 'cjs',
144 | name: 'VueOpenapiForm',
145 | entryFileNames: 'vue-openapi-form.[format].js',
146 | exports: 'named',
147 | globals,
148 | },
149 | plugins: [
150 | replace(baseConfig.plugins.replace),
151 | ...baseConfig.plugins.preVue,
152 | vue({
153 | ...baseConfig.plugins.vue,
154 | template: {
155 | ...baseConfig.plugins.vue.template,
156 | optimizeSSR: true,
157 | },
158 | }),
159 | ...baseConfig.plugins.postVue,
160 | babel({ ...baseConfig.plugins.babel }),
161 | terser(),
162 | ],
163 | };
164 | buildFormats.push(umdConfig);
165 | }
166 |
167 | if (!argv.format || argv.format === 'iife') {
168 | const unpkgConfig = {
169 | ...baseConfig,
170 | external,
171 | output: {
172 | compact: true,
173 | file: 'dist/vue-openapi-form.min.js',
174 | inlineDynamicImports: true,
175 | format: 'iife',
176 | name: 'VueOpenapiForm',
177 | exports: 'named',
178 | globals,
179 | },
180 | plugins: [
181 | replace(baseConfig.plugins.replace),
182 | ...baseConfig.plugins.preVue,
183 | vue(baseConfig.plugins.vue),
184 | ...baseConfig.plugins.postVue,
185 | babel({ ...baseConfig.plugins.babel }),
186 | terser({
187 | output: {
188 | ecma: 5,
189 | },
190 | }),
191 | ],
192 | };
193 | buildFormats.push(unpkgConfig);
194 | }
195 |
196 | // Export config
197 | export default buildFormats;
198 |
--------------------------------------------------------------------------------
/dist/KeyValuePairItems-43c36157.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-46a6dd07.js"),a=require("vue"),l=a.defineComponent({name:"KeyValuePairItems",mixins:[e.m,e.v],props:{modelValue:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},index:{type:Number,default:0},schema:{type:Object,default:function(){return{}}},additionalProperties:{type:Object,default:function(){return{}}}},emits:["delete-key-value"],methods:{deleteProp:function(e){this.$emit("delete-key-value",e)}}}),t={class:"key-value-save"},o=[a.createElementVNode("span",{class:"icon is-small"},[a.createElementVNode("span",{class:"icon"},[a.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[a.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})])])],-1)];l.render=function(l,n,r,d,c,i){var u=a.resolveComponent("simple-input"),m=a.resolveComponent("v-field"),s=a.resolveComponent("object-form-wrapper"),p=a.resolveComponent("key-value-pairs"),v=a.resolveComponent("array-input");return a.openBlock(),a.createElementBlock("div",t,[a.createVNode(m,{id:"".concat(l.schema.title.replace(/ /g,"-"),"-key-").concat(l.index+1,"-provider"),modelValue:l.modelData.key,"onUpdate:modelValue":n[0]||(n[0]=function(e){return l.modelData.key=e}),rules:"required",name:"".concat(l.fieldName,"/key/").concat(l.index+1),label:"".concat(l.schema.title," key ").concat(l.index+1),as:"div"},{default:a.withCtx((function(t){var o=t.componentField,n=t.errors,r=t.meta;return[a.createVNode(u,a.mergeProps(o,{schema:{title:"Key",type:"string",ui:{tag:"input",type:"text"}},type:"string","validation-ob":e._({errors:n},r),"reference-model":l.referenceModel.key||""}),null,16,["validation-ob","reference-model"])]})),_:1},8,["id","modelValue","name","label"]),"object"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:0,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[1]||(n[1]=function(e){return l.modelData.value=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(s,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,"is-self-required":!0,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"key-value-pairs"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:1,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[2]||(n[2]=function(e){return l.modelData.value=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(p,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"array"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:2,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[3]||(n[3]=function(e){return l.modelData.value=e}),rules:l.ruleArray(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(v,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||[],"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):(a.openBlock(),a.createBlock(m,{key:3,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[4]||(n[4]=function(e){return l.modelData.value=e}),rules:l.ruleString(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var o=t.field,n=t.handleChange,r=t.errors,d=t.meta;return[a.createVNode(u,{"model-value":o.value,schema:l.additionalProperties,type:l.additionalProperties.type,"validation-ob":e._({errors:r},d),"reference-model":l.referenceModel.value||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])),a.createElementVNode("button",{class:"button ac-button is-medium is-square is-danger is-outlined",onClick:n[5]||(n[5]=a.withModifiers((function(e){return l.deleteProp(l.index)}),["prevent"]))},o)])},exports.default=l;
--------------------------------------------------------------------------------
/dist/KeyValuePairItems-55bcab7e.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-c1fde67d.js"),a=require("vue"),l=a.defineComponent({name:"KeyValuePairItems",mixins:[e.m,e.v],props:{modelValue:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},index:{type:Number,default:0},schema:{type:Object,default:function(){return{}}},additionalProperties:{type:Object,default:function(){return{}}}},emits:["delete-key-value"],methods:{deleteProp:function(e){this.$emit("delete-key-value",e)}}}),t={class:"key-value-save"},o=[a.createElementVNode("span",{class:"icon is-small"},[a.createElementVNode("span",{class:"icon"},[a.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[a.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})])])],-1)];l.render=function(l,n,r,d,c,i){var u=a.resolveComponent("simple-input"),m=a.resolveComponent("v-field"),s=a.resolveComponent("object-form-wrapper"),p=a.resolveComponent("key-value-pairs"),v=a.resolveComponent("array-input");return a.openBlock(),a.createElementBlock("div",t,[a.createVNode(m,{id:"".concat(l.schema.title.replace(/ /g,"-"),"-key-").concat(l.index+1,"-provider"),modelValue:l.modelData.key,"onUpdate:modelValue":n[0]||(n[0]=function(e){return l.modelData.key=e}),rules:"required",name:"".concat(l.fieldName,"/key/").concat(l.index+1),label:"".concat(l.schema.title," key ").concat(l.index+1),as:"div"},{default:a.withCtx((function(t){var o=t.componentField,n=t.errors,r=t.meta;return[a.createVNode(u,a.mergeProps(o,{schema:{title:"Key",type:"string",ui:{tag:"input",type:"text"}},type:"string","validation-ob":e._({errors:n},r),"reference-model":l.referenceModel.key||""}),null,16,["validation-ob","reference-model"])]})),_:1},8,["id","modelValue","name","label"]),"object"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:0,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[1]||(n[1]=function(e){return l.modelData.value=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(s,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,"is-self-required":!0,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"key-value-pairs"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:1,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[2]||(n[2]=function(e){return l.modelData.value=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(p,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"array"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:2,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[3]||(n[3]=function(e){return l.modelData.value=e}),rules:l.ruleArray(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(v,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||[],"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):(a.openBlock(),a.createBlock(m,{key:3,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[4]||(n[4]=function(e){return l.modelData.value=e}),rules:l.ruleString(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var o=t.field,n=t.handleChange,r=t.errors,d=t.meta;return[a.createVNode(u,{"model-value":o.value,schema:l.additionalProperties,type:l.additionalProperties.type,"validation-ob":e._({errors:r},d),"reference-model":l.referenceModel.value||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])),a.createElementVNode("button",{class:"button ac-button is-medium is-square is-danger is-outlined",onClick:n[5]||(n[5]=a.withModifiers((function(e){return l.deleteProp(l.index)}),["prevent"]))},o)])},exports.default=l;
--------------------------------------------------------------------------------
/dist/KeyValuePairItems-c5d5aad6.js:
--------------------------------------------------------------------------------
1 | "use strict";var e=require("./entry-5480607d.js"),a=require("vue"),l=a.defineComponent({name:"KeyValuePairItems",mixins:[e.m,e.v],props:{modelValue:{type:Object,default:function(){return{}}},fieldName:{type:String,default:""},errors:{type:Object,default:function(){return{}}},index:{type:Number,default:0},schema:{type:Object,default:function(){return{}}},additionalProperties:{type:Object,default:function(){return{}}}},emits:["delete-key-value"],methods:{deleteProp:function(e){this.$emit("delete-key-value",e)}}}),t={class:"key-value-save"},o=[a.createElementVNode("span",{class:"icon is-small"},[a.createElementVNode("span",{class:"icon"},[a.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-6 h-6"},[a.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})])])],-1)];l.render=function(l,n,r,d,c,i){var u=a.resolveComponent("simple-input"),m=a.resolveComponent("v-field"),s=a.resolveComponent("object-form-wrapper"),p=a.resolveComponent("key-value-pairs"),v=a.resolveComponent("array-input");return a.openBlock(),a.createElementBlock("div",t,[a.createVNode(m,{id:"".concat(l.schema.title.replace(/ /g,"-"),"-key-").concat(l.index+1,"-provider"),modelValue:l.modelData.key,"onUpdate:modelValue":n[0]||(n[0]=function(e){return l.modelData.key=e}),rules:"required",name:"".concat(l.fieldName,"/key/").concat(l.index+1),label:"".concat(l.schema.title," key ").concat(l.index+1),as:"div"},{default:a.withCtx((function(t){var o=t.componentField,n=t.errors,r=t.meta;return[a.createVNode(u,a.mergeProps(o,{schema:{title:"Key",type:"string",ui:{tag:"input",type:"text"}},type:"string","validation-ob":e._({errors:n},r),"reference-model":l.referenceModel.key||""}),null,16,["validation-ob","reference-model"])]})),_:1},8,["id","modelValue","name","label"]),"object"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:0,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[1]||(n[1]=function(e){return l.modelData.value=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(s,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,"is-self-required":!0,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"key-value-pairs"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:1,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[2]||(n[2]=function(e){return l.modelData.value=e}),rules:l.ruleObject(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(p,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||{},"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):"array"===l.additionalProperties.type?(a.openBlock(),a.createBlock(m,{key:2,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[3]||(n[3]=function(e){return l.modelData.value=e}),rules:l.ruleArray(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(e){var t=e.field,o=e.handleChange;return[a.createVNode(v,{"field-name":"".concat(l.fieldName,"/value/").concat(l.index+1),"model-value":t.value,schema:l.additionalProperties,type:l.additionalProperties.type,errors:l.errors,"reference-model":l.referenceModel.value||[],"onUpdate:modelValue":o},null,8,["field-name","model-value","schema","type","errors","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])):(a.openBlock(),a.createBlock(m,{key:3,id:"".concat(l.schema.title.replace(/ /g,"-"),"-value-").concat(l.index+1,"-provider"),modelValue:l.modelData.value,"onUpdate:modelValue":n[4]||(n[4]=function(e){return l.modelData.value=e}),rules:l.ruleString(!0),name:"".concat(l.fieldName,"/value/").concat(l.index+1),label:"".concat(l.schema.title," value ").concat(l.index+1),as:""},{default:a.withCtx((function(t){var o=t.field,n=t.handleChange,r=t.errors,d=t.meta;return[a.createVNode(u,{"model-value":o.value,schema:l.additionalProperties,type:l.additionalProperties.type,"validation-ob":e._({errors:r},d),"reference-model":l.referenceModel.value||"","onUpdate:modelValue":n},null,8,["model-value","schema","type","validation-ob","reference-model","onUpdate:modelValue"])]})),_:1},8,["id","modelValue","rules","name","label"])),a.createElementVNode("button",{class:"button ac-button is-medium is-square is-danger is-outlined",onClick:n[5]||(n[5]=a.withModifiers((function(e){return l.deleteProp(l.index)}),["prevent"]))},o)])},exports.default=l;
--------------------------------------------------------------------------------