@digi-frontend/dgate-api-documentation 1.0.53 → 1.0.54

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.
Files changed (28) hide show
  1. package/dist/_virtual/index4.js +1 -1
  2. package/dist/_virtual/index5.js +1 -1
  3. package/dist/_virtual/index6.js +1 -1
  4. package/dist/node_modules/toposort/index.js +1 -1
  5. package/dist/node_modules/yup/index.esm.js +1 -1
  6. package/dist/src/helpers/docs.helper.js.map +1 -1
  7. package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
  8. package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -1
  9. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js +1 -1
  10. package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js.map +1 -1
  11. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
  12. package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
  13. package/dist/src/layout/docsLayout.js +1 -1
  14. package/dist/src/layout/docsLayout.js.map +1 -1
  15. package/dist/styles.css +280 -280
  16. package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +5 -0
  17. package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +2 -1
  18. package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +6 -5
  19. package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +4 -2
  20. package/dist/types/layout/docsLayout.d.ts +4 -3
  21. package/package.json +3 -1
  22. package/rollup.config.js +2 -2
  23. package/src/helpers/docs.helper.ts +1 -0
  24. package/src/layout/docsComponents/DocsContent/DocsContent.tsx +6 -4
  25. package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +13 -11
  26. package/src/layout/docsComponents/DocsContent/TagPage/index.tsx +58 -4
  27. package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +11 -33
  28. package/src/layout/docsLayout.tsx +99 -21
@@ -1,2 +1,2 @@
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};
1
+ import{__require as e}from"../node_modules/tiny-case/index.js";var r=e();export{r as t};
2
2
  //# sourceMappingURL=index4.js.map
@@ -1,2 +1,2 @@
1
- var e={exports:{}};export{e as __module};
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=index5.js.map
@@ -1,2 +1,2 @@
1
- import{__require as e}from"../node_modules/tiny-case/index.js";var r=e();export{r as t};
1
+ var e={exports:{}};export{e as __module};
2
2
  //# sourceMappingURL=index6.js.map
