@nocobase/plugin-acl 1.5.0-alpha.5 → 1.5.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,4 +7,12 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@nocobase/client"),require("react"),require("react-i18next"),require("@ant-design/icons"),require("@formily/shared"),require("@formily/core"),require("@formily/react"),require("antd"),require("antd-style"),require("lodash"),require("ahooks"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-acl",["@nocobase/client","react","react-i18next","@ant-design/icons","@formily/shared","@formily/core","@formily/react","antd","antd-style","lodash","ahooks","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-acl"]=t(require("@nocobase/client"),require("react"),require("react-i18next"),require("@ant-design/icons"),require("@formily/shared"),require("@formily/core"),require("@formily/react"),require("antd"),require("antd-style"),require("lodash"),require("ahooks"),require("@nocobase/utils/client")):e["@nocobase/plugin-acl"]=t(e["@nocobase/client"],e.react,e["react-i18next"],e["@ant-design/icons"],e["@formily/shared"],e["@formily/core"],e["@formily/react"],e.antd,e["antd-style"],e.lodash,e.ahooks,e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,i,a,u,c,l,s,f){return function(){var p={7973:function(e,t,n){var r=n(1783),o=n(1012),i=n(9900),a=n(6691),u=n(2018);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=u,e.exports=c},2768:function(e,t,n){var r=n(9896),o=n(2473),i=n(4678),a=n(1240),u=n(4296);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=u,e.exports=c},1725:function(e,t,n){var r=n(6369)(n(5031),"Map");e.exports=r},736:function(e,t,n){var r=n(6660),o=n(8472),i=n(5637),a=n(9389),u=n(9804);function c(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=a,c.prototype.set=u,e.exports=c},8995:function(e,t,n){var r=n(6369)(n(5031),"Set");e.exports=r},5106:function(e,t,n){var r=n(736),o=n(4867),i=n(9428);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},5869:function(e,t,n){var r=n(5031).Symbol;e.exports=r},7485:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},9360:function(e,t,n){var r=n(7667);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},5987:function(e){e.exports=function(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}},2467:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},3571:function(e){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},5699:function(e,t,n){var r=n(2544),o=n(3947),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];(!(i.call(e,t)&&o(a,n))||void 0===n&&!(t in e))&&r(e,t,n)}},8746:function(e,t,n){var r=n(3947);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return -1}},2544:function(e,t,n){var r=n(6554);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},9443:function(e){e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return -1}},6195:function(e,t,n){var r=n(3571),o=n(1449);e.exports=function e(t,n,i,a,u){var c=-1,l=t.length;for(i||(i=o),u||(u=[]);++c<l;){var s=t[c];n>0&&i(s)?n>1?e(s,n-1,i,a,u):r(u,s):!a&&(u[u.length]=s)}return u}},304:function(e,t,n){var r=n(322),o=n(5107);e.exports=function(e,t){t=r(t,e);for(var n=0,i=t.length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},4365:function(e,t,n){var r=n(5869),o=n(7043),i=n(5283),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},1547:function(e){e.exports=function(e,t){return null!=e&&t in Object(e)}},7667:function(e,t,n){var r=n(9443),o=n(1222),i=n(3691);e.exports=function(e,t,n){return t==t?i(e,t,n):r(e,o,n)}},8719:function(e,t,n){var r=n(4365),o=n(5620);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},1222:function(e){e.exports=function(e){return e!=e}},9930:function(e,t,n){var r=n(3098),o=n(8754),i=n(2917),a=n(1304),u=/^\[object .+?Constructor\]$/,c=Object.prototype,l=Function.prototype.toString,s=c.hasOwnProperty,f=RegExp("^"+l.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?f:u).test(a(e))}},3897:function(e,t,n){var r=n(3405),o=n(9459);e.exports=function(e,t){return r(e,t,function(t,n){return o(e,n)})}},3405:function(e,t,n){var r=n(304),o=n(7113),i=n(322);e.exports=function(e,t,n){for(var a=-1,u=t.length,c={};++a<u;){var l=t[a],s=r(e,l);n(s,l)&&o(c,i(l,e),s)}return c}},7113:function(e,t,n){var r=n(5699),o=n(322),i=n(3501),a=n(2917),u=n(5107);e.exports=function(e,t,n,c){if(!a(e))return e;t=o(t,e);for(var l=-1,s=t.length,f=s-1,p=e;null!=p&&++l<s;){var y=u(t[l]),d=n;if("__proto__"===y||"constructor"===y||"prototype"===y)break;if(l!=f){var v=p[y];void 0===(d=c?c(v,y,p):void 0)&&(d=a(v)?v:i(t[l+1])?[]:{})}r(p,y,d),p=p[y]}return e}},1792:function(e,t,n){var r=n(6710),o=n(6554),i=n(9974),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},4200:function(e,t,n){var r=n(5869),o=n(2467),i=n(6227),a=n(9528),u=1/0,c=r?r.prototype:void 0,l=c?c.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-u?"-0":n}},1826:function(e,t,n){var r=n(5106),o=n(9360),i=n(5987),a=n(8342),u=n(4248),c=n(735);e.exports=function(e,t,n){var l=-1,s=o,f=e.length,p=!0,y=[],d=y;if(n)p=!1,s=i;else if(f>=200){var v=t?null:u(e);if(v)return c(v);p=!1,s=a,d=new r}else d=t?[]:y;e:for(;++l<f;){var m=e[l],b=t?t(m):m;if(m=n||0!==m?m:0,p&&b==b){for(var h=d.length;h--;)if(d[h]===b)continue e;t&&d.push(b),y.push(m)}else!s(d,b,n)&&(d!==y&&d.push(b),y.push(m))}return y}},8342:function(e){e.exports=function(e,t){return e.has(t)}},322:function(e,t,n){var r=n(6227),o=n(8447),i=n(9765),a=n(2954);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},3823:function(e,t,n){var r=n(5031)["__core-js_shared__"];e.exports=r},4248:function(e,t,n){var r=n(8995),o=n(555),i=n(735),a=r&&1/i(new r([,-0]))[1]==1/0?function(e){return new r(e)}:o;e.exports=a},6554:function(e,t,n){var r=n(6369),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},794:function(e,t,n){var r=n(3219),o=n(2478),i=n(8286);e.exports=function(e){return i(o(e,void 0,r),e+"")}},5274:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},9623:function(e,t,n){var r=n(9005);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},6369:function(e,t,n){var r=n(9930),o=n(4502);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},7043:function(e,t,n){var r=n(5869),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,u=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,u),n=e[u];try{e[u]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[u]=n:delete e[u]),o}},4502:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},6953:function(e,t,n){var r=n(322),o=n(8497),i=n(6227),a=n(3501),u=n(6613),c=n(5107);e.exports=function(e,t,n){t=r(t,e);for(var l=-1,s=t.length,f=!1;++l<s;){var p=c(t[l]);if(!(f=null!=e&&n(e,p)))break;e=e[p]}return f||++l!=s?f:!!(s=null==e?0:e.length)&&u(s)&&a(p,s)&&(i(e)||o(e))}},1783:function(e,t,n){var r=n(8163);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},1012:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},9900:function(e,t,n){var r=n(8163),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},6691:function(e,t,n){var r=n(8163),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},2018:function(e,t,n){var r=n(8163);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},1449:function(e,t,n){var r=n(5869),o=n(8497),i=n(6227),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},3501:function(e){var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?0x1fffffffffffff:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},8447:function(e,t,n){var r=n(6227),o=n(9528),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!!("number"==n||"symbol"==n||"boolean"==n||null==e||o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},9005:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},8754:function(e,t,n){var r,o=n(3823);var i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},9896:function(e){e.exports=function(){this.__data__=[],this.size=0}},2473:function(e,t,n){var r=n(8746),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},4678:function(e,t,n){var r=n(8746);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},1240:function(e,t,n){var r=n(8746);e.exports=function(e){return r(this.__data__,e)>-1}},4296:function(e,t,n){var r=n(8746);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},6660:function(e,t,n){var r=n(7973),o=n(2768),i=n(1725);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},8472:function(e,t,n){var r=n(9623);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},5637:function(e,t,n){var r=n(9623);e.exports=function(e){return r(this,e).get(e)}},9389:function(e,t,n){var r=n(9623);e.exports=function(e){return r(this,e).has(e)}},9804:function(e,t,n){var r=n(9623);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},662:function(e,t,n){var r=n(6983);e.exports=function(e){var t=r(e,function(e){return 500===n.size&&n.clear(),e}),n=t.cache;return t}},8163:function(e,t,n){var r=n(6369)(Object,"create");e.exports=r},5283:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},2478:function(e,t,n){var r=n(7485),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,u=o(i.length-t,0),c=Array(u);++a<u;)c[a]=i[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=i[a];return l[t]=n(c),r(e,this,l)}}},5031:function(e,t,n){var r=n(5274),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},4867:function(e){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},9428:function(e){e.exports=function(e){return this.__data__.has(e)}},735:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}},8286:function(e,t,n){var r=n(1792),o=n(1358)(r);e.exports=o},1358:function(e){var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},3691:function(e){e.exports=function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return -1}},9765:function(e,t,n){var r=n(662),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)}),t});e.exports=a},5107:function(e,t,n){var r=n(9528),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},1304:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},6710:function(e){e.exports=function(e){return function(){return e}}},3947:function(e){e.exports=function(e,t){return e===t||e!=e&&t!=t}},3219:function(e,t,n){var r=n(6195);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},9459:function(e,t,n){var r=n(1547),o=n(6953);e.exports=function(e,t){return null!=e&&o(e,t,r)}},9974:function(e){e.exports=function(e){return e}},8497:function(e,t,n){var r=n(8719),o=n(5620),i=Object.prototype,a=i.hasOwnProperty,u=i.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!u.call(e,"callee")};e.exports=c},6227:function(e){var t=Array.isArray;e.exports=t},3098:function(e,t,n){var r=n(4365),o=n(2917);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},6613:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}},2917:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},5620:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},9528:function(e,t,n){var r=n(4365),o=n(5620);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},6983:function(e,t,n){var r=n(736);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},555:function(e){e.exports=function(){}},5773:function(e,t,n){var r=n(3897),o=n(794)(function(e,t){return null==e?{}:r(e,t)});e.exports=o},2954:function(e,t,n){var r=n(4200);e.exports=function(e){return null==e?"":r(e)}},8402:function(e,t,n){var r=n(1826);e.exports=function(e){return e&&e.length?r(e):[]}},482:function(e){"use strict";e.exports=r},8563:function(e){"use strict";e.exports=i},3505:function(e){"use strict";e.exports=a},8875:function(e){"use strict";e.exports=o},3772:function(t){"use strict";t.exports=e},7584:function(e){"use strict";e.exports=f},2749:function(e){"use strict";e.exports=s},2721:function(e){"use strict";e.exports=u},8202:function(e){"use strict";e.exports=c},467:function(e){"use strict";e.exports=l},8156:function(e){"use strict";e.exports=t},3238:function(e){"use strict";e.exports=n}},y={};function d(e){var t=y[e];if(void 0!==t)return t.exports;var n=y[e]={exports:{}};return p[e](n,n.exports,d),n.exports}d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var v={};return!function(){"use strict";d.r(v),d.d(v,{PluginACLClient:function(){return ez},default:function(){return e$},RolesManagerContext:function(){return p}});var e=d("3772"),t=d("8156"),n=d.n(t),r=d("8563"),o=d("3505"),i=d("8875"),a=d("2749"),u=d("2721"),c=d("8402"),l=d.n(c),s=d("3238");function f(){return(0,s.useTranslation)(["@nocobase/plugin-acl","client"],{nsMode:"fallback"})}var p=(0,t.createContext)({role:null});p.displayName="RolesManagerContext";var y=d("467"),m=d.n(y),b=d("8202");function h(){var e,t,n=(e=["\n .ant-table-cell {\n > .ant-space-horizontal {\n .ant-space-item-split:has(+ .ant-space-item:empty) {\n display: none;\n }\n }\n }\n "],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return h=function(){return n},n}var g=(0,b.createStyles)(function(e){return(0,e.css)(h())});function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function w(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){n(e);return}u.done?t(c):Promise.resolve(c).then(r,o)}function O(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){w(i,r,o,a,u,"next",e)}function u(e){w(i,r,o,a,u,"throw",e)}a(void 0)})}}function S(e,t){if(e){if("string"==typeof e)return x(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return x(e,t)}}function j(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=!0,r=!1,o=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done);n=!0){var u=i.value;t.push(u.aclSnippet),u.children&&u.children.length&&E(u.children,t)}}catch(e){r=!0,o=e}finally{try{!n&&null!=a.return&&a.return()}finally{if(r)throw o}}return t},A=function(r){var o,i,a,c=r.active,l=(0,e.useApp)(),f=g().styles,d=(0,t.useContext)(p).role,v=(0,e.useAPIClient)(),b=(0,e.useCompile)(),h=l.pluginSettingsManager.getList(!1),w=l.pluginSettingsManager.getAclSnippets();var A=(o=(0,t.useState)((null==d?void 0:d.snippets)||[]),i=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(o,2)||S(o,i)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),P=A[0],_=A[1],C=(0,t.useMemo)(function(){return(0,y.flatMap)(h,function(e){var t;if(!e.children)return e;return[e].concat(function(e){if(Array.isArray(e))return x(e)}(t=e.children)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||S(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})},[h]),k=(0,t.useMemo)(function(){return P.includes("pm.*")&&P.every(function(e){return!e.startsWith("!pm.")})},[P]),I=(0,s.useTranslation)().t,T=(0,e.useRequest)({resource:"roles.snippets",resourceOf:null==d?void 0:d.name,action:"list",params:{paginate:!1}},{ready:!!d&&c,refreshDeps:[null==d?void 0:d.name],manual:!0,onSuccess:function(e){_((null==e?void 0:e.data.filter(function(e){return C.find(function(t){return e.includes("!".concat(t.aclSnippet))||!e.startsWith("!pm.")})}))||[])}}),M=T.loading,R=T.refresh;if(!!d){var D=v.resource("roles.snippets",null==d?void 0:d.name);var F=(a=O(function(e,t){var n;return j(this,function(r){switch(r.label){case 0:if(n=E(null==t?void 0:t.children,[]).concat(t.aclSnippet),e)return[3,2];return[4,D.remove({values:n.map(function(e){return"!"+e})})];case 1:return r.sent(),R(),[3,4];case 2:return[4,D.add({values:n.map(function(e){return"!"+e})})];case 3:r.sent(),R(),r.label=4;case 4:return u.message.success(I("Saved successfully")),[2]}})}),function(e,t){return a.apply(this,arguments)});return n().createElement(u.Table,{className:f,loading:M,rowKey:"key",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:I("Plugin name"),render:function(e){return b(e)}},{dataIndex:"accessible",title:n().createElement(n().Fragment,null,n().createElement(u.Checkbox,{checked:k,onChange:O(function(){var e;return j(this,function(t){switch(t.label){case 0:if(e=w.map(function(e){return"!"+e}),k)return[3,2];return[4,D.remove({values:e})];case 1:return t.sent(),[3,4];case 2:return[4,D.add({values:e})];case 3:t.sent(),t.label=4;case 4:return R(),u.message.success(I("Saved successfully")),[2]}})})}),I("Accessible")),render:function(e,t){var r=!P.includes("!"+t.aclSnippet);return n().createElement(u.Checkbox,{checked:r,onChange:function(){return F(r,t)}})}}],dataSource:h.filter(function(e){return!1!==e.isTopLevel}).map(function(e){return!1!==e.showTabs?e:m().omit(e,"children")})})}},P=(0,t.createContext)([]);P.displayName="AvailableActionsContext";var _=function(t){var r=(0,e.useRequest)({resource:"availableActions",action:"list"}),o=r.data;return r.loading?n().createElement(u.Spin,null):n().createElement(P.Provider,{value:null==o?void 0:o.data},t.children)};function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var k=function(e){if(!e)return{};var t,n={};return null==e||null===(t=e.forEach)||void 0===t||t.call(e,function(e){var t,r,o=(t=e.split(":"),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,t)}}(t,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=o[0],a=o[1];n[i]=a||"all"}),n},I=function(e){var t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=e[n];"all"===r?t.push(n):t.push("".concat(n,":").concat(r))}return t},T=(0,o.connect)(function(r){var i=r.onChange,a=(0,t.useContext)(P),c=(0,e.useCompile)(),l=(0,s.useTranslation)().t,f=k((0,o.useField)().value);return n().createElement("div",null,n().createElement(u.Table,{rowKey:"name",size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:l("Action display name"),render:function(e){return c(e)}},{dataIndex:"onNewRecord",title:l("Action type"),render:function(e){return e?n().createElement(u.Tag,{color:"green"},l("Action on new records")):n().createElement(u.Tag,{color:"geekblue"},l("Action on existing records"))}},{dataIndex:"enabled",title:l("Allow"),render:function(e,t){return n().createElement(u.Checkbox,{checked:e,"aria-label":"".concat(t.name,"_checkbox"),onChange:function(n){e?delete f[t.name]:f[t.name]="all",i(I(f))}})}},{dataIndex:"scope",title:l("Data scope"),render:function(e,t){return!t.onNewRecord&&n().createElement(u.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:e,options:[{label:l("All records"),value:"all"},{label:l("Own records"),value:"own"}],onChange:function(e){f[t.name]=e,i(I(f))}})}}],dataSource:null==a?void 0:a.map(function(e){var t,n,r="all",o=!1;return f[e.name]&&(o=!0,r=f[e.name]),t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({},e),n=(n={enabled:o,scope:r},n),Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t})}))});function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function R(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){n(e);return}u.done?t(c):Promise.resolve(c).then(r,o)}function D(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){R(i,r,o,a,u,"next",e)}function u(e){R(i,r,o,a,u,"throw",e)}a(void 0)})}}function F(e){return function(e){if(Array.isArray(e))return M(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M(e,t)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var z=(0,o.connect)(function(e){var t=(0,s.useTranslation)().t;return n().createElement(u.Checkbox.Group,{style:{width:"100%",display:"block"},value:e.value,onChange:function(t){var n=["ui.*","pm","pm.*","app"],r=n.map(function(e){return"!".concat(e)}),o=l()(F(e.value||[]).concat(F(t))).filter(function(e){return e&&!r.includes(e)}).map(function(e){return!n.includes(e)||(null==t?void 0:t.includes(e))?e:"!".concat(e)}),i=!0,a=!1,u=void 0;try{for(var c,s=n[Symbol.iterator]();!(i=(c=s.next()).done);i=!0){var f=c.value;!o.includes(f)&&!o.includes("!".concat(f))&&o.push("!".concat(f))}}catch(e){a=!0,u=e}finally{try{!i&&null!=s.return&&s.return()}finally{if(a)throw u}}e.onChange(o)}},n().createElement("div",{style:{marginTop:16}},n().createElement(u.Checkbox,{value:"ui.*"},t("Allows to configure interface"))),n().createElement("div",{style:{marginTop:8}},n().createElement(u.Checkbox,{value:"pm"},t("Allows to install, activate, disable plugins"))),n().createElement("div",{style:{marginTop:8}},n().createElement(u.Checkbox,{value:"pm.*"},t("Allows to configure plugins"))),n().createElement("div",{style:{marginTop:8}},n().createElement(u.Checkbox,{value:"app"},t("Allows to clear cache, reboot application"))))}),$=function(){var o,c,l=(0,t.useContext)(p),s=l.role,y=l.setRole,d=f().t,v=(0,e.useAPIClient)(),m=null==s?void 0:null===(c=s.snippets)||void 0===c?void 0:c.includes("pm.*");var b=(0,a.useMemoizedFn)((o=D(function(e){return q(this,function(t){switch(t.label){case 0:return[4,v.resource("roles").update({filterByTk:s.name,values:{snippets:e.values.snippets}})];case 1:return t.sent(),y(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({},s,e.values)),u.message.success(d("Saved successfully")),[2]}})}),function(e){return o.apply(this,arguments)})),h=(0,t.useMemo)(function(){return(0,r.createForm)({values:s,effects:function(){var e;(0,r.onFormValuesChange)((e=D(function(e){return q(this,function(t){switch(t.label){case 0:return[4,b(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[s,b]);return n().createElement(e.SchemaComponent,{components:{SnippetCheckboxGroup:z,StrategyActions:T,PluginPermissions:A},scope:{pm:m},schema:{type:"void",name:(0,i.uid)(),"x-component":"div",properties:{general:{"x-component":"FormV2","x-component-props":{form:h},properties:{snippets:{title:d("Configure permissions"),type:"boolean","x-decorator":"FormItem","x-component":"SnippetCheckboxGroup"}}},plugins:{"x-component":"FormV2",properties:{pluginSettings:{title:d("Plugin settings"),"x-decorator":"FormItem","x-component":"PluginPermissions","x-visible":"{{pm}}"}}}}}})},U=(0,t.createContext)(null);U.displayName="MenuItemsContext";var N=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=e[n],o={title:r.title,uid:r["x-uid"]};r.properties&&(o.children=N(r.properties)),t.push(o)}return t},L=function(t){var r,o,i=(0,e.useAdminSchemaUid)(),a=(0,e.useRequest)({url:"uiSchemas:getProperties/".concat(i)});if(a.loading)return n().createElement(u.Spin,null);var c=N(null===(o=a.data)||void 0===o?void 0:null===(r=o.data)||void 0===r?void 0:r.properties);return n().createElement(U.Provider,{value:{service:a,items:c}},t.children)};function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function K(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){n(e);return}u.done?t(c):Promise.resolve(c).then(r,o)}function V(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){K(i,r,o,a,u,"next",e)}function u(e){K(i,r,o,a,u,"throw",e)}a(void 0)})}}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}function W(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function H(e){return function(e){if(Array.isArray(e))return G(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Y(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Y(e,t){if(e){if("string"==typeof e)return G(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return G(e,t)}}function J(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var Q=function(e){if(!Array.isArray(e))return[];var t=[],n=!0,r=!1,o=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done);n=!0){var u=i.value;t.push(u.uid),t.push.apply(t,H(Q(u.children)))}}catch(e){r=!0,o=e}finally{try{!n&&null!=a.return&&a.return()}finally{if(r)throw o}}return t},X=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(!e)return[];var r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done);r=!0){var c=a.value;if(n.push(c.uid),t(c))return n;if(c.children){var l=X(c.children,t,n);if(l.length)return l}n.pop()}}catch(e){o=!0,i=e}finally{try{!r&&null!=u.return&&u.return()}finally{if(o)throw i}}return[]},Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=!0,r=!1,o=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done);n=!0){var u=i.value;t.push(u.uid),u.children&&u.children.length&&Z(u.children,t)}}catch(e){r=!0,o=e}finally{try{!n&&null!=a.return&&a.return()}finally{if(r)throw o}}return t},ee=function(o){var c,l,f,d,v,m=o.active,b=g().styles,h=(0,t.useContext)(p),x=h.role,w=h.setRole,O=(0,e.useAPIClient)(),S=(0,t.useContext)(U).items,j=(0,s.useTranslation)().t,E=Q(S);var A=(c=(0,t.useState)([]),l=2,function(e){if(Array.isArray(e))return e}(c)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(c,2)||Y(c,l)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),P=A[0],_=A[1],C=(0,e.useRequest)({resource:"roles.menuUiSchemas",resourceOf:x.name,action:"list",params:{paginate:!1}},{ready:!!x&&m,refreshDeps:[null==x?void 0:x.name],onSuccess:function(e){var t;_((null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.map(function(e){return e["x-uid"]}))||[])}}),k=C.loading,I=C.refresh,T=O.resource("roles.menuUiSchemas",x.name),M=E.length===P.length;var R=(f=V(function(e,t){var n,r,o,i;return J(this,function(a){switch(a.label){case 0:if(n=X(S,function(e){return e.uid===t.uid}),r=Z(null==t?void 0:t.children,[]),!e)return[3,2];return o=r.concat(t.uid),_(H(P.filter(function(e){return!o.includes(e)}))),[4,T.remove({values:o})];case 1:return a.sent(),[3,4];case 2:return i=r.concat(n),_(function(e){return(0,y.uniq)(H(e).concat(H(i)))}),[4,T.add({values:i})];case 3:a.sent(),a.label=4;case 4:return u.message.success(j("Saved successfully")),[2]}})}),function(e,t){return f.apply(this,arguments)}),D=function(e){return e.map(function(e){var t=j(e.title);return e.children?W(B({},e),{title:t,children:D(e.children)}):W(B({},e),{title:t})})};var F=(0,a.useMemoizedFn)((d=V(function(e){return J(this,function(t){switch(t.label){case 0:return[4,O.resource("roles").update({filterByTk:x.name,values:e.values})];case 1:return t.sent(),w(B({},x,e.values)),u.message.success(j("Saved successfully")),[2]}})}),function(e){return d.apply(this,arguments)})),q=(0,t.useMemo)(function(){return(0,r.createForm)({values:x,effects:function(){var e;(0,r.onFormValuesChange)((e=V(function(e){return J(this,function(t){switch(t.label){case 0:return[4,F(e)];case 1:return t.sent(),[2]}})}),function(t){return e.apply(this,arguments)}))}})},[x,F]);return n().createElement(n().Fragment,null,n().createElement(e.SchemaComponent,{schema:{type:"void",name:(0,i.uid)(),"x-component":"FormV2","x-component-props":{form:q},properties:{allowNewMenu:{title:j("Menu permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":j("New menu items are allowed to be accessed by default.")}}}}),n().createElement(u.Table,{className:b,loading:k,rowKey:"uid",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:j("Menu item title")},{dataIndex:"accessible",title:n().createElement(n().Fragment,null,n().createElement(u.Checkbox,{checked:M,onChange:(v=V(function(e){return J(this,function(e){switch(e.label){case 0:if(!M)return[3,2];return[4,T.set({values:[]})];case 1:return e.sent(),[3,4];case 2:return[4,T.set({values:E})];case 3:e.sent(),e.label=4;case 4:return I(),u.message.success(j("Saved successfully")),[2]}})}),function(e){return v.apply(this,arguments)})})," ",j("Accessible")),render:function(e,t){var r=P.includes(t.uid);return n().createElement(u.Checkbox,{checked:r,onChange:function(){return R(r,t)}})}}],dataSource:D(S)}))};function et(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var en=function(){var e,t,r;function o(){var e,t,r;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),e=this,t="permissionsTabs",r=[function(e){var t=e.t,r=e.TabLayout;return{key:"general",label:t("System"),children:n().createElement(r,null,n().createElement($,null))}},function(e){var t=e.activeKey,r=e.t,o=e.TabLayout;return{key:"menu",label:r("Desktop menu"),children:n().createElement(o,null,n().createElement(L,null,n().createElement(ee,{active:"menu"===t})))}}],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}return e=o,t=[{key:"addPermissionsTab",value:function(e){this.permissionsTabs.push(e)}},{key:"getPermissionsTabs",value:function(e){return this.permissionsTabs.map(function(t){return"function"==typeof t?t(e):t})}}],et(e.prototype,t),o}(),er=d("482"),eo=d("5773"),ei=d.n(eo);function ea(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var eu={type:"object",properties:ea({},(0,i.uid)(),{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(n){var r,o,i=(0,e.useRecord)();var a=(0,e.useRequest)(function(){return Promise.resolve({data:ei()(i,["title","name","default"])})},(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){ea(e,t,n[t])})}return e}({},n),o=(o={manual:!0},o),Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r)),u=(0,e.useActionContext)();return(0,t.useEffect)(function(){u.visible&&a.run()},[u.visible]),a}},title:'{{t("Edit role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},default:{title:"","x-component":"CollectionField","x-decorator":"FormItem","x-content":'{{t("Default role")}}',"x-reactions":function(e){e.initialValue?e.disabled=!0:e.disabled=!1}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}})};function ec(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var el=function(e){var n,r,o=e.loadMore;var i=(n=(0,t.useState)(null),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(n,2)||function(e,t){if(e){if("string"==typeof e)return ec(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ec(e,t)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=i[0],u=i[1],c=(0,t.useRef)(null),l=(0,t.useCallback)(function(e){if(!!e)c.current&&c.current.disconnect(),c.current=new IntersectionObserver(function(t){t.forEach(function(t){if(t.target===e.current)t.isIntersecting&&(c.current&&c.current.unobserve(e.current),o())})}),e.current&&c.current&&c.current.observe(e.current)},[o]);return(0,t.useEffect)(function(){return l(a),function(){c.current&&c.current.disconnect()}},[a,l]),{lastItem:a,setLastItem:u}};function es(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ef(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){n(e);return}u.done?t(c):Promise.resolve(c).then(r,o)}function ep(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){ef(i,r,o,a,u,"next",e)}function u(e){ef(i,r,o,a,u,"throw",e)}a(void 0)})}}function ey(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(e,t)||ev(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ed(e){return function(e){if(Array.isArray(e))return es(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ev(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ev(e,t){if(e){if("string"==typeof e)return es(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return es(e,t)}}function em(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var eb=function(){var r=f().t,o=(0,e.useResourceActionContext)(),i=o.data,a=o.mutate,c=ey((0,t.useState)(!1),2),l=c[0],s=c[1],y=ey((0,t.useState)(null),2),d=y[0],v=y[1],m=(0,t.useContext)(p),b=m.role,h=m.setRole,g=ey((0,t.useState)([]),2),x=g[0],w=g[1],O=ey((0,t.useState)(!1),2),S=O[0],j=O[1],E=(0,e.useAPIClient)(),A=el({loadMore:(0,t.useCallback)(ep(function(){var e,t;return em(this,function(n){switch(n.label){case 0:if(!(e=null==i?void 0:i.meta)||e.page>=e.totalPage)return[2];return j(!0),[4,E.resource("roles").list({page:e.page+1,pageSize:e.pageSize,filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]})];case 1:return a((null==(t=n.sent())?void 0:t.data)||{}),j(!1),[2]}})}),[i])}),P=A.lastItem,_=A.setLastItem;(0,t.useEffect)(function(){if(!!x[0])h(x[0])},[x,h]),(0,t.useEffect)(function(){var e,t;if(!!(null==i?void 0:null===(e=i.data)||void 0===e?void 0:e.length))_(n().createRef()),(null===(t=i.meta)||void 0===t?void 0:t.page)>1?w(function(e){return e.concat(i.data)}):w(i.data)},[i,_]);var C=(0,t.useMemo)(function(){return x.map(function(e,t){return{key:e.name,label:t===x.length-1?n().createElement("div",{ref:P},n().createElement(eb.Item,{item:e,onEdit:function(){s(!0),v(e)}})):n().createElement(eb.Item,{item:e,onEdit:function(){s(!0),v(e)}})}})},[x,P]);return n().createElement(n().Fragment,null,x.length?n().createElement(u.Menu,{style:{border:"none",maxHeight:"65vh",overflowY:"auto"},items:ed(C).concat(ed(S?[{key:"loading",label:n().createElement(u.Spin,null)}]:[])),selectedKeys:[null==b?void 0:b.name],onSelect:function(e){var t=e.key;h(x.find(function(e){return e.name===t}))}}):n().createElement(u.Empty,{image:u.Empty.PRESENTED_IMAGE_SIMPLE}),n().createElement(e.ActionContextProvider,{value:{visible:l,setVisible:s}},n().createElement(e.RecordProvider,{record:d,collectionName:"departments"},n().createElement(e.SchemaComponent,{scope:{t:r},schema:eu}))))};function eh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}eb.Item=function(t){var r=t.item,i=t.onEdit,a=f().t,c=(0,e.useResourceActionContext)().refreshAsync,l=u.App.useApp(),s=l.modal,p=l.message,y=(0,e.useAPIClient)(),d=function(){s.confirm({title:a("Delete"),content:a("Are you sure you want to delete it?"),onOk:ep(function(){return em(this,function(e){switch(e.label){case 0:return[4,y.resource("roles").destroy({filterByTk:r.name})];case 1:return e.sent(),p.success(a("Deleted successfully")),[4,c()];case 2:return e.sent(),[2]}})})})},v=o.Schema.compile(r.title,{t:a});return n().createElement(u.Row,null,n().createElement(u.Col,{flex:3,style:{display:"inline-flex",alignItems:"center"}},n().createElement("span",{style:{whiteSpace:"nowrap",width:"120px",overflow:"hidden",textOverflow:"ellipsis"}},n().createElement(er.TagOutlined,null),n().createElement("span",{style:{marginLeft:"10px"},title:v},v))),n().createElement(u.Col,null,r.default?n().createElement(u.Tag,{color:"success",bordered:!1},a("Default")):null,n().createElement(u.Dropdown,{menu:{items:[{label:a("Edit"),key:"edit"},{label:a("Delete"),key:"delete"}],onClick:function(e){var t=e.key;switch(e.domEvent.stopPropagation(),t){case"edit":i();break;case"delete":d()}}}},n().createElement(er.MoreOutlined,null))))};var eg=function(e){return n().createElement("div",{style:{maxHeight:"60vh",overflowY:"auto"}},e.children)},ex=function(r){var o,i,a=r.active,c=f().t;var l=(o=n().useState("general"),i=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(o,2)||function(e,t){if(e){if("string"==typeof e)return eh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eh(e,t)}}(o,i)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=l[0],y=l[1],d=(0,t.useContext)(p),v=d.role,m=d.setRole,b=(0,e.usePlugin)(e$),h=(0,e.useACLRoleContext)(),g=(0,t.useMemo)(function(){return b.settingsUI.getPermissionsTabs({t:c,activeKey:s,TabLayout:eg,activeRole:v,currentUserRole:h}).filter(Boolean)},[s,b.settingsUI,v,c,h]),x=(0,e.useAPIClient)(),w=(0,e.useRequest)(function(){return x.resource("roles").get({filterByTk:null==v?void 0:v.name}).then(function(e){var t,n,r=null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.data;return null===(n=r.snippets)||void 0===n||n.forEach(function(e){r[e]=!0}),r})},{ready:a&&!!v,refreshDeps:[null==v?void 0:v.name]}).data;return(0,t.useEffect)(function(){y("general")},[null==v?void 0:v.name]),(0,t.useEffect)(function(){m(w)},[w,m]),n().createElement(_,null,n().createElement(u.Tabs,{type:"card",activeKey:s,onChange:function(e){return y(e)},items:g}))},ew=function(){var t=f().t;return n().createElement(e.SchemaComponent,{scope:{t:t},schema:{type:"void",properties:{newRole:{type:"void",title:t("New role"),"x-component":"Action","x-component-props":{type:"text",icon:"PlusOutlined",style:{width:"100%",textAlign:"left"}},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(t){var n,r,o=(0,e.useActionContext)();return(0,e.useRequest)(function(){return Promise.resolve({data:{name:"r_".concat((0,i.uid)()),snippets:["!ui.*","!pm","!pm.*"]}})},(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({},t),r=(r={refreshDeps:[o.visible]},r),Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))}},title:t("New role"),properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},default:{"x-component":"CollectionField","x-decorator":"FormItem",title:"","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}}})};function eO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eS(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(u)throw r}}return i}}(e,t)||ej(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ej(e,t){if(e){if("string"==typeof e)return eO(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eO(e,t)}}var eE={name:"roles",filterTargetKey:"name",targetKey:"name",fields:[{type:"string",name:"title",interface:"input",uiSchema:{title:'{{t("Role display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Role UID")}}',type:"string","x-component":"Input"}},{type:"boolean",name:"default",interface:"boolean",uiSchema:{title:'{{t("Default role")}}',type:"boolean","x-component":"Checkbox"}}]},eA=function(){var r,i,a,c=f().t,l=(0,e.usePlugin)(e$),s=eS(n().useState("permissions"),2),y=s[0],d=s[1],v=Array.from(l.rolesManager.list()).map(function(e){var t=eS(e,2),r=t[0],i=t[1];return{key:r,label:o.Schema.compile(i.title,{t:c}),children:i.Component?n().createElement(i.Component,{active:y===r}):null}}),m=eS((0,t.useState)(null),2),b=m[0],h=m[1],g=(0,e.useSchemaComponentContext)();return n().createElement(e.SchemaComponentContext.Provider,{value:(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({},g),i=(i={designable:!1},i),Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(i)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}),r)},n().createElement(p.Provider,{value:{role:b,setRole:h}},n().createElement(u.Card,null,n().createElement(u.Row,{gutter:24,style:{flexWrap:"nowrap"}},n().createElement(u.Col,{flex:"280px",style:{borderRight:"1px solid #eee",minWidth:"250px"}},n().createElement(e.ResourceActionProvider,{collection:eE,request:{resource:"roles",action:"list",params:{filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]}}},n().createElement(e.CollectionProvider_deprecated,{collection:eE},n().createElement(u.Row,null,n().createElement(ew,null)),n().createElement(u.Divider,{style:{margin:"12px 0"}}),n().createElement(eb,null)))),n().createElement(u.Col,{flex:"auto",style:{overflow:"hidden"}},n().createElement(u.Tabs,{activeKey:y,onChange:function(e){return d(e)},items:[{key:"permissions",label:c("Permissions"),children:n().createElement(ex,{active:"permissions"===y})}].concat(function(e){if(Array.isArray(e))return eO(e)}(a=v)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||ej(a)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}))))))},eP=d("7584");function e_(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var eC=function(){var e,t,n;function r(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,r),e=this,t="rolesManager",n=new eP.Registry,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=r,t=[{key:"add",value:function(e,t){this.rolesManager.register(e,t)}},{key:"list",value:function(){return this.rolesManager.getEntities()}}],e_(e.prototype,t),r}();function ek(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){n(e);return}u.done?t(c):Promise.resolve(c).then(r,o)}function eI(e,t,n){return(eI=eq()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&eD(o,n.prototype),o}).apply(null,arguments)}function eT(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function eM(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eR(e){return(eR=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eD(e,t){return(eD=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function eF(e){var t="function"==typeof Map?new Map:void 0;return(eF=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return eI(e,arguments,eR(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),eD(r,e)})(e)}function eq(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(eq=function(){return!!e})()}var ez=function(e){var t,n,r;function o(){var e,t,n,r;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),t=this,n=o,r=arguments,n=eR(n),eM(e=function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(t,eq()?Reflect.construct(n,r||[],eR(t).constructor):n.apply(t,r)),"rolesManager",new eC),eM(e,"settingsUI",new en),e}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&eD(e,t)}(o,e),t=o,n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}(this,function(e){return t.pluginSettingsManager.add("users-permissions.roles",{title:t.t("Roles & Permissions"),icon:"LockOutlined",Component:eA,aclSnippet:"pm.acl.roles",sort:3}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){ek(i,r,o,a,u,"next",e)}function u(e){ek(i,r,o,a,u,"throw",e)}a(void 0)})})()}}],eT(t.prototype,n),o}(eF(e.Plugin)),e$=ez}(),v}()});
10
+ (function(v,l){typeof exports=="object"&&typeof module!="undefined"?l(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("@formily/core"),require("@formily/react"),require("@formily/shared"),require("ahooks"),require("antd"),require("react"),require("react-i18next"),require("lodash"),require("antd-style"),require("@ant-design/icons"),require("@nocobase/utils/client")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","@formily/core","@formily/react","@formily/shared","ahooks","antd","react","react-i18next","lodash","antd-style","@ant-design/icons","@nocobase/utils/client"],l):(v=typeof globalThis!="undefined"?globalThis:v||self,l(v["@nocobase/plugin-acl"]={},v["@nocobase/client"],v.jsxRuntime,v["@formily/core"],v["@formily/react"],v["@formily/shared"],v.ahooks,v.antd,v.react,v["react-i18next"],v.lodash,v["antd-style"],v["@ant-design/icons"],v["@nocobase/utils"]))})(this,function(v,l,a,N,O,D,z,p,d,A,te,Qe,fe,Re){"use strict";var Ti=Object.defineProperty,Oi=Object.defineProperties;var Mi=Object.getOwnPropertyDescriptors;var Ze=Object.getOwnPropertySymbols;var Fi=Object.prototype.hasOwnProperty,Ei=Object.prototype.propertyIsEnumerable;var he=(v,l,a)=>l in v?Ti(v,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):v[l]=a,S=(v,l)=>{for(var a in l||(l={}))Fi.call(l,a)&&he(v,a,l[a]);if(Ze)for(var a of Ze(l))Ei.call(l,a)&&he(v,a,l[a]);return v},E=(v,l)=>Oi(v,Mi(l));var L=(v,l,a)=>(he(v,typeof l!="symbol"?l+"":l,a),a);var x=(v,l,a)=>new Promise((N,O)=>{var D=d=>{try{p(a.next(d))}catch(A){O(A)}},z=d=>{try{p(a.throw(d))}catch(A){O(A)}},p=d=>d.done?N(d.value):Promise.resolve(d.value).then(D,z);p((a=a.apply(v,l)).next())});var K=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function ve(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var et=typeof K=="object"&&K&&K.Object===Object&&K,tt=et,nt=tt,rt=typeof self=="object"&&self&&self.Object===Object&&self,st=nt||rt||Function("return this")(),V=st,at=V,ot=at.Symbol,B=ot,me=B,ge=Object.prototype,it=ge.hasOwnProperty,ct=ge.toString,j=me?me.toStringTag:void 0;function lt(e){var t=it.call(e,j),n=e[j];try{e[j]=void 0;var r=!0}catch(i){}var s=ct.call(e);return r&&(t?e[j]=n:delete e[j]),s}var ut=lt,pt=Object.prototype,dt=pt.toString;function ht(e){return dt.call(e)}var ft=ht,ye=B,vt=ut,mt=ft,gt="[object Null]",yt="[object Undefined]",be=ye?ye.toStringTag:void 0;function bt(e){return e==null?e===void 0?yt:gt:be&&be in Object(e)?vt(e):mt(e)}var ne=bt;function _t(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var re=_t,Ct=ne,$t=re,xt="[object AsyncFunction]",St="[object Function]",wt="[object GeneratorFunction]",At="[object Proxy]";function Pt(e){if(!$t(e))return!1;var t=Ct(e);return t==St||t==wt||t==xt||t==At}var It=Pt,Tt=V,Ot=Tt["__core-js_shared__"],Mt=Ot,se=Mt,_e=function(){var e=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ft(e){return!!_e&&_e in e}var Et=Ft,Nt=Function.prototype,Dt=Nt.toString;function kt(e){if(e!=null){try{return Dt.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var qt=kt,Ht=It,Ut=Et,jt=re,Gt=qt,Lt=/[\\^$.*+?()[\]{}|]/g,zt=/^\[object .+?Constructor\]$/,Kt=Function.prototype,Vt=Object.prototype,Bt=Kt.toString,Wt=Vt.hasOwnProperty,Yt=RegExp("^"+Bt.call(Wt).replace(Lt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Xt(e){if(!jt(e)||Ut(e))return!1;var t=Ht(e)?Yt:zt;return t.test(Gt(e))}var Jt=Xt;function Zt(e,t){return e==null?void 0:e[t]}var Qt=Zt,Rt=Jt,en=Qt;function tn(e,t){var n=en(e,t);return Rt(n)?n:void 0}var W=tn,nn=W,rn=nn(Object,"create"),Y=rn,Ce=Y;function sn(){this.__data__=Ce?Ce(null):{},this.size=0}var an=sn;function on(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var cn=on,ln=Y,un="__lodash_hash_undefined__",pn=Object.prototype,dn=pn.hasOwnProperty;function hn(e){var t=this.__data__;if(ln){var n=t[e];return n===un?void 0:n}return dn.call(t,e)?t[e]:void 0}var fn=hn,vn=Y,mn=Object.prototype,gn=mn.hasOwnProperty;function yn(e){var t=this.__data__;return vn?t[e]!==void 0:gn.call(t,e)}var bn=yn,_n=Y,Cn="__lodash_hash_undefined__";function $n(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=_n&&t===void 0?Cn:t,this}var xn=$n,Sn=an,wn=cn,An=fn,Pn=bn,In=xn;function k(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}k.prototype.clear=Sn,k.prototype.delete=wn,k.prototype.get=An,k.prototype.has=Pn,k.prototype.set=In;var Tn=k;function On(){this.__data__=[],this.size=0}var Mn=On;function Fn(e,t){return e===t||e!==e&&t!==t}var $e=Fn,En=$e;function Nn(e,t){for(var n=e.length;n--;)if(En(e[n][0],t))return n;return-1}var X=Nn,Dn=X,kn=Array.prototype,qn=kn.splice;function Hn(e){var t=this.__data__,n=Dn(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():qn.call(t,n,1),--this.size,!0}var Un=Hn,jn=X;function Gn(e){var t=this.__data__,n=jn(t,e);return n<0?void 0:t[n][1]}var Ln=Gn,zn=X;function Kn(e){return zn(this.__data__,e)>-1}var Vn=Kn,Bn=X;function Wn(e,t){var n=this.__data__,r=Bn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Yn=Wn,Xn=Mn,Jn=Un,Zn=Ln,Qn=Vn,Rn=Yn;function q(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}q.prototype.clear=Xn,q.prototype.delete=Jn,q.prototype.get=Zn,q.prototype.has=Qn,q.prototype.set=Rn;var er=q,tr=W,nr=V,rr=tr(nr,"Map"),sr=rr,xe=Tn,ar=er,or=sr;function ir(){this.size=0,this.__data__={hash:new xe,map:new(or||ar),string:new xe}}var cr=ir;function lr(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ur=lr,pr=ur;function dr(e,t){var n=e.__data__;return pr(t)?n[typeof t=="string"?"string":"hash"]:n.map}var J=dr,hr=J;function fr(e){var t=hr(this,e).delete(e);return this.size-=t?1:0,t}var vr=fr,mr=J;function gr(e){return mr(this,e).get(e)}var yr=gr,br=J;function _r(e){return br(this,e).has(e)}var Cr=_r,$r=J;function xr(e,t){var n=$r(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var Sr=xr,wr=cr,Ar=vr,Pr=yr,Ir=Cr,Tr=Sr;function H(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}H.prototype.clear=wr,H.prototype.delete=Ar,H.prototype.get=Pr,H.prototype.has=Ir,H.prototype.set=Tr;var Se=H,Or="__lodash_hash_undefined__";function Mr(e){return this.__data__.set(e,Or),this}var Fr=Mr;function Er(e){return this.__data__.has(e)}var Nr=Er,Dr=Se,kr=Fr,qr=Nr;function Z(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new Dr;++t<n;)this.add(e[t])}Z.prototype.add=Z.prototype.push=kr,Z.prototype.has=qr;var Hr=Z;function Ur(e,t,n,r){for(var s=e.length,i=n+(r?1:-1);r?i--:++i<s;)if(t(e[i],i,e))return i;return-1}var jr=Ur;function Gr(e){return e!==e}var Lr=Gr;function zr(e,t,n){for(var r=n-1,s=e.length;++r<s;)if(e[r]===t)return r;return-1}var Kr=zr,Vr=jr,Br=Lr,Wr=Kr;function Yr(e,t,n){return t===t?Wr(e,t,n):Vr(e,Br,n)}var Xr=Yr,Jr=Xr;function Zr(e,t){var n=e==null?0:e.length;return!!n&&Jr(e,t,0)>-1}var Qr=Zr;function Rr(e,t,n){for(var r=-1,s=e==null?0:e.length;++r<s;)if(n(t,e[r]))return!0;return!1}var es=Rr;function ts(e,t){return e.has(t)}var ns=ts,rs=W,ss=V,as=rs(ss,"Set"),os=as;function is(){}var cs=is;function ls(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var we=ls,ae=os,us=cs,ps=we,ds=1/0,hs=ae&&1/ps(new ae([,-0]))[1]==ds?function(e){return new ae(e)}:us,fs=hs,vs=Hr,ms=Qr,gs=es,ys=ns,bs=fs,_s=we,Cs=200;function $s(e,t,n){var r=-1,s=ms,i=e.length,o=!0,c=[],u=c;if(n)o=!1,s=gs;else if(i>=Cs){var f=t?null:bs(e);if(f)return _s(f);o=!1,s=ys,u=new vs}else u=t?[]:c;e:for(;++r<i;){var y=e[r],_=t?t(y):y;if(y=n||y!==0?y:0,o&&_===_){for(var C=u.length;C--;)if(u[C]===_)continue e;t&&u.push(_),c.push(y)}else s(u,_,n)||(u!==c&&u.push(_),c.push(y))}return c}var xs=$s,Ss=xs;function ws(e){return e&&e.length?Ss(e):[]}var As=ws;const Ps=ve(As);function U(){return A.useTranslation(["@nocobase/plugin-acl","client"],{nsMode:"fallback"})}const M=d.createContext({role:null});M.displayName="RolesManagerContext";const Ae=Qe.createStyles(({css:e})=>e`
11
+ .ant-table-cell {
12
+ > .ant-space-horizontal {
13
+ .ant-space-item-split:has(+ .ant-space-item:empty) {
14
+ display: none;
15
+ }
16
+ }
17
+ }
18
+ `),Pe=(e=[],t=[])=>{for(const n of e)t.push(n.aclSnippet),n.children&&n.children.length&&Pe(n.children,t);return t},Is=({active:e})=>{const t=l.useApp(),{styles:n}=Ae(),{role:r}=d.useContext(M),s=l.useAPIClient(),i=l.useCompile(),o=t.pluginSettingsManager.getList(!1),c=t.pluginSettingsManager.getAclSnippets(),[u,f]=d.useState((r==null?void 0:r.snippets)||[]),y=d.useMemo(()=>te.flatMap(o,g=>g.children?[g,...g.children]:g),[o]),_=d.useMemo(()=>u.includes("pm.*")&&u.every(g=>!g.startsWith("!pm.")),[u]),{t:C}=A.useTranslation(),{loading:P,refresh:w}=l.useRequest({resource:"roles.snippets",resourceOf:r==null?void 0:r.name,action:"list",params:{paginate:!1}},{ready:!!r&&e,refreshDeps:[r==null?void 0:r.name],manual:!0,onSuccess(g){f((g==null?void 0:g.data.filter(m=>y.find(h=>m.includes(`!${h.aclSnippet}`)||!m.startsWith("!pm."))))||[])}});if(!r)return;const $=s.resource("roles.snippets",r==null?void 0:r.name),F=(g,m)=>x(this,null,function*(){const b=Pe(m==null?void 0:m.children,[]).concat(m.aclSnippet);g?(yield $.add({values:b.map(I=>"!"+I)}),w()):(yield $.remove({values:b.map(I=>"!"+I)}),w()),p.message.success(C("Saved successfully"))});return a.jsx(p.Table,{className:n,loading:P,rowKey:"key",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:C("Plugin name"),render:g=>i(g)},{dataIndex:"accessible",title:a.jsxs(a.Fragment,{children:[a.jsx(p.Checkbox,{checked:_,onChange:()=>x(this,null,function*(){const g=c.map(m=>"!"+m);_?yield $.add({values:g}):yield $.remove({values:g}),w(),p.message.success(C("Saved successfully"))})}),C("Accessible")]}),render:(g,m)=>{const h=!u.includes("!"+m.aclSnippet);return a.jsx(p.Checkbox,{checked:h,onChange:()=>F(h,m)})}}],dataSource:o.filter(g=>g.isTopLevel!==!1).map(g=>g.showTabs!==!1?g:te.omit(g,"children"))})},oe=d.createContext([]);oe.displayName="AvailableActionsContext";const Ts=e=>{const{data:t,loading:n}=l.useRequest({resource:"availableActions",action:"list"});return n?a.jsx(p.Spin,{}):a.jsx(oe.Provider,{value:t==null?void 0:t.data,children:e.children})},Os=()=>d.useContext(oe),Ms=e=>{var n;if(!e)return{};const t={};return(n=e==null?void 0:e.forEach)==null||n.call(e,r=>{const[s,i]=r.split(":");t[s]=i||"all"}),t},Ie=e=>{const t=[];for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const r=e[n];r==="all"?t.push(n):t.push(`${n}:${r}`)}return t},Fs=O.connect(e=>{const{onChange:t}=e,n=Os(),r=l.useCompile(),{t:s}=A.useTranslation(),i=O.useField(),o=Ms(i.value);return a.jsx("div",{children:a.jsx(p.Table,{rowKey:"name",size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:c=>r(c)},{dataIndex:"onNewRecord",title:s("Action type"),render:c=>c?a.jsx(p.Tag,{color:"green",children:s("Action on new records")}):a.jsx(p.Tag,{color:"geekblue",children:s("Action on existing records")})},{dataIndex:"enabled",title:s("Allow"),render:(c,u)=>a.jsx(p.Checkbox,{checked:c,"aria-label":`${u.name}_checkbox`,onChange:f=>{c?delete o[u.name]:o[u.name]="all",t(Ie(o))}})},{dataIndex:"scope",title:s("Data scope"),render:(c,u)=>!u.onNewRecord&&a.jsx(p.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:c,options:[{label:s("All records"),value:"all"},{label:s("Own records"),value:"own"}],onChange:f=>{o[u.name]=f,t(Ie(o))}})}],dataSource:n==null?void 0:n.map(c=>{let u="all",f=!1;return o[c.name]&&(f=!0,u=o[c.name]),E(S({},c),{enabled:f,scope:u})})})})}),Es=O.connect(e=>{const{t}=A.useTranslation();return a.jsxs(p.Checkbox.Group,{style:{width:"100%",display:"block"},value:e.value,onChange:n=>{const r=["ui.*","pm","pm.*","app"],s=r.map(o=>`!${o}`),i=Ps([...e.value||[],...n]).filter(o=>o&&!s.includes(o)).map(o=>!r.includes(o)||n!=null&&n.includes(o)?o:`!${o}`);for(const o of r)!i.includes(o)&&!i.includes(`!${o}`)&&i.push(`!${o}`);e.onChange(i)},children:[a.jsx("div",{style:{marginTop:16},children:a.jsx(p.Checkbox,{value:"ui.*",children:t("Allows to configure interface")})}),a.jsx("div",{style:{marginTop:8},children:a.jsx(p.Checkbox,{value:"pm",children:t("Allows to install, activate, disable plugins")})}),a.jsx("div",{style:{marginTop:8},children:a.jsx(p.Checkbox,{value:"pm.*",children:t("Allows to configure plugins")})}),a.jsx("div",{style:{marginTop:8},children:a.jsx(p.Checkbox,{value:"app",children:t("Allows to clear cache, reboot application")})})]})}),Ns=()=>{var c;const{role:e,setRole:t}=d.useContext(M),{t:n}=U(),r=l.useAPIClient(),s=(c=e==null?void 0:e.snippets)==null?void 0:c.includes("pm.*"),i=z.useMemoizedFn(u=>x(this,null,function*(){yield r.resource("roles").update({filterByTk:e.name,values:{snippets:u.values.snippets}}),t(S(S({},e),u.values)),p.message.success(n("Saved successfully"))})),o=d.useMemo(()=>N.createForm({values:e,effects(){N.onFormValuesChange(u=>x(this,null,function*(){yield i(u)}))}}),[e,i]);return a.jsx(l.SchemaComponent,{components:{SnippetCheckboxGroup:Es,StrategyActions:Fs,PluginPermissions:Is},scope:{pm:s},schema:{type:"void",name:D.uid(),"x-component":"div",properties:{general:{"x-component":"FormV2","x-component-props":{form:o},properties:{snippets:{title:n("Configure permissions"),type:"boolean","x-decorator":"FormItem","x-component":"SnippetCheckboxGroup"}}},plugins:{"x-component":"FormV2",properties:{pluginSettings:{title:n("Plugin settings"),"x-decorator":"FormItem","x-component":"PluginPermissions","x-visible":"{{pm}}"}}}}}})},ie=d.createContext(null);ie.displayName="MenuItemsContext";const Te=(e={})=>{const t=[];for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const r=e[n],s={title:r.title,uid:r["x-uid"]};r.properties&&(s.children=Te(r.properties)),t.push(s)}return t},Ds=()=>d.useContext(ie),ks=e=>{var i,o;const n={url:`uiSchemas:getProperties/${l.useAdminSchemaUid()}`},r=l.useRequest(n);if(r.loading)return a.jsx(p.Spin,{});const s=Te((o=(i=r.data)==null?void 0:i.data)==null?void 0:o.properties);return a.jsx(ie.Provider,{value:{service:r,items:s},children:e.children})},Oe=e=>{if(!Array.isArray(e))return[];const t=[];for(const n of e)t.push(n.uid),t.push(...Oe(n.children));return t},Me=(e,t,n=[])=>{if(!e)return[];for(const r of e){if(n.push(r.uid),t(r))return n;if(r.children){const s=Me(r.children,t,n);if(s.length)return s}n.pop()}return[]},Fe=(e=[],t=[])=>{for(const n of e)t.push(n.uid),n.children&&n.children.length&&Fe(n.children,t);return t},qs=({active:e})=>{const{styles:t}=Ae(),{role:n,setRole:r}=d.useContext(M),s=l.useAPIClient(),{items:i}=Ds(),{t:o}=A.useTranslation(),c=Oe(i),[u,f]=d.useState([]),{loading:y,refresh:_}=l.useRequest({resource:"roles.menuUiSchemas",resourceOf:n.name,action:"list",params:{paginate:!1}},{ready:!!n&&e,refreshDeps:[n==null?void 0:n.name],onSuccess(m){var h;f(((h=m==null?void 0:m.data)==null?void 0:h.map(b=>b["x-uid"]))||[])}}),C=s.resource("roles.menuUiSchemas",n.name),P=c.length===u.length,w=(m,h)=>x(this,null,function*(){const b=Me(i,T=>T.uid===h.uid),I=Fe(h==null?void 0:h.children,[]);if(m){const T=I.concat(h.uid),de=u.filter(Ii=>!T.includes(Ii));f([...de]),yield C.remove({values:T})}else{const T=I.concat(b);f(de=>te.uniq([...de,...T])),yield C.add({values:T})}p.message.success(o("Saved successfully"))}),$=m=>m.map(h=>{const b=o(h.title);return h.children?E(S({},h),{title:b,children:$(h.children)}):E(S({},h),{title:b})}),F=z.useMemoizedFn(m=>x(this,null,function*(){yield s.resource("roles").update({filterByTk:n.name,values:m.values}),r(S(S({},n),m.values)),p.message.success(o("Saved successfully"))})),g=d.useMemo(()=>N.createForm({values:n,effects(){N.onFormValuesChange(m=>x(this,null,function*(){yield F(m)}))}}),[n,F]);return a.jsxs(a.Fragment,{children:[a.jsx(l.SchemaComponent,{schema:{type:"void",name:D.uid(),"x-component":"FormV2","x-component-props":{form:g},properties:{allowNewMenu:{title:o("Menu permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":o("New menu items are allowed to be accessed by default.")}}}}),a.jsx(p.Table,{className:t,loading:y,rowKey:"uid",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:o("Menu item title")},{dataIndex:"accessible",title:a.jsxs(a.Fragment,{children:[a.jsx(p.Checkbox,{checked:P,onChange:m=>x(this,null,function*(){P?yield C.set({values:[]}):yield C.set({values:c}),_(),p.message.success(o("Saved successfully"))})})," ",o("Accessible")]}),render:(m,h)=>{const b=u.includes(h.uid);return a.jsx(p.Checkbox,{checked:b,onChange:()=>w(b,h)})}}],dataSource:$(i)})]})};class Hs{constructor(){L(this,"permissionsTabs",[({t,TabLayout:n})=>({key:"general",label:t("System"),children:a.jsx(n,{children:a.jsx(Ns,{})})}),({activeKey:t,t:n,TabLayout:r})=>({key:"menu",label:n("Desktop menu"),children:a.jsx(r,{children:a.jsx(ks,{children:a.jsx(qs,{active:t==="menu"})})})})])}addPermissionsTab(t){this.permissionsTabs.push(t)}getPermissionsTabs(t){return this.permissionsTabs.map(n=>typeof n=="function"?n(t):n)}}var Us=Array.isArray,G=Us;function js(e){return e!=null&&typeof e=="object"}var ce=js,Gs=ne,Ls=ce,zs="[object Symbol]";function Ks(e){return typeof e=="symbol"||Ls(e)&&Gs(e)==zs}var le=Ks,Vs=G,Bs=le,Ws=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ys=/^\w*$/;function Xs(e,t){if(Vs(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Bs(e)?!0:Ys.test(e)||!Ws.test(e)||t!=null&&e in Object(t)}var Js=Xs,Ee=Se,Zs="Expected a function";function ue(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Zs);var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],i=n.cache;if(i.has(s))return i.get(s);var o=e.apply(this,r);return n.cache=i.set(s,o)||i,o};return n.cache=new(ue.Cache||Ee),n}ue.Cache=Ee;var Qs=ue,Rs=Qs,ea=500;function ta(e){var t=Rs(e,function(r){return n.size===ea&&n.clear(),r}),n=t.cache;return t}var na=ta,ra=na,sa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,aa=/\\(\\)?/g,oa=ra(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(sa,function(n,r,s,i){t.push(s?i.replace(aa,"$1"):r||n)}),t}),ia=oa;function ca(e,t){for(var n=-1,r=e==null?0:e.length,s=Array(r);++n<r;)s[n]=t(e[n],n,e);return s}var la=ca,Ne=B,ua=la,pa=G,da=le,ha=1/0,De=Ne?Ne.prototype:void 0,ke=De?De.toString:void 0;function qe(e){if(typeof e=="string")return e;if(pa(e))return ua(e,qe)+"";if(da(e))return ke?ke.call(e):"";var t=e+"";return t=="0"&&1/e==-ha?"-0":t}var fa=qe,va=fa;function ma(e){return e==null?"":va(e)}var ga=ma,ya=G,ba=Js,_a=ia,Ca=ga;function $a(e,t){return ya(e)?e:ba(e,t)?[e]:_a(Ca(e))}var Q=$a,xa=le,Sa=1/0;function wa(e){if(typeof e=="string"||xa(e))return e;var t=e+"";return t=="0"&&1/e==-Sa?"-0":t}var pe=wa,Aa=Q,Pa=pe;function Ia(e,t){t=Aa(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[Pa(t[n++])];return n&&n==r?e:void 0}var Ta=Ia,Oa=W,Ma=function(){try{var e=Oa(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),He=Ma,Ue=He;function Fa(e,t,n){t=="__proto__"&&Ue?Ue(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Ea=Fa,Na=Ea,Da=$e,ka=Object.prototype,qa=ka.hasOwnProperty;function Ha(e,t,n){var r=e[t];(!(qa.call(e,t)&&Da(r,n))||n===void 0&&!(t in e))&&Na(e,t,n)}var Ua=Ha,ja=9007199254740991,Ga=/^(?:0|[1-9]\d*)$/;function La(e,t){var n=typeof e;return t=t==null?ja:t,!!t&&(n=="number"||n!="symbol"&&Ga.test(e))&&e>-1&&e%1==0&&e<t}var je=La,za=Ua,Ka=Q,Va=je,Ge=re,Ba=pe;function Wa(e,t,n,r){if(!Ge(e))return e;t=Ka(t,e);for(var s=-1,i=t.length,o=i-1,c=e;c!=null&&++s<i;){var u=Ba(t[s]),f=n;if(u==="__proto__"||u==="constructor"||u==="prototype")return e;if(s!=o){var y=c[u];f=r?r(y,u,c):void 0,f===void 0&&(f=Ge(y)?y:Va(t[s+1])?[]:{})}za(c,u,f),c=c[u]}return e}var Ya=Wa,Xa=Ta,Ja=Ya,Za=Q;function Qa(e,t,n){for(var r=-1,s=t.length,i={};++r<s;){var o=t[r],c=Xa(e,o);n(c,o)&&Ja(i,Za(o,e),c)}return i}var Ra=Qa;function eo(e,t){return e!=null&&t in Object(e)}var to=eo,no=ne,ro=ce,so="[object Arguments]";function ao(e){return ro(e)&&no(e)==so}var oo=ao,Le=oo,io=ce,ze=Object.prototype,co=ze.hasOwnProperty,lo=ze.propertyIsEnumerable,uo=Le(function(){return arguments}())?Le:function(e){return io(e)&&co.call(e,"callee")&&!lo.call(e,"callee")},Ke=uo,po=9007199254740991;function ho(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=po}var fo=ho,vo=Q,mo=Ke,go=G,yo=je,bo=fo,_o=pe;function Co(e,t,n){t=vo(t,e);for(var r=-1,s=t.length,i=!1;++r<s;){var o=_o(t[r]);if(!(i=e!=null&&n(e,o)))break;e=e[o]}return i||++r!=s?i:(s=e==null?0:e.length,!!s&&bo(s)&&yo(o,s)&&(go(e)||mo(e)))}var $o=Co,xo=to,So=$o;function wo(e,t){return e!=null&&So(e,t,xo)}var Ao=wo,Po=Ra,Io=Ao;function To(e,t){return Po(e,t,function(n,r){return Io(e,r)})}var Oo=To;function Mo(e,t){for(var n=-1,r=t.length,s=e.length;++n<r;)e[s+n]=t[n];return e}var Fo=Mo,Ve=B,Eo=Ke,No=G,Be=Ve?Ve.isConcatSpreadable:void 0;function Do(e){return No(e)||Eo(e)||!!(Be&&e&&e[Be])}var ko=Do,qo=Fo,Ho=ko;function We(e,t,n,r,s){var i=-1,o=e.length;for(n||(n=Ho),s||(s=[]);++i<o;){var c=e[i];t>0&&n(c)?t>1?We(c,t-1,n,r,s):qo(s,c):r||(s[s.length]=c)}return s}var Uo=We,jo=Uo;function Go(e){var t=e==null?0:e.length;return t?jo(e,1):[]}var Lo=Go;function zo(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var Ko=zo,Vo=Ko,Ye=Math.max;function Bo(e,t,n){return t=Ye(t===void 0?e.length-1:t,0),function(){for(var r=arguments,s=-1,i=Ye(r.length-t,0),o=Array(i);++s<i;)o[s]=r[t+s];s=-1;for(var c=Array(t+1);++s<t;)c[s]=r[s];return c[t]=n(o),Vo(e,this,c)}}var Wo=Bo;function Yo(e){return function(){return e}}var Xo=Yo;function Jo(e){return e}var Zo=Jo,Qo=Xo,Xe=He,Ro=Zo,ei=Xe?function(e,t){return Xe(e,"toString",{configurable:!0,enumerable:!1,value:Qo(t),writable:!0})}:Ro,ti=ei,ni=800,ri=16,si=Date.now;function ai(e){var t=0,n=0;return function(){var r=si(),s=ri-(r-n);if(n=r,s>0){if(++t>=ni)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var oi=ai,ii=ti,ci=oi,li=ci(ii),ui=li,pi=Lo,di=Wo,hi=ui;function fi(e){return hi(di(e,void 0,pi),e+"")}var vi=fi,mi=Oo,gi=vi,yi=gi(function(e,t){return e==null?{}:mi(e,t)}),bi=yi;const _i=ve(bi),Ci={type:"object",properties:{[D.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:e=>{const t=l.useRecord(),n=l.useRequest(()=>Promise.resolve({data:_i(t,["title","name","default"])}),E(S({},e),{manual:!0})),r=l.useActionContext();return d.useEffect(()=>{r.visible&&n.run()},[r.visible]),n}},title:'{{t("Edit role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},default:{title:"","x-component":"CollectionField","x-decorator":"FormItem","x-content":'{{t("Default role")}}',"x-reactions":e=>{e.initialValue?e.disabled=!0:e.disabled=!1}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},$i=({loadMore:e})=>{const[t,n]=d.useState(null),r=d.useRef(null),s=d.useCallback(i=>{i&&(r.current&&r.current.disconnect(),r.current=new IntersectionObserver(o=>{o.forEach(c=>{c.target===i.current&&c.isIntersecting&&(r.current&&r.current.unobserve(i.current),e())})}),i.current&&r.current&&r.current.observe(i.current))},[e]);return d.useEffect(()=>(s(t),()=>{r.current&&r.current.disconnect()}),[t,s]),{lastItem:t,setLastItem:n}},R=()=>{const{t:e}=U(),{data:t,mutate:n}=l.useResourceActionContext(),[r,s]=d.useState(!1),[i,o]=d.useState(null),{role:c,setRole:u}=d.useContext(M),[f,y]=d.useState([]),[_,C]=d.useState(!1),P=l.useAPIClient(),w=d.useCallback(()=>x(this,null,function*(){const h=t==null?void 0:t.meta;if(!h||h.page>=h.totalPage)return;C(!0);const b=yield P.resource("roles").list({page:h.page+1,pageSize:h.pageSize,filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]});n((b==null?void 0:b.data)||{}),C(!1)}),[t]),{lastItem:$,setLastItem:F}=$i({loadMore:w}),g=({key:h})=>{u(f.find(b=>b.name===h))};d.useEffect(()=>{f[0]&&u(f[0])},[f,u]),d.useEffect(()=>{var b,I;if(!((b=t==null?void 0:t.data)!=null&&b.length))return;const h=d.createRef();F(h),((I=t.meta)==null?void 0:I.page)>1?y(T=>T.concat(t.data)):y(t.data)},[t,F]);const m=d.useMemo(()=>f.map((h,b)=>({key:h.name,label:b===f.length-1?a.jsx("div",{ref:$,children:a.jsx(R.Item,{item:h,onEdit:()=>{s(!0),o(h)}})}):a.jsx(R.Item,{item:h,onEdit:()=>{s(!0),o(h)}})})),[f,$]);return a.jsxs(a.Fragment,{children:[f.length?a.jsx(p.Menu,{style:{border:"none",maxHeight:"65vh",overflowY:"auto"},items:[...m,..._?[{key:"loading",label:a.jsx(p.Spin,{})}]:[]],selectedKeys:[c==null?void 0:c.name],onSelect:g}):a.jsx(p.Empty,{image:p.Empty.PRESENTED_IMAGE_SIMPLE}),a.jsx(l.ActionContextProvider,{value:{visible:r,setVisible:s},children:a.jsx(l.RecordProvider,{record:i,collectionName:"departments",children:a.jsx(l.SchemaComponent,{scope:{t:e},schema:Ci})})})]})};R.Item=function({item:t,onEdit:n}){const{t:r}=U(),{refreshAsync:s}=l.useResourceActionContext(),{modal:i,message:o}=p.App.useApp(),c=l.useAPIClient(),u=()=>{i.confirm({title:r("Delete"),content:r("Are you sure you want to delete it?"),onOk:()=>x(this,null,function*(){yield c.resource("roles").destroy({filterByTk:t.name}),o.success(r("Deleted successfully")),yield s()})})},f=({key:_,domEvent:C})=>{switch(C.stopPropagation(),_){case"edit":n();break;case"delete":u()}},y=O.Schema.compile(t.title,{t:r});return a.jsxs(p.Row,{children:[a.jsx(p.Col,{flex:3,style:{display:"inline-flex",alignItems:"center"},children:a.jsxs("span",{style:{whiteSpace:"nowrap",width:"120px",overflow:"hidden",textOverflow:"ellipsis"},children:[a.jsx(fe.TagOutlined,{}),a.jsx("span",{style:{marginLeft:"10px"},title:y,children:y})]})}),a.jsxs(p.Col,{children:[t.default?a.jsx(p.Tag,{color:"success",bordered:!1,children:r("Default")}):null,a.jsx(p.Dropdown,{menu:{items:[{label:r("Edit"),key:"edit"},{label:r("Delete"),key:"delete"}],onClick:f},children:a.jsx(fe.MoreOutlined,{})})]})]})};const xi=e=>a.jsx("div",{style:{maxHeight:"60vh",overflowY:"auto"},children:e.children}),Si=({active:e})=>{const{t}=U(),[n,r]=d.useState("general"),{role:s,setRole:i}=d.useContext(M),o=l.usePlugin(ee),c=l.useACLRoleContext(),u=d.useMemo(()=>o.settingsUI.getPermissionsTabs({t,activeKey:n,TabLayout:xi,activeRole:s,currentUserRole:c}).filter(Boolean),[n,o.settingsUI,s,t,c]),f=l.useAPIClient(),{data:y}=l.useRequest(()=>f.resource("roles").get({filterByTk:s==null?void 0:s.name}).then(_=>{var P,w;const C=(P=_==null?void 0:_.data)==null?void 0:P.data;return(w=C.snippets)==null||w.forEach($=>{C[$]=!0}),C}),{ready:e&&!!s,refreshDeps:[s==null?void 0:s.name]});return d.useEffect(()=>{r("general")},[s==null?void 0:s.name]),d.useEffect(()=>{i(y)},[y,i]),a.jsx(Ts,{children:a.jsx(p.Tabs,{type:"card",activeKey:n,onChange:_=>r(_),items:u})})},wi=()=>{const{t:e}=U();return a.jsx(l.SchemaComponent,{scope:{t:e},schema:{type:"void",properties:{newRole:{type:"void",title:e("New role"),"x-component":"Action","x-component-props":{type:"text",icon:"PlusOutlined",style:{width:"100%",textAlign:"left"}},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(t){const n=l.useActionContext();return l.useRequest(()=>Promise.resolve({data:{name:`r_${D.uid()}`,snippets:["!ui.*","!pm","!pm.*"]}}),E(S({},t),{refreshDeps:[n.visible]}))}},title:e("New role"),properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},default:{"x-component":"CollectionField","x-decorator":"FormItem",title:"","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}}})},Je={name:"roles",filterTargetKey:"name",targetKey:"name",fields:[{type:"string",name:"title",interface:"input",uiSchema:{title:'{{t("Role display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Role UID")}}',type:"string","x-component":"Input"}},{type:"boolean",name:"default",interface:"boolean",uiSchema:{title:'{{t("Default role")}}',type:"boolean","x-component":"Checkbox"}}]},Ai=()=>{const{t:e}=U(),t=l.usePlugin(ee),[n,r]=d.useState("permissions"),s=Array.from(t.rolesManager.list()).map(([u,f])=>({key:u,label:O.Schema.compile(f.title,{t:e}),children:f.Component?d.createElement(f.Component,{active:n===u}):null})),[i,o]=d.useState(null),c=l.useSchemaComponentContext();return a.jsx(l.SchemaComponentContext.Provider,{value:E(S({},c),{designable:!1}),children:a.jsx(M.Provider,{value:{role:i,setRole:o},children:a.jsx(p.Card,{children:a.jsxs(p.Row,{gutter:24,style:{flexWrap:"nowrap"},children:[a.jsx(p.Col,{flex:"280px",style:{borderRight:"1px solid #eee",minWidth:"250px"},children:a.jsx(l.ResourceActionProvider,{collection:Je,request:{resource:"roles",action:"list",params:{filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]}},children:a.jsxs(l.CollectionProvider_deprecated,{collection:Je,children:[a.jsx(p.Row,{children:a.jsx(wi,{})}),a.jsx(p.Divider,{style:{margin:"12px 0"}}),a.jsx(R,{})]})})}),a.jsx(p.Col,{flex:"auto",style:{overflow:"hidden"},children:a.jsx(p.Tabs,{activeKey:n,onChange:u=>r(u),items:[{key:"permissions",label:e("Permissions"),children:a.jsx(Si,{active:n==="permissions"})},...s]})})]})})})})};class Pi{constructor(){L(this,"rolesManager",new Re.Registry)}add(t,n){this.rolesManager.register(t,n)}list(){return this.rolesManager.getEntities()}}class ee extends l.Plugin{constructor(){super(...arguments);L(this,"rolesManager",new Pi);L(this,"settingsUI",new Hs)}load(){return x(this,null,function*(){this.pluginSettingsManager.add("users-permissions.roles",{title:this.t("Roles & Permissions"),icon:"LockOutlined",Component:Ai,aclSnippet:"pm.acl.roles",sort:3})})}}v.PluginACLClient=ee,v.RolesManagerContext=M,v.default=ee,Object.defineProperties(v,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -11,20 +11,21 @@ module.exports = {
11
11
  "antd": "5.12.8",
12
12
  "react": "18.2.0",
13
13
  "react-i18next": "11.18.6",
14
- "@nocobase/client": "1.5.0-alpha.5",
14
+ "@nocobase/client": "1.5.0-beta.2",
15
15
  "@formily/shared": "2.3.2",
16
16
  "@formily/react": "2.3.0",
17
17
  "@ant-design/icons": "5.2.6",
18
- "@nocobase/utils": "1.5.0-alpha.5",
19
- "@nocobase/actions": "1.5.0-alpha.5",
20
- "@nocobase/cache": "1.5.0-alpha.5",
21
- "@nocobase/database": "1.5.0-alpha.5",
22
- "@nocobase/server": "1.5.0-alpha.5",
18
+ "@nocobase/utils": "1.5.0-beta.2",
19
+ "@nocobase/actions": "1.5.0-beta.2",
20
+ "@nocobase/cache": "1.5.0-beta.2",
21
+ "@nocobase/database": "1.5.0-beta.2",
22
+ "@nocobase/server": "1.5.0-beta.2",
23
+ "async-mutex": "0.3.2",
23
24
  "lodash": "4.17.21",
24
- "@nocobase/test": "1.5.0-alpha.5",
25
+ "@nocobase/test": "1.5.0-beta.2",
25
26
  "@formily/core": "2.3.0",
26
27
  "ahooks": "3.7.8",
27
28
  "@formily/antd-v5": "1.1.9",
28
29
  "antd-style": "3.7.1",
29
- "@nocobase/acl": "1.5.0-alpha.5"
30
+ "@nocobase/acl": "1.5.0-beta.2"
30
31
  };
@@ -15,6 +15,6 @@ export declare class RoleResourceModel extends Model {
15
15
  }): Promise<void>;
16
16
  writeToACL(options: {
17
17
  acl: ACL;
18
- transaction?: any;
18
+ transaction: any;
19
19
  }): Promise<void>;
20
20
  }
@@ -15,7 +15,6 @@ export declare class PluginACLServer extends Plugin {
15
15
  get acl(): import("@nocobase/acl").ACL;
16
16
  writeResourceToACL(resourceModel: RoleResourceModel, transaction: Transaction): Promise<void>;
17
17
  writeActionToACL(actionModel: RoleResourceActionModel, transaction: Transaction): Promise<void>;
18
- handleSyncMessage(message: any): Promise<void>;
19
18
  writeRolesToACL(options: any): Promise<void>;
20
19
  writeRoleToACL(role: RoleModel, options?: any): Promise<void>;
21
20
  beforeLoad(): Promise<void>;
@@ -43,6 +43,7 @@ module.exports = __toCommonJS(server_exports);
43
43
  var import_actions = require("@nocobase/actions");
44
44
  var import_database = require("@nocobase/database");
45
45
  var import_server = require("@nocobase/server");
46
+ var import_async_mutex = require("async-mutex");
46
47
  var import_lodash = __toESM(require("lodash"));
47
48
  var import_path = require("path");
48
49
  var import_available_actions = require("./actions/available-actions");
@@ -73,23 +74,6 @@ class PluginACLServer extends import_server.Plugin {
73
74
  resourceName: resource.get("name")
74
75
  });
75
76
  }
76
- async handleSyncMessage(message) {
77
- const { type } = message;
78
- if (type === "syncRole") {
79
- const { roleName } = message;
80
- const role = await this.app.db.getRepository("roles").findOne({
81
- filter: {
82
- name: roleName
83
- }
84
- });
85
- await this.writeRoleToACL(role, {
86
- withOutResources: true
87
- });
88
- await this.app.emitAsync("acl:writeResources", {
89
- roleName: role.get("name")
90
- });
91
- }
92
- }
93
77
  async writeRolesToACL(options) {
94
78
  const roles = await this.app.db.getRepository("roles").find({
95
79
  appends: ["resources", "resources.actions"]
@@ -227,15 +211,6 @@ class PluginACLServer extends import_server.Plugin {
227
211
  transaction
228
212
  });
229
213
  }
230
- this.sendSyncMessage(
231
- {
232
- type: "syncRole",
233
- roleName: model.get("name")
234
- },
235
- {
236
- transaction: options.transaction
237
- }
238
- );
239
214
  });
240
215
  this.app.db.on("roles.afterDestroy", (model) => {
241
216
  const roleName = model.get("name");
@@ -285,9 +260,9 @@ class PluginACLServer extends import_server.Plugin {
285
260
  });
286
261
  }
287
262
  });
263
+ const mutex = new import_async_mutex.Mutex();
288
264
  this.app.db.on("fields.afterDestroy", async (model, options) => {
289
- const lockKey = `${this.name}:fields.afterDestroy:${model.get("collectionName")}:${model.get("name")}`;
290
- await this.app.lockManager.runExclusive(lockKey, async () => {
265
+ await mutex.runExclusive(async () => {
291
266
  const collectionName = model.get("collectionName");
292
267
  const fieldName = model.get("name");
293
268
  const resourceActions = await this.app.db.getRepository("dataSourcesRolesResourcesActions").find({
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "权限控制",
5
5
  "description": "Based on roles, resources, and actions, access control can precisely manage interface configuration permissions, data operation permissions, menu access permissions, and plugin permissions.",
6
6
  "description.zh-CN": "基于角色、资源和操作的权限控制,可以精确控制界面配置权限、数据操作权限、菜单访问权限、插件权限。",
7
- "version": "1.5.0-alpha.5",
7
+ "version": "1.5.0-beta.2",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/acl",
@@ -14,6 +14,7 @@
14
14
  ],
15
15
  "devDependencies": {
16
16
  "@types/jsonwebtoken": "^8.5.8",
17
+ "async-mutex": "^0.3.2",
17
18
  "jsonwebtoken": "^8.5.1",
18
19
  "react": "^18.2.0",
19
20
  "react-dom": "^18.2.0"
@@ -33,5 +34,5 @@
33
34
  "url": "git+https://github.com/nocobase/nocobase.git",
34
35
  "directory": "packages/plugins/acl"
35
36
  },
36
- "gitHead": "8d24e8d2c0f3f57ceaa271438fd93db2b4150011"
37
+ "gitHead": "8a9c29fdac5c6295dcc7abf00c3fa81bd9e01a36"
37
38
  }