From 01360b6a43930119df97c481efa0eff67445a40c Mon Sep 17 00:00:00 2001 From: lannyfu Date: Tue, 26 Mar 2024 09:21:53 +0800 Subject: [PATCH 1/2] fix: Fix gatekeeper bug Signed-off-by: lannyfu --- .../CreateConstraintForm/KindItem/index.jsx | 4 +-- .../Forms/CreateConstraintForm/index.jsx | 7 +++-- .../TargetItem/index.jsx | 1 + .../CreateConstraintTemplateForm/index.jsx | 2 +- .../Modal/CreateConstraintModal/index.jsx | 17 ++++++----- .../CreateConstraintTemplateModal/index.jsx | 17 ++++++----- .../src/containers/List/constraints.jsx | 10 +++---- .../containers/List/constrainttemplates.jsx | 6 ++-- .../gatekeeper/src/locales/en/base.json | 2 +- .../gatekeeper/src/locales/zh/base.json | 4 +-- .../src/store/constrainttemplate.js | 8 ++++- .../gatekeeper/src/utils/form.templates.js | 30 ++++++++++++++----- 12 files changed, 68 insertions(+), 40 deletions(-) diff --git a/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/KindItem/index.jsx b/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/KindItem/index.jsx index e8a1e34..d6b23b2 100644 --- a/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/KindItem/index.jsx +++ b/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/KindItem/index.jsx @@ -6,8 +6,8 @@ import { isEmpty } from 'lodash' const KindItem = props => { const { onChange, value } = props - const [apiGroups, setApiGroups] = useState([]) - const [kinds, setKinds] = useState([])//Pod + const [apiGroups, setApiGroups] = useState(value.apiGroups || []) + const [kinds, setKinds] = useState(value.kinds || [])//Pod useEffect(() => { if(!isEmpty(kinds)||!isEmpty(apiGroups)){ diff --git a/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/index.jsx b/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/index.jsx index c1b21a9..b0e058b 100644 --- a/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/index.jsx +++ b/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintForm/index.jsx @@ -61,7 +61,8 @@ const CreateConstraintForm = ({ const handleChange = () => { const formData = form.getFieldsValue() - onChange(merge(initialValues, formData)) + const newData = merge({},initialValues, formData) + onChange(newData) } const checkItemValid = item => { @@ -131,7 +132,7 @@ const CreateConstraintForm = ({ { name='rego' hasUpload={false} hasDownload={false} + value={value.rego} onChange={handleChangeRego} /> diff --git a/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintTemplateForm/index.jsx b/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintTemplateForm/index.jsx index 34453dd..e03c0a5 100644 --- a/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintTemplateForm/index.jsx +++ b/modules/web/extensions/gatekeeper/src/components/Forms/CreateConstraintTemplateForm/index.jsx @@ -26,7 +26,7 @@ const CreateConstraintTemplateForm = ({ const name = get(formData, `spec.crd.spec.names.kind`)?.toLowerCase(); set(formData, 'metadata.name', name); - onChange(merge(initialValues, formData)); + onChange(merge({},initialValues, formData)); }; const checkItemValid = item => { diff --git a/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx b/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx index 717a4f7..c5fc224 100644 --- a/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx +++ b/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx @@ -19,12 +19,6 @@ const CreateConstraintModal = ({ const [formData, setFormData] = useState(initialValues) const [yamlData, setYamlData] = useState('') - useEffect(() => { - if (store) { - setYamlData(store.yamlRawData) - } - }, []) - const handleSubmit = () => { form .validateFields() @@ -34,11 +28,18 @@ const CreateConstraintModal = ({ .catch(() => {}) } + const handleChangeEditType=value=>{ + setIsCodeMode(value) + if(value){ + setYamlData(yaml.getValue(formData)) + } + } + const renderSwitch = () => { return ( setIsCodeMode(value)} + onChange={handleChangeEditType} label={t('EDIT_YAML')} variant="button" /> @@ -70,7 +71,7 @@ const CreateConstraintModal = ({ ) : ( { - if(store){ - setYamlData(store.yamlRawData) - } - },[]) const handleSubmit = () => { form.validateFields().then(() => { @@ -31,10 +26,18 @@ const CreateConstraintTemplateModal = ({ }).catch(()=>{}) }; + const handleChangeEditType=value =>{ + setIsCodeMode(value) + if(value){ + setYamlData(yaml.getValue(formData)) + } + + } + const renderSwitch = () => { return ( - setIsCodeMode(value)} label={t('EDIT_YAML')} variant="button" /> + ); }; @@ -63,7 +66,7 @@ const CreateConstraintTemplateModal = ({ ) : ( )} diff --git a/modules/web/extensions/gatekeeper/src/containers/List/constraints.jsx b/modules/web/extensions/gatekeeper/src/containers/List/constraints.jsx index affb6f7..c254c8a 100644 --- a/modules/web/extensions/gatekeeper/src/containers/List/constraints.jsx +++ b/modules/web/extensions/gatekeeper/src/containers/List/constraints.jsx @@ -19,6 +19,10 @@ const ConstraintList = () => { const url = getResourceUrl(params,true); + const callback = () => { + constraintRef?.current?.refetch(); + }; + const { editYaml, del } = useCommonActions({ store: constraintStore, params: { cluster }, @@ -62,7 +66,7 @@ const ConstraintList = () => { title: t('Name'), field: 'name', sortable: false, - searchable: false, + searchable: true, render: (value, row) => ( { ], }); - const callback = () => { - constraintRef?.current?.refetch(); - }; - const handleCreate = data => { constraintStore .post({ kind: data.kind.toLowerCase(), cluster }, data) diff --git a/modules/web/extensions/gatekeeper/src/containers/List/constrainttemplates.jsx b/modules/web/extensions/gatekeeper/src/containers/List/constrainttemplates.jsx index 879b81f..36b9367 100644 --- a/modules/web/extensions/gatekeeper/src/containers/List/constrainttemplates.jsx +++ b/modules/web/extensions/gatekeeper/src/containers/List/constrainttemplates.jsx @@ -66,9 +66,9 @@ const ConstraintTemplateList = () => { const columns = [ { title: t('Name'), - field: 'metadata.name', + field: 'name', sortable: false, - searchable: false, + searchable: true, render: (value, row) => ( { format={formatFn} serverDataFormat={formatServerData} placeholder={t('SEARCH_BY_NAME')} - url={getResourceUrl(params)} + url={getResourceUrl(params,true)} useStorageState={false} disableRowSelect={false} selectType={false} diff --git a/modules/web/extensions/gatekeeper/src/locales/en/base.json b/modules/web/extensions/gatekeeper/src/locales/en/base.json index 9400fc6..1fed892 100644 --- a/modules/web/extensions/gatekeeper/src/locales/en/base.json +++ b/modules/web/extensions/gatekeeper/src/locales/en/base.json @@ -34,7 +34,7 @@ "CONSTRAINT_PARAMETERS": "Parameters", "CONSTRAINT_PARAMETERS_EMPTY": "Please enter Parameters", "NAMESPACE_LABELS": "Namespace Selector", - "ENFORCEMENT_ACTIONS": "enforcementActions", + "ENFORCEMENT_ACTIONS": "enforcementAction", "ENFORCEMENT_ACTIONS_PLACEHOLDER": "Please select the enforcement actions", "CONSTRAINT_KINDS_PLACEHOLDER": "Please enter the kinds", "INVALID_CONSTRAINT_KINDS": "Please enter the correct kinds" diff --git a/modules/web/extensions/gatekeeper/src/locales/zh/base.json b/modules/web/extensions/gatekeeper/src/locales/zh/base.json index 7d6fa2d..a2ea2f6 100644 --- a/modules/web/extensions/gatekeeper/src/locales/zh/base.json +++ b/modules/web/extensions/gatekeeper/src/locales/zh/base.json @@ -34,8 +34,8 @@ "CONSTRAINT_PARAMETERS": "Parameters", "CONSTRAINT_PARAMETERS_EMPTY": "请输入 Parameters", "NAMESPACE_LABELS": "命名空间标签", - "ENFORCEMENT_ACTIONS": "enforcementActions", - "ENFORCEMENT_ACTIONS_PLACEHOLDER": "请选择 enforcementActions", + "ENFORCEMENT_ACTIONS": "enforcementAction", + "ENFORCEMENT_ACTIONS_PLACEHOLDER": "请选择 enforcementAction", "CONSTRAINT_KINDS_PLACEHOLDER": "请填写 Kinds", "INVALID_CONSTRAINT_KINDS": "请输入正确的 Kinds", diff --git a/modules/web/extensions/gatekeeper/src/store/constrainttemplate.js b/modules/web/extensions/gatekeeper/src/store/constrainttemplate.js index c009268..7492d0c 100644 --- a/modules/web/extensions/gatekeeper/src/store/constrainttemplate.js +++ b/modules/web/extensions/gatekeeper/src/store/constrainttemplate.js @@ -25,7 +25,13 @@ spec: rego: '' ` -const getResourceUrl = (params) => `${API_VERSIONS[module]}${getPath(params)}/${module}` +const getResourceUrl = (params,ksVersion) => { + if (ksVersion) { + return `kapis/templates.gatekeeper.sh/v1${getPath(params)}/${module}`; + } else { + return `${API_VERSIONS[module]}${getPath(params)}/${module}`; + } +} const { ...baseStore } = BaseStore({ module, diff --git a/modules/web/extensions/gatekeeper/src/utils/form.templates.js b/modules/web/extensions/gatekeeper/src/utils/form.templates.js index 8ce1363..50ec989 100644 --- a/modules/web/extensions/gatekeeper/src/utils/form.templates.js +++ b/modules/web/extensions/gatekeeper/src/utils/form.templates.js @@ -1,13 +1,20 @@ const getConstraintTemplatesTemplate = () => ({ apiVersion: 'templates.gatekeeper.sh/v1', kind: 'ConstraintTemplate', - metadata: {}, + metadata: { + name:'' + }, spec: { crd: { spec: { - names: {}, + names: { + kind:null, + }, validations: { - openAPIV3Schema: {}, + openAPIV3Schema: { + type:'object', + properties:{} + }, }, }, }, @@ -23,16 +30,25 @@ const getConstraintTemplatesTemplate = () => ({ const getConstraintTemplate = ()=>({ apiVersion: 'constraints.gatekeeper.sh/v1beta1', kind: '', - metadata: {}, + metadata: { + name:'', + }, spec: { - enforcementActions:'deny', + enforcementAction:'deny', match:{ kinds:[ { apiGroups:[], - kinds:[] + kinds:['Pod'] } - ] + ], + namespaces:[{name:""}], + namespaceSelector:{ + matchExpressions:[ + {key:'',operator:''} + ], + matchLabels:{}, + } }, parameters:{} }, From a041a4ca0b963ae3b66501d5b8e3cf05cc5d8094 Mon Sep 17 00:00:00 2001 From: lannyfu Date: Tue, 26 Mar 2024 17:23:42 +0800 Subject: [PATCH 2/2] fix bug Signed-off-by: lannyfu --- charts/gatekeeper/charts/extension/dist/index.js | 2 +- modules/web/extensions/gatekeeper/dist/index.js | 2 +- .../components/Forms/CreateConstraintForm/index.jsx | 12 +++++------- .../components/Forms/CreateConstraintForm/styles.js | 13 ++----------- .../Modal/CreateConstraintModal/index.jsx | 5 ++++- .../Modal/CreateConstraintTemplateModal/index.jsx | 4 +++- modules/web/extensions/gatekeeper/src/index.js | 2 +- .../gatekeeper/src/utils/form.templates.js | 2 +- 8 files changed, 18 insertions(+), 24 deletions(-) diff --git a/charts/gatekeeper/charts/extension/dist/index.js b/charts/gatekeeper/charts/extension/dist/index.js index 2758f79..43cf69a 100644 --- a/charts/gatekeeper/charts/extension/dist/index.js +++ b/charts/gatekeeper/charts/extension/dist/index.js @@ -1,2 +1,2 @@ /*! For license information please see index.js.LICENSE.txt */ -System.register(["@ks-console/shared","@kubed/code-editor","@kubed/components","@kubed/icons","lodash","react","react-router-dom","styled-components"],(function(e,n){var r={},a={},o={},i={},l={},c={},s={},u={};return{setters:[function(e){r.ArrayInput=e.ArrayInput,r.BaseStore=e.BaseStore,r.BaseTable=e.BaseTable,r.DataTable=e.DataTable,r.DetailPage=e.DetailPage,r.Icon=e.Icon,r.Label=e.Label,r.Panel=e.Panel,r.Pattern=e.Pattern,r.PropertiesInput=e.PropertiesInput,r.copyToClipboard=e.copyToClipboard,r.formatTime=e.formatTime,r.getOriginData=e.getOriginData,r.getPath=e.getPath,r.request=e.request,r.useActionMenu=e.useActionMenu,r.useCommonActions=e.useCommonActions,r.useDetailPage=e.useDetailPage,r.yaml=e.yaml},function(e){a.CodeEditor=e.CodeEditor},function(e){o.Banner=e.Banner,o.Card=e.Card,o.Empty=e.Empty,o.Field=e.Field,o.Form=e.Form,o.FormItem=e.FormItem,o.Input=e.Input,o.Modal=e.Modal,o.Select=e.Select,o.Switch=e.Switch,o.notify=e.notify,o.useForm=e.useForm},function(e){i.Group=e.Group,i.Pen=e.Pen,i.Trash=e.Trash},function(e){l.find=e.find,l.get=e.get,l.isEmpty=e.isEmpty,l.isUndefined=e.isUndefined,l.merge=e.merge,l.set=e.set},function(e){c.default=e.default,c.useEffect=e.useEffect,c.useRef=e.useRef,c.useState=e.useState},function(e){s.Link=e.Link,s.Navigate=e.Navigate,s.useParams=e.useParams},function(e){u.default=e.default}],execute:function(){e(function(){var e={683:function(e,t,n){var r={"./base.json":748};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=683},733:function(e,t,n){var r={"./base.json":144};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=733},386:function(e,t,n){var r=n(149).R;t.s=function(e){if(e||(e=1),!n.y.meta||!n.y.meta.url)throw console.error("__system_context__",n.y),Error("systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided");n.p=r(n.y.meta.url,e)}},149:function(e,t,n){function r(e,t){var n=document.createElement("a");n.href=e;for(var r="/"===n.pathname[0]?n.pathname:"/"+n.pathname,a=0,o=r.length;a!==t&&o>=0;){"/"===r[--o]&&a++}if(a!==t)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+t+") is greater than the number of directories ("+a+") in the URL path "+e);var i=r.slice(0,o+1);return n.protocol+"//"+n.host+i}t.R=r;var a=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},994:function(e){"use strict";e.exports=r},947:function(e){"use strict";e.exports=a},586:function(e){"use strict";e.exports=o},230:function(e){"use strict";e.exports=i},978:function(e){"use strict";e.exports=l},954:function(e){"use strict";e.exports=c},880:function(e){"use strict";e.exports=s},205:function(e){"use strict";e.exports=u},648:function(e,t,n){var r=n(288).default;function a(){"use strict";e.exports=a=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},l="function"==typeof Symbol?Symbol:{},c=l.iterator||"@@iterator",s=l.asyncIterator||"@@asyncIterator",u=l.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(w){f=function(e,t,n){return e[t]=n}}function p(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new P(r||[]);return i(o,"_invoke",{value:_(e,n,l)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(w){return{type:"throw",arg:w}}}t.wrap=p;var m={};function h(){}function E(){}function T(){}var g={};f(g,c,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(I([])));b&&b!==n&&o.call(b,c)&&(g=b);var v=T.prototype=h.prototype=Object.create(g);function O(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,t){function n(a,i,l,c){var s=d(e[a],e,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==r(f)&&o.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,l,c)}),(function(e){n("throw",e,l,c)})):t.resolve(f).then((function(e){u.value=e,l(u)}),(function(e){return n("throw",e,l,c)}))}c(s.arg)}var a;i(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(o,o):o()}})}function _(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var l=A(i,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=d(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function A(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,A(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var a=d(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,m;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function I(e){if(e||""===e){var t=e[c];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:I(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},288:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},357:function(e,t,n){var r=n(288),a=n(648)();e.exports=a;try{regeneratorRuntime=a}catch(o){"object"===("undefined"==typeof globalThis?"undefined":r(globalThis))?globalThis.regeneratorRuntime=a:Function("r","regeneratorRuntime = r")(a)}},748:function(e){"use strict";e.exports=JSON.parse('{"name":"Name","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates define a way to validate some set of Kubernetes objects in Gatekeeper\'s Kubernetes admission controller.","CONSTRAINT_TEMPLATE":"Constraint Template","CREATE_CONSTRAINT_TEMPLATE":"Create Constraint Template","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"Specifies the targets of the constraint template","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"Constraints are used to inform Gatekeeper that the admin wants a ConstraintTemplate to be enforced.","CONSTRAINT":"Constraint","NO_CONSTRAINTS_DESC":"This template has no constraints","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD Name","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"Please enter the crd name.","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"Please enter the tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"The crd name can contain only uppercase letters, lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"Invalid name. The crd name can contain only luppercase letters, owercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"Please enter the target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"Please enter the rego","INVALID_EXPRESSION":"Please enter the correct targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"Create Constraint","CONSTRAINT_KIND":"Constraint Kind","CONSTRAINT_KIND_PLACEHOLDER":"Please select the constraint kind","CONSTRAINT_NAME":"Constraint Name","CONSTRAINT_NAME_DESC":"The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_NAME_EMPTY":"Please enter the constraint name","INVALID_CONSTRAINT_NAME_DESC":"Invalid name. The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"Please enter Parameters","NAMESPACE_LABELS":"Namespace Selector","ENFORCEMENT_ACTIONS":"enforcementActions","ENFORCEMENT_ACTIONS_PLACEHOLDER":"Please select the enforcement actions","CONSTRAINT_KINDS_PLACEHOLDER":"Please enter the kinds","INVALID_CONSTRAINT_KINDS":"Please enter the correct kinds"}')},144:function(e){"use strict";e.exports=JSON.parse('{"name":"名称","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates 定义了一种方法来验证 Gatekeeper 的 Kubernetes准入控制器中的某些 Kubernetes 对象集。","CONSTRAINT_TEMPLATE":"约束模板","CREATE_CONSTRAINT_TEMPLATE":"创建约束模板","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"指定约束模板的适用范围","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"约束条件被管理员用于声明需要强制执行的 Gatekeeper 约束模板。","CONSTRAINT":"约束条件","NO_CONSTRAINTS_DESC":"此模板没有对应的约束条件","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD 名称","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"请输入 CRD 名称","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"请输入 Tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"名称无效。CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"请输入Target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"请输入限制条件的源代码","INVALID_EXPRESSION":"请输入正确的 Targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"创建约束条件","CONSTRAINT_KIND":"约束条件类型","CONSTRAINT_KIND_PLACEHOLDER":"请选择约束条件类型","CONSTRAINT_NAME":"约束条件名称","CONSTRAINT_NAME_DESC":"约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_NAME_EMPTY":"请输入约束条件名称","INVALID_CONSTRAINT_NAME_DESC":"名称无效。CRD 约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"请输入 Parameters","NAMESPACE_LABELS":"命名空间标签","ENFORCEMENT_ACTIONS":"enforcementActions","ENFORCEMENT_ACTIONS_PLACEHOLDER":"请选择 enforcementActions","CONSTRAINT_KINDS_PLACEHOLDER":"请填写 Kinds","INVALID_CONSTRAINT_KINDS":"请输入正确的 Kinds","":""}')}},f={};function p(t){var n=f[t];if(void 0!==n)return n.exports;var r=f[t]={exports:{}};return e[t](r,r.exports,p),r.exports}p.y=n,p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;p.g.importScripts&&(e=p.g.location+"");var t=p.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&!e;)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),p.p=e}();var d={};return(0,p(386).s)(1),function(){"use strict";p.r(d),p.d(d,{default:function(){return Xe}});var e=p(954),n=p(880);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function a(e){var t=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!==r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===r(t)?t:String(t)}function o(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n input{max-width:none !important;}"])),Y=K.default.div.withConfig({displayName:"styles__ErrorTip",componentId:"sc-3qwvky-2"})(["padding:3px 68px 3px 17px;margin-top:4px;font-family:",";font-size:12px;line-height:1.67;letter-spacing:normal;"],(function(e){return e.theme.font.sans}));function z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t div{margin-bottom:12px;}"]),(0,K.default)(s.Form).withConfig({displayName:"styles__FormWrapper",componentId:"sc-1az3d3i-1"})([""])),ee=/^[a-z]([-A-Z-a-z0-9]*[A-Za-z0-9])?$/,te=function(n){var r=n.form,a=n.data,o=n.className,i=n.initialValues,l=(n.isCodeMode,n.onChange),c=void 0===l?function(){}:l;(0,e.useEffect)((function(){r.resetFields(),r.setFieldsValue(i)}),[]);return e.default.createElement(Q,{form:r,className:o,onFieldsChange:function(){var e,t=r.getFieldsValue(),n=null===(e=(0,P.get)(t,"spec.crd.spec.names.kind"))||void 0===e?void 0:e.toLowerCase();(0,P.set)(t,"metadata.name",n),c((0,P.merge)(i,t))},data:a},e.default.createElement(s.FormItem,{name:["spec","crd","spec","names","kind"],label:t("CONSTRAINT_TEMPLATE_CRD_NAME"),help:t("CONSTRAINT_TEMPLATE_CRD_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY")},{pattern:ee,message:t("INVALID_CONSTRAINT_TEMPLATE_NAME_DESC")}]},e.default.createElement(s.Input,null)),e.default.createElement(s.FormItem,{name:["spec","targets"],label:t("CONSTRAINT_TEMPLATE_TARGETS"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_TARGETS_EMPTY")},{validator:function(e,n,r){return n?n.some((function(e){return!function(e){return e.target&&e.rego}(e)}))?r({message:t("INVALID_EXPRESSION")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(q,{itemType:"object"},e.default.createElement(Z,null))))},ne=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-h1k23h-0"})(["position:absolute;top:4px;right:40px;"]),re=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,p=n.store,d=c((0,e.useState)(!1),2),m=d[0],h=d[1],E=c((0,e.useState)(i),2),T=E[0],g=E[1],y=c((0,e.useState)({}),2),b=y[0],v=y[1];(0,e.useEffect)((function(){p&&v(p.yamlRawData)}),[]);return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT_TEMPLATE"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(ne,null,e.default.createElement(s.Switch,{onChange:function(e){return h(e)},label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(m?f.yaml.load(b):T)})).catch((function(){}))},bodyStyle:{padding:"20px"}},m?e.default.createElement($.CodeEditor,{mode:"yaml",value:b,onChange:function(e){v(e)}}):e.default.createElement(te,{form:r,initialValues:i,onChange:function(e){g(e)}}))};function ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oe(e){for(var t=1;tdiv{&>div:first-child{background:#eff4f9;}}}"]),he=function(n){var r=n.form,a=n.data,o=n.className,i=n.store,l=n.initialValues,u=n.cluster,p=n.onChange,d=void 0===p?function(){}:p,m=c((0,e.useState)([]),2),h=m[0],E=m[1],T=c((0,e.useState)(""),2),g=T[0],y=T[1],b=c((0,e.useState)({}),2),v=b[0],O=b[1];(0,e.useEffect)((function(){return r.resetFields(),r.setFieldsValue(l),N(),function(){r.resetFields()}}),[]);var N=function(){var e=A(C().mark((function e(){var t,n;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.fetchConstraintKind({cluster:u});case 2:t=e.sent,n=(null==t?void 0:t.data.map((function(e){return{label:(0,P.get)(e,"spec.crd.spec.names.kind"),value:(0,P.get)(e,"spec.crd.spec.names.kind")}})))||[],E(n);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_=function(e){return!(0,P.isEmpty)(e.kinds)||!(0,P.isEmpty)(e.apiGroups)},S=function(){var e=A(C().mark((function e(n,a){var o,l;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a||Promise.resolve(),o=r.getFieldsValue(),l=o.kind,e.next=4,i.checkName({name:a,kind:l.toLowerCase(),cluster:u});case 4:if(!e.sent.exist){e.next=7;break}return e.abrupt("return",Promise.reject({message:t("NAME_EXIST_DESC")}));case 7:Promise.resolve();case 8:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();return e.default.createElement(fe,{form:r,className:o,onFieldsChange:function(){var e=r.getFieldsValue();d((0,P.merge)(l,e))},data:a},e.default.createElement(s.FormItem,{name:["metadata","name"],label:t("CONSTRAINT_NAME"),help:t("CONSTRAINT_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_NAME_EMPTY")},{pattern:f.Pattern.PATTERN_NAME,message:t("INVALID_CONSTRAINT_NAME_DESC")},{validator:S,checkOnSubmit:!0}]},e.default.createElement(s.Input,{placeholder:t("CONSTRAINT_NAME_EMPTY")})),e.default.createElement(s.FormItem,{name:["kind"],label:t("CONSTRAINT_KIND"),rules:[{required:!0,message:t("CONSTRAINT_KIND_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:h,placeholder:t("CONSTRAINT_KIND_PLACEHOLDER")})),e.default.createElement(s.FormItem,{name:["spec","enforcementActions"],label:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),rules:[{required:!0,message:t("ENFORCEMENT_ACTIONS_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:[{label:"deny",value:"deny"},{label:"dryrun",value:"dryrun"},{label:"warn",value:"warn"}],placeholder:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),defaultValue:"deny"})),e.default.createElement(me,null,e.default.createElement(s.FormItem,{name:["spec","match","kinds"],label:"Match Kinds",rules:[{required:!0,message:t("CONSTRAINT_KINDS_PLACEHOLDER")},{validator:function(e,n,r){return n?n.some((function(e){return!_(e)}))?r({message:t("INVALID_CONSTRAINT_KINDS")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(f.ArrayInput,{itemType:"object",addText:t("ADD"),checkItemValid:_},e.default.createElement(ce,null)))),e.default.createElement(me,null,e.default.createElement(de,{name:["spec","namespaceSelector","matchLabels"],label:t("NAMESPACE_LABELS"),validateStatus:g?"error":void 0,className:"xxx",help:g?e.default.createElement(pe,null,g):void 0},e.default.createElement(f.PropertiesInput,{addText:t("ADD"),onError:function(e){return y(e&&e.message?e.message:"")}}))),e.default.createElement(s.FormItem,{name:["spec","parameters"],label:t("CONSTRAINT_PARAMETERS"),validateStatus:g?"error":void 0},e.default.createElement(ue,{yamlData:v,onChange:function(e){O(e)}})))},Ee=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-1ueioq5-0"})(["position:absolute;top:4px;right:40px;"]),Te=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,p=n.store,d=n.cluster,m=c((0,e.useState)(!1),2),h=m[0],E=m[1],T=c((0,e.useState)(i),2),g=T[0],y=T[1],b=c((0,e.useState)(""),2),v=b[0],O=b[1];(0,e.useEffect)((function(){p&&O(p.yamlRawData)}),[]);return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(Ee,null,e.default.createElement(s.Switch,{onChange:function(e){return E(e)},label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(h?f.yaml.load(v):g)})).catch((function(){}))},bodyStyle:{padding:"20px"}},h?e.default.createElement($.CodeEditor,{mode:"yaml",value:v,onChange:function(e){O(e)}}):e.default.createElement(he,{form:r,initialValues:i,onChange:function(e){y(e)},store:p,cluster:d}))};function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ye(e){for(var t=1;t ul > li{h6{font-size:14px;line-height:1.43;}pre{margin-top:8px;padding:12px;border-radius:4px;background-color:#ffffff;border:solid 1px #e3e9ef;}& + li{margin-top:12px;}}"]),_e=K.default.div.withConfig({displayName:"styles__CardTitle",componentId:"sc-5ah7ak-1"})(["position:relative;height:20px;margin-bottom:20px;font-size:14px;font-weight:600;line-height:1.43;@include clearfix;& > button{position:absolute;@include vertical-center;right:0;z-index:10;}"]),Ae=K.default.div.withConfig({displayName:"styles__TextDesc",componentId:"sc-5ah7ak-2"})(["margin-top:0;font-weight:400;color:",";a{color:",";}"],(function(e){return e.theme.palette.accents_5}),(function(e){return e.theme.palette.colors.blue[2]})),Se=K.default.div.withConfig({displayName:"styles__CodeEditorWrapper",componentId:"sc-5ah7ak-3"})(["position:relative;"]),Ce=K.default.div.withConfig({displayName:"styles__CodeEditorOperations",componentId:"sc-5ah7ak-4"})(["position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:10px;z-index:2;height:32px;padding:6px 10px;border-radius:16px;color:#ffffff;background-color:",";svg{opacity:0.6;margin-top:-1px;color:#ffffff;&:hover{opacity:1;background-color:transparent;}}"],(function(e){return e.theme.palette.accents_7})),Pe=(0,K.default)(s.Empty).withConfig({displayName:"styles__StyledEmpty",componentId:"sc-5ah7ak-5"})(["padding:32px;"]);var Ie=function(){var n,r=(0,f.useDetailPage)().detail;return e.default.createElement(s.Card,{hoverable:!0,padding:20},e.default.createElement(_e,null,t("Targets")),e.default.createElement(Ne,null,e.default.createElement("ul",null,null==r||null===(n=r.spec)||void 0===n?void 0:n.targets.map((function(n){return e.default.createElement("li",{key:n.target},e.default.createElement(Ae,{className:"mb12"},n.target),e.default.createElement(Se,null,e.default.createElement(Ce,null,e.default.createElement(f.Icon,{name:"copy",size:20,onClick:function(){(0,f.copyToClipboard)(n.rego),s.notify.success(t("COPY_SUCCESSFUL"))}})),e.default.createElement($.CodeEditor,{value:n.rego,mode:"javascript",hasDownload:!1,hasUpload:!1,readOnly:!0})))})))))};var we=function(){var n=(0,f.useDetailPage)().detail;return e.default.createElement(f.Panel,{title:t("Status")},e.default.createElement("div",null,null==n?void 0:n.status.byPod.map((function(t){return e.default.createElement(f.Label,{key:t.id,name:t.id,value:"GENERATION "+t.observedGeneration})}))))};function Re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xe(e){for(var t=1;t=0;){"/"===r[--o]&&a++}if(a!==t)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+t+") is greater than the number of directories ("+a+") in the URL path "+e);var i=r.slice(0,o+1);return n.protocol+"//"+n.host+i}t.R=r;var a=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},994:function(e){"use strict";e.exports=r},947:function(e){"use strict";e.exports=a},586:function(e){"use strict";e.exports=o},230:function(e){"use strict";e.exports=i},978:function(e){"use strict";e.exports=l},954:function(e){"use strict";e.exports=c},880:function(e){"use strict";e.exports=s},205:function(e){"use strict";e.exports=u},648:function(e,t,n){var r=n(288).default;function a(){"use strict";e.exports=a=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},l="function"==typeof Symbol?Symbol:{},c=l.iterator||"@@iterator",s=l.asyncIterator||"@@asyncIterator",u=l.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(w){p=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new P(r||[]);return i(o,"_invoke",{value:_(e,n,l)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(w){return{type:"throw",arg:w}}}t.wrap=f;var m={};function h(){}function E(){}function T(){}var g={};p(g,c,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(I([])));v&&v!==n&&o.call(v,c)&&(g=v);var b=T.prototype=h.prototype=Object.create(g);function O(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,t){function n(a,i,l,c){var s=d(e[a],e,i);if("throw"!==s.type){var u=s.arg,p=u.value;return p&&"object"==r(p)&&o.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,l,c)}),(function(e){n("throw",e,l,c)})):t.resolve(p).then((function(e){u.value=e,l(u)}),(function(e){return n("throw",e,l,c)}))}c(s.arg)}var a;i(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(o,o):o()}})}function _(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var l=S(i,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=d(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function S(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,S(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var a=d(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,m;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function I(e){if(e||""===e){var t=e[c];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:I(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},288:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},357:function(e,t,n){var r=n(288),a=n(648)();e.exports=a;try{regeneratorRuntime=a}catch(o){"object"===("undefined"==typeof globalThis?"undefined":r(globalThis))?globalThis.regeneratorRuntime=a:Function("r","regeneratorRuntime = r")(a)}},748:function(e){"use strict";e.exports=JSON.parse('{"name":"Name","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates define a way to validate some set of Kubernetes objects in Gatekeeper\'s Kubernetes admission controller.","CONSTRAINT_TEMPLATE":"Constraint Template","CREATE_CONSTRAINT_TEMPLATE":"Create Constraint Template","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"Specifies the targets of the constraint template","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"Constraints are used to inform Gatekeeper that the admin wants a ConstraintTemplate to be enforced.","CONSTRAINT":"Constraint","NO_CONSTRAINTS_DESC":"This template has no constraints","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD Name","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"Please enter the crd name.","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"Please enter the tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"The crd name can contain only uppercase letters, lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"Invalid name. The crd name can contain only luppercase letters, owercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"Please enter the target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"Please enter the rego","INVALID_EXPRESSION":"Please enter the correct targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"Create Constraint","CONSTRAINT_KIND":"Constraint Kind","CONSTRAINT_KIND_PLACEHOLDER":"Please select the constraint kind","CONSTRAINT_NAME":"Constraint Name","CONSTRAINT_NAME_DESC":"The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_NAME_EMPTY":"Please enter the constraint name","INVALID_CONSTRAINT_NAME_DESC":"Invalid name. The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"Please enter Parameters","NAMESPACE_LABELS":"Namespace Selector","ENFORCEMENT_ACTIONS":"enforcementAction","ENFORCEMENT_ACTIONS_PLACEHOLDER":"Please select the enforcement actions","CONSTRAINT_KINDS_PLACEHOLDER":"Please enter the kinds","INVALID_CONSTRAINT_KINDS":"Please enter the correct kinds"}')},144:function(e){"use strict";e.exports=JSON.parse('{"name":"名称","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates 定义了一种方法来验证 Gatekeeper 的 Kubernetes准入控制器中的某些 Kubernetes 对象集。","CONSTRAINT_TEMPLATE":"约束模板","CREATE_CONSTRAINT_TEMPLATE":"创建约束模板","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"指定约束模板的适用范围","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"约束条件被管理员用于声明需要强制执行的 Gatekeeper 约束模板。","CONSTRAINT":"约束条件","NO_CONSTRAINTS_DESC":"此模板没有对应的约束条件","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD 名称","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"请输入 CRD 名称","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"请输入 Tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"名称无效。CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"请输入Target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"请输入限制条件的源代码","INVALID_EXPRESSION":"请输入正确的 Targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"创建约束条件","CONSTRAINT_KIND":"约束条件类型","CONSTRAINT_KIND_PLACEHOLDER":"请选择约束条件类型","CONSTRAINT_NAME":"约束条件名称","CONSTRAINT_NAME_DESC":"约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_NAME_EMPTY":"请输入约束条件名称","INVALID_CONSTRAINT_NAME_DESC":"名称无效。CRD 约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"请输入 Parameters","NAMESPACE_LABELS":"命名空间标签","ENFORCEMENT_ACTIONS":"enforcementAction","ENFORCEMENT_ACTIONS_PLACEHOLDER":"请选择 enforcementAction","CONSTRAINT_KINDS_PLACEHOLDER":"请填写 Kinds","INVALID_CONSTRAINT_KINDS":"请输入正确的 Kinds","":""}')}},p={};function f(t){var n=p[t];if(void 0!==n)return n.exports;var r=p[t]={exports:{}};return e[t](r,r.exports,f),r.exports}f.y=n,f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;f.g.importScripts&&(e=f.g.location+"");var t=f.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&!e;)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),f.p=e}();var d={};return(0,f(386).s)(1),function(){"use strict";f.r(d),f.d(d,{default:function(){return $e}});var e=f(954),n=f(880);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function a(e){var t=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!==r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===r(t)?t:String(t)}function o(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n input{max-width:none !important;}"])),Y=K.default.div.withConfig({displayName:"styles__ErrorTip",componentId:"sc-3qwvky-2"})(["padding:3px 68px 3px 17px;margin-top:4px;font-family:",";font-size:12px;line-height:1.67;letter-spacing:normal;"],(function(e){return e.theme.font.sans}));function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function z(e){for(var t=1;t div{margin-bottom:12px;}"]),(0,K.default)(s.Form).withConfig({displayName:"styles__FormWrapper",componentId:"sc-1az3d3i-1"})([""])),ee=/^[a-z]([-A-Z-a-z0-9]*[A-Za-z0-9])?$/,te=function(n){var r=n.form,a=n.data,o=n.className,i=n.initialValues,l=(n.isCodeMode,n.onChange),c=void 0===l?function(){}:l;(0,e.useEffect)((function(){r.resetFields(),r.setFieldsValue(i)}),[]);return e.default.createElement(Q,{form:r,className:o,onFieldsChange:function(){var e,t=r.getFieldsValue(),n=null===(e=(0,P.get)(t,"spec.crd.spec.names.kind"))||void 0===e?void 0:e.toLowerCase();(0,P.set)(t,"metadata.name",n),c((0,P.merge)({},i,t))},data:a},e.default.createElement(s.FormItem,{name:["spec","crd","spec","names","kind"],label:t("CONSTRAINT_TEMPLATE_CRD_NAME"),help:t("CONSTRAINT_TEMPLATE_CRD_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY")},{pattern:ee,message:t("INVALID_CONSTRAINT_TEMPLATE_NAME_DESC")}]},e.default.createElement(s.Input,null)),e.default.createElement(s.FormItem,{name:["spec","targets"],label:t("CONSTRAINT_TEMPLATE_TARGETS"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_TARGETS_EMPTY")},{validator:function(e,n,r){return n?n.some((function(e){return!function(e){return e.target&&e.rego}(e)}))?r({message:t("INVALID_EXPRESSION")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(q,{itemType:"object"},e.default.createElement(Z,null))))},ne=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-h1k23h-0"})(["position:absolute;top:4px;right:40px;"]),re=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,f=(n.store,c((0,e.useState)(!1),2)),d=f[0],m=f[1],h=c((0,e.useState)(i),2),E=h[0],T=h[1],g=c((0,e.useState)({}),2),y=g[0],v=g[1],b=function(e){m(e),e?v(p.yaml.getValue(E)):T(p.yaml.load(y))};return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT_TEMPLATE"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(ne,null,e.default.createElement(s.Switch,{onChange:b,label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(d?p.yaml.load(y):E)})).catch((function(){}))},bodyStyle:{padding:"20px"}},d?e.default.createElement($.CodeEditor,{mode:"yaml",value:y,onChange:function(e){v(e)}}):e.default.createElement(te,{form:r,initialValues:E,onChange:function(e){T(e)}}))};function ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oe(e){for(var t=1;tdiv{&>div:not(:last-child){background:#eff4f9;}}}"]),me=function(n){var r=n.form,a=n.data,o=n.className,i=n.store,l=n.initialValues,u=n.cluster,f=n.onChange,d=void 0===f?function(){}:f,m=c((0,e.useState)([]),2),h=m[0],E=m[1],T=c((0,e.useState)(""),2),g=T[0],y=T[1],v=c((0,e.useState)({}),2),b=v[0],O=v[1];(0,e.useEffect)((function(){return r.resetFields(),r.setFieldsValue(l),N(),function(){r.resetFields()}}),[]);var N=function(){var e=S(C().mark((function e(){var t,n;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.fetchConstraintKind({cluster:u});case 2:t=e.sent,n=(null==t?void 0:t.data.map((function(e){return{label:(0,P.get)(e,"spec.crd.spec.names.kind"),value:(0,P.get)(e,"spec.crd.spec.names.kind")}})))||[],E(n);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_=function(e){return!(0,P.isEmpty)(e.kinds)||!(0,P.isEmpty)(e.apiGroups)},A=function(){var e=S(C().mark((function e(n,a){var o,l;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a||Promise.resolve(),o=r.getFieldsValue(),l=o.kind,e.next=4,i.checkName({name:a,kind:l.toLowerCase(),cluster:u});case 4:if(!e.sent.exist){e.next=7;break}return e.abrupt("return",Promise.reject({message:t("NAME_EXIST_DESC")}));case 7:Promise.resolve();case 8:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();return e.default.createElement(pe,{form:r,className:o,onFieldsChange:function(){var e=r.getFieldsValue();d(e)},data:a},e.default.createElement(s.FormItem,{name:["metadata","name"],label:t("CONSTRAINT_NAME"),help:t("CONSTRAINT_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_NAME_EMPTY")},{pattern:p.Pattern.PATTERN_NAME,message:t("INVALID_CONSTRAINT_NAME_DESC")},{validator:A,checkOnSubmit:!0}]},e.default.createElement(s.Input,{placeholder:t("CONSTRAINT_NAME_EMPTY")})),e.default.createElement(s.FormItem,{name:["kind"],label:t("CONSTRAINT_KIND"),rules:[{required:!0,message:t("CONSTRAINT_KIND_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:h,placeholder:t("CONSTRAINT_KIND_PLACEHOLDER")})),e.default.createElement(s.FormItem,{name:["spec","enforcementAction"],label:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),rules:[{required:!0,message:t("ENFORCEMENT_ACTIONS_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:[{label:"deny",value:"deny"},{label:"dryrun",value:"dryrun"},{label:"warn",value:"warn"}],placeholder:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),defaultValue:"deny"})),e.default.createElement(de,null,e.default.createElement(s.FormItem,{name:["spec","match","kinds"],label:"Match Kinds",rules:[{required:!0,message:t("CONSTRAINT_KINDS_PLACEHOLDER")},{validator:function(e,n,r){return n?n.some((function(e){return!_(e)}))?r({message:t("INVALID_CONSTRAINT_KINDS")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(p.ArrayInput,{itemType:"object",addText:t("ADD"),checkItemValid:_},e.default.createElement(ce,null)))),e.default.createElement(de,null,e.default.createElement(s.FormItem,{name:["spec","match","namespaceSelector","matchLabels"],label:t("NAMESPACE_LABELS"),validateStatus:g?"error":void 0,help:g?e.default.createElement(fe,null,g):void 0},e.default.createElement(p.PropertiesInput,{addText:t("ADD"),onError:function(e){return y(e&&e.message?e.message:"")}}))),e.default.createElement(s.FormItem,{name:["spec","parameters"],label:t("CONSTRAINT_PARAMETERS"),validateStatus:g?"error":void 0},e.default.createElement(ue,{yamlData:b,onChange:function(e){O(e)}})))},he=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-1ueioq5-0"})(["position:absolute;top:4px;right:40px;"]),Ee=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,f=n.store,d=n.cluster,m=c((0,e.useState)(!1),2),h=m[0],E=m[1],T=c((0,e.useState)((0,P.cloneDeep)(i)),2),g=T[0],y=T[1],v=c((0,e.useState)(""),2),b=v[0],O=v[1],N=function(e){E(e),e?O(p.yaml.getValue(g)):y(p.yaml.load(b))};return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(he,null,e.default.createElement(s.Switch,{onChange:N,label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(h?p.yaml.load(b):g)})).catch((function(){}))},bodyStyle:{padding:"20px"}},h?e.default.createElement($.CodeEditor,{mode:"yaml",value:b,onChange:function(e){O(e)}}):e.default.createElement(me,{form:r,initialValues:g,onChange:function(e){y(e)},store:f,cluster:d}))};function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ge(e){for(var t=1;t ul > li{h6{font-size:14px;line-height:1.43;}pre{margin-top:8px;padding:12px;border-radius:4px;background-color:#ffffff;border:solid 1px #e3e9ef;}& + li{margin-top:12px;}}"]),Ne=K.default.div.withConfig({displayName:"styles__CardTitle",componentId:"sc-5ah7ak-1"})(["position:relative;height:20px;margin-bottom:20px;font-size:14px;font-weight:600;line-height:1.43;@include clearfix;& > button{position:absolute;@include vertical-center;right:0;z-index:10;}"]),_e=K.default.div.withConfig({displayName:"styles__TextDesc",componentId:"sc-5ah7ak-2"})(["margin-top:0;font-weight:400;color:",";a{color:",";}"],(function(e){return e.theme.palette.accents_5}),(function(e){return e.theme.palette.colors.blue[2]})),Se=K.default.div.withConfig({displayName:"styles__CodeEditorWrapper",componentId:"sc-5ah7ak-3"})(["position:relative;"]),Ae=K.default.div.withConfig({displayName:"styles__CodeEditorOperations",componentId:"sc-5ah7ak-4"})(["position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:10px;z-index:2;height:32px;padding:6px 10px;border-radius:16px;color:#ffffff;background-color:",";svg{opacity:0.6;margin-top:-1px;color:#ffffff;&:hover{opacity:1;background-color:transparent;}}"],(function(e){return e.theme.palette.accents_7})),Ce=(0,K.default)(s.Empty).withConfig({displayName:"styles__StyledEmpty",componentId:"sc-5ah7ak-5"})(["padding:32px;"]);var Pe=function(){var n,r=(0,p.useDetailPage)().detail;return e.default.createElement(s.Card,{hoverable:!0,padding:20},e.default.createElement(Ne,null,t("Targets")),e.default.createElement(Oe,null,e.default.createElement("ul",null,null==r||null===(n=r.spec)||void 0===n?void 0:n.targets.map((function(n){return e.default.createElement("li",{key:n.target},e.default.createElement(_e,{className:"mb12"},n.target),e.default.createElement(Se,null,e.default.createElement(Ae,null,e.default.createElement(p.Icon,{name:"copy",size:20,onClick:function(){(0,p.copyToClipboard)(n.rego),s.notify.success(t("COPY_SUCCESSFUL"))}})),e.default.createElement($.CodeEditor,{value:n.rego,mode:"javascript",hasDownload:!1,hasUpload:!1,readOnly:!0})))})))))};var Ie=function(){var n=(0,p.useDetailPage)().detail;return e.default.createElement(p.Panel,{title:t("Status")},e.default.createElement("div",null,null==n?void 0:n.status.byPod.map((function(t){return e.default.createElement(p.Label,{key:t.id,name:t.id,value:"GENERATION "+t.observedGeneration})}))))};function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Re(e){for(var t=1;t=0;){"/"===r[--o]&&a++}if(a!==t)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+t+") is greater than the number of directories ("+a+") in the URL path "+e);var i=r.slice(0,o+1);return n.protocol+"//"+n.host+i}t.R=r;var a=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},994:function(e){"use strict";e.exports=r},947:function(e){"use strict";e.exports=a},586:function(e){"use strict";e.exports=o},230:function(e){"use strict";e.exports=i},978:function(e){"use strict";e.exports=l},954:function(e){"use strict";e.exports=c},880:function(e){"use strict";e.exports=s},205:function(e){"use strict";e.exports=u},648:function(e,t,n){var r=n(288).default;function a(){"use strict";e.exports=a=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},l="function"==typeof Symbol?Symbol:{},c=l.iterator||"@@iterator",s=l.asyncIterator||"@@asyncIterator",u=l.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(w){f=function(e,t,n){return e[t]=n}}function p(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new P(r||[]);return i(o,"_invoke",{value:_(e,n,l)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(w){return{type:"throw",arg:w}}}t.wrap=p;var m={};function h(){}function E(){}function T(){}var g={};f(g,c,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(I([])));b&&b!==n&&o.call(b,c)&&(g=b);var v=T.prototype=h.prototype=Object.create(g);function O(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,t){function n(a,i,l,c){var s=d(e[a],e,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==r(f)&&o.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,l,c)}),(function(e){n("throw",e,l,c)})):t.resolve(f).then((function(e){u.value=e,l(u)}),(function(e){return n("throw",e,l,c)}))}c(s.arg)}var a;i(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(o,o):o()}})}function _(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var l=A(i,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=d(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function A(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,A(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var a=d(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,m;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function I(e){if(e||""===e){var t=e[c];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:I(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},288:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},357:function(e,t,n){var r=n(288),a=n(648)();e.exports=a;try{regeneratorRuntime=a}catch(o){"object"===("undefined"==typeof globalThis?"undefined":r(globalThis))?globalThis.regeneratorRuntime=a:Function("r","regeneratorRuntime = r")(a)}},748:function(e){"use strict";e.exports=JSON.parse('{"name":"Name","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates define a way to validate some set of Kubernetes objects in Gatekeeper\'s Kubernetes admission controller.","CONSTRAINT_TEMPLATE":"Constraint Template","CREATE_CONSTRAINT_TEMPLATE":"Create Constraint Template","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"Specifies the targets of the constraint template","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"Constraints are used to inform Gatekeeper that the admin wants a ConstraintTemplate to be enforced.","CONSTRAINT":"Constraint","NO_CONSTRAINTS_DESC":"This template has no constraints","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD Name","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"Please enter the crd name.","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"Please enter the tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"The crd name can contain only uppercase letters, lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"Invalid name. The crd name can contain only luppercase letters, owercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"Please enter the target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"Please enter the rego","INVALID_EXPRESSION":"Please enter the correct targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"Create Constraint","CONSTRAINT_KIND":"Constraint Kind","CONSTRAINT_KIND_PLACEHOLDER":"Please select the constraint kind","CONSTRAINT_NAME":"Constraint Name","CONSTRAINT_NAME_DESC":"The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_NAME_EMPTY":"Please enter the constraint name","INVALID_CONSTRAINT_NAME_DESC":"Invalid name. The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"Please enter Parameters","NAMESPACE_LABELS":"Namespace Selector","ENFORCEMENT_ACTIONS":"enforcementActions","ENFORCEMENT_ACTIONS_PLACEHOLDER":"Please select the enforcement actions","CONSTRAINT_KINDS_PLACEHOLDER":"Please enter the kinds","INVALID_CONSTRAINT_KINDS":"Please enter the correct kinds"}')},144:function(e){"use strict";e.exports=JSON.parse('{"name":"名称","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates 定义了一种方法来验证 Gatekeeper 的 Kubernetes准入控制器中的某些 Kubernetes 对象集。","CONSTRAINT_TEMPLATE":"约束模板","CREATE_CONSTRAINT_TEMPLATE":"创建约束模板","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"指定约束模板的适用范围","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"约束条件被管理员用于声明需要强制执行的 Gatekeeper 约束模板。","CONSTRAINT":"约束条件","NO_CONSTRAINTS_DESC":"此模板没有对应的约束条件","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD 名称","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"请输入 CRD 名称","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"请输入 Tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"名称无效。CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"请输入Target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"请输入限制条件的源代码","INVALID_EXPRESSION":"请输入正确的 Targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"创建约束条件","CONSTRAINT_KIND":"约束条件类型","CONSTRAINT_KIND_PLACEHOLDER":"请选择约束条件类型","CONSTRAINT_NAME":"约束条件名称","CONSTRAINT_NAME_DESC":"约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_NAME_EMPTY":"请输入约束条件名称","INVALID_CONSTRAINT_NAME_DESC":"名称无效。CRD 约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"请输入 Parameters","NAMESPACE_LABELS":"命名空间标签","ENFORCEMENT_ACTIONS":"enforcementActions","ENFORCEMENT_ACTIONS_PLACEHOLDER":"请选择 enforcementActions","CONSTRAINT_KINDS_PLACEHOLDER":"请填写 Kinds","INVALID_CONSTRAINT_KINDS":"请输入正确的 Kinds","":""}')}},f={};function p(t){var n=f[t];if(void 0!==n)return n.exports;var r=f[t]={exports:{}};return e[t](r,r.exports,p),r.exports}p.y=n,p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;p.g.importScripts&&(e=p.g.location+"");var t=p.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&!e;)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),p.p=e}();var d={};return(0,p(386).s)(1),function(){"use strict";p.r(d),p.d(d,{default:function(){return Xe}});var e=p(954),n=p(880);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function a(e){var t=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!==r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===r(t)?t:String(t)}function o(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n input{max-width:none !important;}"])),Y=K.default.div.withConfig({displayName:"styles__ErrorTip",componentId:"sc-3qwvky-2"})(["padding:3px 68px 3px 17px;margin-top:4px;font-family:",";font-size:12px;line-height:1.67;letter-spacing:normal;"],(function(e){return e.theme.font.sans}));function z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t div{margin-bottom:12px;}"]),(0,K.default)(s.Form).withConfig({displayName:"styles__FormWrapper",componentId:"sc-1az3d3i-1"})([""])),ee=/^[a-z]([-A-Z-a-z0-9]*[A-Za-z0-9])?$/,te=function(n){var r=n.form,a=n.data,o=n.className,i=n.initialValues,l=(n.isCodeMode,n.onChange),c=void 0===l?function(){}:l;(0,e.useEffect)((function(){r.resetFields(),r.setFieldsValue(i)}),[]);return e.default.createElement(Q,{form:r,className:o,onFieldsChange:function(){var e,t=r.getFieldsValue(),n=null===(e=(0,P.get)(t,"spec.crd.spec.names.kind"))||void 0===e?void 0:e.toLowerCase();(0,P.set)(t,"metadata.name",n),c((0,P.merge)(i,t))},data:a},e.default.createElement(s.FormItem,{name:["spec","crd","spec","names","kind"],label:t("CONSTRAINT_TEMPLATE_CRD_NAME"),help:t("CONSTRAINT_TEMPLATE_CRD_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY")},{pattern:ee,message:t("INVALID_CONSTRAINT_TEMPLATE_NAME_DESC")}]},e.default.createElement(s.Input,null)),e.default.createElement(s.FormItem,{name:["spec","targets"],label:t("CONSTRAINT_TEMPLATE_TARGETS"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_TARGETS_EMPTY")},{validator:function(e,n,r){return n?n.some((function(e){return!function(e){return e.target&&e.rego}(e)}))?r({message:t("INVALID_EXPRESSION")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(q,{itemType:"object"},e.default.createElement(Z,null))))},ne=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-h1k23h-0"})(["position:absolute;top:4px;right:40px;"]),re=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,p=n.store,d=c((0,e.useState)(!1),2),m=d[0],h=d[1],E=c((0,e.useState)(i),2),T=E[0],g=E[1],y=c((0,e.useState)({}),2),b=y[0],v=y[1];(0,e.useEffect)((function(){p&&v(p.yamlRawData)}),[]);return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT_TEMPLATE"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(ne,null,e.default.createElement(s.Switch,{onChange:function(e){return h(e)},label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(m?f.yaml.load(b):T)})).catch((function(){}))},bodyStyle:{padding:"20px"}},m?e.default.createElement($.CodeEditor,{mode:"yaml",value:b,onChange:function(e){v(e)}}):e.default.createElement(te,{form:r,initialValues:i,onChange:function(e){g(e)}}))};function ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oe(e){for(var t=1;tdiv{&>div:first-child{background:#eff4f9;}}}"]),he=function(n){var r=n.form,a=n.data,o=n.className,i=n.store,l=n.initialValues,u=n.cluster,p=n.onChange,d=void 0===p?function(){}:p,m=c((0,e.useState)([]),2),h=m[0],E=m[1],T=c((0,e.useState)(""),2),g=T[0],y=T[1],b=c((0,e.useState)({}),2),v=b[0],O=b[1];(0,e.useEffect)((function(){return r.resetFields(),r.setFieldsValue(l),N(),function(){r.resetFields()}}),[]);var N=function(){var e=A(C().mark((function e(){var t,n;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.fetchConstraintKind({cluster:u});case 2:t=e.sent,n=(null==t?void 0:t.data.map((function(e){return{label:(0,P.get)(e,"spec.crd.spec.names.kind"),value:(0,P.get)(e,"spec.crd.spec.names.kind")}})))||[],E(n);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_=function(e){return!(0,P.isEmpty)(e.kinds)||!(0,P.isEmpty)(e.apiGroups)},S=function(){var e=A(C().mark((function e(n,a){var o,l;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a||Promise.resolve(),o=r.getFieldsValue(),l=o.kind,e.next=4,i.checkName({name:a,kind:l.toLowerCase(),cluster:u});case 4:if(!e.sent.exist){e.next=7;break}return e.abrupt("return",Promise.reject({message:t("NAME_EXIST_DESC")}));case 7:Promise.resolve();case 8:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();return e.default.createElement(fe,{form:r,className:o,onFieldsChange:function(){var e=r.getFieldsValue();d((0,P.merge)(l,e))},data:a},e.default.createElement(s.FormItem,{name:["metadata","name"],label:t("CONSTRAINT_NAME"),help:t("CONSTRAINT_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_NAME_EMPTY")},{pattern:f.Pattern.PATTERN_NAME,message:t("INVALID_CONSTRAINT_NAME_DESC")},{validator:S,checkOnSubmit:!0}]},e.default.createElement(s.Input,{placeholder:t("CONSTRAINT_NAME_EMPTY")})),e.default.createElement(s.FormItem,{name:["kind"],label:t("CONSTRAINT_KIND"),rules:[{required:!0,message:t("CONSTRAINT_KIND_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:h,placeholder:t("CONSTRAINT_KIND_PLACEHOLDER")})),e.default.createElement(s.FormItem,{name:["spec","enforcementActions"],label:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),rules:[{required:!0,message:t("ENFORCEMENT_ACTIONS_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:[{label:"deny",value:"deny"},{label:"dryrun",value:"dryrun"},{label:"warn",value:"warn"}],placeholder:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),defaultValue:"deny"})),e.default.createElement(me,null,e.default.createElement(s.FormItem,{name:["spec","match","kinds"],label:"Match Kinds",rules:[{required:!0,message:t("CONSTRAINT_KINDS_PLACEHOLDER")},{validator:function(e,n,r){return n?n.some((function(e){return!_(e)}))?r({message:t("INVALID_CONSTRAINT_KINDS")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(f.ArrayInput,{itemType:"object",addText:t("ADD"),checkItemValid:_},e.default.createElement(ce,null)))),e.default.createElement(me,null,e.default.createElement(de,{name:["spec","namespaceSelector","matchLabels"],label:t("NAMESPACE_LABELS"),validateStatus:g?"error":void 0,className:"xxx",help:g?e.default.createElement(pe,null,g):void 0},e.default.createElement(f.PropertiesInput,{addText:t("ADD"),onError:function(e){return y(e&&e.message?e.message:"")}}))),e.default.createElement(s.FormItem,{name:["spec","parameters"],label:t("CONSTRAINT_PARAMETERS"),validateStatus:g?"error":void 0},e.default.createElement(ue,{yamlData:v,onChange:function(e){O(e)}})))},Ee=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-1ueioq5-0"})(["position:absolute;top:4px;right:40px;"]),Te=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,p=n.store,d=n.cluster,m=c((0,e.useState)(!1),2),h=m[0],E=m[1],T=c((0,e.useState)(i),2),g=T[0],y=T[1],b=c((0,e.useState)(""),2),v=b[0],O=b[1];(0,e.useEffect)((function(){p&&O(p.yamlRawData)}),[]);return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(Ee,null,e.default.createElement(s.Switch,{onChange:function(e){return E(e)},label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(h?f.yaml.load(v):g)})).catch((function(){}))},bodyStyle:{padding:"20px"}},h?e.default.createElement($.CodeEditor,{mode:"yaml",value:v,onChange:function(e){O(e)}}):e.default.createElement(he,{form:r,initialValues:i,onChange:function(e){y(e)},store:p,cluster:d}))};function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ye(e){for(var t=1;t ul > li{h6{font-size:14px;line-height:1.43;}pre{margin-top:8px;padding:12px;border-radius:4px;background-color:#ffffff;border:solid 1px #e3e9ef;}& + li{margin-top:12px;}}"]),_e=K.default.div.withConfig({displayName:"styles__CardTitle",componentId:"sc-5ah7ak-1"})(["position:relative;height:20px;margin-bottom:20px;font-size:14px;font-weight:600;line-height:1.43;@include clearfix;& > button{position:absolute;@include vertical-center;right:0;z-index:10;}"]),Ae=K.default.div.withConfig({displayName:"styles__TextDesc",componentId:"sc-5ah7ak-2"})(["margin-top:0;font-weight:400;color:",";a{color:",";}"],(function(e){return e.theme.palette.accents_5}),(function(e){return e.theme.palette.colors.blue[2]})),Se=K.default.div.withConfig({displayName:"styles__CodeEditorWrapper",componentId:"sc-5ah7ak-3"})(["position:relative;"]),Ce=K.default.div.withConfig({displayName:"styles__CodeEditorOperations",componentId:"sc-5ah7ak-4"})(["position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:10px;z-index:2;height:32px;padding:6px 10px;border-radius:16px;color:#ffffff;background-color:",";svg{opacity:0.6;margin-top:-1px;color:#ffffff;&:hover{opacity:1;background-color:transparent;}}"],(function(e){return e.theme.palette.accents_7})),Pe=(0,K.default)(s.Empty).withConfig({displayName:"styles__StyledEmpty",componentId:"sc-5ah7ak-5"})(["padding:32px;"]);var Ie=function(){var n,r=(0,f.useDetailPage)().detail;return e.default.createElement(s.Card,{hoverable:!0,padding:20},e.default.createElement(_e,null,t("Targets")),e.default.createElement(Ne,null,e.default.createElement("ul",null,null==r||null===(n=r.spec)||void 0===n?void 0:n.targets.map((function(n){return e.default.createElement("li",{key:n.target},e.default.createElement(Ae,{className:"mb12"},n.target),e.default.createElement(Se,null,e.default.createElement(Ce,null,e.default.createElement(f.Icon,{name:"copy",size:20,onClick:function(){(0,f.copyToClipboard)(n.rego),s.notify.success(t("COPY_SUCCESSFUL"))}})),e.default.createElement($.CodeEditor,{value:n.rego,mode:"javascript",hasDownload:!1,hasUpload:!1,readOnly:!0})))})))))};var we=function(){var n=(0,f.useDetailPage)().detail;return e.default.createElement(f.Panel,{title:t("Status")},e.default.createElement("div",null,null==n?void 0:n.status.byPod.map((function(t){return e.default.createElement(f.Label,{key:t.id,name:t.id,value:"GENERATION "+t.observedGeneration})}))))};function Re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xe(e){for(var t=1;t=0;){"/"===r[--o]&&a++}if(a!==t)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+t+") is greater than the number of directories ("+a+") in the URL path "+e);var i=r.slice(0,o+1);return n.protocol+"//"+n.host+i}t.R=r;var a=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},994:function(e){"use strict";e.exports=r},947:function(e){"use strict";e.exports=a},586:function(e){"use strict";e.exports=o},230:function(e){"use strict";e.exports=i},978:function(e){"use strict";e.exports=l},954:function(e){"use strict";e.exports=c},880:function(e){"use strict";e.exports=s},205:function(e){"use strict";e.exports=u},648:function(e,t,n){var r=n(288).default;function a(){"use strict";e.exports=a=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,o=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},l="function"==typeof Symbol?Symbol:{},c=l.iterator||"@@iterator",s=l.asyncIterator||"@@asyncIterator",u=l.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(w){p=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new P(r||[]);return i(o,"_invoke",{value:_(e,n,l)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(w){return{type:"throw",arg:w}}}t.wrap=f;var m={};function h(){}function E(){}function T(){}var g={};p(g,c,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(I([])));v&&v!==n&&o.call(v,c)&&(g=v);var b=T.prototype=h.prototype=Object.create(g);function O(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,t){function n(a,i,l,c){var s=d(e[a],e,i);if("throw"!==s.type){var u=s.arg,p=u.value;return p&&"object"==r(p)&&o.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,l,c)}),(function(e){n("throw",e,l,c)})):t.resolve(p).then((function(e){u.value=e,l(u)}),(function(e){return n("throw",e,l,c)}))}c(s.arg)}var a;i(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(o,o):o()}})}function _(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return{value:void 0,done:!0}}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var l=S(i,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=d(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function S(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,S(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var a=d(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,m;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function I(e){if(e||""===e){var t=e[c];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:I(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},288:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},357:function(e,t,n){var r=n(288),a=n(648)();e.exports=a;try{regeneratorRuntime=a}catch(o){"object"===("undefined"==typeof globalThis?"undefined":r(globalThis))?globalThis.regeneratorRuntime=a:Function("r","regeneratorRuntime = r")(a)}},748:function(e){"use strict";e.exports=JSON.parse('{"name":"Name","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates define a way to validate some set of Kubernetes objects in Gatekeeper\'s Kubernetes admission controller.","CONSTRAINT_TEMPLATE":"Constraint Template","CREATE_CONSTRAINT_TEMPLATE":"Create Constraint Template","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"Specifies the targets of the constraint template","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"Constraints are used to inform Gatekeeper that the admin wants a ConstraintTemplate to be enforced.","CONSTRAINT":"Constraint","NO_CONSTRAINTS_DESC":"This template has no constraints","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD Name","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"Please enter the crd name.","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"Please enter the tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"The crd name can contain only uppercase letters, lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"Invalid name. The crd name can contain only luppercase letters, owercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"Please enter the target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"Please enter the rego","INVALID_EXPRESSION":"Please enter the correct targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"Create Constraint","CONSTRAINT_KIND":"Constraint Kind","CONSTRAINT_KIND_PLACEHOLDER":"Please select the constraint kind","CONSTRAINT_NAME":"Constraint Name","CONSTRAINT_NAME_DESC":"The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_NAME_EMPTY":"Please enter the constraint name","INVALID_CONSTRAINT_NAME_DESC":"Invalid name. The constraint name can contain only lowercase letters, numbers, and hyphens (-), and must start and end with a lowercase letter or number. The maximum length is 63 characters.","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"Please enter Parameters","NAMESPACE_LABELS":"Namespace Selector","ENFORCEMENT_ACTIONS":"enforcementAction","ENFORCEMENT_ACTIONS_PLACEHOLDER":"Please select the enforcement actions","CONSTRAINT_KINDS_PLACEHOLDER":"Please enter the kinds","INVALID_CONSTRAINT_KINDS":"Please enter the correct kinds"}')},144:function(e){"use strict";e.exports=JSON.parse('{"name":"名称","CONSTRAINT_TEMPLATES_DESC":"ConstraintTemplates 定义了一种方法来验证 Gatekeeper 的 Kubernetes准入控制器中的某些 Kubernetes 对象集。","CONSTRAINT_TEMPLATE":"约束模板","CREATE_CONSTRAINT_TEMPLATE":"创建约束模板","CONSTRAINT_TEMPLATE_TARGETS":"Targets","CONSTRAINT_TEMPLATE_TARGETS_DESC":"指定约束模板的适用范围","CONSTRAINT_TEMPLATE_DETAIL_CONSTRAINTS":"Constraints","CONSTRAINT_TEMPLATE_STATUS":"Status","CONSTRAINT_DESC":"约束条件被管理员用于声明需要强制执行的 Gatekeeper 约束模板。","CONSTRAINT":"约束条件","NO_CONSTRAINTS_DESC":"此模板没有对应的约束条件","CONSTRAINT_VIOLATIONS":"Violations","CONSTRAINT_TEMPLATE_CRD_NAME":"CRD 名称","CONSTRAINT_TEMPLATE_TARGET":"Target","CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY":"请输入 CRD 名称","CONSTRAINT_TEMPLATE_TARGETS_EMPTY":"请输入 Tragets","CONSTRAINT_TEMPLATE_CRD_NAME_DESC":"CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","INVALID_CONSTRAINT_TEMPLATE_NAME_DESC":"名称无效。CRD 名称只能包含大写字母、小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_TEMPLATE_TARGET_PLACEHOLDER":"请输入Target","CONSTRAINT_TEMPLATE_REGO_PLACEHOLDER":"请输入限制条件的源代码","INVALID_EXPRESSION":"请输入正确的 Targets","constrainttemplates_LOW":"constrainttemplates","constraints_LOW":"constraint","CREATE_CONSTRAINT":"创建约束条件","CONSTRAINT_KIND":"约束条件类型","CONSTRAINT_KIND_PLACEHOLDER":"请选择约束条件类型","CONSTRAINT_NAME":"约束条件名称","CONSTRAINT_NAME_DESC":"约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_NAME_EMPTY":"请输入约束条件名称","INVALID_CONSTRAINT_NAME_DESC":"名称无效。CRD 约束条件名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。","CONSTRAINT_PARAMETERS":"Parameters","CONSTRAINT_PARAMETERS_EMPTY":"请输入 Parameters","NAMESPACE_LABELS":"命名空间标签","ENFORCEMENT_ACTIONS":"enforcementAction","ENFORCEMENT_ACTIONS_PLACEHOLDER":"请选择 enforcementAction","CONSTRAINT_KINDS_PLACEHOLDER":"请填写 Kinds","INVALID_CONSTRAINT_KINDS":"请输入正确的 Kinds","":""}')}},p={};function f(t){var n=p[t];if(void 0!==n)return n.exports;var r=p[t]={exports:{}};return e[t](r,r.exports,f),r.exports}f.y=n,f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;f.g.importScripts&&(e=f.g.location+"");var t=f.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&!e;)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),f.p=e}();var d={};return(0,f(386).s)(1),function(){"use strict";f.r(d),f.d(d,{default:function(){return $e}});var e=f(954),n=f(880);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function a(e){var t=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!==r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===r(t)?t:String(t)}function o(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n input{max-width:none !important;}"])),Y=K.default.div.withConfig({displayName:"styles__ErrorTip",componentId:"sc-3qwvky-2"})(["padding:3px 68px 3px 17px;margin-top:4px;font-family:",";font-size:12px;line-height:1.67;letter-spacing:normal;"],(function(e){return e.theme.font.sans}));function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function z(e){for(var t=1;t div{margin-bottom:12px;}"]),(0,K.default)(s.Form).withConfig({displayName:"styles__FormWrapper",componentId:"sc-1az3d3i-1"})([""])),ee=/^[a-z]([-A-Z-a-z0-9]*[A-Za-z0-9])?$/,te=function(n){var r=n.form,a=n.data,o=n.className,i=n.initialValues,l=(n.isCodeMode,n.onChange),c=void 0===l?function(){}:l;(0,e.useEffect)((function(){r.resetFields(),r.setFieldsValue(i)}),[]);return e.default.createElement(Q,{form:r,className:o,onFieldsChange:function(){var e,t=r.getFieldsValue(),n=null===(e=(0,P.get)(t,"spec.crd.spec.names.kind"))||void 0===e?void 0:e.toLowerCase();(0,P.set)(t,"metadata.name",n),c((0,P.merge)({},i,t))},data:a},e.default.createElement(s.FormItem,{name:["spec","crd","spec","names","kind"],label:t("CONSTRAINT_TEMPLATE_CRD_NAME"),help:t("CONSTRAINT_TEMPLATE_CRD_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_CRD_NAME_EMPTY")},{pattern:ee,message:t("INVALID_CONSTRAINT_TEMPLATE_NAME_DESC")}]},e.default.createElement(s.Input,null)),e.default.createElement(s.FormItem,{name:["spec","targets"],label:t("CONSTRAINT_TEMPLATE_TARGETS"),rules:[{required:!0,message:t("CONSTRAINT_TEMPLATE_TARGETS_EMPTY")},{validator:function(e,n,r){return n?n.some((function(e){return!function(e){return e.target&&e.rego}(e)}))?r({message:t("INVALID_EXPRESSION")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(q,{itemType:"object"},e.default.createElement(Z,null))))},ne=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-h1k23h-0"})(["position:absolute;top:4px;right:40px;"]),re=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,f=(n.store,c((0,e.useState)(!1),2)),d=f[0],m=f[1],h=c((0,e.useState)(i),2),E=h[0],T=h[1],g=c((0,e.useState)({}),2),y=g[0],v=g[1],b=function(e){m(e),e?v(p.yaml.getValue(E)):T(p.yaml.load(y))};return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT_TEMPLATE"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(ne,null,e.default.createElement(s.Switch,{onChange:b,label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(d?p.yaml.load(y):E)})).catch((function(){}))},bodyStyle:{padding:"20px"}},d?e.default.createElement($.CodeEditor,{mode:"yaml",value:y,onChange:function(e){v(e)}}):e.default.createElement(te,{form:r,initialValues:E,onChange:function(e){T(e)}}))};function ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oe(e){for(var t=1;tdiv{&>div:not(:last-child){background:#eff4f9;}}}"]),me=function(n){var r=n.form,a=n.data,o=n.className,i=n.store,l=n.initialValues,u=n.cluster,f=n.onChange,d=void 0===f?function(){}:f,m=c((0,e.useState)([]),2),h=m[0],E=m[1],T=c((0,e.useState)(""),2),g=T[0],y=T[1],v=c((0,e.useState)({}),2),b=v[0],O=v[1];(0,e.useEffect)((function(){return r.resetFields(),r.setFieldsValue(l),N(),function(){r.resetFields()}}),[]);var N=function(){var e=S(C().mark((function e(){var t,n;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.fetchConstraintKind({cluster:u});case 2:t=e.sent,n=(null==t?void 0:t.data.map((function(e){return{label:(0,P.get)(e,"spec.crd.spec.names.kind"),value:(0,P.get)(e,"spec.crd.spec.names.kind")}})))||[],E(n);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_=function(e){return!(0,P.isEmpty)(e.kinds)||!(0,P.isEmpty)(e.apiGroups)},A=function(){var e=S(C().mark((function e(n,a){var o,l;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a||Promise.resolve(),o=r.getFieldsValue(),l=o.kind,e.next=4,i.checkName({name:a,kind:l.toLowerCase(),cluster:u});case 4:if(!e.sent.exist){e.next=7;break}return e.abrupt("return",Promise.reject({message:t("NAME_EXIST_DESC")}));case 7:Promise.resolve();case 8:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();return e.default.createElement(pe,{form:r,className:o,onFieldsChange:function(){var e=r.getFieldsValue();d(e)},data:a},e.default.createElement(s.FormItem,{name:["metadata","name"],label:t("CONSTRAINT_NAME"),help:t("CONSTRAINT_NAME_DESC"),rules:[{required:!0,message:t("CONSTRAINT_NAME_EMPTY")},{pattern:p.Pattern.PATTERN_NAME,message:t("INVALID_CONSTRAINT_NAME_DESC")},{validator:A,checkOnSubmit:!0}]},e.default.createElement(s.Input,{placeholder:t("CONSTRAINT_NAME_EMPTY")})),e.default.createElement(s.FormItem,{name:["kind"],label:t("CONSTRAINT_KIND"),rules:[{required:!0,message:t("CONSTRAINT_KIND_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:h,placeholder:t("CONSTRAINT_KIND_PLACEHOLDER")})),e.default.createElement(s.FormItem,{name:["spec","enforcementAction"],label:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),rules:[{required:!0,message:t("ENFORCEMENT_ACTIONS_PLACEHOLDER")}]},e.default.createElement(s.Select,{options:[{label:"deny",value:"deny"},{label:"dryrun",value:"dryrun"},{label:"warn",value:"warn"}],placeholder:t("ENFORCEMENT_ACTIONS_PLACEHOLDER"),defaultValue:"deny"})),e.default.createElement(de,null,e.default.createElement(s.FormItem,{name:["spec","match","kinds"],label:"Match Kinds",rules:[{required:!0,message:t("CONSTRAINT_KINDS_PLACEHOLDER")},{validator:function(e,n,r){return n?n.some((function(e){return!_(e)}))?r({message:t("INVALID_CONSTRAINT_KINDS")}):void r():r()},checkOnSubmit:!0}]},e.default.createElement(p.ArrayInput,{itemType:"object",addText:t("ADD"),checkItemValid:_},e.default.createElement(ce,null)))),e.default.createElement(de,null,e.default.createElement(s.FormItem,{name:["spec","match","namespaceSelector","matchLabels"],label:t("NAMESPACE_LABELS"),validateStatus:g?"error":void 0,help:g?e.default.createElement(fe,null,g):void 0},e.default.createElement(p.PropertiesInput,{addText:t("ADD"),onError:function(e){return y(e&&e.message?e.message:"")}}))),e.default.createElement(s.FormItem,{name:["spec","parameters"],label:t("CONSTRAINT_PARAMETERS"),validateStatus:g?"error":void 0},e.default.createElement(ue,{yamlData:b,onChange:function(e){O(e)}})))},he=K.default.div.withConfig({displayName:"styles__SwitchStyle",componentId:"sc-1ueioq5-0"})(["position:absolute;top:4px;right:40px;"]),Ee=function(n){var r=n.form,a=n.onCancel,o=n.visible,i=n.initialValues,l=n.onOk,f=n.store,d=n.cluster,m=c((0,e.useState)(!1),2),h=m[0],E=m[1],T=c((0,e.useState)((0,P.cloneDeep)(i)),2),g=T[0],y=T[1],v=c((0,e.useState)(""),2),b=v[0],O=v[1],N=function(e){E(e),e?O(p.yaml.getValue(g)):y(p.yaml.load(b))};return e.default.createElement(s.Modal,{title:t("CREATE_CONSTRAINT"),width:960,titleIcon:e.default.createElement(u.Group,{size:40}),visible:o,onCancel:a,headerExtra:e.default.createElement(he,null,e.default.createElement(s.Switch,{onChange:N,label:t("EDIT_YAML"),variant:"button"})),onOk:function(){r.validateFields().then((function(){null==l||l(h?p.yaml.load(b):g)})).catch((function(){}))},bodyStyle:{padding:"20px"}},h?e.default.createElement($.CodeEditor,{mode:"yaml",value:b,onChange:function(e){O(e)}}):e.default.createElement(me,{form:r,initialValues:g,onChange:function(e){y(e)},store:f,cluster:d}))};function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ge(e){for(var t=1;t ul > li{h6{font-size:14px;line-height:1.43;}pre{margin-top:8px;padding:12px;border-radius:4px;background-color:#ffffff;border:solid 1px #e3e9ef;}& + li{margin-top:12px;}}"]),Ne=K.default.div.withConfig({displayName:"styles__CardTitle",componentId:"sc-5ah7ak-1"})(["position:relative;height:20px;margin-bottom:20px;font-size:14px;font-weight:600;line-height:1.43;@include clearfix;& > button{position:absolute;@include vertical-center;right:0;z-index:10;}"]),_e=K.default.div.withConfig({displayName:"styles__TextDesc",componentId:"sc-5ah7ak-2"})(["margin-top:0;font-weight:400;color:",";a{color:",";}"],(function(e){return e.theme.palette.accents_5}),(function(e){return e.theme.palette.colors.blue[2]})),Se=K.default.div.withConfig({displayName:"styles__CodeEditorWrapper",componentId:"sc-5ah7ak-3"})(["position:relative;"]),Ae=K.default.div.withConfig({displayName:"styles__CodeEditorOperations",componentId:"sc-5ah7ak-4"})(["position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:10px;z-index:2;height:32px;padding:6px 10px;border-radius:16px;color:#ffffff;background-color:",";svg{opacity:0.6;margin-top:-1px;color:#ffffff;&:hover{opacity:1;background-color:transparent;}}"],(function(e){return e.theme.palette.accents_7})),Ce=(0,K.default)(s.Empty).withConfig({displayName:"styles__StyledEmpty",componentId:"sc-5ah7ak-5"})(["padding:32px;"]);var Pe=function(){var n,r=(0,p.useDetailPage)().detail;return e.default.createElement(s.Card,{hoverable:!0,padding:20},e.default.createElement(Ne,null,t("Targets")),e.default.createElement(Oe,null,e.default.createElement("ul",null,null==r||null===(n=r.spec)||void 0===n?void 0:n.targets.map((function(n){return e.default.createElement("li",{key:n.target},e.default.createElement(_e,{className:"mb12"},n.target),e.default.createElement(Se,null,e.default.createElement(Ae,null,e.default.createElement(p.Icon,{name:"copy",size:20,onClick:function(){(0,p.copyToClipboard)(n.rego),s.notify.success(t("COPY_SUCCESSFUL"))}})),e.default.createElement($.CodeEditor,{value:n.rego,mode:"javascript",hasDownload:!1,hasUpload:!1,readOnly:!0})))})))))};var Ie=function(){var n=(0,p.useDetailPage)().detail;return e.default.createElement(p.Panel,{title:t("Status")},e.default.createElement("div",null,null==n?void 0:n.status.byPod.map((function(t){return e.default.createElement(p.Label,{key:t.id,name:t.id,value:"GENERATION "+t.observedGeneration})}))))};function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Re(e){for(var t=1;t { const formData = form.getFieldsValue() - const newData = merge({},initialValues, formData) - onChange(newData) + onChange(formData) } const checkItemValid = item => { @@ -165,18 +164,17 @@ const CreateConstraintForm = ({ - {error} : undefined} > setError(e && e.message ? e.message : '')} /> - + div{ - &>div:first-child{ + &>div:not(:last-child){ background:#eff4f9; } } diff --git a/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx b/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx index c5fc224..2b33000 100644 --- a/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx +++ b/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintModal/index.jsx @@ -5,6 +5,7 @@ import { CodeEditor } from '@kubed/code-editor' import CreateConstraintForm from '../../Forms/CreateConstraintForm' import { SwitchStyle } from './styles' import { yaml } from '@ks-console/shared' +import { cloneDeep } from 'lodash' const CreateConstraintModal = ({ form, @@ -16,7 +17,7 @@ const CreateConstraintModal = ({ cluster, }) => { const [isCodeMode, setIsCodeMode] = useState(false) - const [formData, setFormData] = useState(initialValues) + const [formData, setFormData] = useState(cloneDeep(initialValues)) const [yamlData, setYamlData] = useState('') const handleSubmit = () => { @@ -32,6 +33,8 @@ const CreateConstraintModal = ({ setIsCodeMode(value) if(value){ setYamlData(yaml.getValue(formData)) + }else{ + setFormData(yaml.load(yamlData)) } } diff --git a/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintTemplateModal/index.jsx b/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintTemplateModal/index.jsx index 47b115e..5e82c43 100644 --- a/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintTemplateModal/index.jsx +++ b/modules/web/extensions/gatekeeper/src/components/Modal/CreateConstraintTemplateModal/index.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import { Modal, Switch } from '@kubed/components'; import { Group } from '@kubed/icons'; import CreateConstraintTemplateForm from '../../Forms/CreateConstraintTemplateForm'; @@ -30,6 +30,8 @@ const CreateConstraintTemplateModal = ({ setIsCodeMode(value) if(value){ setYamlData(yaml.getValue(formData)) + }else{ + setFormData(yaml.load(yamlData)) } } diff --git a/modules/web/extensions/gatekeeper/src/index.js b/modules/web/extensions/gatekeeper/src/index.js index c17d97f..3c899a4 100644 --- a/modules/web/extensions/gatekeeper/src/index.js +++ b/modules/web/extensions/gatekeeper/src/index.js @@ -7,7 +7,7 @@ const menus = [{ title: 'Gatekeeper', icon: 'key', assets:'https://open-policy-agent.github.io/gatekeeper/website/img/logo.svg', - order: 99, + order: 8, },{ parent: 'cluster.gatekeeper', name: 'gatekeeper.constrainttemplates', diff --git a/modules/web/extensions/gatekeeper/src/utils/form.templates.js b/modules/web/extensions/gatekeeper/src/utils/form.templates.js index 50ec989..3385f24 100644 --- a/modules/web/extensions/gatekeeper/src/utils/form.templates.js +++ b/modules/web/extensions/gatekeeper/src/utils/form.templates.js @@ -39,7 +39,7 @@ const getConstraintTemplate = ()=>({ kinds:[ { apiGroups:[], - kinds:['Pod'] + kinds:[], } ], namespaces:[{name:""}],