@@ -1,2 +1,2 @@
1
- import{__module as r}from"../../_virtual/index5.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};
1
+ import{__module as r}from"../../_virtual/index6.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/index3.js";import{t}from"../../_virtual/index6.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/index3.js";import{t}from"../../_virtual/index4.js";import s from"../../_virtual/index5.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 +1 @@
1
- {"version":3,"file":"docs.helper.js","sources":["../../../src/helpers/docs.helper.ts"],"sourcesContent":["import { ApiSpecModel } from '@entities/index'\nimport { HTTPMethod, OpenAPIFile } from '@entities/openApi'\nimport { nanoid } from 'nanoid'\nimport { OverviewData, TagData } from 'src/layout/docsLayout'\n\nexport const transformOpenApiToDocs = (api: ApiSpecModel): OverviewData => {\n const parsedOpenApi: OpenAPIFile =\n typeof api.metaData.openApiJson === 'string'\n ? JSON.parse(api.metaData.openApiJson)\n : api.metaData.openApiJson\n const groupedPathsByTags: Record<string, TagData[]> = { default: [] }\n const validTags = new Set(parsedOpenApi.tags.map(({ name }) => name))\n\n for (const [path, methods] of Object.entries(parsedOpenApi.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: nanoid(8) } as TagData)\n })\n } else {\n groupedPathsByTags.default.push({ ...entry, id: nanoid(8) } as TagData)\n }\n }\n }\n\n return {\n ...parsedOpenApi.info,\n apiSpecId: api.apiSpecId,\n contextPath: api.contextPath,\n associatedProduct: api.associatedProduct,\n apiVersions: api.apiVersions,\n tags: groupedPathsByTags,\n servers: parsedOpenApi.servers,\n }\n}\n"],"names":["transformOpenApiToDocs","api","parsedOpenApi","metaData","openApiJson","JSON","parse","groupedPathsByTags","default","validTags","Set","tags","map","name","path","methods","Object","entries","paths","method","methodData","entry","assign","matchedTags","_a","filter","tag","has","length","forEach","push","id","nanoid","info","apiSpecId","contextPath","associatedProduct","apiVersions","servers"],"mappings":"4DAKa,MAAAA,EAA0BC,UACrC,MAAMC,EACgC,iBAA7BD,EAAIE,SAASC,YAChBC,KAAKC,MAAML,EAAIE,SAASC,aACxBH,EAAIE,SAASC,YACbG,EAAgD,CAAEC,QAAS,IAC3DC,EAAY,IAAIC,IAAIR,EAAcS,KAAKC,KAAI,EAAGC,UAAWA,KAE/D,IAAK,MAAOC,EAAMC,KAAYC,OAAOC,QAAQf,EAAcgB,OACzD,IAAK,MAAOC,EAAQC,KAAeJ,OAAOC,QAAQF,GAAU,CAC1D,MAAMM,EAAaL,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EAAAF,GAAY,CAAAD,OAAQA,EAAsBL,SAGvDS,GAF8B,QAAfC,EAAAJ,EAAWT,YAAI,IAAAa,EAAAA,EAAI,IAEPC,QAAQC,GAAQjB,EAAUkB,IAAID,KAE3DH,EAAYK,OAAS,EACvBL,EAAYM,SAASH,IACdnB,EAAmBmB,KAAMnB,EAAmBmB,GAAO,IACxDnB,EAAmBmB,GAAKI,KAAKd,OAAKM,OAAAN,OAAAM,OAAA,CAAA,EAAAD,GAAO,CAAAU,GAAIC,EAAO,KAAgB,IAGtEzB,EAAmBC,QAAQsB,KAAKd,+BAAKK,GAAK,CAAEU,GAAIC,EAAO,KAE1D,CAGH,OAAAhB,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EACKpB,EAAc+B,MACjB,CAAAC,UAAWjC,EAAIiC,UACfC,YAAalC,EAAIkC,YACjBC,kBAAmBnC,EAAImC,kBACvBC,YAAapC,EAAIoC,YACjB1B,KAAMJ,EACN+B,QAASpC,EAAcoC,SACxB"}
1
+ {"version":3,"file":"docs.helper.js","sources":["../../../src/helpers/docs.helper.ts"],"sourcesContent":["import { ApiSpecModel } from '@entities/index'\nimport { HTTPMethod, OpenAPIFile } from '@entities/openApi'\nimport { nanoid } from 'nanoid'\nimport { OverviewData, TagData } from 'src/layout/docsLayout'\n\nexport const transformOpenApiToDocs = (api: ApiSpecModel): OverviewData => {\n const parsedOpenApi: OpenAPIFile =\n typeof api.metaData.openApiJson === 'string'\n ? JSON.parse(api.metaData.openApiJson)\n : api.metaData.openApiJson\n\n const groupedPathsByTags: Record<string, TagData[]> = { default: [] }\n const validTags = new Set(parsedOpenApi.tags.map(({ name }) => name))\n\n for (const [path, methods] of Object.entries(parsedOpenApi.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: nanoid(8) } as TagData)\n })\n } else {\n groupedPathsByTags.default.push({ ...entry, id: nanoid(8) } as TagData)\n }\n }\n }\n\n return {\n ...parsedOpenApi.info,\n apiSpecId: api.apiSpecId,\n contextPath: api.contextPath,\n associatedProduct: api.associatedProduct,\n apiVersions: api.apiVersions,\n tags: groupedPathsByTags,\n servers: parsedOpenApi.servers,\n }\n}\n"],"names":["transformOpenApiToDocs","api","parsedOpenApi","metaData","openApiJson","JSON","parse","groupedPathsByTags","default","validTags","Set","tags","map","name","path","methods","Object","entries","paths","method","methodData","entry","assign","matchedTags","_a","filter","tag","has","length","forEach","push","id","nanoid","info","apiSpecId","contextPath","associatedProduct","apiVersions","servers"],"mappings":"4DAKa,MAAAA,EAA0BC,UACrC,MAAMC,EACgC,iBAA7BD,EAAIE,SAASC,YAChBC,KAAKC,MAAML,EAAIE,SAASC,aACxBH,EAAIE,SAASC,YAEbG,EAAgD,CAAEC,QAAS,IAC3DC,EAAY,IAAIC,IAAIR,EAAcS,KAAKC,KAAI,EAAGC,UAAWA,KAE/D,IAAK,MAAOC,EAAMC,KAAYC,OAAOC,QAAQf,EAAcgB,OACzD,IAAK,MAAOC,EAAQC,KAAeJ,OAAOC,QAAQF,GAAU,CAC1D,MAAMM,EAAaL,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EAAAF,GAAY,CAAAD,OAAQA,EAAsBL,SAGvDS,GAF8B,QAAfC,EAAAJ,EAAWT,YAAI,IAAAa,EAAAA,EAAI,IAEPC,QAAQC,GAAQjB,EAAUkB,IAAID,KAE3DH,EAAYK,OAAS,EACvBL,EAAYM,SAASH,IACdnB,EAAmBmB,KAAMnB,EAAmBmB,GAAO,IACxDnB,EAAmBmB,GAAKI,KAAKd,OAAKM,OAAAN,OAAAM,OAAA,CAAA,EAAAD,GAAO,CAAAU,GAAIC,EAAO,KAAgB,IAGtEzB,EAAmBC,QAAQsB,KAAKd,+BAAKK,GAAK,CAAEU,GAAIC,EAAO,KAE1D,CAGH,OAAAhB,OAAAM,OAAAN,OAAAM,OAAA,CAAA,EACKpB,EAAc+B,MACjB,CAAAC,UAAWjC,EAAIiC,UACfC,YAAalC,EAAIkC,YACjBC,kBAAmBnC,EAAImC,kBACvBC,YAAapC,EAAIoC,YACjB1B,KAAMJ,EACN+B,QAASpC,EAAcoC,SACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { CopySticker } from '../../../assets/icons/index'\nimport { TagPage } from './TagPage'\nimport { EndpointPage } from './EndpointPage'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsContent = ({\n data,\n activeType,\n setActiveItemData,\n setActiveType,\n setExpandedSections,\n}: {\n data: OverviewData | EndpointData\n activeType: 'OVERVIEW' | 'ENDPOINT'\n}) => {\n return (\n <main>\n {activeType === 'OVERVIEW' ? (\n <TagPage\n data={data}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n />\n ) : (\n <EndpointPage data={data} />\n )}\n </main>\n )\n}\n\nexport default DocsContent\n"],"names":["DocsContent","data","activeType","setActiveItemData","setActiveType","setExpandedSections","_jsx","children","TagPage","EndpointPage"],"mappings":"4JAQA,MAAMA,EAAc,EAClBC,OACAC,aACAC,oBACAC,gBACAC,yBAMEC,MACG,OAAA,CAAAC,SAAe,aAAfL,EACCI,MAACE,EAAO,CACNP,KAAMA,EACNE,kBAAmBA,EACnBC,cAAeA,EACfC,oBAAqBA,IAGvBC,MAACG,EAAY,CAACR,KAAMA"}
1
+ {"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport { TagPage } from './TagPage'\nimport { EndpointPage } from './EndpointPage'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsContent = ({\n data,\n activeType,\n setActiveItemData,\n setActiveType,\n setExpandedSections,\n}: {\n data: OverviewData | EndpointData\n activeType: 'OVERVIEW' | 'ENDPOINT'\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n setExpandedSections: React.Dispatch<React.SetStateAction<Record<string, boolean>>>\n toggleSection: (apiId: string, sectionId: string, resetOthers?: boolean, key?: string[]) => void\n}) => {\n return (\n <main>\n {activeType === 'OVERVIEW' ? (\n <TagPage\n data={data as OverviewData}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n />\n ) : (\n <EndpointPage data={data as EndpointData} />\n )}\n </main>\n )\n}\n\nexport default DocsContent\n"],"names":["DocsContent","data","activeType","setActiveItemData","setActiveType","setExpandedSections","_jsx","children","TagPage","EndpointPage"],"mappings":"4JAMA,MAAMA,EAAc,EAClBC,OACAC,aACAC,oBACAC,gBACAC,yBAUEC,MACG,OAAA,CAAAC,SAAe,aAAfL,EACCI,MAACE,EAAO,CACNP,KAAMA,EACNE,kBAAmBA,EACnBC,cAAeA,EACfC,oBAAqBA,IAGvBC,MAACG,EAAY,CAACR,KAAMA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n CopySticker,\n DownArrowIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { ArrowIcon, SelectGroup } from 'digitinary-ui'\nimport { useEffect, useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport { handleStatusColor } from '../../../../helpers/methodAccordion.helper'\nimport { httpStatusCodes } from '../../../../constants/index'\nimport styles from '../../Codebox/style.module.scss'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\n\nexport const EndpointPage = ({ data }) => {\n const [activeTab, setActiveTab] = useState('header')\n\n const httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={'statusCodeOptionContainer'}>\n <div\n className={'statusCodeOptionCircle'}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n }))\n\n const [expanded, setExpanded] = useState(null)\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const [headersList, setHeadersList] = useState({})\n const requestTableData = (data?.parameters || []).filter(\n (param) => param.in?.toLowerCase() === activeTab.toLowerCase()\n )\n\n useEffect(() => {\n if (selectedResStatusCode && selectedResStatusCode.value) {\n const headerObj = data?.responses[selectedResStatusCode.value]\n setHeadersList(headerObj?.headers)\n }\n }, [selectedResStatusCode])\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button className=\"back-button\" onClick={() => window.history.back()}>\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3> Api Name</h3>\n <h1 className=\"api-title\">{data?.api?.title}</h1>\n <div className=\"url-box\">\n <div style={{ textAlign: 'center' }}>\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <span className=\"url-text\">{data?.path}</span>\n </div>\n <span className=\"icon\" onClick={() => navigator.clipboard.writeText(data?.path)}>\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n\n <p className=\"api-desc\">{data?.api?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n {['header', 'path', 'query', 'Body'].map((tab) => (\n <button\n key={tab}\n className={`tab ${activeTab === tab ? 'active' : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n <span className=\"tab-label\">\n {tab === 'requestBody'\n ? 'Request Body'\n : tab.charAt(0).toUpperCase() + tab.slice(1)}\n </span>\n </button>\n ))}\n </div>\n\n {\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {data.parameters\n ?.filter((p) => p.in?.toLowerCase() === activeTab.toLowerCase())\n .map((row, index) => (\n <tr key={index}>\n <td>{row.name}</td>\n <td>{row.required ? 'True' : 'False'}</td>\n <td>{row.schema?.type || '-'}</td>\n <td>{Array.isArray(row.schema?.enum) ? row.schema.enum.join(' / ') : '-'}</td>\n <td className=\"desc-cell\">\n <div className={`desc-text ${expanded === index ? 'expanded' : ''}`}>\n {row.description || 'No description'}\n </div>\n <button\n className=\"desc-toggle\"\n onClick={() => setExpanded(expanded === index ? null : index)}\n >\n <SVGLoader\n src={DownArrowIcon}\n className={expanded === index ? 'rotated' : ''}\n />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <div className=\"response-section\">\n <h3>Response</h3>\n\n <div style={{ width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Header Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {!!headersList && Object.keys(headersList) && Object.keys(headersList).map((key, index) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td>{headersList[key]?.schema?.type}</td>\n <td>{headersList[key]?.schema?.enum?.join('/')}</td>\n <td>{headersList[key]?.description}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["EndpointPage","data","activeTab","setActiveTab","useState","httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","filter","param","in","_a","toLowerCase","useEffect","headerObj","responses","headers","jsx","onClick","window","history","back","SVGLoader","src","ArrowBack","Tooltip","content","api","title","textAlign","_b","method","path","navigator","clipboard","writeText","CopySticker","_c","description","tab","RequestOption","charAt","toUpperCase","slice","_d","p","row","index","name","required","schema","type","Array","isArray","enum","join","DownArrowIcon","width","marginLeft","Object","keys","_e","length","styles","codeboxSection","codeboxHeader","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_f","_g"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n CopySticker,\n DownArrowIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { SelectGroup } from 'digitinary-ui'\nimport { useEffect, useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport { handleStatusColor } from '../../../../helpers/methodAccordion.helper'\nimport { httpStatusCodes } from '../../../../constants/index'\nimport styles from '../../Codebox/style.module.scss'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\n\nexport const EndpointPage = ({ data }: { data: EndpointData }) => {\n const [activeTab, setActiveTab] = useState('header')\n\n const httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={'statusCodeOptionContainer'}>\n <div\n className={'statusCodeOptionCircle'}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n }))\n\n const [expanded, setExpanded] = useState(null)\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const [headersList, setHeadersList] = useState({})\n const requestTableData = (data?.parameters || []).filter(\n (param) => param.in?.toLowerCase() === activeTab.toLowerCase()\n )\n\n useEffect(() => {\n if (selectedResStatusCode && selectedResStatusCode.value) {\n const headerObj = data?.responses[selectedResStatusCode.value]\n setHeadersList(headerObj?.headers)\n }\n }, [selectedResStatusCode])\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button className=\"back-button\" onClick={() => window.history.back()}>\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3> Api Name</h3>\n <h1 className=\"api-title\">{data?.api?.title}</h1>\n <div className=\"url-box\">\n <div style={{ textAlign: 'center' }}>\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <span className=\"url-text\">{data?.path}</span>\n </div>\n <span className=\"icon\" onClick={() => navigator.clipboard.writeText(data?.path)}>\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n\n <p className=\"api-desc\">{data?.api?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n {['header', 'path', 'query', 'Body'].map((tab) => (\n <button\n key={tab}\n className={`tab ${activeTab === tab ? 'active' : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n <span className=\"tab-label\">\n {tab === 'requestBody'\n ? 'Request Body'\n : tab.charAt(0).toUpperCase() + tab.slice(1)}\n </span>\n </button>\n ))}\n </div>\n\n {\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {data.parameters\n ?.filter((p) => p.in?.toLowerCase() === activeTab.toLowerCase())\n .map((row, index) => (\n <tr key={index}>\n <td>{row.name}</td>\n <td>{row.required ? 'True' : 'False'}</td>\n <td>{row.schema?.type || '-'}</td>\n <td>{Array.isArray(row.schema?.enum) ? row.schema.enum.join(' / ') : '-'}</td>\n <td className=\"desc-cell\">\n <div className={`desc-text ${expanded === index ? 'expanded' : ''}`}>\n {row.description || 'No description'}\n </div>\n <button\n className=\"desc-toggle\"\n onClick={() => setExpanded(expanded === index ? null : index)}\n >\n <SVGLoader\n src={DownArrowIcon}\n className={expanded === index ? 'rotated' : ''}\n />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <div className=\"response-section\">\n <h3>Response</h3>\n\n <div style={{ width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Header Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {!!headersList &&\n Object.keys(headersList) &&\n Object.keys(headersList).map((key, index) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td>{headersList[key]?.schema?.type}</td>\n <td>{headersList[key]?.schema?.enum?.join('/')}</td>\n <td>{headersList[key]?.description}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["EndpointPage","data","activeTab","setActiveTab","useState","httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","filter","param","in","_a","toLowerCase","useEffect","headerObj","responses","headers","jsx","onClick","window","history","back","SVGLoader","src","ArrowBack","Tooltip","content","api","title","textAlign","_b","method","path","navigator","clipboard","writeText","CopySticker","_c","description","tab","RequestOption","charAt","toUpperCase","slice","_d","p","row","index","name","required","schema","type","Array","isArray","enum","join","DownArrowIcon","width","marginLeft","Object","keys","_e","length","styles","codeboxSection","codeboxHeader","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_f","_g"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s}from"../../../../../_virtual/jsx-runtime.js";import e from"../../../../components/SVGLoader/SVGLoader.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/arrowRightGray.svg.js";const r=({data:r,setActiveItemData:n,setActiveType:l,setExpandedSections:t})=>{var c,d;return s.jsxs("div",{className:"api-details-page",children:[s.jsx("h2",{className:"welcome",children:"Welcome to"}),s.jsx("h1",{className:"api-title",children:null==r?void 0:r.title}),s.jsxs("p",{className:"api-version",children:["API Version: ",s.jsx("span",{children:null==r?void 0:r.version})]}),s.jsxs("div",{className:"custom-url-input",children:[s.jsx("label",{className:"input-label",children:"API Base URL"}),s.jsxs("div",{className:"input-wrapper",children:[s.jsx("input",{type:"text",value:r&&r.servers&&r.servers.length>0?null===(c=r.servers[0])||void 0===c?void 0:c.url:"-",readOnly:!0}),s.jsx("span",{className:"icon",onClick:()=>{var s;return navigator.clipboard.writeText(`${r&&r.servers&&r.servers.length>0?null===(s=r.servers[0])||void 0===s?void 0:s.url:"-"}`)},children:s.jsx(e,{src:i})})]})]}),s.jsx("p",{className:"api-desc",children:"API Description"}),s.jsxs("div",{className:"api-product-tag",children:["Product with this API ",s.jsx("span",{className:"product-tag",children:r.associatedProduct.name})]}),s.jsx("h3",{className:"section-title",children:"Endpoints"}),Object.entries(null==r?void 0:r.tags).map((([i,c])=>s.jsxs("div",{className:"endpoint-group",children:[s.jsx("h4",{className:"tag-title",children:i}),s.jsx("div",{className:"endpoint-list",children:c.map(((c,d)=>{var o,p,v;return s.jsxs("div",{className:"endpoint-card",onClick:()=>(s=>{n(Object.assign(Object.assign({},s),{api:Object.assign({id:r.apiSpecId,title:r.title,description:r.description,version:r.version},r)})),l("ENDPOINT"),t((e=>Object.assign(Object.assign({},e),{[`api-${r.apiSpecId}-section`]:!0,[`api-${r.apiSpecId}-endpoints`]:!0,[`api-${r.apiSpecId}-resource-${s.id}`]:!0})))})(c),children:[s.jsxs("div",{children:[s.jsxs("div",{className:"endpoint-card-header",children:[s.jsx("span",{className:`method-label ${c.method.toLowerCase()}`,children:c.method}),s.jsx("div",{className:"title-wrapper",children:s.jsxs("h5",{children:[(c.summary||"Endpoint Name").slice(0,17),(null!==(p=null===(o=c.summary)||void 0===o?void 0:o.length)&&void 0!==p?p:0)>17&&"..."]})})]}),s.jsxs("div",{className:"endpoint-meta",children:[s.jsx("p",{children:c.path}),s.jsx("p",{className:"description",children:null!==(v=c.description)&&void 0!==v?v:"No Description "})]})]}),s.jsx("div",{className:"endpoint-arrow",children:s.jsx(e,{src:a})})]},`${i}-${d}`)}))})]},i))),(null===(d=r.apiVersions)||void 0===d?void 0:d.length)>0&&s.jsxs("div",{className:"versions-section",children:[s.jsx("h4",{children:"API Versions"}),s.jsx("div",{className:"version-list",children:r.apiVersions.map(((e,i)=>{var a;return s.jsx("button",{className:"version-btn",children:(null===(a=e.metaData)||void 0===a?void 0:a.version)||"N/A"},i)}))})]})]})};export{r as TagPage};
1
+ import{j as s}from"../../../../../_virtual/jsx-runtime.js";import e from"../../../../components/SVGLoader/SVGLoader.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/arrowRightGray.svg.js";const n=({data:n,setActiveItemData:r,setActiveType:t,setExpandedSections:c})=>{var d,l;return s.jsxs("div",{className:"api-details-page",children:[s.jsx("h2",{className:"welcome",children:"Welcome to"}),s.jsx("h1",{className:"api-title",children:null==n?void 0:n.title}),s.jsxs("p",{className:"api-version",children:["API Version: ",s.jsx("span",{children:null==n?void 0:n.version})]}),s.jsxs("div",{className:"custom-url-input",children:[s.jsx("label",{className:"input-label",children:"API Base URL"}),s.jsxs("div",{className:"input-wrapper",children:[s.jsx("input",{type:"text",value:n&&n.servers&&n.servers.length>0?null===(d=n.servers[0])||void 0===d?void 0:d.url:"-",readOnly:!0}),s.jsx("span",{className:"icon",onClick:()=>{var s;return navigator.clipboard.writeText(`${n&&n.servers&&n.servers.length>0?null===(s=n.servers[0])||void 0===s?void 0:s.url:"-"}`)},children:s.jsx(e,{src:i})})]})]}),s.jsx("p",{className:"api-desc",children:"API Description"}),s.jsxs("div",{className:"api-product-tag",children:["Product with this API ",s.jsx("span",{className:"product-tag",children:n.associatedProduct.name})]}),s.jsx("h3",{className:"section-title",children:"Endpoints"}),Object.entries(null==n?void 0:n.tags).map((([i,d])=>s.jsxs("div",{className:"endpoint-group",children:[s.jsx("h4",{className:"tag-title",children:i}),s.jsx("div",{className:"endpoint-list",children:d.map(((d,l)=>{var o,p,v;return s.jsxs("div",{className:"endpoint-card",onClick:()=>(s=>{r(Object.assign(Object.assign({},s),{api:Object.assign({id:n.apiSpecId,title:n.title,description:n.description,version:n.version},n)})),t("ENDPOINT"),c((e=>Object.assign(Object.assign({},e),{[`api-${n.apiSpecId}-section`]:!0,[`api-${n.apiSpecId}-endpoints`]:!0,[`api-${n.apiSpecId}-resource-${s.id}`]:!0})))})(d),children:[s.jsxs("div",{children:[s.jsxs("div",{className:"endpoint-card-header",children:[s.jsx("span",{className:`method-label ${d.method.toLowerCase()}`,children:d.method}),s.jsx("div",{className:"title-wrapper",children:s.jsxs("h5",{children:[(d.summary||"Endpoint Name").slice(0,17),(null!==(p=null===(o=d.summary)||void 0===o?void 0:o.length)&&void 0!==p?p:0)>17&&"..."]})})]}),s.jsxs("div",{className:"endpoint-meta",children:[s.jsx("p",{children:d.path}),s.jsx("p",{className:"description",children:null!==(v=d.description)&&void 0!==v?v:"No Description "})]})]}),s.jsx("div",{className:"endpoint-arrow",children:s.jsx(e,{src:a})})]},`${i}-${l}`)}))})]},i))),(null===(l=n.apiVersions)||void 0===l?void 0:l.length)>0&&s.jsxs("div",{className:"versions-section",children:[s.jsx("h4",{children:"API Versions"}),s.jsx("div",{className:"version-list",children:n.apiVersions.map(((e,i)=>{var a;return s.jsx("button",{className:"version-btn",onClick:()=>(s=>{var e;if(s.apiSpecId===n.apiSpecId)return void t("OVERVIEW");const i=n.apiVersions.find((e=>e.apiSpecId===s.apiSpecId));if(!i)return;const a=Object.assign(Object.assign(Object.assign({},n),i),{version:(null===(e=i.metaData)||void 0===e?void 0:e.version)||"",title:i.name||"",apiSpecId:i.apiSpecId});r(Object.assign(Object.assign({},a),{api:Object.assign({id:a.apiSpecId,title:a.title,description:a.description,version:a.version},a)})),t("OVERVIEW"),c((s=>Object.assign(Object.assign({},s),{[`api-${a.apiSpecId}-section`]:!0})))})(e),children:(null===(a=e.metaData)||void 0===a?void 0:a.version)||"N/A"},i)}))})]})]})};export{n as TagPage};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/TagPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport { arrowRightGray, CopySticker } from '../../../../assets/icons/index'\nimport { OverviewData } from 'src/layout/docsLayout'\n\nexport const TagPage = ({ data, setActiveItemData, setActiveType, setExpandedSections }) => {\n const handleClick = (endpoint) => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: data.apiSpecId,\n title: data.title,\n description: data.description,\n version: data.version,\n ...data,\n },\n })\n setActiveType('ENDPOINT')\n\n setExpandedSections((prev) => ({\n ...prev,\n [`api-${data.apiSpecId}-section`]: true,\n [`api-${data.apiSpecId}-endpoints`]: true,\n [`api-${data.apiSpecId}-resource-${endpoint.id}`]: true,\n }))\n }\n return (\n <div className=\"api-details-page\">\n <h2 className=\"welcome\">Welcome to</h2>\n <h1 className=\"api-title\">{data?.title}</h1>\n <p className=\"api-version\">\n API Version: <span>{data?.version}</span>\n </p>\n\n <div className=\"custom-url-input\">\n <label className=\"input-label\">API Base URL</label>\n <div className=\"input-wrapper\">\n <input\n type=\"text\"\n value={!!data && !!data.servers && data.servers.length > 0 ? data.servers[0]?.url : '-'}\n readOnly\n />\n <span\n className=\"icon\"\n onClick={() =>\n navigator.clipboard.writeText(\n `${!!data && !!data.servers && data.servers.length > 0 ? data.servers[0]?.url : '-'}`\n )\n }\n >\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n </div>\n\n <p className=\"api-desc\">API Description</p>\n <div className=\"api-product-tag\">\n Product with this API <span className=\"product-tag\">{data.associatedProduct.name}</span>\n </div>\n\n <h3 className=\"section-title\">Endpoints</h3>\n\n {Object.entries(data?.tags).map(([tag, endpoints]) => (\n <div className=\"endpoint-group\" key={tag}>\n <h4 className=\"tag-title\">{tag}</h4>\n <div className=\"endpoint-list\">\n {endpoints.map((endpoint, idx) => (\n <div\n className=\"endpoint-card\"\n onClick={() => handleClick(endpoint)}\n key={`${tag}-${idx}`}\n >\n <div>\n <div className=\"endpoint-card-header\">\n <span className={`method-label ${endpoint.method.toLowerCase()}`}>\n {endpoint.method}\n </span>\n <div className=\"title-wrapper\">\n <h5>\n {(endpoint.summary || 'Endpoint Name').slice(0, 17)}\n {(endpoint.summary?.length ?? 0) > 17 && '...'}\n </h5>\n </div>\n </div>\n <div className=\"endpoint-meta\">\n <p>{endpoint.path}</p>\n <p className=\"description\">{endpoint.description ?? 'No Description '}</p>\n </div>\n </div>\n\n <div className=\"endpoint-arrow\">\n <SVGLoader src={arrowRightGray} />\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n\n {data.apiVersions?.length > 0 && (\n <div className=\"versions-section\">\n <h4>API Versions</h4>\n <div className=\"version-list\">\n {data.apiVersions.map((verObj, index) => (\n <button key={index} className=\"version-btn\">\n {verObj.metaData?.version || 'N/A'}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["TagPage","data","setActiveItemData","setActiveType","setExpandedSections","_jsxs","className","_jsx","children","title","version","jsxs","jsx","type","value","servers","length","_a","url","readOnly","onClick","navigator","clipboard","writeText","SVGLoader","src","CopySticker","associatedProduct","name","Object","entries","tags","map","tag","endpoints","endpoint","idx","assign","api","id","apiSpecId","description","prev","handleClick","method","toLowerCase","summary","slice","_b","path","_c","arrowRightGray","apiVersions","verObj","index","metaData"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/TagPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport { arrowRightGray, CopySticker } from '../../../../assets/icons/index'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nexport const TagPage = ({\n data,\n setActiveItemData,\n setActiveType,\n setExpandedSections,\n}: {\n data: OverviewData\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n setExpandedSections: React.Dispatch<React.SetStateAction<Record<string, boolean>>>\n}) => {\n const handleVersionClick = (verObj) => {\n if (verObj.apiSpecId === data.apiSpecId) {\n setActiveType('OVERVIEW')\n return\n }\n\n const matchedVersion = data.apiVersions.find((v) => v.apiSpecId === verObj.apiSpecId)\n\n if (!matchedVersion) {\n return\n }\n\n const newData = {\n ...data,\n ...matchedVersion,\n version: matchedVersion.metaData?.version || '',\n title: matchedVersion.name || '',\n apiSpecId: matchedVersion.apiSpecId,\n }\n\n setActiveItemData({\n ...newData,\n api: {\n id: newData.apiSpecId,\n title: newData.title,\n description: newData.description,\n version: newData.version,\n ...newData,\n },\n })\n\n setActiveType('OVERVIEW')\n setExpandedSections((prev) => ({\n ...prev,\n [`api-${newData.apiSpecId}-section`]: true,\n }))\n }\n\n const handleClick = (endpoint) => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: data.apiSpecId,\n title: data.title,\n description: data.description,\n version: data.version,\n ...data,\n },\n })\n setActiveType('ENDPOINT')\n\n setExpandedSections((prev) => ({\n ...prev,\n [`api-${data.apiSpecId}-section`]: true,\n [`api-${data.apiSpecId}-endpoints`]: true,\n [`api-${data.apiSpecId}-resource-${endpoint.id}`]: true,\n }))\n }\n return (\n <div className=\"api-details-page\">\n <h2 className=\"welcome\">Welcome to</h2>\n <h1 className=\"api-title\">{data?.title}</h1>\n <p className=\"api-version\">\n API Version: <span>{data?.version}</span>\n </p>\n\n <div className=\"custom-url-input\">\n <label className=\"input-label\">API Base URL</label>\n <div className=\"input-wrapper\">\n <input\n type=\"text\"\n value={!!data && !!data.servers && data.servers.length > 0 ? data.servers[0]?.url : '-'}\n readOnly\n />\n <span\n className=\"icon\"\n onClick={() =>\n navigator.clipboard.writeText(\n `${\n !!data && !!data.servers && data.servers.length > 0 ? data.servers[0]?.url : '-'\n }`\n )\n }\n >\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n </div>\n\n <p className=\"api-desc\">API Description</p>\n <div className=\"api-product-tag\">\n Product with this API <span className=\"product-tag\">{data.associatedProduct.name}</span>\n </div>\n\n <h3 className=\"section-title\">Endpoints</h3>\n\n {Object.entries(data?.tags).map(([tag, endpoints]) => (\n <div className=\"endpoint-group\" key={tag}>\n <h4 className=\"tag-title\">{tag}</h4>\n <div className=\"endpoint-list\">\n {endpoints.map((endpoint, idx) => (\n <div\n className=\"endpoint-card\"\n onClick={() => handleClick(endpoint)}\n key={`${tag}-${idx}`}\n >\n <div>\n <div className=\"endpoint-card-header\">\n <span className={`method-label ${endpoint.method.toLowerCase()}`}>\n {endpoint.method}\n </span>\n <div className=\"title-wrapper\">\n <h5>\n {(endpoint.summary || 'Endpoint Name').slice(0, 17)}\n {(endpoint.summary?.length ?? 0) > 17 && '...'}\n </h5>\n </div>\n </div>\n <div className=\"endpoint-meta\">\n <p>{endpoint.path}</p>\n <p className=\"description\">{endpoint.description ?? 'No Description '}</p>\n </div>\n </div>\n\n <div className=\"endpoint-arrow\">\n <SVGLoader src={arrowRightGray} />\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n\n {data.apiVersions?.length > 0 && (\n <div className=\"versions-section\">\n <h4>API Versions</h4>\n <div className=\"version-list\">\n {data.apiVersions.map((verObj, index) => (\n <button\n key={index}\n className=\"version-btn\"\n onClick={() => handleVersionClick(verObj)}\n >\n {verObj.metaData?.version || 'N/A'}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["TagPage","data","setActiveItemData","setActiveType","setExpandedSections","_jsxs","className","_jsx","children","title","version","jsxs","jsx","type","value","servers","length","_a","url","readOnly","onClick","navigator","clipboard","writeText","SVGLoader","src","CopySticker","associatedProduct","name","Object","entries","tags","map","tag","endpoints","endpoint","idx","assign","api","id","apiSpecId","description","prev","handleClick","method","toLowerCase","summary","slice","_b","path","_c","arrowRightGray","apiVersions","verObj","index","matchedVersion","find","v","newData","metaData","handleVersionClick"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useEffect as s}from"react";import i from"../../../components/SVGLoader/SVGLoader.js";import a from"../../../assets/icons/arrowDownGray.svg.js";import c from"../../../assets/icons/arrowRightGray.svg.js";import t from"../../../assets/icons/document.svg.js";import p from"../../../assets/icons/eye.svg.js";const n=({apis:n,setActiveItemData:r,activeItemData:d,activeType:o,expandedSections:l,setExpandedSections:j,isFirstApiExpanded:m,setIsFirstApiExpanded:v,setActiveType:_})=>{s((()=>{if(!(null==n?void 0:n.length)||!m)return;const e=n[0],s=`api-${e.apiSpecId}-section`,i=`api-${e.apiSpecId}-overview`;j((e=>Object.assign(Object.assign({},e),{[s]:!0,[i]:!0}))),r(e),_("OVERVIEW"),v(!1)}),[n,m]);const x=(e,s,i,a)=>{if(i&&a){const i=Object.fromEntries(Object.entries(Object.assign({},l)).filter((([i])=>!!i.includes(e)&&(i===s||!a.some((e=>i.includes(e)))))));j(Object.assign(Object.assign({},i),{[s]:!l[s]}))}else j((e=>Object.assign(Object.assign({},e),{[s]:!e[s]})))},h=(s,i)=>s.map(((s,a)=>{const c=`api-${i.apiSpecId}-resource-${s.id}`,t=l[c];return e.jsxs("div",{className:`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${s.method.toLowerCase()}`,onClick:()=>{t||(r(Object.assign(Object.assign({},s),{api:Object.assign({id:i.apiSpecId,title:i.title,description:i.description,version:i.version},i)})),_("ENDPOINT"),x(i.apiSpecId,c,!0,["resource","overview"]))},"data-active":t,children:[e.jsx("span",{className:"api-docs-api-tree__endpoint-method",children:s.method}),e.jsx("span",{className:"api-docs-api-tree__endpoint-name",children:s.path})]},a)})),I=s=>{const n=`api-${s.apiSpecId}-section`,j=`api-${s.apiSpecId}-endpoints`,m=`api-${s.apiSpecId}-overview`,v=l[n],I="apiSpecId"in d&&d.apiSpecId===s.apiSpecId&&"OVERVIEW"===o,S="api"in d&&d.api.id===s.apiSpecId&&"path"in d&&"method"in d;return e.jsxs("div",{className:"api-docs-api-tree__section","data-active":S||I,children:[e.jsxs("div",{className:"api-docs-api-tree__section-header",onClick:()=>x(s.apiSpecId,n),children:[v?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx(i,{src:t}),e.jsx("span",{className:"api-docs-api-tree__section-title",children:s.title})]}),v&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"api-docs-api-tree__section__overview",onClick:()=>{I||(x(s.apiSpecId,m,!0,["resource"]),r(s),_("OVERVIEW"))},"data-active":I,children:[e.jsx(i,{src:p}),e.jsx("span",{children:"Overview"})]}),e.jsxs("div",{className:"api-docs-api-tree__section__endpoints",onClick:()=>x(s.apiSpecId,j),"data-active":S&&!I,children:[l[j]?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx("span",{children:"Endpoints"})]}),l[j]&&e.jsx("div",{className:"api-docs-api-tree__subsections",children:Object.entries(s.tags).sort((([e],[s])=>"default"===e?1:"default"===s?-1:e.localeCompare(s))).map((([t,p],n)=>((s,t,p,n)=>{const r=`api-${p.apiSpecId}-section-${n}`,d=l[r];return e.jsxs("div",{className:"api-docs-api-tree__subsection",children:[e.jsxs("div",{className:"api-docs-api-tree__subsection-header",onClick:()=>x(p.apiSpecId,r),children:[d?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx("span",{className:"api-docs-api-tree__subsection-title",children:s})]}),d&&e.jsx("div",{className:"api-docs-api-tree__endpoints",children:h(t,p)})]},r)})(t,p,s,n)))})]})]},s.apiSpecId)};return e.jsx("aside",{className:"api-docs-api-tree",children:n.map((e=>I(e)))})};export{n as default};
1
+ import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useEffect as s}from"react";import i from"../../../components/SVGLoader/SVGLoader.js";import a from"../../../assets/icons/arrowDownGray.svg.js";import c from"../../../assets/icons/arrowRightGray.svg.js";import t from"../../../assets/icons/document.svg.js";import p from"../../../assets/icons/eye.svg.js";const r=({apis:r,setActiveItemData:n,activeItemData:d,activeType:o,expandedSections:l,setExpandedSections:m,isFirstApiExpanded:j,setIsFirstApiExpanded:v,setActiveType:_,toggleSection:x,canSelectFirstApi:h})=>{s((()=>{if(h||!(null==r?void 0:r.length)||!j)return;const e=r[0],s=`api-${e.apiSpecId}-section`,i=`api-${e.apiSpecId}-overview`;m({[s]:!0,[i]:!0}),n(e),_("OVERVIEW"),v(!1)}),[r,j]);const I=(s,i)=>s.map(((s,a)=>{const c=`api-${i.apiSpecId}-resource-${s.id}`,t=l[c];return e.jsxs("div",{className:`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${s.method.toLowerCase()}`,onClick:()=>{t||(n(Object.assign(Object.assign({},s),{api:Object.assign({id:i.apiSpecId,title:i.title,description:i.description,version:i.version},i)})),_("ENDPOINT"),x(i.apiSpecId,c,!0,["resource","overview"]))},"data-active":t,children:[e.jsx("span",{className:"api-docs-api-tree__endpoint-method",children:s.method}),e.jsx("span",{className:"api-docs-api-tree__endpoint-name",children:s.path})]},a)})),S=s=>{const r=`api-${s.apiSpecId}-section`,m=`api-${s.apiSpecId}-endpoints`,j=`api-${s.apiSpecId}-overview`,v=l[r],h="apiSpecId"in d&&d.apiSpecId===s.apiSpecId&&"OVERVIEW"===o,S="api"in d&&d.api.id===s.apiSpecId&&"path"in d&&"method"in d;return e.jsxs("div",{className:"api-docs-api-tree__section","data-active":S||h,children:[e.jsxs("div",{className:"api-docs-api-tree__section-header",onClick:()=>x(s.apiSpecId,r),children:[v?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx(i,{src:t}),e.jsx("span",{className:"api-docs-api-tree__section-title",children:s.title})]}),v&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"api-docs-api-tree__section__overview",onClick:()=>{h||(x(s.apiSpecId,j,!0,["resource"]),n(s),_("OVERVIEW"))},"data-active":h,children:[e.jsx(i,{src:p}),e.jsx("span",{children:"Overview"})]}),e.jsxs("div",{className:"api-docs-api-tree__section__endpoints",onClick:()=>x(s.apiSpecId,m),"data-active":S&&!h,children:[l[m]?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx("span",{children:"Endpoints"})]}),l[m]&&e.jsx("div",{className:"api-docs-api-tree__subsections",children:Object.entries(s.tags).sort((([e],[s])=>"default"===e?1:"default"===s?-1:e.localeCompare(s))).map((([t,p],r)=>((s,t,p,r)=>{const n=`api-${p.apiSpecId}-section-${r}`,d=l[n];return e.jsxs("div",{className:"api-docs-api-tree__subsection",children:[e.jsxs("div",{className:"api-docs-api-tree__subsection-header",onClick:()=>x(p.apiSpecId,n),children:[d?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx("span",{className:"api-docs-api-tree__subsection-title",children:s})]}),d&&e.jsx("div",{className:"api-docs-api-tree__endpoints",children:I(t,p)})]},n)})(t,p,s,r)))})]})]},s.apiSpecId)};return e.jsx("aside",{className:"api-docs-api-tree",children:r.map((e=>S(e)))})};export{r as default};
2
2
  //# sourceMappingURL=DocsSideMenuTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocsSideMenuTree.js","sources":["../../../../../src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx"],"sourcesContent":["import './style.scss'\nimport React, { useEffect, useState } from 'react'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { arrowDownGray, arrowRightGray, document, eye } from '../../../assets/icons'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsSideMenuTree = ({\n apis,\n setActiveItemData,\n activeItemData,\n activeType,\n expandedSections,\n setExpandedSections,\n isFirstApiExpanded,\n setIsFirstApiExpanded,\n setActiveType,\n}: {\n apis: OverviewData[]\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n activeItemData: OverviewData | EndpointData\n expandedSections: Record<string, boolean>\n setExpandedSections: React.Dispatch<React.SetStateAction<Record<string, boolean>>>\n isFirstApiExpanded: boolean\n setIsFirstApiExpanded: React.Dispatch<React.SetStateAction<boolean>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n activeType: 'OVERVIEW' | 'ENDPOINT'\n}) => {\n // Auto-expand first API only once\n useEffect(() => {\n if (!apis?.length || !isFirstApiExpanded) return\n\n const firstApi = apis[0]\n const sectionKey = `api-${firstApi.apiSpecId}-section`\n const overviewKey = `api-${firstApi.apiSpecId}-overview`\n\n setExpandedSections((prev) => ({\n ...prev,\n [sectionKey]: true,\n [overviewKey]: true,\n }))\n\n setActiveItemData(firstApi)\n setActiveType('OVERVIEW')\n setIsFirstApiExpanded(false)\n }, [apis, isFirstApiExpanded])\n\n const toggleSection = (apiId, sectionId: string, resetOthers?: boolean, key?: string[]) => {\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n if (expandKey === sectionId) return true\n // filter all sections containing the key\n if (key.some((k) => expandKey.includes(k))) return false\n return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !prev[sectionId],\n }))\n }\n }\n\n const renderEndpoints = (endpoints: EndpointData[], api: OverviewData) =>\n endpoints.map((endpoint, index) => {\n const key = `api-${api.apiSpecId}-resource-${endpoint.id}`\n const isExpanded = expandedSections[key]\n\n return (\n <div\n key={index}\n className={`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${endpoint.method.toLowerCase()}`}\n onClick={() => {\n if (!isExpanded) {\n setActiveItemData({\n ...endpoint,\n api: {\n id: api.apiSpecId,\n title: api.title,\n description: api.description,\n version: api.version,\n ...api,\n },\n })\n setActiveType('ENDPOINT')\n toggleSection(api.apiSpecId, key, true, ['resource', 'overview'])\n }\n }}\n data-active={isExpanded}\n >\n <span className=\"api-docs-api-tree__endpoint-method\">{endpoint.method}</span>\n <span className=\"api-docs-api-tree__endpoint-name\">{endpoint.path}</span>\n </div>\n )\n })\n\n const renderSubSection = (\n tagName: string,\n data: EndpointData[],\n api: OverviewData,\n sectionIndex: number\n ) => {\n const sectionKey = `api-${api.apiSpecId}-section-${sectionIndex}`\n const isSectionExpanded = expandedSections[sectionKey]\n\n return (\n <div key={sectionKey} className=\"api-docs-api-tree__subsection\">\n <div\n className=\"api-docs-api-tree__subsection-header\"\n onClick={() => toggleSection(api.apiSpecId, sectionKey)}\n >\n {isSectionExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span className=\"api-docs-api-tree__subsection-title\">{tagName}</span>\n </div>\n\n {isSectionExpanded && (\n <div className=\"api-docs-api-tree__endpoints\">{renderEndpoints(data, api)}</div>\n )}\n </div>\n )\n }\n\n const renderApiSection = (api: OverviewData) => {\n const sectionKey = `api-${api.apiSpecId}-section`\n const endpointsKey = `api-${api.apiSpecId}-endpoints`\n const overviewKey = `api-${api.apiSpecId}-overview`\n\n const isApiExpanded = expandedSections[sectionKey]\n const isOverviewExpanded =\n 'apiSpecId' in activeItemData &&\n activeItemData.apiSpecId === api.apiSpecId &&\n activeType === 'OVERVIEW'\n const isEndpointActive =\n 'api' in activeItemData &&\n activeItemData.api.id === api.apiSpecId &&\n 'path' in activeItemData &&\n 'method' in activeItemData\n\n return (\n <div\n key={api.apiSpecId}\n className=\"api-docs-api-tree__section\"\n data-active={isEndpointActive || isOverviewExpanded}\n >\n <div\n className=\"api-docs-api-tree__section-header\"\n onClick={() => toggleSection(api.apiSpecId, sectionKey)}\n >\n {isApiExpanded ? <SVGLoader src={arrowDownGray} /> : <SVGLoader src={arrowRightGray} />}\n <SVGLoader src={document} />\n <span className=\"api-docs-api-tree__section-title\">{api.title}</span>\n </div>\n\n {isApiExpanded && (\n <>\n <div\n className=\"api-docs-api-tree__section__overview\"\n onClick={() => {\n if (!isOverviewExpanded) {\n toggleSection(api.apiSpecId, overviewKey, true, ['resource'])\n setActiveItemData(api)\n setActiveType('OVERVIEW')\n }\n }}\n data-active={isOverviewExpanded}\n >\n <SVGLoader src={eye} />\n <span>Overview</span>\n </div>\n\n <div\n className=\"api-docs-api-tree__section__endpoints\"\n onClick={() => toggleSection(api.apiSpecId, endpointsKey)}\n data-active={isEndpointActive && !isOverviewExpanded}\n >\n {expandedSections[endpointsKey] ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span>Endpoints</span>\n </div>\n\n {expandedSections[endpointsKey] && (\n <div className=\"api-docs-api-tree__subsections\">\n {Object.entries(api.tags)\n .sort(([a], [b]) =>\n a === 'default' ? 1 : b === 'default' ? -1 : a.localeCompare(b)\n )\n .map(([tagName, data], i) => renderSubSection(tagName, data, api, i))}\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n return <aside className=\"api-docs-api-tree\">{apis.map((api) => renderApiSection(api))}</aside>\n}\n\nexport default DocsSideMenuTree\n"],"names":["DocsSideMenuTree","apis","setActiveItemData","activeItemData","activeType","expandedSections","setExpandedSections","isFirstApiExpanded","setIsFirstApiExpanded","setActiveType","useEffect","length","firstApi","sectionKey","apiSpecId","overviewKey","prev","Object","assign","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","fromEntries","entries","filter","expandKey","includes","some","k","renderEndpoints","endpoints","api","map","endpoint","index","id","isExpanded","_jsxs","className","method","toLowerCase","onClick","title","description","version","children","_jsx","jsx","path","renderApiSection","endpointsKey","isApiExpanded","isOverviewExpanded","isEndpointActive","jsxs","SVGLoader","src","arrowDownGray","arrowRightGray","document","_Fragment","eye","tags","sort","a","b","localeCompare","tagName","data","i","sectionIndex","isSectionExpanded","renderSubSection"],"mappings":"8WAMM,MAAAA,EAAmB,EACvBC,OACAC,oBACAC,iBACAC,aACAC,mBACAC,sBACAC,qBACAC,wBACAC,oBAaAC,GAAU,KACR,KAAKT,aAAI,EAAJA,EAAMU,UAAWJ,EAAoB,OAE1C,MAAMK,EAAWX,EAAK,GAChBY,EAAa,OAAOD,EAASE,oBAC7BC,EAAc,OAAOH,EAASE,qBAEpCR,GAAqBU,GAASC,OAAAC,OAAAD,OAAAC,OAAA,GACzBF,GAAI,CACPH,CAACA,IAAa,EACdE,CAACA,IAAc,MAGjBb,EAAkBU,GAClBH,EAAc,YACdD,GAAsB,EAAM,GAC3B,CAACP,EAAMM,IAEV,MAAMY,EAAgB,CAACC,EAAOC,EAAmBC,EAAuBC,KACtE,GAAID,GAAeC,EAAK,CACtB,MAAMC,EAA2BP,OAAOQ,YACtCR,OAAOS,QAAOT,OAAAC,OAAA,CAAA,EAAMb,IAAoBsB,QAAO,EAAEC,OAE1CA,EAAUC,SAAST,KAEpBQ,IAAcP,IAEdE,EAAIO,MAAMC,GAAMH,EAAUC,SAASE,SAK3CzB,EACKW,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAM,GACH,CAAAH,CAACA,IAAahB,EAAiBgB,KAElC,MACCf,GAAqBU,GAASC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACzBF,GACH,CAAAK,CAACA,IAAaL,EAAKK,MAEtB,EAGGW,EAAkB,CAACC,EAA2BC,IAClDD,EAAUE,KAAI,CAACC,EAAUC,KACvB,MAAMd,EAAM,OAAOW,EAAIpB,sBAAsBsB,EAASE,KAChDC,EAAalC,EAAiBkB,GAEpC,OACEiB,OAEE,MAAA,CAAAC,UAAW,4DAA4DL,EAASM,OAAOC,gBACvFC,QAAS,KACFL,IACHrC,EACKe,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAkB,GACH,CAAAF,IACEjB,OAAAC,OAAA,CAAAoB,GAAIJ,EAAIpB,UACR+B,MAAOX,EAAIW,MACXC,YAAaZ,EAAIY,YACjBC,QAASb,EAAIa,SACVb,MAGPzB,EAAc,YACdU,EAAce,EAAIpB,UAAWS,GAAK,EAAM,CAAC,WAAY,aACtD,EACF,cACYgB,EAAUS,SAAA,CAEvBC,EAAMC,IAAA,OAAA,CAAAT,UAAU,qCAAsCO,SAAAZ,EAASM,SAC/DO,EAAAA,YAAMR,UAAU,mCAAkCO,SAAEZ,EAASe,SArBxDd,EAuBR,IAiCCe,EAAoBlB,IACxB,MAAMrB,EAAa,OAAOqB,EAAIpB,oBACxBuC,EAAe,OAAOnB,EAAIpB,sBAC1BC,EAAc,OAAOmB,EAAIpB,qBAEzBwC,EAAgBjD,EAAiBQ,GACjC0C,EACJ,cAAepD,GACfA,EAAeW,YAAcoB,EAAIpB,WAClB,aAAfV,EACIoD,EACJ,QAASrD,GACTA,EAAe+B,IAAII,KAAOJ,EAAIpB,WAC9B,SAAUX,GACV,WAAYA,EAEd,OACEqC,EAEEiB,KAAA,MAAA,CAAAhB,UAAU,2CACGe,GAAoBD,EAAkBP,SAAA,CAEnDR,EAAAA,YACEC,UAAU,oCACVG,QAAS,IAAMzB,EAAce,EAAIpB,UAAWD,GAE3CmC,SAAA,CAAAM,EAAgBL,EAACC,IAAAQ,GAAUC,IAAKC,IAAoBX,EAAAA,IAACS,EAAS,CAACC,IAAKE,IACrEZ,EAAAA,IAACS,GAAUC,IAAKG,IAChBb,cAAMR,UAAU,mCAAkCO,SAAEd,EAAIW,WAGzDS,GACCd,EAAAA,KACEuB,EAAAA,SAAA,CAAAf,SAAA,CAAAR,EAAAA,KAAA,MAAA,CACEC,UAAU,uCACVG,QAAS,KACFW,IACHpC,EAAce,EAAIpB,UAAWC,GAAa,EAAM,CAAC,aACjDb,EAAkBgC,GAClBzB,EAAc,YACf,gBAEU8C,EAAkBP,SAAA,CAE/BC,MAACS,EAAS,CAACC,IAAKK,IAChBf,EAAAA,IAAA,OAAA,CAAAD,SAAA,gBAGFR,EAAAiB,KAAA,MAAA,CACEhB,UAAU,wCACVG,QAAS,IAAMzB,EAAce,EAAIpB,UAAWuC,iBAC/BG,IAAqBD,EAAkBP,SAAA,CAEnD3C,EAAiBgD,GAChBJ,EAAAA,IAACS,EAAS,CAACC,IAAKC,IAEhBX,MAACS,EAAS,CAACC,IAAKE,IAElBZ,EAAsBC,IAAA,OAAA,CAAAF,SAAA,iBAGvB3C,EAAiBgD,IAChBJ,MAAK,MAAA,CAAAR,UAAU,iCAAgCO,SAC5C/B,OAAOS,QAAQQ,EAAI+B,MACjBC,MAAK,EAAEC,IAAKC,KACL,YAAND,EAAkB,EAAU,YAANC,GAAmB,EAAID,EAAEE,cAAcD,KAE9DjC,KAAI,EAAEmC,EAASC,GAAOC,IAjGd,EACvBF,EACAC,EACArC,EACAuC,KAEA,MAAM5D,EAAa,OAAOqB,EAAIpB,qBAAqB2D,IAC7CC,EAAoBrE,EAAiBQ,GAE3C,OACE2B,OAAsB,MAAA,CAAAC,UAAU,0CAC9BD,EAAAA,KACE,MAAA,CAAAC,UAAU,uCACVG,QAAS,IAAMzB,EAAce,EAAIpB,UAAWD,GAE3CmC,SAAA,CAAA0B,EACCzB,MAACS,EAAU,CAAAC,IAAKC,IAEhBX,EAAAA,IAACS,EAAS,CAACC,IAAKE,IAElBZ,EAAAA,IAAA,OAAA,CAAMR,UAAU,+CAAuC6B,OAGxDI,GACCzB,aAAKR,UAAU,+BAA8BO,SAAEhB,EAAgBuC,EAAMrC,OAd/DrB,EAiBX,EAsE0C8D,CAAiBL,EAASC,EAAMrC,EAAKsC,YAjDvEtC,EAAIpB,UAuDZ,EAGH,OAAOmC,EAAAC,IAAA,QAAA,CAAOT,UAAU,6BAAqBxC,EAAKkC,KAAKD,GAAQkB,EAAiBlB,MAAc"}
