@nocobase/plugin-auth 2.2.0-beta.9 → 3.0.0-alpha.1

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.
Files changed (47) hide show
  1. package/dist/client/index.js +1 -1
  2. package/dist/client-v2/217.1510705562d97555.js +10 -0
  3. package/dist/client-v2/795.7100439b59804662.js +10 -0
  4. package/dist/client-v2/841.7a31cfa7c5c79d2d.js +10 -0
  5. package/dist/client-v2/9.c10c60a4ecc4256d.js +10 -0
  6. package/dist/client-v2/authRoutePaths.d.ts +26 -0
  7. package/dist/client-v2/index.js +1 -1
  8. package/dist/client-v2/pages/AuthenticatorsPage.d.ts +26 -0
  9. package/dist/externalVersion.js +11 -11
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.js +8 -2
  12. package/dist/locale/de-DE.json +2 -1
  13. package/dist/locale/en-US.json +4 -1
  14. package/dist/locale/es-ES.json +2 -1
  15. package/dist/locale/fr-FR.json +2 -1
  16. package/dist/locale/hu-HU.json +2 -1
  17. package/dist/locale/id-ID.json +2 -1
  18. package/dist/locale/it-IT.json +2 -1
  19. package/dist/locale/ja-JP.json +2 -1
  20. package/dist/locale/ko-KR.json +2 -1
  21. package/dist/locale/nl-NL.json +2 -1
  22. package/dist/locale/pt-BR.json +2 -1
  23. package/dist/locale/ru-RU.json +2 -1
  24. package/dist/locale/tr-TR.json +2 -1
  25. package/dist/locale/uk-UA.json +2 -1
  26. package/dist/locale/vi-VN.json +2 -1
  27. package/dist/locale/zh-CN.json +4 -1
  28. package/dist/locale/zh-TW.json +2 -1
  29. package/dist/node_modules/cron/package.json +1 -1
  30. package/dist/node_modules/ms/package.json +1 -1
  31. package/dist/server/index.d.ts +3 -0
  32. package/dist/server/index.js +9 -1
  33. package/dist/server/locale/en-US.json +2 -1
  34. package/dist/server/locale/zh-CN.json +3 -2
  35. package/dist/server/plugin.js +3 -1
  36. package/dist/server/token-controller.d.ts +1 -0
  37. package/dist/server/token-controller.js +11 -8
  38. package/dist/server/utils/authRedirect.d.ts +30 -0
  39. package/dist/server/utils/authRedirect.js +93 -0
  40. package/dist/server/utils/buildRedirectPath.js +19 -0
  41. package/dist/server/utils/resolveSubAppSegment.d.ts +17 -0
  42. package/dist/server/utils/resolveSubAppSegment.js +82 -0
  43. package/package.json +2 -2
  44. package/dist/client-v2/217.09744ff679406aff.js +0 -10
  45. package/dist/client-v2/795.b26178560fd03daa.js +0 -10
  46. package/dist/client-v2/841.ac9bfbb0615510e5.js +0 -10
  47. package/dist/client-v2/9.5301763a7da120fa.js +0 -10
