Current section
Files
Jump to
Current section
Files
lib/assets/get_cell/main.js
var R=Object.create;var v=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var _=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports);var z=(e,o,t,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of j(o))!O.call(e,a)&&a!==t&&v(e,a,{get:()=>o[a],enumerable:!(s=P(o,a))||s.enumerable});return e};var b=(e,o,t)=>(t=e!=null?R(K(e)):{},z(o||!e||!e.__esModule?v(t,"default",{value:e,enumerable:!0}):t,e));var m=_((Y,c)=>{(function(){"use strict";var e={}.hasOwnProperty,o="[native code]";function t(){for(var s=[],a=0;a<arguments.length;a++){var r=arguments[a];if(r){var n=typeof r;if(n==="string"||n==="number")s.push(r);else if(Array.isArray(r)){if(r.length){var i=t.apply(null,r);i&&s.push(i)}}else if(n==="object"){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){s.push(r.toString());continue}for(var l in r)e.call(r,l)&&r[l]&&s.push(l)}}}return s.join(" ")}typeof c<"u"&&c.exports?(t.default=t,c.exports=t):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return t}):window.classNames=t})()});var L=({message:e})=>React.createElement(React.Fragment,null,React.createElement("div",{className:"flex rounded-md border border-dashed border-red-700 bg-red-100 p-2"},React.createElement("svg",{className:"h-6 w-6 flex-none text-red-700",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true"},React.createElement("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"})),React.createElement("div",{className:"font-inter px-2 text-sm font-medium text-red-700"},e))),h=L;var y=(e,o)=>{let t;return(...s)=>{clearTimeout(t),t=setTimeout(()=>{e(...s)},o)}},x=async e=>{await e.importJS("https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js"),await e.importJS("https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js")};var E=(e,o)=>{let[t,s]=React.useState(o),a=r=>n=>{s(i=>({...i,[r]:n})),console.log("Pushing ${attrName} to server",n),e.pushEvent(`update_${r}`,n)};return React.useEffect(()=>{e.handleEvent("update",r=>{console.log("Attribute update from server",r),s(n=>({...Object.assign(n,r)}))})},[]),[t,a]},S=E;var F=()=>React.createElement("div",{className:"mb-5 rounded-md bg-gray-100 p-4 font-inter text-sm font-medium text-gray-500"},React.createElement("p",null,"To make requests to the Kubernetes cluster, you need at least one connection to a cluster."),React.createElement("p",{className:"pt-1"},"To create a cluster connection, you can add the"," ",React.createElement("span",{className:"text-gray-600"},"Cluster Connection")," smart cell.")),C=F;var d=b(m()),G=({name:e,label:o,defaultValue:t,testId:s,onChange:a,orientation:r="vert"})=>React.createElement("div",{className:(0,d.default)({"flex flex-row items-baseline":r=="horiz"})},React.createElement("label",{htmlFor:e,className:(0,d.default)({block:r=="vert","pr-1 uppercase":r=="horiz"},"mb-1 text-sm font-medium")},o),React.createElement("input",{type:"text","data-testid":s??e,value:t,name:e,onChange:n=>a(n.target.value),className:(0,d.default)({"block w-full":r=="vert"},"rounded-lg border border-gray-300 bg-gray-50 p-1.5 text-sm focus:border-blue-500 focus:ring-blue-500")})),u=G;var N=b(m());var M=({name:e,selectedValue:o,searchTerm:t,onSearch:s,placeholder:a})=>{let r=y(l=>{s(l.toLowerCase())},300),[n,i]=React.useState(t??"");return React.useEffect(()=>{o&&i(o)},[o]),React.createElement(React.Fragment,null,React.createElement("div",{className:"relative"},React.createElement("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3"},React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",strokeWidth:1.5,stroke:"currentColor",className:(0,N.default)("h-5 w-5",{"bg-green-200":o,"text-green-800":o,"border-green-800":o,"rounded-lg":o})},o?React.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75L11.25 15 15 9.75M21 12c0 1.268-.63 2.39-1.593 3.068a3.745 3.745 0 01-1.043 3.296 3.745 3.745 0 01-3.296 1.043A3.745 3.745 0 0112 21c-1.268 0-2.39-.63-3.068-1.593a3.746 3.746 0 01-3.296-1.043 3.745 3.745 0 01-1.043-3.296A3.745 3.745 0 013 12c0-1.268.63-2.39 1.593-3.068a3.745 3.745 0 011.043-3.296 3.746 3.746 0 013.296-1.043A3.746 3.746 0 0112 3c1.268 0 2.39.63 3.068 1.593a3.746 3.746 0 013.296 1.043 3.746 3.746 0 011.043 3.296A3.745 3.745 0 0121 12z"}):React.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"}))),React.createElement("input",{type:"text",value:n,name:e,autoComplete:"off",placeholder:a,onInput:l=>{i(l.target.value),r(l.target.value)},className:"block w-full rounded-lg border border-gray-300 bg-gray-50 p-2 pl-9 text-sm focus:border-blue-500 focus:ring-blue-500"})))},q=({resultItems:e,itemRenderer:o,onSelect:t,resultItemsKeyField:s})=>React.createElement("div",{className:"max-h-36 overflow-auto rounded-b-lg border-b border-l border-r border-gray-300"},React.createElement("div",{className:"w-max min-w-full"},e.map(a=>React.createElement("div",{key:a[s],onClick:()=>t(a),className:"border-b-solid last:border-b-none cursor-pointer border-b border-b-gray-300 bg-gray-50 px-2 py-0.5 hover:bg-blue-600 hover:text-white"},o(a))))),U=({name:e,label:o,searchTerm:t,onSearch:s,resultItems:a,resultItemsKeyField:r,itemRenderer:n,className:i,onSelect:l,selectedValue:I,placeholder:k})=>React.createElement("div",{className:i},React.createElement("label",{htmlFor:e,className:"mb-1 block text-sm font-medium"},o),React.createElement(M,{name:e,onSearch:s,searchTerm:t,selectedValue:I,placeholder:k}),(a&&a.length)>0&&React.createElement(q,{resultItems:a,itemRenderer:n,onSelect:l,resultItemsKeyField:r})),T=U;var f=b(m()),J=({name:e,label:o,options:t,selectedOption:s,onChange:a,className:r="",orientation:n="vert"})=>React.createElement("div",{className:(0,f.default)({"flex flex-row items-baseline":n=="horiz"},r)},React.createElement("label",{htmlFor:e,className:(0,f.default)({block:n=="vert","pr-1 uppercase":n=="horiz"},"mb-1 text-sm font-medium")},o),React.createElement("select",{id:e,value:s||void 0,onChange:i=>a(i.target.value),className:(0,f.default)({"block w-full":n=="vert"}," bg-caret-down appearance-none rounded-lg border border-gray-300 bg-gray-50 bg-[length:10px] bg-[center_right_10px] bg-no-repeat p-2 pr-5 text-sm focus:border-blue-500 focus:ring-blue-500")},t.map(i=>React.createElement("option",{key:i.value,value:i.value},i.label)))),p=J;var V=e=>e.options.length>0?React.createElement(p,{...e}):React.createElement(u,{...e,defaultValue:e.selectedOption}),g=V;var B=({gvk:e})=>React.createElement(React.Fragment,null,React.createElement("div",{className:"text-xs text-gray-400"},e.api_version),React.createElement("div",{className:"text-sm"},e.kind)),A=B;var D=({initialAttrs:e,ctx:o})=>{let[t,s]=S(o,e),a=t.result_types[t.request_type];return React.createElement(React.Fragment,null,!t.connection&&React.createElement(C,null),React.createElement("div",{className:"rounded-md border border-solid border-gray-300 font-inter font-medium text-gray-600"},React.createElement("div",{className:"border-b-solid flex gap-x-5 gap-y-3 border-b border-b-gray-300 bg-blue-100 p-3"},React.createElement(p,{name:"connection",label:"Connection",options:t.connections.map(r=>({label:r.variable,value:r.variable})),selectedOption:t.connection?.variable?.toString(),onChange:s("connection"),orientation:"horiz"}),React.createElement(p,{name:"request_type",label:"Request Type",options:t.request_types.map(r=>({label:r.toUpperCase(),value:r})),selectedOption:t.request_type,onChange:s("request_type"),orientation:"horiz"}),a&&React.createElement(p,{name:"result_type",label:"Result Type",options:a.map(r=>({label:r.toUpperCase(),value:r})),selectedOption:t.result_type,onChange:s("result_type"),orientation:"horiz"}),React.createElement(u,{label:"Assign To",name:"assign_to",defaultValue:t.result_variable,onChange:s("result_variable"),orientation:"horiz"})),React.createElement("div",{className:"flex gap-x-5 p-3"},t.connection&&React.createElement(T,{className:"max-w-full",name:"gvk",label:"Resource Kind",onSearch:s("search_term"),searchTerm:t.search_term,resultItemsKeyField:"index",resultItems:t.search_result_items,onSelect:s("gvk"),itemRenderer:r=>React.createElement(A,{gvk:r}),selectedValue:t.gvk?.kind,placeholder:"apps/v1 Deployment"}),t.namespaces&&React.createElement(g,{name:"namespace",label:"Namespace",options:t.namespaces.map(r=>({label:r,value:r})),selectedOption:t.namespace,onChange:s("namespace")}),t.resources&&React.createElement(g,{name:"resource",label:"Resource Name",options:t.resources.map(r=>({label:r,value:r})),selectedOption:t.resource,onChange:s("resource")}))))},w=D;var he=async(e,o)=>{await x(e),e.root.innerHTML="loading...",e.importCSS("main.css"),e.importCSS("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap");let t=ReactDOM.createRoot(e.root);if(o.error)return t.render(React.createElement(h,{message:o.error}));t.render(React.createElement(w,{initialAttrs:o,ctx:e}))};export{he as init};
/*! Bundled license information:
classnames/index.js:
(*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*)
*/