1
+ {"version":3,"file":"DocsSideMenuTree.js","sources":["../../../../../src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx"],"sourcesContent":["import './style.scss'\nimport React, { useEffect, useState } from 'react'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { arrowDownGray, arrowRightGray, document, eye } from '../../../assets/icons'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsSideMenuTree = ({\n apis,\n setActiveItemData,\n activeItemData,\n activeType,\n expandedSections,\n setExpandedSections,\n isFirstApiExpanded,\n setIsFirstApiExpanded,\n setActiveType,\n toggleSection,\n canSelectFirstApi,\n}: {\n apis: OverviewData[]\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n activeItemData: OverviewData | EndpointData\n expandedSections: Record<string, boolean>\n setExpandedSections: (newSections: Record<string, boolean>) => void\n isFirstApiExpanded: boolean\n setIsFirstApiExpanded: React.Dispatch<React.SetStateAction<boolean>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n activeType: 'OVERVIEW' | 'ENDPOINT'\n toggleSection: (apiId: string, sectionId: string, resetOthers?: boolean, key?: string[]) => void\n canSelectFirstApi?: boolean\n}) => {\n // Auto-expand first API only once\n useEffect(() => {\n if (canSelectFirstApi || !apis?.length || !isFirstApiExpanded) return\n\n const firstApi = apis[0]\n const sectionKey = `api-${firstApi.apiSpecId}-section`\n const overviewKey = `api-${firstApi.apiSpecId}-overview`\n\n setExpandedSections({\n [sectionKey]: true,\n [overviewKey]: true,\n })\n setActiveItemData(firstApi)\n setActiveType('OVERVIEW')\n setIsFirstApiExpanded(false)\n }, [apis, isFirstApiExpanded])\n\n const renderEndpoints = (endpoints: EndpointData[], api: OverviewData) =>\n endpoints.map((endpoint, index) => {\n const key = `api-${api.apiSpecId}-resource-${endpoint.id}`\n const isExpanded = expandedSections[key]\n\n return (\n <div\n key={index}\n className={`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${endpoint.method.toLowerCase()}`}\n onClick={() => {\n if (!isExpanded) {\n setActiveItemData({\n ...endpoint,\n api: {\n id: api.apiSpecId,\n title: api.title,\n description: api.description,\n version: api.version,\n ...api,\n },\n })\n setActiveType('ENDPOINT')\n toggleSection(api.apiSpecId, key, true, ['resource', 'overview'])\n }\n }}\n data-active={isExpanded}\n >\n <span className=\"api-docs-api-tree__endpoint-method\">{endpoint.method}</span>\n <span className=\"api-docs-api-tree__endpoint-name\">{endpoint.path}</span>\n </div>\n )\n })\n\n const renderSubSection = (\n tagName: string,\n data: EndpointData[],\n api: OverviewData,\n sectionIndex: number\n ) => {\n const sectionKey = `api-${api.apiSpecId}-section-${sectionIndex}`\n const isSectionExpanded = expandedSections[sectionKey]\n\n return (\n <div key={sectionKey} className=\"api-docs-api-tree__subsection\">\n <div\n className=\"api-docs-api-tree__subsection-header\"\n onClick={() => toggleSection(api.apiSpecId, sectionKey)}\n >\n {isSectionExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span className=\"api-docs-api-tree__subsection-title\">{tagName}</span>\n </div>\n\n {isSectionExpanded && (\n <div className=\"api-docs-api-tree__endpoints\">{renderEndpoints(data, api)}</div>\n )}\n </div>\n )\n }\n\n const renderApiSection = (api: OverviewData) => {\n const sectionKey = `api-${api.apiSpecId}-section`\n const endpointsKey = `api-${api.apiSpecId}-endpoints`\n const overviewKey = `api-${api.apiSpecId}-overview`\n\n const isApiExpanded = expandedSections[sectionKey]\n const isOverviewExpanded =\n 'apiSpecId' in activeItemData &&\n activeItemData.apiSpecId === api.apiSpecId &&\n activeType === 'OVERVIEW'\n const isEndpointActive =\n 'api' in activeItemData &&\n activeItemData.api.id === api.apiSpecId &&\n 'path' in activeItemData &&\n 'method' in activeItemData\n\n return (\n <div\n key={api.apiSpecId}\n className=\"api-docs-api-tree__section\"\n data-active={isEndpointActive || isOverviewExpanded}\n >\n <div\n className=\"api-docs-api-tree__section-header\"\n onClick={() => toggleSection(api.apiSpecId, sectionKey)}\n >\n {isApiExpanded ? <SVGLoader src={arrowDownGray} /> : <SVGLoader src={arrowRightGray} />}\n <SVGLoader src={document} />\n <span className=\"api-docs-api-tree__section-title\">{api.title}</span>\n </div>\n\n {isApiExpanded && (\n <>\n <div\n className=\"api-docs-api-tree__section__overview\"\n onClick={() => {\n if (!isOverviewExpanded) {\n toggleSection(api.apiSpecId, overviewKey, true, ['resource'])\n setActiveItemData(api)\n setActiveType('OVERVIEW')\n }\n }}\n data-active={isOverviewExpanded}\n >\n <SVGLoader src={eye} />\n <span>Overview</span>\n </div>\n\n <div\n className=\"api-docs-api-tree__section__endpoints\"\n onClick={() => toggleSection(api.apiSpecId, endpointsKey)}\n data-active={isEndpointActive && !isOverviewExpanded}\n >\n {expandedSections[endpointsKey] ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span>Endpoints</span>\n </div>\n\n {expandedSections[endpointsKey] && (\n <div className=\"api-docs-api-tree__subsections\">\n {Object.entries(api.tags)\n .sort(([a], [b]) =>\n a === 'default' ? 1 : b === 'default' ? -1 : a.localeCompare(b)\n )\n .map(([tagName, data], i) =>\n renderSubSection(tagName, data as EndpointData[], api, i)\n )}\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n return <aside className=\"api-docs-api-tree\">{apis.map((api) => renderApiSection(api))}</aside>\n}\n\nexport default DocsSideMenuTree\n"],"names":["DocsSideMenuTree","apis","setActiveItemData","activeItemData","activeType","expandedSections","setExpandedSections","isFirstApiExpanded","setIsFirstApiExpanded","setActiveType","toggleSection","canSelectFirstApi","useEffect","length","firstApi","sectionKey","apiSpecId","overviewKey","renderEndpoints","endpoints","api","map","endpoint","index","key","id","isExpanded","_jsxs","className","method","toLowerCase","onClick","Object","assign","title","description","version","children","_jsx","jsx","path","renderApiSection","endpointsKey","isApiExpanded","isOverviewExpanded","isEndpointActive","jsxs","SVGLoader","src","arrowDownGray","arrowRightGray","document","_Fragment","eye","entries","tags","sort","a","b","localeCompare","tagName","data","i","sectionIndex","isSectionExpanded","renderSubSection"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as t,useRef as s,useEffect as a}from"react";import o from"./docsComponents/index.js";import{transformOpenApiToDocs as r}from"../helpers/docs.helper.js";const i=({apis:i})=>{const[n,c]=t([]),[d,p]=t(!0),[l,m]=t({}),[x,j]=t("OVERVIEW"),[u,v]=t({}),D=s([]),[A,f]=t(!0);a((()=>{var e;if(0===n.length){const t=null===(e=structuredClone(i))||void 0===e?void 0:e.map((e=>r(e))).sort(((e,t)=>e.title.toLowerCase().localeCompare(t.title.toLowerCase())));c(t),D.current=t,t.length>0&&f(!1)}}),[i]);return e.jsxs(o,{children:[e.jsx(o.DocsHeader,{transformedOpenApis:n,updateFilteredData:(e,t=!1)=>{c(t?D.current:e)}}),e.jsx(o.DocsSideMenuTree,{apis:n,setActiveItemData:m,activeItemData:l,expandedSections:u,setExpandedSections:v,isFirstApiExpanded:d,activeType:x,setIsFirstApiExpanded:p,setActiveType:j}),!A&&Object.keys(l).length>0&&e.jsx(o.DocsContent,{data:l,activeType:x,setActiveItemData:m,setActiveType:j,setExpandedSections:v}),"ENDPOINT"===x&&e.jsx(o.DocsAside,{data:l})]})};export{i as default};
1
+ import{j as e}from"../../_virtual/jsx-runtime.js";import t,{useState as s,useRef as i,useEffect as a}from"react";import n from"./docsComponents/index.js";import{transformOpenApiToDocs as c}from"../helpers/docs.helper.js";import o from"fast-json-stable-stringify";var r=t.memo((({apis:t,activeApiId:o})=>{const[r,p]=s([]),[d,l]=s(!0),[j,m]=s({}),[v,g]=s("OVERVIEW"),[u,f]=s({}),O=i([]),[b,x]=s(!0),[I,A]=s(!1),E=(e,t,s,i)=>{if(A(!1),s&&i){const s=Object.fromEntries(Object.entries(Object.assign({},u)).filter((([s])=>!!s.includes(e)&&(s===t||!i.some((e=>s.includes(e)))))));f(Object.assign(Object.assign({},s),{[t]:!u[t]}))}else f((e=>Object.assign(Object.assign({},e),{[t]:!u[t]})))};a((()=>{var e;if(0===r.length){A(!!o);const s=null===(e=structuredClone(t))||void 0===e?void 0:e.map((e=>c(e))).sort(((e,t)=>e.title.toLowerCase().localeCompare(t.title.toLowerCase())));p(s),O.current=s,s.length>0&&x(!1)}}),[t]);return a((()=>{if(o&&r.length>0){const e=r.find((e=>e.apiSpecId===o)),t=`api-${e.apiSpecId}-section`,s=`api-${e.apiSpecId}-overview`;f((e=>Object.assign(Object.assign({},e),{[t]:!0,[s]:!0}))),m(e),g("OVERVIEW"),l(!1),A(!0)}}),[o,r]),e.jsxs(n,{children:[e.jsx(n.DocsHeader,{transformedOpenApis:r,updateFilteredData:(e,t=!1)=>{p(t?O.current:e)}}),!b&&e.jsx(n.DocsSideMenuTree,{apis:r,setActiveItemData:m,activeItemData:j,expandedSections:u,setExpandedSections:e=>f((t=>Object.assign(Object.assign({},t),e))),isFirstApiExpanded:d,activeType:v,setIsFirstApiExpanded:l,setActiveType:g,toggleSection:E,canSelectFirstApi:I}),!b&&Object.keys(j).length>0&&e.jsx(n.DocsContent,{data:j,activeType:v,setActiveItemData:m,setActiveType:g,setExpandedSections:f,toggleSection:E}),"ENDPOINT"===v&&e.jsx(n.DocsAside,{data:j})]})}),(function(e,t){var s,i;return o(null!==(s=e.apis)&&void 0!==s?s:[])===o(null!==(i=t.apis)&&void 0!==i?i:[])&&e.activeApiId===t.activeApiId}));export{r as default};
2
2
  //# sourceMappingURL=docsLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useRef, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\nimport { ApiSpecModel } from '@entities/index'\n\ninterface ILayoutProps {\n apis?: ApiSpecModel[]\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData extends Omit<ApiSpecModel, 'metaData'> {\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n servers: OpenAPIFile['servers']\n}\n\nconst DocsLayout = ({ apis }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<OverviewData | EndpointData | {}>({})\n const [activeType, setActiveType] = useState<'OVERVIEW' | 'ENDPOINT'>('OVERVIEW')\n const [expandedSections, setExpandedSections] = useState({})\n const allData = useRef([]);\n const [pending, setPending] = useState(true)\n useEffect(() => {\n if (transformedOpenApis.length === 0) {\n const t = structuredClone(apis)\n ?.map((o3) => transformOpenApiToDocs(o3))\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n setTransformedOpenApis(t)\n allData.current = t\n if (t.length > 0) {\n setPending(false)\n }\n }\n }, [apis])\n\n const updateFilteredData = (filteredItems, isReset=false) => {\n if(isReset){\n setTransformedOpenApis(allData.current)\n return;\n }\n setTransformedOpenApis(filteredItems)\n }\n\n return (\n <Layout>\n <Layout.DocsHeader transformedOpenApis={transformedOpenApis} updateFilteredData={updateFilteredData}/>\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n activeItemData={activeItemData}\n expandedSections={expandedSections}\n setExpandedSections={setExpandedSections}\n isFirstApiExpanded={isFirstApiExpanded}\n activeType={activeType}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n setActiveType={setActiveType}\n />\n {!pending && Object.keys(activeItemData).length > 0 && (\n <Layout.DocsContent\n data={activeItemData}\n activeType={activeType}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n />\n )}\n {activeType === 'ENDPOINT' && <Layout.DocsAside data={activeItemData as EndpointData} />}\n </Layout>\n )\n}\n\nexport default DocsLayout\n"],"names":["DocsLayout","apis","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","activeType","setActiveType","expandedSections","setExpandedSections","allData","useRef","pending","setPending","useEffect","length","t","_a","structuredClone","map","o3","transformOpenApiToDocs","sort","a","b","title","toLowerCase","localeCompare","current","_jsxs","Layout","children","_jsx","DocsHeader","updateFilteredData","filteredItems","isReset","DocsSideMenuTree","Object","keys","DocsContent","data","DocsAside"],"mappings":"0NAuCA,MAAMA,EAAa,EAAGC,WACpB,MAAOC,EAAqBC,GAA0BC,EAAS,KACxDC,EAAoBC,GAAyBF,GAAS,IACtDG,EAAgBC,GAAqBJ,EAA2C,CAAE,IAClFK,EAAYC,GAAiBN,EAAkC,aAC/DO,EAAkBC,GAAuBR,EAAS,CAAE,GACrDS,EAAUC,EAAO,KAChBC,EAASC,GAAcZ,GAAS,GACvCa,GAAU,WACR,GAAmC,IAA/Bf,EAAoBgB,OAAc,CACpC,MAAMC,UAAIC,EAAAC,gBAAgBpB,yBACtBqB,KAAKC,GAAOC,EAAuBD,KACpCE,MAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAMC,cAAcC,cAAcH,EAAEC,MAAMC,iBAC9D1B,EAAuBgB,GACvBN,EAAQkB,QAAUZ,EACdA,EAAED,OAAS,GACbF,GAAW,EAEd,IACA,CAACf,IAUJ,OACE+B,EAAAA,KAACC,EACC,CAAAC,SAAA,CAAAC,EAAAA,IAACF,EAAOG,WAAU,CAAClC,oBAAqBA,EAAqBmC,mBAVtC,CAACC,EAAeC,GAAQ,KAE/CpC,EADCoC,EACsB1B,EAAQkB,QAGVO,EAAc,IAMnCH,EAAAA,IAACF,EAAOO,iBACN,CAAAvC,KAAMC,EACNM,kBAAmBA,EACnBD,eAAgBA,EAChBI,iBAAkBA,EAClBC,oBAAqBA,EACrBP,mBAAoBA,EACpBI,WAAYA,EACZH,sBAAuBA,EACvBI,cAAeA,KAEfK,GAAW0B,OAAOC,KAAKnC,GAAgBW,OAAS,GAChDiB,EAAAA,IAACF,EAAOU,YAAW,CACjBC,KAAMrC,EACNE,WAAYA,EACZD,kBAAmBA,EACnBE,cAAeA,EACfE,oBAAqBA,IAGT,aAAfH,GAA6B0B,EAAAA,IAACF,EAAOY,UAAS,CAACD,KAAMrC,MAEzD"}
1
+ {"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useRef, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\nimport { ApiSpecModel } from '@entities/index'\nimport stableStringify from 'fast-json-stable-stringify'\n\ninterface ILayoutProps {\n apis?: ApiSpecModel[]\n activeApiId?: string\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData extends Omit<ApiSpecModel, 'metaData'> {\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n servers: OpenAPIFile['servers']\n}\n\nfunction areEqual(prev: ILayoutProps, next: ILayoutProps): boolean {\n return (\n stableStringify(prev.apis ?? []) === stableStringify(next.apis ?? []) &&\n prev.activeApiId === next.activeApiId\n )\n}\n\nconst DocsLayout = ({ apis, activeApiId }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState<OverviewData[]>([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<\n OverviewData | EndpointData | Record<string, never>\n >({})\n const [activeType, setActiveType] = useState<'OVERVIEW' | 'ENDPOINT'>('OVERVIEW')\n const [expandedSections, setExpandedSections] = useState<Record<string, boolean>>({})\n const allData = useRef([])\n const [pending, setPending] = useState(true)\n const [canSelectFirstApi, setCanSelectFirstApi] = useState(false)\n\n const toggleSection = (\n apiId: string,\n sectionId: string,\n resetOthers?: boolean,\n key?: string[]\n ) => {\n setCanSelectFirstApi(false)\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n if (expandKey === sectionId) return true\n // filter all sections containing the key\n if (key.some((k) => expandKey.includes(k))) return false\n return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !expandedSections[sectionId],\n }))\n }\n }\n\n useEffect(() => {\n if (transformedOpenApis.length === 0) {\n setCanSelectFirstApi(!!activeApiId)\n const t = structuredClone(apis)\n ?.map((o3) => transformOpenApiToDocs(o3))\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n setTransformedOpenApis(t)\n allData.current = t\n if (t.length > 0) {\n setPending(false)\n }\n }\n }, [apis])\n\n const updateFilteredData = (filteredItems, isReset = false) => {\n if (isReset) {\n setTransformedOpenApis(allData.current)\n return\n }\n setTransformedOpenApis(filteredItems)\n }\n\n useEffect(() => {\n if (activeApiId && transformedOpenApis.length > 0) {\n const activeApi = transformedOpenApis.find((api) => api.apiSpecId === activeApiId)\n const sectionKey = `api-${activeApi.apiSpecId}-section`\n const overviewKey = `api-${activeApi.apiSpecId}-overview`\n\n setExpandedSections((prev) => ({\n ...prev,\n [sectionKey]: true,\n [overviewKey]: true,\n }))\n setActiveItemData(activeApi)\n setActiveType('OVERVIEW')\n setIsFirstApiExpanded(false)\n setCanSelectFirstApi(true)\n }\n }, [activeApiId, transformedOpenApis])\n\n return (\n <Layout>\n <Layout.DocsHeader\n transformedOpenApis={transformedOpenApis}\n updateFilteredData={updateFilteredData}\n />\n {!pending && (\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n activeItemData={activeItemData as OverviewData | EndpointData}\n expandedSections={expandedSections}\n setExpandedSections={(newExpandedSections) =>\n setExpandedSections((prev) => ({\n ...prev,\n ...newExpandedSections,\n }))\n }\n isFirstApiExpanded={isFirstApiExpanded}\n activeType={activeType}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n setActiveType={setActiveType}\n toggleSection={toggleSection}\n canSelectFirstApi={canSelectFirstApi}\n />\n )}\n\n {!pending && Object.keys(activeItemData).length > 0 && (\n <Layout.DocsContent\n data={activeItemData as OverviewData | EndpointData}\n activeType={activeType}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n toggleSection={toggleSection}\n />\n )}\n {activeType === 'ENDPOINT' && <Layout.DocsAside data={activeItemData as EndpointData} />}\n </Layout>\n )\n}\n\nexport default React.memo(DocsLayout, areEqual)\n"],"names":["docsLayout","React","memo","apis","activeApiId","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","activeType","setActiveType","expandedSections","setExpandedSections","allData","useRef","pending","setPending","canSelectFirstApi","setCanSelectFirstApi","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","Object","fromEntries","entries","assign","filter","expandKey","includes","some","k","prev","useEffect","length","t","_a","structuredClone","map","o3","transformOpenApiToDocs","sort","a","b","title","toLowerCase","localeCompare","current","activeApi","find","api","apiSpecId","sectionKey","overviewKey","_jsxs","jsxs","Layout","children","_jsx","DocsHeader","updateFilteredData","filteredItems","isReset","jsx","DocsSideMenuTree","newExpandedSections","keys","DocsContent","data","DocsAside","next","stableStringify","_b"],"mappings":"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"}