@digi-frontend/dgate-api-documentation 1.0.20 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/node_modules/toposort/index.js +1 -1
- package/dist/node_modules/yup/index.esm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
- package/dist/src/components/LivePreview/LivePreview.js +1 -1
- package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/styles.css +109 -109
- package/dist/types/layout/layout.d.ts +2 -1
- package/package.json +1 -1
- package/src/components/InfoForm/InfoForm.tsx +4 -1
- package/src/components/LivePreview/LivePreview.tsx +0 -1
- package/src/components/MethodAccordion/MethodAccordion.tsx +1 -1
- package/src/layout/layout.tsx +8 -1
package/dist/_virtual/index3.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__require as
|
|
1
|
+
import{getDefaultExportFromCjs as o}from"./_commonjsHelpers.js";import{__require as r}from"../node_modules/toposort/index.js";var e=o(r());export{e as default};
|
|
2
2
|
//# sourceMappingURL=index3.js.map
|
package/dist/_virtual/index4.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var e={exports:{}};export{e as __module};
|
|
2
2
|
//# sourceMappingURL=index4.js.map
|
package/dist/_virtual/index5.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=
|
|
1
|
+
import{__require as r}from"../node_modules/property-expr/index.js";var e=r();export{e as p};
|
|
2
2
|
//# sourceMappingURL=index5.js.map
|
package/dist/_virtual/index6.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__require as
|
|
1
|
+
import{__require as e}from"../node_modules/tiny-case/index.js";var r=e();export{r as t};
|
|
2
2
|
//# sourceMappingURL=index6.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__module as r}from"../../_virtual/
|
|
1
|
+
import{__module as r}from"../../_virtual/index4.js";var e;function n(){if(e)return r.exports;function n(r,e){var n=r.length,t=new Array(n),o={},a=n,i=function(r){for(var e=new Map,n=0,t=r.length;n<t;n++){var o=r[n];e.has(o[0])||e.set(o[0],new Set),e.has(o[1])||e.set(o[1],new Set),e.get(o[0]).add(o[1])}return e}(e),d=function(r){for(var e=new Map,n=0,t=r.length;n<t;n++)e.set(r[n],n);return e}(r);for(e.forEach((function(r){if(!d.has(r[0])||!d.has(r[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")}));a--;)o[a]||f(r[a],a,new Set);return t;function f(r,e,a){if(a.has(r)){var s;try{s=", node was:"+JSON.stringify(r)}catch(r){s=""}throw new Error("Cyclic dependency"+s)}if(!d.has(r))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(r));if(!o[e]){o[e]=!0;var u=i.get(r)||new Set;if(e=(u=Array.from(u)).length){a.add(r);do{var w=u[--e];f(w,d.get(w),a)}while(e);a.delete(r)}t[--n]=r}}}return e=1,r.exports=function(r){return n(function(r){for(var e=new Set,n=0,t=r.length;n<t;n++){var o=r[n];e.add(o[0]),e.add(o[1])}return Array.from(e)}(r),r)},r.exports.array=n,r.exports}export{n as __require};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e}from"../../_virtual/index6.js";import{t}from"../../_virtual/index3.js";import s from"../../_virtual/index4.js";const r=Object.prototype.toString,n=Error.prototype.toString,i=RegExp.prototype.toString,a="undefined"!=typeof Symbol?Symbol.prototype.toString:()=>"",o=/^Symbol\((.*)\)(.*)$/;function l(e,t=!1){if(null==e||!0===e||!1===e)return""+e;const s=typeof e;if("number"===s)return function(e){return e!=+e?"NaN":0===e&&1/e<0?"-0":""+e}(e);if("string"===s)return t?`"${e}"`:e;if("function"===s)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===s)return a.call(e).replace(o,"Symbol($1)");const l=r.call(e).slice(8,-1);return"Date"===l?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===l||e instanceof Error?"["+n.call(e)+"]":"RegExp"===l?i.call(e):null}function u(e,t){let s=l(e,t);return null!==s?s:JSON.stringify(e,(function(e,s){let r=l(this[e],t);return null!==r?r:s}),2)}function c(e){return null==e?[]:[].concat(e)}let h,p,d,f=/\$\{\s*(\w+)\s*\}/g;h=Symbol.toStringTag;class m{constructor(e,t,s,r){this.name=void 0,this.message=void 0,this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=void 0,this.inner=void 0,this[h]="Error",this.name="ValidationError",this.value=t,this.path=s,this.type=r,this.errors=[],this.inner=[],c(e).forEach((e=>{if(y.isError(e)){this.errors.push(...e.errors);const t=e.inner.length?e.inner:[e];this.inner.push(...t)}else this.errors.push(e)})),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0]}}p=Symbol.hasInstance,d=Symbol.toStringTag;class y extends Error{static formatError(e,t){const s=t.label||t.path||"this";return t=Object.assign({},t,{path:s,originalPath:t.path}),"string"==typeof e?e.replace(f,((e,s)=>u(t[s]))):"function"==typeof e?e(t):e}static isError(e){return e&&"ValidationError"===e.name}constructor(e,t,s,r,n){const i=new m(e,t,s,r);if(n)return i;super(),this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=[],this.inner=[],this[d]="Error",this.name=i.name,this.message=i.message,this.type=i.type,this.value=i.value,this.path=i.path,this.errors=i.errors,this.inner=i.inner,Error.captureStackTrace&&Error.captureStackTrace(this,y)}static[p](e){return m[Symbol.hasInstance](e)||super[Symbol.hasInstance](e)}}let v={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:e,type:t,value:s,originalValue:r})=>{const n=null!=r&&r!==s?` (cast from the value \`${u(r,!0)}\`).`:".";return"mixed"!==t?`${e} must be a \`${t}\` type, but the final value was: \`${u(s,!0)}\``+n:`${e} must match the configured type. The validated value was: \`${u(s,!0)}\``+n}},g={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",datetime:"${path} must be a valid ISO date-time",datetime_precision:"${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",datetime_offset:'${path} must be a valid ISO date-time with UTC "Z" timezone',trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},b={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},F={isValue:"${path} field must be ${value}"},_={noUnknown:"${path} field has unspecified keys: ${unknown}",exact:"${path} object contains unknown properties: ${properties}"},w={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"},x={notType:e=>{const{path:t,value:s,spec:r}=e,n=r.types.length;if(Array.isArray(s)){if(s.length<n)return`${t} tuple value has too few items, expected a length of ${n} but got ${s.length} for value: \`${u(s,!0)}\``;if(s.length>n)return`${t} tuple value has too many items, expected a length of ${n} but got ${s.length} for value: \`${u(s,!0)}\``}return y.formatError(v.notType,e)}};Object.assign(Object.create(null),{mixed:v,string:g,number:{min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},date:b,object:_,array:w,boolean:F,tuple:x});const T=e=>e&&e.__isYupSchema__;class ${static fromOptions(e,t){if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:s,then:r,otherwise:n}=t,i="function"==typeof s?s:(...e)=>e.every((e=>e===s));return new $(e,((e,t)=>{var s;let a=i(...e)?r:n;return null!=(s=null==a?void 0:a(t))?s:t}))}constructor(e,t){this.fn=void 0,this.refs=e,this.refs=e,this.fn=t}resolve(e,t){let s=this.refs.map((e=>e.getValue(null==t?void 0:t.value,null==t?void 0:t.parent,null==t?void 0:t.context))),r=this.fn(s,e,t);if(void 0===r||r===e)return e;if(!T(r))throw new TypeError("conditions must return a schema object");return r.resolve(t)}}const O="$",k=".";class E{constructor(t,s={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,"string"!=typeof t)throw new TypeError("ref must be a string, got: "+t);if(this.key=t.trim(),""===t)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===O,this.isValue=this.key[0]===k,this.isSibling=!this.isContext&&!this.isValue;let r=this.isContext?O:this.isValue?k:"";this.path=this.key.slice(r.length),this.getter=this.path&&e.getter(this.path,!0),this.map=s.map}getValue(e,t,s){let r=this.isContext?s:this.isValue?e:t;return this.getter&&(r=this.getter(r||{})),this.map&&(r=this.map(r)),r}cast(e,t){return this.getValue(e,null==t?void 0:t.parent,null==t?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}}E.prototype.__isYupRef=!0;const S=e=>null==e;function j(e){function t({value:t,path:s="",options:r,originalValue:n,schema:i},a,o){const{name:l,test:u,params:c,message:h,skipAbsent:p}=e;let{parent:d,context:f,abortEarly:m=i.spec.abortEarly,disableStackTrace:v=i.spec.disableStackTrace}=r;function g(e){return E.isRef(e)?e.getValue(t,d,f):e}function b(e={}){const r=Object.assign({value:t,originalValue:n,label:i.spec.label,path:e.path||s,spec:i.spec,disableStackTrace:e.disableStackTrace||v},c,e.params);for(const e of Object.keys(r))r[e]=g(r[e]);const a=new y(y.formatError(e.message||h,r),t,r.path,e.type||l,r.disableStackTrace);return a.params=r,a}const F=m?a:o;let _={path:s,parent:d,type:l,from:r.from,createError:b,resolve:g,options:r,originalValue:n,schema:i};const w=e=>{y.isError(e)?F(e):e?o(null):F(b())},x=e=>{y.isError(e)?F(e):a(e)};if(p&&S(t))return w(!0);let T;try{var $;if(T=u.call(_,t,_),"function"==typeof(null==($=T)?void 0:$.then)){if(r.sync)throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);return Promise.resolve(T).then(w,x)}}catch(e){return void x(e)}w(T)}return t.OPTIONS=e,t}function A(t,s,r,n=r){let i,a,o;return s?(e.forEach(s,((e,l,u)=>{let c=l?e.slice(1,e.length-1):e,h="tuple"===(t=t.resolve({context:n,parent:i,value:r})).type,p=u?parseInt(c,10):0;if(t.innerType||h){if(h&&!u)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${o}" must contain an index to the tuple element, e.g. "${o}[0]"`);if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${e}, in the path: ${s}. because there is no value at that index. `);i=r,r=r&&r[p],t=h?t.spec.types[p]:t.innerType}if(!u){if(!t.fields||!t.fields[c])throw new Error(`The schema does not contain the path: ${s}. (failed at: ${o} which is a type: "${t.type}")`);i=r,r=r&&r[c],t=t.fields[c]}a=c,o=l?"["+e+"]":"."+e})),{schema:t,parent:i,parentPath:a}):{parent:i,parentPath:s,schema:t}}class D extends Set{describe(){const e=[];for(const t of this.values())e.push(E.isRef(t)?t.describe():t);return e}resolveAll(e){let t=[];for(const s of this.values())t.push(e(s));return t}clone(){return new D(this.values())}merge(e,t){const s=this.clone();return e.forEach((e=>s.add(e))),t.forEach((e=>s.delete(e))),s}}function C(e,t=new Map){if(T(e)||!e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let s;if(e instanceof Date)s=new Date(e.getTime()),t.set(e,s);else if(e instanceof RegExp)s=new RegExp(e),t.set(e,s);else if(Array.isArray(e)){s=new Array(e.length),t.set(e,s);for(let r=0;r<e.length;r++)s[r]=C(e[r],t)}else if(e instanceof Map){s=new Map,t.set(e,s);for(const[r,n]of e.entries())s.set(r,C(n,t))}else if(e instanceof Set){s=new Set,t.set(e,s);for(const r of e)s.add(C(r,t))}else{if(!(e instanceof Object))throw Error(`Unable to clone ${e}`);s={},t.set(e,s);for(const[r,n]of Object.entries(e))s[r]=C(n,t)}return s}class V{constructor(e){this.type=void 0,this.deps=[],this.tests=void 0,this.transforms=void 0,this.conditions=[],this._mutate=void 0,this.internalTests={},this._whitelist=new D,this._blacklist=new D,this.exclusiveTests=Object.create(null),this._typeCheck=void 0,this.spec=void 0,this.tests=[],this.transforms=[],this.withMutation((()=>{this.typeError(v.notType)})),this.type=e.type,this._typeCheck=e.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,disableStackTrace:!1,nullable:!1,optional:!0,coerce:!0},null==e?void 0:e.spec),this.withMutation((e=>{e.nonNullable()}))}get _type(){return this.type}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;const t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeCheck=this._typeCheck,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.internalTests=Object.assign({},this.internalTests),t.exclusiveTests=Object.assign({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=C(Object.assign({},this.spec,e)),t}label(e){let t=this.clone();return t.spec.label=e,t}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let s=e(this);return this._mutate=t,s}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&"mixed"!==this.type)throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,s=e.clone();const r=Object.assign({},t.spec,s.spec);return s.spec=r,s.internalTests=Object.assign({},t.internalTests,s.internalTests),s._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),s._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),s.tests=t.tests,s.exclusiveTests=t.exclusiveTests,s.withMutation((t=>{e.tests.forEach((e=>{t.test(e.OPTIONS)}))})),s.transforms=[...t.transforms,...s.transforms],s}isType(e){return null==e?!(!this.spec.nullable||null!==e)||!(!this.spec.optional||void 0!==e):this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let s=t.conditions;t=t.clone(),t.conditions=[],t=s.reduce(((t,s)=>s.resolve(t,e)),t),t=t.resolve(e)}return t}resolveOptions(e){var t,s,r,n;return Object.assign({},e,{from:e.from||[],strict:null!=(t=e.strict)?t:this.spec.strict,abortEarly:null!=(s=e.abortEarly)?s:this.spec.abortEarly,recursive:null!=(r=e.recursive)?r:this.spec.recursive,disableStackTrace:null!=(n=e.disableStackTrace)?n:this.spec.disableStackTrace})}cast(e,t={}){let s=this.resolve(Object.assign({value:e},t)),r="ignore-optionality"===t.assert,n=s._cast(e,t);if(!1!==t.assert&&!s.isType(n)){if(r&&S(n))return n;let i=u(e),a=u(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${s.type}". \n\nattempted value: ${i} \n`+(a!==i?`result of cast: ${a}`:""))}return n}_cast(e,t){let s=void 0===e?e:this.transforms.reduce(((t,s)=>s.call(this,t,e,this)),e);return void 0===s&&(s=this.getDefault(t)),s}_validate(e,t={},s,r){let{path:n,originalValue:i=e,strict:a=this.spec.strict}=t,o=e;a||(o=this._cast(o,Object.assign({assert:!1},t)));let l=[];for(let e of Object.values(this.internalTests))e&&l.push(e);this.runTests({path:n,value:o,originalValue:i,options:t,tests:l},s,(e=>{if(e.length)return r(e,o);this.runTests({path:n,value:o,originalValue:i,options:t,tests:this.tests},s,r)}))}runTests(e,t,s){let r=!1,{tests:n,value:i,originalValue:a,path:o,options:l}=e,u=e=>{r||(r=!0,t(e,i))},c=e=>{r||(r=!0,s(e,i))},h=n.length,p=[];if(!h)return c([]);let d={value:i,originalValue:a,path:o,options:l,schema:this};for(let e=0;e<n.length;e++){(0,n[e])(d,u,(function(e){e&&(Array.isArray(e)?p.push(...e):p.push(e)),--h<=0&&c(p)}))}}asNestedTest({key:e,index:t,parent:s,parentPath:r,originalParent:n,options:i}){const a=null!=e?e:t;if(null==a)throw TypeError("Must include `key` or `index` for nested validations");const o="number"==typeof a;let l=s[a];const u=Object.assign({},i,{strict:!0,parent:s,value:l,originalValue:n[a],key:void 0,[o?"index":"key"]:a,path:o||a.includes(".")?`${r||""}[${o?a:`"${a}"`}]`:(r?`${r}.`:"")+e});return(e,t,s)=>this.resolve(u)._validate(l,u,t,s)}validate(e,t){var s;let r=this.resolve(Object.assign({},t,{value:e})),n=null!=(s=null==t?void 0:t.disableStackTrace)?s:r.spec.disableStackTrace;return new Promise(((s,i)=>r._validate(e,t,((e,t)=>{y.isError(e)&&(e.value=t),i(e)}),((e,t)=>{e.length?i(new y(e,t,void 0,void 0,n)):s(t)}))))}validateSync(e,t){var s;let r,n=this.resolve(Object.assign({},t,{value:e})),i=null!=(s=null==t?void 0:t.disableStackTrace)?s:n.spec.disableStackTrace;return n._validate(e,Object.assign({},t,{sync:!0}),((e,t)=>{throw y.isError(e)&&(e.value=t),e}),((t,s)=>{if(t.length)throw new y(t,e,void 0,void 0,i);r=s})),r}isValid(e,t){return this.validate(e,t).then((()=>!0),(e=>{if(y.isError(e))return!1;throw e}))}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(e){if(y.isError(e))return!1;throw e}}_getDefault(e){let t=this.spec.default;return null==t?t:"function"==typeof t?t.call(this,e):C(t)}getDefault(e){return this.resolve(e||{})._getDefault(e)}default(e){if(0===arguments.length)return this._getDefault();return this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){const s=this.clone({nullable:e});return s.internalTests.nullable=j({message:t,name:"nullable",test(e){return null!==e||this.schema.spec.nullable}}),s}optionality(e,t){const s=this.clone({optional:e});return s.internalTests.optionality=j({message:t,name:"optionality",test(e){return void 0!==e||this.schema.spec.optional}}),s}optional(){return this.optionality(!0)}defined(e=v.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=v.notNull){return this.nullability(!1,e)}required(e=v.required){return this.clone().withMutation((t=>t.nonNullable(e).defined(e)))}notRequired(){return this.clone().withMutation((e=>e.nullable().optional()))}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(t=1===e.length?"function"==typeof e[0]?{test:e[0]}:e[0]:2===e.length?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]},void 0===t.message&&(t.message=v.default),"function"!=typeof t.test)throw new TypeError("`test` is a required parameters");let s=this.clone(),r=j(t),n=t.exclusive||t.name&&!0===s.exclusiveTests[t.name];if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(s.exclusiveTests[t.name]=!!t.exclusive),s.tests=s.tests.filter((e=>{if(e.OPTIONS.name===t.name){if(n)return!1;if(e.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),s.tests.push(r),s}when(e,t){Array.isArray(e)||"string"==typeof e||(t=e,e=".");let s=this.clone(),r=c(e).map((e=>new E(e)));return r.forEach((e=>{e.isSibling&&s.deps.push(e.key)})),s.conditions.push("function"==typeof t?new $(r,t):$.fromOptions(r,t)),s}typeError(e){let t=this.clone();return t.internalTests.typeError=j({message:e,name:"typeError",skipAbsent:!0,test(e){return!!this.schema._typeCheck(e)||this.createError({params:{type:this.schema.type}})}}),t}oneOf(e,t=v.oneOf){let s=this.clone();return e.forEach((e=>{s._whitelist.add(e),s._blacklist.delete(e)})),s.internalTests.whiteList=j({message:t,name:"oneOf",skipAbsent:!0,test(e){let t=this.schema._whitelist,s=t.resolveAll(this.resolve);return!!s.includes(e)||this.createError({params:{values:Array.from(t).join(", "),resolved:s}})}}),s}notOneOf(e,t=v.notOneOf){let s=this.clone();return e.forEach((e=>{s._blacklist.add(e),s._whitelist.delete(e)})),s.internalTests.blacklist=j({message:t,name:"notOneOf",test(e){let t=this.schema._blacklist,s=t.resolveAll(this.resolve);return!s.includes(e)||this.createError({params:{values:Array.from(t).join(", "),resolved:s}})}}),s}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){const t=(e?this.resolve(e):this).clone(),{label:s,meta:r,optional:n,nullable:i}=t.spec;return{meta:r,label:s,optional:n,nullable:i,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.map((e=>({name:e.OPTIONS.name,params:e.OPTIONS.params}))).filter(((e,t,s)=>s.findIndex((t=>t.name===e.name))===t))}}}V.prototype.__isYupSchema__=!0;for(const e of["validate","validateSync"])V.prototype[`${e}At`]=function(t,s,r={}){const{parent:n,parentPath:i,schema:a}=A(this,t,s,r.context);return a[e](n&&n[i],Object.assign({},r,{parent:n,path:t}))};for(const e of["equals","is"])V.prototype[e]=V.prototype.oneOf;for(const e of["not","nope"])V.prototype[e]=V.prototype.notOneOf;const N=()=>!0;function z(e){return new P(e)}class P extends V{constructor(e){super("function"==typeof e?{type:"mixed",check:e}:Object.assign({type:"mixed",check:N},e))}}function q(){return new I}z.prototype=P.prototype;class I extends V{constructor(){super({type:"boolean",check:e=>(e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e)}),this.withMutation((()=>{this.transform(((e,t,s)=>{if(s.spec.coerce&&!s.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e}))}))}isTrue(e=F.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test:e=>S(e)||!0===e})}isFalse(e=F.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test:e=>S(e)||!1===e})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}q.prototype=I.prototype;const M=/^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;function R(e){var t,s;const r=M.exec(e);return r?{year:U(r[1]),month:U(r[2],1)-1,day:U(r[3],1),hour:U(r[4]),minute:U(r[5]),second:U(r[6]),millisecond:r[7]?U(r[7].substring(0,3)):0,precision:null!=(t=null==(s=r[7])?void 0:s.length)?t:void 0,z:r[8]||void 0,plusMinus:r[9]||void 0,hourOffset:U(r[10]),minuteOffset:U(r[11])}:null}function U(e,t=0){return Number(e)||t}let Z=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Y=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,L=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,K=new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"),J=e=>S(e)||e===e.trim(),B={}.toString();function G(){return new H}class H extends V{constructor(){super({type:"string",check:e=>(e instanceof String&&(e=e.valueOf()),"string"==typeof e)}),this.withMutation((()=>{this.transform(((e,t,s)=>{if(!s.spec.coerce||s.isType(e))return e;if(Array.isArray(e))return e;const r=null!=e&&e.toString?e.toString():e;return r===B?e:r}))}))}required(e){return super.required(e).withMutation((t=>t.test({message:e||v.required,name:"required",skipAbsent:!0,test:e=>!!e.length})))}notRequired(){return super.notRequired().withMutation((e=>(e.tests=e.tests.filter((e=>"required"!==e.OPTIONS.name)),e)))}length(e,t=g.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(t){return t.length===this.resolve(e)}})}min(e,t=g.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t.length>=this.resolve(e)}})}max(e,t=g.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(t){return t.length<=this.resolve(e)}})}matches(e,t){let s,r,n=!1;return t&&("object"==typeof t?({excludeEmptyString:n=!1,message:s,name:r}=t):s=t),this.test({name:r||"matches",message:s||g.matches,params:{regex:e},skipAbsent:!0,test:t=>""===t&&n||-1!==t.search(e)})}email(e=g.email){return this.matches(Z,{name:"email",message:e,excludeEmptyString:!0})}url(e=g.url){return this.matches(Y,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=g.uuid){return this.matches(L,{name:"uuid",message:e,excludeEmptyString:!1})}datetime(e){let t,s,r="";return e&&("object"==typeof e?({message:r="",allowOffset:t=!1,precision:s}=e):r=e),this.matches(K,{name:"datetime",message:r||g.datetime,excludeEmptyString:!0}).test({name:"datetime_offset",message:r||g.datetime_offset,params:{allowOffset:t},skipAbsent:!0,test:e=>{if(!e||t)return!0;const s=R(e);return!!s&&!!s.z}}).test({name:"datetime_precision",message:r||g.datetime_precision,params:{precision:s},skipAbsent:!0,test:e=>{if(!e||null==s)return!0;const t=R(e);return!!t&&t.precision===s}})}ensure(){return this.default("").transform((e=>null===e?"":e))}trim(e=g.trim){return this.transform((e=>null!=e?e.trim():e)).test({message:e,name:"trim",test:J})}lowercase(e=g.lowercase){return this.transform((e=>S(e)?e:e.toLowerCase())).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:e=>S(e)||e===e.toLowerCase()})}uppercase(e=g.uppercase){return this.transform((e=>S(e)?e:e.toUpperCase())).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:e=>S(e)||e===e.toUpperCase()})}}G.prototype=H.prototype;let Q=new Date("");class W extends V{constructor(){super({type:"date",check(e){return t=e,"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(e.getTime());var t}}),this.withMutation((()=>{this.transform(((e,t,s)=>!s.spec.coerce||s.isType(e)||null===e?e:(e=function(e){const t=R(e);if(!t)return Date.parse?Date.parse(e):Number.NaN;if(void 0===t.z&&void 0===t.plusMinus)return new Date(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond).valueOf();let s=0;return"Z"!==t.z&&void 0!==t.plusMinus&&(s=60*t.hourOffset+t.minuteOffset,"+"===t.plusMinus&&(s=0-s)),Date.UTC(t.year,t.month,t.day,t.hour,t.minute+s,t.second,t.millisecond)}(e),isNaN(e)?W.INVALID_DATE:new Date(e))))}))}prepareParam(e,t){let s;if(E.isRef(e))s=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);s=r}return s}min(e,t=b.min){let s=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(e){return e>=this.resolve(s)}})}max(e,t=b.max){let s=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(e){return e<=this.resolve(s)}})}}function X(e,t){let s=1/0;return e.some(((e,r)=>{var n;if(null!=(n=t.path)&&n.includes(e))return s=r,!0})),s}function ee(e){return(t,s)=>X(e,t)-X(e,s)}W.INVALID_DATE=Q,W.prototype;const te=(e,t,s)=>{if("string"!=typeof e)return e;let r=e;try{r=JSON.parse(e)}catch(e){}return s.isType(r)?r:e};function se(e){if("fields"in e){const t={};for(const[s,r]of Object.entries(e.fields))t[s]=se(r);return e.setFields(t)}if("array"===e.type){const t=e.optional();return t.innerType&&(t.innerType=se(t.innerType)),t}return"tuple"===e.type?e.optional().clone({types:e.spec.types.map(se)}):"optional"in e?e.optional():e}let re=e=>"[object Object]"===Object.prototype.toString.call(e);function ne(e,t){let s=Object.keys(e.fields);return Object.keys(t).filter((e=>-1===s.indexOf(e)))}const ie=ee([]);function ae(e){return new oe(e)}class oe extends V{constructor(e){super({type:"object",check:e=>re(e)||"function"==typeof e}),this.fields=Object.create(null),this._sortErrors=ie,this._nodes=[],this._excludedEdges=[],this.withMutation((()=>{e&&this.shape(e)}))}_cast(e,t={}){var s;let r=super._cast(e,t);if(void 0===r)return this.getDefault(t);if(!this._typeCheck(r))return r;let n=this.fields,i=null!=(s=t.stripUnknown)?s:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(r).filter((e=>!this._nodes.includes(e)))),o={},l=Object.assign({},t,{parent:o,__validating:t.__validating||!1}),u=!1;for(const e of a){let s=n[e],a=e in r;if(s){let n,i=r[e];l.path=(t.path?`${t.path}.`:"")+e,s=s.resolve({value:i,context:t.context,parent:o});let a=s instanceof V?s.spec:void 0,c=null==a?void 0:a.strict;if(null!=a&&a.strip){u=u||e in r;continue}n=t.__validating&&c?r[e]:s.cast(r[e],l),void 0!==n&&(o[e]=n)}else a&&!i&&(o[e]=r[e]);a===e in o&&o[e]===r[e]||(u=!0)}return u?o:r}_validate(e,t={},s,r){let{from:n=[],originalValue:i=e,recursive:a=this.spec.recursive}=t;t.from=[{schema:this,value:i},...n],t.__validating=!0,t.originalValue=i,super._validate(e,t,s,((e,n)=>{if(!a||!re(n))return void r(e,n);i=i||n;let o=[];for(let e of this._nodes){let s=this.fields[e];s&&!E.isRef(s)&&o.push(s.asNestedTest({options:t,key:e,parent:n,parentPath:t.path,originalParent:i}))}this.runTests({tests:o,value:n,originalValue:i,options:t},s,(t=>{r(t.sort(this._sortErrors).concat(e),n)}))}))}clone(e){const t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),s=t.fields;for(let[e,t]of Object.entries(this.fields)){const r=s[e];s[e]=void 0===r?t:r}return t.withMutation((t=>t.setFields(s,[...this._excludedEdges,...e._excludedEdges])))}_getDefault(e){if("default"in this.spec)return super._getDefault(e);if(!this._nodes.length)return;let t={};return this._nodes.forEach((s=>{var r;const n=this.fields[s];let i=e;null!=(r=i)&&r.value&&(i=Object.assign({},i,{parent:i.value,value:i.value[s]})),t[s]=n&&"getDefault"in n?n.getDefault(i):void 0})),t}setFields(t,r){let n=this.clone();return n.fields=t,n._nodes=function(t,r=[]){let n=[],i=new Set,a=new Set(r.map((([e,t])=>`${e}-${t}`)));function o(t,s){let r=e.split(t)[0];i.add(r),a.has(`${s}-${r}`)||n.push([s,r])}for(const e of Object.keys(t)){let s=t[e];i.add(e),E.isRef(s)&&s.isSibling?o(s.path,e):T(s)&&"deps"in s&&s.deps.forEach((t=>o(t,e)))}return s.array(Array.from(i),n).reverse()}(t,r),n._sortErrors=ee(Object.keys(t)),r&&(n._excludedEdges=r),n}shape(e,t=[]){return this.clone().withMutation((s=>{let r=s._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),r=[...s._excludedEdges,...t]),s.setFields(Object.assign(s.fields,e),r)}))}partial(){const e={};for(const[t,s]of Object.entries(this.fields))e[t]="optional"in s&&s.optional instanceof Function?s.optional():s;return this.setFields(e)}deepPartial(){return se(this)}pick(e){const t={};for(const s of e)this.fields[s]&&(t[s]=this.fields[s]);return this.setFields(t,this._excludedEdges.filter((([t,s])=>e.includes(t)&&e.includes(s))))}omit(e){const t=[];for(const s of Object.keys(this.fields))e.includes(s)||t.push(s);return this.pick(t)}from(t,s,r){let n=e.getter(t,!0);return this.transform((i=>{if(!i)return i;let a=i;return((t,s)=>{const r=[...e.normalizePath(s)];if(1===r.length)return r[0]in t;let n=r.pop(),i=e.getter(e.join(r),!0)(t);return!(!i||!(n in i))})(i,t)&&(a=Object.assign({},i),r||delete a[t],a[s]=n(i)),a}))}json(){return this.transform(te)}exact(e){return this.test({name:"exact",exclusive:!0,message:e||_.exact,test(e){if(null==e)return!0;const t=ne(this.schema,e);return 0===t.length||this.createError({params:{properties:t.join(", ")}})}})}stripUnknown(){return this.clone({noUnknown:!0})}noUnknown(e=!0,t=_.noUnknown){"boolean"!=typeof e&&(t=e,e=!0);let s=this.test({name:"noUnknown",exclusive:!0,message:t,test(t){if(null==t)return!0;const s=ne(this.schema,t);return!e||0===s.length||this.createError({params:{unknown:s.join(", ")}})}});return s.spec.noUnknown=e,s}unknown(e=!0,t=_.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform((t=>{if(!t)return t;const s={};for(const r of Object.keys(t))s[e(r)]=t[r];return s}))}camelCase(){return this.transformKeys(t.camelCase)}snakeCase(){return this.transformKeys(t.snakeCase)}constantCase(){return this.transformKeys((e=>t.snakeCase(e).toUpperCase()))}describe(e){const t=(e?this.resolve(e):this).clone(),s=super.describe(e);s.fields={};for(const[n,i]of Object.entries(t.fields)){var r;let t=e;null!=(r=t)&&r.value&&(t=Object.assign({},t,{parent:t.value,value:t.value[n]})),s.fields[n]=i.describe(t)}return s}}function le(e){return new ue(e)}ae.prototype=oe.prototype;class ue extends V{constructor(e){super({type:"array",spec:{types:e},check:e=>Array.isArray(e)}),this.innerType=void 0,this.innerType=e}_cast(e,t){const s=super._cast(e,t);if(!this._typeCheck(s)||!this.innerType)return s;let r=!1;const n=s.map(((e,s)=>{const n=this.innerType.cast(e,Object.assign({},t,{path:`${t.path||""}[${s}]`}));return n!==e&&(r=!0),n}));return r?n:s}_validate(e,t={},s,r){var n;let i=this.innerType,a=null!=(n=t.recursive)?n:this.spec.recursive;null!=t.originalValue&&t.originalValue,super._validate(e,t,s,((n,o)=>{var l;if(!a||!i||!this._typeCheck(o))return void r(n,o);let u=new Array(o.length);for(let s=0;s<o.length;s++){var c;u[s]=i.asNestedTest({options:t,index:s,parent:o,parentPath:t.path,originalParent:null!=(c=t.originalValue)?c:e})}this.runTests({value:o,tests:u,originalValue:null!=(l=t.originalValue)?l:e,options:t},s,(e=>r(e.concat(n),o)))}))}clone(e){const t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(te)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!T(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+u(e));return t.innerType=e,t.spec=Object.assign({},t.spec,{types:e}),t}length(e,t=w.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(t){return t.length===this.resolve(e)}})}min(e,t){return t=t||w.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t.length>=this.resolve(e)}})}max(e,t){return t=t||w.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(t){return t.length<=this.resolve(e)}})}ensure(){return this.default((()=>[])).transform(((e,t)=>this._typeCheck(e)?e:null==t?[]:[].concat(t)))}compact(e){let t=e?(t,s,r)=>!e(t,s,r):e=>!!e;return this.transform((e=>null!=e?e.filter(t):e))}describe(e){const t=(e?this.resolve(e):this).clone(),s=super.describe(e);if(t.innerType){var r;let n=e;null!=(r=n)&&r.value&&(n=Object.assign({},n,{parent:n.value,value:n.value[0]})),s.innerType=t.innerType.describe(n)}return s}}function ce(e){return new pe(e)}function he(e){try{return e()}catch(e){if(y.isError(e))return Promise.reject(e);throw e}}le.prototype=ue.prototype;class pe{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this.spec=void 0,this._resolve=(e,t={})=>{let s=this.builder(e,t);if(!T(s))throw new TypeError("lazy() functions must return a valid schema");return this.spec.optional&&(s=s.optional()),s.resolve(t)},this.builder=e,this.spec={meta:void 0,optional:!1}}clone(e){const t=new pe(this.builder);return t.spec=Object.assign({},this.spec,e),t}optionality(e){return this.clone({optional:e})}optional(){return this.optionality(!0)}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}asNestedTest(e){let{key:t,index:s,parent:r,options:n}=e,i=r[null!=s?s:t];return this._resolve(i,Object.assign({},n,{value:i,parent:r})).asNestedTest(e)}validate(e,t){return he((()=>this._resolve(e,t).validate(e,t)))}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,s){return he((()=>this._resolve(t,s).validateAt(e,t,s)))}validateSyncAt(e,t,s){return this._resolve(t,s).validateSyncAt(e,t,s)}isValid(e,t){try{return this._resolve(e,t).isValid(e,t)}catch(e){if(y.isError(e))return Promise.resolve(!1);throw e}}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}describe(e){return e?this.resolve(e).describe(e):{type:"lazy",meta:this.spec.meta,label:void 0}}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}}export{ue as ArraySchema,I as BooleanSchema,W as DateSchema,pe as LazySchema,P as MixedSchema,oe as ObjectSchema,V as Schema,H as StringSchema,y as ValidationError,le as array,q as bool,q as boolean,A as getIn,T as isSchema,ce as lazy,z as mixed,ae as object,u as printValue,G as string};
|
|
1
|
+
import{p as e}from"../../_virtual/index5.js";import{t}from"../../_virtual/index6.js";import s from"../../_virtual/index3.js";const r=Object.prototype.toString,n=Error.prototype.toString,i=RegExp.prototype.toString,a="undefined"!=typeof Symbol?Symbol.prototype.toString:()=>"",o=/^Symbol\((.*)\)(.*)$/;function l(e,t=!1){if(null==e||!0===e||!1===e)return""+e;const s=typeof e;if("number"===s)return function(e){return e!=+e?"NaN":0===e&&1/e<0?"-0":""+e}(e);if("string"===s)return t?`"${e}"`:e;if("function"===s)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===s)return a.call(e).replace(o,"Symbol($1)");const l=r.call(e).slice(8,-1);return"Date"===l?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===l||e instanceof Error?"["+n.call(e)+"]":"RegExp"===l?i.call(e):null}function u(e,t){let s=l(e,t);return null!==s?s:JSON.stringify(e,(function(e,s){let r=l(this[e],t);return null!==r?r:s}),2)}function c(e){return null==e?[]:[].concat(e)}let h,p,d,f=/\$\{\s*(\w+)\s*\}/g;h=Symbol.toStringTag;class m{constructor(e,t,s,r){this.name=void 0,this.message=void 0,this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=void 0,this.inner=void 0,this[h]="Error",this.name="ValidationError",this.value=t,this.path=s,this.type=r,this.errors=[],this.inner=[],c(e).forEach((e=>{if(y.isError(e)){this.errors.push(...e.errors);const t=e.inner.length?e.inner:[e];this.inner.push(...t)}else this.errors.push(e)})),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0]}}p=Symbol.hasInstance,d=Symbol.toStringTag;class y extends Error{static formatError(e,t){const s=t.label||t.path||"this";return t=Object.assign({},t,{path:s,originalPath:t.path}),"string"==typeof e?e.replace(f,((e,s)=>u(t[s]))):"function"==typeof e?e(t):e}static isError(e){return e&&"ValidationError"===e.name}constructor(e,t,s,r,n){const i=new m(e,t,s,r);if(n)return i;super(),this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=[],this.inner=[],this[d]="Error",this.name=i.name,this.message=i.message,this.type=i.type,this.value=i.value,this.path=i.path,this.errors=i.errors,this.inner=i.inner,Error.captureStackTrace&&Error.captureStackTrace(this,y)}static[p](e){return m[Symbol.hasInstance](e)||super[Symbol.hasInstance](e)}}let v={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:e,type:t,value:s,originalValue:r})=>{const n=null!=r&&r!==s?` (cast from the value \`${u(r,!0)}\`).`:".";return"mixed"!==t?`${e} must be a \`${t}\` type, but the final value was: \`${u(s,!0)}\``+n:`${e} must match the configured type. The validated value was: \`${u(s,!0)}\``+n}},g={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",datetime:"${path} must be a valid ISO date-time",datetime_precision:"${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",datetime_offset:'${path} must be a valid ISO date-time with UTC "Z" timezone',trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},b={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},F={isValue:"${path} field must be ${value}"},_={noUnknown:"${path} field has unspecified keys: ${unknown}",exact:"${path} object contains unknown properties: ${properties}"},w={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"},x={notType:e=>{const{path:t,value:s,spec:r}=e,n=r.types.length;if(Array.isArray(s)){if(s.length<n)return`${t} tuple value has too few items, expected a length of ${n} but got ${s.length} for value: \`${u(s,!0)}\``;if(s.length>n)return`${t} tuple value has too many items, expected a length of ${n} but got ${s.length} for value: \`${u(s,!0)}\``}return y.formatError(v.notType,e)}};Object.assign(Object.create(null),{mixed:v,string:g,number:{min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},date:b,object:_,array:w,boolean:F,tuple:x});const T=e=>e&&e.__isYupSchema__;class ${static fromOptions(e,t){if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:s,then:r,otherwise:n}=t,i="function"==typeof s?s:(...e)=>e.every((e=>e===s));return new $(e,((e,t)=>{var s;let a=i(...e)?r:n;return null!=(s=null==a?void 0:a(t))?s:t}))}constructor(e,t){this.fn=void 0,this.refs=e,this.refs=e,this.fn=t}resolve(e,t){let s=this.refs.map((e=>e.getValue(null==t?void 0:t.value,null==t?void 0:t.parent,null==t?void 0:t.context))),r=this.fn(s,e,t);if(void 0===r||r===e)return e;if(!T(r))throw new TypeError("conditions must return a schema object");return r.resolve(t)}}const O="$",k=".";class E{constructor(t,s={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,"string"!=typeof t)throw new TypeError("ref must be a string, got: "+t);if(this.key=t.trim(),""===t)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===O,this.isValue=this.key[0]===k,this.isSibling=!this.isContext&&!this.isValue;let r=this.isContext?O:this.isValue?k:"";this.path=this.key.slice(r.length),this.getter=this.path&&e.getter(this.path,!0),this.map=s.map}getValue(e,t,s){let r=this.isContext?s:this.isValue?e:t;return this.getter&&(r=this.getter(r||{})),this.map&&(r=this.map(r)),r}cast(e,t){return this.getValue(e,null==t?void 0:t.parent,null==t?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}}E.prototype.__isYupRef=!0;const S=e=>null==e;function j(e){function t({value:t,path:s="",options:r,originalValue:n,schema:i},a,o){const{name:l,test:u,params:c,message:h,skipAbsent:p}=e;let{parent:d,context:f,abortEarly:m=i.spec.abortEarly,disableStackTrace:v=i.spec.disableStackTrace}=r;function g(e){return E.isRef(e)?e.getValue(t,d,f):e}function b(e={}){const r=Object.assign({value:t,originalValue:n,label:i.spec.label,path:e.path||s,spec:i.spec,disableStackTrace:e.disableStackTrace||v},c,e.params);for(const e of Object.keys(r))r[e]=g(r[e]);const a=new y(y.formatError(e.message||h,r),t,r.path,e.type||l,r.disableStackTrace);return a.params=r,a}const F=m?a:o;let _={path:s,parent:d,type:l,from:r.from,createError:b,resolve:g,options:r,originalValue:n,schema:i};const w=e=>{y.isError(e)?F(e):e?o(null):F(b())},x=e=>{y.isError(e)?F(e):a(e)};if(p&&S(t))return w(!0);let T;try{var $;if(T=u.call(_,t,_),"function"==typeof(null==($=T)?void 0:$.then)){if(r.sync)throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);return Promise.resolve(T).then(w,x)}}catch(e){return void x(e)}w(T)}return t.OPTIONS=e,t}function A(t,s,r,n=r){let i,a,o;return s?(e.forEach(s,((e,l,u)=>{let c=l?e.slice(1,e.length-1):e,h="tuple"===(t=t.resolve({context:n,parent:i,value:r})).type,p=u?parseInt(c,10):0;if(t.innerType||h){if(h&&!u)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${o}" must contain an index to the tuple element, e.g. "${o}[0]"`);if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${e}, in the path: ${s}. because there is no value at that index. `);i=r,r=r&&r[p],t=h?t.spec.types[p]:t.innerType}if(!u){if(!t.fields||!t.fields[c])throw new Error(`The schema does not contain the path: ${s}. (failed at: ${o} which is a type: "${t.type}")`);i=r,r=r&&r[c],t=t.fields[c]}a=c,o=l?"["+e+"]":"."+e})),{schema:t,parent:i,parentPath:a}):{parent:i,parentPath:s,schema:t}}class D extends Set{describe(){const e=[];for(const t of this.values())e.push(E.isRef(t)?t.describe():t);return e}resolveAll(e){let t=[];for(const s of this.values())t.push(e(s));return t}clone(){return new D(this.values())}merge(e,t){const s=this.clone();return e.forEach((e=>s.add(e))),t.forEach((e=>s.delete(e))),s}}function C(e,t=new Map){if(T(e)||!e||"object"!=typeof e)return e;if(t.has(e))return t.get(e);let s;if(e instanceof Date)s=new Date(e.getTime()),t.set(e,s);else if(e instanceof RegExp)s=new RegExp(e),t.set(e,s);else if(Array.isArray(e)){s=new Array(e.length),t.set(e,s);for(let r=0;r<e.length;r++)s[r]=C(e[r],t)}else if(e instanceof Map){s=new Map,t.set(e,s);for(const[r,n]of e.entries())s.set(r,C(n,t))}else if(e instanceof Set){s=new Set,t.set(e,s);for(const r of e)s.add(C(r,t))}else{if(!(e instanceof Object))throw Error(`Unable to clone ${e}`);s={},t.set(e,s);for(const[r,n]of Object.entries(e))s[r]=C(n,t)}return s}class V{constructor(e){this.type=void 0,this.deps=[],this.tests=void 0,this.transforms=void 0,this.conditions=[],this._mutate=void 0,this.internalTests={},this._whitelist=new D,this._blacklist=new D,this.exclusiveTests=Object.create(null),this._typeCheck=void 0,this.spec=void 0,this.tests=[],this.transforms=[],this.withMutation((()=>{this.typeError(v.notType)})),this.type=e.type,this._typeCheck=e.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,disableStackTrace:!1,nullable:!1,optional:!0,coerce:!0},null==e?void 0:e.spec),this.withMutation((e=>{e.nonNullable()}))}get _type(){return this.type}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;const t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeCheck=this._typeCheck,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.internalTests=Object.assign({},this.internalTests),t.exclusiveTests=Object.assign({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=C(Object.assign({},this.spec,e)),t}label(e){let t=this.clone();return t.spec.label=e,t}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let s=e(this);return this._mutate=t,s}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&"mixed"!==this.type)throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,s=e.clone();const r=Object.assign({},t.spec,s.spec);return s.spec=r,s.internalTests=Object.assign({},t.internalTests,s.internalTests),s._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),s._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),s.tests=t.tests,s.exclusiveTests=t.exclusiveTests,s.withMutation((t=>{e.tests.forEach((e=>{t.test(e.OPTIONS)}))})),s.transforms=[...t.transforms,...s.transforms],s}isType(e){return null==e?!(!this.spec.nullable||null!==e)||!(!this.spec.optional||void 0!==e):this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let s=t.conditions;t=t.clone(),t.conditions=[],t=s.reduce(((t,s)=>s.resolve(t,e)),t),t=t.resolve(e)}return t}resolveOptions(e){var t,s,r,n;return Object.assign({},e,{from:e.from||[],strict:null!=(t=e.strict)?t:this.spec.strict,abortEarly:null!=(s=e.abortEarly)?s:this.spec.abortEarly,recursive:null!=(r=e.recursive)?r:this.spec.recursive,disableStackTrace:null!=(n=e.disableStackTrace)?n:this.spec.disableStackTrace})}cast(e,t={}){let s=this.resolve(Object.assign({value:e},t)),r="ignore-optionality"===t.assert,n=s._cast(e,t);if(!1!==t.assert&&!s.isType(n)){if(r&&S(n))return n;let i=u(e),a=u(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${s.type}". \n\nattempted value: ${i} \n`+(a!==i?`result of cast: ${a}`:""))}return n}_cast(e,t){let s=void 0===e?e:this.transforms.reduce(((t,s)=>s.call(this,t,e,this)),e);return void 0===s&&(s=this.getDefault(t)),s}_validate(e,t={},s,r){let{path:n,originalValue:i=e,strict:a=this.spec.strict}=t,o=e;a||(o=this._cast(o,Object.assign({assert:!1},t)));let l=[];for(let e of Object.values(this.internalTests))e&&l.push(e);this.runTests({path:n,value:o,originalValue:i,options:t,tests:l},s,(e=>{if(e.length)return r(e,o);this.runTests({path:n,value:o,originalValue:i,options:t,tests:this.tests},s,r)}))}runTests(e,t,s){let r=!1,{tests:n,value:i,originalValue:a,path:o,options:l}=e,u=e=>{r||(r=!0,t(e,i))},c=e=>{r||(r=!0,s(e,i))},h=n.length,p=[];if(!h)return c([]);let d={value:i,originalValue:a,path:o,options:l,schema:this};for(let e=0;e<n.length;e++){(0,n[e])(d,u,(function(e){e&&(Array.isArray(e)?p.push(...e):p.push(e)),--h<=0&&c(p)}))}}asNestedTest({key:e,index:t,parent:s,parentPath:r,originalParent:n,options:i}){const a=null!=e?e:t;if(null==a)throw TypeError("Must include `key` or `index` for nested validations");const o="number"==typeof a;let l=s[a];const u=Object.assign({},i,{strict:!0,parent:s,value:l,originalValue:n[a],key:void 0,[o?"index":"key"]:a,path:o||a.includes(".")?`${r||""}[${o?a:`"${a}"`}]`:(r?`${r}.`:"")+e});return(e,t,s)=>this.resolve(u)._validate(l,u,t,s)}validate(e,t){var s;let r=this.resolve(Object.assign({},t,{value:e})),n=null!=(s=null==t?void 0:t.disableStackTrace)?s:r.spec.disableStackTrace;return new Promise(((s,i)=>r._validate(e,t,((e,t)=>{y.isError(e)&&(e.value=t),i(e)}),((e,t)=>{e.length?i(new y(e,t,void 0,void 0,n)):s(t)}))))}validateSync(e,t){var s;let r,n=this.resolve(Object.assign({},t,{value:e})),i=null!=(s=null==t?void 0:t.disableStackTrace)?s:n.spec.disableStackTrace;return n._validate(e,Object.assign({},t,{sync:!0}),((e,t)=>{throw y.isError(e)&&(e.value=t),e}),((t,s)=>{if(t.length)throw new y(t,e,void 0,void 0,i);r=s})),r}isValid(e,t){return this.validate(e,t).then((()=>!0),(e=>{if(y.isError(e))return!1;throw e}))}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(e){if(y.isError(e))return!1;throw e}}_getDefault(e){let t=this.spec.default;return null==t?t:"function"==typeof t?t.call(this,e):C(t)}getDefault(e){return this.resolve(e||{})._getDefault(e)}default(e){if(0===arguments.length)return this._getDefault();return this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){const s=this.clone({nullable:e});return s.internalTests.nullable=j({message:t,name:"nullable",test(e){return null!==e||this.schema.spec.nullable}}),s}optionality(e,t){const s=this.clone({optional:e});return s.internalTests.optionality=j({message:t,name:"optionality",test(e){return void 0!==e||this.schema.spec.optional}}),s}optional(){return this.optionality(!0)}defined(e=v.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=v.notNull){return this.nullability(!1,e)}required(e=v.required){return this.clone().withMutation((t=>t.nonNullable(e).defined(e)))}notRequired(){return this.clone().withMutation((e=>e.nullable().optional()))}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(t=1===e.length?"function"==typeof e[0]?{test:e[0]}:e[0]:2===e.length?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]},void 0===t.message&&(t.message=v.default),"function"!=typeof t.test)throw new TypeError("`test` is a required parameters");let s=this.clone(),r=j(t),n=t.exclusive||t.name&&!0===s.exclusiveTests[t.name];if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(s.exclusiveTests[t.name]=!!t.exclusive),s.tests=s.tests.filter((e=>{if(e.OPTIONS.name===t.name){if(n)return!1;if(e.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),s.tests.push(r),s}when(e,t){Array.isArray(e)||"string"==typeof e||(t=e,e=".");let s=this.clone(),r=c(e).map((e=>new E(e)));return r.forEach((e=>{e.isSibling&&s.deps.push(e.key)})),s.conditions.push("function"==typeof t?new $(r,t):$.fromOptions(r,t)),s}typeError(e){let t=this.clone();return t.internalTests.typeError=j({message:e,name:"typeError",skipAbsent:!0,test(e){return!!this.schema._typeCheck(e)||this.createError({params:{type:this.schema.type}})}}),t}oneOf(e,t=v.oneOf){let s=this.clone();return e.forEach((e=>{s._whitelist.add(e),s._blacklist.delete(e)})),s.internalTests.whiteList=j({message:t,name:"oneOf",skipAbsent:!0,test(e){let t=this.schema._whitelist,s=t.resolveAll(this.resolve);return!!s.includes(e)||this.createError({params:{values:Array.from(t).join(", "),resolved:s}})}}),s}notOneOf(e,t=v.notOneOf){let s=this.clone();return e.forEach((e=>{s._blacklist.add(e),s._whitelist.delete(e)})),s.internalTests.blacklist=j({message:t,name:"notOneOf",test(e){let t=this.schema._blacklist,s=t.resolveAll(this.resolve);return!s.includes(e)||this.createError({params:{values:Array.from(t).join(", "),resolved:s}})}}),s}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){const t=(e?this.resolve(e):this).clone(),{label:s,meta:r,optional:n,nullable:i}=t.spec;return{meta:r,label:s,optional:n,nullable:i,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.map((e=>({name:e.OPTIONS.name,params:e.OPTIONS.params}))).filter(((e,t,s)=>s.findIndex((t=>t.name===e.name))===t))}}}V.prototype.__isYupSchema__=!0;for(const e of["validate","validateSync"])V.prototype[`${e}At`]=function(t,s,r={}){const{parent:n,parentPath:i,schema:a}=A(this,t,s,r.context);return a[e](n&&n[i],Object.assign({},r,{parent:n,path:t}))};for(const e of["equals","is"])V.prototype[e]=V.prototype.oneOf;for(const e of["not","nope"])V.prototype[e]=V.prototype.notOneOf;const N=()=>!0;function z(e){return new P(e)}class P extends V{constructor(e){super("function"==typeof e?{type:"mixed",check:e}:Object.assign({type:"mixed",check:N},e))}}function q(){return new I}z.prototype=P.prototype;class I extends V{constructor(){super({type:"boolean",check:e=>(e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e)}),this.withMutation((()=>{this.transform(((e,t,s)=>{if(s.spec.coerce&&!s.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e}))}))}isTrue(e=F.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test:e=>S(e)||!0===e})}isFalse(e=F.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test:e=>S(e)||!1===e})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}q.prototype=I.prototype;const M=/^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;function R(e){var t,s;const r=M.exec(e);return r?{year:U(r[1]),month:U(r[2],1)-1,day:U(r[3],1),hour:U(r[4]),minute:U(r[5]),second:U(r[6]),millisecond:r[7]?U(r[7].substring(0,3)):0,precision:null!=(t=null==(s=r[7])?void 0:s.length)?t:void 0,z:r[8]||void 0,plusMinus:r[9]||void 0,hourOffset:U(r[10]),minuteOffset:U(r[11])}:null}function U(e,t=0){return Number(e)||t}let Z=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Y=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,L=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,K=new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"),J=e=>S(e)||e===e.trim(),B={}.toString();function G(){return new H}class H extends V{constructor(){super({type:"string",check:e=>(e instanceof String&&(e=e.valueOf()),"string"==typeof e)}),this.withMutation((()=>{this.transform(((e,t,s)=>{if(!s.spec.coerce||s.isType(e))return e;if(Array.isArray(e))return e;const r=null!=e&&e.toString?e.toString():e;return r===B?e:r}))}))}required(e){return super.required(e).withMutation((t=>t.test({message:e||v.required,name:"required",skipAbsent:!0,test:e=>!!e.length})))}notRequired(){return super.notRequired().withMutation((e=>(e.tests=e.tests.filter((e=>"required"!==e.OPTIONS.name)),e)))}length(e,t=g.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(t){return t.length===this.resolve(e)}})}min(e,t=g.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t.length>=this.resolve(e)}})}max(e,t=g.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(t){return t.length<=this.resolve(e)}})}matches(e,t){let s,r,n=!1;return t&&("object"==typeof t?({excludeEmptyString:n=!1,message:s,name:r}=t):s=t),this.test({name:r||"matches",message:s||g.matches,params:{regex:e},skipAbsent:!0,test:t=>""===t&&n||-1!==t.search(e)})}email(e=g.email){return this.matches(Z,{name:"email",message:e,excludeEmptyString:!0})}url(e=g.url){return this.matches(Y,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=g.uuid){return this.matches(L,{name:"uuid",message:e,excludeEmptyString:!1})}datetime(e){let t,s,r="";return e&&("object"==typeof e?({message:r="",allowOffset:t=!1,precision:s}=e):r=e),this.matches(K,{name:"datetime",message:r||g.datetime,excludeEmptyString:!0}).test({name:"datetime_offset",message:r||g.datetime_offset,params:{allowOffset:t},skipAbsent:!0,test:e=>{if(!e||t)return!0;const s=R(e);return!!s&&!!s.z}}).test({name:"datetime_precision",message:r||g.datetime_precision,params:{precision:s},skipAbsent:!0,test:e=>{if(!e||null==s)return!0;const t=R(e);return!!t&&t.precision===s}})}ensure(){return this.default("").transform((e=>null===e?"":e))}trim(e=g.trim){return this.transform((e=>null!=e?e.trim():e)).test({message:e,name:"trim",test:J})}lowercase(e=g.lowercase){return this.transform((e=>S(e)?e:e.toLowerCase())).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:e=>S(e)||e===e.toLowerCase()})}uppercase(e=g.uppercase){return this.transform((e=>S(e)?e:e.toUpperCase())).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:e=>S(e)||e===e.toUpperCase()})}}G.prototype=H.prototype;let Q=new Date("");class W extends V{constructor(){super({type:"date",check(e){return t=e,"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(e.getTime());var t}}),this.withMutation((()=>{this.transform(((e,t,s)=>!s.spec.coerce||s.isType(e)||null===e?e:(e=function(e){const t=R(e);if(!t)return Date.parse?Date.parse(e):Number.NaN;if(void 0===t.z&&void 0===t.plusMinus)return new Date(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond).valueOf();let s=0;return"Z"!==t.z&&void 0!==t.plusMinus&&(s=60*t.hourOffset+t.minuteOffset,"+"===t.plusMinus&&(s=0-s)),Date.UTC(t.year,t.month,t.day,t.hour,t.minute+s,t.second,t.millisecond)}(e),isNaN(e)?W.INVALID_DATE:new Date(e))))}))}prepareParam(e,t){let s;if(E.isRef(e))s=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);s=r}return s}min(e,t=b.min){let s=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(e){return e>=this.resolve(s)}})}max(e,t=b.max){let s=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(e){return e<=this.resolve(s)}})}}function X(e,t){let s=1/0;return e.some(((e,r)=>{var n;if(null!=(n=t.path)&&n.includes(e))return s=r,!0})),s}function ee(e){return(t,s)=>X(e,t)-X(e,s)}W.INVALID_DATE=Q,W.prototype;const te=(e,t,s)=>{if("string"!=typeof e)return e;let r=e;try{r=JSON.parse(e)}catch(e){}return s.isType(r)?r:e};function se(e){if("fields"in e){const t={};for(const[s,r]of Object.entries(e.fields))t[s]=se(r);return e.setFields(t)}if("array"===e.type){const t=e.optional();return t.innerType&&(t.innerType=se(t.innerType)),t}return"tuple"===e.type?e.optional().clone({types:e.spec.types.map(se)}):"optional"in e?e.optional():e}let re=e=>"[object Object]"===Object.prototype.toString.call(e);function ne(e,t){let s=Object.keys(e.fields);return Object.keys(t).filter((e=>-1===s.indexOf(e)))}const ie=ee([]);function ae(e){return new oe(e)}class oe extends V{constructor(e){super({type:"object",check:e=>re(e)||"function"==typeof e}),this.fields=Object.create(null),this._sortErrors=ie,this._nodes=[],this._excludedEdges=[],this.withMutation((()=>{e&&this.shape(e)}))}_cast(e,t={}){var s;let r=super._cast(e,t);if(void 0===r)return this.getDefault(t);if(!this._typeCheck(r))return r;let n=this.fields,i=null!=(s=t.stripUnknown)?s:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(r).filter((e=>!this._nodes.includes(e)))),o={},l=Object.assign({},t,{parent:o,__validating:t.__validating||!1}),u=!1;for(const e of a){let s=n[e],a=e in r;if(s){let n,i=r[e];l.path=(t.path?`${t.path}.`:"")+e,s=s.resolve({value:i,context:t.context,parent:o});let a=s instanceof V?s.spec:void 0,c=null==a?void 0:a.strict;if(null!=a&&a.strip){u=u||e in r;continue}n=t.__validating&&c?r[e]:s.cast(r[e],l),void 0!==n&&(o[e]=n)}else a&&!i&&(o[e]=r[e]);a===e in o&&o[e]===r[e]||(u=!0)}return u?o:r}_validate(e,t={},s,r){let{from:n=[],originalValue:i=e,recursive:a=this.spec.recursive}=t;t.from=[{schema:this,value:i},...n],t.__validating=!0,t.originalValue=i,super._validate(e,t,s,((e,n)=>{if(!a||!re(n))return void r(e,n);i=i||n;let o=[];for(let e of this._nodes){let s=this.fields[e];s&&!E.isRef(s)&&o.push(s.asNestedTest({options:t,key:e,parent:n,parentPath:t.path,originalParent:i}))}this.runTests({tests:o,value:n,originalValue:i,options:t},s,(t=>{r(t.sort(this._sortErrors).concat(e),n)}))}))}clone(e){const t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),s=t.fields;for(let[e,t]of Object.entries(this.fields)){const r=s[e];s[e]=void 0===r?t:r}return t.withMutation((t=>t.setFields(s,[...this._excludedEdges,...e._excludedEdges])))}_getDefault(e){if("default"in this.spec)return super._getDefault(e);if(!this._nodes.length)return;let t={};return this._nodes.forEach((s=>{var r;const n=this.fields[s];let i=e;null!=(r=i)&&r.value&&(i=Object.assign({},i,{parent:i.value,value:i.value[s]})),t[s]=n&&"getDefault"in n?n.getDefault(i):void 0})),t}setFields(t,r){let n=this.clone();return n.fields=t,n._nodes=function(t,r=[]){let n=[],i=new Set,a=new Set(r.map((([e,t])=>`${e}-${t}`)));function o(t,s){let r=e.split(t)[0];i.add(r),a.has(`${s}-${r}`)||n.push([s,r])}for(const e of Object.keys(t)){let s=t[e];i.add(e),E.isRef(s)&&s.isSibling?o(s.path,e):T(s)&&"deps"in s&&s.deps.forEach((t=>o(t,e)))}return s.array(Array.from(i),n).reverse()}(t,r),n._sortErrors=ee(Object.keys(t)),r&&(n._excludedEdges=r),n}shape(e,t=[]){return this.clone().withMutation((s=>{let r=s._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),r=[...s._excludedEdges,...t]),s.setFields(Object.assign(s.fields,e),r)}))}partial(){const e={};for(const[t,s]of Object.entries(this.fields))e[t]="optional"in s&&s.optional instanceof Function?s.optional():s;return this.setFields(e)}deepPartial(){return se(this)}pick(e){const t={};for(const s of e)this.fields[s]&&(t[s]=this.fields[s]);return this.setFields(t,this._excludedEdges.filter((([t,s])=>e.includes(t)&&e.includes(s))))}omit(e){const t=[];for(const s of Object.keys(this.fields))e.includes(s)||t.push(s);return this.pick(t)}from(t,s,r){let n=e.getter(t,!0);return this.transform((i=>{if(!i)return i;let a=i;return((t,s)=>{const r=[...e.normalizePath(s)];if(1===r.length)return r[0]in t;let n=r.pop(),i=e.getter(e.join(r),!0)(t);return!(!i||!(n in i))})(i,t)&&(a=Object.assign({},i),r||delete a[t],a[s]=n(i)),a}))}json(){return this.transform(te)}exact(e){return this.test({name:"exact",exclusive:!0,message:e||_.exact,test(e){if(null==e)return!0;const t=ne(this.schema,e);return 0===t.length||this.createError({params:{properties:t.join(", ")}})}})}stripUnknown(){return this.clone({noUnknown:!0})}noUnknown(e=!0,t=_.noUnknown){"boolean"!=typeof e&&(t=e,e=!0);let s=this.test({name:"noUnknown",exclusive:!0,message:t,test(t){if(null==t)return!0;const s=ne(this.schema,t);return!e||0===s.length||this.createError({params:{unknown:s.join(", ")}})}});return s.spec.noUnknown=e,s}unknown(e=!0,t=_.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform((t=>{if(!t)return t;const s={};for(const r of Object.keys(t))s[e(r)]=t[r];return s}))}camelCase(){return this.transformKeys(t.camelCase)}snakeCase(){return this.transformKeys(t.snakeCase)}constantCase(){return this.transformKeys((e=>t.snakeCase(e).toUpperCase()))}describe(e){const t=(e?this.resolve(e):this).clone(),s=super.describe(e);s.fields={};for(const[n,i]of Object.entries(t.fields)){var r;let t=e;null!=(r=t)&&r.value&&(t=Object.assign({},t,{parent:t.value,value:t.value[n]})),s.fields[n]=i.describe(t)}return s}}function le(e){return new ue(e)}ae.prototype=oe.prototype;class ue extends V{constructor(e){super({type:"array",spec:{types:e},check:e=>Array.isArray(e)}),this.innerType=void 0,this.innerType=e}_cast(e,t){const s=super._cast(e,t);if(!this._typeCheck(s)||!this.innerType)return s;let r=!1;const n=s.map(((e,s)=>{const n=this.innerType.cast(e,Object.assign({},t,{path:`${t.path||""}[${s}]`}));return n!==e&&(r=!0),n}));return r?n:s}_validate(e,t={},s,r){var n;let i=this.innerType,a=null!=(n=t.recursive)?n:this.spec.recursive;null!=t.originalValue&&t.originalValue,super._validate(e,t,s,((n,o)=>{var l;if(!a||!i||!this._typeCheck(o))return void r(n,o);let u=new Array(o.length);for(let s=0;s<o.length;s++){var c;u[s]=i.asNestedTest({options:t,index:s,parent:o,parentPath:t.path,originalParent:null!=(c=t.originalValue)?c:e})}this.runTests({value:o,tests:u,originalValue:null!=(l=t.originalValue)?l:e,options:t},s,(e=>r(e.concat(n),o)))}))}clone(e){const t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(te)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!T(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+u(e));return t.innerType=e,t.spec=Object.assign({},t.spec,{types:e}),t}length(e,t=w.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(t){return t.length===this.resolve(e)}})}min(e,t){return t=t||w.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(t){return t.length>=this.resolve(e)}})}max(e,t){return t=t||w.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(t){return t.length<=this.resolve(e)}})}ensure(){return this.default((()=>[])).transform(((e,t)=>this._typeCheck(e)?e:null==t?[]:[].concat(t)))}compact(e){let t=e?(t,s,r)=>!e(t,s,r):e=>!!e;return this.transform((e=>null!=e?e.filter(t):e))}describe(e){const t=(e?this.resolve(e):this).clone(),s=super.describe(e);if(t.innerType){var r;let n=e;null!=(r=n)&&r.value&&(n=Object.assign({},n,{parent:n.value,value:n.value[0]})),s.innerType=t.innerType.describe(n)}return s}}function ce(e){return new pe(e)}function he(e){try{return e()}catch(e){if(y.isError(e))return Promise.reject(e);throw e}}le.prototype=ue.prototype;class pe{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this.spec=void 0,this._resolve=(e,t={})=>{let s=this.builder(e,t);if(!T(s))throw new TypeError("lazy() functions must return a valid schema");return this.spec.optional&&(s=s.optional()),s.resolve(t)},this.builder=e,this.spec={meta:void 0,optional:!1}}clone(e){const t=new pe(this.builder);return t.spec=Object.assign({},this.spec,e),t}optionality(e){return this.clone({optional:e})}optional(){return this.optionality(!0)}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}asNestedTest(e){let{key:t,index:s,parent:r,options:n}=e,i=r[null!=s?s:t];return this._resolve(i,Object.assign({},n,{value:i,parent:r})).asNestedTest(e)}validate(e,t){return he((()=>this._resolve(e,t).validate(e,t)))}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,s){return he((()=>this._resolve(t,s).validateAt(e,t,s)))}validateSyncAt(e,t,s){return this._resolve(t,s).validateSyncAt(e,t,s)}isValid(e,t){try{return this._resolve(e,t).isValid(e,t)}catch(e){if(y.isError(e))return Promise.resolve(!1);throw e}}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}describe(e){return e?this.resolve(e).describe(e):{type:"lazy",meta:this.spec.meta,label:void 0}}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}}export{ue as ArraySchema,I as BooleanSchema,W as DateSchema,pe as LazySchema,P as MixedSchema,oe as ObjectSchema,V as Schema,H as StringSchema,y as ValidationError,le as array,q as bool,q as boolean,A as getIn,T as isSchema,ce as lazy,z as mixed,ae as object,u as printValue,G as string};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as t,useEffect as i}from"react";import{useFormikContext as s}from"../../../node_modules/formik/dist/formik.esm.js";import{d as n}from"../../../_virtual/index.js";import o from"./InfoForm.module.scss.js";import r from"../../constants/regex.js";import l from"../Tooltip/Tooltip.js";import a from"../../assets/icons/DeleteIcon.svg.js";import c from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/deleteOutlinedIcon.svg.js";import m from"../SVGLoader/SVGLoader.js";import p from"../dialog/index.js";import{tagsTableHeaders as u}from"../../constants/index.js";import v from"../table/tags-table.js";const x=({readOnly:x})=>{var g,h,j,D,f;const[b,C]=t([]),[N,
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as t,useEffect as i}from"react";import{useFormikContext as s}from"../../../node_modules/formik/dist/formik.esm.js";import{d as n}from"../../../_virtual/index.js";import o from"./InfoForm.module.scss.js";import r from"../../constants/regex.js";import l from"../Tooltip/Tooltip.js";import a from"../../assets/icons/DeleteIcon.svg.js";import c from"../../assets/icons/EditIcon.svg.js";import d from"../../assets/icons/deleteOutlinedIcon.svg.js";import m from"../SVGLoader/SVGLoader.js";import p from"../dialog/index.js";import{tagsTableHeaders as u}from"../../constants/index.js";import v from"../table/tags-table.js";const x=({readOnly:x})=>{var g,h,j,D,f;const[b,C]=t([]),[N,y]=t(),[k,I]=t(""),[O,T]=t(""),[A,w]=t(""),{values:B,setFieldValue:S,errors:_}=s(),[z,E]=t({}),[L,V]=t({}),[F,P]=t(null),[W,R]=t(null),[q,$]=t(!1),[G,M]=t(!1);i((()=>{if(B&&B.components&&B.components.securitySchemes){const e=Object.keys(B.components.securitySchemes);e.length&&I(B.components.securitySchemes[e[0]].scheme||B.components.securitySchemes[e[0]].type)}}),[]),i((()=>{y(U(b))}),[b]),i((()=>{B.tags&&B.tags.length&&(y(U(B.tags)),C(B.tags))}),[B.tags]);const H=(e,t,i)=>{const s=b.map(((s,n)=>n===i?Object.assign(Object.assign({},s),{[e]:t}):s));C(s)},U=t=>t.map(((t,i)=>{var s,r,d,p,u,v,g,h,j,D,f;return{id:i,tagName:t.name,description:e.jsx("div",{className:o.paramDescContainer,children:e.jsx(l,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>V((t=>Object.assign(Object.assign({},t),{[i]:e}))),content:e.jsxs("div",{className:o.editDescTooltipContent,children:[e.jsx("p",{className:o.editDescTooltipContent_header,children:"Description"}),e.jsx(n.TextArea,{placeholder:"Describe parameter...",value:t.description,disabled:x,onChange:e=>H("description",e,i)}),!x&&e.jsx(n.Button,{className:o.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;S(`tags[${i}].description`,t.description),null===(e=L[i])||void 0===e||e.hide()},children:"Apply"})]}),children:x||B.tags[i].description?e.jsxs(n.Button,{className:o.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),children:[B.tags[i].description?B.tags[i].description.substring(0,12):"-",B.tags[i].description&&B.tags[i].description.length>12?"...":""]}):e.jsx(n.Button,{className:o.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),children:x||B.tags[i].description?"View Description":"Add Description"})})}),externalDocs:e.jsxs("div",{className:o.paramDescContainer,children:[e.jsx(l,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>E((t=>Object.assign(Object.assign({},t),{[i]:e}))),content:e.jsxs("div",{className:o.editDescTooltipContent,children:[e.jsx("p",{className:o.editDescTooltipContent_header,children:"External Docs Description"}),e.jsx(n.TextArea,{placeholder:"Describe External Doc...",value:null===(s=t.externalDocs)||void 0===s?void 0:s.description,disabled:x,onChange:e=>{H("externalDocs",Object.assign(Object.assign({},t.externalDocs),{description:e}),i),T(e)}}),e.jsx("p",{className:o.editDescTooltipContent_header,children:"External Docs Link"}),e.jsx(n.TextArea,{placeholder:"External Docs Link...",value:null===(r=t.externalDocs)||void 0===r?void 0:r.url,disabled:x,onChange:e=>{H("externalDocs",Object.assign(Object.assign({},t.externalDocs),{url:e}),i),w(e)}}),!x&&e.jsx(n.Button,{className:o.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;S(`tags[${i}].externalDocs`,{description:O,url:A}),T(""),w(""),null===(e=z[i])||void 0===e||e.hide()},children:"Apply"})]}),children:x||(null===(d=B.tags[i].externalDocs)||void 0===d?void 0:d.description)?e.jsxs(n.Button,{className:o.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),onClick:()=>{var e,i;T(null===(e=t.externalDocs)||void 0===e?void 0:e.description),w(null===(i=t.externalDocs)||void 0===i?void 0:i.url)},children:[(null===(p=B.tags[i].externalDocs)||void 0===p?void 0:p.description)?null===(v=null===(u=B.tags[i].externalDocs)||void 0===u?void 0:u.description)||void 0===v?void 0:v.substring(0,12):"-",(null===(g=B.tags[i].externalDocs)||void 0===g?void 0:g.description)&&(null===(j=null===(h=B.tags[i].externalDocs)||void 0===h?void 0:h.description)||void 0===j?void 0:j.length)>12?"...":""]}):e.jsxs(n.Button,{className:o.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(m,{src:c,width:"1.5rem",height:"1.5rem"}),onClick:()=>{var e,i;T(null===(e=t.externalDocs)||void 0===e?void 0:e.description),w(null===(i=t.externalDocs)||void 0===i?void 0:i.url)},children:[x||t.externalDocs&&((null===(D=t.externalDocs)||void 0===D?void 0:D.url)||(null===(f=t.externalDocs)||void 0===f?void 0:f.description))?"View ":"Add "," ","External Docs Link"]})}),!x&&e.jsx("div",{className:o.paramDescContainer_separator}),!x&&e.jsx(n.Button,{className:o.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(m,{src:a,width:"1.125rem",height:"1.125rem"}),onClick:()=>{return e=i,s=t.name,P(e),R(s),void $(!0);var e,s}})]})}}));return e.jsxs("form",{className:o.apiInfoForm,onSubmit:e=>e.preventDefault(),children:[e.jsx(n.Input,{size:"large",placeholder:"e.g. Payments",label:"API Name",required:!0,value:null===(g=null==B?void 0:B.info)||void 0===g?void 0:g.title,maxLength:25,onChange:e=>{S("info.title",e)},onClear:()=>{S("info.title","")},errorMsg:null===(h=null==_?void 0:_.info)||void 0===h?void 0:h.title,restrictedCharsRegex:r.basic}),e.jsxs("div",{className:o.apiDocRow,children:[e.jsx(n.Input,{size:"large",label:"API Authentication Type",required:!0,value:(Y=k,Y?Y.charAt(0).toUpperCase()+Y.slice(1):""),disabled:!0}),e.jsx(n.Input,{size:"large",label:"Version",required:!0,value:null===(j=null==B?void 0:B.info)||void 0===j?void 0:j.version,disabled:!0})]}),e.jsx(n.TextArea,{size:"large",placeholder:"Enter a description of the API's functionality...",label:"Description",value:null===(D=null==B?void 0:B.info)||void 0===D?void 0:D.description,maxLength:120,onChange:e=>{S("info.description",e)},onClear:()=>{S("info.description","")},errorMessage:null===(f=null==_?void 0:_.info)||void 0===f?void 0:f.description,restrictedCharsRegex:r.restrictNone}),e.jsx("div",{className:o.paramsTable,children:e.jsx(v,{id:"paramter-table",data:N,headCells:u,isFormOpen:G,setIsFormOpen:M,saveNewRow:e=>{C([...b,e]);const t=B.tags||[];S("tags",[...t,e])},readOnly:x})}),e.jsx(p,{status:"error",content:e.jsxs("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container",children:["Are you sure you want to delete",e.jsx("span",{className:"plan-name",children:` Tag ${W} `}),"?"]}),onSubmit:{onClick:()=>{var e;null!==F&&(C((e=>e.filter(((e,t)=>t!==F)))),S("tags",null===(e=B.tags)||void 0===e?void 0:e.filter(((e,t)=>t!==F)))),$(!1),P(null)},text:"Yes",color:"error",fullWidth:!0},onCancel:{text:"No",color:"normal",fullWidth:!0},onClose:()=>$(!1),open:q,icon:e.jsx(m,{src:d,width:"4.0625rem",height:"4.0625rem"})})]});var Y};export{x as default};
|
|
2
2
|
//# sourceMappingURL=InfoForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\n// @ts-ignore\r\nimport { useFormikContext } from 'formik'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport styles from './InfoForm.module.scss'\r\nimport regex from '../../constants/regex'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport CommonDialog from '../../components/dialog'\r\nimport { tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../../components/table/tags-table'\r\n\r\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\r\n const [tableData, setTableData] = useState([])\r\n const [tableRecords, setTableRecords] = useState()\r\n const [authType, setAuthType] = useState('')\r\n const [description, setDescription] = useState('')\r\n const [url, setURL] = useState('')\r\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\r\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n\r\n useEffect(() => {\r\n if (values && values.components && values.components.securitySchemes) {\r\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\r\n if (authenticatorKeys.length) {\r\n setAuthType(values.components.securitySchemes[authenticatorKeys[0]].scheme)\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableRecords(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (values.tags && values.tags.length) {\r\n setTableRecords(generateTableRecords(values.tags))\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const confirmDeleteTag = () => {\r\n if (selectedTagIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\r\n setFieldValue(\r\n `tags`,\r\n values.tags?.filter((_, i) => i !== selectedTagIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedTagIndex(null)\r\n }\r\n\r\n const capitalize = (str) => {\r\n if (!str) return ''\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n }\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const saveNewRow = (tag) => {\r\n setTableData([...tableData, tag])\r\n const oldTags = values.tags || []\r\n setFieldValue(`tags`, [...oldTags, tag])\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedTagIndex(id)\r\n setSelectedTagName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const generateTableRecords = (items) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => onTableChange('description', value, index)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`tags[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || values.tags[index].description ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {values.tags[index].description\r\n ? values.tags[index].description.substring(0, 12)\r\n : '-'}\r\n {values.tags[index].description && values.tags[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly || values.tags[index].description\r\n ? 'View Description'\r\n : 'Add Description'}\r\n </Button>\r\n )}\r\n </Tooltip>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setExternalTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={item.externalDocs?.description}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n onTableChange(\r\n 'externalDocs',\r\n { ...item.externalDocs, description: value },\r\n index\r\n )\r\n setDescription(value)\r\n }}\r\n />\r\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={item.externalDocs?.url}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\r\n setURL(value)\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`tags[${index}].externalDocs`, {\r\n description: description,\r\n url: url,\r\n })\r\n setDescription('')\r\n setURL('')\r\n externalTooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || values.tags[index].externalDocs?.description ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n onClick={() => {\r\n setDescription(item.externalDocs?.description)\r\n setURL(item.externalDocs?.url)\r\n }}\r\n >\r\n {values.tags[index].externalDocs?.description\r\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {values.tags[index].externalDocs?.description &&\r\n values.tags[index].externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n onClick={() => {\r\n setDescription(item.externalDocs?.description)\r\n setURL(item.externalDocs?.url)\r\n }}\r\n >\r\n {readOnly ||\r\n (item.externalDocs && (item.externalDocs?.url || item.externalDocs?.description))\r\n ? 'View '\r\n : 'Add '}{' '}\r\n External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n\r\n return (\r\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\r\n <Input\r\n size=\"large\"\r\n placeholder=\"e.g. Payments\"\r\n label=\"API Name\"\r\n required\r\n value={values?.info?.title}\r\n maxLength={25}\r\n onChange={(value) => {\r\n setFieldValue('info.title', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.title', '')\r\n }}\r\n errorMsg={errors?.info?.title}\r\n restrictedCharsRegex={regex.basic}\r\n />\r\n <div className={styles.apiDocRow}>\r\n <Input\r\n size=\"large\"\r\n label=\"API Authentication Type\"\r\n required\r\n value={capitalize(authType)}\r\n disabled\r\n />\r\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\r\n </div>\r\n <TextArea\r\n size=\"large\"\r\n placeholder=\"Enter a description of the API's functionality...\"\r\n label=\"Description\"\r\n value={values?.info?.description}\r\n maxLength={120}\r\n onChange={(value: string) => {\r\n setFieldValue('info.description', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.description', '')\r\n }}\r\n errorMessage={errors?.info?.description}\r\n restrictedCharsRegex={regex.restrictNone}\r\n />\r\n <div className={styles.paramsTable}>\r\n <TagsTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">{` Tag ${selectedTagName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteTag,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </form>\r\n )\r\n}\r\n\r\nexport default InfoForm\r\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","scheme","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsx","className","styles","paramDescContainer","children","Tooltip","arrowWithBorder","placement","type","trigger","delay","onCreate","instance","prev","content","_jsxs","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","onClick","_a","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","substring","jsx","externalDocs","_b","_c","_d","_f","_e","_j","_h","_k","_l","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","e","preventDefault","Input","label","required","info","title","maxLength","onClear","errorMsg","restrictedCharsRegex","regex","basic","apiDocRow","str","charAt","toUpperCase","slice","version","errorMessage","restrictNone","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","style","textAlign","fontWeight","fontSize","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InfoForm.js","sources":["../../../../src/components/InfoForm/InfoForm.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\n// @ts-ignore\r\nimport { useFormikContext } from 'formik'\r\nimport { Button, Input, TextArea } from 'digitinary-ui'\r\nimport styles from './InfoForm.module.scss'\r\nimport regex from '../../constants/regex'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { DeleteIcon, deleteOutlinedIcon, EditIcon } from '../../assets/icons'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport CommonDialog from '../../components/dialog'\r\nimport { tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../../components/table/tags-table'\r\n\r\nconst InfoForm = ({ readOnly }: { readOnly?: boolean }) => {\r\n const [tableData, setTableData] = useState([])\r\n const [tableRecords, setTableRecords] = useState()\r\n const [authType, setAuthType] = useState('')\r\n const [description, setDescription] = useState('')\r\n const [url, setURL] = useState('')\r\n const { values, setFieldValue, errors } = useFormikContext<TransformedOpenApi>()\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [selectedTagIndex, setSelectedTagIndex] = useState<number | null>(null)\r\n const [selectedTagName, setSelectedTagName] = useState<string | null>(null)\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n\r\n useEffect(() => {\r\n if (values && values.components && values.components.securitySchemes) {\r\n const authenticatorKeys = Object.keys(values.components.securitySchemes)\r\n if (authenticatorKeys.length) {\r\n setAuthType(\r\n values.components.securitySchemes[authenticatorKeys[0]].scheme ||\r\n values.components.securitySchemes[authenticatorKeys[0]].type\r\n )\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableRecords(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (values.tags && values.tags.length) {\r\n setTableRecords(generateTableRecords(values.tags))\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const confirmDeleteTag = () => {\r\n if (selectedTagIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedTagIndex))\r\n setFieldValue(\r\n `tags`,\r\n values.tags?.filter((_, i) => i !== selectedTagIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedTagIndex(null)\r\n }\r\n\r\n const capitalize = (str) => {\r\n if (!str) return ''\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n }\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const saveNewRow = (tag) => {\r\n setTableData([...tableData, tag])\r\n const oldTags = values.tags || []\r\n setFieldValue(`tags`, [...oldTags, tag])\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedTagIndex(id)\r\n setSelectedTagName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const generateTableRecords = (items) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => onTableChange('description', value, index)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`tags[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || values.tags[index].description ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {values.tags[index].description\r\n ? values.tags[index].description.substring(0, 12)\r\n : '-'}\r\n {values.tags[index].description && values.tags[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly || values.tags[index].description\r\n ? 'View Description'\r\n : 'Add Description'}\r\n </Button>\r\n )}\r\n </Tooltip>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setExternalTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>External Docs Description</p>\r\n <TextArea\r\n placeholder=\"Describe External Doc...\"\r\n value={item.externalDocs?.description}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n onTableChange(\r\n 'externalDocs',\r\n { ...item.externalDocs, description: value },\r\n index\r\n )\r\n setDescription(value)\r\n }}\r\n />\r\n <p className={styles.editDescTooltipContent_header}>External Docs Link</p>\r\n <TextArea\r\n placeholder=\"External Docs Link...\"\r\n value={item.externalDocs?.url}\r\n disabled={readOnly}\r\n onChange={(value) => {\r\n onTableChange('externalDocs', { ...item.externalDocs, url: value }, index)\r\n setURL(value)\r\n }}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`tags[${index}].externalDocs`, {\r\n description: description,\r\n url: url,\r\n })\r\n setDescription('')\r\n setURL('')\r\n externalTooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || values.tags[index].externalDocs?.description ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n onClick={() => {\r\n setDescription(item.externalDocs?.description)\r\n setURL(item.externalDocs?.url)\r\n }}\r\n >\r\n {values.tags[index].externalDocs?.description\r\n ? values.tags[index].externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {values.tags[index].externalDocs?.description &&\r\n values.tags[index].externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n onClick={() => {\r\n setDescription(item.externalDocs?.description)\r\n setURL(item.externalDocs?.url)\r\n }}\r\n >\r\n {readOnly ||\r\n (item.externalDocs && (item.externalDocs?.url || item.externalDocs?.description))\r\n ? 'View '\r\n : 'Add '}{' '}\r\n External Docs Link\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n\r\n return (\r\n <form className={styles.apiInfoForm} onSubmit={(e) => e.preventDefault()}>\r\n <Input\r\n size=\"large\"\r\n placeholder=\"e.g. Payments\"\r\n label=\"API Name\"\r\n required\r\n value={values?.info?.title}\r\n maxLength={25}\r\n onChange={(value) => {\r\n setFieldValue('info.title', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.title', '')\r\n }}\r\n errorMsg={errors?.info?.title}\r\n restrictedCharsRegex={regex.basic}\r\n />\r\n <div className={styles.apiDocRow}>\r\n <Input\r\n size=\"large\"\r\n label=\"API Authentication Type\"\r\n required\r\n value={capitalize(authType)}\r\n disabled\r\n />\r\n <Input size=\"large\" label=\"Version\" required value={values?.info?.version} disabled />\r\n </div>\r\n <TextArea\r\n size=\"large\"\r\n placeholder=\"Enter a description of the API's functionality...\"\r\n label=\"Description\"\r\n value={values?.info?.description}\r\n maxLength={120}\r\n onChange={(value: string) => {\r\n setFieldValue('info.description', value)\r\n }}\r\n onClear={() => {\r\n setFieldValue('info.description', '')\r\n }}\r\n errorMessage={errors?.info?.description}\r\n restrictedCharsRegex={regex.restrictNone}\r\n />\r\n <div className={styles.paramsTable}>\r\n <TagsTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">{` Tag ${selectedTagName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteTag,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </form>\r\n )\r\n}\r\n\r\nexport default InfoForm\r\n"],"names":["InfoForm","readOnly","tableData","setTableData","useState","tableRecords","setTableRecords","authType","setAuthType","description","setDescription","url","setURL","values","setFieldValue","errors","useFormikContext","externalTooltipRefs","setExternalTooltipRefs","tooltipRefs","setTooltipRefs","selectedTagIndex","setSelectedTagIndex","selectedTagName","setSelectedTagName","openDeleteDialog","setOpenDeleteDialog","isFormOpen","setIsFormOpen","useEffect","components","securitySchemes","authenticatorKeys","Object","keys","length","scheme","type","generateTableRecords","tags","onTableChange","key","value","index","newTableData","map","item","tIndex","assign","items","id","tagName","name","_jsx","className","styles","paramDescContainer","children","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","prev","content","_jsxs","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","onClick","_a","hide","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","substring","jsx","externalDocs","_b","_c","_d","_f","_e","_j","_h","_k","_l","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","apiInfoForm","onSubmit","e","preventDefault","Input","label","required","info","title","maxLength","onClear","errorMsg","restrictedCharsRegex","regex","basic","apiDocRow","str","charAt","toUpperCase","slice","version","errorMessage","restrictNone","paramsTable","TagsTable","data","headCells","tagsTableHeaders","saveNewRow","tag","oldTags","CommonDialog","status","style","textAlign","fontWeight","fontSize","lineHeight","filter","_","i","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as o}from"react";import i from"./LivePreview.module.scss.js";import l from"../SimpleLabelValue/SimpleLabelValue.js";import t from"../MethodAccordion/MethodAccordion.js";import{useFormikContext as n}from"../../../node_modules/formik/dist/formik.esm.js";import{tagsTableHeaders as r,methodColorMapping as a}from"../../constants/index.js";import d from"../table/tags-table.js";import{d as c}from"../../../_virtual/index.js";const v=({transformedData:v})=>{const[u,m]=s();s({});const[p,x]=s([]);s({});const{values:h}=n(),{info:j,components:D,tags:g}=h,{securitySchemes:f}=D,b=f&&"object"==typeof f&&Object.keys(f).length?Object.keys(f)[0]:null;o((()=>{h.tags&&(m(N(h.tags,!0)),x(h.tags))}),[h.tags]);const N=(s,o)=>s.map(((s,l)=>{var t,n,r,a,d,v,u,m,p,x,h,j,D,g;return{id:l,tagName:s.name,description:e.jsx("div",{className:i.paramDescContainer,children:e.jsxs(c.Button,{className:i.editDescBtn,variant:"link",color:"action",children:[s.description?s.description.substring(0,12):"-",s.description&&s.description.length>12?"...":""]})}),externalDocs:e.jsxs("div",{className:i.paramDescContainer,children:[s.externalDocs&&s.externalDocs.url&&"-"!=s.externalDocs.url?e.jsxs("a",{className:i.editDescBtn,href:(null===(t=s.externalDocs)||void 0===t?void 0:t.url)&&(null===(n=s.externalDocs)||void 0===n?void 0:n.url.indexOf("http"))>-1?null===(r=s.externalDocs)||void 0===r?void 0:r.url:`https://${null===(a=s.externalDocs)||void 0===a?void 0:a.url}`,rel:"noopener noreferrer",target:"_blank",children:[(null===(d=null==s?void 0:s.externalDocs)||void 0===d?void 0:d.description)?null===(u=null===(v=null==s?void 0:s.externalDocs)||void 0===v?void 0:v.description)||void 0===u?void 0:u.substring(0,12):"-",(null===(m=null==s?void 0:s.externalDocs)||void 0===m?void 0:m.description)&&(null===(x=null===(p=null==s?void 0:s.externalDocs)||void 0===p?void 0:p.description)||void 0===x?void 0:x.length)>12?"...":""]}):e.jsxs(c.Button,{className:i.editDescBtn,variant:"link",color:"action",children:[(null===(h=s.externalDocs)||void 0===h?void 0:h.description)?null===(j=s.externalDocs)||void 0===j?void 0:j.description.substring(0,12):"-",(null===(D=s.externalDocs)||void 0===D?void 0:D.description)&&(null===(g=s.externalDocs)||void 0===g?void 0:g.description.length)>12?"...":""]}),!o&&e.jsx("div",{className:i.paramDescContainer_separator}),!o&&e.jsx(c.Button,{className:i.deleteParamBtn,variant:"link",color:"error",onClick:()=>null})]})}}));return e.jsx("div",{children:e.jsx("div",{className:"row",children:e.jsxs("div",{className:"col-md-12",children:[e.jsx("p",{className:i.apiName,children:null==j?void 0:j.title}),e.jsx(l,{label:"API authentication type: ",value:b?f[b].scheme:"-"},"APIAuthenticationType"),e.jsx(l,{label:"Version: ",value:(null==j?void 0:j.version)||"-"},"version"),e.jsx(l,{label:"Description: ",value:(null==j?void 0:j.description)||"-"},"description"),e.jsx(l,{label:"Tags: "},"tags"),e.jsx(d,{id:"tags-table",data:u,headCells:r,isFormOpen:!1,setIsFormOpen:()=>null,saveNewRow:()=>null,readOnly:!0}),e.jsx(l,{label:"Endpoints "},"endpoints"),h.paths.map((s=>e.jsx("div",{className:i.methodsContainer,children:Object.entries(s.methods.sort(((e,s)=>a[e.type].order+a[s.type].order)).reduce(((e,s)=>{var o;return((null===(o=s.tags)||void 0===o?void 0:o.length)?null==s?void 0:s.tags:["default"]).forEach((o=>{e[o]||(e[o]=[]),e[o].push(s)})),e}),{})).map((([o,i])=>e.jsxs("div",{children:[e.jsx("h3",{children:o}),null==i?void 0:i.map(((o,i)=>e.jsx(t,{readOnly:!0,method:o,path:s.path,tags:h.tags})))]},o)))},s.path)))]})})})};export{v as default};
|
|
2
2
|
//# sourceMappingURL=LivePreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport styles from './LivePreview.module.scss'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport { useFormikContext } from 'formik'\r\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../table/tags-table'\r\nimport { Button } from 'digitinary-ui'\r\n\r\ninterface LivePreviewProps {\r\n transformedData?: TransformedOpenApi\r\n}\r\n\r\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {\r\n const [tableRecords, setTableRecords] = useState()\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const { values } = useFormikContext<TransformedOpenApi>()\r\n const { info, components, tags } = values\r\n const { securitySchemes } = components\r\n const securityKey =\r\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\r\n ? Object.keys(securitySchemes)[0]\r\n : null\r\n\r\n useEffect(() => {\r\n if (values.tags) {\r\n setTableRecords(generateTableData(values.tags, true))\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const generateTableData = (items, readOnly) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\r\n </Button>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\r\n <a\r\n className={styles.editDescBtn}\r\n href={\r\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\r\n ? item.externalDocs?.url\r\n : `https://${item.externalDocs?.url}`\r\n }\r\n rel=\"noopener noreferrer\"\r\n target=\"_blank\"\r\n >\r\n {item?.externalDocs?.description\r\n ? item?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </a>\r\n ) : (\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.externalDocs?.description\r\n ? item.externalDocs?.description.substring(0, 12)\r\n : '-'}\r\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n )}\r\n\r\n {/* </Tooltip> */}\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n onClick={() => null}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n return (\r\n <div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <p className={styles.apiName}>{info?.title}</p>\r\n <SimpleLabelValue\r\n key={'APIAuthenticationType'}\r\n label={'API authentication type: '}\r\n value={!!securityKey ? securitySchemes[securityKey].scheme : '-'}\r\n />\r\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={info?.description || '-'}\r\n />\r\n\r\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\r\n <TagsTable\r\n id=\"tags-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={false}\r\n setIsFormOpen={() => null}\r\n saveNewRow={() => null}\r\n readOnly={true}\r\n />\r\n\r\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\r\n {values.paths.map((path) => (\r\n <div className={styles.methodsContainer} key={path.path}>\r\n {Object.entries(\r\n path.methods\r\n .sort((a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order)\r\n .reduce((groupedMethods, method) => {\r\n // Handle methods without tags\r\n const tags = method.tags?.length ? method?.tags : ['default'];\r\n \r\n tags.forEach((tag) => {\r\n if (!groupedMethods[tag]) {\r\n groupedMethods[tag] = [];\r\n }\r\n groupedMethods[tag].push(method);\r\n });\r\n \r\n return groupedMethods;\r\n }, {})\r\n ).map(([tag, methods]) => (\r\n <div key={tag}>\r\n <h3>{tag}</h3>\r\n {methods?.map((method, methodIndex) => (\r\n <MethodsAccordion\r\n readOnly\r\n method={method}\r\n path={path.path}\r\n tags={values.tags}\r\n handleSave={() => null}\r\n />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default LivePreview\r\n"],"names":["LivePreview","transformedData","tableRecords","setTableRecords","useState","tableData","setTableData","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","length","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","className","styles","paramDescContainer","children","_jsxs","jsxs","Button","editDescBtn","variant","color","substring","externalDocs","url","href","_a","_b","indexOf","_c","_d","rel","target","_e","_g","_f","_h","_k","_j","_l","_m","_o","_p","paramDescContainer_separator","deleteParamBtn","onClick","apiName","title","SimpleLabelValue","label","value","scheme","version","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","paths","path","methodsContainer","entries","methods","sort","a","b","methodColorMapping","type","order","reduce","groupedMethods","method","forEach","tag","push","methodIndex","MethodsAccordion","handleSave"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LivePreview.js","sources":["../../../../src/components/LivePreview/LivePreview.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport styles from './LivePreview.module.scss'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport MethodsAccordion from '../../components/MethodAccordion/MethodAccordion'\r\nimport { TransformedOpenApi } from '../../types/transformedOpenApi'\r\nimport { useFormikContext } from 'formik'\r\nimport { methodColorMapping, tagsTableHeaders } from '../../constants/index'\r\nimport TagsTable from '../table/tags-table'\r\nimport { Button } from 'digitinary-ui'\r\n\r\ninterface LivePreviewProps {\r\n transformedData?: TransformedOpenApi\r\n}\r\n\r\nconst LivePreview: React.FC<LivePreviewProps> = ({ transformedData }) => {\r\n const [tableRecords, setTableRecords] = useState()\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [externalTooltipRefs, setExternalTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const { values } = useFormikContext<TransformedOpenApi>()\r\n const { info, components, tags } = values\r\n const { securitySchemes } = components\r\n const securityKey =\r\n securitySchemes && typeof securitySchemes == 'object' && Object.keys(securitySchemes).length\r\n ? Object.keys(securitySchemes)[0]\r\n : null\r\n\r\n useEffect(() => {\r\n if (values.tags) {\r\n setTableRecords(generateTableData(values.tags, true))\r\n setTableData(values.tags)\r\n }\r\n }, [values.tags])\r\n\r\n const generateTableData = (items, readOnly) => {\r\n return items.map((item, index) => ({\r\n id: index,\r\n tagName: item.name,\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.description ? item.description.substring(0, 12) : '-'}\r\n {item.description && item.description.length > 12 ? '...' : ''}\r\n </Button>\r\n </div>\r\n ),\r\n externalDocs: (\r\n <div className={styles.paramDescContainer}>\r\n {item.externalDocs && item.externalDocs.url && item.externalDocs.url != '-' ? (\r\n <a\r\n className={styles.editDescBtn}\r\n href={\r\n item.externalDocs?.url && item.externalDocs?.url.indexOf('http') > -1\r\n ? item.externalDocs?.url\r\n : `https://${item.externalDocs?.url}`\r\n }\r\n rel=\"noopener noreferrer\"\r\n target=\"_blank\"\r\n >\r\n {item?.externalDocs?.description\r\n ? item?.externalDocs?.description?.substring(0, 12)\r\n : '-'}\r\n {item?.externalDocs?.description && item?.externalDocs?.description?.length > 12\r\n ? '...'\r\n : ''}\r\n </a>\r\n ) : (\r\n <Button className={styles.editDescBtn} variant=\"link\" color=\"action\">\r\n {item.externalDocs?.description\r\n ? item.externalDocs?.description.substring(0, 12)\r\n : '-'}\r\n {item.externalDocs?.description && item.externalDocs?.description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n )}\r\n\r\n {/* </Tooltip> */}\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n onClick={() => null}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }))\r\n }\r\n return (\r\n <div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <p className={styles.apiName}>{info?.title}</p>\r\n <SimpleLabelValue\r\n key={'APIAuthenticationType'}\r\n label={'API authentication type: '}\r\n value={!!securityKey ? securitySchemes[securityKey].scheme : '-'}\r\n />\r\n <SimpleLabelValue key={'version'} label={'Version: '} value={info?.version || '-'} />\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={info?.description || '-'}\r\n />\r\n\r\n <SimpleLabelValue key={'tags'} label={'Tags: '} />\r\n <TagsTable\r\n id=\"tags-table\"\r\n data={tableRecords}\r\n headCells={tagsTableHeaders}\r\n isFormOpen={false}\r\n setIsFormOpen={() => null}\r\n saveNewRow={() => null}\r\n readOnly={true}\r\n />\r\n\r\n <SimpleLabelValue key={'endpoints'} label={'Endpoints '} />\r\n {values.paths.map((path) => (\r\n <div className={styles.methodsContainer} key={path.path}>\r\n {Object.entries(\r\n path.methods\r\n .sort((a, b) => methodColorMapping[a.type].order + methodColorMapping[b.type].order)\r\n .reduce((groupedMethods, method) => {\r\n // Handle methods without tags\r\n const tags = method.tags?.length ? method?.tags : ['default'];\r\n \r\n tags.forEach((tag) => {\r\n if (!groupedMethods[tag]) {\r\n groupedMethods[tag] = [];\r\n }\r\n groupedMethods[tag].push(method);\r\n });\r\n \r\n return groupedMethods;\r\n }, {})\r\n ).map(([tag, methods]) => (\r\n <div key={tag}>\r\n <h3>{tag}</h3>\r\n {methods?.map((method, methodIndex) => (\r\n <MethodsAccordion\r\n readOnly\r\n method={method}\r\n path={path.path}\r\n tags={values.tags}\r\n />\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default LivePreview\r\n"],"names":["LivePreview","transformedData","tableRecords","setTableRecords","useState","tableData","setTableData","values","useFormikContext","info","components","tags","securitySchemes","securityKey","Object","keys","length","useEffect","generateTableData","items","readOnly","map","item","index","id","tagName","name","description","_jsx","jsx","className","styles","paramDescContainer","children","_jsxs","jsxs","Button","editDescBtn","variant","color","substring","externalDocs","url","href","_a","_b","indexOf","_c","_d","rel","target","_e","_g","_f","_h","_k","_j","_l","_m","_o","_p","paramDescContainer_separator","deleteParamBtn","onClick","apiName","title","SimpleLabelValue","label","value","scheme","version","TagsTable","data","headCells","tagsTableHeaders","isFormOpen","setIsFormOpen","saveNewRow","paths","path","methodsContainer","entries","methods","sort","a","b","methodColorMapping","type","order","reduce","groupedMethods","method","forEach","tag","push","methodIndex","MethodsAccordion"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as r}from"react";import{d as o}from"../../../_virtual/index.js";import n from"../SVGLoader/SVGLoader.js";import a from"../../assets/icons/DownArrow.svg.js";import t from"../../assets/icons/DeleteIcon.svg.js";import i from"../../assets/icons/EditIcon.svg.js";import l from"../../assets/icons/deleteOutlinedIcon.svg.js";import{httpStatusCodes as d,methodColorMapping as c,paramsTableHeaders as m}from"../../constants/index.js";import p from"../Tooltip/Tooltip.js";import u from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as h,capitalize as v}from"../../helpers/methodAccordion.helper.js";import j from"../table/table.js";import x from"../dialog/index.js";import g from"../JsonInput/JsonInput.js";import b from"./MethodAccordion.module.scss.js";const y=d.map((s=>({label:e.jsxs("div",{className:b.statusCodeOptionContainer,children:[e.jsx("div",{className:b.statusCodeOptionCircle,style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s}))),N=({method:d,path:h,setFieldValue:N,readOnly:C,tags:f})=>{var A,S,w,D,O,q,T,k;const[I,B]=s({request:!1,response:!1,method:!1}),[F,V]=s(!1),[$,_]=s({}),[L,E]=s([]),[G,J]=s(!1),[W,M]=s(null),[P,R]=s(null),[z,H]=s(),[Y,K]=s([]),[Q,U]=s(y[4]),X=d.responses.find((e=>Number(e.code)===Q.value))||"{}",Z=(e,s,r)=>{const o=L.map(((o,n)=>n===r?Object.assign(Object.assign({},o),{[e]:s}):o));E(o)},ee=s=>s.map(((s,r)=>{var a,l;return{id:r,paramName:s.name,paramType:v(s.in),schemaType:v(null===(a=s.schema)||void 0===a?void 0:a.type)||"",required:e.jsx(e.Fragment,{children:C?s.required?"True":"False":e.jsx(o.Switch,{checked:s.required,onClick:()=>{if(C)return null;Z("required",!s.required,r),N(`parameters[${r}][required]`,!s.required)}})}),description:e.jsxs("div",{className:b.paramDescContainer,children:[e.jsx(p,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>_((s=>Object.assign(Object.assign({},s),{[r]:e}))),content:e.jsxs("div",{className:b.editDescTooltipContent,children:[e.jsx("p",{className:b.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:C,onChange:e=>Z("description",e,r)}),!C&&e.jsx(o.Button,{className:b.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;N(`parameters[${r}].description`,s.description),null===(e=$[r])||void 0===e||e.hide()},children:"Apply"})]}),children:C||(null===(l=d.parameters[r].description)||void 0===l?void 0:l.length)>0?e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:i,width:"1.5rem",height:"1.5rem"}),children:[d.parameters[r].description?d.parameters[r].description.substring(0,12):"-",d.parameters[r].description&&d.parameters[r].description.length>12?"...":""]}):e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:i,width:"1.5rem",height:"1.5rem"}),children:[C?"View ":"Add "," Description"]})}),!C&&e.jsx("div",{className:b.paramDescContainer_separator}),!C&&e.jsx(o.Button,{className:b.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:t,width:"1.125rem",height:"1.125rem"}),onClick:()=>se(r,s.name)})]})}})),se=(e,s)=>{M(e),R(s),J(!0)};return r((()=>{H(ee(L))}),[L]),r((()=>{(null==d?void 0:d.parameters)&&(H(ee(d.parameters)),E(d.parameters))}),[d,h]),r((()=>{var e;if(!Y.length){const s=[...null===(e=(null==d?void 0:d.tags)||[])||void 0===e?void 0:e.map((e=>({label:v(e),value:e}))),...(f||[]).map((e=>({label:v(e.name),value:e.name})))].filter(((e,s,r)=>s===r.findIndex((s=>s.value===e.value))));K(s)}}),[f,d]),e.jsxs("div",{children:[e.jsx(o.Accordion,{expanded:I.method,onChange:()=>B((e=>Object.assign(Object.assign({},e),{method:!e.method}))),className:`${b.methodAccordion} ${C?b.readOnly:""}`,summary:e.jsxs("div",{className:b.methodSummaryContainer,children:[e.jsxs("div",{className:b.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(A=null==c?void 0:c[null==d?void 0:d.type])||void 0===A?void 0:A.color)||"#3A6CD1"},className:b.methodLabel,children:(null===(S=null==c?void 0:c[null==d?void 0:d.type])||void 0===S?void 0:S.label)||(null==d?void 0:d.type)}),e.jsx("span",{className:b.methodPath,children:h})]}),e.jsx("div",{className:`${b.methodExpandArrowContainer} ${I.method?b.expanded:""}`,children:e.jsx(n,{src:a,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:b.methodAccordionContent,children:[e.jsx(o.SelectGroup,{className:b.methodDesc,disabled:C,placeholder:"Select Tags",label:"Tags",value:null===(w=d.tags)||void 0===w?void 0:w.map((e=>({label:v(e),value:e}))),onChange:e=>{N("tags",e.map((e=>e.value)))},options:[{list:Y}],isMultiple:!0,withSearch:!1,clearable:!1}),
|
|
1
|
+
import{j as e}from"../../../_virtual/jsx-runtime.js";import{useState as s,useEffect as r}from"react";import{d as o}from"../../../_virtual/index.js";import n from"../SVGLoader/SVGLoader.js";import a from"../../assets/icons/DownArrow.svg.js";import t from"../../assets/icons/DeleteIcon.svg.js";import i from"../../assets/icons/EditIcon.svg.js";import l from"../../assets/icons/deleteOutlinedIcon.svg.js";import{httpStatusCodes as d,methodColorMapping as c,paramsTableHeaders as m}from"../../constants/index.js";import p from"../Tooltip/Tooltip.js";import u from"../SimpleLabelValue/SimpleLabelValue.js";import{handleStatusColor as h,capitalize as v}from"../../helpers/methodAccordion.helper.js";import j from"../table/table.js";import x from"../dialog/index.js";import g from"../JsonInput/JsonInput.js";import b from"./MethodAccordion.module.scss.js";const y=d.map((s=>({label:e.jsxs("div",{className:b.statusCodeOptionContainer,children:[e.jsx("div",{className:b.statusCodeOptionCircle,style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s}))),N=({method:d,path:h,setFieldValue:N,readOnly:C,tags:f})=>{var A,S,w,D,O,q,T,k;const[I,B]=s({request:!1,response:!1,method:!1}),[F,V]=s(!1),[$,_]=s({}),[L,E]=s([]),[G,J]=s(!1),[W,M]=s(null),[P,R]=s(null),[z,H]=s(),[Y,K]=s([]),[Q,U]=s(y[4]),X=d.responses.find((e=>Number(e.code)===Q.value))||"{}",Z=(e,s,r)=>{const o=L.map(((o,n)=>n===r?Object.assign(Object.assign({},o),{[e]:s}):o));E(o)},ee=s=>s.map(((s,r)=>{var a,l;return{id:r,paramName:s.name,paramType:v(s.in),schemaType:v(null===(a=s.schema)||void 0===a?void 0:a.type)||"",required:e.jsx(e.Fragment,{children:C?s.required?"True":"False":e.jsx(o.Switch,{checked:s.required,onClick:()=>{if(C)return null;Z("required",!s.required,r),N(`parameters[${r}][required]`,!s.required)}})}),description:e.jsxs("div",{className:b.paramDescContainer,children:[e.jsx(p,{arrowWithBorder:!0,placement:"bottom-end",type:"function",trigger:"click",delay:[0,0],onCreate:e=>_((s=>Object.assign(Object.assign({},s),{[r]:e}))),content:e.jsxs("div",{className:b.editDescTooltipContent,children:[e.jsx("p",{className:b.editDescTooltipContent_header,children:"Description"}),e.jsx(o.TextArea,{placeholder:"Describe parameter...",value:s.description,disabled:C,onChange:e=>Z("description",e,r)}),!C&&e.jsx(o.Button,{className:b.editDescTooltipContent_btn,variant:"outlined",size:"small",onClick:()=>{var e;N(`parameters[${r}].description`,s.description),null===(e=$[r])||void 0===e||e.hide()},children:"Apply"})]}),children:C||(null===(l=d.parameters[r].description)||void 0===l?void 0:l.length)>0?e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:i,width:"1.5rem",height:"1.5rem"}),children:[d.parameters[r].description?d.parameters[r].description.substring(0,12):"-",d.parameters[r].description&&d.parameters[r].description.length>12?"...":""]}):e.jsxs(o.Button,{className:b.editDescBtn,variant:"link",color:"action",endIcon:e.jsx(n,{src:i,width:"1.5rem",height:"1.5rem"}),children:[C?"View ":"Add "," Description"]})}),!C&&e.jsx("div",{className:b.paramDescContainer_separator}),!C&&e.jsx(o.Button,{className:b.deleteParamBtn,variant:"link",color:"error",endIcon:e.jsx(n,{src:t,width:"1.125rem",height:"1.125rem"}),onClick:()=>se(r,s.name)})]})}})),se=(e,s)=>{M(e),R(s),J(!0)};return r((()=>{H(ee(L))}),[L]),r((()=>{(null==d?void 0:d.parameters)&&(H(ee(d.parameters)),E(d.parameters))}),[d,h]),r((()=>{var e;if(!Y.length){const s=[...null===(e=(null==d?void 0:d.tags)||[])||void 0===e?void 0:e.map((e=>({label:v(e),value:e}))),...(f||[]).map((e=>({label:v(e.name),value:e.name})))].filter(((e,s,r)=>s===r.findIndex((s=>s.value===e.value))));K(s)}}),[f,d]),e.jsxs("div",{children:[e.jsx(o.Accordion,{expanded:I.method,onChange:()=>B((e=>Object.assign(Object.assign({},e),{method:!e.method}))),className:`${b.methodAccordion} ${C?b.readOnly:""}`,summary:e.jsxs("div",{className:b.methodSummaryContainer,children:[e.jsxs("div",{className:b.methodSummary,children:[e.jsx("span",{style:{backgroundColor:(null===(A=null==c?void 0:c[null==d?void 0:d.type])||void 0===A?void 0:A.color)||"#3A6CD1"},className:b.methodLabel,children:(null===(S=null==c?void 0:c[null==d?void 0:d.type])||void 0===S?void 0:S.label)||(null==d?void 0:d.type)}),e.jsx("span",{className:b.methodPath,children:h})]}),e.jsx("div",{className:`${b.methodExpandArrowContainer} ${I.method?b.expanded:""}`,children:e.jsx(n,{src:a,width:"2rem",height:"2rem"})})]}),children:e.jsxs("div",{className:b.methodAccordionContent,children:[e.jsx(o.SelectGroup,{className:b.methodDesc,disabled:C,placeholder:"Select Tags",label:"Tags",value:null===(w=d.tags)||void 0===w?void 0:w.map((e=>({label:v(e),value:e}))),onChange:e=>{N("tags",e.map((e=>e.value)))},options:[{list:Y}],isMultiple:!0,withSearch:!1,clearable:!1}),C?e.jsx(u,{label:"Description: ",value:(null==d?void 0:d.description)||"-"},"description"):e.jsx(o.TextArea,{className:b.methodDesc,label:"Description",placeholder:"Describe the method's purpose and functionality...",value:null==d?void 0:d.description,onChange:e=>N("description",e)}),e.jsx("div",{className:b.paramsTable,children:e.jsx(j,{id:"paramter-table",data:z,headCells:m,isFormOpen:F,setIsFormOpen:V,saveNewRow:e=>{E([...L,e]),N("parameters",[...d.parameters,e])},readOnly:C})}),"get"!==(null==d?void 0:d.type)&&e.jsx(o.Accordion,{expanded:I.request,onChange:()=>null,className:b.requestAccordion,summary:e.jsx("span",{className:b.requestAccordionSummary,children:e.jsxs("div",{className:b.requestAccordionSummary_title,onClick:()=>B((e=>Object.assign(Object.assign({},e),{request:!e.request}))),children:[e.jsx(n,{className:I.request?b.expanded:"",src:a,width:"2rem",height:"2rem"}),"Request","delete"!==(null==d?void 0:d.type)&&e.jsx("span",{style:{color:"red"},children:"*"})]})}),children:e.jsx(g,{withFooter:!C,className:"jsonField",placeholder:"Enter your request body as a JSON object....",fieldIsDisabled:C,value:(null===(q=null===(O=null===(D=null==d?void 0:d.requestBody)||void 0===D?void 0:D.content)||void 0===O?void 0:O.schema)||void 0===q?void 0:q.properties)||"{}",onChange:e=>{N("requestBody.content.schema.properties",e)},onValidation:()=>null})}),e.jsx(o.Accordion,{expanded:I.response,onChange:()=>null,className:b.responseAccordion,summary:e.jsxs("span",{className:b.responseAccordionSummary,children:[e.jsxs("div",{className:b.responseAccordionSummary_title,onClick:()=>B((e=>Object.assign(Object.assign({},e),{response:!e.response}))),children:[e.jsx(n,{className:I.response?b.expanded:"",src:a,width:"2rem",height:"2rem"}),"Response",e.jsx("span",{style:{color:"red"},children:"*"})]}),e.jsx(o.SelectGroup,{withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:y}],value:Q,onChange:e=>{U(e)}})]}),children:e.jsx(g,{withFooter:!C,className:"jsonField",placeholder:"Enter your response as a JSON object...",fieldIsDisabled:C,value:(null===(k=null===(T=null==X?void 0:X.content)||void 0===T?void 0:T.schema)||void 0===k?void 0:k.properties)||"{}",onChange:e=>{const s=d.responses.findIndex((e=>e.code===X.code));if(-1!==s)N(`responses[${s}].content.schema.properties`,e);else{const s=structuredClone(d.responses);s.push({code:Q.value.toString(),content:{contentType:"application/json",schema:{type:"object",properties:e}}}),N("responses",s)}},onValidation:()=>null})})]})}),e.jsx(x,{status:"error",content:e.jsxs("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},className:"delete-msg-container",children:["Are you sure you want to delete",e.jsx("span",{className:"plan-name",children:` Parameter ${P} `}),"?"]}),onSubmit:{onClick:()=>{var e;null!==W&&(E((e=>e.filter(((e,s)=>s!==W)))),N("parameters",null===(e=null==d?void 0:d.parameters)||void 0===e?void 0:e.filter(((e,s)=>s!==W)))),J(!1),M(null)},text:"Yes",color:"error",fullWidth:!0},onCancel:{text:"No",color:"normal",fullWidth:!0},onClose:()=>J(!1),open:G,icon:e.jsx(n,{src:l,width:"4.0625rem",height:"4.0625rem"})})]})};export{N as default};
|
|
2
2
|
//# sourceMappingURL=MethodAccordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\nimport { Tags } from '@entities/openApi'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n tags,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string | string[]) => void\r\n readOnly?: boolean\r\n tags: Tags[]\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n const [selectionTags, setSelectionTags] = useState([])\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => onTableChange('description', value, index)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`parameters[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || method.parameters[index].description?.length > 0 ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableRecords(generateTableData(method.parameters))\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (!selectionTags.length) {\r\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\r\n label: capitalize(item),\r\n value: item,\r\n }))\r\n const mergedArray = [\r\n ...convertedStringArray,\r\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\r\n ]\r\n\r\n const filteredArray = mergedArray.filter(\r\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\r\n )\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isExpanded.method}\r\n onChange={() => setIsExpanded((prev) => ({ ...prev, method: !prev.method }))}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${\r\n isExpanded.method ? styles.expanded : ''\r\n }`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n <SelectGroup\r\n className={styles.methodDesc}\r\n disabled={readOnly}\r\n placeholder=\"Select Tags\"\r\n label=\"Tags\"\r\n value={method.tags?.map((t) => ({\r\n label: capitalize(t),\r\n value: t,\r\n }))}\r\n onChange={(item) => {\r\n setFieldValue(\r\n 'tags',\r\n item.map((i) => i.value)\r\n )\r\n }}\r\n options={[\r\n {\r\n list: selectionTags,\r\n },\r\n ]}\r\n isMultiple={true}\r\n withSearch={false}\r\n clearable={false}\r\n />{' '}\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n value={method?.description}\r\n onChange={(value) => setFieldValue('description', value)}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">{` Parameter ${selectedParamName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","generateTableData","items","id","paramName","name","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","prev","content","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","hide","_b","parameters","length","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","substring","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","useEffect","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","_c","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","withFooter","fieldIsDisabled","_f","_e","_d","requestBody","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","_h","_g","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MethodAccordion.js","sources":["../../../../src/components/MethodAccordion/MethodAccordion.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { Accordion, Button, SelectGroup, SelectGroupV2, Switch, TextArea } from 'digitinary-ui'\r\nimport SVGLoader from '../../components/SVGLoader/SVGLoader'\r\nimport { DeleteIcon, DownArrowIcon, EditIcon, deleteOutlinedIcon } from '../../assets/icons'\r\nimport { httpStatusCodes, methodColorMapping, paramsTableHeaders } from '../../constants/index'\r\nimport Tooltip from '../../components/Tooltip/Tooltip'\r\nimport { TransformedMethod } from '../../types/layout.type'\r\nimport SimpleLabelValue from '../../components/SimpleLabelValue'\r\nimport { capitalize, handleStatusColor } from '../../helpers/methodAccordion.helper'\r\nimport ParamterTable from '../table/table'\r\nimport CommonDialog from '../../components/dialog'\r\nimport JsonInput from '../../components/JsonInput/JsonInput'\r\nimport styles from './MethodAccordion.module.scss'\r\nimport { Tags } from '@entities/openApi'\r\n\r\nconst httpStatusCodeOptions = httpStatusCodes.map((code) => ({\r\n label: (\r\n <div className={styles.statusCodeOptionContainer}>\r\n <div\r\n className={styles.statusCodeOptionCircle}\r\n style={{ backgroundColor: handleStatusColor(code) }}\r\n ></div>\r\n <span>{code}</span>\r\n </div>\r\n ),\r\n value: code,\r\n}))\r\n\r\nconst MethodsAccordion = ({\r\n method,\r\n path,\r\n setFieldValue,\r\n readOnly,\r\n tags,\r\n}: {\r\n method: TransformedMethod\r\n path: string\r\n setFieldValue?: (key: string, value: string | string[]) => void\r\n readOnly?: boolean\r\n tags: Tags[]\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState({\r\n request: false,\r\n response: false,\r\n method: false,\r\n })\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [tooltipRefs, setTooltipRefs] = useState<{ [key: number]: any }>({})\r\n const [tableData, setTableData] = useState([])\r\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false)\r\n const [selectedParamIndex, setSelectedParamIndex] = useState<number | null>(null)\r\n const [selectedParamName, setSelectedParamName] = useState<string | null>(null)\r\n const [tableRecords, setTableRecords] = useState()\r\n const [selectionTags, setSelectionTags] = useState([])\r\n const [selectedStatusCode, setSelectedStatusCode] = useState(httpStatusCodeOptions[4])\r\n const currentResponse =\r\n method.responses.find((res) => Number(res.code) === selectedStatusCode.value) || '{}'\r\n\r\n const onTableChange = (key, value, index) => {\r\n const newTableData = tableData.map((item, tIndex) => {\r\n if (tIndex === index) {\r\n return { ...item, [key]: value }\r\n } else {\r\n return item\r\n }\r\n })\r\n\r\n setTableData(newTableData)\r\n }\r\n\r\n const generateTableData = (items) => {\r\n return items.map((item, index) => {\r\n return {\r\n id: index,\r\n paramName: item.name,\r\n paramType: capitalize(item.in),\r\n schemaType: capitalize(item.schema?.type) || '',\r\n required: (\r\n <>\r\n {readOnly ? (\r\n item.required ? (\r\n 'True'\r\n ) : (\r\n 'False'\r\n )\r\n ) : (\r\n <Switch\r\n checked={item.required}\r\n onClick={() => {\r\n if (readOnly) {\r\n return null\r\n }\r\n onTableChange('required', !item.required, index)\r\n setFieldValue(`parameters[${index}][required]`, !item.required)\r\n }}\r\n />\r\n )}\r\n </>\r\n ),\r\n description: (\r\n <div className={styles.paramDescContainer}>\r\n <Tooltip\r\n arrowWithBorder\r\n placement=\"bottom-end\"\r\n type=\"function\"\r\n trigger=\"click\"\r\n delay={[0, 0]}\r\n onCreate={(instance) =>\r\n setTooltipRefs((prev) => ({\r\n ...prev,\r\n [index]: instance,\r\n }))\r\n }\r\n content={\r\n <div className={styles.editDescTooltipContent}>\r\n <p className={styles.editDescTooltipContent_header}>Description</p>\r\n <TextArea\r\n placeholder=\"Describe parameter...\"\r\n value={item.description}\r\n disabled={readOnly}\r\n onChange={(value) => onTableChange('description', value, index)}\r\n />\r\n {!readOnly && (\r\n <Button\r\n className={styles.editDescTooltipContent_btn}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onClick={() => {\r\n setFieldValue(`parameters[${index}].description`, item.description)\r\n tooltipRefs[index]?.hide()\r\n }}\r\n >\r\n Apply\r\n </Button>\r\n )}\r\n </div>\r\n }\r\n >\r\n {readOnly || method.parameters[index].description?.length > 0 ? (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {method.parameters[index].description\r\n ? method.parameters[index].description.substring(0, 12)\r\n : '-'}\r\n {method.parameters[index].description &&\r\n method.parameters[index].description.length > 12\r\n ? '...'\r\n : ''}\r\n </Button>\r\n ) : (\r\n <Button\r\n className={styles.editDescBtn}\r\n variant=\"link\"\r\n color=\"action\"\r\n endIcon={<SVGLoader src={EditIcon} width=\"1.5rem\" height=\"1.5rem\" />}\r\n >\r\n {readOnly ? 'View ' : 'Add '} Description\r\n </Button>\r\n )}\r\n </Tooltip>\r\n\r\n {!readOnly && <div className={styles.paramDescContainer_separator}></div>}\r\n\r\n {!readOnly && (\r\n <Button\r\n className={styles.deleteParamBtn}\r\n variant=\"link\"\r\n color=\"error\"\r\n endIcon={<SVGLoader src={DeleteIcon} width=\"1.125rem\" height=\"1.125rem\" />}\r\n onClick={() => handleDeleteClick(index, item.name)}\r\n ></Button>\r\n )}\r\n </div>\r\n ),\r\n }\r\n })\r\n }\r\n\r\n const confirmDeleteParameter = () => {\r\n if (selectedParamIndex !== null) {\r\n setTableData((prev) => prev.filter((_, i) => i !== selectedParamIndex))\r\n setFieldValue(\r\n `parameters`,\r\n method?.parameters?.filter((_, i) => i !== selectedParamIndex)\r\n )\r\n }\r\n setOpenDeleteDialog(false)\r\n setSelectedParamIndex(null)\r\n }\r\n\r\n const handleDeleteClick = (id: number, name: string) => {\r\n setSelectedParamIndex(id)\r\n setSelectedParamName(name)\r\n\r\n setOpenDeleteDialog(true)\r\n }\r\n\r\n const saveNewRow = (values) => {\r\n setTableData([...tableData, values])\r\n setFieldValue(`parameters`, [...method.parameters, values])\r\n }\r\n\r\n useEffect(() => {\r\n setTableRecords(generateTableData(tableData))\r\n }, [tableData])\r\n\r\n useEffect(() => {\r\n if (method?.parameters) {\r\n setTableRecords(generateTableData(method.parameters))\r\n setTableData(method.parameters)\r\n }\r\n }, [method, path])\r\n\r\n useEffect(() => {\r\n // prepare tags selection list\r\n if (!selectionTags.length) {\r\n const convertedStringArray = (method?.tags || [])?.map((item) => ({\r\n label: capitalize(item),\r\n value: item,\r\n }))\r\n const mergedArray = [\r\n ...convertedStringArray,\r\n ...(tags || []).map((item) => ({ label: capitalize(item.name), value: item.name })),\r\n ]\r\n\r\n const filteredArray = mergedArray.filter(\r\n (value, index, self) => index === self.findIndex((t) => t.value === value.value)\r\n )\r\n setSelectionTags(filteredArray)\r\n }\r\n }, [tags, method])\r\n\r\n return (\r\n <div>\r\n <Accordion\r\n expanded={isExpanded.method}\r\n onChange={() => setIsExpanded((prev) => ({ ...prev, method: !prev.method }))}\r\n className={`${styles.methodAccordion} ${readOnly ? styles.readOnly : ''}`}\r\n summary={\r\n <div className={styles.methodSummaryContainer}>\r\n <div className={styles.methodSummary}>\r\n <span\r\n style={{\r\n backgroundColor: methodColorMapping?.[method?.type]?.color || '#3A6CD1',\r\n }}\r\n className={styles.methodLabel}\r\n >\r\n {methodColorMapping?.[method?.type]?.label || method?.type}\r\n </span>\r\n <span className={styles.methodPath}>{path}</span>\r\n </div>\r\n <div\r\n className={`${styles.methodExpandArrowContainer} ${\r\n isExpanded.method ? styles.expanded : ''\r\n }`}\r\n >\r\n <SVGLoader src={DownArrowIcon} width=\"2rem\" height=\"2rem\" />\r\n </div>\r\n </div>\r\n }\r\n children={\r\n <div className={styles.methodAccordionContent}>\r\n <SelectGroup\r\n className={styles.methodDesc}\r\n disabled={readOnly}\r\n placeholder=\"Select Tags\"\r\n label=\"Tags\"\r\n value={method.tags?.map((t) => ({\r\n label: capitalize(t),\r\n value: t,\r\n }))}\r\n onChange={(item) => {\r\n setFieldValue(\r\n 'tags',\r\n item.map((i) => i.value)\r\n )\r\n }}\r\n options={[\r\n {\r\n list: selectionTags,\r\n },\r\n ]}\r\n isMultiple={true}\r\n withSearch={false}\r\n clearable={false}\r\n />\r\n {!readOnly ? (\r\n <TextArea\r\n className={styles.methodDesc}\r\n label=\"Description\"\r\n placeholder=\"Describe the method's purpose and functionality...\"\r\n value={method?.description}\r\n onChange={(value) => setFieldValue('description', value)}\r\n />\r\n ) : (\r\n <SimpleLabelValue\r\n key={'description'}\r\n label={'Description: '}\r\n value={method?.description || '-'}\r\n />\r\n )}\r\n <div className={styles.paramsTable}>\r\n <ParamterTable\r\n id=\"paramter-table\"\r\n data={tableRecords}\r\n headCells={paramsTableHeaders}\r\n isFormOpen={isFormOpen}\r\n setIsFormOpen={setIsFormOpen}\r\n saveNewRow={saveNewRow}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n {method?.type !== 'get' && (\r\n <Accordion\r\n expanded={isExpanded.request}\r\n onChange={() => null}\r\n className={styles.requestAccordion}\r\n summary={\r\n <span className={styles.requestAccordionSummary}>\r\n <div\r\n className={styles.requestAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n request: !prev.request,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.request ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Request\r\n {method?.type !== 'delete' && <span style={{ color: 'red' }}>*</span>}\r\n </div>\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your request body as a JSON object....\"\r\n fieldIsDisabled={readOnly}\r\n value={method?.requestBody?.content?.schema?.properties || '{}'}\r\n onChange={(value: string) => {\r\n setFieldValue('requestBody.content.schema.properties', value)\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n )}\r\n <Accordion\r\n expanded={isExpanded.response}\r\n onChange={() => null}\r\n className={styles.responseAccordion}\r\n summary={\r\n <span className={styles.responseAccordionSummary}>\r\n <div\r\n className={styles.responseAccordionSummary_title}\r\n onClick={() =>\r\n setIsExpanded((prev) => ({\r\n ...prev,\r\n response: !prev.response,\r\n }))\r\n }\r\n >\r\n <SVGLoader\r\n className={isExpanded.response ? styles.expanded : ''}\r\n src={DownArrowIcon}\r\n width=\"2rem\"\r\n height=\"2rem\"\r\n />\r\n Response<span style={{ color: 'red' }}>*</span>\r\n </div>\r\n\r\n <SelectGroup\r\n withSearch={false}\r\n isMultiple={false}\r\n clearable={false}\r\n placeholder=\"200\"\r\n options={[\r\n {\r\n list: httpStatusCodeOptions,\r\n },\r\n ]}\r\n value={selectedStatusCode}\r\n onChange={(value) => {\r\n setSelectedStatusCode(value)\r\n }}\r\n />\r\n </span>\r\n }\r\n children={\r\n <JsonInput\r\n withFooter={!readOnly}\r\n className={'jsonField'}\r\n placeholder=\"Enter your response as a JSON object...\"\r\n fieldIsDisabled={readOnly}\r\n value={currentResponse?.content?.schema?.properties || '{}'}\r\n onChange={(value) => {\r\n const currentResIndex = method.responses.findIndex(\r\n (res) => res.code === currentResponse.code\r\n )\r\n\r\n if (currentResIndex !== -1) {\r\n setFieldValue(\r\n `responses[${currentResIndex}].content.schema.properties`,\r\n value\r\n )\r\n } else {\r\n const clonedResponses = structuredClone(method.responses)\r\n\r\n clonedResponses.push({\r\n code: selectedStatusCode.value.toString(),\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n type: 'object',\r\n properties: value,\r\n },\r\n },\r\n })\r\n\r\n setFieldValue('responses', clonedResponses)\r\n }\r\n }}\r\n onValidation={() => null}\r\n />\r\n }\r\n />\r\n </div>\r\n }\r\n />\r\n <CommonDialog\r\n status=\"error\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n className=\"delete-msg-container\"\r\n >\r\n Are you sure you want to delete\r\n <span className=\"plan-name\">{` Parameter ${selectedParamName} `}</span>?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: confirmDeleteParameter,\r\n text: 'Yes',\r\n color: 'error',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'No',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setOpenDeleteDialog(false)}\r\n open={openDeleteDialog}\r\n icon={<SVGLoader src={deleteOutlinedIcon} width=\"4.0625rem\" height=\"4.0625rem\" />}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default MethodsAccordion\r\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","MethodsAccordion","method","path","setFieldValue","readOnly","tags","isExpanded","setIsExpanded","useState","request","response","isFormOpen","setIsFormOpen","tooltipRefs","setTooltipRefs","tableData","setTableData","openDeleteDialog","setOpenDeleteDialog","selectedParamIndex","setSelectedParamIndex","selectedParamName","setSelectedParamName","tableRecords","setTableRecords","selectionTags","setSelectionTags","selectedStatusCode","setSelectedStatusCode","currentResponse","responses","find","res","Number","onTableChange","key","index","newTableData","item","tIndex","Object","assign","generateTableData","items","id","paramName","name","paramType","capitalize","in","schemaType","_a","schema","type","required","jsx","_Fragment","Switch","checked","onClick","description","paramDescContainer","Tooltip","arrowWithBorder","placement","trigger","delay","onCreate","instance","prev","content","jsxs","editDescTooltipContent","editDescTooltipContent_header","TextArea","placeholder","disabled","onChange","Button","editDescTooltipContent_btn","variant","size","hide","_b","parameters","length","editDescBtn","color","endIcon","SVGLoader","src","EditIcon","width","height","substring","paramDescContainer_separator","deleteParamBtn","DeleteIcon","handleDeleteClick","useEffect","filteredArray","filter","self","findIndex","t","Accordion","expanded","methodAccordion","summary","methodSummaryContainer","methodSummary","methodColorMapping","methodLabel","methodPath","methodExpandArrowContainer","DownArrowIcon","methodAccordionContent","SelectGroup","methodDesc","_c","i","options","list","isMultiple","withSearch","clearable","SimpleLabelValue","paramsTable","ParamterTable","data","headCells","paramsTableHeaders","saveNewRow","values","requestAccordion","requestAccordionSummary","requestAccordionSummary_title","JsonInput","withFooter","fieldIsDisabled","_f","_e","_d","requestBody","properties","onValidation","responseAccordion","responseAccordionSummary","responseAccordionSummary_title","_h","_g","currentResIndex","clonedResponses","structuredClone","push","toString","contentType","CommonDialog","status","textAlign","fontWeight","fontSize","lineHeight","onSubmit","_","text","fullWidth","onCancel","onClose","open","icon","deleteOutlinedIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../_virtual/jsx-runtime.js";import{
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import{useEffect as o}from"react";import{d as t}from"../../_virtual/index.js";import s from"../components/MethodAccordion/MethodAccordion.js";import i from"./layout.module.css.js";import r from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as d,transformOpenApiObjectToOrigin as n}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as l,FormikProvider as c}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as u}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";const h=({openApiJson:h,handleSave:j,setIsFormDirty:v})=>{const f=structuredClone(h),x=d(f),y=l({initialValues:structuredClone(x),validationSchema:u,validateOnMount:!0,onSubmit:(e,{validateForm:o,resetForm:t})=>{const s=n(e);j(s),t({values:e}),o(e)}});return o((()=>{v&&v(y.dirty)}),[y.dirty]),e.jsxs("div",{className:i.docsLayout,children:[e.jsx(t.Alert,{className:i.apiDocAlert,color:"info",children:"Changes are saved and published for API information and each endpoint individually as you update."}),e.jsxs("div",{className:i.layoutContainer,children:[e.jsxs("div",{className:`${i.editorSide} ${i.docSide}`,children:[e.jsx(a,{className:i.editorSectionHead,text:e.jsxs("div",{className:i.editorSectionHead_content,children:["API Information",e.jsx(t.Button,{className:i.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:y.submitForm,children:"Save"})]})}),e.jsx(c,{value:y,children:e.jsx(r,{})}),e.jsx(a,{className:i.editorSectionHead,text:"API Methods"}),e.jsx(c,{value:y,children:y.values.paths.map(((o,t)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,r)=>e.jsx(s,{tags:y.values.tags,method:i,path:o.path,setFieldValue:(e,o)=>{const s=`paths[${t}].methods[${r}].${e}`;y.setFieldValue(s,o)}})))})))})]}),e.jsx("div",{className:`${i.livePreviewSide} ${i.docSide}`,children:x&&e.jsx(c,{value:y,children:e.jsx(m,{transformedData:x})})})]})]})};export{h as default};
|
|
2
2
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\r\n validateForm(values)\r\n },\r\n })\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"info\">\r\n Changes are saved and published for API information and each endpoint individually as you\r\n update.\r\n </Alert>\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={formik.submitForm}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"API Methods\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n tags={formik.values.tags}\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","jsx","Alert","apiDocAlert","color","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","submitForm","FormikProvider","value","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData"],"mappings":"
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n setIsFormDirty?: any\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\r\n validateForm(values)\r\n },\r\n })\r\n\r\n useEffect(() => {\r\n if (setIsFormDirty) {\r\n setIsFormDirty(formik.dirty)\r\n }\r\n }, [formik.dirty])\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"info\">\r\n Changes are saved and published for API information and each endpoint individually as you\r\n update.\r\n </Alert>\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={formik.submitForm}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"API Methods\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n tags={formik.values.tags}\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","useEffect","dirty","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","jsx","Alert","apiDocAlert","color","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","submitForm","FormikProvider","value","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData"],"mappings":"wsBAoBM,MAAAA,EAAS,EAAGC,cAAaC,aAAYC,qBACzC,MAAMC,EAAoBC,gBAAgBJ,GACpCK,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,eAAcC,gBAEjC,MAAMC,EAAsBC,EAA+BJ,GAC3Db,EAAWgB,GACXD,EAAU,CACRF,OAAQA,IAGVC,EAAaD,EAAO,IAUxB,OANAK,GAAU,KACJjB,GACFA,EAAeK,EAAOa,MACvB,GACA,CAACb,EAAOa,QAGTC,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOC,WACrBC,SAAA,CAAAC,EAAAC,IAACC,EAAKA,MAAC,CAAAN,UAAWC,EAAOM,YAAaC,MAAM,OAAML,SAAA,sGAIlDL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,0BACrBX,EAAKC,KAAA,MAAA,CAAAC,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAASR,SAAA,CACtDC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOc,0BAAyBZ,SAAA,CAAA,kBAE9CC,MAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRb,MAAM,UACNc,QAAStC,EAAOuC,WAGTpB,SAAA,cAIfC,EAAAA,IAACoB,GAAeC,MAAOzC,EAAMmB,SAC3BC,MAACsB,EAAQ,MAEXtB,MAACQ,EAAW,CAACZ,UAAWC,EAAOY,kBAAmBC,KAAK,gBACvDV,MAACoB,EAAc,CAACC,MAAOzC,EACpBmB,SAAAnB,EAAOO,OAAOoC,MAAMC,KAAI,CAACC,EAAMC,IAC9B1B,EAAAA,IACG2B,EAAAA,SAAA,CAAA5B,SAAA0B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEd,MAAMiB,MAAQD,EAAmBD,EAAEf,MAAMiB,QAEzET,KAAI,CAACU,EAAQC,IACZnC,EAAAA,IAACoC,EACC,CAAAC,KAAMzD,EAAOO,OAAOkD,KACpBH,OAAQA,EACRT,KAAMA,EAAKA,KACXa,cAAe,CAACC,EAAKlB,KACnB,MAAMmB,EAAI,SAASd,cAAsBS,MAAgBI,IACzD3D,EAAO0D,cAAcE,EAAGnB,EAAM,eAQ9CrB,EAAAC,IAAA,MAAA,CAAKL,UAAW,GAAGC,EAAO4C,mBAAmB5C,EAAOU,UAASR,SAC1DrB,GACCsB,MAACoB,EAAc,CAACC,MAAOzC,WACrBoB,EAAAA,IAAC0C,GAAYC,gBAAiBjE,aAMzC"}
|
package/dist/styles.css
CHANGED
|
@@ -718,6 +718,10 @@
|
|
|
718
718
|
.tableSectionContainer .descArrow path,
|
|
719
719
|
.tableSectionContainer .defaultSortArrow path {
|
|
720
720
|
fill: var(--Gray-50);
|
|
721
|
+
}p.apiName {
|
|
722
|
+
font-size: 40px;
|
|
723
|
+
line-height: 30px;
|
|
724
|
+
font-weight: 500;
|
|
721
725
|
}#common-dialog.dialog-content-wrapper {
|
|
722
726
|
overflow: visible !important;
|
|
723
727
|
max-height: 100%;
|
|
@@ -795,6 +799,111 @@
|
|
|
795
799
|
display: flex;
|
|
796
800
|
gap: 1.25rem;
|
|
797
801
|
margin-top: 1.875rem;
|
|
802
|
+
}:root {
|
|
803
|
+
--white: #fff;
|
|
804
|
+
--Gray-5: #f1f2f6;
|
|
805
|
+
--Gray-10: #ebecf2;
|
|
806
|
+
--Gray-20: #d8dae5;
|
|
807
|
+
--Gray-30: #babdcc;
|
|
808
|
+
--Gray-40: #9a9eb2;
|
|
809
|
+
--Gray-50: #828699;
|
|
810
|
+
--Gray-60: #696c80;
|
|
811
|
+
--Gray-100: #12131a;
|
|
812
|
+
--black: #000;
|
|
813
|
+
--primary-static: #4d75d8;
|
|
814
|
+
--primary-hover: #7c9bea;
|
|
815
|
+
--primary-active: #2c4fa4;
|
|
816
|
+
--primary-disabled: #9a9eb2;
|
|
817
|
+
--secondary-static: #40e0d0;
|
|
818
|
+
--secondary-hover: #9efcf2;
|
|
819
|
+
--secondary-active: #2fa599;
|
|
820
|
+
--error-static: #da3f3f;
|
|
821
|
+
--error-hover: #e75d5d;
|
|
822
|
+
--error-active: #bb3232;
|
|
823
|
+
--success-static: #3aaa35;
|
|
824
|
+
--success-hover: #5cda56;
|
|
825
|
+
--success-active: #2a8a25;
|
|
826
|
+
--info-static: #c6c6c6;
|
|
827
|
+
--info-hover: #e4e4e4;
|
|
828
|
+
--info-active: #979797;
|
|
829
|
+
--warning-static: #faad14;
|
|
830
|
+
--warning-hover: #f9be4a;
|
|
831
|
+
--warning-active: #db9711;
|
|
832
|
+
--action-static: #142452;
|
|
833
|
+
--action-hover: #21387d;
|
|
834
|
+
--action-active: #000000;
|
|
835
|
+
--color-info-primary: #3a6cd1;
|
|
836
|
+
--primary-font-color: #142452;
|
|
837
|
+
--placeholder-font-color: #babdcc;
|
|
838
|
+
--warning-font-color: #ce2828;
|
|
839
|
+
--alert-error: #da3f3f;
|
|
840
|
+
--alert-light-error: #f4c5c5;
|
|
841
|
+
--alert-success: #3aaa35;
|
|
842
|
+
--alert-light-success: #c4e5c2;
|
|
843
|
+
--alert-info: #8eaaf1;
|
|
844
|
+
--alert-light-info: #c4d3f1;
|
|
845
|
+
--alert-warning: #faad14;
|
|
846
|
+
--alert-light-warning: #fde6b8;
|
|
847
|
+
--border-focus: #3a6cd1;
|
|
848
|
+
--tooltip-background-color: #202f5b;
|
|
849
|
+
--text-color-primary: #142452;
|
|
850
|
+
--text-color-secondary: #ffff;
|
|
851
|
+
--text-color-neutral: #828699;
|
|
852
|
+
--text-color-tertiary: #808080;
|
|
853
|
+
--text-color-note: #242424;
|
|
854
|
+
--text-color-quaternary: #142452;
|
|
855
|
+
--text-color-disabled: #ffff;
|
|
856
|
+
--background-color-white-primary: #fff;
|
|
857
|
+
--background-color-light-primary: #8eaaf1;
|
|
858
|
+
--background-color-white-secondary: #fff;
|
|
859
|
+
--background-color-primary-dark: #142452;
|
|
860
|
+
--background-color-gray-5: #f1f2f6;
|
|
861
|
+
--background-color-gray-30: #ebecf2;
|
|
862
|
+
--background-color-tertiary-light: #2c4fa4;
|
|
863
|
+
--background-color-gray-10: #f1f2f6;
|
|
864
|
+
--background-color-gray-40: #ebecf2;
|
|
865
|
+
--background-color-light-blue: #dfe7f8;
|
|
866
|
+
--border-color-primary: #babdcc;
|
|
867
|
+
--border-color-secondary: #d8dae5;
|
|
868
|
+
--border-color-neutral: #ebecf2;
|
|
869
|
+
--border-color-tertiary: #ebecf2;
|
|
870
|
+
--border-color-gray: #ebecf2;
|
|
871
|
+
--border-color-hover: #142452;
|
|
872
|
+
--border-color-active: #3a6cd1;
|
|
873
|
+
--icon-color-main: #142452;
|
|
874
|
+
--icon-color-secondary: #000;
|
|
875
|
+
--icon-color-quaternary: #babdcc;
|
|
876
|
+
--icon-color-disabled: #9a9eb2;
|
|
877
|
+
--link-btn-primary-color: #3a6cd1;
|
|
878
|
+
--button-color-static: #4d75d8;
|
|
879
|
+
--button-color-hover: #7c9bea;
|
|
880
|
+
--button-color-active: #2c4fa4;
|
|
881
|
+
--alert-natural: #c4d3f1;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
.drawerItemContainer {
|
|
885
|
+
display: flex;
|
|
886
|
+
flex-direction: column;
|
|
887
|
+
}
|
|
888
|
+
.drawerItemContainer .title {
|
|
889
|
+
color: #000;
|
|
890
|
+
font-weight: 600;
|
|
891
|
+
font-size: 24px;
|
|
892
|
+
line-height: 35px;
|
|
893
|
+
margin-bottom: 3px;
|
|
894
|
+
margin-top: 1.5rem;
|
|
895
|
+
}
|
|
896
|
+
.drawerItemContainer .text {
|
|
897
|
+
color: #000;
|
|
898
|
+
font-weight: 400;
|
|
899
|
+
font-size: 24px;
|
|
900
|
+
line-height: 25px;
|
|
901
|
+
}
|
|
902
|
+
.drawerItemContainer .color-green {
|
|
903
|
+
color: var(--color-success);
|
|
904
|
+
}
|
|
905
|
+
.drawerItemContainer .color-red {
|
|
906
|
+
color: var(--color-error);
|
|
798
907
|
}.json-editor-container {
|
|
799
908
|
overflow: hidden;
|
|
800
909
|
border-bottom-right-radius: 0.3125rem;
|
|
@@ -906,113 +1015,4 @@
|
|
|
906
1015
|
.json-editor-container.disabled .json-editor textarea {
|
|
907
1016
|
background-color: white;
|
|
908
1017
|
color: #12131a;
|
|
909
|
-
}:root {
|
|
910
|
-
--white: #fff;
|
|
911
|
-
--Gray-5: #f1f2f6;
|
|
912
|
-
--Gray-10: #ebecf2;
|
|
913
|
-
--Gray-20: #d8dae5;
|
|
914
|
-
--Gray-30: #babdcc;
|
|
915
|
-
--Gray-40: #9a9eb2;
|
|
916
|
-
--Gray-50: #828699;
|
|
917
|
-
--Gray-60: #696c80;
|
|
918
|
-
--Gray-100: #12131a;
|
|
919
|
-
--black: #000;
|
|
920
|
-
--primary-static: #4d75d8;
|
|
921
|
-
--primary-hover: #7c9bea;
|
|
922
|
-
--primary-active: #2c4fa4;
|
|
923
|
-
--primary-disabled: #9a9eb2;
|
|
924
|
-
--secondary-static: #40e0d0;
|
|
925
|
-
--secondary-hover: #9efcf2;
|
|
926
|
-
--secondary-active: #2fa599;
|
|
927
|
-
--error-static: #da3f3f;
|
|
928
|
-
--error-hover: #e75d5d;
|
|
929
|
-
--error-active: #bb3232;
|
|
930
|
-
--success-static: #3aaa35;
|
|
931
|
-
--success-hover: #5cda56;
|
|
932
|
-
--success-active: #2a8a25;
|
|
933
|
-
--info-static: #c6c6c6;
|
|
934
|
-
--info-hover: #e4e4e4;
|
|
935
|
-
--info-active: #979797;
|
|
936
|
-
--warning-static: #faad14;
|
|
937
|
-
--warning-hover: #f9be4a;
|
|
938
|
-
--warning-active: #db9711;
|
|
939
|
-
--action-static: #142452;
|
|
940
|
-
--action-hover: #21387d;
|
|
941
|
-
--action-active: #000000;
|
|
942
|
-
--color-info-primary: #3a6cd1;
|
|
943
|
-
--primary-font-color: #142452;
|
|
944
|
-
--placeholder-font-color: #babdcc;
|
|
945
|
-
--warning-font-color: #ce2828;
|
|
946
|
-
--alert-error: #da3f3f;
|
|
947
|
-
--alert-light-error: #f4c5c5;
|
|
948
|
-
--alert-success: #3aaa35;
|
|
949
|
-
--alert-light-success: #c4e5c2;
|
|
950
|
-
--alert-info: #8eaaf1;
|
|
951
|
-
--alert-light-info: #c4d3f1;
|
|
952
|
-
--alert-warning: #faad14;
|
|
953
|
-
--alert-light-warning: #fde6b8;
|
|
954
|
-
--border-focus: #3a6cd1;
|
|
955
|
-
--tooltip-background-color: #202f5b;
|
|
956
|
-
--text-color-primary: #142452;
|
|
957
|
-
--text-color-secondary: #ffff;
|
|
958
|
-
--text-color-neutral: #828699;
|
|
959
|
-
--text-color-tertiary: #808080;
|
|
960
|
-
--text-color-note: #242424;
|
|
961
|
-
--text-color-quaternary: #142452;
|
|
962
|
-
--text-color-disabled: #ffff;
|
|
963
|
-
--background-color-white-primary: #fff;
|
|
964
|
-
--background-color-light-primary: #8eaaf1;
|
|
965
|
-
--background-color-white-secondary: #fff;
|
|
966
|
-
--background-color-primary-dark: #142452;
|
|
967
|
-
--background-color-gray-5: #f1f2f6;
|
|
968
|
-
--background-color-gray-30: #ebecf2;
|
|
969
|
-
--background-color-tertiary-light: #2c4fa4;
|
|
970
|
-
--background-color-gray-10: #f1f2f6;
|
|
971
|
-
--background-color-gray-40: #ebecf2;
|
|
972
|
-
--background-color-light-blue: #dfe7f8;
|
|
973
|
-
--border-color-primary: #babdcc;
|
|
974
|
-
--border-color-secondary: #d8dae5;
|
|
975
|
-
--border-color-neutral: #ebecf2;
|
|
976
|
-
--border-color-tertiary: #ebecf2;
|
|
977
|
-
--border-color-gray: #ebecf2;
|
|
978
|
-
--border-color-hover: #142452;
|
|
979
|
-
--border-color-active: #3a6cd1;
|
|
980
|
-
--icon-color-main: #142452;
|
|
981
|
-
--icon-color-secondary: #000;
|
|
982
|
-
--icon-color-quaternary: #babdcc;
|
|
983
|
-
--icon-color-disabled: #9a9eb2;
|
|
984
|
-
--link-btn-primary-color: #3a6cd1;
|
|
985
|
-
--button-color-static: #4d75d8;
|
|
986
|
-
--button-color-hover: #7c9bea;
|
|
987
|
-
--button-color-active: #2c4fa4;
|
|
988
|
-
--alert-natural: #c4d3f1;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
.drawerItemContainer {
|
|
992
|
-
display: flex;
|
|
993
|
-
flex-direction: column;
|
|
994
|
-
}
|
|
995
|
-
.drawerItemContainer .title {
|
|
996
|
-
color: #000;
|
|
997
|
-
font-weight: 600;
|
|
998
|
-
font-size: 24px;
|
|
999
|
-
line-height: 35px;
|
|
1000
|
-
margin-bottom: 3px;
|
|
1001
|
-
margin-top: 1.5rem;
|
|
1002
|
-
}
|
|
1003
|
-
.drawerItemContainer .text {
|
|
1004
|
-
color: #000;
|
|
1005
|
-
font-weight: 400;
|
|
1006
|
-
font-size: 24px;
|
|
1007
|
-
line-height: 25px;
|
|
1008
|
-
}
|
|
1009
|
-
.drawerItemContainer .color-green {
|
|
1010
|
-
color: var(--color-success);
|
|
1011
|
-
}
|
|
1012
|
-
.drawerItemContainer .color-red {
|
|
1013
|
-
color: var(--color-error);
|
|
1014
|
-
}p.apiName {
|
|
1015
|
-
font-size: 40px;
|
|
1016
|
-
line-height: 30px;
|
|
1017
|
-
font-weight: 500;
|
|
1018
1018
|
}
|
|
@@ -3,6 +3,7 @@ import { OpenAPIFile } from '../types/openApi';
|
|
|
3
3
|
interface ILayoutProps {
|
|
4
4
|
openApiJson?: OpenAPIFile;
|
|
5
5
|
handleSave?: (values: unknown) => unknown;
|
|
6
|
+
setIsFormDirty?: any;
|
|
6
7
|
}
|
|
7
|
-
declare const Layout: ({ openApiJson, handleSave }: ILayoutProps) => JSX.Element;
|
|
8
|
+
declare const Layout: ({ openApiJson, handleSave, setIsFormDirty }: ILayoutProps) => JSX.Element;
|
|
8
9
|
export default Layout;
|
package/package.json
CHANGED
|
@@ -30,7 +30,10 @@ const InfoForm = ({ readOnly }: { readOnly?: boolean }) => {
|
|
|
30
30
|
if (values && values.components && values.components.securitySchemes) {
|
|
31
31
|
const authenticatorKeys = Object.keys(values.components.securitySchemes)
|
|
32
32
|
if (authenticatorKeys.length) {
|
|
33
|
-
setAuthType(
|
|
33
|
+
setAuthType(
|
|
34
|
+
values.components.securitySchemes[authenticatorKeys[0]].scheme ||
|
|
35
|
+
values.components.securitySchemes[authenticatorKeys[0]].type
|
|
36
|
+
)
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
}, [])
|
package/src/layout/layout.tsx
CHANGED
|
@@ -15,9 +15,10 @@ import { methodColorMapping } from '../constants/index'
|
|
|
15
15
|
interface ILayoutProps {
|
|
16
16
|
openApiJson?: OpenAPIFile
|
|
17
17
|
handleSave?: (values: unknown) => unknown
|
|
18
|
+
setIsFormDirty?: any
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
const Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {
|
|
21
|
+
const Layout = ({ openApiJson, handleSave, setIsFormDirty }: ILayoutProps): JSX.Element => {
|
|
21
22
|
const clonedOpenApiJson = structuredClone(openApiJson)
|
|
22
23
|
const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)
|
|
23
24
|
const formik = useFormik<TransformedOpenApi>({
|
|
@@ -36,6 +37,12 @@ const Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {
|
|
|
36
37
|
},
|
|
37
38
|
})
|
|
38
39
|
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (setIsFormDirty) {
|
|
42
|
+
setIsFormDirty(formik.dirty)
|
|
43
|
+
}
|
|
44
|
+
}, [formik.dirty])
|
|
45
|
+
|
|
39
46
|
return (
|
|
40
47
|
<div className={styles.docsLayout}>
|
|
41
48
|
<Alert className={styles.apiDocAlert} color="info">
|