Current section

Files

Jump to
kino_k8s lib assets get_cell main.js
Raw

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,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var z=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of j(t))!O.call(e,r)&&r!==o&&v(e,r,{get:()=>t[r],enumerable:!(n=P(t,r))||n.enumerable});return e};var b=(e,t,o)=>(o=e!=null?R(K(e)):{},z(t||!e||!e.__esModule?v(o,"default",{value:e,enumerable:!0}):o,e));var m=_((Y,c)=>{(function(){"use strict";var e={}.hasOwnProperty;function t(){for(var r="",s=0;s<arguments.length;s++){var a=arguments[s];a&&(r=n(r,o(a)))}return r}function o(r){if(typeof r=="string"||typeof r=="number")return r;if(typeof r!="object")return"";if(Array.isArray(r))return t.apply(null,r);if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]"))return r.toString();var s="";for(var a in r)e.call(r,a)&&r[a]&&(s=n(s,a));return s}function n(r,s){return s?r?r+" "+s:r+s:r}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,t)=>{let o;return(...n)=>{clearTimeout(o),o=setTimeout(()=>{e(...n)},t)}},x=async e=>{await e.importJS("https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js"),await e.importJS("https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.production.min.js")};var E=(e,t)=>{let[o,n]=React.useState(t),r=s=>a=>{n(i=>({...i,[s]:a})),console.log("Pushing ${attrName} to server",a),e.pushEvent(`update_${s}`,a)};return React.useEffect(()=>{e.handleEvent("update",s=>{console.log("Attribute update from server",s),n(a=>({...Object.assign(a,s)}))})},[]),[o,r]},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.")),T=F;var d=b(m()),G=({name:e,label:t,defaultValue:o,testId:n,onChange:r,orientation:s="vert"})=>React.createElement("div",{className:(0,d.default)({"flex flex-row items-baseline":s=="horiz"})},React.createElement("label",{htmlFor:e,className:(0,d.default)({block:s=="vert","pr-1 uppercase":s=="horiz"},"mb-1 text-sm font-medium")},t),React.createElement("input",{type:"text","data-testid":n??e,value:o,name:e,onChange:a=>r(a.target.value),className:(0,d.default)({"block w-full":s=="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 C=b(m());var M=({name:e,selectedValue:t,searchTerm:o,onSearch:n,placeholder:r})=>{let s=y(l=>{n(l.toLowerCase())},300),[a,i]=React.useState(o??"");return React.useEffect(()=>{t&&i(t)},[t]),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,C.default)("h-5 w-5",{"bg-green-200":t,"text-green-800":t,"border-green-800":t,"rounded-lg":t})},t?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:a,name:e,autoComplete:"off",placeholder:r,onInput:l=>{i(l.target.value),s(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:t,onSelect:o,resultItemsKeyField:n})=>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(r=>React.createElement("div",{key:r[n],onClick:()=>o(r),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"},t(r))))),U=({name:e,label:t,searchTerm:o,onSearch:n,resultItems:r,resultItemsKeyField:s,itemRenderer:a,className:i,onSelect:l,selectedValue:w,placeholder:k})=>React.createElement("div",{className:i},React.createElement("label",{htmlFor:e,className:"mb-1 block text-sm font-medium"},t),React.createElement(M,{name:e,onSearch:n,searchTerm:o,selectedValue:w,placeholder:k}),(r&&r.length)>0&&React.createElement(q,{resultItems:r,itemRenderer:a,onSelect:l,resultItemsKeyField:s})),N=U;var f=b(m()),V=({name:e,label:t,options:o,selectedOption:n,onChange:r,className:s="",orientation:a="vert"})=>React.createElement("div",{className:(0,f.default)({"flex flex-row items-baseline":a=="horiz"},s)},React.createElement("label",{htmlFor:e,className:(0,f.default)({block:a=="vert","pr-1 uppercase":a=="horiz"},"mb-1 text-sm font-medium")},t),React.createElement("select",{id:e,value:n||void 0,onChange:i=>r(i.target.value),className:(0,f.default)({"block w-full":a=="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")},o.map(i=>React.createElement("option",{key:i.value,value:i.value},i.label)))),p=V;var J=e=>e.options.length>0?React.createElement(p,{...e}):React.createElement(u,{...e,defaultValue:e.selectedOption}),g=J;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:t})=>{let[o,n]=S(t,e),r=o.result_types[o.request_type];return React.createElement(React.Fragment,null,!o.connection&&React.createElement(T,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:o.connections.map(s=>({label:s.variable,value:s.variable})),selectedOption:o.connection?.variable?.toString(),onChange:n("connection"),orientation:"horiz"}),React.createElement(p,{name:"request_type",label:"Request Type",options:o.request_types.map(s=>({label:s.toUpperCase(),value:s})),selectedOption:o.request_type,onChange:n("request_type"),orientation:"horiz"}),r&&React.createElement(p,{name:"result_type",label:"Result Type",options:r.map(s=>({label:s.toUpperCase(),value:s})),selectedOption:o.result_type,onChange:n("result_type"),orientation:"horiz"}),React.createElement(u,{label:"Assign To",name:"assign_to",defaultValue:o.result_variable,onChange:n("result_variable"),orientation:"horiz"})),React.createElement("div",{className:"flex gap-x-5 p-3"},o.connection&&React.createElement(N,{className:"max-w-full",name:"gvk",label:"Resource Kind",onSearch:n("search_term"),searchTerm:o.search_term,resultItemsKeyField:"index",resultItems:o.search_result_items,onSelect:n("gvk"),itemRenderer:s=>React.createElement(A,{gvk:s}),selectedValue:o.gvk?.kind,placeholder:"apps/v1 Deployment"}),o.namespaces&&React.createElement(g,{name:"namespace",label:"Namespace",options:o.namespaces.map(s=>({label:s,value:s})),selectedOption:o.namespace,onChange:n("namespace")}),o.resources&&React.createElement(g,{name:"resource",label:"Resource Name",options:o.resources.map(s=>({label:s,value:s})),selectedOption:o.resource,onChange:n("resource")}))))},I=D;var he=async(e,t)=>{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 o=ReactDOM.createRoot(e.root);if(t.error)return o.render(React.createElement(h,{message:t.error}));o.render(React.createElement(I,{initialAttrs:t,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
*)
*/