UNPKG

apiconnect-explorer

Version:

- [Getting Started](#getting-started) - [Configuration](#configuration) * [Required](#required) * [Optional](#optional) - [Usage in React](#usage-in-react) - [Usage outside of React](#usage-outside-of-react) - [Detailed description of options](#detail

1 lines 19.3 kB
"use strict";function a(b){"@babel/helpers - typeof";return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},a(b)}Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var b=s(require("react")),c=q(require("classnames")),d=require("@carbon/react"),e=require("@carbon/react/icons"),f=require("lodash"),g=require("./../utils/navigation.js"),h=require("./../contexts/config/index.js"),i=require("react-i18next"),j=require("contexts/ApiHandler"),k=require("react-router-dom"),l=q(require("./MenuDropdown.tsx")),m=require("../utils/common"),n=require("../utils/translate"),o=q(require("../utils/api-factory.ts")),p=require("../utils/getDirectionalAlign");function q(a){return a&&a.__esModule?a:{default:a}}function s(b,c){if("function"==typeof WeakMap)var d=new WeakMap,g=new WeakMap;return(s=function(b,c){if(!c&&b&&b.__esModule)return b;var e,h,j={__proto__:null,default:b};if(null===b||"object"!=a(b)&&"function"!=typeof b)return j;if(e=c?g:d){if(e.has(b))return e.get(b);e.set(b,j)}for(var f in b)"default"!=f&&{}.hasOwnProperty.call(b,f)&&((h=(e=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,f))&&(h.get||h.set)?e(j,f,h):j[f]=b[f]);return j})(b,c)}function u(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function v(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?u(Object(b),!0).forEach(function(c){w(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):u(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function w(a,b,c){return(b=x(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function x(b){var c=y(b,"string");return"symbol"==a(c)?c:c+""}function y(b,c){if("object"!=a(b)||!b)return b;var d=b[Symbol.toPrimitive];if(void 0!==d){var e=d.call(b,c||"default");if("object"!=a(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===c?String:Number)(b)}function z(a,b){return E(a)||D(a,b)||B(a,b)||A()}function A(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(b,c){if(b){if("string"==typeof b)return C(b,c);var a={}.toString.call(b).slice(8,-1);return"Object"===a&&b.constructor&&(a=b.constructor.name),"Map"===a||"Set"===a?Array.from(b):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?C(b,c):void 0}}function C(b,c){(null==c||c>b.length)&&(c=b.length);for(var d=0,f=Array(c);d<c;d++)f[d]=b[d];return f}function D(b,c){var d=null==b?null:"undefined"!=typeof Symbol&&b[Symbol.iterator]||b["@@iterator"];if(null!=d){var g,h,j,k,l=[],a=!0,m=!1;try{if(j=(d=d.call(b)).next,0===c){if(Object(d)!==d)return;a=!1}else for(;!(a=(g=j.call(d)).done)&&(l.push(g.value),l.length!==c);a=!0);}catch(a){m=!0,h=a}finally{try{if(!a&&null!=d["return"]&&(k=d["return"](),Object(k)!==k))return}finally{if(m)throw h}}return l}}function E(a){if(Array.isArray(a))return a}var F={selectedApi:null,definitionNames:[],tagHierarchy:null,hasTags:!1,hasOperationIds:!1,hasSummaries:!1,operationsArray:[],webhooksArray:[],viewBy:"path",groupByTags:!1,expandedAll:null},G=function(a,b,c,d,e){a.paths||(a.paths={});var f=/^3\.1\..*$/.test(a.openapi);f&&Object.keys(a.webhooks).forEach(function(b){Object.keys(a.webhooks[b]).forEach(function(a){c.webhooksArray.push({method:a,event:b})})}),c.tagHierarchy=b.getApiTags(a);var g=[];return Object.keys(a.paths).forEach(function(b){Object.keys(a.paths[b]).forEach(function(f){if(0<=["get","put","post","delete","options","patch","head","trace"].indexOf(f.toLowerCase())){var h={method:f,path:b};if(a.paths[b][f].operationId&&(h.operationId=a.paths[b][f].operationId,c.hasOperationIds=!0),a.paths[b][f].summary&&(h.summary=a.paths[b][f].summary,c.hasSummaries=!0),a.paths[b][f]["x-ibm-languages"]&&(h["x-ibm-languages"]=a.paths[b][f]["x-ibm-languages"]),a.paths[b][f].tags&&(h.tags=a.paths[b][f].tags),a.paths[b][f].deprecated&&(h.deprecated=a.paths[b][f].deprecated),c.operationsArray.push(h),h.tags){var i=c.tagHierarchy;h.tags.forEach(function(b){i.tags[b]||(i.tags[b]={tags:{},operations:[]}),e?i=i.tags[b]:-1===i.tags[b].operations.indexOf(h)&&i.tags[b].operations.push(h),(d||a.info&&a.info["x-codegen-config"]&&a.info["x-codegen-config"].groupMethodsByTag)&&(c.groupByTags=!0)}),e&&i.operations.push(h)}else g.push(h)}})}),c.tagHierarchy&&0<Object.keys(c.tagHierarchy.tags).length?(c.hasTags=!0,0<g.length&&(c.tagHierarchy.tags["default"]={tags:{},operations:[]},c.tagHierarchy.tags["default"].operations=g)):c.hasTags=!1,c},H=function(a,b,c,d,e){var f={selectedApi:"".concat(a.info.title,"_").concat(a.info.version),operationsArray:[],webhooksArray:[],tagHierarchy:{tags:{},operations:[]},hasTags:!1,hasOperationIds:!1,hasSummaries:!1,selectedTocItem:null,groupByTags:!1,isSOAP:!1};a.asyncapi||(f=G(a,b,f,c,e)),f.viewBy=d||"path",b.isSOAP(a)&&(f.isSOAP=!0,f.viewBy=d||"operations");var g=b.getSchemas(a);return f.definitionNames=g?Object.keys(g):[],f};function I(a){var e=a.showFilters,f=a.viewbyHandler,g=a.viewBy,h=a.filterOptions,i=a.hasTags,j=a.toggleTags,k=a.groupByTags,l=a.t;return b["default"].createElement("div",{className:(0,c["default"])("menuOptions",e?"":"notRendered"),role:"menuitem",tabIndex:"0"},b["default"].createElement(d.FormGroup,{legendText:l("view_operations_by")},b["default"].createElement(d.RadioButtonGroup,{orientation:"horizontal",className:"viewByOptions",name:"cds-apim--menu-viewby",label:l("view_operations_by"),role:"radiogroup",onChange:f,valueSelected:g},h)),i&&b["default"].createElement("div",{className:"tagFilterOption"},b["default"].createElement(d.Checkbox,{onChange:j,id:"groupByTagsCheck",labelText:l("group_by_tags"),checked:k,"data-testid":"tag-filter-tags-option"})))}I.displayName="FilterOptions";function J(a){var q=a.onSelectedOperationChange,r=(0,j.useApi)(),s=r.api,u=r.apiHandler,w=r.loading,x=r.error,y=(0,h.useConfig)(),A=y.options,B=y.apis,C=y.docs,D=(0,b.useState)(!1),E=z(D,2),G=E[0],J=E[1],K=(0,i.useTranslation)(),L=K.t,t=(0,b.useState)(F),M=z(t,2),N=M[0],O=M[1],P=(0,b.useState)(null),Q=z(P,2),R=Q[0],S=Q[1],T=(0,k.useLocation)();(0,b.useEffect)(function(){S((0,g.getCurrentItemFromPath)(T.pathname))},[T.pathname]),(0,b.useEffect)(function(){if(!w&&!x&&!(0,f.isEmpty)(s)&&null!=u){var a=H(s,u,A.groupByTags,A.menuView,A.nestedTags);O(function(b){return v(v(v({},b),a),{},{query:""})})}},[s,u,w,A.groupByTags,A.menuView,A.nestedTags,x]);var U=function(){var a=(0,m.filterTags)(N.tagHierarchy.tags,N.viewBy,N.query);return(0,m.objectToArray)(a)},V=function(a){O(v(v({},N),{},{viewBy:a}))},W=function(a){O(v(v({},N),{},{query:a.target.value}))},X=function(){O(v(v({},N),{},{groupByTags:!N.groupByTags}))},Y=function(){O(v(v({},N),{},{expandedAll:!0}))},Z=function(){O(v(v({},N),{},{expandedAll:!1}))},$=function(a){var d=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},e=a.map(function(a){var e="doc_".concat((0,m.cleanUpKey)(a.name)),f=d.embedded&&d.api?"/".concat((0,g.apiPath)(d.api),"/documentation/").concat(d.parent?"".concat(d.parent,"/"):"").concat(a.name):"/documentation/".concat(d.parent?"".concat(d.parent,"/"):"").concat(a.name),h=b["default"].createElement(k.Link,{to:f,className:(0,c["default"])("cds--side-nav__link ","truncate","toc-api","toc-navigate-".concat(e),{selected:R===(0,g.getCurrentItemFromPath)(f)})},b["default"].createElement("span",{className:"cds--side-nav__link-text"},(0,n.getTranslatedExtensions)(a,"title")));if(a.docs&&0<a.docs.length){var i=$(a.docs,v(v({},d),{},{parent:"".concat(d.parent?"".concat(d.parent,"/"):"").concat(a.name)}));return b["default"].createElement("li",{key:e,className:(0,c["default"])("cds--side-nav__menu-item","tocItem","docItem",e)},h,b["default"].createElement("ul",{className:"doc-tree--list"},i))}return b["default"].createElement("li",{key:e,className:(0,c["default"])("cds--side-nav__menu-item","tocItem","docItem",e)},h)});return e},_=(0,b.useCallback)(function(a){switch(N.viewBy){case"summary":return a.summary?(0,m.highlightCleaner)((0,n.getTranslatedExtensions)(a,"summary"),N.query):"".concat(a.method.toUpperCase()," ").concat(a.path);case"path":return"".concat(a.method.toUpperCase()," ").concat(a.path);case"operations":return(0,m.highlightCleaner)(a.operationId,N.query);default:}},[N.viewBy,N.query]);(0,b.useEffect)(function(){if(R&&0<N.operationsArray.length){var a=N.operationsArray.find(function(a){var b="/".concat((0,g.apiPath)(s),"/operation/").concat(encodeURIComponent(a.path),"/").concat(a.method);return R===(0,g.getCurrentItemFromPath)(b)});if(a&&q){var b=_(a);q(b)}else q&&q(null)}},[R,N.operationsArray,N.viewBy,N.query,s,q,_]);var aa=function(a){return a.map(function(a){var b="/".concat((0,g.apiPath)(s),"/operation/").concat(encodeURIComponent(a.path),"/").concat(a.method);return{displayName:_(a),route:b,selected:R===(0,g.getCurrentItemFromPath)(b)}})},ba=function(a){O(v(v({},N),{},{expandedAll:null,expanded:a}))},ca=function(a){a.value&&(a=a.value);var b,c=aa(a.operations);return a.tags&&(b=Object.entries(a.tags).reduce(function(a,b){var c=z(b,2),d=c[0],e=c[1];return a[d]=ca(e),a[d].onToggle=ba,a},{})),{menuItems:c,nestedMenus:b}},da=function(){return[U().map(function(a,d){var e=ca(a),f=e.menuItems,g=e.nestedMenus,h=a.key,i=!1;return b["default"].createElement("li",{key:"".concat(a+d),className:(0,c["default"])("cds--side-nav__menu-item","tocItem","tagListItem"),"data-testid":"grouped-menu-item"},b["default"].createElement(l["default"],{className:"menuDropdown",selected:i,displayName:h,menuItems:f,nestedMenus:g,isExpanded:N.expandedAll||i,onToggle:ba}))})]},ea=function(a,d,e){var f=(0,m.filterChannels)(e.api.channels().all(),d);return f.map(function(f){var h,i=f.id(),j=(0,m.cleanUpKey)("channel_".concat(i)),n=e.api.operations().filterBy(function(a){return a.channels().has(i)}),o=(0,g.eventPath)(a,i,"overview"),p=n.map(function(b){var c=b.action();return h=(0,g.eventPath)(a,i,"operation/".concat(b.id()?encodeURIComponent(b.id()):c)),{displayName:b.id()?"".concat(b.id()," (").concat(L(b.action()),")"):L("channel_".concat(c,"_menu")),route:h,selected:R===(0,g.getCurrentItemFromPath)(h)}}),q=0<e.api.operations().all().length;return b["default"].createElement("li",{className:(0,c["default"])("tocItem","cds--side-nav__menu-item"),key:j},q?b["default"].createElement(l["default"],{className:"menuDropdown",displayName:i,menuItems:p,isExpanded:R===(0,g.getCurrentItemFromPath)(h)||R===(0,g.getCurrentItemFromPath)(o)&&N.expanded||N.expandedAll,onToggle:ba,selected:R===(0,g.getCurrentItemFromPath)(o),to:o,highlightedQuery:d}):b["default"].createElement(k.Link,{to:o,className:(0,c["default"])("cds--side-nav__link","truncate toc-selectable","toc-navigate-".concat(j),{selected:R===(0,g.getCurrentItemFromPath)(o)}),title:i},b["default"].createElement("span",{className:(0,c["default"])("cds--side-nav__link-text","menu-item-no-expand"),dangerouslySetInnerHTML:{__html:(0,m.highlightCleaner)(i,d)},"data-testid":"channel-no-dropdown"})))})},fa=N.definitionNames,ga=N.hasTags,ha=N.hasOperationIds,ia=N.hasSummaries,ja=N.operationsArray,ka=N.webhooksArray,la=N.viewBy,ma=N.groupByTags,na=N.query,oa=N.isSOAP,pa=[b["default"].createElement(d.RadioButton,{key:"path",className:"option",value:"path",labelText:L("operations_by_path"),"data-testid":"tag-filter-view-by-path"})];ha&&pa.push(b["default"].createElement(d.RadioButton,{key:"operations",className:"option",value:"operations",labelText:L("operations_by_name"),"data-testid":"tag-filter-view-by-name"})),ia&&pa.push(b["default"].createElement(d.RadioButton,{key:"summary",className:"option",value:"summary",labelText:L("operations_by_summary"),"data-testid":"tag-filter-view-by-summary"})),oa&&1<pa.length&&pa.shift();var qa=(0,b.useMemo)(function(){return new o["default"](s)},[s]),ra=function(a,f,h){return(b["default"].createElement(b["default"].Fragment,null,f&&"".concat(f.info.title,"_").concat(f.info.version)==="".concat(a.info.title,"_").concat(a.info.version)&&!x&&b["default"].createElement("ul",{className:(0,c["default"])("apiContent"),role:"menu"},b["default"].createElement("li",{className:"searchListItem"},b["default"].createElement(d.Layer,null,b["default"].createElement(d.Search,{className:"search-input",onChange:W,labelText:L("filter"),id:"search__input",placeholder:L("filter")})),(ga||ia||ha)&&b["default"].createElement("div",{className:"menuViewChooser","data-floating-menu-container":!0},b["default"].createElement("div",{className:"menuFilter"},b["default"].createElement(d.Button,{hasIconOnly:!0,kind:"ghost",iconDescription:L("filter_options"),renderIcon:e.SettingsAdjust,onClick:function(){J(!G)},title:L("filter_options"),tooltipPosition:"bottom",tooltipAlignment:(0,p.getBidiAlignLogical)("end"),"data-testid":"tag-filter-options",size:"md"})),ma&&b["default"].createElement("div",null,N.expandedAll?b["default"].createElement(d.Button,{hasIconOnly:!0,kind:"ghost",iconDescription:L("collapse_all"),renderIcon:e.CollapseCategories,onClick:Z,title:L("collapse_all"),tooltipPosition:"bottom",tooltipAlignment:(0,p.getBidiAlignLogical)("end"),"data-testid":"collapse-all"}):b["default"].createElement(d.Button,{hasIconOnly:!0,kind:"ghost",iconDescription:L("expand_all"),renderIcon:e.ExpandCategories,onClick:Y,title:L("expand_all"),tooltipPosition:"bottom",tooltipAlignment:(0,p.getBidiAlignLogical)("end"),"data-testid":"expand-all"})))),b["default"].createElement(I,{showFilters:G,viewbyHandler:V,viewBy:la,filterOptions:pa,hasTags:ga,toggleTags:X,groupByTags:N.groupByTags,t:L}),b["default"].createElement("li",{className:(0,c["default"])("cds--side-nav__menu-item","tocOverview","tocHeader"),"data-testid":"overview-menu-item"},b["default"].createElement(k.Link,{to:"/".concat((0,g.apiPath)(a),"/overview"),className:(0,c["default"])({selected:R===(0,g.getCurrentItemFromPath)("/".concat((0,g.apiPath)(a),"/overview"))},"truncate","toc-api","cds--side-nav__link","toc-navigate-overview_".concat((0,m.cleanUpKey)("".concat(a.info.title,"_").concat(a.info.version)))),tabIndex:"0"},b["default"].createElement("span",{className:"cds--side-nav__link-text"},L("overview")))),a["x-embedded-doc"]&&$(a["x-embedded-doc"],{embedded:!0,api:a}),ma&&da(),!ma&&("operations"===la||"summary"===la||"path"===la)&&[(0,m.filterOperations)(ja,la,na).map(function(d){var e="operation_".concat(d.method,"_").concat((0,m.cleanUpKey)(d.path)),f="/".concat((0,g.apiPath)(a),"/operation/").concat(encodeURIComponent(d.path),"/").concat(d.method);return b["default"].createElement("li",{className:(0,c["default"])("tocItem","toc-op-method-".concat((0,m.cleanUpKey)(d.method)),"toc-op-path-".concat((0,m.cleanUpKey)(d.path)),"cds--side-nav__menu-item"),key:e,"data-testid":"operation-menu-items"},b["default"].createElement(k.Link,{to:f,className:(0,c["default"])("cds--side-nav__link","truncate toc-selectable","toc-navigate-".concat(e),{selected:R===(0,g.getCurrentItemFromPath)(f)},{deprecated:d.deprecated}),title:"".concat(d.method," ").concat(d.path)},d.summary&&"summary"===la&&b["default"].createElement("span",{className:"cds--side-nav__link-text",dangerouslySetInnerHTML:{__html:(0,m.highlightCleaner)((0,n.getTranslatedExtensions)(d,"summary"),na)}}),d.operationId&&"operations"===la&&b["default"].createElement("span",{className:"cds--side-nav__link-text",dangerouslySetInnerHTML:{__html:(0,m.highlightCleaner)(d.operationId,na)}}),(!d.operationId&&"operations"===la||!d.summary&&"summary"===la||"path"===la)&&b["default"].createElement("span",{className:(0,c["default"])("cds--side-nav__link-text")},b["default"].createElement("span",{className:(0,c["default"])("operation-method-".concat(d.method))},d.method.toUpperCase()),b["default"].createElement("span",{className:(0,c["default"])("operation-path"),dangerouslySetInnerHTML:{__html:(0,m.highlightCleaner)(" ".concat(d.path),na)}}))))})],a.webhooks&&(0,m.filterWebhooks)(ka,na).map(function(d){return b["default"].createElement("li",{className:(0,c["default"])("tocItem","toc-op-method-".concat((0,m.cleanUpKey)(d.event)),"toc-op-path-".concat((0,m.cleanUpKey)(d.method)),"cds--side-nav__menu-item"),key:"webhook_".concat(d.event,"_").concat((0,m.cleanUpKey)(d.method)),"data-testid":"webhook-menu-items"},b["default"].createElement(k.Link,{to:"/".concat((0,g.apiPath)(a),"/webhook/").concat(encodeURIComponent(d.event)),className:(0,c["default"])("cds--side-nav__link","truncate toc-selectable","toc-navigate-".concat("operation_".concat(d.method,"_").concat((0,m.cleanUpKey)(d.method))),{selected:R===(0,g.getCurrentItemFromPath)("/".concat((0,g.apiPath)(a),"/webhook/").concat(d.event))},"truncate","toc-api","cds--side-nav__link","toc-navigate-overview_".concat((0,m.cleanUpKey)("".concat(a.info.title,"_").concat(a.info.version)))),title:"webhook: ".concat(d.event," ")},b["default"].createElement("span",{className:(0,c["default"])("cds--side-nav__link-text")},b["default"].createElement("span",{className:(0,c["default"])("operation-method-".concat(d.method))},d.method.toUpperCase()),b["default"].createElement("span",{className:(0,c["default"])("operation-path"),dangerouslySetInnerHTML:{__html:(0,m.highlightCleaner)(" ".concat(d.event),na)}}))))}),0<fa.length&&b["default"].createElement("li",{key:"definitions-title",className:"tocItem tocDefinitions tocHeader","data-testid":"definitions-menu-item"},b["default"].createElement(k.Link,{to:"/".concat((0,g.apiPath)(a),"/definitions"),className:(0,c["default"])({selected:R===(0,g.getCurrentItemFromPath)("/".concat((0,g.apiPath)(a),"/definitions"))},"cds--side-nav__link","truncate","toc-api","toc-navigate-definitions_".concat((0,m.cleanUpKey)("".concat(a.info.title,"_").concat(a.info.version))))},b["default"].createElement("span",{className:"cds--side-nav__link-text"},L("definitions")))),a.asyncapi&&ea(a,na,h))))};return b["default"].createElement("div",{className:"apiconnect-explorer-menu stretch","data-testid":"explorer-menu"},b["default"].createElement("section",{"aria-label":L("menu"),className:"underMainBanner amp-margin"},b["default"].createElement("div",{className:"explorer-toc"},b["default"].createElement("ul",{className:(0,c["default"])("cds--side-nav__items")},C&&$(C),B.map(function(a){return b["default"].createElement("li",{key:"".concat(a.info.title,"_").concat(a.info.version),"data-testid":"total-apis-listed",className:(0,c["default"])("cds--side-nav__menu-item","apiMenu","api-title-".concat((0,m.cleanUpKey)(a.info.title)),"api-version-".concat((0,m.cleanUpKey)(a.info.version)),qa.isSOAP(a)?"api-soap":"api-rest")},1<B.length&&b["default"].createElement(k.Link,{to:"/".concat((0,g.apiPath)(a),"/overview"),className:(0,c["default"])("cds--side-nav__link","truncate","toc-api","toc-navigate-".concat((0,m.cleanUpKey)("".concat(a.info.title,"_").concat(a.info.version))))},b["default"].createElement("span",{className:"cds--side-nav__link-text"},(0,n.getTranslatedExtensions)(a.info,"title")," ",a.info.version)),!w&&ra(a,s,u))})))))}var K=exports["default"]=J;