@@ -7,4 +7,4 @@
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("react-i18next"),require("@emotion/css"),require("react-router-dom"),require("@formily/antd-v5"),require("@formily/react"),require("@ant-design/icons"),require("@formily/shared"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/core"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-auth",["react-i18next","@emotion/css","react-router-dom","@formily/antd-v5","@formily/react","@ant-design/icons","@formily/shared","react","antd","@nocobase/client","@formily/core","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-auth"]=t(require("react-i18next"),require("@emotion/css"),require("react-router-dom"),require("@formily/antd-v5"),require("@formily/react"),require("@ant-design/icons"),require("@formily/shared"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/core"),require("@nocobase/utils/client")):e["@nocobase/plugin-auth"]=t(e["react-i18next"],e["@emotion/css"],e["react-router-dom"],e["@formily/antd-v5"],e["@formily/react"],e["@ant-design/icons"],e["@formily/shared"],e.react,e.antd,e["@nocobase/client"],e["@formily/core"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,i,a,u,c,l,s,p){return function(){var f,d,m,y={432:function(e,t,n){e.exports=n(36).Symbol},77:function(e,t,n){var r=n(432),o=n(444),i=n(371),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)}},625:function(e,t,n){var r=n(531),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},565:function(e,t,n){e.exports="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g},444:function(e,t,n){var r=n(432),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}},371:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},36:function(e,t,n){var r=n(565),o="object"==typeof self&&self&&self.Object===Object&&self;e.exports=r||o||Function("return this")()},531:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},738:function(e,t,n){var r=n(130),o=n(593),i=n(909),a=Math.max,u=Math.min;e.exports=function(e,t,n){var c,l,s,p,f,d,m=0,y=!1,v=!1,b=!0;if("function"!=typeof e)throw TypeError("Expected a function");function h(t){var n=c,r=l;return c=l=void 0,m=t,p=e.apply(r,n)}function g(e){var n=e-d,r=e-m;return void 0===d||n>=t||n<0||v&&r>=s}function w(){var e,n,r,i=o();if(g(i))return x(i);f=setTimeout(w,(e=i-d,n=i-m,r=t-e,v?u(r,s-n):r))}function x(e){return(f=void 0,b&&c)?h(e):(c=l=void 0,p)}function S(){var e,n=o(),r=g(n);if(c=arguments,l=this,d=n,r){if(void 0===f)return m=e=d,f=setTimeout(w,t),y?h(e):p;if(v)return clearTimeout(f),f=setTimeout(w,t),h(d)}return void 0===f&&(f=setTimeout(w,t)),p}return t=i(t)||0,r(n)&&(y=!!n.leading,s=(v="maxWait"in n)?a(i(n.maxWait)||0,t):s,b="trailing"in n?!!n.trailing:b),S.cancel=function(){void 0!==f&&clearTimeout(f),m=0,c=d=l=f=void 0},S.flush=function(){return void 0===f?p:x(o())},S}},130:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},189:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},733:function(e,t,n){var r=n(77),o=n(189);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},593:function(e,t,n){var r=n(36);e.exports=function(){return r.Date.now()}},909:function(e,t,n){var r=n(625),o=n(130),i=n(733),a=0/0,u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,s=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return a;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=c.test(e);return n||l.test(e)?s(e.slice(2),n?2:8):u.test(e)?a:+e}},574:function(e,t,n){"use strict";n.r(t),n.d(t,{AuthLayout:function(){return z},default:function(){return G},useRedirect:function(){return i.useRedirect},PluginAuthClient:function(){return H},AuthenticatorsContext:function(){return v.m},useAuthenticator:function(){return v.p},AuthenticatorsContextProvider:function(){return K},useSignIn:function(){return i.useSignIn}});var r=n(342),o=n(768),i=n(751),a=n(738),u=n.n(a),c={EMPTY_TOKEN:"EMPTY_TOKEN",EXPIRED_TOKEN:"EXPIRED_TOKEN",INVALID_TOKEN:"INVALID_TOKEN",TOKEN_RENEW_FAILED:"TOKEN_RENEW_FAILED",BLOCKED_TOKEN:"BLOCKED_TOKEN",EXPIRED_SESSION:"EXPIRED_SESSION",NOT_EXIST_USER:"NOT_EXIST_USER",SKIP_TOKEN_RENEW:"SKIP_TOKEN_RENEW",USER_HAS_NO_ROLES_ERR:"USER_HAS_NO_ROLES_ERR"},l=u()(function(e){e()},3e3,{leading:!0,trailing:!1}),s=n(872),p=n(230),f=n(155),d=n.n(f),m=n(59),y=n(442),v=n(706);function b(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 h(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 g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(e,t){if(e){if("string"==typeof e)return b(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 b(e,t)}}(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.")}()}var w=function(){var e,t=(0,s.dE)().t,n=g((0,y.useSearchParams)(),1)[0].get("name"),o=(0,v.p)(n);return(null==o||null==(e=o.options)?void 0:e.enableResetPassword)?d().createElement(r.SchemaComponent,{schema:{type:"object",name:"forgotPasswordForm","x-component":"FormV2",properties:{email:{type:"string","x-component":"Input",title:'{{t("Reset password")}}',required:!0,"x-validator":"{{(value) => {\n if (!value) {\n return '';\n }\n if (!/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(value)) {\n return t(\"Please enter a valid email\");\n }\n }}}","x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter your email")}}',style:{}}},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Send reset email")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:function(){var e=(0,p.useForm)(),t=(0,r.useAPIClient)(),n=(0,s.dE)().t,o=g(d().useState(!1),2),i=o[0],a=o[1];return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,e.submit()];case 1:r.sent(),a(!0),r.label=2;case 2:return r.trys.push([2,,4,5]),[4,t.auth.lostPassword(e.values)];case 3:return r.sent(),[3,5];case 4:return a(!1),[7];case 5:return m.message.success(n("Reset email sent successfully")),e.reset(),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){h(i,n,o,a,u,"next",e)}function u(e){h(i,n,o,a,u,"throw",e)}a(void 0)})})()},loading:i}}}}}},signUp:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Back to login")}}'}}},scope:{t:t}}):d().createElement(y.Navigate,{to:"/not-found",replace:!0})};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 S(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 P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(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)}}(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.")}()}var O=function(){var e,t=(0,s.dE)().t,n=(0,r.useAPIClient)(),o=P((0,y.useSearchParams)(),1)[0],i=o.get("resetToken"),a=(0,r.useNavigateNoUpdate)(),u=P(d().useState(!1),2),c=u[0],l=u[1],b=o.get("name"),h=(0,v.p)(b);return((0,f.useEffect)(function(){n.auth.checkResetToken({resetToken:i}).then(function(){l(!1)}).catch(function(e){l(!0)})},[]),null==h||null==(e=h.options)?void 0:e.enableResetPassword)?!i||c?d().createElement(m.Result,{status:"403",title:t("Reset link has expired"),extra:d().createElement(m.Button,{type:"primary",onClick:function(){return a("/signin")}},t("Go to login"))}):d().createElement(r.SchemaComponent,{schema:{type:"object",name:"resetPasswordForm","x-component":"FormV2",properties:{password:{type:"string","x-component":"Password",title:'{{t("New password")}}',required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter new password")}}'}},confirmPassword:{type:"string","x-component":"Password",title:'{{t("Confirm password")}}',required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter the same password again")}}'},"x-validator":"{{(value, rules, {form}) => {\n if (!value) {\n return '';\n }\n if (value !== form.values.password) {\n return t(\"The passwords entered twice are inconsistent\");\n }\n }}}"},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Confirm")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:function(){var e=(0,p.useForm)(),t=(0,r.useAPIClient)(),n=(0,s.dE)().t,o=new URLSearchParams(window.location.search).get("resetToken"),i=P(d().useState(!1),2),a=i[0],u=i[1];return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,e.submit()];case 1:r.sent(),u(!0),r.label=2;case 2:var i,a;return r.trys.push([2,,4,5]),[4,t.auth.resetPassword((i=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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.values),a=a={resetToken:o},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(a)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(a,e))}),i))];case 3:return r.sent(),[3,5];case 4:return u(!1),[7];case 5:return m.message.success(n("Password reset successful")),setTimeout(function(){window.location.href="/signin"},1e3),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){S(i,n,o,a,u,"next",e)}function u(e){S(i,n,o,a,u,"throw",e)}a(void 0)})})()},loading:a}}}}}},signUp:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Go to login")}}'}}},scope:{t:t}}):d().createElement(y.Navigate,{to:"/not-found",replace:!0})};function E(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 j(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 T(e,t,n){return(T=C()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&k(o,n.prototype),o}).apply(null,arguments)}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function I(e){var t="function"==typeof Map?new Map:void 0;return(I=function(e){if(null===e||-1===Function.toString.call(e).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,n)}function n(){return T(e,arguments,A(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),k(n,e)})(e)}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(C=function(){return!!e})()}var _=(0,r.lazy)(function(){return n.e("443").then(n.bind(n,862))},"AuthProvider").AuthProvider,F=(0,r.lazy)(function(){return Promise.resolve().then(n.bind(n,751))},"Options","SignInForm","SignUpForm"),R=F.Options,N=F.SignInForm,U=F.SignUpForm,$=(0,r.lazy)(function(){return Promise.resolve().then(n.bind(n,350))},"AuthLayout","SignInPage","SignUpPage"),q=$.AuthLayout,L=$.SignInPage,M=$.SignUpPage,D=(0,r.lazy)(function(){return n.e("611").then(n.bind(n,718))},"Authenticator").Authenticator,V=(0,r.lazy)(function(){return n.e("680").then(n.bind(n,352))},"TokenPolicySettings").TokenPolicySettings,B=(0,r.lazy)(function(){return Promise.resolve().then(n.bind(n,350))},"AuthenticatorsContextProvider","AuthLayout"),K=B.AuthenticatorsContextProvider,z=B.AuthLayout,H=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r,i,a,u;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=A(t),i=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,C()?Reflect.construct(t,r||[],A(this).constructor):t.apply(this,r)),a="authTypes",u=new o.Registry,a in i?Object.defineProperty(i,a,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[a]=u,e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&k(n,e),t=[{key:"registerType",value:function(e,t){this.authTypes.register(e,t)}},{key:"load",value:function(){var e;return(e=function(){var e,t,n;return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){var o,i;return this.app.pluginSettingsManager.add(s.CU,{icon:"LoginOutlined",title:'{{t("Authentication", { ns: "'.concat(s.CU,'" })}}'),aclSnippet:"pm.auth"}),this.app.pluginSettingsManager.add("auth.authenticators",{icon:"LoginOutlined",title:'{{t("Authenticators", { ns: "'.concat(s.CU,'" })}}'),Component:D,aclSnippet:"pm.auth.authenticators",sort:1}),this.router.add("auth",{Component:"AuthLayout"}),this.router.add("auth.signin",{path:"/signin",Component:"SignInPage"}),this.router.add("auth.signup",{path:"/signup",Component:"SignUpPage"}),this.router.add("auth.forgotPassword",{path:"/forgot-password",Component:"ForgotPasswordPage"}),this.router.add("auth.resetPassword",{path:"/reset-password",Component:"ResetPasswordPage"}),this.app.addComponents({AuthLayout:q,SignInPage:L,SignUpPage:M,ForgotPasswordPage:w,ResetPasswordPage:O}),this.app.providers.unshift([_,{}]),this.registerType("Email/Password",{components:{SignInForm:N,SignUpForm:U,AdminSettingsForm:R}}),this.app.pluginSettingsManager.add("security.token-policy",{title:'{{t("Token policy", { ns: "'.concat(s.CU,'" })}}'),Component:V,aclSnippet:"pm.security.token-policy",icon:"ApiOutlined",sort:0}),t=(e=function(e){if(Array.isArray(e))return e}(((o=({app:this.app}).app).apiClient.axios,i=[function(e){var t,n=null==e||null==(t=e.headers)?void 0:t["x-new-token"];return n&&o.apiClient.auth.setToken(n),e},function(e){var t,n,r,i,a,u=null==e||null==(n=e.response)||null==(t=n.headers)?void 0:t["x-new-token"],s=null==e||null==(i=e.response)||null==(r=i.data)?void 0:r.errors,p=Array.isArray(s)?s[0]:null,f=o.router.state.location,d=f.pathname,m=f.search,y=o.router.basename;if(u&&o.apiClient.auth.setToken(u),401===e.status&&(null==p?void 0:p.code)&&c[p.code]&&(o.apiClient.auth.setToken(""),d===o.getHref("signin")&&(null==p?void 0:p.code)!==c.EMPTY_TOKEN&&e.config&&(e.config.skipNotify=!1),(null==p?void 0:p.code)==="USER_HAS_NO_ROLES_ERR"&&(e.config.skipNotify=!0,o.error=p)),401===e.status&&!(null==(a=e.config)?void 0:a.skipAuth)&&(null==p?void 0:p.code)&&c[p.code]){if(!p||(null==p?void 0:p.code)===c.SKIP_TOKEN_RENEW)throw e;var v=o.router.isSkippedAuthCheckRoute(d);if(v&&(e.config.skipNotify=!0),d!==o.getHref("signin")&&!v){var b,h,g=(b=y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new RegExp("^".concat(b.replace(/\/?$/,""),"(\\/|$)")),d.replace(h,"/")||d);l(function(){o.apiClient.auth.setToken(null),o.router.navigate("/signin?redirect=".concat(g).concat(m),{replace:!0})})}}throw e}]))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o=[],i=!0,a=!1;try{for(r=r.call(e);!(i=(t=r.next()).done)&&(o.push(t.value),2!==o.length);i=!0);}catch(e){a=!0,n=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw n}}return o}}(i)||function(e){if(e){if("string"==typeof e)return E(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return E(e,2)}}(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.")}())[0],n=e[1],this.app.apiClient.axios.interceptors.response.handlers.unshift({fulfilled:t,rejected:n,synchronous:!1,runWhen:null}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){j(i,r,o,a,u,"next",e)}function u(e){j(i,r,o,a,u,"throw",e)}a(void 0)})}).call(this)}}],function(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)}}(n.prototype,t),n}(I(r.Plugin)),G=H},706:function(e,t,n){"use strict";n.d(t,{m:function(){return o},p:function(){return i}});var r=n(155),o=(0,r.createContext)([]);o.displayName="AuthenticatorsContext";var i=function(e){return(0,r.useContext)(o).find(function(t){return t.name===e})}},751:function(e,t,n){"use strict";n.r(t),n.d(t,{Options:function(){return F},SignInForm:function(){return y},SignUpForm:function(){return O},useRedirect:function(){return f},useSignUp:function(){return P},useSignIn:function(){return d}});var r=n(342),o=n(155),i=n.n(o),a=n(872),u=n(350),c=n(442),l=n(230);function s(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 p(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 f(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/admin",n=(0,c.useNavigate)(),r=(function(e){if(Array.isArray(e))return e}(e=(0,c.useSearchParams)())||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o=[],i=!0,a=!1;try{for(r=r.call(e);!(i=(t=r.next()).done)&&(o.push(t.value),1!==o.length);i=!0);}catch(e){a=!0,n=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw n}}return o}}(e)||function(e){if(e){if("string"==typeof e)return s(e,1);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,1)}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return(0,o.useCallback)(function(){var e=r.get("redirect")||t;!function(e){try{var t=new URL(e,window.location.origin);return/(?:^|\/)v2(?:\/|$)/.test(t.pathname)}catch(t){return/(?:^|\/)v2(?:\/|$)/.test(e)}}(e)?n(e,{replace:!0}):window.location.replace(e)},[n,t,r])}var d=function(e){var t=(0,l.useForm)(),n=(0,r.useAPIClient)(),o=f(),i=(0,r.useCurrentUserContext)().refreshAsync;return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,t.submit()];case 1:return r.sent(),[4,n.auth.signIn(t.values,e)];case 2:return r.sent(),[4,i()];case 3:return r.sent(),o(),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)})})()}}},m=function(e){var t=e.showForgotPassword;return{type:"object",name:"passwordForm","x-component":"FormV2",properties:{account:{type:"string","x-component":"Input","x-validator":'{{(value) => {\n if (!value) {\n return t("Please enter your username or email");\n }\n if (value.includes(\'@\')) {\n if (!/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(value)) {\n return t("Please enter a valid email");\n }\n } else {\n return /^[^@<>"\'/]{1,50}$/.test(value) || t("Please enter a valid username");\n }\n }}}',"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Username/Email")}}',style:{}}},password:{type:"string","x-component":"Password",required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Password")}}',style:{},showForgotPassword:t}},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Sign in")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:"{{ useBasicSignIn }}",style:{width:"100%"}}}}},links:{type:"void","x-component":"div","x-component-props":{style:{display:"flex",justifyContent:"space-between"}},properties:{signUp:{type:"void","x-component":"Link","x-component-props":{to:"{{ signUpLink }}"},"x-content":'{{t("Create an account")}}',"x-visible":"{{ allowSignUp }}"},forgotPassword:{type:"void","x-component":"Link","x-component-props":{to:'{{"/forgot-password?name=" + authenticator.name}}'},"x-content":'{{t("Forgot password")}}',"x-visible":t}}}}}},y=function(e){var t=(0,a.dE)().t,n=e.authenticator,o=n.authType,c=n.name,l=n.options,s=!!(0,u.useSignUpForms)()[o]&&null!=l&&!!l.allowSignUp,p="/signup?name=".concat(c);return i().createElement(r.SchemaComponent,{schema:m({showForgotPassword:!!(null==l?void 0:l.enableResetPassword)}),scope:{useBasicSignIn:function(){return d(c)},allowSignUp:s,signUpLink:p,t:t,authenticator:n}})},v=n(166),b=n(59),h=n(953),g=n(706);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 x(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var P=function(e){var t=(0,c.useNavigate)(),n=(0,l.useForm)(),o=(0,r.useAPIClient)(),i=(0,h.useTranslation)().t;return{run:function(){var r;return(r=function(){var r;return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return[4,n.submit()];case 1:return a.sent(),[4,o.auth.signUp(n.values,null==e?void 0:e.authenticator)];case 2:return a.sent(),b.message.success((null==e||null==(r=e.message)?void 0:r.success)||i("Sign up successfully, and automatically jump to the sign in page")),setTimeout(function(){t("/signin")},2e3),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){w(i,n,o,a,u,"next",e)}function u(e){w(i,n,o,a,u,"throw",e)}a(void 0)})})()}}},O=function(e){var t=e.authenticatorName,n=(0,a.dE)().t,u=(0,h.useTranslation)("lm-collections").t,s=(0,g.p)(t).options,p=s.signupForm,f=(0,o.useMemo)(function(){return p.filter(function(e){return e.show}).reduce(function(e,t){var r=S(x({},t.uiSchema),{title:t.uiSchema.title?u(l.Schema.compile(t.uiSchema.title,{t:n})):""});return e[t.field]=S(x({},r),{required:t.required,"x-decorator":"FormItem"}),e},{})},[p]);if(!(null==s?void 0:s.allowSignUp))return i().createElement(c.Navigate,{to:"/not-found",replace:!0});var d={type:"object",name:(0,v.uid)(),"x-component":"FormV2",properties:S(x({},f),{password:{type:"string",required:!0,title:'{{t("Password")}}',"x-component":"Password","x-decorator":"FormItem","x-validator":{password:!0},"x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".confirm_password"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},confirm_password:{type:"string",required:!0,"x-component":"Password","x-decorator":"FormItem",title:'{{t("Confirm password")}}',"x-validator":{password:!0},"x-component-props":{style:{}},"x-reactions":[{dependencies:[".password"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Sign up")}}',type:"void","x-component":"Action","x-component-props":{block:!0,type:"primary",htmlType:"submit",useAction:"{{ useBasicSignUp }}",style:{width:"100%"}}}}},link:{type:"void","x-component":"div",properties:{link:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Log in with an existing account")}}'}}}})};return i().createElement(r.SchemaComponent,{schema:d,scope:{useBasicSignUp:function(){return P({authenticator:t})},t:n}})},E=n(418);function j(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 T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(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){T(e,t,n[t])})}return e}function k(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function I(e){return function(e){if(Array.isArray(e))return j(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return j(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return j(e,void 0)}}(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.")}()}var C=function(){var e=(0,r.useRecord)(),t=(0,r.useCollectionManager)().getCollection("users").fields.filter(function(e){var t;return!e.hidden&&!e.target&&e.interface&&!(null==(t=e.uiSchema)?void 0:t["x-read-pretty"])}),n=t.map(function(e){var t;return{value:e.name,label:null==(t=e.uiSchema)?void 0:t.title}}),u=(0,o.useMemo)(function(){var n=((null==(u=e.options)||null==(a=u.public)?void 0:a.signupForm)||[]).filter(function(e){return t.find(function(t){return t.name===e.field})}),r=!0,o=!1,i=void 0;try{for(var a,u,c,l=t[Symbol.iterator]();!(r=(c=l.next()).done);r=!0)!function(){var e=c.value;n.find(function(t){return t.field===e.name})||n.push({field:e.name,show:"username"===e.name,required:"username"===e.name})}()}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n},[t,e]);return(0,o.useEffect)(function(){var t;e.options=k(A({},e.options),{public:k(A({},null==(t=e.options)?void 0:t.public),{signupForm:u})})},[e,u]),i().createElement(r.SchemaComponent,{components:{ArrayTable:E.ArrayTable},schema:{type:"void",properties:{"public.signupForm":{title:'{{t("Sign up form")}}',type:"array","x-decorator":"FormItem","x-component":"ArrayTable","x-component-props":{bordered:!1},"x-validator":"{{ (value) => {\n const check = value?.some((item) => ['username', 'email'].includes(item.field) && item.show && item.required);\n if (!check) {\n return t('At least one of the username or email fields is required');\n }\n} }}",default:u,items:{type:"object","x-decorator":"ArrayItems.Item",properties:{column0:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:20,align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},column1:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:100,title:(0,a.vV)("Field")},properties:{field:{type:"string","x-decorator":"FormItem","x-component":"Select",enum:n,"x-read-pretty":!0}}},column2:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:80,title:(0,a.vV)("Show")},properties:{show:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:[".required"],fulfill:{state:{value:"{{ $deps[0] || $self.value }}"}}}}}},column3:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:80,title:(0,a.vV)("Required")},properties:{required:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:[".show"],fulfill:{state:{value:"{{ !$deps[0] ? false : $self.value }}"}}}}}}}}}}}})},_=function(){var e=(0,a.dE)().t;return[(0,r.useGlobalVariable)("$env"),(0,r.useCurrentUserVariable)({maxDepth:1}).currentUserSettings,(0,r.useSystemSettingsVariable)().systemSettings,{value:"$resetLink",label:e("Reset password link")},{value:"$resetLinkExpiration",label:e("Reset link expiration (minutes)")}].filter(Boolean)},F=function(){var e=(0,a.dE)().t,t=_(),n=i().createElement("span",null,e("No notification channels found. Please "),i().createElement(c.Link,{to:"/admin/settings/notification-manager/channels"},e("add one first")),".");return i().createElement(r.SchemaComponent,{scope:{t:e},components:{Alert:b.Alert,SignupFormSettings:C,FormTab:E.FormTab},schema:{type:"object",properties:{notice:{type:"void","x-decorator":"FormItem","x-component":"Alert","x-component-props":{showIcon:!0,message:'{{t("The authentication allows users to sign in via username or email.")}}'}},collapse:{type:"void","x-component":"FormTab",properties:{basic:{type:"void","x-component":"FormTab.TabPane","x-component-props":{tab:(0,a.vV)("Sign up settings")},properties:T({"public.allowSignUp":{"x-decorator":"FormItem",type:"boolean",title:'{{t("Allow to sign up")}}',"x-component":"Checkbox",default:!0}},(0,v.uid)(),{type:"void","x-component":"SignupFormSettings"})},forgetPassword:{type:"void","x-component":"FormTab.TabPane","x-component-props":{tab:(0,a.vV)("Forgot password")},properties:{"public.enableResetPassword":{"x-decorator":"FormItem",type:"boolean",title:'{{t("Enable forget password")}}',"x-component":"Checkbox",default:!1},divider1:{type:"void","x-component":function(){return i().createElement(b.Divider,{orientation:"left",orientationMargin:"0"},e("1. Select notification channel"))},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}]},notificationChannel:{type:"string",title:'{{t("Notification channel (Email)")}}',required:!0,"x-decorator":"FormItem","x-component":"RemoteSelect","x-component-props":{multiple:!1,manual:!1,fieldNames:{label:"title",value:"name"},service:{resource:"notificationChannels",action:"list",params:{filter:{notificationType:"email"}}},notFoundContent:n},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}],description:'{{t("The notification channel used to send the reset password email, only support email channel")}}'},divider2:{type:"void","x-component":function(){return i().createElement(b.Divider,{orientation:"left",orientationMargin:"0"},e("2. Configure reset email"))},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}]},emailSubject:{type:"string",required:!0,title:'{{t("Subject")}}',"x-decorator":"FormItem","x-component":"Variable.TextArea","x-component-props":{scope:I(t)},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:'{{t("defaultResetPasswordEmailSubject")}}'}}}],default:'{{t("defaultResetPasswordEmailSubject")}}'},emailContentType:{type:"string",title:'{{t("Content type")}}',required:!0,"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:"HTML",value:"html"},{label:'{{t("Plain text")}}',value:"text"}],default:"html","x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:"html"}}}]},emailContentHTML:{type:"string",required:!0,title:'{{t("Content")}}',"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:I(t),placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:[".public.enableResetPassword",".emailContentType"],fulfill:{state:{visible:'{{$deps[0] && $deps[1] === "html"}}',initialValue:'{{t("defaultResetPasswordEmailContentHTML")}}'}}}],default:'{{t("defaultResetPasswordEmailContentHTML")}}'},emailContentText:{type:"string",required:!0,title:'{{t("Content")}}',"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:I(t),autoSize:{minRows:10}},"x-reactions":[{dependencies:[".public.enableResetPassword",".emailContentType"],fulfill:{state:{visible:'{{$deps[0] && $deps[1] === "text"}}',initialValue:'{{t("defaultResetPasswordEmailContentText")}}'}}}],default:'{{t("defaultResetPasswordEmailContentText")}}'},resetTokenExpiresIn:{type:"number",title:'{{t("Reset link expiration")}}',"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{suffix:e("Minutes"),style:{width:"100%"}},default:120,required:!0,"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:120}}}]}}}}}}}})}},872:function(e,t,n){"use strict";n.d(t,{CU:function(){return i},dE:function(){return a},vV:function(){return u}});var r=n(953),o=n(342),i="auth";function a(){return(0,r.useTranslation)([i,"client"],{nsMode:"fallback"})}function u(e){return o.i18n.t(e,{ns:[i,"client"],nsMode:"fallback"})}},350:function(e,t,n){"use strict";n.r(t),n.d(t,{AuthLayout:function(){return d},useSignInButtons:function(){return P},SignUpPage:function(){return I},useSignInForms:function(){return S},useSignUpForms:function(){return k},SignupPageContext:function(){return T},AuthenticatorsContextProvider:function(){return f},SignupPageProvider:function(){return A},SignInPage:function(){return O}});var r=n(477),o=n(342),i=n(59),a=n(155),u=n.n(a),c=n(442),l=n(953),s=n(706);function p(){var e,t,n=(e=["\n position: absolute;\n bottom: 0;\n width: 100%;\n left: 0;\n text-align: center;\n padding-bottom: 24px;\n background-color: ",";\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return p=function(){return n},n}var f=function(e){var t=e.children,n=(0,o.useAPIClient)(),r=(0,o.useRequest)(function(){return n.resource("authenticators").publicList().then(function(e){var t;return(null==e||null==(t=e.data)?void 0:t.data)||[]})}),a=r.data,c=r.error;if(r.loading)return u().createElement("div",{style:{textAlign:"center",marginTop:20}},u().createElement(i.Spin,null));if(c)throw c;return u().createElement(s.m.Provider,{value:void 0===a?[]:a},t)};function d(){var e,t=((0,o.useSystemSettings)()||{}).data,n=(0,o.useToken)().token,i=(0,l.useTranslation)("lm-collections").t;return u().createElement("div",{style:{maxWidth:320,margin:"0 auto",paddingTop:"20vh",paddingBottom:"20vh"}},u().createElement("div",{style:{position:"fixed",top:"2em",right:"2em"}},u().createElement(o.SwitchLanguage,null)),u().createElement("h1",{style:{textAlign:"center"}},u().createElement(o.ReadPretty.TextArea,{value:i(null==t||null==(e=t.data)?void 0:e.title)})),u().createElement(f,null,u().createElement(c.Outlet,null)),u().createElement("div",{className:(0,r.css)(p(),n.colorBgContainer)},u().createElement(o.PoweredBy,null)))}var m=n(574),y=n(872),v=n(230);function b(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 h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(e,t){if(e){if("string"==typeof e)return b(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 b(e,t)}}(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 g(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function w(){var e=g(["\n display: flex;\n "]);return w=function(){return e},e}function x(){var e=g(["\n display: flex;\n "]);return x=function(){return e},e}var S=function(){var e=(0,o.usePlugin)(m.default).authTypes.getEntities(),t={},n=!0,r=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var c,l=h(a.value,2),s=l[0],p=l[1];(null==(c=p.components)?void 0:c.SignInForm)&&(t[s]=p.components.SignInForm)}}catch(e){r=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(r)throw i}}return t},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,o.usePlugin)(m.default).authTypes.getEntities(),n={},r=!0,i=!1,a=void 0;try{for(var c,l=t[Symbol.iterator]();!(r=(c=l.next()).done);r=!0){var s,p=h(c.value,2),f=p[0],d=p[1];(null==(s=d.components)?void 0:s.SignInButton)&&(n[f]=d.components.SignInButton)}}catch(e){i=!0,a=e}finally{try{r||null==l.return||l.return()}finally{if(i)throw a}}var y=Object.keys(n);return e.filter(function(e){return y.includes(e.authType)}).map(function(e,t){return u().createElement(n[e.authType],{key:t,authenticator:e})})},O=function(){var e=(0,y.dE)().t;(0,o.useCurrentDocumentTitle)("Signin"),(0,o.useViewport)();var t=S(),n=(0,a.useContext)(s.m),c=P(n);if(!n.length)return u().createElement("div",{style:{color:"#ccc"}},e("No authentication methods available."));var l=n.map(function(n){var r=t[n.authType];if(r){var o="".concat(e("Sign-in")," (").concat(v.Schema.compile(n.authTypeTitle||n.authType,{t:e}),")");return 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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({component:(0,a.createElement)(r,{authenticator:n}),tabTitle:n.title||o},n)}}).filter(function(e){return e});return u().createElement(i.Space,{direction:"vertical",className:(0,r.css)(w())},l.length>1?u().createElement(i.Tabs,{items:l.map(function(e){return{label:e.tabTitle,key:e.name,children:e.component}})}):l.length?u().createElement("div",null,l[0].component):u().createElement(u().Fragment,null),u().createElement(i.Space,{direction:"vertical",className:(0,r.css)(x())},c))};function E(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 j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(e,t){if(e){if("string"==typeof e)return E(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 E(e,t)}}(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.")}()}var T=(0,a.createContext)({});T.displayName="SignupPageContext";var A=function(e){var t=(0,a.useContext)(T);return t[e.authType]={component:e.component},u().createElement(T.Provider,{value:t},e.children)},k=function(){var e=(0,o.usePlugin)(m.default).authTypes.getEntities(),t={},n=!0,r=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var c,l=j(a.value,2),s=l[0],p=l[1];(null==(c=p.components)?void 0:c.SignUpForm)&&(t[s]=p.components.SignUpForm)}}catch(e){r=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(r)throw i}}return t},I=function(){(0,o.useViewport)(),(0,o.useCurrentDocumentTitle)("Signup");var e=k(),t=j((0,c.useSearchParams)(),1)[0].get("name"),n=((0,s.p)(t)||{}).authType;return e[n]?(0,a.createElement)(e[n],{authenticatorName:t}):u().createElement(c.Navigate,{to:"/not-found",replace:!0})}},375:function(e){"use strict";e.exports=i},477:function(e){"use strict";e.exports=t},418:function(e){"use strict";e.exports=r},452:function(e){"use strict";e.exports=s},230:function(e){"use strict";e.exports=o},166:function(e){"use strict";e.exports=a},342:function(e){"use strict";e.exports=l},768:function(e){"use strict";e.exports=p},59:function(e){"use strict";e.exports=c},155:function(e){"use strict";e.exports=u},953:function(t){"use strict";t.exports=e},442:function(e){"use strict";e.exports=n},971:function(e,t,n){"use strict";var r="",o="u">typeof document?document.currentScript:null;if(o&&o.src){var i=o.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");i.indexOf("/static/plugins/@nocobase/plugin-auth/dist/client/")>=0&&(r=i.replace(/\/[^\/]+$/,"/"))}if(!r){var a=window.__webpack_public_path__||"";a&&("/"!==a.charAt(a.length-1)&&(a+="/"),r=a+"static/plugins/@nocobase/plugin-auth/dist/client/")}if(!r){var u=window.__nocobase_modern_client_prefix__||"v",c="/"+(u=String(u).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(r=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var l=window.location.pathname||"/",s=l.indexOf(c);r=s>=0?l.slice(0,s+1):"/"}r&&(r=r.replace(RegExp("/"+u+"/?$"),"/")),r||(r="/"),"/"!==r.charAt(r.length-1)&&(r+="/"),r+="static/plugins/@nocobase/plugin-auth/dist/client/"}n.p=r}},v={};function b(e){var t=v[e];if(void 0!==t)return t.exports;var n=v[e]={exports:{}};return y[e](n,n.exports,b),n.exports}b.m=y,b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,{a:t}),t},b.d=function(e,t){for(var n in t)b.o(t,n)&&!b.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce(function(t,n){return b.f[n](e,t),t},[]))},b.u=function(e){return""+e+"."+({443:"aa711879b4855b88",611:"bf903b6a5490becc",680:"8758971b4dd75b23"})[e]+".js"},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},h={},b.l=function(e,t,n,r){if(h[e])return void h[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),u=0;u<a.length;u++){var c=a[u];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="@nocobase/plugin-auth:"+n){o=c;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.setAttribute("data-rspack","@nocobase/plugin-auth:"+n),o.src=e),h[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=h[e];if(delete h[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},b.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.g.importScripts&&(g=b.g.location+"");var h,g,w=b.g.document;if(!g&&w&&(w.currentScript&&"SCRIPT"===w.currentScript.tagName.toUpperCase()&&(g=w.currentScript.src),!g)){var x=w.getElementsByTagName("script");if(x.length)for(var S=x.length-1;S>-1&&(!g||!/^http(s?):/.test(g));)g=x[S--].src}if(!g)throw Error("Automatic publicPath is not supported in this browser");return b.p=g.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),f={889:0},b.f.j=function(e,t){var n=b.o(f,e)?f[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=f[e]=[t,r]});t.push(n[2]=r);var o=b.p+b.u(e),i=Error();b.l(o,function(t){if(b.o(f,e)&&(0!==(n=f[e])&&(f[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},d=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],u=0;if(o.some(function(e){return 0!==f[e]})){for(n in i)b.o(i,n)&&(b.m[n]=i[n]);a&&a(b)}for(e&&e(t);u<o.length;u++)r=o[u],b.o(f,r)&&f[r]&&f[r][0](),f[r]=0},(m=self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).forEach(d.bind(null,0)),m.push=d.bind(null,m.push.bind(m)),b(971),b(574)}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@emotion/css"),require("react-router-dom"),require("@formily/antd-v5"),require("@formily/react"),require("@ant-design/icons"),require("@formily/shared"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/core"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-auth",["react-i18next","@emotion/css","react-router-dom","@formily/antd-v5","@formily/react","@ant-design/icons","@formily/shared","react","antd","@nocobase/client","@formily/core","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-auth"]=t(require("react-i18next"),require("@emotion/css"),require("react-router-dom"),require("@formily/antd-v5"),require("@formily/react"),require("@ant-design/icons"),require("@formily/shared"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/core"),require("@nocobase/utils/client")):e["@nocobase/plugin-auth"]=t(e["react-i18next"],e["@emotion/css"],e["react-router-dom"],e["@formily/antd-v5"],e["@formily/react"],e["@ant-design/icons"],e["@formily/shared"],e.react,e.antd,e["@nocobase/client"],e["@formily/core"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,i,a,u,c,l,s,p){return function(){var f,d,m,y={432:function(e,t,n){e.exports=n(36).Symbol},77:function(e,t,n){var r=n(432),o=n(444),i=n(371),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)}},625:function(e,t,n){var r=n(531),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},565:function(e,t,n){e.exports="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g},444:function(e,t,n){var r=n(432),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}},371:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},36:function(e,t,n){var r=n(565),o="object"==typeof self&&self&&self.Object===Object&&self;e.exports=r||o||Function("return this")()},531:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},738:function(e,t,n){var r=n(130),o=n(593),i=n(909),a=Math.max,u=Math.min;e.exports=function(e,t,n){var c,l,s,p,f,d,m=0,y=!1,v=!1,b=!0;if("function"!=typeof e)throw TypeError("Expected a function");function h(t){var n=c,r=l;return c=l=void 0,m=t,p=e.apply(r,n)}function g(e){var n=e-d,r=e-m;return void 0===d||n>=t||n<0||v&&r>=s}function w(){var e,n,r,i=o();if(g(i))return x(i);f=setTimeout(w,(e=i-d,n=i-m,r=t-e,v?u(r,s-n):r))}function x(e){return(f=void 0,b&&c)?h(e):(c=l=void 0,p)}function S(){var e,n=o(),r=g(n);if(c=arguments,l=this,d=n,r){if(void 0===f)return m=e=d,f=setTimeout(w,t),y?h(e):p;if(v)return clearTimeout(f),f=setTimeout(w,t),h(d)}return void 0===f&&(f=setTimeout(w,t)),p}return t=i(t)||0,r(n)&&(y=!!n.leading,s=(v="maxWait"in n)?a(i(n.maxWait)||0,t):s,b="trailing"in n?!!n.trailing:b),S.cancel=function(){void 0!==f&&clearTimeout(f),m=0,c=d=l=f=void 0},S.flush=function(){return void 0===f?p:x(o())},S}},130:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},189:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},733:function(e,t,n){var r=n(77),o=n(189);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},593:function(e,t,n){var r=n(36);e.exports=function(){return r.Date.now()}},909:function(e,t,n){var r=n(625),o=n(130),i=n(733),a=0/0,u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,s=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return a;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=c.test(e);return n||l.test(e)?s(e.slice(2),n?2:8):u.test(e)?a:+e}},574:function(e,t,n){"use strict";n.r(t),n.d(t,{AuthLayout:function(){return z},default:function(){return G},useRedirect:function(){return i.useRedirect},PluginAuthClient:function(){return H},AuthenticatorsContext:function(){return v.m},useAuthenticator:function(){return v.p},AuthenticatorsContextProvider:function(){return K},useSignIn:function(){return i.useSignIn}});var r=n(342),o=n(768),i=n(751),a=n(738),u=n.n(a),c={EMPTY_TOKEN:"EMPTY_TOKEN",EXPIRED_TOKEN:"EXPIRED_TOKEN",INVALID_TOKEN:"INVALID_TOKEN",TOKEN_RENEW_FAILED:"TOKEN_RENEW_FAILED",BLOCKED_TOKEN:"BLOCKED_TOKEN",EXPIRED_SESSION:"EXPIRED_SESSION",NOT_EXIST_USER:"NOT_EXIST_USER",SKIP_TOKEN_RENEW:"SKIP_TOKEN_RENEW",USER_HAS_NO_ROLES_ERR:"USER_HAS_NO_ROLES_ERR"},l=u()(function(e){e()},3e3,{leading:!0,trailing:!1}),s=n(872),p=n(230),f=n(155),d=n.n(f),m=n(59),y=n(442),v=n(706);function b(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 h(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 g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(e,t){if(e){if("string"==typeof e)return b(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 b(e,t)}}(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.")}()}var w=function(){var e,t=(0,s.dE)().t,n=g((0,y.useSearchParams)(),1)[0].get("name"),o=(0,v.p)(n);return(null==o||null==(e=o.options)?void 0:e.enableResetPassword)?d().createElement(r.SchemaComponent,{schema:{type:"object",name:"forgotPasswordForm","x-component":"FormV2",properties:{email:{type:"string","x-component":"Input",title:'{{t("Reset password")}}',required:!0,"x-validator":"{{(value) => {\n if (!value) {\n return '';\n }\n if (!/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(value)) {\n return t(\"Please enter a valid email\");\n }\n }}}","x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter your email")}}',style:{}}},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Send reset email")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:function(){var e=(0,p.useForm)(),t=(0,r.useAPIClient)(),n=(0,s.dE)().t,o=g(d().useState(!1),2),i=o[0],a=o[1];return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,e.submit()];case 1:r.sent(),a(!0),r.label=2;case 2:return r.trys.push([2,,4,5]),[4,t.auth.lostPassword(e.values)];case 3:return r.sent(),[3,5];case 4:return a(!1),[7];case 5:return m.message.success(n("Reset email sent successfully")),e.reset(),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){h(i,n,o,a,u,"next",e)}function u(e){h(i,n,o,a,u,"throw",e)}a(void 0)})})()},loading:i}}}}}},signUp:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Back to login")}}'}}},scope:{t:t}}):d().createElement(y.Navigate,{to:"/not-found",replace:!0})};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 S(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 P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(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)}}(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.")}()}var O=function(){var e,t=(0,s.dE)().t,n=(0,r.useAPIClient)(),o=P((0,y.useSearchParams)(),1)[0],i=o.get("resetToken"),a=(0,r.useNavigateNoUpdate)(),u=P(d().useState(!1),2),c=u[0],l=u[1],b=o.get("name"),h=(0,v.p)(b);return((0,f.useEffect)(function(){n.auth.checkResetToken({resetToken:i}).then(function(){l(!1)}).catch(function(e){l(!0)})},[]),null==h||null==(e=h.options)?void 0:e.enableResetPassword)?!i||c?d().createElement(m.Result,{status:"403",title:t("Reset link has expired"),extra:d().createElement(m.Button,{type:"primary",onClick:function(){return a("/signin")}},t("Go to login"))}):d().createElement(r.SchemaComponent,{schema:{type:"object",name:"resetPasswordForm","x-component":"FormV2",properties:{password:{type:"string","x-component":"Password",title:'{{t("New password")}}',required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter new password")}}'}},confirmPassword:{type:"string","x-component":"Password",title:'{{t("Confirm password")}}',required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter the same password again")}}'},"x-validator":"{{(value, rules, {form}) => {\n if (!value) {\n return '';\n }\n if (value !== form.values.password) {\n return t(\"The passwords entered twice are inconsistent\");\n }\n }}}"},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Confirm")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:function(){var e=(0,p.useForm)(),t=(0,r.useAPIClient)(),n=(0,s.dE)().t,o=new URLSearchParams(window.location.search).get("resetToken"),i=P(d().useState(!1),2),a=i[0],u=i[1];return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,e.submit()];case 1:r.sent(),u(!0),r.label=2;case 2:var i,a;return r.trys.push([2,,4,5]),[4,t.auth.resetPassword((i=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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.values),a=a={resetToken:o},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(a)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(a,e))}),i))];case 3:return r.sent(),[3,5];case 4:return u(!1),[7];case 5:return m.message.success(n("Password reset successful")),setTimeout(function(){window.location.href="/signin"},1e3),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){S(i,n,o,a,u,"next",e)}function u(e){S(i,n,o,a,u,"throw",e)}a(void 0)})})()},loading:a}}}}}},signUp:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Go to login")}}'}}},scope:{t:t}}):d().createElement(y.Navigate,{to:"/not-found",replace:!0})};function E(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 j(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 T(e,t,n){return(T=I()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&k(o,n.prototype),o}).apply(null,arguments)}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e){var t="function"==typeof Map?new Map:void 0;return(C=function(e){if(null===e||-1===Function.toString.call(e).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,n)}function n(){return T(e,arguments,A(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),k(n,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}var _=(0,r.lazy)(function(){return n.e("443").then(n.bind(n,862))},"AuthProvider").AuthProvider,F=(0,r.lazy)(function(){return Promise.resolve().then(n.bind(n,751))},"Options","SignInForm","SignUpForm"),R=F.Options,N=F.SignInForm,U=F.SignUpForm,$=(0,r.lazy)(function(){return Promise.resolve().then(n.bind(n,350))},"AuthLayout","SignInPage","SignUpPage"),q=$.AuthLayout,L=$.SignInPage,M=$.SignUpPage,D=(0,r.lazy)(function(){return n.e("611").then(n.bind(n,718))},"Authenticator").Authenticator,V=(0,r.lazy)(function(){return n.e("680").then(n.bind(n,352))},"TokenPolicySettings").TokenPolicySettings,B=(0,r.lazy)(function(){return Promise.resolve().then(n.bind(n,350))},"AuthenticatorsContextProvider","AuthLayout"),K=B.AuthenticatorsContextProvider,z=B.AuthLayout,H=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r,i,a,u;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=A(t),i=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,I()?Reflect.construct(t,r||[],A(this).constructor):t.apply(this,r)),a="authTypes",u=new o.Registry,a in i?Object.defineProperty(i,a,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[a]=u,e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&k(n,e),t=[{key:"registerType",value:function(e,t){this.authTypes.register(e,t)}},{key:"load",value:function(){var e;return(e=function(){var e,t,n;return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){var o,i;return this.app.pluginSettingsManager.add(s.CU,{icon:"LoginOutlined",title:'{{t("Authentication", { ns: "'.concat(s.CU,'" })}}'),aclSnippet:"pm.auth"}),this.app.pluginSettingsManager.add("auth.authenticators",{icon:"LoginOutlined",title:'{{t("Authenticators", { ns: "'.concat(s.CU,'" })}}'),Component:D,aclSnippet:"pm.auth.authenticators",sort:1}),this.router.add("auth",{Component:"AuthLayout"}),this.router.add("auth.signin",{path:"/signin",Component:"SignInPage"}),this.router.add("auth.signup",{path:"/signup",skipAuthCheck:!0,Component:"SignUpPage"}),this.router.add("auth.forgotPassword",{path:"/forgot-password",skipAuthCheck:!0,Component:"ForgotPasswordPage"}),this.router.add("auth.resetPassword",{path:"/reset-password",skipAuthCheck:!0,Component:"ResetPasswordPage"}),this.app.addComponents({AuthLayout:q,SignInPage:L,SignUpPage:M,ForgotPasswordPage:w,ResetPasswordPage:O}),this.app.providers.unshift([_,{}]),this.registerType("Email/Password",{components:{SignInForm:N,SignUpForm:U,AdminSettingsForm:R}}),this.app.pluginSettingsManager.add("security.token-policy",{title:'{{t("Token policy", { ns: "'.concat(s.CU,'" })}}'),Component:V,aclSnippet:"pm.security.token-policy",icon:"ApiOutlined",sort:0}),t=(e=function(e){if(Array.isArray(e))return e}(((o=({app:this.app}).app).apiClient.axios,i=[function(e){var t,n=null==e||null==(t=e.headers)?void 0:t["x-new-token"];return n&&o.apiClient.auth.setToken(n),e},function(e){var t,n,r,i,a,u=null==e||null==(n=e.response)||null==(t=n.headers)?void 0:t["x-new-token"],s=null==e||null==(i=e.response)||null==(r=i.data)?void 0:r.errors,p=Array.isArray(s)?s[0]:null,f=o.router.state.location,d=f.pathname,m=f.search,y=o.router.basename;if(u&&o.apiClient.auth.setToken(u),401===e.status&&(null==p?void 0:p.code)&&c[p.code]&&(o.apiClient.auth.setToken(""),d===o.getHref("signin")&&(null==p?void 0:p.code)!==c.EMPTY_TOKEN&&e.config&&(e.config.skipNotify=!1),(null==p?void 0:p.code)==="USER_HAS_NO_ROLES_ERR"&&(e.config.skipNotify=!0,o.error=p)),401===e.status&&!(null==(a=e.config)?void 0:a.skipAuth)&&(null==p?void 0:p.code)&&c[p.code]){if(!p||(null==p?void 0:p.code)===c.SKIP_TOKEN_RENEW)throw e;var v=o.router.isSkippedAuthCheckRoute(d);if(v&&(e.config.skipNotify=!0),d!==o.getHref("signin")&&!v){var b,h,g=(b=y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new RegExp("^".concat(b.replace(/\/?$/,""),"(\\/|$)")),d.replace(h,"/")||d);l(function(){o.apiClient.auth.setToken(null),o.router.navigate("/signin?redirect=".concat(g).concat(m),{replace:!0})})}}throw e}]))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o=[],i=!0,a=!1;try{for(r=r.call(e);!(i=(t=r.next()).done)&&(o.push(t.value),2!==o.length);i=!0);}catch(e){a=!0,n=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw n}}return o}}(i)||function(e){if(e){if("string"==typeof e)return E(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return E(e,2)}}(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.")}())[0],n=e[1],this.app.apiClient.axios.interceptors.response.handlers.unshift({fulfilled:t,rejected:n,synchronous:!1,runWhen:null}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){j(i,r,o,a,u,"next",e)}function u(e){j(i,r,o,a,u,"throw",e)}a(void 0)})}).call(this)}}],function(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)}}(n.prototype,t),n}(C(r.Plugin)),G=H},706:function(e,t,n){"use strict";n.d(t,{m:function(){return o},p:function(){return i}});var r=n(155),o=(0,r.createContext)([]);o.displayName="AuthenticatorsContext";var i=function(e){return(0,r.useContext)(o).find(function(t){return t.name===e})}},751:function(e,t,n){"use strict";n.r(t),n.d(t,{Options:function(){return F},SignInForm:function(){return y},SignUpForm:function(){return O},useRedirect:function(){return f},useSignUp:function(){return P},useSignIn:function(){return d}});var r=n(342),o=n(155),i=n.n(o),a=n(872),u=n(350),c=n(442),l=n(230);function s(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 p(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 f(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/admin",n=(0,c.useNavigate)(),r=(function(e){if(Array.isArray(e))return e}(e=(0,c.useSearchParams)())||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o=[],i=!0,a=!1;try{for(r=r.call(e);!(i=(t=r.next()).done)&&(o.push(t.value),1!==o.length);i=!0);}catch(e){a=!0,n=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw n}}return o}}(e)||function(e){if(e){if("string"==typeof e)return s(e,1);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,1)}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return(0,o.useCallback)(function(){var e=r.get("redirect")||t;!function(e){try{var t=new URL(e,window.location.origin);return/(?:^|\/)v2(?:\/|$)/.test(t.pathname)}catch(t){return/(?:^|\/)v2(?:\/|$)/.test(e)}}(e)?n(e,{replace:!0}):window.location.replace(e)},[n,t,r])}var d=function(e){var t=(0,l.useForm)(),n=(0,r.useAPIClient)(),o=f(),i=(0,r.useCurrentUserContext)().refreshAsync;return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,t.submit()];case 1:return r.sent(),[4,n.auth.signIn(t.values,e)];case 2:return r.sent(),[4,i()];case 3:return r.sent(),o(),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)})})()}}},m=function(e){var t=e.showForgotPassword;return{type:"object",name:"passwordForm","x-component":"FormV2",properties:{account:{type:"string","x-component":"Input","x-validator":'{{(value) => {\n if (!value) {\n return t("Please enter your username or email");\n }\n if (value.includes(\'@\')) {\n if (!/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(value)) {\n return t("Please enter a valid email");\n }\n } else {\n return /^[^@<>"\'/]{1,50}$/.test(value) || t("Please enter a valid username");\n }\n }}}',"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Username/Email")}}',style:{}}},password:{type:"string","x-component":"Password",required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Password")}}',style:{},showForgotPassword:t}},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Sign in")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:"{{ useBasicSignIn }}",style:{width:"100%"}}}}},links:{type:"void","x-component":"div","x-component-props":{style:{display:"flex",justifyContent:"space-between"}},properties:{signUp:{type:"void","x-component":"Link","x-component-props":{to:"{{ signUpLink }}"},"x-content":'{{t("Create an account")}}',"x-visible":"{{ allowSignUp }}"},forgotPassword:{type:"void","x-component":"Link","x-component-props":{to:'{{"/forgot-password?name=" + authenticator.name}}'},"x-content":'{{t("Forgot password")}}',"x-visible":t}}}}}},y=function(e){var t=(0,a.dE)().t,n=e.authenticator,o=n.authType,c=n.name,l=n.options,s=!!(0,u.useSignUpForms)()[o]&&null!=l&&!!l.allowSignUp,p="/signup?name=".concat(c);return i().createElement(r.SchemaComponent,{schema:m({showForgotPassword:!!(null==l?void 0:l.enableResetPassword)}),scope:{useBasicSignIn:function(){return d(c)},allowSignUp:s,signUpLink:p,t:t,authenticator:n}})},v=n(166),b=n(59),h=n(953),g=n(706);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 x(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var P=function(e){var t=(0,c.useNavigate)(),n=(0,l.useForm)(),o=(0,r.useAPIClient)(),i=(0,h.useTranslation)().t;return{run:function(){var r;return(r=function(){var r;return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(a,"next",{value:c(0)}),u(a,"throw",{value:c(1)}),u(a,"return",{value:c(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function c(u){return function(c){var l=[u,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return[4,n.submit()];case 1:return a.sent(),[4,o.auth.signUp(n.values,null==e?void 0:e.authenticator)];case 2:return a.sent(),b.message.success((null==e||null==(r=e.message)?void 0:r.success)||i("Sign up successfully, and automatically jump to the sign in page")),setTimeout(function(){t("/signin")},2e3),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){w(i,n,o,a,u,"next",e)}function u(e){w(i,n,o,a,u,"throw",e)}a(void 0)})})()}}},O=function(e){var t=e.authenticatorName,n=(0,a.dE)().t,u=(0,h.useTranslation)("lm-collections").t,s=(0,g.p)(t).options,p=s.signupForm,f=(0,o.useMemo)(function(){return p.filter(function(e){return e.show}).reduce(function(e,t){var r=S(x({},t.uiSchema),{title:t.uiSchema.title?u(l.Schema.compile(t.uiSchema.title,{t:n})):""});return e[t.field]=S(x({},r),{required:t.required,"x-decorator":"FormItem"}),e},{})},[p]);if(!(null==s?void 0:s.allowSignUp))return i().createElement(c.Navigate,{to:"/not-found",replace:!0});var d={type:"object",name:(0,v.uid)(),"x-component":"FormV2",properties:S(x({},f),{password:{type:"string",required:!0,title:'{{t("Password")}}',"x-component":"Password","x-decorator":"FormItem","x-validator":{password:!0},"x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".confirm_password"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},confirm_password:{type:"string",required:!0,"x-component":"Password","x-decorator":"FormItem",title:'{{t("Confirm password")}}',"x-validator":{password:!0},"x-component-props":{style:{}},"x-reactions":[{dependencies:[".password"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Sign up")}}',type:"void","x-component":"Action","x-component-props":{block:!0,type:"primary",htmlType:"submit",useAction:"{{ useBasicSignUp }}",style:{width:"100%"}}}}},link:{type:"void","x-component":"div",properties:{link:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Log in with an existing account")}}'}}}})};return i().createElement(r.SchemaComponent,{schema:d,scope:{useBasicSignUp:function(){return P({authenticator:t})},t:n}})},E=n(418);function j(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 T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(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){T(e,t,n[t])})}return e}function k(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function C(e){return function(e){if(Array.isArray(e))return j(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return j(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return j(e,void 0)}}(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.")}()}var I=function(){var e=(0,r.useRecord)(),t=(0,r.useCollectionManager)().getCollection("users").fields.filter(function(e){var t;return!e.hidden&&!e.target&&e.interface&&!(null==(t=e.uiSchema)?void 0:t["x-read-pretty"])}),n=t.map(function(e){var t;return{value:e.name,label:null==(t=e.uiSchema)?void 0:t.title}}),u=(0,o.useMemo)(function(){var n=((null==(u=e.options)||null==(a=u.public)?void 0:a.signupForm)||[]).filter(function(e){return t.find(function(t){return t.name===e.field})}),r=!0,o=!1,i=void 0;try{for(var a,u,c,l=t[Symbol.iterator]();!(r=(c=l.next()).done);r=!0)!function(){var e=c.value;n.find(function(t){return t.field===e.name})||n.push({field:e.name,show:"username"===e.name,required:"username"===e.name})}()}catch(e){o=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(o)throw i}}return n},[t,e]);return(0,o.useEffect)(function(){var t;e.options=k(A({},e.options),{public:k(A({},null==(t=e.options)?void 0:t.public),{signupForm:u})})},[e,u]),i().createElement(r.SchemaComponent,{components:{ArrayTable:E.ArrayTable},schema:{type:"void",properties:{"public.signupForm":{title:'{{t("Sign up form")}}',type:"array","x-decorator":"FormItem","x-component":"ArrayTable","x-component-props":{bordered:!1},"x-validator":"{{ (value) => {\n const check = value?.some((item) => ['username', 'email'].includes(item.field) && item.show && item.required);\n if (!check) {\n return t('At least one of the username or email fields is required');\n }\n} }}",default:u,items:{type:"object","x-decorator":"ArrayItems.Item",properties:{column0:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:20,align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},column1:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:100,title:(0,a.vV)("Field")},properties:{field:{type:"string","x-decorator":"FormItem","x-component":"Select",enum:n,"x-read-pretty":!0}}},column2:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:80,title:(0,a.vV)("Show")},properties:{show:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:[".required"],fulfill:{state:{value:"{{ $deps[0] || $self.value }}"}}}}}},column3:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:80,title:(0,a.vV)("Required")},properties:{required:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:[".show"],fulfill:{state:{value:"{{ !$deps[0] ? false : $self.value }}"}}}}}}}}}}}})},_=function(){var e=(0,a.dE)().t;return[(0,r.useGlobalVariable)("$env"),(0,r.useCurrentUserVariable)({maxDepth:1}).currentUserSettings,(0,r.useSystemSettingsVariable)().systemSettings,{value:"$resetLink",label:e("Reset password link")},{value:"$resetLinkExpiration",label:e("Reset link expiration (minutes)")}].filter(Boolean)},F=function(){var e=(0,a.dE)().t,t=_(),n=i().createElement("span",null,e("No notification channels found. Please "),i().createElement(c.Link,{to:"/admin/settings/notification-manager/channels"},e("add one first")),".");return i().createElement(r.SchemaComponent,{scope:{t:e},components:{Alert:b.Alert,SignupFormSettings:I,FormTab:E.FormTab},schema:{type:"object",properties:{notice:{type:"void","x-decorator":"FormItem","x-component":"Alert","x-component-props":{showIcon:!0,message:'{{t("The authentication allows users to sign in via username or email.")}}'}},collapse:{type:"void","x-component":"FormTab",properties:{basic:{type:"void","x-component":"FormTab.TabPane","x-component-props":{tab:(0,a.vV)("Sign up settings")},properties:T({"public.allowSignUp":{"x-decorator":"FormItem",type:"boolean",title:'{{t("Allow to sign up")}}',"x-component":"Checkbox",default:!0}},(0,v.uid)(),{type:"void","x-component":"SignupFormSettings"})},forgetPassword:{type:"void","x-component":"FormTab.TabPane","x-component-props":{tab:(0,a.vV)("Forgot password")},properties:{"public.enableResetPassword":{"x-decorator":"FormItem",type:"boolean",title:'{{t("Enable forget password")}}',"x-component":"Checkbox",default:!1},divider1:{type:"void","x-component":function(){return i().createElement(b.Divider,{orientation:"left",orientationMargin:"0"},e("1. Select notification channel"))},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}]},notificationChannel:{type:"string",title:'{{t("Notification channel (Email)")}}',required:!0,"x-decorator":"FormItem","x-component":"RemoteSelect","x-component-props":{multiple:!1,manual:!1,fieldNames:{label:"title",value:"name"},service:{resource:"notificationChannels",action:"list",params:{filter:{notificationType:"email"}}},notFoundContent:n},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}],description:'{{t("The notification channel used to send the reset password email, only support email channel")}}'},divider2:{type:"void","x-component":function(){return i().createElement(b.Divider,{orientation:"left",orientationMargin:"0"},e("2. Configure reset email"))},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}]},emailSubject:{type:"string",required:!0,title:'{{t("Subject")}}',"x-decorator":"FormItem","x-component":"Variable.TextArea","x-component-props":{scope:C(t)},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:'{{t("defaultResetPasswordEmailSubject")}}'}}}],default:'{{t("defaultResetPasswordEmailSubject")}}'},emailContentType:{type:"string",title:'{{t("Content type")}}',required:!0,"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:"HTML",value:"html"},{label:'{{t("Plain text")}}',value:"text"}],default:"html","x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:"html"}}}]},emailContentHTML:{type:"string",required:!0,title:'{{t("Content")}}',"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:C(t),placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:[".public.enableResetPassword",".emailContentType"],fulfill:{state:{visible:'{{$deps[0] && $deps[1] === "html"}}',initialValue:'{{t("defaultResetPasswordEmailContentHTML")}}'}}}],default:'{{t("defaultResetPasswordEmailContentHTML")}}'},emailContentText:{type:"string",required:!0,title:'{{t("Content")}}',"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:C(t),autoSize:{minRows:10}},"x-reactions":[{dependencies:[".public.enableResetPassword",".emailContentType"],fulfill:{state:{visible:'{{$deps[0] && $deps[1] === "text"}}',initialValue:'{{t("defaultResetPasswordEmailContentText")}}'}}}],default:'{{t("defaultResetPasswordEmailContentText")}}'},resetTokenExpiresIn:{type:"number",title:'{{t("Reset link expiration")}}',"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{suffix:e("Minutes"),style:{width:"100%"}},default:120,required:!0,"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:120}}}]}}}}}}}})}},872:function(e,t,n){"use strict";n.d(t,{CU:function(){return i},dE:function(){return a},vV:function(){return u}});var r=n(953),o=n(342),i="auth";function a(){return(0,r.useTranslation)([i,"client"],{nsMode:"fallback"})}function u(e){return o.i18n.t(e,{ns:[i,"client"],nsMode:"fallback"})}},350:function(e,t,n){"use strict";n.r(t),n.d(t,{AuthLayout:function(){return d},useSignInButtons:function(){return P},SignUpPage:function(){return C},useSignInForms:function(){return S},useSignUpForms:function(){return k},SignupPageContext:function(){return T},AuthenticatorsContextProvider:function(){return f},SignupPageProvider:function(){return A},SignInPage:function(){return O}});var r=n(477),o=n(342),i=n(59),a=n(155),u=n.n(a),c=n(442),l=n(953),s=n(706);function p(){var e,t,n=(e=["\n position: absolute;\n bottom: 0;\n width: 100%;\n left: 0;\n text-align: center;\n padding-bottom: 24px;\n background-color: ",";\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return p=function(){return n},n}var f=function(e){var t=e.children,n=(0,o.useAPIClient)(),r=(0,o.useRequest)(function(){return n.resource("authenticators").publicList().then(function(e){var t;return(null==e||null==(t=e.data)?void 0:t.data)||[]})}),a=r.data,c=r.error;if(r.loading)return u().createElement("div",{style:{textAlign:"center",marginTop:20}},u().createElement(i.Spin,null));if(c)throw c;return u().createElement(s.m.Provider,{value:void 0===a?[]:a},t)};function d(){var e,t=((0,o.useSystemSettings)()||{}).data,n=(0,o.useToken)().token,i=(0,l.useTranslation)("lm-collections").t;return u().createElement("div",{style:{maxWidth:320,margin:"0 auto",paddingTop:"20vh",paddingBottom:"20vh"}},u().createElement("div",{style:{position:"fixed",top:"2em",right:"2em"}},u().createElement(o.SwitchLanguage,null)),u().createElement("h1",{style:{textAlign:"center"}},u().createElement(o.ReadPretty.TextArea,{value:i(null==t||null==(e=t.data)?void 0:e.title)})),u().createElement(f,null,u().createElement(c.Outlet,null)),u().createElement("div",{className:(0,r.css)(p(),n.colorBgContainer)},u().createElement(o.PoweredBy,null)))}var m=n(574),y=n(872),v=n(230);function b(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 h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(e,t){if(e){if("string"==typeof e)return b(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 b(e,t)}}(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 g(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function w(){var e=g(["\n display: flex;\n "]);return w=function(){return e},e}function x(){var e=g(["\n display: flex;\n "]);return x=function(){return e},e}var S=function(){var e=(0,o.usePlugin)(m.default).authTypes.getEntities(),t={},n=!0,r=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var c,l=h(a.value,2),s=l[0],p=l[1];(null==(c=p.components)?void 0:c.SignInForm)&&(t[s]=p.components.SignInForm)}}catch(e){r=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(r)throw i}}return t},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,o.usePlugin)(m.default).authTypes.getEntities(),n={},r=!0,i=!1,a=void 0;try{for(var c,l=t[Symbol.iterator]();!(r=(c=l.next()).done);r=!0){var s,p=h(c.value,2),f=p[0],d=p[1];(null==(s=d.components)?void 0:s.SignInButton)&&(n[f]=d.components.SignInButton)}}catch(e){i=!0,a=e}finally{try{r||null==l.return||l.return()}finally{if(i)throw a}}var y=Object.keys(n);return e.filter(function(e){return y.includes(e.authType)}).map(function(e,t){return u().createElement(n[e.authType],{key:t,authenticator:e})})},O=function(){var e=(0,y.dE)().t;(0,o.useCurrentDocumentTitle)("Signin"),(0,o.useViewport)();var t=S(),n=(0,a.useContext)(s.m),c=P(n);if(!n.length)return u().createElement("div",{style:{color:"#ccc"}},e("No authentication methods available."));var l=n.map(function(n){var r=t[n.authType];if(r){var o="".concat(e("Sign-in")," (").concat(v.Schema.compile(n.authTypeTitle||n.authType,{t:e}),")");return 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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({component:(0,a.createElement)(r,{authenticator:n}),tabTitle:n.title||o},n)}}).filter(function(e){return e});return u().createElement(i.Space,{direction:"vertical",className:(0,r.css)(w())},l.length>1?u().createElement(i.Tabs,{items:l.map(function(e){return{label:e.tabTitle,key:e.name,children:e.component}})}):l.length?u().createElement("div",null,l[0].component):u().createElement(u().Fragment,null),u().createElement(i.Space,{direction:"vertical",className:(0,r.css)(x())},c))};function E(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 j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">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)||function(e,t){if(e){if("string"==typeof e)return E(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 E(e,t)}}(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.")}()}var T=(0,a.createContext)({});T.displayName="SignupPageContext";var A=function(e){var t=(0,a.useContext)(T);return t[e.authType]={component:e.component},u().createElement(T.Provider,{value:t},e.children)},k=function(){var e=(0,o.usePlugin)(m.default).authTypes.getEntities(),t={},n=!0,r=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done);n=!0){var c,l=j(a.value,2),s=l[0],p=l[1];(null==(c=p.components)?void 0:c.SignUpForm)&&(t[s]=p.components.SignUpForm)}}catch(e){r=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(r)throw i}}return t},C=function(){(0,o.useViewport)(),(0,o.useCurrentDocumentTitle)("Signup");var e=k(),t=j((0,c.useSearchParams)(),1)[0].get("name"),n=((0,s.p)(t)||{}).authType;return e[n]?(0,a.createElement)(e[n],{authenticatorName:t}):u().createElement(c.Navigate,{to:"/not-found",replace:!0})}},375:function(e){"use strict";e.exports=i},477:function(e){"use strict";e.exports=t},418:function(e){"use strict";e.exports=r},452:function(e){"use strict";e.exports=s},230:function(e){"use strict";e.exports=o},166:function(e){"use strict";e.exports=a},342:function(e){"use strict";e.exports=l},768:function(e){"use strict";e.exports=p},59:function(e){"use strict";e.exports=c},155:function(e){"use strict";e.exports=u},953:function(t){"use strict";t.exports=e},442:function(e){"use strict";e.exports=n},971:function(e,t,n){"use strict";var r="",o="u">typeof document?document.currentScript:null;if(o&&o.src){var i=o.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");i.indexOf("/static/plugins/@nocobase/plugin-auth/dist/client/")>=0&&(r=i.replace(/\/[^\/]+$/,"/"))}if(!r){var a=window.__webpack_public_path__||"";a&&("/"!==a.charAt(a.length-1)&&(a+="/"),r=a+"static/plugins/@nocobase/plugin-auth/dist/client/")}if(!r){var u=window.__nocobase_modern_client_prefix__||"v",c="/"+(u=String(u).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(r=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var l=window.location.pathname||"/",s=l.indexOf(c);r=s>=0?l.slice(0,s+1):"/"}r&&(r=r.replace(RegExp("/"+u+"/?$"),"/")),r||(r="/"),"/"!==r.charAt(r.length-1)&&(r+="/"),r+="static/plugins/@nocobase/plugin-auth/dist/client/"}n.p=r}},v={};function b(e){var t=v[e];if(void 0!==t)return t.exports;var n=v[e]={exports:{}};return y[e](n,n.exports,b),n.exports}b.m=y,b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,{a:t}),t},b.d=function(e,t){for(var n in t)b.o(t,n)&&!b.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce(function(t,n){return b.f[n](e,t),t},[]))},b.u=function(e){return""+e+"."+({443:"aa711879b4855b88",611:"bf903b6a5490becc",680:"8758971b4dd75b23"})[e]+".js"},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},h={},b.l=function(e,t,n,r){if(h[e])return void h[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),u=0;u<a.length;u++){var c=a[u];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="@nocobase/plugin-auth:"+n){o=c;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.setAttribute("data-rspack","@nocobase/plugin-auth:"+n),o.src=e),h[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=h[e];if(delete h[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},b.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.g.importScripts&&(g=b.g.location+"");var h,g,w=b.g.document;if(!g&&w&&(w.currentScript&&"SCRIPT"===w.currentScript.tagName.toUpperCase()&&(g=w.currentScript.src),!g)){var x=w.getElementsByTagName("script");if(x.length)for(var S=x.length-1;S>-1&&(!g||!/^http(s?):/.test(g));)g=x[S--].src}if(!g)throw Error("Automatic publicPath is not supported in this browser");return b.p=g.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),f={889:0},b.f.j=function(e,t){var n=b.o(f,e)?f[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=f[e]=[t,r]});t.push(n[2]=r);var o=b.p+b.u(e),i=Error();b.l(o,function(t){if(b.o(f,e)&&(0!==(n=f[e])&&(f[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},d=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],u=0;if(o.some(function(e){return 0!==f[e]})){for(n in i)b.o(i,n)&&(b.m[n]=i[n]);a&&a(b)}for(e&&e(t);u<o.length;u++)r=o[u],b.o(f,r)&&f[r]&&f[r][0](),f[r]=0},(m=self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).forEach(d.bind(null,0)),m.push=d.bind(null,m.push.bind(m)),b(971),b(574)}()});
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth_client_v2=self.webpackChunk_nocobase_plugin_auth_client_v2||[]).push([["217"],{264:function(e,t,n){n.r(t),n.d(t,{default:function(){return g}});var r=n(485),a=n(694),l=n(6),i=n(59),o=n(155),u=n.n(o),s=n(442),c=n(488);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 f(e,t,n,r,a,l,i){try{var o=e[l](i),u=o.value}catch(e){n(e);return}o.done?t(u):Promise.resolve(u).then(r,a)}function d(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)}}var p=["$env"];function h(e){var t,n=(0,c.dE)().t,s=(0,c.kj)(),f=(t=(0,a.useFlowContext)(),(0,o.useMemo)(function(){var e,n,r,a,l=null==(r=t.dataSourceManager)||null==(n=r.getCollection)?void 0:n.call(r,"main","users");return(null!=(e=null==l||null==(a=l.getFields)?void 0:a.call(l))?e:[]).filter(function(e){var t,n;return e&&!(null==(t=e.options)?void 0:t.hidden)&&!e.target&&e.interface&&!(null==(n=e.uiSchema)?void 0:n["x-read-pretty"])})},[t])),p=(0,o.useMemo)(function(){var t;return null!=(t=e.value)?t:[]},[e.value]),h=(0,o.useMemo)(function(){var e=new Set(f.map(function(e){return e.name})),t=p.filter(function(t){return e.has(t.field)}),n=new Set(t.map(function(e){return e.field})),r=!0,a=!1,l=void 0;try{for(var i,o=f[Symbol.iterator]();!(r=(i=o.next()).done);r=!0){var u=i.value;n.has(u.name)||t.push({field:u.name,show:"username"===u.name,required:"username"===u.name})}}catch(e){a=!0,l=e}finally{try{r||null==o.return||o.return()}finally{if(a)throw l}}return t},[f,p]);u().useEffect(function(){var t;p.length===h.length&&p.every(function(e,t){return e.field===h[t].field&&!!e.show==!!h[t].show&&!!e.required==!!h[t].required})||null==(t=e.onChange)||t.call(e,h)},[h]);var y=(0,l.useMemoizedFn)(function(t,n){var r,a=h.map(function(e){if(e.field!==t)return e;var 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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e,n);return r.required&&(r.show=!0),r.show||(r.required=!1),r});null==(r=e.onChange)||r.call(e,a)}),b=(0,l.useMemoizedFn)(function(e){var t,n,r=f.find(function(t){return t.name===e});return s((null==r||null==(t=r.uiSchema)?void 0:t.title)||(null==r||null==(n=r.options)?void 0:n.title)||e)}),g=(0,o.useMemo)(function(){return[{title:n("Field"),dataIndex:"field",width:200,render:function(e){return u().createElement(i.Tag,null,b(e))}},{title:n("Show"),dataIndex:"show",width:80,align:"center",render:function(e,t){return u().createElement(i.Checkbox,{checked:!!t.show,onChange:function(e){return y(t.field,{show:e.target.checked})}})}},{title:n("Required"),dataIndex:"required",width:80,align:"center",render:function(e,t){return u().createElement(i.Checkbox,{checked:!!t.required,onChange:function(e){return y(t.field,{required:e.target.checked})}})}},{title:"",dataIndex:"_filler",render:function(){return null}}]},[b,n,y]),v=(0,l.useMemoizedFn)(function(t,n){var r,a=h.findIndex(function(e){return e.field===t.field}),l=h.findIndex(function(e){return e.field===n.field});if(!(a<0)&&!(l<0)&&a!==l){var i,o=function(e){if(Array.isArray(e))return m(e)}(h)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(h)||d(h)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),u=(function(e){if(Array.isArray(e))return e}(i=o.splice(a,1))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a=[],l=!0,i=!1;try{for(r=r.call(e);!(l=(t=r.next()).done)&&(a.push(t.value),1!==a.length);l=!0);}catch(e){i=!0,n=e}finally{try{l||null==r.return||r.return()}finally{if(i)throw n}}return a}}(i)||d(i,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];o.splice(l,0,u),null==(r=e.onChange)||r.call(e,o)}});return u().createElement(r.Table,{rowKey:"field",pagination:!1,columns:g,dataSource:h,isDraggable:!0,onSortEnd:v,sortHandleColumnWidth:32,showIndex:!1})}function y(){var e=(0,c.dE)().t;return u().createElement(u().Fragment,null,u().createElement(i.Form.Item,{name:["options","public","allowSignUp"],label:e("Allow to sign up"),valuePropName:"checked",initialValue:!0},u().createElement(i.Checkbox,null)),u().createElement(i.Form.Item,{label:e("Sign up form"),name:["options","public","signupForm"],validateFirst:!0},u().createElement(h,null)))}function b(){var e,t,n,m=(0,c.dE)().t,d=(0,a.useFlowContext)(),h=i.Form.useFormInstance(),y=i.Form.useWatch(["options","public","enableResetPassword"],h),b=i.Form.useWatch(["options","emailContentType"],h)||"html",g=(e=(0,c.dE)().t,(0,o.useMemo)(function(){return[{name:"$user",title:e("Current user"),type:"object",paths:["$user"],children:[{name:"username",title:e("Username"),type:"string",paths:["$user","username"]},{name:"nickname",title:e("Nickname"),type:"string",paths:["$user","nickname"]},{name:"email",title:e("Email"),type:"string",paths:["$user","email"]}]},{name:"$systemSettings",title:e("System settings"),type:"object",paths:["$systemSettings"],children:[{name:"title",title:e("System title"),type:"string",paths:["$systemSettings","title"]},{name:"logo",title:e("System logo"),type:"string",paths:["$systemSettings","logo"]}]},{name:"$resetLink",title:e("Reset password link"),type:"string",paths:["$resetLink"]},{name:"$resetLinkExpiration",title:e("Reset link expiration (minutes)"),type:"string",paths:["$resetLinkExpiration"]}]},[e])),v=(t=!!y,n=(0,a.useFlowContext)(),(0,l.useRequest)(function(){var e;return(e=function(){var e,t,r,a;return function(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),o=Object.defineProperty;return o(i,"next",{value:u(0)}),o(i,"throw",{value:u(1)}),o(i,"return",{value:u(2)}),"function"==typeof Symbol&&o(i,Symbol.iterator,{value:function(){return this}}),i;function u(o){return function(u){var s=[o,u];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&s[0]?r.return:s[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,s[1])).done)return a;switch(r=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return l.label++,{value:s[1],done:!1};case 5:l.label++,r=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){l.label=s[1];break}if(6===s[0]&&l.label<a[1]){l.label=a[1],a=s;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(s);break}a[2]&&l.ops.pop(),l.trys.pop();continue}s=t.call(e,l)}catch(e){s=[6,e],r=0}finally{n=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(l){switch(l.label){case 0:return[4,n.api.resource("notificationChannels").list({filter:{notificationType:"email"},pageSize:50})];case 1:return[2,Array.isArray(a=null!=(e=null==(r=l.sent())||null==(t=r.data)?void 0:t.data)?e:null==r?void 0:r.data)?a:[]]}})},function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function i(e){f(l,r,a,i,o,"next",e)}function o(e){f(l,r,a,i,o,"throw",e)}i(void 0)})})()},{ready:t,cacheKey:"@nocobase/plugin-auth:notificationChannels:email",refreshDeps:[t]})),w=v.data,E=v.loading,S=(0,o.useMemo)(function(){return(w||[]).map(function(e){return{label:e.title,value:e.name}})},[w]);return u().createElement(u().Fragment,null,u().createElement(i.Form.Item,{name:["options","public","enableResetPassword"],label:m("Enable forget password"),valuePropName:"checked",initialValue:!1},u().createElement(i.Checkbox,null)),y?u().createElement(u().Fragment,null,u().createElement(i.Typography.Title,{level:5,style:{marginTop:0}},m("1. Select notification channel")),u().createElement(i.Form.Item,{name:["options","notificationChannel"],label:m("Notification channel (Email)"),extra:m("The notification channel used to send the reset password email, only support email channel"),rules:[{required:!0,message:m("Please select a notification channel")}]},u().createElement(i.Select,{loading:E,options:S,placeholder:m("Select"),notFoundContent:u().createElement("span",null,m("No notification channels found. Please "),u().createElement(s.Link,{to:d.app.pluginSettingsManager.getRoutePath("notification-manager.channels")},m("add one first")),".")})),u().createElement(i.Typography.Title,{level:5},m("2. Configure reset email")),u().createElement(i.Form.Item,{name:["options","emailSubject"],label:m("Subject"),rules:[{required:!0,message:m("Please enter the email subject")}],initialValue:m("defaultResetPasswordEmailSubject")},u().createElement(r.VariableInput,{namespaces:p,extraNodes:g})),u().createElement(i.Form.Item,{name:["options","emailContentType"],label:m("Content type"),initialValue:"html",rules:[{required:!0}]},u().createElement(i.Radio.Group,{options:[{label:"HTML",value:"html"},{label:m("Plain text"),value:"text"}]})),"html"===b?u().createElement(i.Form.Item,{key:"html",name:["options","emailContentHTML"],label:m("Content"),rules:[{required:!0,message:m("Please enter the email content")}],initialValue:m("defaultResetPasswordEmailContentHTML")},u().createElement(r.VariableTextArea,{namespaces:p,extraNodes:g,placeholder:"Hi,",rows:10})):u().createElement(i.Form.Item,{key:"text",name:["options","emailContentText"],label:m("Content"),rules:[{required:!0,message:m("Please enter the email content")}],initialValue:m("defaultResetPasswordEmailContentText")},u().createElement(r.VariableTextArea,{namespaces:p,extraNodes:g,rows:10})),u().createElement(i.Form.Item,{name:["options","resetTokenExpiresIn"],label:m("Reset link expiration"),initialValue:120,rules:[{required:!0,message:m("Please enter the expiration in minutes")}]},u().createElement(i.InputNumber,{min:1,addonAfter:m("Minutes"),style:{width:"100%"}}))):null)}function g(){var e=(0,c.dE)().t;return u().createElement("div",null,u().createElement(i.Alert,{style:{marginBottom:16},type:"info",showIcon:!0,message:e("The authentication allows users to sign in via username or email.")}),u().createElement(i.Tabs,{items:[{key:"signup",label:e("Sign up settings"),forceRender:!0,children:u().createElement(y,null)},{key:"forgot",label:e("Forgot password"),forceRender:!0,children:u().createElement(b,null)}]}))}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth_client_v2=self.webpackChunk_nocobase_plugin_auth_client_v2||[]).push([["795"],{918:function(e,t,r){r.r(t),r.d(t,{default:function(){return y}});var n=r(59),a=r(485),o=r(155),l=r.n(o),u=r(442),s=r(488),i=r(824),c=r(927);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function f(e,t,r,n,a,o,l){try{var u=e[o](l),s=u.value}catch(e){r(e);return}u.done?t(s):Promise.resolve(s).then(n,a)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,u=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){u=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(u)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}}(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 y(e){var t,r,m=e.authenticator,y=(0,a.useApp)(),d=(0,s.dE)().t,v=p(n.Form.useForm(),1)[0],h=p((0,o.useState)(""),2),b=h[0],g=h[1],w=p((0,o.useState)(!1),2),E=w[0],P=w[1],S=(0,i.go)(m.name),k=!!(null==m||null==(t=m.options)?void 0:t.allowSignUp),I=!!(null==m||null==(r=m.options)?void 0:r.enableResetPassword),_=(0,c.f1)(y,"auth.signup"),j=(0,c.f1)(y,"auth.forgotPassword");return l().createElement(n.Form,{form:v,layout:"vertical",onFinish:function(e){var t;return(t=function(){var t,r,n,a,o;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(l,"next",{value:s(0)}),u(l,"throw",{value:s(1)}),u(l,"return",{value:s(2)}),"function"==typeof Symbol&&u(l,Symbol.iterator,{value:function(){return this}}),l;function s(u){return function(s){var i=[u,s];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&i[0]?n.return:i[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,i[1])).done)return a;switch(n=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}(this,function(l){switch(l.label){case 0:g(""),P(!0),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,S.run(e)];case 2:return l.sent(),[3,5];case 3:return g((null==(t=l.sent())||null==(o=t.response)||null==(a=o.data)||null==(n=a.errors)||null==(r=n[0])?void 0:r.message)||(null==t?void 0:t.message)||String(t)),[3,5];case 4:return P(!1),[7];case 5:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var o=t.apply(e,r);function l(e){f(o,n,a,l,u,"next",e)}function u(e){f(o,n,a,l,u,"throw",e)}l(void 0)})})()}},b?l().createElement(n.Alert,{style:{marginBottom:16},type:"error",showIcon:!0,message:b}):null,l().createElement(n.Form.Item,{name:"account",rules:[{required:!0,message:d("Please enter your username or email")},{validator:function(e,t){return t?String(t).includes("@")?/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(String(t))?Promise.resolve():Promise.reject(Error(d("Please enter a valid email"))):/^[^@<>"'/]{1,50}$/.test(String(t))?Promise.resolve():Promise.reject(Error(d("Please enter a valid username"))):Promise.resolve()}}]},l().createElement(n.Input,{autoComplete:"username",placeholder:d("Username/Email")})),l().createElement(n.Form.Item,{name:"password",rules:[{required:!0,message:d("Please enter a password")}]},l().createElement(n.Input.Password,{autoComplete:"current-password",placeholder:d("Password")})),l().createElement(n.Form.Item,{style:{marginBottom:12}},l().createElement(n.Button,{loading:E,htmlType:"submit",type:"primary",block:!0},d("Sign in"))),l().createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:12}},k?l().createElement(u.Link,{to:"".concat(_,"?name=").concat(m.name)},d("Create an account")):null,I?l().createElement(u.Link,{to:"".concat(j,"?name=").concat(m.name)},d("Forgot password")):null))}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth_client_v2=self.webpackChunk_nocobase_plugin_auth_client_v2||[]).push([["841"],{720:function(e,t,r){r.r(t),r.d(t,{default:function(){return v}});var n=r(59),a=r(155),l=r.n(a),o=r(442),u=r(230),i=r(953),s=r(485),c=r(488),m=r(295),p=r(927);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t,r,n,a,l,o){try{var u=e[l](o),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,u=!1;try{for(a=a.call(e);!(o=(r=a.next()).done)&&(l.push(r.value),!t||l.length!==t);o=!0);}catch(e){u=!0,n=e}finally{try{o||null==a.return||a.return()}finally{if(u)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return f(e,t)}}(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 v(e){var t,r=e.authenticatorName,f=(0,s.useApp)(),v=(0,o.useNavigate)(),y=(0,c.dE)().t,b=(0,i.useTranslation)("lm-collections").t,g=(0,m.p)(r),w=h(n.Form.useForm(),1)[0],E=h((0,a.useState)(!1),2),S=E[0],k=E[1],I=h((0,a.useState)(""),2),x=I[0],P=I[1],A=(0,p.f1)(f,"auth.signin"),_=(0,a.useMemo)(function(){var e;return((null==g||null==(e=g.options)?void 0:e.signupForm)||[]).filter(function(e){return null==e?void 0:e.show})},[g]);return(null==g||null==(t=g.options)?void 0:t.allowSignUp)?l().createElement(n.Form,{form:w,layout:"vertical",onFinish:function(e){var t;return(t=function(){var t,a,l,o,u;return function(e,t){var r,n,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(o,"next",{value:i(0)}),u(o,"throw",{value:i(1)}),u(o,"return",{value:i(2)}),"function"==typeof Symbol&&u(o,Symbol.iterator,{value:function(){return this}}),o;function i(u){return function(i){var s=[u,i];if(r)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(l=0)),l;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return l.label++,{value:s[1],done:!1};case 5:l.label++,n=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){l.label=s[1];break}if(6===s[0]&&l.label<a[1]){l.label=a[1],a=s;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(s);break}a[2]&&l.ops.pop(),l.trys.pop();continue}s=t.call(e,l)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(i){switch(i.label){case 0:P(""),k(!0),i.label=1;case 1:return i.trys.push([1,3,4,5]),[4,f.apiClient.auth.signUp(e,r)];case 2:return i.sent(),n.message.success(y("Sign up successfully, and automatically jump to the sign in page")),window.setTimeout(function(){v(A,{replace:!0})},2e3),[3,5];case 3:return P((null==(t=i.sent())||null==(u=t.response)||null==(o=u.data)||null==(l=o.errors)||null==(a=l[0])?void 0:a.message)||(null==t?void 0:t.message)||String(t)),[3,5];case 4:return k(!1),[7];case 5:return[2]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var l=t.apply(e,r);function o(e){d(l,n,a,o,u,"next",e)}function u(e){d(l,n,a,o,u,"throw",e)}o(void 0)})})()}},x?l().createElement(n.Alert,{style:{marginBottom:16},type:"error",showIcon:!0,message:x}):null,_.map(function(e){var t,r,a,o,i,s;return a=(r=(null==e?void 0:e.uiSchema)||{})["x-component"],o=r.title?b(u.Schema.compile(r.title,{t:y})):e.field,i=[],e.required&&i.push({required:!0,message:y("Please enter ".concat(e.field))}),"email"===e.field&&i.push({type:"email",message:y("Please enter a valid email address")}),s=l().createElement(n.Input,null),(null==(t=r.enum)?void 0:t.length)?s=l().createElement(n.Select,{options:r.enum.map(function(e){return{label:e.label||e.value,value:e.value}})}):"Checkbox"===a?s=l().createElement(n.Checkbox,null):("Input.TextArea"===a||"TextArea"===a)&&(s=l().createElement(n.Input.TextArea,{rows:4})),l().createElement(n.Form.Item,{key:e.field,name:e.field,label:o,valuePropName:"Checkbox"===a?"checked":"value",rules:i},s)}),l().createElement(n.Form.Item,{label:y("Password"),name:"password",rules:[{required:!0,message:y("Please enter a password")}]},l().createElement(n.Input.Password,{autoComplete:"new-password"})),l().createElement(n.Form.Item,{label:y("Confirm password"),name:"confirm_password",dependencies:["password"],rules:[{required:!0,message:y("Please enter the same password again")},function(e){var t=e.getFieldValue;return{validator:function(e,r){return r&&t("password")!==r?Promise.reject(Error(y("The passwords entered twice are inconsistent"))):Promise.resolve()}}}]},l().createElement(n.Input.Password,{autoComplete:"new-password"})),l().createElement(n.Form.Item,{style:{marginBottom:12}},l().createElement(n.Button,{loading:S,htmlType:"submit",type:"primary",block:!0},y("Sign up"))),l().createElement(o.Link,{to:A},y("Log in with an existing account"))):l().createElement(o.Navigate,{to:"/not-found",replace:!0})}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth_client_v2=self.webpackChunk_nocobase_plugin_auth_client_v2||[]).push([["9"],{648:function(e,t,n){n.r(t),n.d(t,{AuthenticatorFormView:function(){return O},default:function(){return A},loadAuthenticatorForEdit:function(){return S}});var r=n(375),o=n(485),u=n(694),a=n(6),l=n(59),i=n(773),c=n(155),s=n.n(c),d=n(488);function f(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 p(e,t,n,r,o,u,a){try{var l=e[u](a),i=l.value}catch(e){n(e);return}l.done?t(i):Promise.resolve(i).then(r,o)}function m(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var u=e.apply(t,n);function a(e){p(u,r,o,a,l,"next",e)}function l(e){p(u,r,o,a,l,"throw",e)}a(void 0)})}}function y(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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var u=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(u.push(n.value),!t||u.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(l)throw r}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return f(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 f(e,t)}}(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 v(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function g(e,t){var n,r,o,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(a,"next",{value:i(0)}),l(a,"throw",{value:i(1)}),l(a,"return",{value:i(2)}),"function"==typeof Symbol&&l(a,Symbol.iterator,{value:function(){return this}}),a;function i(l){return function(i){var c=[l,i];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(u=0)),u;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=t.call(e,u)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var E=["id","name","authType","title","description","enabled"];function w(){return(0,u.useFlowContext)().api.resource("authenticators")}function S(e,t){return m(function(){var n,r,o,u,a;return g(this,function(l){switch(l.label){case 0:return[4,e.get({filterByTk:t.id})];case 1:if(!(u=(o=null==(r=l.sent())?void 0:r.data)&&(void 0===o?"undefined":v(o))==="object"&&"data"in o?o.data:o)||(void 0===u?"undefined":v(u))!=="object"||Array.isArray(u))return[2,(0,i.cloneDeep)(t)];return a=(0,i.cloneDeep)(u),[2,b(y({},(0,i.cloneDeep)(t),a),{options:null!=(n=a.options)?n:(0,i.cloneDeep)(t.options)})]}})})()}function O(e){var t,n,r=(0,d.dE)().t,f=(0,d.kj)(),p=(0,c.useMemo)(function(){return e.authTypeOptions.map(function(e){return{value:e.name,label:f(e.title||e.name)}})},[e.authTypeOptions,f]),E=w(),O=h(l.Form.useForm(),1)[0],A=h((0,c.useState)(!1),2),T=A[0],j=A[1],k=h((0,c.useState)(null),2),I=k[0],F=k[1],D="edit"===e.mode&&(null==(t=e.record)?void 0:t.id)!=null,C=(0,a.useRequest)(function(){return m(function(){return g(this,function(t){return e.record?[2,S(E,e.record)]:[2,void 0]})})()},{ready:D,refreshDeps:[null==(n=e.record)?void 0:n.id],onBefore:function(){return F(null)},onError:function(e){var t;return F((null!=(t=Error)&&"u">typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t)?e:Error(String(e)))}}),P=C.data,x=C.loading,M=null!=P?P:e.record,_=(0,c.useMemo)(function(){return"edit"===e.mode?(0,i.cloneDeep)(M||{}):{name:(0,u.randomId)("s_"),authType:e.authType,enabled:!1,options:{}}},[M,e.authType,e.mode]);(0,c.useEffect)(function(){O.setFieldsValue(_)},[O,_]);var z=l.Form.useWatch("authType",O),B=null!=z?z:e.authType,q=(0,c.useMemo)(function(){var t;return null==(t=e.plugin.authTypes.get(B))?void 0:t.adminSettingsFormLoader},[e.plugin,B]),U=(0,c.useMemo)(function(){return q?(0,c.lazy)(q):null},[q]),R=(0,a.useMemoizedFn)(function(){O.setFieldValue("options",{})}),V=(0,a.useMemoizedFn)(function(){return m(function(){var t,n,r,o;return g(this,function(u){switch(u.label){case 0:return[4,O.validateFields()];case 1:n=function e(t){return"string"==typeof t?t.trim():Array.isArray(t)?t.map(e):t&&(void 0===t?"undefined":v(t))==="object"?Object.fromEntries(Object.entries(t).map(function(t){var n=h(t,2);return[n[0],e(n[1])]})):t}((t=u.sent()).options||{}),j(!0),u.label=2;case 2:if(u.trys.push([2,,7,8]),"create"!==e.mode)return[3,4];return[4,E.create({values:b(y({},t),{options:n})})];case 3:return u.sent(),[3,6];case 4:if((null==(r=e.record)?void 0:r.id)==null)return[3,6];return o=b(y({},(0,i.cloneDeep)(e.record),t),{options:y({},e.record.options||{},n)}),[4,E.update({filterByTk:e.record.id,values:o})];case 5:u.sent(),u.label=6;case 6:return e.onSubmitted(),[3,8];case 7:return j(!1),[7];case 8:return[2]}})})()});return s().createElement(o.DrawerFormLayout,{title:r("create"===e.mode?"Add new":"Configure"),onSubmit:V,submitting:T||x,submitText:r("Submit"),cancelText:r("Cancel")},I?s().createElement(l.Alert,{type:"error",showIcon:!0,message:r("Failed to load authenticator"),description:I.message,style:{marginBottom:16}}):null,s().createElement(l.Spin,{spinning:x},s().createElement(l.Form,{form:O,layout:"vertical",initialValues:_},s().createElement(l.Form.Item,{name:"name",label:r("Auth UID"),rules:[{required:!0,message:r("Please enter an Auth UID")},{pattern:/^[a-zA-Z0-9_-]+$/,message:r("a-z, A-Z, 0-9, _, -")}]},s().createElement(l.Input,{disabled:"edit"===e.mode})),s().createElement(l.Form.Item,{name:"authType",label:r("Auth Type"),rules:[{required:!0}]},s().createElement(l.Select,{options:p,onChange:R})),s().createElement(l.Form.Item,{name:"title",label:r("Title")},s().createElement(l.Input,null)),s().createElement(l.Form.Item,{name:"description",label:r("Description")},s().createElement(l.Input,null)),s().createElement(l.Form.Item,{name:"enabled",label:r("Enabled"),valuePropName:"checked"},s().createElement(l.Checkbox,null)),U?s().createElement(c.Suspense,{fallback:s().createElement(l.Spin,null)},s().createElement(U,null)):null)))}function A(){var e,t=(0,d.dE)().t,n=(0,d.kj)(),i=(0,u.useFlowContext)(),f=l.theme.useToken().token,p=l.App.useApp(),y=p.modal,b=p.message,v=w(),S=i.app.pm.get("@nocobase/plugin-auth"),A=h((0,c.useState)(1),2),T=A[0],j=A[1],k=h((0,c.useState)(o.DEFAULT_PAGE_SIZE),2),I=k[0],F=k[1],D=h((0,c.useState)([]),2),C=D[0],P=D[1],x=(e=w(),(0,a.useRequest)(function(){return m(function(){var t,n,r,o;return g(this,function(u){switch(u.label){case 0:return[4,e.listTypes()];case 1:return[2,Array.isArray(o=null!=(t=null==(r=u.sent())||null==(n=r.data)?void 0:n.data)?t:null==r?void 0:r.data)?o:[]]}})})()},{cacheKey:"@nocobase/plugin-auth:authenticators:listTypes"})).data,M=(0,a.useRequest)(function(){return m(function(){return g(this,function(e){switch(e.label){case 0:return[4,v.list({page:T,pageSize:I,sort:["sort"],fields:E,appends:[]})];case 1:var t,n,r,o,u;return[2,{records:o=Array.isArray(r=null==(n=null==(t=e.sent())?void 0:t.data)?void 0:n.data)?r:Array.isArray(null==r?void 0:r.data)?r.data:[],total:(u=(null==n?void 0:n.meta)||(null==r?void 0:r.meta)||{}).count||u.total||o.length}]}})})()},{refreshDeps:[T,I]}),_=M.data,z=M.loading,B=M.refresh,q=(0,a.useMemoizedFn)(function(e,t){if(t!==I){F(t),j(1);return}j(e)}),U=(0,c.useMemo)(function(){return x||[]},[x]),R=(0,a.useMemoizedFn)(function(e,t,n){i.viewer.drawer({width:"50%",closable:!0,content:function(){return s().createElement(O,{mode:e,authType:t,authTypeOptions:U,plugin:S,record:n,onSubmitted:function(){return B()}})}})}),V=(0,a.useMemoizedFn)(function(e){y.confirm({title:t("Delete"),content:t("Are you sure you want to delete it?"),onOk:function(){return m(function(){return g(this,function(t){switch(t.label){case 0:return[4,v.destroy({filterByTk:e})];case 1:return t.sent(),P([]),B(),[2]}})})()}})}),K=(0,a.useMemoizedFn)(function(e,n){return m(function(){var r;return g(this,function(o){switch(o.label){case 0:if(null==e.id||null==n.id)return[2];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,v.move({sourceId:e.id,targetId:n.id})];case 2:return o.sent(),b.success(t("Saved successfully"),.2),B(),[3,4];case 3:return r=o.sent(),b.error((null==r?void 0:r.message)||"Move failed"),[3,4];case 4:return[2]}})})()}),L=(0,a.useMemoizedFn)(function(e){var t=U.find(function(t){return t.name===e});return n((null==t?void 0:t.title)||e||"")}),Z=(0,c.useMemo)(function(){return[{title:t("Auth UID"),dataIndex:"name"},{title:t("Auth Type"),dataIndex:"authType",render:function(e){return e?s().createElement(l.Tag,null,L(e)):null}},{title:t("Title"),dataIndex:"title"},{title:t("Description"),dataIndex:"description"},{title:t("Enabled"),dataIndex:"enabled",align:"center",width:80,render:function(e){return e?s().createElement(r.CheckOutlined,{style:{color:f.colorSuccess}}):null}},{title:t("Actions"),width:160,render:function(e,n){return s().createElement(l.Space,null,s().createElement("a",{onClick:function(){if(n.authType){if(!S.authTypes.get(n.authType))return void b.error(t("Auth type {{type}} is not registered.").replace("{{type}}",n.authType));R("edit",n.authType,n)}}},t("Configure")),s().createElement("a",{onClick:function(){return V(n.id)}},t("Delete")))}}]},[L,V,b,R,S,t]);return s().createElement(l.Card,{variant:"borderless"},s().createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:f.marginSM,marginBottom:f.margin}},s().createElement(l.Button,{icon:s().createElement(r.DeleteOutlined,null),disabled:!C.length,onClick:function(){return V(C)}},t("Delete")),s().createElement(l.Dropdown,{menu:{items:U.map(function(e){return{key:e.name,label:n(e.title||e.name)}}),onClick:function(e){R("create",e.key)}},disabled:!U.length},s().createElement(l.Button,{type:"primary",icon:s().createElement(r.PlusOutlined,null)},t("Add new")," ",s().createElement(r.DownOutlined,null)))),s().createElement(o.Table,{rowKey:"id",loading:z,columns:Z,dataSource:(null==_?void 0:_.records)||[],isDraggable:!0,onSortEnd:K,rowSelection:{selectedRowKeys:C,onChange:P},pagination:{current:T,pageSize:I,total:(null==_?void 0:_.total)||0,onChange:q}}))}}}]);
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ type AuthRouteName = 'auth.signin' | 'auth.signup' | 'auth.forgotPassword' | 'auth.resetPassword';
10
+ type PluginSettingsRouteApplication = {
11
+ pluginSettingsManager: {
12
+ getRouteName: (name: string) => string;
13
+ getRoutePath: (name: string) => string;
14
+ };
15
+ };
16
+ type AuthRouteApplication = PluginSettingsRouteApplication & {
17
+ router: {
18
+ get: (name: string) => {
19
+ path?: string;
20
+ } | undefined;
21
+ };
22
+ };
23
+ export declare function getAuthRoutePath(app: AuthRouteApplication, name: AuthRouteName): string;
24
+ export declare function isStandaloneSettingsApplication(app: PluginSettingsRouteApplication): boolean;
25
+ export declare function getDefaultAuthRedirectPath(app: PluginSettingsRouteApplication): string;
26
+ export {};